	/* For Compare functionality
	 * Gets the product codes selected already from previous pages
	 * Collects all the checked boxes in the current page
	 * Updates the product code list and sets product code list to
	 * product compare list property of product compare business object  
	*/
	function productCompare(totalItems){
		var prodArray= new Array();
		var existArray=document.getElementById("PRODUCT_COMPARE<>product_compare_list").value;
		var tokenOld=existArray.split(",");
		for(var checkIndex=1, arrayIndex=0;checkIndex<= totalItems;checkIndex++)
		{
			if(document.getElementById("compare2"+checkIndex).checked)
			{		
				prodArray[arrayIndex]=document.getElementById("compare2"+checkIndex).value;
				arrayIndex++;
			}else{
				if(existArray){
				for(var existIndex=0;existIndex<tokenOld.length;existIndex++){
					if(tokenOld[existIndex]==document.getElementById("compare2"+checkIndex).value){						
						existArray=existArray.replace(tokenOld[existIndex],"");
						existArray=existArray.replace(",,",",");
					}
				}
				}
			}
		}
		if(existArray){
		var token=existArray.split(",");
		for(var foundIndex=0;foundIndex<token.length;foundIndex++){
			var found=false;
			arrayIndex=prodArray.length;
			for(var prdArrayIndex=0;prdArrayIndex<prodArray.length;prdArrayIndex++){
				if(token[foundIndex]==prodArray[prdArrayIndex]){
					found=true;
				}
			}
			if(found==false){
				prodArray[arrayIndex]=token[foundIndex];
				arrayIndex++;
			}
		}
		}	
		document.getElementById("PRODUCT_COMPARE<>product_compare_list").value=prodArray;
	}
	/*
	 * for compare on multiple pages on click of a different page,
	 * the product codes checked are appended to the URL
	 */
	function productComparePagination(totalItems,currentId){
		var url= currentId.href;
		productCompare(totalItems);
		var fullURL=parent.document.URL;
		var finalURL= url + "&compareList="+document.getElementById("PRODUCT_COMPARE<>product_compare_list").value;
		currentId.href=finalURL;
	}
	/*for zoom functionality 
	 * passing large image path and setting
	 * the image path to src attribute of large image in zoom window
	 */
	function passIdToZoomWindow(largeImagePath){
		var zoomImage=document.getElementById("zoomImage");
		zoomImage.setAttribute("src",largeImagePath);
		$('#zoomImage').css({'height':400+'px','width':400+'px','top':0+'px','left':0+'px'});
		
		
         $(".ui-slider-handle").css('left', 0); 
		
	}
	/* for opening get estimate page
	 * when 'see delivery estimates for other items in order' link
	 * from product details page is clicked 
	 * getEstimate page is opened
	 */
	function openGetEstimate(){
		document.getElementById("estimateDeliveryForm").click();
		}
	function addToCart_Validator()
	{
			if(document.getElementById("price-panel-select-size")){
	        if (document.getElementById("price-panel-select-size").selectedIndex <= 0)
	                {
	                alert("Please select a size.");
	                document.getElementById("price-panel-select-size").focus();
	                return (false);
	                }        
			}
			if (document.getElementById("price-panel-select-colour")){
	        if (document.getElementById("price-panel-select-colour").selectedIndex <= 0)
	                {
	                alert("Please select a colour.");
	                document.getElementById("price-panel-select-colour").focus();
	                return (false);
	                }
			}
	}	
	function addorupdatewishlist(buttonID){
		if(document.getElementById(buttonID)){			
		document.getElementById(buttonID).click();
		}
	}
	function addorupdatewishlist1(buttonID){
		if(document.getElementById(buttonID)){			
		document.getElementById(buttonID).click();
		}
	}
	
	function selectWaranty(listPrice,salePrice) {
		document.getElementById("listPriceId").value=listPrice;
		document.getElementById("salePriceId").value=salePrice;		
	}
	
	function setSelectedWarranty(skuId,prdId,listPrice,salePrice,warSkuCode,warProductCode){
		document.getElementById("warrSkuId").value=skuId;
		if(document.getElementById("wlWarrSkuId")){
			document.getElementById("wlWarrSkuId").value=skuId; //for wishlist form
		}
		if(document.getElementById("wlWarrCode")){
			document.getElementById("wlWarrCode").value=warSkuCode; // for wishlist form
		}
		document.getElementById("warrProductId").value=prdId;
		document.getElementById("warrListPriceId").value=listPrice;
		document.getElementById("warrSalePriceId").value=salePrice;
		document.getElementById("addedWarrantyId").value=warProductCode;
		document.getElementById("addedWLWarrantyId").value=warProductCode;
	}
	
	function setSelectedInstallation(skuId,prdId,listPrice,salePrice,flag){
		document.getElementById("insSkuId").value=skuId;
		document.getElementById("insProductId").value=prdId;
		document.getElementById("insListPriceId").value=listPrice;
		document.getElementById("insSalePriceId").value=listPrice;
	}
	
	function setWarrantySkuId(skuid) {
		document.getElementById("warrantySku").value=skuid;		
	}
	
	function updateWishList(itemIndex,size){
		var updateItemIndex="updateQty"+itemIndex;
		var newQtyIndex="newQty"+itemIndex;
		if((document.getElementById(updateItemIndex))&&(document.getElementById(newQtyIndex))){	
			document.getElementById(updateItemIndex).value= document.getElementById(newQtyIndex).value;
		}
		for(var index=0;index < size;index++){
			if(document.getElementById("remove"+index)){
				document.getElementById("remove"+index).value=false;
			}
			if(document.getElementById("removeLine"+index)){
				document.getElementById("removeLine"+index).value=false;
			}
		}
		if(document.getElementById("updateWLQty")){
			document.getElementById("updateWLQty").click();
		}
	}
	function updateWishListAllItems(size){
		var updateItemIndex;
		var newQtyIndex;
		for(var index=0;index< size; index++) {
			updateItemIndex="updateQty"+index;
			newQtyIndex="newQty"+index;
			
			if((document.getElementById(updateItemIndex))&&(document.getElementById(newQtyIndex))){	
				document.getElementById(updateItemIndex).value= document.getElementById(newQtyIndex).value;
			}
			
			if(document.getElementById("remove"+index)){
				document.getElementById("remove"+index).value=false;
			}
			if(document.getElementById("removeLine"+index)){
				document.getElementById("removeLine"+index).value=false;
			}
			
		}
		
		if(document.getElementById("updateWLQty")){
			document.getElementById("updateWLQty").click();
		}
		
	}
	
	function removeItemFromWishList(wishListIndex,wishSize,action){
		var removeItem="remove";
		var removeLine="removeLine";
		for(var wIndex=0;wIndex < wishSize;wIndex++){
			if(wishListIndex == wIndex){
				if(document.getElementById(removeItem+wishListIndex)){
					document.getElementById(removeItem+wishListIndex).value=true;
				}
				if(document.getElementById(removeLine+wishListIndex)){
					document.getElementById(removeLine+wishListIndex).value=true;
				}
				if((document.getElementById("updateQty"+wishListIndex))&&(document.getElementById("newQty"+wishListIndex))){	
					document.getElementById("updateQty"+wishListIndex).value= document.getElementById("newQty"+wishListIndex).value;
				}
			} else{
				if(document.getElementById(removeItem+wIndex)){
					document.getElementById(removeItem+wIndex).value=false;
				}
				if(document.getElementById(removeLine+wIndex)){
					document.getElementById(removeLine+wIndex).value=false;
				}
			}
		}
		if(document.getElementById(action)){
			document.getElementById(action).click();
		}		
	}
	function removeWarrantyItemFromWishList(skuId,wishSize,action) {
		var removeLine="removeLine";
		alert("in removeWarrantyItemFromWishList");
				if(document.getElementById(removeLine+skuId)){	
					alert("in if loop");
					document.getElementById(removeLine+skuId).value=true;
					alert("" + (removeLine+skuId)+ " " + document.getElementById(removeLine+skuId).value);
				}	
		
		if(document.getElementById(action)){
			alert("action " + action);
			document.getElementById(action).click();
		}		
	}
	
	function removeAllItemFromWishList(wishListSize){		
		for(var index=0;index < wishListSize;index++){
			if(document.getElementById("remove"+index)){
				document.getElementById("remove"+index).value=true;
			}
			if((document.getElementById("updateQty"+index))&&(document.getElementById("newQty"+index))){	
				document.getElementById("updateQty"+index).value= document.getElementById("newQty"+index).value;
			}
		}
		if(document.getElementById("moveToCart")){
			document.getElementById("moveToCart").click();
		}	
	}
	function addOneProductToBasket(prdIndex,listSize){
		for(var addIndex=0;addIndex < listSize;addIndex++){
			if(addIndex==prdIndex){
				if(document.getElementById("qtyDesired"+addIndex)){
					document.getElementById("qtyDesired"+addIndex).value=1;
				}
			}
			else {
				if(document.getElementById("qtyDesired"+addIndex)){
					document.getElementById("qtyDesired"+addIndex).value=0;
				}				
			}	
		}
		if(document.getElementById("moveToCart")){
		document.getElementById("moveToCart").click();
		}
	}
	

	// American Numbering System
	var th = ['','thousand','million', 'billion','trillion'];
	// uncomment this line for English Number System
	// var th = ['','thousand','million', 'milliard','billion'];
	var dg = ['zero','one','two','three','four', 'five','six','seven','eight','nine'];
	var tn = ['ten','eleven','twelve','thirteen', 'fourteen','fifteen','sixteen', 'seventeen','eighteen','nineteen'];
	var tw = ['twenty','thirty','forty','fifty', 'sixty','seventy','eighty','ninety'];

	function toWords(s){
		s = s.toString();
		s = s.replace(/[\, ]/g,'');
		if (s != String(parseFloat(s)))
			document.getElementById("noInWords").value = 'not a number';	
		
		var x = s.indexOf('.');
		
		if (x == -1) 
			x = s.length; 
		
		if (x > 15) 
			document.getElementById("noInWords").value =  'too big';
		
		var n = s.split(''); 
		var str = ''; 
		var sk = 0;
		
		for (var i=0; i < x; i++) {
			if ((x-i)%3==2) {
				if (n[i] == '1') {
					str += tn[Number(n[i+1])] + ' ';
					i++;
					sk=1;
				} 
				else if (n[i]!=0) {
					str += tw[n[i]-2] + ' ';
					sk=1;
				}
			} else if (n[i]!=0) {
				str += dg[n[i]] +' '; 
				if ((x-i)%3==0)
				str += 'hundred ';
				sk=1;
			} 
			if ((x-i)%3==1) {
				if (sk) 
					str += th[(x-i-1)/3] + ' ';
					sk=0;
			}
		}
		if (x != s.length) {
			var y = s.length; 
			str += 'point ';
			for (var i=x+1; i<y; i++) 
				str += dg[n[i]] +' ';} 			
			document.getElementById("noInWords").innerHTML= str.replace(/\s+/g,' ');
	}
	
	
	function callSiteIntelligence(productCode) {
		sitracker.productShownLarge(new SITEINTEL.ProductView(productCode));
	}
	
	function product_image_info_function_caller(largeImagePath,productCode)	{
		passIdToZoomWindow(largeImagePath);		
		callSiteIntelligence(productCode);

	}
	

