var xmlhttp;
var result ='';	

function validateSKU(prodID,attrID,size)
{
 var ctrl = "rdo";
 var attrValue = "";
 var attributeValue ='';
 for ( var i =0; i< size;i++)
 {
 	ctrl = "rdo"+i;
 	if (document.getElementById(ctrl).checked ==true)
 	{
 		attrValue = document.getElementById(ctrl).value;
 		attributeValue+= attrValue+"~~~"; 
 	}
 }
 var randomNumber=Math.random();
 var url= urlAppender + '/addtocart.action?ProductID='+prodID+'&AttributeID='+attrID+'&RandomNumber='+randomNumber;//dirPath+
 
 try
	{
		xmlhttp=new XMLHttpRequest();
	}
	catch (e)
	{		
		//Internate Explorer
		try
		  {
		  xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
		  }
		catch (e)
			{
			try
		 	{
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		 	}
			catch (e)
			{
			alert("Your browser does not support AJAX!");
			return false;
			}
	  	}
	}
	xmlhttp.onreadystatechange=FetchAddtoCartData
	for(var i=0;i<attributeValue.length;i++){
		
		c = attributeValue.charCodeAt(i);
		
		if(c>127 || c==34){
			var re = new RegExp(attributeValue.charAt(i));
			attributeValue = attributeValue.replace(re, "&#"+c+";");
		}
	}
	xmlhttp.open("POST",url,true);
 	xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
 	xmlhttp.setRequestHeader("Value", attributeValue);
 	attributeValue="";
 	xmlhttp.send(null);
 }
function FetchAddtoCartData()
{
	if(xmlhttp.readyState==4)
	{
		if (xmlhttp.status ==200)
		{

			var subStrResponse =xmlhttp.responseText ;
			if (subStrResponse == "")
			{
				document.getElementById('lblMessage').innerHTML = "Not a valid sku";	
			}
			window.location.href = urlAppender+'/shoppingcart.shtml';
		}
	}
}
function AjaxConfigInit(url ,value)
{
	try
	{
		xmlhttp=new XMLHttpRequest();
	}
	catch (e)
	{		
		//Internate Explorer
		try
		  {
		  xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
		  }
		catch (e)
			{
			try
		 	{
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		 	}
			catch (e)
			{
			alert("Your browser does not support AJAX!");
			return false;
			}
	  	}
	}
	
	xmlhttp.onreadystatechange=AddtocartAction
	
	xmlhttp.open("POST",url,true);
	xmlhttp.send(null);
	
}
//To add product to shopping cart (from product page)
function addtoCartFromProduct(productID, sku)
{
	var randomNumber=Math.random();
	var url= urlAppender + '/addtocartproduct.action?ProductID='+productID+'&SKU='+sku+'&RandomNumber='+randomNumber;//dirPath+
	AjaxConfigInit(url ,'ADDTOCARTPRODUCT');
}
function AddtocartAction()
{
	if(xmlhttp.readyState==4)
	{
		if (xmlhttp.status ==200)
		{
			var subStrResponse =xmlhttp.responseText ;
			window.location.href = urlAppender+'/shoppingcart.shtml';
		}
	}
}

function addToCartAccessoriesAjax(id, pageType)
{
	var addedItem ="";
	var randomNumber=Math.random();
	addedItem = id;
	var url= urlAppender + '/addtocartAccessories.action?addedItem='+addedItem+'&RandomNumber='+randomNumber;//dirPath+
	
	try
		{
		//Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
		}
	catch (e)
		{		
		//Internate Explorer
		try
		  {
		  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		  }
		catch (e)
			{
			try
		 	{
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		 	}
			catch (e)
			{
			alert("Your browser does not support AJAX!");
			return false;
			}
	  	}
	}
	xmlHttp.onreadystatechange=function()
	{
  	if(xmlHttp.readyState==4)
		{
		if (xmlHttp.status ==200)
			{	
				if(pageType == 'accessories')
				{
					var skuAddedCount = parseInt(document.getElementById("hdnprosku_"+id).value);
					document.getElementById("spanprosku_"+id).innerHTML = skuAddedCount;
					skuAddedCount = skuAddedCount+1
					document.getElementById("hdnprosku_"+id).value = skuAddedCount;
				}
				document.getElementById("div_"+id).style.display = 'block';
				if(pageType == 'relateditem')
					shoppingCartAjax();				
			}
		}
	}
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
	 
}
function shoppingCartAjax()
{
	var randomNumber=Math.random();
 	var url= urlAppender + '/shoppingcartajax.action?RandomNumber='+randomNumber;//dirPath+
	showWaitImage();
	try
	{
		xmlhttp=new XMLHttpRequest();
	}
	catch (e)
	{		
		//Internate Explorer
		try
		  {
		  xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
		  }
		catch (e)
			{
			try
		 	{
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		 	}
			catch (e)
			{
			alert("Your browser does not support AJAX!");
			return false;
			}
	  	}
	}
	xmlhttp.onreadystatechange=function()
	{
		if(xmlhttp.readyState==4)
		{
			if (xmlhttp.status ==200)
			{
				document.getElementById('divShoppingCart').innerHTML = "";
				document.getElementById('divShoppingCart').innerHTML = xmlhttp.responseText;
				hideWaitImage();
			}
		}
	}
	xmlhttp.open("POST",url,true);
	xmlhttp.send(null);
}
// To update shopping cart (to remove added product)
function removeFromCart(deleteType,position)
{
	var xmlHttp;
	var randomNumber = Math.random();
	var url= urlAppender + '/removefromcart.action?deleteType='+deleteType+'&position='+position+'&RandomNumber='+randomNumber;//dirPath+
	showWaitImage();
	try
		{
		//Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
		}
	catch (e)
		{		
		//Internate Explorer
		try
		  {
		  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		  }
		catch (e)
			{
			try
		 	{
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		 	}
			catch (e)
			{
			alert("Your browser does not support AJAX!");
			return false;
			}
	  	}
	}
	xmlHttp.onreadystatechange=function()
	{
  	if(xmlHttp.readyState==4)
		{
		if (xmlHttp.status ==200)
			{	
				document.getElementById('dvCheckoutMain').innerHTML = xmlHttp.responseText;
				//window.location.href = urlAppender+'/shoppingcart.shtml';
				hideWaitImage();
			}
		}
	}
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}
// To update shopping cart (to update quantity)
function updateCart(count, countGift)
{
	var xmlHttp;
	var randomNumber = Math.random();
	var quantityArray = "";
	var deletedItem = "";
	var ctrl = "";
	var ctrl1 = "";
	for (var i =0; i< count ;i++)
	{
	 	//ctrl = "chkAddedItem"+i;
	 	ctrl1 = "quantity"+i;
	 	//if(document.getElementById(ctrl).checked == true)
	 	//{
	 	//	deletedItem += i+"~";
	 	//}
	 	if(isNaN(document.getElementById(ctrl1).value))
		{
			alert('Not a valid quantity.')
			return false;
		}
	 	quantityArray += document.getElementById(ctrl1).value + "~";
	}
	var quantityArrayGift = "";
	var deletedItemGift = "";
	for (var i =0; i< countGift ;i++)
	{
	 	ctrl1 = "quantityGift"+i;
	 	if(isNaN(document.getElementById(ctrl1).value))
		{
			alert('Not a valid quantity.')
			return false;
		}
	 	quantityArrayGift += document.getElementById(ctrl1).value + "~";
	}
	var url= urlAppender + '/updatecart.action?quantityArray='+quantityArray+'&deletedItem='+deletedItem+'&quantityArrayGift='+quantityArrayGift+'&deletedItemGift='+deletedItemGift+'&RandomNumber='+randomNumber;//dirPath+
	showWaitImage();
	try
		{
		//Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
		}
	catch (e)
		{		
		//Internate Explorer
		try
		  {
		  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		  }
		catch (e)
			{
			try
		 	{
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		 	}
			catch (e)
			{
			alert("Your browser does not support AJAX!");
			return false;
			}
	  	}
	}
	xmlHttp.onreadystatechange=function()
	{
  	if(xmlHttp.readyState==4)
		{
		if (xmlHttp.status ==200)
			{	
				document.getElementById('dvCheckoutMain').innerHTML = xmlHttp.responseText;						
				//window.location.href = urlAppender+'/shoppingcart.shtml';
				hideWaitImage();
			}
		}
	}
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function setRowbgColor(totalproducts)
{
	 
	 var ctrl = "chkRelatedProduct";
	 for ( var i =0; i< totalproducts ;i++)
	 {
	 	ctrl = "chkRelatedProduct"+i;
	 	var ctrl1 = "tblRelatedProduct"+i;
	 	if (document.getElementById(ctrl).checked == true)
	 	{
	 		document.getElementById(ctrl1).style.backgroundColor = "#F0F4F6";
	 	}
	 	else
	 	{
	 		document.getElementById(ctrl1).style.backgroundColor = "#FFFFFF";
	 	}
	 }
	
}
/* not used currently */
function setRowbgColor1(totalproducts)
{
	 
	 var ctrl = "chkRelatedAccessories";
	 for ( var i =0; i< totalproducts ;i++)
	 {
	 	ctrl = "chkRelatedAccessories"+i;
	 	var ctrl1 = "tblRelatedAccessories"+i;
	 	if (document.getElementById(ctrl).checked == true)
	 	{
	 		document.getElementById(ctrl1).style.backgroundColor = "#F0F4F6";
	 	}
	 	else
	 	{
	 		document.getElementById(ctrl1).style.backgroundColor = "#FFFFFF";
	 	}
	 }
}
//Function to refresh configuration options
var basePriceToSet = 0;
function refreshConfig(pos, size, attrNumber, imagePath)
{
	var attributeCount = 0;
	cpos = 0;
	cpos = parseInt(pos);
	attributeCount = document.getElementById('hdnAttributeCount').value;
	var startIndex = 0;
	var currentStartIndex = 0;
	for(var i=0;i<attributeCount;i++)
	{
		var temp = 0;
		var j = i+1;
		temp = parseInt(document.getElementById('attrStartCount'+i).value);
		if(cpos >= temp)
		{
			startIndex = document.getElementById('attrStartCount'+j).value;
			var k = j-1;
			currentStartIndex = document.getElementById('attrStartCount'+k).value;
		}
	}
	var chkdCount = 0;
	var newSelected = "";
	var flagNewSelected = 0;
	for(var i=0;i<=cpos;i++)
	{
		var tempNewSelected = "";
		if(document.getElementById('rdo'+i).checked == true)
		{
			if(flagNewSelected==0)
			{
				newSelected = document.getElementById('hdnSKUAll'+i).value;
				flagNewSelected = 1;
			}
			else
			{
				var newSelectedArr = newSelected.split(',');
				var nextSelectedArr = document.getElementById('hdnSKUAll'+i).value.split(',');
				for(var j=1;j<newSelectedArr.length;j++)
					for(var k=1;k<nextSelectedArr.length;k++)
						if(newSelectedArr[j] == nextSelectedArr[k])
						{
							tempNewSelected = tempNewSelected +','+ newSelectedArr[j];
						}	
				newSelected = tempNewSelected;
			}	
			chkdCount++;
		}
		
	}
	var basePriceStr = document.getElementById('hdnBasePrice').value;
	var basePrice = 0.0;
	basePrice = parseFloat(basePriceStr).toFixed(2); 

	/////////////////////////////////////////////////////////////////////////////
	//Deciding about disbale or not
	for(var i=parseInt(startIndex);i<size;i++)
	{
		
		var hdnSKUAllArr = document.getElementById('hdnSKUAll'+i).value.split(',');
		var flagShowAttr = 0;
		for(var j=1; j<hdnSKUAllArr.length; j++)
		{
			var ns = new String();
			ns = newSelected.toString();
			var newSelectedArr = ns.split(',');
			for(var k=1; k<newSelectedArr.length; k++)
			{
				if(hdnSKUAllArr[j]==newSelectedArr[k])
				{
					flagShowAttr = 1;
					break;
				}
			}
			if(flagShowAttr==1)
				break;
		}
		if(flagShowAttr==1)
			document.getElementById('hdnShowFlag'+i).value = 'Y';
		else
			document.getElementById('hdnShowFlag'+i).value = 'N';
	}
	
	////////////////////////////////////////////////////////////////////////////
	var startSelectedIndex = document.getElementById('attrStartCount'+attrNumber).value;
	var endSelectedIndex = document.getElementById('attrStartCount'+(parseInt(attrNumber)+1)).value;
	for(var i=parseInt(startSelectedIndex); i<parseInt(endSelectedIndex); i++)
	{
		document.getElementById('hdnCheckFlag'+i).value = 'N';
		if(document.getElementById('rdo'+i).checked == true)
		{
			document.getElementById('hdnCheckFlag'+i).value = 'Y';
		}
	
	}
	for(var i=parseInt(attrNumber)+1; i < parseInt(attributeCount); i++)
	{
		var startCurrentIndex = document.getElementById('attrStartCount'+i).value;
		var endCurrentIndex = document.getElementById('attrStartCount'+(i+1)).value;
		var flagShowAttr = 0;
		
		for(var j=parseInt(startCurrentIndex); j<parseInt(endCurrentIndex); j++)
		{
			if(document.getElementById('rdo'+j).checked == true)
			{
				var currentSKUArr = document.getElementById('hdnSKUAll'+j).value.split(',');
				
				var ns = new String();
				ns = newSelected.toString();
				var newSelectedArr = ns.split(',');
				
				for(var k=1; k<currentSKUArr.length; k++)
				{
					for(var l=1; l<newSelectedArr.length; l++)
					{
						
						if(currentSKUArr[k]==newSelectedArr[l])
						{
							flagShowAttr = 1;
							
							///////To decide newSelected SKUs
							var newSelectedArr1 = newSelected.split(',');
							var nextSelectedArr = document.getElementById('hdnSKUAll'+j).value.split(',');
							tempNewSelected = "";
							for(var m=1;m<newSelectedArr1.length;m++)
								for(var n=1;n<nextSelectedArr.length;n++)
									if(newSelectedArr1[m] == nextSelectedArr[n])
									{
										tempNewSelected = tempNewSelected +','+ newSelectedArr1[m];
									}	
							newSelected = tempNewSelected;
							////////End of neSelected Decision
							break;
						}
					}
					if(flagShowAttr==1)
						break;
				}
			}
		}
///////////////////////////////////////
		for(var j=parseInt(startCurrentIndex); j<parseInt(endCurrentIndex); j++)
			{
				var currentSKUArr = document.getElementById('hdnSKUAll'+j).value.split(',');
				//////////////////////
				var flagPK = 0;
				for(var k=1; k<currentSKUArr.length; k++)
				{
					for(var p=1; p<newSelectedArr.length; p++)
					{
						if(currentSKUArr[k]==newSelectedArr[p])
						{
							flagPK = 1;
							break;
						}
					}
					if(flagPK == 1)
						break;
				}	
				if(flagPK == 1)
					document.getElementById('hdnShowFlag'+j).value = 'Y';
				else
					document.getElementById('hdnShowFlag'+j).value = 'N';
			
		}

//////////////////////////////////////
		if(flagShowAttr == 0)
		{
			for(var j=parseInt(startCurrentIndex); j<parseInt(endCurrentIndex); j++)
			{
				var currentSKUArr = document.getElementById('hdnSKUAll'+j).value.split(',');
				
				var flagCheckAttr = 0;
				document.getElementById('hdnCheckFlag'+j).value = 'N';
				for(var k=1; k<currentSKUArr.length; k++)
				{
					if(currentSKUArr[k]==newSelectedArr[1])
					{
						///////To decide newSelected SKUs
						var newSelectedArr1 = newSelected.split(',');
						var nextSelectedArr = document.getElementById('hdnSKUAll'+j).value.split(',');
						tempNewSelected = '';
						for(var m=1;m<newSelectedArr1.length;m++)
							for(var n=1;n<nextSelectedArr.length;n++)
								if(newSelectedArr1[m] == nextSelectedArr[n])
								{
									tempNewSelected = tempNewSelected +','+ newSelectedArr1[m];
								}	
						newSelected = tempNewSelected;
						////////End of neSelected Decision
						document.getElementById('hdnCheckFlag'+j).value = 'Y';
						flagCheckAttr = 1;
						break;
					}
				}
			}
		}
		
	}
	var selectedPrice = "";
	for(var i=0;i<size;i++)
	{
		if(document.getElementById('hdnCheckFlag'+i).value=="Y")
		{
			selectedPrice = selectedPrice+"~"+ document.getElementById('hdnPrice'+i).value;
		}	
	}
	var tempSelectedPrice = new String();
	tempSelectedPrice = selectedPrice.toString();
	var selectedPriceArr = tempSelectedPrice.split('~');
			
	var extraPrice = 0.0;
	var countSelectedValue = 0;
	var countSelected = 1;
	var prevAttrID = parseInt(document.getElementById('hdnAttributeID'+0).value);
	var colorAttrID = 29;
	var colorValue = "";
	for(var i=0;i<size;i++)
	{
		var attrIDTemp = parseInt(document.getElementById('hdnAttributeID'+i).value);
		var valueTemp = document.getElementById('hdnValue'+i).value;
		
		if(prevAttrID != attrIDTemp)
		{
			countSelected++;
			prevAttrID = attrIDTemp;
		}	
		var attrShowPrice = parseFloat(document.getElementById('hdnPrice'+i).value)-parseFloat(selectedPriceArr[countSelected]);
		var attrShowPriceString = '';
		if(attrShowPrice > 0)
		{
			var attrShowPrice_Temp = attrShowPrice.toFixed(2);
			attrShowPriceString = '[Add '+ document.getElementById('hidden.common.currency').value +attrShowPrice_Temp+']';
		}
		else if(attrShowPrice < 0)
		{
			var attrShowPrice_Temp = 0.0-attrShowPrice;
			attrShowPrice_Temp = attrShowPrice_Temp.toFixed(2);
			attrShowPriceString = '[Subtract '+ document.getElementById('hidden.common.currency').value +attrShowPrice_Temp+']';
		}	
		
		
		var attributeNumber = document.getElementById('hdnAttributeNumber'+i).value;
		if(document.getElementById('hdnShowFlag'+i).value=="Y")
		{
			if(document.getElementById('hdnCheckFlag'+i).value=="Y")
			{
				document.getElementById('tdConfig'+i).className= 'bgcolor';
				extraPrice = parseFloat(extraPrice) + parseFloat(document.getElementById('hdnPrice'+i).value)-parseFloat(document.getElementById('attrBasePrice'+i).value);
				if(document.getElementById('hdnOriginalValue'+countSelectedValue).value == valueTemp)
				{
					document.getElementById('tdAttrSelectedValues'+countSelectedValue).style.backgroundColor = '#FFFFFF';
				}
				else
				{
					document.getElementById('tdAttrSelectedValues'+countSelectedValue).style.backgroundColor = '#ECF4FF';
				}
				document.getElementById('tdAttrSelectedValues'+countSelectedValue).innerHTML = valueTemp;
				
				if(document.getElementById('hdnAttributeID'+i).value == 29)
				{
					colorValue = valueTemp;
				}
				var respText = "<input type='radio' name='radio"+attrIDTemp+"' id='rdo"+i+"' value='"+valueTemp+"' checked onClick=\"refreshConfig('"+i+"','"+size+"','"+attributeNumber+"','"+imagePath+"');\"/>&nbsp;"+valueTemp+"&nbsp;&nbsp;";
				document.getElementById('dvConfiguration'+i).innerHTML=respText;
				countSelectedValue++;
			}
			else
			{
				document.getElementById('tdConfig'+i).className= 'bgcolor1';
				var respText = "<input type='radio' name='radio"+attrIDTemp+"' id='rdo"+i+"' value='"+valueTemp+"'  onClick=\"refreshConfig('"+i+"','"+size+"','"+attributeNumber+"','"+imagePath+"');\"/>&nbsp;"+valueTemp+"&nbsp;&nbsp;"+attrShowPriceString;
				document.getElementById('dvConfiguration'+i).innerHTML=respText;
			}	
			
		}
		else
		{
			document.getElementById('tdConfig'+i).className= 'bgcolor2';
			var respText = "<input type='radio' name='radio"+attrIDTemp+" ' id='rdo"+i+"' disabled='disabled' value='"+valueTemp+"' onClick=\"refreshConfig('"+i+"','"+size+"','"+attributeNumber+"','"+imagePath+"');\"/>&nbsp;"+valueTemp+"&nbsp;&nbsp;"+attrShowPriceString;
			document.getElementById('dvConfiguration'+i).innerHTML=respText;
		}
	}
	if(colorValue != "")
	{
		colorValue = colorValue.replace(' ','');
		colorValue = colorValue.toLowerCase();
		var imageRespText = "<img src='"+imagePath+'_'+colorValue+".jpg' height='100px' border='0'>";
		document.getElementById('tdColorImage').innerHTML=imageRespText;
	}
	
	basePrice = parseFloat(basePrice) + parseFloat(extraPrice);
	basePriceToSet = basePrice;
	
		if(document.all) {
//			document.getElementById('configProductPrice').style.filter="blendTrans(duration=2)";
//			document.getElementById('configProductPrice').style.filter="blendTrans(duration=crossFadeDuration)";
//			document.getElementById('configProductPrice').filters.blendTrans.Apply();
//			setTimeout('setPrice()', 700);
			
//			$("#configProductPrice").fadeIn(250).fadeTo(500, 1).fadeOut(250).fadeIn(250);
			
//			$("#configProductPrice").fadeTo("slow", 0.5, function(){document.getElementById('configProductPrice').innerHTML=document.getElementById('hidden.common.currency').value+parseFloat(basePrice).toFixed(2);});
//			$('#configProductPrice').fadeOut('slow', function() {document.getElementById('configProductPrice').innerHTML=document.getElementById('hidden.common.currency').value+parseFloat(basePrice).toFixed(2);});
			document.getElementById('configProductPrice').innerHTML=document.getElementById('hidden.common.currency').value+parseFloat(basePrice).toFixed(2);
		}
		else
		{
			$(document.getElementById('configProductPrice')).fadeTo("slow", 0.1);
			setTimeout('setPrice()', 700);
		}
		if (document.all) {
			//document.getElementById('configProductPrice').filters.blendTrans.Play();
			//document.getElementById('configProductPrice').innerHTML=document.getElementById('hidden.common.currency').value+parseFloat(basePrice).toFixed(2);
		}
		else
		{
			$(document.getElementById('configProductPrice')).fadeTo("slow", 1.0);
		}
	
}
function setPrice()
{
	document.getElementById('configProductPrice').innerHTML=document.getElementById('hidden.common.currency').value+parseFloat(basePriceToSet).toFixed(2);
}
