// JavaScript Document
var altImageArray = new Array();
var altViewsCountArray = new Array();
var defaultAlertMessage = "Right-click functionality is disabled on "+WebDNSNAME+" images!";

function viewSelected(viewID)
{
    var position = new Number(viewID.substring(4));
    position--; // position is zero based!
    
    var i;
    for(i=3; i > 0; i--) 
    {
        var viewNumber = (new Number(i)).toString();
        var processingViewID = "view"+viewNumber;
        var view = document.getElementById(processingViewID);
        if(view != null)
        {   
            if(processingViewID == viewID)
            {	
                view.style.fontWeight = 'bolder';
                view.innerHTML = viewNumber;
            }
            else
            {	
                view.style.fontWeight = 'normal';                
                view.innerHTML = '<a class="prodImageView" href=javascript:viewSelected("' + processingViewID + '"); >'+ viewNumber +'</a>';
            }
        }
    }
	var mainImg = document.orderForm.prodShot_0.src;

	for (n=0;n<altImageArray.length ;n++ )
	{
		
		var ImagePath = altImageArray[n];
		var imgName = mainImg.substring(mainImg.indexOf("/graphics"));
		if(ImagePath.toLowerCase().indexOf(imgName.toLowerCase()) > -1)
		{
			skuIndex = n;
		}
	}

	// following if-else check the alternates views for a sku when swatch is clicked
	var altImageCount = altViewsCountArray[skuIndex];
	if (altImageCount == 3) // make visible if it was made hidden for some sku
	{
		document.getElementById("view3").style.visibility = "visible";	
	}
	else  // if there are two alternate images -- hide view 3
	{
		document.getElementById("view3").style.visibility = "hidden";
	}
	var path = altImageArray[skuIndex];
    var pathArr = new Array(4);
	
    if (path != null) 
	{
        pathArr = path.split("|");
        var altImgPath = pathArr[position];
        var altImg = new Array(2);
        altImg = altImgPath.split("*");

		var prdImgDiv =  document.getElementById("prodImgDiv");
		var prodId  =  document.orderForm.prodId.value;
		var k  =  document.orderForm.k.value;
		var isZoom = document.orderForm.isZoom;
		var isEHN = document.orderForm.isEHN;
		var akUrl = document.orderForm.akUrl.value;
		var prodImgSrc = eval('document.orderForm.prodShot_'+k);

		var zoomLink = document.getElementById("prodZoom");

		var productimage="";

		if (position == 0)
		{
			if(isZoom)
			{
				productimage = '<a href="javascript:zoom_prod();">';
				zoomLink.style.visibility = "visible";
			}
            
			else if (isEHN)
			{
				productimage = '<a href="javascript:showEnhanced"('+k+','+prodId+');">';
			}
		}
        else 
		{
			if(isZoom)
			{
				zoomLink.style.visibility = "hidden";
			}
		}

		productimage = productimage + '<img src='+altImg[0]+' border="0" hspace="0" vspace="0" WIDTH="237" HEIGHT="329" name=prodShot_'+k+' align="absmiddle" oncontextmenu="alert(defaultAlertMessage);return false;" >';

		if(position == 0 && (isZoom || isEHN))
		{
				productimage = productimage + '</a>';
		}
		prdImgDiv.innerHTML = productimage;
	}
} 

function altViewOnSwatchclick(hasAlternate, hasZoom)
{	
	if(hasAlternate == 'true')
	{
		viewSelected('view1');
	}
	else if ( document.getElementById("view3").style.visibility == "visible" ) // this if product has many swatches and skus have diff no. of alt views
	{
		document.getElementById("view3").style.visibility = "hidden";
	}
	var view = document.getElementById('View1');
	if (hasZoom)
	{
		var zoomLink = document.getElementById("prodZoom");
		zoomLink.style.visibility = "visible";
	}
}



















function showProdPopUp(thisUrl,thisName,theseParams,prodIndex)
{
	enhField = eval('document.orderForm.enh_'+prodIndex);
	if(enhField)
	{
		thisUrl= thisUrl + "&LargeImageURL=" + escape(enhField.value)
	}
	var sliceDescription = document.orderForm.sliceColorId;		
	if(sliceDescription)
	{
		thisUrl= thisUrl + "&description=" + escape(sliceDescription.value);
	}
	remote = open(thisUrl, thisName, theseParams);
}
function wipeStyles()
{
     var swspan=document.getElementsByTagName("h6");
     for (var i=0; i<swspan.length; i++)
	 {
          swspan[i].className=("swatchOff");
     }
}

function showEnhanced(prodIndex,productId)
{
   //enhField = document.orderForm.enh_0;
   enhField = eval('document.orderForm.enh_'+prodIndex);
   var sliceDescription = document.orderForm.sliceColorId;		
   var thisUrl;
   if (enhField)
   {
	    
      thisUrl = "stdProdPop.jsp?LargeImageURL=" + escape(enhField.value)+ "&displayTab=enh&productId="+productId;
   }
   if(sliceDescription)
   {
		thisUrl= thisUrl + "&description=" + escape(sliceDescription.value);
   }
   if (enhField)
	{
		remote = open(thisUrl, "largeImage", "width=532,height=545,left=0,top=0,scrolls=o,resizable=no");
	}
}

//Enhance  Pop Up for Related Products
function relShowEnhanced(prodIndex,productId)
{
   //enhField = document.orderForm.enh_0;
   enhField = eval('document.orderForm.enh_'+prodIndex);
   if (enhField)
   {
	    
      remote = open("stdProdPop.jsp?LargeImageURL=" + escape(enhField.value)+ "&displayTab=enh&showProdDet=true&productId="+productId, "largeImage", "width=532,height=545,left=0,top=0,scrolls=no,resizable=no");
   }
}

//  Traverse through the itemMap array to get the colors based on productId
//  and build a new array with color ids and descriptions

function relGetStringColors(pidSku)
{  
	var pidSkuArray = pidSku.split("|");
	productId = pidSkuArray[0];
	colorId = pidSkuArray[1];
	var strSizes = new Array();
	var j = 0;

	for(var i = 0; i < itemMap.length; i++)
	{
		if(itemMap[i].pid == productId && itemMap[i].cId == colorId)
		{
			strSizes[j] = itemMap[i].pid+"|"+itemMap[i].sku;
			j++;

			if (itemMap[i].avail == "OUT_OF_STOCK" || itemMap[i].avail == "NOT_AVAILABLE")
			{
				strSizes[j] = itemMap[i].sDesc + " - " +"Out Of Stock";
			}
			else
			{
				strSizes[j] = itemMap[i].sDesc;
			}
			j++;
		}
	}
	return strSizes;
}


function getStringColors(colorId,productId)
{
   var strSizes = new Array();
   var j = 0;

   for(var i = 0; i < itemMap.length; i++)
   {
     if(itemMap[i].pid == productId && itemMap[i].cId == colorId)
      {
         strSizes[j] = itemMap[i].pid+"|"+itemMap[i].sku;
         j++;
				 strSizes[j] = itemMap[i].sDesc;
         j++;
      }
   }
   return strSizes;
}





//  Populate color array to pass to updateSelector function

function relPopulateSizes(sel_element1, sel_element2,productId)
{
	var val = sel_element1.options[sel_element1.selectedIndex].value;
	var items = new Array();
    
	//  If user sets color dropdown back to "Color" reset the prod_ dropdown
	if (sel_element2.type == "select-one")
	{
		if(val == '')
		{
			var selectOneArray = new Array("","Select Size");
	
			items[items.length] = new Object();
			items[items.length-1].id = selectOneArray[0];
			items[items.length-1].de = selectOneArray[1];
	
			updateSelector(sel_element2,items);
			return;
		}
	
		//  If color was selected, fill colorArray
		if(val != "-1")
		{
			var selectOneArray = new Array("","Select Size");
	
			items[items.length] = new Object();
			items[items.length-1].id = selectOneArray[0];
			items[items.length-1].de = selectOneArray[1];
	
			var colorArray = relGetStringColors(val);
			for (var i = 0; i < colorArray.length; i++)
			{
				items[items.length] = new Object();
				items[items.length-1].id = colorArray[i];
				items[items.length-1].de = colorArray[++i];
			}
			updateSelector(sel_element2,items);
		}
		else
		{
		//multiple colors, one size
			for(var i = 0; i < itemMap.length; i++)
			{
				if (val == itemMap[i].cId && productId == itemMap[i].pid)
				{
					sel_element2.value = productId+"|"+itemMap[i].sku;
				}
			}
		}
	}
}



function updateFields(thisDropDown,prodIndex)
{
   if (thisDropDown)
   {

      if (thisDropDown.name.match("prod_") && thisDropDown.selectedIndex > 0)
      {
         var haveImage = false;
         var pidSku = thisDropDown.options[thisDropDown.selectedIndex].value;
         var pidSkuArray = pidSku.split("|");
         var selectedItem = thisDropDown.options[thisDropDown.selectedIndex].text;
         productId = pidSkuArray[0];
         sku = pidSkuArray[1];

         for(var i = 0; i < itemMap.length; i++)
         {
            if(itemMap[i].pid == productId && itemMap[i].sku == sku)
            {
         //      jdaField = eval('document.orderForm.jda_'+prodIndex);
               if (itemMap[i].avail == "OUT_OF_STOCK" || itemMap[i].avail == "NOT_AVAILABLE")
               {
                  jdaField.value = itemMap[i].jdaStyle + "  Out Of Stock";
               }
               else
               {
                  jdaField.value = itemMap[i].jdaStyle + "  In Stock";
               }

               priceField = eval('document.orderForm.price_'+prodIndex);
               priceField.value = itemMap[i].price;

               if (thisDropDown.options[0].text != "Select Size")
               {
                  if (thisImageMap)
                  {
                     // alert("have map  the id is "+colorId);
                     for(var m = 0;!haveImage &&  m < thisImageMap.length; m++)
                     {
                        if (thisImageMap[m].name && thisImageMap[m].name == selectedItem)
                        {
                           haveImage = true;
                           break;
                        }
                     }
                  }

                  styleField = eval('document.orderForm.style_'+prodIndex);

                  if (haveImage)
                  {
                     styleField.value = itemMap[i].cDesc;
                     break;
                  }
                  else
                  {
                     styleField.value = itemMap[i].cDesc + " - No Image Available";
                     break;
                  }
               }
            }
         }
      }
      else if (thisDropDown.name.match("colors_") && thisDropDown.selectedIndex > 0)
      {
         var pidColor = thisDropDown.options[thisDropDown.selectedIndex].value;
         var pidColorArray = pidColor.split("|");
         var productId = pidColorArray[0];
         var colorId = pidColorArray[1];
         var haveImage = false;
         styleField = eval('document.orderForm.style_'+prodIndex);

         for(var i = 0; i < itemMap.length; i++)
         {
            if(itemMap[i].pid == productId && itemMap[i].cId == colorId)
            {
               if (thisImageMap)
               {
                  // alert("have map  the id is "+colorId);
                  for(var m = 0;!haveImage &&  m < thisImageMap.length; m++)
                  {
                     if (thisImageMap[m].cid == colorId)
                     {
                        haveImage = true;
                        break;
                     }
                  }
               }

               if (haveImage)
               {
                  styleField.value = itemMap[i].cDesc;
                  break;
               }
               else
               {
                  styleField.value = itemMap[i].cDesc + " - No Image Available";
                  break;
               }
            }
         }
      }
      else if (thisDropDown.selectedIndex == 0)
      {
         clearFields(thisDropDown,prodIndex);
      }
   }
}

function clearFields(thisDropDown,prodIndex)
{
   var dropName = thisDropDown.name.split("_");
   if (dropName != null && dropName.length > 1)
   {
      var imageCounterField = eval('document.orderForm.imageIndex_'+dropName[1]);
      var skuPriceRangeField = eval('document.orderForm.skuPriceRange_'+dropName[1]);
      if (skuPriceRangeField && skuPriceRangeField.value != "")
      {
         var pdtField = eval('document.orderForm.pdt_'+imageCounterField.value);
         // var priceField = eval('document.orderForm.price_'+imageCounterField.value);

         if (pdtField.value.match("SKU"))
         {
         //   priceField.value = skuPriceRangeField.value;
         }
      }
   //   jdaField = eval('document.orderForm.jda_'+prodIndex);
   //   jdaField.value = "";
   }
}

function selectMore (prodIndex,prodCounter)
{
   var addOne = 0;
   orderFormElements = document.orderForm.elements;
   moreFormElements = document.moreForm.elements;
   elementValues = "";
   var moreFormCounter = 0;
   for (var i=0; i < orderFormElements.length; i++)
   {
      if (orderFormElements[i].name.match("prod_"))
      {
         var prodName = orderFormElements[i].name.split("_");
         var prodNameIndex = parseInt(prodName[1]);
         if (prodNameIndex != null)
         {
            var newindex = (prodNameIndex+addOne);
            if (orderFormElements[i].type == "select-one")
            {
               moreProdField = eval('document.moreForm.prod_'+newindex);
               moreProdField.value = orderFormElements[i].value;
            }

            prodQtyField = eval('document.orderForm.qty_'+prodNameIndex)
            moreQtyField = eval('document.moreForm.qty_'+newindex)
            moreQtyField.value = prodQtyField.value;

            if (prodCounter == prodNameIndex && addOne == 0)
            {
               addOne++;
            }
         }
         moreFormCounter++;
      }
   }
   thisField = eval('document.moreForm.more_'+prodIndex);
   var thisValue = parseInt(thisField.value);
   thisField.value = ++thisValue;
   document.moreForm.submit();
}


function swapImages(showAlternate,REGPath,ZoomPath,prodIndex,colorFieldIndex,ENHPath,colorId)
{
	var sliceDescription = document.orderForm.sliceColorId;		
	
	var altViewDiv = document.getElementById("alternateView");
	if(altViewDiv)
	{
		if(showAlternate == 'true')
		{
			altViewDiv.style.visibility="visible";
		}
		else
		{
			altViewDiv.style.visibility="hidden";
		}
	}

	if(sliceDescription)
	{
	sliceDescription.value=colorFieldIndex;
	}
	//writetoLyr('errorQty','');
	writetoLyr('errorMsg_0','');
   thisProdShot = eval('window.document.prodShot_'+prodIndex);
   if(REGPath && REGPath.length >0)
	{
	   thisProdShot.src = REGPath;
	}
   thisEnh = eval('document.orderForm.enh_'+prodIndex);
      thisZoom = eval('document.orderForm.zoom_'+prodIndex);
	  thisZoom.value=ZoomPath;
   if (thisEnh && ENHPath && ENHPath.length >0)
   {
      thisEnh.value = ENHPath;
   }
   changeDropdown(prodIndex,colorFieldIndex,colorId);
}

function syncImages()
{
   orderFormElements = document.orderForm.elements;
   for (var i=0; i < orderFormElements.length; i++)
   {
      if (orderFormElements[i].type == "select-one")
      {
         var dropName = orderFormElements[i].name.split("_");

         if (dropName != null && dropName.length > 1)
         {
            imageCounterField = eval('document.orderForm.imageIndex_'+dropName[1]);
            swapImageDropdown(orderFormElements[i],imageCounterField.value);
            updateFields(orderFormElements[i],imageCounterField.value);
         }
      }
   }
}

function syncFields(thisField)
{
   var dropName = thisField.name.split("_");
   if (dropName != null && dropName.length > 1 && dropName[1] != null)
   {
      imageCounterField = eval('document.orderForm.imageIndex_'+dropName[1]);
      if (imageCounterField)
      {
         updateFields(thisField,imageCounterField.value);
      }
   }
}


function swapImageDropdown(dropDown,prodIndex)
{
   if (dropDown.selectedIndex > 0)
   {
      thisProdShot = eval('window.document.prodShot_'+prodIndex);
      thisEnh = eval('document.orderForm.enh_'+prodIndex);
      thisImageMap = eval('imageMap_'+prodIndex);
      if (thisImageMap)
      {
         var selectedItem = dropDown.options[dropDown.selectedIndex].text;
         for(var i = 0; i < thisImageMap.length; i++)
         {
            if (thisImageMap[i].name == selectedItem)
            {
               thisProdShot.src = thisImageMap[i].reg;
               if (thisEnh)
               {
                  thisEnh.value = thisImageMap[i].enh;
               }
            }
         }
      }
   }
}

function changeDropdown(prodIndex,colorFieldIndex,colorId)
{
   colorField = eval('document.orderForm.colors_'+colorFieldIndex);
   sizeField = eval('document.orderForm.prod_'+colorFieldIndex);
   var dropDownIndex = 0;

   for(var i = 0; i < colorArrayId.length; i++)
   {
      if (colorId == colorArrayId[i])
      {
         dropDownIndex = i+1;
         break;
      }
   }

   if (colorField  && colorField.options != null && colorField.options.length > 0)
   {
      colorField.options[dropDownIndex].selected = true;
   }
   else if (sizeField && sizeField.options != null && sizeField.options.length > 0)
   {
      sizeField.options[dropDownIndex].selected = true;
   }

   colorFieldString = "document.orderForm.colors_"+colorFieldIndex;
   sizeFieldString = "document.orderForm.prod_"+colorFieldIndex;

   if (colorField && sizeField)
   {
      populateSizes(colorField,productId ,sizeField);
   }

   if (colorField)
   {
      updateFields(colorField,prodIndex);
   }
   else if (sizeField)
   {
      updateFields(sizeField,prodIndex);
   }
}

function showPadEnhanced(img, productId)
{
   remote = open("stdProdPop.jsp?LargeImageURL=" + img + "&displayTab=enh&productId="+productId, "largeImage", "width=532,height=545,left=0,top=0,scrollbars");
}


function verifyQty(toWish)
{
   var totalQty = 0;
   var nameStr;
   var nameStrValue;
   showFirstMessage = false;
   showLastMessage = true;
   haveOneError = false;

   qtyField = document.orderForm.quantity;
   nameStr = qtyField.name;

      if (isNaN(parseInt(qtyField.value)))
      {
         showFirstMessage = true;
         haveOneError = true;
      }

      if (!showFirstMessage)
      {
         for (j=0; j < qtyField.value.length; j++)
         {
            if( isNaN(parseInt(qtyField.value.charAt(j))) )
            {
               showFirstMessage = true;
               haveOneError = true;
               break;
            }
         }
      }

      if(showFirstMessage)
      {
         alert(nameStr = " Qty should be a number which is greater than or equal to '1'.");
         qtyField.value = "1";
         qtyField.focus();
         showLastMessage = false;
      }
      else
      {
         totalQty = totalQty + parseInt(qtyField.value);
      }

   if (!haveOneError && totalQty > 0)
   {
      if(toWish == "yes")
      {
         document.orderForm.wlName.value = "default";
      }
      else
      {
         document.orderForm.wlName.value = "";
      }
      document.orderForm.submit();
   }
   else if(showLastMessage)
   {
      alert("You must choose a quantity other than \"0\" before clicking on \"Add to Cart.\"");
   }
}

function verifyErrMsg()
{
	var eleValue = document.orderForm.prod_0;
	var errMsgDiv = document.getElementById("errorMsg_0");
	var errMsg = errMsgDiv.innerHTML;

	if (errMsg !="" && eleValue !=""  )
	{
				errMsgDiv.innerHTML = "";
	}
}

function verifyFields(submitProcess)
{
	if (submitProcess == "no")
	{
		return false;
	}
	else
	{
		var totalQty = 0;
		var haveBadQty = false;
		var sizeSelected = true;
		var colorSelected = true;
		var skuInStock = true;
      
		for (i=0;!haveBadQty && sizeSelected && colorSelected && skuInStock && i < document.orderForm.elements.length; i++)
		{   
			if (document.orderForm.elements[i].name.match("qty"))
			{
				qtyField = document.orderForm.elements[i];

				for (j=0; j < qtyField.value.length; j++)
				{
					if(isNaN(parseInt(qtyField.value.charAt(j))) )
					{
						haveBadQty = true;
						break;
					}
				}

				if(haveBadQty)
				{
					alert ("Invalid quantity specified.");
					//qtyField.value = "";
					qtyField.focus();
					showLastMessage = false;
				}
				else if (parseInt(qtyField.value) > 0)
				{
					totalQty = totalQty + parseInt(document.orderForm.elements[i].value);

					var qtyArray = qtyField.name.split("_");
					prodIndex = qtyArray[1];
					prodField = eval('document.orderForm.prod_'+prodIndex);

                    var errorSize = 'errorMsg_'+prodIndex;
					
					if(prodIndex > 0)
						{
						  var errorCol = 'errorCol_'+prodIndex;
						 }
					if (prodField)
					{
						if (prodField.type == "select-one" && prodField.selectedIndex == 0)
						{
							
							writetoLyr(errorSize,'Please select a valid size');
							prodField.focus();
							sizeSelected = false;
						}
						else if(prodField.type == "select-one" && prodField.selectedIndex > 0)
						{
							writetoLyr(errorSize,'');
						}
					}

					if (!haveBadQty && sizeSelected && colorSelected && prodField && prodField.type == "select-one")
					{
						var prodSkuArray = prodField.options[prodField.selectedIndex].value.split("|");
						if (prodSkuArray != null && prodSkuArray.length > 1 && prodSkuArray[1] != null)
						{
							for(var m = 0; m < itemMap.length; m++)
							{
								if (itemMap[m].sku ==  prodSkuArray[1])
								{
									if (itemMap[m].avail == "OUT_OF_STOCK" || itemMap[m].avail == "NOT_AVAILABLE")
									{
										alert("Item is out of stock");
										prodField.focus();
										skuInStock = false;
									}
									break;
								}
							}
						}
					}
				}
			}
		}
	}
	if (!haveBadQty && sizeSelected && colorSelected && skuInStock)
	{

			document.orderForm.submit();

	}
}





function verifyFieldsold(submitProcess)
{
	if (submitProcess == "no")
	{
		return false;
	}
	else
	{
		haveOneError = false;
		formObj = document.orderForm;
		if (formObj.prod_0.type == "select-one")
		{
			if (formObj.prod_0.selectedIndex == 0)
			{
				writetoLyr('errorSize','Please select a size');
				formObj.prod_0.focus();
				haveOneError = true;
			}
			else
			{
				writetoLyr('errorSize','');
			}
		}

		if (!haveOneError)
		{
			formObj.submit();
		}
	}
}


function writetoLyr(name, message)
{
	if (document.layers)
	{
		document.layers[name].document.close();
		document.layers[name].document.write(message);
		document.layers[name].document.close();
	}
	else
	{
		if (document.all)
		{
			eval("document.all." + name + ".innerHTML='" + message + "'");
		}
		else
		{
			document.getElementById(name).innerHTML = message;
		}
	}
}


function updateSelector(selector,items)
{
   var options = selector.options;
   var selectedItem = selector.options[selector.selectedIndex].text;

   for (var i = 0; i < Math.min(items.length, options.length); i++)
   {
         options[i].value = items[i].id;
         options[i].text = items[i].de;
   }
      /* Append options if needed: */
         for (var i = Math.min(items.length, options.length); i < items.length; i++)
         {
            var newOpt = document.createElement("OPTION");
            newOpt.value = items[i].id;
            newOpt.text = items[i].de;
            selector.add(newOpt);
         }
   /* Truncate selector if needed: */
   selector.length = items.length;

   var haveMatch = false;
   for (var i = 0; i < selector.options.length; i++)
   {
      if (selector.options[i].text == selectedItem)
      {
         selector.options[i].selected = true;
         haveMatch = true;
      }
   }

   if (!haveMatch)
   {
      options[0].selected = true;
   }
   syncFields(selector);
}
