/* Stadium.se, Stadium.dk, Stadium.fi - HANDLE MORE INFO LAYER FOR PRODUCTS 
 * 2006 Starring Ltd AB, Sweden
 *
 * This document is not be used without the authors permission.
 * Looking for more Internet solutions from the future?
 * Feel free to checkout Starring.se
/*--------------------------------------------------------------------------*/

 

// HANDLE CHANGE OF PRODUCT IMAGE --------------------------------------------

addOnLoad('init_productImageSwitcher()');

function init_productImageSwitcher() {
	var links =	document.getElementById("thumbs_container").getElementsByTagName("A");
	for( i = 0 ; i < links.length ; ++i ) {
		links[i].onclick = switchProductImage;
	}
}

function switchProductImage() {
	imgURL = this.href;
	var myAjax = new Ajax.Updater("product_img_container", imgURL, {method: 'get', parameters: ""});	

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




// HANDLE CHANGE OF PRODUCT CONTENT ------------------------------------------

function switchProductContent() {
	var contentUrl = this.href;
	var theParentNode = this.parentNode;
	return switchProductContentToUrl(contentUrl,theParentNode.id);
}
function switchProductContentToUrl(url,myParentNodeId) {

	if (myParentNodeId == "store_stock_folder") {
		tabLinkObj = document.getElementById( myParentNodeId );
		url        = tabLinkObj.childNodes[0].href;
	}

	var myAjax = new Ajax.Updater("product_info", url, {method: 'get', parameters: "", evalScripts: true});
	var prodNav = document.getElementById("prod_nav").getElementsByTagName("LI");
	
	for( i = 0 ; i < prodNav.length ; ++ i ) {
		prodNav[i].className = "off";
	}

	document.getElementById(myParentNodeId).className = "on";
	//myParentNode.className = "on";
	
	return false;
}


// HANDLE CHANGE OF PRODUCT COLORS -------------------------------------------
function switchProductColor(elt,imageUrl,brandName,name,color) {
	resetSelectedDetailImage();
		
	if( imageUrl ) {
		switchLargeProductImage(imageUrl,brandName+' '+name+' '+color);
	}	
	var colors = document.getElementById("productAttributeForm").getElementsByTagName("INPUT");
	for( i = 0 ; i < colors.length ; ++i ) {
		colors[i].checked = false;
	}
	
	elt.parentNode.getElementsByTagName("INPUT")[0].checked = true;
	
	updateProductAttributes( elt.parentNode.getElementsByTagName("INPUT")[0],null,null,true);
}


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

function switchOnlyProductColor( imageURL ) {
	resetSelectedDetailImage();
	var myAjax = new Ajax.Updater("product_img_container", imageURL, {method: 'get', parameters: "", evalScripts: true});
	
}



// HANDLE CHANGE OF PRODUCT COLORS -------------------------------------------
function switchScene7Image( elt ) {

	var sourceImage =elt.getAttribute("imageurl");	
	var Print_name  = document.getElementById("Print_Name").value;
	var Print_nr   	= document.getElementById("Print_Nr").value;
	var Print_sku   	= document.getElementById("ProductVariationSKU").value;
		
		
	if(!validatePrintAttributes())
		return false;
	
	
 	Print_name=encodeURI(Print_name);
 	
	resetSelectedDetailImage();	
	sourceImage=sourceImage+'&Scene7_Sku='+Print_sku+'&Print_Name='+Print_name+'&Print_Nr='+Print_nr;	
		
	if(sourceImage != "" ) {		
		var myAjax = new Ajax.Updater("product_scene7_container", sourceImage, {method: 'get', parameters: "", evalScripts: true});
	}	
	
	var subInput = document.getElementById("attrsubmitvalue");
	var shopUUID = document.getElementById("ShopUUID");	
	var productCategoryUUID = document.getElementById("ProductCategoryUUID");
	

	updateProductAttributes( subInput,shopUUID.value,productCategoryUUID.value );	
	
	
}


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 == '')){
			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)){
			selectVariationsMessage("Namn får bara innehålla mellanslag, 0-9, a-ö och A-Ö.");			
			return false;
		}					
		if(!print_Nr.value.match(nrValidation)){		
			selectVariationsMessage("Nummer får bara innehålla 0-9");
			return false;
		}		
	}	
	return true;
}



// HANDLE CHANGE OF PRODUCT ATTRIBUTES -------------------------------------------
function updateProductAttributes( elt, shopUUID,productCategoryUUID,notUpdatePrice ) {
		
	var queryString	= "";
	var attrForm=null;
	if(elt.form){
		var attrForm = elt.form;
	}
	else if(elt){
		attrForm = elt;
	}
	
	

	for(var i=0; i < attrForm.length; i++) {
		if( ( attrForm.elements[i].tagName == "SELECT" && attrForm.elements[i].value != "" ) 
		|| ( attrForm.elements[i].tagName == "INPUT"
			&& ( attrForm.elements[i].checked == true 
				|| attrForm.elements[i].id == "attrsubmitvalue"
				|| attrForm.elements[i].id == "ProductRefID"
				|| attrForm.elements[i].id == "Print_Name"
				|| attrForm.elements[i].id == "Print_Nr"
				|| attrForm.elements[i].id == "isEKiosk"
				)
			)			
		) {			
			queryString += attrForm.elements[i].name +"="+ attrForm.elements[i].value +"&";
		}
	}
	queryString += "shopUUID="+shopUUID+"&productCategoryUUID="+productCategoryUUID+"&Quantity="+document.getElementById("Quantity").value;
	var myAjax = new Ajax.Updater("product_attribute_container", attrForm.action , {method: 'post', parameters: queryString, evalScripts: true});

	
	var productRefId=document.getElementById("ProductRefID").value;
	if(!notUpdatePrice)
		updatePricing(productRefId);
}


function updatePricing(productRefId) {

	var pricePipeline=document.getElementById("pricePipeline").innerHTML;
	if(productRefId){
		var priceAjax = new Ajax.Updater("product_price_info", pricePipeline , {method: 'post', parameters: "ProductVariantRefID="+productRefId, evalScripts: true});
	}
}

function showLargeImage( url ) {
	alert(url);

}

function setSubmitValue( elt ) {
	disableLink('buyButton');
	if(!validatePrintAttributes()){
		return false;
	}
	
	if(document.getElementById('notInStore')){
		hideLoading();
		hideElement('add_to_cart');
		return false;
	}
			
	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;
	}
		
	var subInput = document.getElementById("attrsubmitvalue");
	var shopUUID = document.getElementById("ShopUUID");	
	var productCategoryUUID = document.getElementById("ProductCategoryUUID");	
	
	subInput.value = "addToCart";	
		
	updateProductAttributes( subInput,shopUUID.value,productCategoryUUID.value );	
	return false;
}

function showNotSelectedSizeMessage(){
	document.getElementById('notSelectedSize').style.display="block";
	hideLoading();
	hideElement('add_to_cart');
	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) {
		selectedImage = document.getElementById('productImageEnlarge'); //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");
	}
}

// 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;
}

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

function viewLongProductDescription(){
	showElement('longDescription');
	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");
} 