// JavaScript Document// JavaScript Document
var items=new Array();
var showing=false;

function removeItem(originalArray, itemToRemove) {
	var j = 0;
	while (j < originalArray.length) {
		if (originalArray[j] == itemToRemove) {
			originalArray.splice(j, 1);
		} else { j++; }
	}
	return originalArray;
}
function createFull(x,y){
	res = document.createElement('div');
	res.className="fullImg";
	res.appendChild(document.createElement('div'));
	$(res).css('left',x);
	$(res).css('top',y);
	return res;		
}
function showFull(obj){
	if(showing){
		if(items.length>0){
			for(full in items) hideFull(full);
		}
		return;
	}
	obj=this;
	var src=new String($(obj).css('background-image')).replace('_thumb','').replace('url(','').replace(')','').replace('"','').replace('"','');	
	var startPosX=$(obj).offset().left-10;
	var startPosY=$(obj).offset().top-10;
	var show=createFull(startPosX,startPosY);
	document.body.appendChild(show);
	items.push(show);
	div=$(show).children('div');
	div.animate({opacity:0},10);
	$(show).animate({width:400, height:400, left:startPosX-440, top:startPosY-200,opacity:1},{duration:300,
		complete:function(){
			showing=true;
		}
	});	
	var imgPreloader=new Image();
	imgPreloader.onload = (function(){
		var image=imgPreloader;
		var wS=image.width;
		var hS=image.height;
		var offsetX=wS+40;
		var offsetY=hS/2;
		div.css('background-image','url(' + image.src + ')');
		$(show).animate({width:wS, height:hS, left:startPosX-offsetX, top:startPosY-offsetY},500);
		div.animate({opacity:1},1500);
		showing=true;
	});
	imgPreloader.onError = (function(){
		hideFull(show);
	});
	imgPreloader.src=src;
}
function hideFull(obj){
	if(!showing) return;
	obj=this;
	var finalPosX=$(obj).offset().left-10;
	var finalPosY=$(obj).offset().top-10;
	var offsetX=0;
	var offsetY=0;	
	hide=items.pop();
	if(hide==undefined) return;
	$(hide).animate({width:0, height:0, left:finalPosX-offsetX, top:finalPosY-offsetY,opacity:0},{duration:300,
	complete:function(){
				try{
					document.body.removeChild(hide);
					removeItem(items,hide);
				}catch(e){
					if(items.length>0){
					 for(full in items) $(full).remove();
					}else $('.fullImg').remove();
				}finally{
					if(items.length==0) showing=false;
					setFullImgs();	
				}
			  }
	});
}
function setFullImgs(){ $('.productImage').hover(showFull,hideFull); }
