var commerceSingleObjects=new Array();
var commerceArticles=new Array();
var commerceBasketView=false;
var commerceShowPopup=true;
var commerceBasketUrl="";
var commerceAddItemStore=false;
var commerceWrapperStore=false;
var commerceSingleClicked=false;
var commerceZoomInitialOffset=false;

$(function(){

	$(".commerce_select").change(function(){
		var selected=$(this).val();
		if(selected==0) return;
		$(this).parent().submit();
	});
	

	$(".linkSingle").click(function(){
		var uid=$(this).attr("href");
		uid=uid.replace("#","");

		commerceShowPopupClick(uid);
		return false;

	});
	$(".productImage .linkSingle").mouseenter(function(){		

		var uid=$(this).attr("href");
		uid=uid.replace("#","");

		for(var i in commerceSingleObjects){
			var obj=commerceSingleObjects[i];	
			if(obj.PRODUCT_UID!=uid) continue;
		
			$("#productImageZoom").html(obj.ZOOM_IMAGE);
		}
		
		
		var wThumb=$(this).find("img").width();
		var hThumb=$(this).find("img").height();
		var wImage=$(".productImageZoom table").css("width");
		var hImage=$(".productImageZoom table").css("height");

		var position=$(this).parent().parent().position();
		var left=position.left-60;
		var top=position.top-50;
		
				
		$(".productImageZoomWrap").css("left",left);
		$(".productImageZoomWrap").css("top",top);
		//$(".productImageZoomWrap").show();	

		var pos=commerceGetAbsPosition($(".productImageZoomWrap"));
		var diffTop=$(window).scrollTop()-pos.top;
		var diffLeft=$(window).scrollLeft()-pos.left;
		
		var yBottom=pos.top+250-$(window).scrollTop();
		var diffBottom=yBottom-$(window).height();

		
		if(diffTop>0){
			top=top+diffTop;
		}else if(diffBottom>0){
			top=top-diffBottom;
		}
		
		if(diffLeft>0) left=left+diffLeft;

		$(".productImageZoomWrap").css("top",top);
		$(".productImageZoomWrap").css("left",left);
		
		
	});
	$(".productImageZoomWrap").mouseleave(function(){
		$(".productImageZoom").hide();

	});	

	$("#productSingleLightbox .closeWindow").click(function(){
		$("#productSingleLightbox").hide();
		return false;

	});
	$("#productSelectionLightbox .closeWindow").click(function(){
		$("#productSelectionLightbox").hide();
		return false;

	});	

	$("#productList .productAddBasket a.add").click(function(){
		commerceAddItemClick(this,"#productList","");
		return false;
	});
	$("#searchProductSingle .productAddBasket a.add").click(function(){
		commerceAddItemClick(this,"#searchProductSingle","");
		return false;
	});	
	$("#ekz_submit").click(function(){
		$("#form_tx_csrcommerceconnector_pi1").submit();
		return false;
	});
	$(".basketRequest").click(function(){
	
		$("#tx_csrcommerceconnector_pi2_submit").val(1);
		$("#form_tx_csrcommerceconnector_pi1").submit();
		return false;
	});
	
	
	$("#productSelectionLightbox a.forward").click(function(){
		var country=$("#productSelectionLightbox #country").val();
		var buyer=$('#productSelectionLightbox input:radio[name=buyer]:checked').val();
		
		var additionalParams="&tx_csrcommerceconnector_pi1[country]="+country+"&tx_csrcommerceconnector_pi1[buyer]="+buyer;
		commerceShowPopup=false;
		commerceAddItemClick(commerceAddItemStore,commerceWrapperStore,additionalParams);
		
		return false;

	});	
	
	$(document).oneTime(6000, function() {
    	$(".productAddBasket .added").hide();
  	});
  
	if(commerceSingleClicked) commerceShowPopupClick(commerceSingleClicked);
	

});

function commerceShowZoom(){
	$(".productImageZoom").fadeIn("fast");	
}
function commerceShowPopupClick(uid){
		if(!uid){
			return;
		}
		for(var i in commerceSingleObjects){
			var obj=commerceSingleObjects[i];
			if(commerceBasketView){
				if(obj.ARTICLE_UID!=uid) continue;
			}else{
				if(obj.PRODUCT_UID!=uid) continue;
			}
			
			

			$("#PRODUCT_TITLE").html(obj.PRODUCT_TITLE);
			$("#PRODUCT_SUBTITLE").html(obj.PRODUCT_SUBTITLE);
			$("#PRODUCT_DESCRIPTION").html(obj.PRODUCT_DESCRIPTION);
			$("#ELBA_DROPDOWN").html(obj.ELBA_DROPDOWN);
			$("#LAYER_IMAGES").html(obj.LAYER_IMAGES);
			$(".productSingleLayer a.add").attr("id","productAddBasket_"+uid);						
			$(".productSingleLayer a.add").attr("href",obj.ELBA_CC_URL);
			$(".productSingleLayer div.buttonWrap").css("display",obj.PRODUCT_RELATEDPAGE_DISPLAY);
			$(".productSingleLayer a.moreInfo").attr("href",obj.PRODUCT_RELATEDPAGE_URL);
			
			if(commerceBasketView){
				$(".productSingleDropdown").hide();
				$(".productSingleButtons").hide();
			}
		}
		
		$("#productSingleLightbox").show();
		$(".productSingleLayer a.add").click(function(){
			commerceAddItemClick(this,".productSingleLayer","");

			return false;
		});		

}
function commerceAddItemClick(obj,wrapper,additionalParams){
		
		commerceAddItemStore=obj;
		commerceWrapperStore=wrapper;
		
		var product=obj.id.replace("productAddBasket_","");
		var url=$("#"+obj.id).attr("href");

		var article=-1;
		
		var form=$(wrapper+" #tx_commerce_csr_elba_marker_hook_article_form_"+product);

		if(form.length){
			article=form.find("select").val();

			if(article==-1){
				alert("Bitte wählen Sie die gewünschte Produktausführung im Ausklappmenü unter dem Produktbild.");
				return false;
			}	
		
		}
		
		if(commerceShowPopup){
			$("#productSelectionLightbox").show();
			return;
		}		
					
		url+="&tx_csrcommerceconnector_pi1[action]=add&tx_csrcommerceconnector_pi1[articleUid]="+article+"&tx_csrcommerceconnector_pi1[showUid]="+product+additionalParams;
		url=url.replace(/#/, "");

		window.location.href=url;
}
function commerceDropdownChange(dropdown){
	var articleUid=dropdown.val();

	for(var i in commerceArticles){
		var obj=commerceArticles[i];
		if(obj.articleUid!=articleUid) continue;

		
		$("#PRODUCT_SUBTITLE").html(obj.ordernumber);
		$("#LAYER_IMAGES").html(obj.image);
		
		$("#PRODUCT_SUBTITLE_SINGLE").html(obj.ordernumber);
		$("#LAYER_IMAGES_SINGLE").html(obj.image);		
	}
	
	
}
function commerceGetAbsPosition(element){
	xpos=element.position();
	xtop=xpos.top;
	xleft=xpos.left;
	currentTag = element.offsetParent();
	var i=0;

	while(currentTag[0].tagName!="BODY") {

		p=currentTag.position();
		xtop+=p.top;
		xleft+=p.left;
		currentTag = currentTag.offsetParent();
	}
	
	var out={top:xtop,left:xleft};

	return out;
}
