/* JAT 9/19/07 */
/* 10/01/07 ** (jat) ** NOTE that all image sources for swatches and alt views point to the product_images folder!! */
/**************** begin custom code to draw sku select boxes without the use of attr_values array **************/
//array to hold all colors
var colors = new Array();
getColors();

//holds color
var qColor = "";
//see if there is a color in the querystring...
qColor = get_from_QueryString('attr_value2');

//get first color if color is NOT in QS
if(typeof qColor == "undefined" || !qColor) { 
	if(colors[0])
		qColor = colors[0];	
}

//clean qColor
if(qColor!="")
	qColor = cleanColorName(qColor);

//array to hold all sizes having availability
var sizes = new Array();
getSizes();

// declare attr_values since it's not on the page already - will be used by draw_sku_options()
var attr_values = new Array();
attr_values.push(sizes);
attr_values.push(colors);
var attr_label = new Array("Size", "Attribute");
function getColors(){
	//alert("in get colors");
	/*Now Skipping the following values for colors - per Jeff Lillibridge's instructions in SUP33787 - WCD - 20090317
	Color:
	NA
	na
	Not Available/No Clr
	*/
	
//get all colors
	//get colors from skus with availability	
	for(var pv in product_var) {
		if(product_var[pv].avail!='0'){
//			alert(product_var[pv].attr_value2);
			if((product_var[pv].attr_value2 != "NA") && (product_var[pv].attr_value2 != "na") && (product_var[pv].attr_value2 != "Not Available/No Clr")){ 
				//add color if color not already in array		
				if(!contains(colors,product_var[pv].attr_value2.toLowerCase())){ 
					colors.push(product_var[pv].attr_value2.toLowerCase());
				}
			} else {
				//code to enable product but not display dropdowns.
			}
		}
	}
	//sort
	colors.sort(smart_sort);
}

function getSizes(){

	/*Now Skipping the following values for sizes - per Jeff Lillibridge's instructions in SUP33787 - WCD - 20090317
	Size:
	NA
	NoSz
	N/A
	*/
	
	//get all sizes
	//get sizes from skus with availability	
	for(pv in product_var) {
		if(product_var[pv].avail!='0'){
			if((product_var[pv].attr_value1 != "NA") && (product_var[pv].attr_value1 != "NoSz") && (product_var[pv].attr_value1 != "N/A")){
				//alert("adding" + product_var[pv].attr_value2);
				//add size if size not already in array		
				if(!contains(sizes,product_var[pv].attr_value1)) {
					//sizes.push(product_var[pv].attr_value1.toLowerCase());	// ** JAT - removing tolowercase for now!!
					sizes.push(product_var[pv].attr_value1);
				}
			} else {
			//code to enable product but not display dropdowns.
			}
		}
	}	
	
	//sort
	sizes.sort(sizechart_sort);
}

/**
 * Returns true if 'e' is contained in the array 'a'
 * @author Johan Känngård, http://dev.kanngard.net
 */
function contains(a, e) {
	for(j=0;j<a.length;j++)if(a[j]==e)return true;
	return false;
}

function get_from_QueryString(item){ 
	var theQueryString = window.location.search.substring(1);
	var theQueryStringArray = theQueryString.split('&'); 
	
	for (theItem in theQueryStringArray) {	
		//find 
		if(String(theQueryStringArray[theItem]).indexOf(item+"=",0)!= -1){
			return theQueryStringArray[theItem].substring(theQueryStringArray[theItem].indexOf("=")+1); 				
			//return value if found
		}
	} //end for
	return false //if not found
}

function cleanColorName(colorName) {
	//replace special characters with underscores
	return colorName.replace(/[^a-zA-Z0-9\-]/gi,'_');
}


/*WCD 20090317 - This is deprecated and the function in split_dropdown_reverse.js is used instead from what I can tell.
function draw_sku_option()
{
	var dropdownattr1 = "";
	var attrname = "";
	var dropdown_label="";	
	var selectText = "";	// the text to the left of the dropdown (either 'color:' or 'size:');
	for (outer=0;outer<attr_values.length;outer++)
	{
		attrname = "attr" + (outer+1);
		
		document.write("<TR VALIGN=TOP ><TD>");		
		
		if ((attr_label[outer].toLowerCase()=="attribute"))
		{			
			//change colors in array to only available colors
			attr_values[outer] = colors;
			dropdown_label="";
			selectText = "<span class=\"attrname\">Color:</span> ";
		}else if(attr_label[outer].toLowerCase()=="size"){		
			//change sizes in array to only available sizes
			attr_values[outer] = sizes;	
			dropdown_label="Select Size...";
			selectText = "<span class=\"attrname\">Size:</span> ";
		}else{
			dropdown_label=attr_label[outer];
			selectText = "<span class=\"attrname\">" + dropdown_label + ":</span> ";
		}
		
		
		document.write(selectText + "<select name="+attrname+" id="+attrname+" onchange=\"get_values("+(outer+1)+");findprice();\" class=\"qjump\">");				
		
		document.write('<option value="" selected>'+dropdown_label+"</option>");
										
		//only draw the options for size initially...
		if(attr_label[outer].toLowerCase()=="size"){
			for(innerarr=0;innerarr<attr_values[outer].length;innerarr++)
			{
			  dropdownattr1=attr_values[outer][innerarr];
			  //document.write('<option value=\''+dropdownattr1.toUpperCase()+'\'>'+dropdownattr1.toUpperCase()+'</option>');	// ** JAT 10/2/07 - not sure why uppercase is being used, taking this out for now!!
			  document.write('<option value=\''+dropdownattr1+'\'>'+dropdownattr1.toUpperCase()+'</option>');
			}
		}
		document.write("</select>");
		
		document.write("<span id=single_option"+(outer+1)+"></span>");
		
		document.write("</TD></TR>");
	}
	document.write("<tr><td><span class=\"attrname\">Quantity:</span> <input type=text name=qty value=1 size=1></TD></TR>");
	document.write("<INPUT TYPE=HIDDEN  NAME=sku VALUE=''>");
	document.write("<input type=\"hidden\" name=\"addtoform\" value=\"\"/>");
	
} //end draw_sku_option
*/

/************************** end custom code  *****************************/

/* jat 10/2/7 - added tolowercase() to string comparisons to fix bug */
//get_values receives the attr number of the dropdown that has changed.
//
function get_values(ddnum)
{
  var thisattr,nextdd,tempattr,tempdd;
  var ctr = 0;
  var optstr = "";
  var tempopt;
  var attr_flag = true;
  var selection = "";
  var sel_flag = false;


  switch(attr_values.length)
  {
    case 5:
      var dd5 = document.getElementById('attr5');
    case 4:
      var dd4 = document.getElementById('attr4');
    case 3:
      var dd3 = document.getElementById('attr3');
    case 2:
      var dd2 = document.getElementById('attr2');
      var dd1 = document.getElementById('attr1');
	  
	  for (i=ddnum+1;i<=attr_values.length;i++)
	  {
		//clear out the next dropdown
		nextdd = eval("dd"+i);
		//store the selected value so that it will remain selected if available
		selection = nextdd.value;
		
		//cear dropdown
		for (j=nextdd.options.length-1;j>=1;j--)
		{
		  nextdd.options[j] = null;
		}
		
		/* 
		** if the current dropdown's selection is the label option (value = blank),
		** then do not add new options, keep drop clear
		*/
		//get current selection
		var currentDropSelection = eval("dd"+ddnum).value;

		//if current selection is not blank
		if(currentDropSelection != "")
		{
			//create new options
			var sortarray= new Array();
			
			//loop thru product array
			for (atn=0;atn< product_var.length;atn++)
			{
			  attr_flag = true;
	
			  for (k=1;k<=i-1;k++)
			  {
				//check each dropdown up to one before nextdd
				tempattr = eval("product_var[atn].attr_value"+k);
				tempdd = eval("dd"+k).value;
				
				if (tempattr.toLowerCase() != tempdd.toLowerCase() && tempdd!="")
				{
				  //this product doesn't match our selected values
				  attr_flag = false;
				}
			  }//end for k
			  
			  
			  if (attr_flag == true)
			  {
				  //store the attr if it is new AND if available
				  thisattr = eval("product_var[atn].attr_value"+i);			 
				  if (optstr.indexOf(";" + thisattr + ";") == -1 && parseInt(product_var[atn].avail)>0) //keep 0 avail out
				  {
					optstr += ";" + thisattr + ";";
					//add option to array 
					sortarray[ctr]=thisattr;
					ctr++;
				  }
			  }
			}//end for atn
			
			//sort array and add options to select		
			sortarray.sort(smart_sort);
			if (sortarray.length==0)
			{
				//nextdd.style.display = "none";
				nextdd.style.visibility = "hidden";
				
			} else
			{
				//nextdd.style.display = "block";
				nextdd.style.visibility = "visible";
				document.getElementById("single_option"+i).innerHTML="";
			}
			
			//write options
			for (s=0;s<sortarray.length;s++){
				if (sortarray[s] == selection) { sel_flag = true; }else{ sel_flag = false; }
				tempopt = new Option(sortarray[s],sortarray[s],sel_flag);
				nextdd.options[s+1] = tempopt;
			}
		}//end if current selection
		
		optstr = "";
		ctr = 0;
		selection = "";
	  }//end for		  
      break;
    case 1: //1 dropdown - do nothing here
    case 0: //no dropdowns - do nothing here
    default:

      break;
  }
}

function findsku()
{
	if (typeof attr_values!="undefined")
	{
		if(product_var.length>1)
		{
			var sku_flds = document.getElementsByName("sku");
			var qty_flds = document.getElementsByName("qty");
			var matchsku=false;
			var eachsku=0;
			var selectedsku;
			while (matchsku==false && eachsku<product_var.length)
			{
				var matching=true;
				for (drop=1;drop<=attr_values.length ;drop++)
				{
					//document.getElementById('this').value=document.getElementById('dropsku'+drop).options[document.getElementById('dropsku'+drop).selectedIndex].value;
					if (eval("product_var["+eachsku+"].attr_value"+drop).toUpperCase()!=document.getElementById('attr'+drop).options[document.getElementById('attr'+drop).selectedIndex].value.toUpperCase()){matching=false;}
				}

				if (matching==true){
					selectedsku=eval("product_var["+eachsku+"].sku");
					matchsku=true;
					sku_flds.value="selectedsku";
					//qty_flds.value="1";
					document.form1.sku.value=selectedsku;
					document.form1.addtoform.value=qty_flds.value;
					//document.form1.submit();
					return true;
				}
				eachsku=eachsku+1;
			}
		 }else if(product_var.length==1){  
            document.form1.sku.value=product_var[0].sku;                 
            return true; 
        }
	}
}

/* JAt 10/2/07 - added tolowercase() to string comparisons to fix bug */
function findprice(){
//if (typeof attr_values!="undefined"){
	//var sku_flds = document.getElementsByName("sku");
	//var qty_flds = document.getElementsByName("qty");
	var matchsku=false;
	var eachsku=0;
	var selectedskuprice;
	var listprice;
	var avail_message;
	
	//var val1 = document.getElementById('attr1').value;
	//var val2 = document.getElementById('attr2').value;
	
	while (matchsku==false && eachsku<product_var.length)
	{
		var matching=true;
		//for (drop=1;drop<=attr_values.length ;drop++)
		for (drop=2;drop>0;drop--)
		{			
			//document.getElementById('this').value=document.getElementById('dropsku'+drop).options[document.getElementById('dropsku'+drop).selectedIndex].value;
			var compare1 = eval("product_var["+eachsku+"].attr_value"+drop);
			var compare2 = document.getElementById('attr'+drop).options[document.getElementById('attr'+drop).selectedIndex].value;
			if (compare1.toLowerCase() != compare2.toLowerCase()){matching=false;}
		}
		if (matching==true){
		avail_message = eval("product_var["+eachsku+"].avail_msg");
		if (eval("product_var["+eachsku+"].price_sale")!="" && eval("product_var["+eachsku+"].price_sale")!="0" && eval("product_var["+eachsku+"].price_sale")<eval("product_var["+eachsku+"].price_list")){
		
			listprice=eval("OKStrOfPenny(product_var["+eachsku+"].price_list)");matchsku=true;
			selectedskuprice=eval("OKStrOfPenny(product_var["+eachsku+"].price_sale)");matchsku=true;
			//document.getElementById("prod_price").innerHTML = "<font class='ListPricewSale'><br>Regular Price:&nbsp;$"+listprice+"</font><font class='SalePrice'><br>ON SALE!&nbsp;$"+selectedskuprice+"</font><br>"+avail_message;
		}else{
			selectedskuprice=eval("OKStrOfPenny(product_var["+eachsku+"].price_list)");matchsku=true;
			//document.getElementById("prod_price").innerHTML = "<font class='ListPricewoSaleP'><br>Selected Item Price&nbsp;$"+selectedskuprice+"</font><br><br>"+avail_message;
		}
		
		display_avail(avail_message);
		
		//sku_flds.value="selectedsku";
		//qty_flds.value="1";
		//document.form1.sku.value=selectedsku;
		//document.form1.submit();
		return true;

		}
		eachsku=eachsku+1;
	}
	//}
}

function display_avail(avail_message)
{
	//if the availability message is not empty...
	if(avail_message!="" && avail_message!="&nbsp;")
		document.getElementById("availability_message").innerHTML = "<span class=availability_msg>Availability: " + avail_message +"</span>";
	else
		document.getElementById("availability_message").innerHTML = "&nbsp;";
}

/********* BEGIN SWATCH FUNCTIONS ************/
var original_color = "";
var newColor = "";

/** DESCR: swatch code for swatch colors, editro:cls, date:16.AUG.2007 **/
function imgSwatch(imgName) {
        document.getElementById("mainimg").src="assets/product_images/swatches/" + pf_id + "_" + imgName + "_lg.jpg";
}

/** feature swatches: editor:cls, date:16.AUG.2007 **/
function display_Swatch(){
	var array_largeimage;
	if (typeof info_attributes!="undefined" && info_attributes != "" && info_attributes != "default"){
		var thumbnails_array = info_attributes.split(",");
		var image_array;
		if (thumbnails_array.length >= 1){
			//the number below changes the number of columns for the swatches
			var columns=4;
			var atn;
			atn=0;
			var myImage;
			var counter=1;
			document.write("<span class=\"swatches_title\">ALTERNATE COLORS:</span>");
			document.write("<br><table border=0 cellpadding=0 cellspacing=0><tr>");
			
			for (atn=0; atn<thumbnails_array.length; atn++){
				if (thumbnails_array[atn]!=""){
					image_array = thumbnails_array[atn].split(":");
					document.write("<td><div onmouseover=\"imgSwatch('"+image_array[1]+"');changeColor('" + image_array[0] + "');\" ><img NAME=\""+image_array[1]+"\" id=\""+image_array[1]+"\" onerror=\"hideImg(this);\" src=\"assets/product_images/swatches/" + pf_id + "_" + image_array[1] + "_sm.jpg\" border=0 style='width:20px;height:20px;border:1px solid #000000;margin:3px 3px 3px 0px;' /></div>");
					//document.write("<br>"+image_array[0]+"</td>");		// write the swatch color
					document.write("</td>");
					if (counter==columns){document.write("</tr><tr>");counter=0}
				}
			counter = counter+1;
			}
			original_color = image_array[0];	// grab 'default' color
			document.write("</table>");
		}
	}
} //end display_thumbnails

function hideImg(img){
	img.parentNode.style.display = "none";
}

/* set color variables for use later in makeNewWindow2() */
function changeColor(color){
	newColor = color.toLowerCase();
	newColor = newColor.replace(" ", "_");
}

/*************** END SWATCH FUNCTIONS ******************/

/************* BEGIN ALT VIEWS FUNCTIONS ***************/
var winPhoto2;
function makeNewWindow2()
{
	winPhoto2 = window.open("","AltView","height=300,width=300,status=0,scrollbars=0,location=0");
	winPhoto2.document.open();
	winPhoto2.document.write('<html>');
	winPhoto2.document.write('    <head>');
	winPhoto2.document.write('        <title>');
	winPhoto2.document.write('Jumbo View');
	winPhoto2.document.write('        </title>');
	winPhoto2.document.write('<script lang=javascript>');
	winPhoto2.document.write('var largeimage = new Image();');
	// if user rolls over swatch color, display large image in that color instead of original
	if(newColor != ""){
		winPhoto2.document.write('largeimage.src ="assets/product_images/altviews/' + pf_id + '_' + newColor + '_j.jpg"');
	}else{
		winPhoto2.document.write('largeimage.src ="assets/product_images/altviews/' + pf_id + '_j.jpg"');
	}
	winPhoto2.document.write('</script>');
	winPhoto2.document.write('    </head>');
	winPhoto2.document.write('    <body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">');
	//winPhoto2.document.write('    <center><font size=4><b>'+title+'</b></font></center><br>');
	
	// if user rolls over swatch color, display large image in that color instead of original
	if(newColor != ""){
		winPhoto2.document.write('        <br><center><img align=center src="assets/product_images/altviews/' + pf_id + '_' + newColor + '_j.jpg" onLoad="window.resizeTo(largeimage.width+60,largeimage.height+80);" ></center>');
	}else{
		winPhoto2.document.write('        <br><center><img align=center src="assets/product_images/altviews/' + pf_id + '_j.jpg" onLoad="window.resizeTo(largeimage.width+60,largeimage.height+80);" ></center>');
	}
	winPhoto2.document.write('    </body>');
	winPhoto2.document.write('</html>');
	winPhoto2.document.close();
	winPhoto2.focus();
	return false;
}

function showSizeChart(imgName)
{
	var sizechartWin = window.open("","Size Chart","height=300,width=300,status=0,scrollbars=0,location=0");
	sizechartWin.document.open();
	sizechartWin.document.write('<html>');
	sizechartWin.document.write('    <head>');
	sizechartWin.document.write('        <title>');
	sizechartWin.document.write('Size Chart');
	sizechartWin.document.write('        </title>');
	sizechartWin.document.write('<script lang=javascript>');
	sizechartWin.document.write('var largeimage = new Image();');
	sizechartWin.document.write('largeimage.src ="assets/images/sizecharts/' + imgName + '"');
	sizechartWin.document.write('</script>');
	sizechartWin.document.write('    </head>');
	sizechartWin.document.write('    <body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">');
	sizechartWin.document.write('        <br><center><img align=center src="assets/images/sizecharts/' + imgName + '" onLoad="window.resizeTo(largeimage.width+60,largeimage.height+80);" ></center>');
	sizechartWin.document.write('    </body>');
	sizechartWin.document.write('</html>');
	sizechartWin.document.close();
	sizechartWin.focus();
	return false;
}

var jumbo = "false";
var sizechartImg = "";
/* go through single valued attributes array and see whether the jumbo(large view) flag has been set or if a sizechart has been specified */
/* this function is called in draw_image_2(); */
function checkSingleValAttr(){
	for (var i = 0; i< product_attrbute.length ;i++){
		if(product_attrbute[i].attname == "jumbo"){
			jumbo = product_attrbute[i].attvalue;
		}
		if(product_attrbute[i].attname == "sizechart"){
			sizechartImg = product_attrbute[i].attvalue;
		}
	}
}


function draw_image_2(){
	checkSingleValAttr();
	 if (product_image[1].scr=="PRODUCT" && product_image[1].image!="" ) { 
		if (product_image[1].image_show=="TARGET REG" || product_image[1].image_show=="TARGET" ){
			if (product_image[1].image_show=="TARGET REG"){
				if (user_guid==""){
					document.write("<A HREF=\"shopper_lookup.asp?target=" + product_image[1].target + "&\" onClick=return(visitargs('shopper_lookup.asp',\"target=" + product_image[1].target + "&\")); target=\"_top\" >");
				}else {
					document.write("<A HREF=\"" + product_image[1].target + "\" onClick=return(visitargs('" + product_image[1].target + "')); target=\"_top\" >");
				}
			}else {
				document.write("<a HREF=\"" + product_image[1].target + "\" target=\"_top\">");
			}
			document.write("<img name=\"mainimg\" id=\"mainimg\" ALIGN =" + product_image[1].align + " "); 
			if (product_image[1].width!=""){document.write("WIDTH =" + product_image[1].width + " ");}
			document.write(" BORDER=0  VSPACE=5  HSPACE=5 ALT=\"" + product_image[1].alt_text + "\" ");         
			document.write(" SRC=\"assets/product_images/" + product_image[1].image +"\"></a>");
		}else{
			if(jumbo != "false"){document.write("<A HREF=\"#\" onClick=\"return(makeNewWindow2());\" >");}
			document.write("<img name=\"mainimg\" id=\"mainimg\" ALIGN =\"" + product_image[1].align + "\" "); 
			if (product_image[1].width!=""){document.write("WIDTH =" + product_image[1].width + " "); }
			document.write(" BORDER=0  VSPACE=5  HSPACE=5 ALT=\"" + product_image[1].alt_text + "\" ");         
			document.write(" SRC=\"assets/product_images/" + product_image[1].image +"\" onerror=handleErr();>")
			if(jumbo != "false"){document.write("</a>");}
		}  		
	}
	else{
		document.write("<img src=\"assets/product_images/product.gif\">");
	}
}

function imgOn(imgName) {
	var newSrc = "assets/product_images/altviews/" + pf_id + "_" + imgName + "_lg.jpg";
    document.getElementById("mainimg").src= newSrc;
    document.getElementById("noAltTXT").innerHTML ="";
    
	which = imgName;
}

function imgOff(){
	document.getElementById('mainimg').src = "assets/product_images/" + product_image[1].image;
	 document.getElementById("noAltTXT").innerHTML ="";
}

var which="";
function handleErr()
{ 
   document.getElementById("noAltTXT").innerHTML ="Sorry this product does not have a product image.";
   //document.getElementById("mainimg").src="assets/product_images/" + product_image[1].image;
}


function display_alternates(){
	var image_array = ['1','2','3','4'];
	var image_suffix = ['1', '2', '3','4'];
	var columns=4;
	var atn=4;
	var counter=1;
	document.write("<table align=\"left\" cellpadding=0 cellspacing=0  style=\"\"><tr><td colspan=4 class=altTH>ALTERNATE VIEWS:</td></tr><tr>");
	for (atn=0; atn<image_array.length; atn++){
		document.write("<td><a href=\"javascript:void(0);\" onmouseover=\"imgOn('"+image_array[atn]+"');return false;\" onmouseout=\"imgOff();return false;\"><img onerror=\"this.style.display='none';\" src=\"assets/product_images/altviews/" + pf_id + "_" + image_array[atn] + "_sm.jpg\"" + " style=\"margin:3px 3px 0px 0px;\" /></a></td>");
		//document.write("<td><a href=\"javascript:void(0);\" onmouseover=\"imgOn('"+image_array[atn]+"');return true;\" onmouseout=\"imgOff();return true;\"><img src=\"assets/product_images/altviews/" + pf_id + "_" + image_array[atn] + "_sm.jpg\"" + " style=\"margin:3px 3px 0px 0px;\" /></a></td>");
		if (counter==columns){ 
            document.write("</tr><tr>");
            counter=0;
        }
		counter = counter+1;
	}
	document.write("</tr></table>");
	document.write("<div id=noAltTXT style=\"color:#800000;\"></div>");
} //end display_thumbnails


/**************** END ALT VIEWS FUNCTIONS *******************/