var general = {
	pointer: 0,
	elmDownload:  $("#download-link"),
	
	// OnLoad functions
	init: function(){
		this.bubbleEvt();
	},
	
	bubbleEvt: function() {
		$(".toggle").click(function(){
			general.toggle(this);
			return false;
		});
		
		$(".scroll-arrow").click(function(){
			general.imgScroll(this);
			return false;
		});	
		
		$(".image-scoller ul li a").click(function(){
			general.changeImage(this);
			return false;
		});
		
		if (general.elmDownload) {
			$(general.elmDownload).attr("target","_blank");
		}		
	},
	
	
	toggle: function(e) {
		var elm;
		var targetClass;
		targetClass = $(e).parent();
		elm = ($(targetClass).next("*"));
		elm.toggle("fast");			
		
		if(targetClass.hasClass("active"))
			targetClass.removeClass("active");
		else
			targetClass.addClass("active")

	},
	
	changeImage: function(e) {
		var target = $("#largeImage").children();
		var elm = $(e).children();
		var elmSrc = $(elm).attr("src");
		var elmDownload =  $("#download-link");
		var elmSrcMedium = elmSrc.replace(/(\.(gif|jpg|png))/i, "-medium$1");
		var elmSrcLarge = elmSrc.replace(/(\.(gif|jpg|png))/i, "-large$1");
	
		
		if (target && elmSrc) {
			$(target).attr("src",elmSrcMedium);
			$(elmDownload).attr("href",elmSrcLarge);
		}
	
	},
	
	imgScroll: function(e) {
		var direction = e.className.replace(/.*direction-([\w-]+).*/, "$1");
		var newPos;
		var antal =$(".image-scoller ul li").length;
		
		var elmArrowLeft = 	$(".direction-left"); 
		var elmArrowRight = $(".direction-right");	
		
		
		
		var current = $(".image-scoller ul").css("margin-left");
		current=current.replace(/px,*\)*/g,"");
		
		if(direction=="right") {
			newPos=parseInt(current)-44;
			if(antal-5 > general.pointer){
				$(".image-scoller ul").animate({ 
				marginLeft: newPos
				}, 400 );	
				general.pointer++;
			}	
			
			$(elmArrowLeft).removeClass("visibility-none");
			$(elmArrowLeft).addClass("visibility-block");
			
			if(general.pointer==antal-5) { 
				if($(elmArrowRight).hasClass("visibility-block")) {
					$(elmArrowRight).removeClass("visibility-block");
				}
				$(elmArrowRight).addClass("visibility-none");
			}
			else {
				$(elmArrowRight).addClass("visibility-block");
			}
			
			
		}
		else {
			newPos=parseInt(current)+44;
			if(general.pointer>0){
				$(".image-scoller ul").animate({ 
				marginLeft: newPos
				}, 400 );	
				general.pointer--;	
			}	
			
			$(elmArrowRight).removeClass("visibility-none");
			$(elmArrowRight).addClass("visibility-block");
			
			if(general.pointer==0) { 
				if($(elmArrowLeft).hasClass("visibility-block")) {
					$(elmArrowLeft).removeClass("visibility-block");
				}
				$(elmArrowLeft).addClass("visibility-none");
			}
			else {
				$(elmArrowLeft).addClass("visibility-block");
			}
		}
		
	},
	
	/* 
	===
	- Toggle image url on hover
	=== 
	*/
	imgUrlHover: function(e){
		var imageSrc;
		var imageName = e.className.replace(/.*name-([\w-]+).*/, "$1");

		imageSrc = e.getAttribute("src");
		if (!/-hover|-selected/i.test(imageSrc)) {
            e.setAttribute("src", imageSrc.replace(/(\.(gif|jpg|png))/i, "-hover$1"));
        }else{
			e.setAttribute("src", imageSrc.replace(/-hover/i, ""));
		}
	},
	
	/* 
	===
	- Toggle image url onclick
	=== 
	*/
	imgUrlClick: function(e) {
		var target = e.className.replace(/.*target-([\w-]+).*/, "$1");
		var imageName;
		
		if (target == "self") {
			imageSrc = e.getAttribute("src");
			if (!/-hover|-selected/i.test(imageSrc)) {
	            e.setAttribute("src", imageSrc.replace(/(\.(gif|jpg|png))/i, "-hover$1"));
	        }else{
				e.setAttribute("src", imageSrc.replace(/-hover/i, ""));
			}
		}
	}
}

$(document).ready(function(){	   
	general.init();
});