/* Stadium.se, Stadium.dk, Stadium.fi - HANDLE MORE INFO LAYER FOR PRODUCTS 
/*--------------------------------------------------------------------------
 *  Made by Brightstep AB, http://www.brightstep.se
 * */

function switchProductImage(event,mediumImageUrl) {
	document.getElementById("largeProductImage").src=mediumImageUrl;
	var thumbs = document.getElementById("thumbs_container").getElementsByTagName("A");
	for( i = 0 ; i < thumbs.length ; ++ i ) {
		thumbs[i].className = "off";
	}
	resetSelectedDetailImage();
	if (this.id != 'thumbnail_0') {
		document.getElementById("largeProductImage").setAttribute("selectedState", "true");
	}
	event.className = "on";
	return false;
}

//HANDLE CHANGE OF PRODUCT COLORS -------------------------------------------
function selectProductSwitchProductColor(ProductRef,selectedColor,imageUrl,brandName,name,color) {

	var colors=document.getElementsByName('selected_Color');	
	for(var i = 0; i < colors.length; i++) {
		if(colors[i].value == selectedColor) {
			colors[i].checked=true;
			break;
		}
	}
	
	switchProductColor(ProductRef,imageUrl,brandName,name,color)
}


// HANDLE CHANGE OF PRODUCT COLORS -------------------------------------------
function switchProductColor(ProductRef,imageUrl,brandName,name,color) {
	
	if( imageUrl ) {
		switchLargeProductImage(imageUrl,brandName+' '+name+' '+color);
	}	
	setProductRefInput(ProductRef);
		
	resetSelectedFirstDetailImage();
	var largeImage=document.getElementById('productImageEnlarge_'+getSelectedColor());
	largeImage.setAttribute("selectedstate","true");	

	updateProductAttributes(true);	
	if(document.getElementById("Print_Name")){		
		switchScene7Image(false);
	}
	
	displaySizesByColor();
}


//HANDLE CHANGE OF PRODUCT COLORS -------------------------------------------
function switchScene7Image(validate) {
		
	if(!document.getElementById("Print_Name"))
		return false;
	
	hideScene7Boxes();	
	
	var sourceImage 	= document.getElementById("Scene7imageurl").value;	
	var Print_name  	= document.getElementById("Print_Name").value;
	var Print_nr   		= document.getElementById("Print_Nr").value;
	var Print_sku   	= document.getElementById("ProductRefID").value;
	
	if(validate && !validatePrintAttributes())
		return false;
	
	Print_name=encodeURI(Print_name);
	
	
	var colors=document.getElementsByName('selected_Color');
	var selectedColor=null;	
	for(var i = 0; i < colors.length; i++) {
		if(colors[i].checked) {
			selectedColor=colors[i].value;
			break;
		}
	}
	
 	 	
	sourceImage=sourceImage+'&Scene7_Sku='+Print_sku+'&Print_Name='+Print_name+'&Print_Nr='+Print_nr+'&UpdateMagnifyUrl=true'+'&selectedColor='+selectedColor;
			
	if(sourceImage != "" ) {		
		var myAjax = new Ajax.Updater("product_scene7_container", sourceImage, {method: 'get', parameters: "", evalScripts: true});
	}
}



function switchLargeProductImage(imageUrl,title){
	if(document.getElementById("largeProductImage")){
		document.getElementById("largeProductImage").src=imageUrl;
		document.getElementById("largeProductImage").title=title;
		if(!ifIE()){
			document.getElementById("largeProductImage").alt=title;
		}
	}
}

function validatePrintAttributes() {
	var print_Name= document.getElementById("Print_Name");
	var print_Nr  = document.getElementById("Print_Nr");

	if(print_Name) {		
		if((print_Name.value == '') ||  (print_Nr.value == '')){
			showElement('Scene7NotNameNumber');
			//selectVariationsMessage("Du måste ange namn och nummer.");			
			return false;		
		}
			
		var nameValidation = /^[0-9a-zåäöA-ZÅÄÖÆØ ]{1,12}$/;    
		var nrValidation = /^[0-9]{1,2}$/;		  
	
		if(!print_Name.value.match(nameValidation)){
			showElement('Scene7NotName');
			//selectVariationsMessage("Namn får bara innehålla mellanslag, 0-9, a-ö och A-Ö.");			
			return false;
		}					
		if(!print_Nr.value.match(nrValidation)){		
			showElement('Scene7NotNumber');
			//selectVariationsMessage("Nummer får bara innehålla 0-9");
			return false;
		}		
	}	
	return true;
}



// HANDLE CHANGE OF PRODUCT ATTRIBUTES -------------------------------------------
function updateProductAttributes( notUpdatePrice ) {	
	
	hideScene7Boxes();
	hideOrangeBoxes();
	setProductRefInput();	
	
	if(!notUpdatePrice){
		updatePricing();
	}
}

function addToOrder(){
	var url=document.getElementById("productAttributeForm").getAttribute("action");
	var shopUUID = document.getElementById("ShopUUID").value;	
	var productCategoryUUID = document.getElementById("ProductCategoryUUID").value;	
	var params="ProductRefID="+document.getElementById("ProductRefID").value+"&Quantity="+document.getElementById("Quantity").value+"&shopUUID="+shopUUID+"&productCategoryUUID="+productCategoryUUID;
	
	var print_Name= document.getElementById("Print_Name");
	var print_Nr  = document.getElementById("Print_Nr");
	if(print_Name) {
		params=params+"&Print_Name="+print_Name.value+"&Print_Nr="+print_Nr.value;
	}
	
	var myAjax = new Ajax.Updater("removedFromMiniBasket", url , {method: 'post', parameters: params, evalScripts: true, onComplete:addToCart});
}


function updatePricing() {
	var color=getSelectedColor();
	var size=getSelectedSize();
		
	//Hämta priset från den gömda länken som används av förstora-lightboxen.
	if(color&&!size){
		var detailImageLink=document.getElementById("productImageEnlarge_"+color);
		// {BrandName:'Name',Name:'Name(Local)',PriceSEK:'SEK',PriceSED:'SED',PriceSEC:'SEC',productLink:'ViewProductDetail-Start'}
		// this is now converted to an object
		eval('var productPrices = '+ detailImageLink.getAttribute('title') +';');
		resetPrices();
		if(productPrices.PriceSEK&&!productPrices.PriceSED){
			elementVisible("priceNormal");
			document.getElementById("priceNormal").innerHTML=productPrices.PriceSEK;
		}
		else if(productPrices.PriceSED){
			document.getElementById("priceDiscount").innerHTML=productPrices.PriceSED;
			document.getElementById("priceNormalWhenDiscount").innerHTML=productPrices.PriceSEK;
			hideElement("priceNormal");
			elementVisible("priceDiscountStrongElement");
			elementVisible("priceDiscount");
			elementVisible("priceNormalWhenDiscount");
		}
		
		if(productPrices.PriceSEC){
			document.getElementById("priceCard").innerHTML=productPrices.PriceSEC+" "+document.getElementById("withStadiumCardText").innerHTML;
			elementVisible("priceCard");
		}
	}
	//Hämta pris från variant-Div:en som är unik utifrån färg och storlek tillsammans
	else{
		resetPrices();
		var variant=document.getElementById(color+"_sep_"+size);
		if(variant.getAttribute("pricenormal")&&!variant.getAttribute("pricediscount")){
			elementVisible("priceNormal");
			document.getElementById("priceNormal").innerHTML=variant.getAttribute("pricenormal");
		}
		else if(variant.getAttribute("pricediscount")){
			document.getElementById("priceDiscount").innerHTML=variant.getAttribute("pricediscount");
			document.getElementById("priceNormalWhenDiscount").innerHTML=variant.getAttribute("pricenormal");
			hideElement("priceNormal");
			elementVisible("priceDiscountStrongElement");
			elementVisible("priceDiscount");
			elementVisible("priceNormalWhenDiscount");
		}
		
		if(variant.getAttribute("pricecard")){
			elementVisible("priceCard");
			document.getElementById("priceCard").innerHTML=variant.getAttribute("pricecard")+" "+document.getElementById("withStadiumCardText").innerHTML;
		}
	}
	
}

function resetPrices(){
	hideElement("priceDiscountStrongElement");
	hideElement("priceDiscount");
	hideElement("priceNormalWhenDiscount");
	hideElement("priceCard");
}

function setSubmitValue() {
	
	switchScene7Image(true);
	
	if(!validatePrintAttributes()){
		return false;
	}
	
	showLoading();
			
	if(document.getElementsByName('selected_Size').length>0&&!checkIfCheckedWhenMultipleRadiobutton(document.getElementsByName('selected_Size'))){
		showNotSelectedSizeMessage();
		return false;
	}
	else if(document.getElementsByName('selected_Loft').length>0&&!checkIfCheckedWhenMultipleRadiobutton(document.getElementsByName('selected_Loft'))){
		showNotSelectedSizeMessage();
		return false;
	}
	else if(document.getElementsByName('selected_Length').length>0&&!checkIfCheckedWhenMultipleRadiobutton(document.getElementsByName('selected_Length'))){
		showNotSelectedSizeMessage();
		return false;
	}
	else if(document.getElementsByName('selected_Width').length>0&&!checkIfCheckedWhenMultipleRadiobutton(document.getElementsByName('selected_Width'))){
		showNotSelectedSizeMessage();
		return false;
	}
	else if(document.getElementsByName('selected_Flex').length>0&&!checkIfCheckedWhenMultipleRadiobutton(document.getElementsByName('selected_Flex'))){
		showNotSelectedSizeMessage();
		return false;
	}
	else if(document.getElementsByName('selected_Curve').length>0&&!checkIfCheckedWhenMultipleRadiobutton(document.getElementsByName('selected_Curve'))){
		showNotSelectedSizeMessage();
		return false;
	}
			
	addToOrder();
	
	return false;
}

function showNotSelectedSizeMessage(){
	document.getElementById('notSelectedSize').style.display="block";
	hideLoading();
	hideElement('add_to_cart');
	if(document.getElementById('scene7')){
		hideElement('scene7');
	}
	
	hideElement('search_store');
}

// HANDLE DESCRIPTION OF HARD WORDS ------------------------------------------

function product_openDictionary(thisThis) {
	new LITBox(thisThis.href, {type:'window', overlay:true, height:320, width:420, resizable:true, opacity:1, header:'Ordförklaring'});
	return false;
}

// HANDLE PAGING OF PRODUCT RATINGS ------------------------------------------

function page_ratings(ProductUUID, PageNumber) {
	
	var PagingParameters = "PageNumber_"+PageNumber+"=" + PageNumber +"&PageNumber=" + PageNumber +"&ProductUUID=" + ProductUUID;	
	
	var myAjax = new Ajax.Updater("ratings_refresh", "ViewProductDetail-RatingPaging" , {method: 'post', parameters: PagingParameters});	
		
	return false;
}

// Opens the lightbox dialog with the current selected variant/detail image
function lightboxOpener () {
	
	// Product detail images
	var detailImageCollection = $('product_color_chooser').getElementsByTagName('a');;
	var selectedImage	= false;

	for ( i = 0; i < detailImageCollection.length; i++ ) {
		if ( String(detailImageCollection[i].getAttribute('selectedState')) == "true" ) {
			selectedImage = detailImageCollection[i];
			break;
		}
	}
	
	if (selectedImage == false) {
		var selectedColor=getSelectedColor();
		selectedImage = document.getElementById('productImageEnlarge_'+selectedColor); //detailImageCollection[0];
	}
	myLightbox.start( selectedImage );
	return false;
}
function resetSelectedDetailImage() {
	detailImagesContainer	= document.getElementById('detail_images_container');
	detailImageCollection	= detailImagesContainer.getElementsByTagName('a');
	
	for ( i = 0; i < detailImageCollection.length; i++ ) {
		detailImageCollection[i].setAttribute('selectedState', "false");
	}
}

function resetSelectedFirstDetailImage() {
	detailImagesContainer	= document.getElementById('product_color_chooser');
	detailImageCollection	= detailImagesContainer.getElementsByTagName('a');
	
	for ( i = 0; i < detailImageCollection.length; i++ ) {
		detailImageCollection[i].setAttribute('selectedstate', "false");
	}
}

// Shows product variation filter message to chose variation first
// before adding to chart
function selectVariationsMessage(msg) {	
	if (document.getElementById('mustDefineProduct')) {
		msgObj = document.getElementById('mustDefineProduct');
		msgObj.innerHTML = "<span>"+ msg +"</span>";
		msgObj.style.display='block'
	}
	return false;
}


//Shows product variation filter message to chose variation first
//before adding to chart
function hideVariationsMessage(msg) {	
	if (document.getElementById('mustDefineProduct')) {
		msgObj = document.getElementById('mustDefineProduct');
		msgObj.innerHTML = "";
		msgObj.style.display='none'
	}
	return false;
}



function setToNoBlogPosts(){
	hideTwinglyLink();
	showElement('noBlogPosts');
	hideElement('tw_lw_c');
}

function viewLongProductDescription(){
	showElement('longDescription');
	showElement('salesArguments');	
	hideElement('shortDescription');
}

function hideTwinglyLink(){
	document.getElementById('twingly_blog_search').style.display='none';
	document.getElementById('tw_link_widget').style.display='none';
}

function openVideoInLitbox(movieUrl) {

	if (document.getElementById('product_flash_lb')) {	
		showElement('product_flash_ol');
		showElement('product_flash_lb');
		showVideoPlayer(movieUrl);
		return false;
	}
}

function hideVideoLitbox(){
	
	var flashdiv = document.getElementById("StadiumVideo");
	var flashparentdiv = document.getElementById("StadiumVideoViewer");
	flashparentdiv.removeChild(flashdiv); //removeNode() does not work in FF. /Sebastian
  	hideElement('product_flash_ol');
	hideElement('product_flash_lb');	
	
}

function showVideoPlayer(movieUrl){ 
	document.getElementById("StadiumVideoViewer").style.visibility = "visible";
	var so = new SWFObject("/is-bin/intershop.static/WFS/Stadium-SwedenB2C-Site/-/sv_SE/swf/StadiumVideoViewer_v3.swf", "StadiumVideo", "480", "360", "8", "#000000");
	so.addVariable("videoFile", movieUrl);
	so.addVariable("winurl", movieUrl);
	so.addVariable("qturl", movieUrl);
	so.write("StadiumVideoViewer");
} 

//ProductRef is included in the submit when adding to basket. Hence set the ProductRef-input-field directly 
//when selecting color or size. 
function setProductRefInput(productRef){
	var selectedColor=getSelectedColor();	
	var sizes=$('product_size_chooser').getElementsByClassName('selected_Size');	
	var selectedSize=null;	
	for(var i = 0; i < sizes.length; i++) {		
		if(sizes[i].checked) {
			selectedSize=sizes[i].value;
			break;
		}
	}
	
		
	var newProductRef=document.getElementById(selectedColor+"_sep_"+selectedSize);		
	if(newProductRef){
		document.getElementById("ProductRefID").value=newProductRef.getAttribute("pref");
	}else{		
		if(productRef)
			document.getElementById("ProductRefID").value=productRef;
	}
}

function getSelectedColor(){
	var colors=document.getElementsByName('selected_Color');
	var selectedColor=null;	
	for(var i = 0; i < colors.length; i++) {
		if(colors[i].checked) {
			selectedColor=colors[i].value;
			break;
		}
	}
	return selectedColor;
}

//Display possible sizes for a certain color
function displaySizesByColor(selectByProductRef){
	hideAllSizes();
	var selectedColor=getSelectedColor();	
	var colorVariants=document.getElementById("sizesByColor_"+selectedColor);
	var ifAvailable=null;
	if(colorVariants){		
		var possibleSizes=colorVariants.getAttribute("possibsizes");
		var searchStoreText=document.getElementById("searchStoreText").innerHTML;
		//Since a size can be 6,5 for instance
		//possibleSizes=possibleSizes.replace(",","*");
		possibleSizes=possibleSizes.replace("[","");
		possibleSizes=possibleSizes.replace("]","");
		possibleSizes=trim(possibleSizes);
		possibleSizes=possibleSizes.split(",");
		for(var i=0;i<possibleSizes.length;i++){
			document.getElementById("Size_"+possibleSizes[i]+"").style.display="block";
			ifAvailable=getIfNotAvailable(selectedColor,possibleSizes[i]);
			//Om det endast finns en färg så välj den automatiskt
			if(possibleSizes.length==1){
				document.getElementById("sizes_input_"+possibleSizes[i]+"").checked=true;
				setProductRefInput();
			}
			if(!ifAvailable){
				toggleSearchStoreLabelAndOnclick(possibleSizes[i],true);
				if(possibleSizes.length==1){
					displayNotInStore();
				}
			}
			else{
				toggleSearchStoreLabelAndOnclick(possibleSizes[i],false);
				displayInStore();
			}
		}
	}
}

function toggleSearchStoreLabelAndOnclick(size,ifDisplay){	
	var sizeSpan=document.getElementById("sizes_span_"+size);
	var searchStoreText=document.getElementById("searchStoreText").innerHTML;
	var cutIndex=0;
	var sizeInput=document.getElementById("sizes_input_"+size);
	if(ifDisplay){
		//toggle label besides size
		$('Size_'+size).hide();
		if(sizeSpan.innerHTML.indexOf(searchStoreText)==-1){
			sizeSpan.innerHTML=sizeSpan.innerHTML+" "+searchStoreText;
		}
		//toggle checkbox onclick attribute
		if(ifIE()&&!ifIE8()){
			$('sizes_input_'+size).stopObserving('click', displayInStore);
			$('sizes_input_'+size).observe('click', displayNotInStore);
		}
		else{
			sizeInput.setAttribute("onclick","updateProductAttributes();displayNotInStoreBox();");
		}
	}
	else{
		//toggle label besides size
		cutIndex=sizeSpan.innerHTML.indexOf(" "+searchStoreText);
		if(cutIndex>0){
			sizeSpan.innerHTML=sizeSpan.innerHTML.substring(0,cutIndex);
		}
		//toggle checkbox onclick attribute
		if(ifIE()&&!ifIE8()){
			$('sizes_input_'+size).stopObserving('click', displayNotInStore);
			$('sizes_input_'+size).observe('click', displayInStore);
		}
		else{
			sizeInput.setAttribute("onclick","updateProductAttributes();setInStoreGUI();");
		}
	}	
}

function displayNotInStore(){
	updateProductAttributes();
	displayNotInStoreBox();
}

function displayInStore(){
	updateProductAttributes();
	setInStoreGUI();
}

function hideAllSizes(){
	var sizes=$('product_size_chooser').getElementsByClassName('sizeLI');
	for(var i = 0; i < sizes.length; i++) {
		if(!sizes[i].checked) {
			sizes[i].style.display="none";
		}
	}
}

/*
 * When coming from basket or step 1 selectetVariationId is parameter, then both color and size and large 
 * image shall be selected.
 */
function applySelectedVariationId(imageUrl,brandName,name,color,ProductRef){
	switchProductColor(ProductRef,imageUrl,brandName,name,color);
	setProductSizeByProductRef(ProductRef);
}

function setProductSizeByProductRef(ProductRef){
	var prefs=$('product_attribute_container').getElementsByClassName('nonePRef');
	var cutIndex=0;
	var selectedSize=null;
	var pref=null;
	for(var i = 0; i < prefs.length; i++) {
		if(prefs[i].getAttribute("pref")==ProductRef){
			pref=prefs[i];
			cutIndex=pref.id.indexOf("_sep_")+5;
			selectedSize=pref.id.substring(cutIndex);
			setSelectedSize(selectedSize);
			break;
		}
	}
}

function setSelectedSize(size){
	var sizes=$('product_size_chooser').getElementsByClassName('selected_Size');
	for(var i = 0; i < sizes.length; i++) {
		if(sizes[i].value==size) {
			sizes[i].checked=true;
			break;
		}
	}
	setProductRefInput();
}

function getSelectedSize(){
	var sizes=$('product_size_chooser').getElementsByClassName('selected_Size');
	var selectedSize=null;
	for(var i = 0; i < sizes.length; i++) {
		if(sizes[i].checked) {
			selectedSize=sizes[i].value;
			break;
		}
	}
	return selectedSize;
}

function getIfNotAvailable(color,size){
	var variant=document.getElementById(color+"_sep_"+size);
	var ifAvailable=false;
	if(variant.getAttribute("available")=="true"){
		ifAvailable=true;
	}
	return ifAvailable;
}

function displayNotInStoreBox(){
	hideElement('add_to_cart');
	hideElement('search_store');
	if(document.getElementById('scene7')){
		hideElement('scene7');
	}	
	showElement('notInStore');
}

function setInStoreGUI(){	
	showElement('add_to_cart');
	if(document.getElementById('scene7')){
		showElement('scene7');
	}	
	showElement('search_store');
	hideElement('notInStore');
}

function uncheckSize(){	
	var sizes=document.getElementsByName("selected_Size");
	for(var i = 0; i < sizes.length; i++) {
		if(sizes[i].checked) {
			sizes[i].checked=false;
			break;
		}
	}	
}

function getStoreStockLevel(){
	var url=document.getElementById("getStoreStockLevelPipeline").innerHTML+"?ProductRefID="+document.getElementById("ProductRefID").value;
	litbox = new LITBox(url, {type:'window', overlay:true, height:340, validation:false, width:410, resizable:true, opacity:1, header: ''});
	return false;
}

function hideOrangeBoxes(){
	hideElement("notInStore");
	hideElement("notSelectedSize");
}


function hideScene7Boxes(){
	if(document.getElementById("scene7")){
		hideElement("Scene7NotNameNumber");
		hideElement("Scene7NotName");
		hideElement("Scene7NotNumber");
		hideElement("Scene7OnePrintProductAllowed");			
	}
			
}

