/**
 * image enlarge
 * @name imagesenlarge.js
 * @author Marghoob Suleman - http://www.marghoobsuleman.com
 * @version 1.0
 * @date January 18, 2009
 * @copyright (c) 2009 Marghoob Suleman (http://www.giftlelo.com)
 */
 
//To do after loading HTML
$(document).ready(function(){
	//alert(1);
	ImagesEnlarge.init();
});

ImagesEnlarge = {
	settings: {
		allImageHolder:'featured-products_block_center',
		containerWidth:300,
		containerHeight:300,
		border: true,
		borderColor:'#000',
		containerBorderSize:2,
		padding:10,
		divOpacity: 1,
		loaderImage:'modules/imagesenlarge/loader.gif',
		useAnimation:1,//make it zero if you dont want to animate
		imageArray:[]
	},
	imgHolderDiv:"<div id='bigImageHolder' class='border' style='display:none; background-color:#f2f2f2'></div>",
	init: function() {
		$('body').append(this.imgHolderDiv);
		//set div style
		$('#bigImageHolder').css({'width':'300px', 'height':'300px', 'padding':'10px'});
		if(this.settings.border==true) {
			$('#bigImageHolder').css({'border' : this.settings.containerBorderSize+'px solid '+this.settings.borderColor, opacity:this.settings.divOpacity});
		}
		this.alterAttributes();
	},
	getImagePath: function(path) {
		var extract = path.split("/");
		var sPath = "";
		for(var i=0;i<extract.length-1;i++) {
			sPath+=extract[i]+"/";
		}
		return sPath;
	},
	setID: function(id, path) {
		var sID = id;
		var sPath = path; // /giftlelo/www/img/p/1-37-home.jpg
		var imgPath = this.getImagePath(sPath);
		var extract = sPath.split("/");
		var imgName = extract[extract.length-1];
		var largeImg = imgPath+imgName.substr(0, imgName.length-9)+"-large.jpg";
		var thickImg = imgPath+imgName.substr(0, imgName.length-9)+"-thickbox.jpg";
		var homeImg = imgPath+imgName.substr(0, imgName.length-9)+"-home.jpg";
		var smallImg = imgPath+imgName.substr(0, imgName.length-9)+"-small.jpg";
		ImagesEnlarge.settings.imageArray[sID] = {small:smallImg, home:homeImg, large:largeImg, thick:thickImg};
		//console.debug("ImagesEnlarge.settings.imageArray[sID] " + ImagesEnlarge.settings.imageArray[sID].large);
	},
	getID:function(id) {
		return ImagesEnlarge.settings.imageArray[id];
	},
	alterAttributes: function() {
		var blocks = $('#product_list div.center_block');
		if(ImagesEnlarge.settings.useAnimation==1) {
			$("#bigImageHolder").css({position:'absolute', float:'right', top:'30%', left:'50%'});
			ImagesEnlarge.resetImageHolder();			
		}
		
		var total = blocks.length;
		if(total>0) {
			for(var iCount=0;iCount<total;iCount++) {
				var currentBlock = blocks[iCount];
				var id = "product_list_"+iCount;
				currentBlock.id = id;
				var currentA = $("#"+id+ " a.product_img_link")[0];
				var aID = "zoomer_"+iCount;
				currentA.id = aID;
				var imgTag = currentA.firstChild;
				var imgName = $(imgTag).attr("src");
				this.setID(aID, imgName);

			//set method
			$("#"+aID).bind('mouseenter',function() {
							//$('#bigImg').attr("src", ImagesEnlarge.settings.imageArray[this.id]);
							
							var imgHTML = "<img id='bigImg' src='"+ImagesEnlarge.settings.loaderImage+"' border='0' class='border' />";
							$("#bigImageHolder").html(imgHTML);

							var getImage = ImagesEnlarge.getID(this.id);
							var imgHTML = "<img id='bigImg' src='"+getImage.large+"' border='0' class='border' />";
							$("#bigImageHolder").html(imgHTML);
							var xy = $(this).offset();
							var height = 0;
							var width = $(this).width();
							$("#bigImageHolder").css({'position':'absolute'})
							if(ImagesEnlarge.settings.useAnimation==1) {
								$("#bigImageHolder").show("fast", function(e) {
																		   $("#bigImageHolder").animate( {'left':(xy.left+width)+'px', 'top':(xy.top+height)+'px'}, { queue:false, duration:500 } )
																		   });
							} else {
								$("#bigImageHolder").css({'left':(xy.left+width)+'px', 'top':(xy.top+height)+'px'})
								$("#bigImageHolder").show("fast");
							}
						});
			$("#"+aID).bind('mouseleave',function() {
							ImagesEnlarge.resetImageHolder();
							$("#bigImageHolder").hide("fast");
						});

			}
			
		}
	},
	resetImageHolder: function() {
		var imgHTML = "<img id='bigImg' src='"+ImagesEnlarge.settings.loaderImage+"' border='0'  style='left:50%; top:50%; position:absolute' />";
		$("#bigImageHolder").html(imgHTML);
	}
}
