// item_detail_size.js
/* msc 10/25/10 - fixed js errors */
/* ram 03/01/10 - added function for eye chart */
/* ram 01/28/11 - added delight to chart popup */
/* msc 04/12/11 - dropwowns now have price range plus */
/*                the codes instead of names in value */
/* ram 04/13/11 - removed redundent calculations on colorDD */
/* ram 05/10/11 - changed the way colors are displayed in dropdown */
/* msc 05/11/11 - stopped page from posting to itself */
/* ram 05/13/11 - add price to when only 1 dropdown field */
/* jlt 01/31/12 - add validation for easy order refill program */

var colorList = new Array();
var sizeList = new Array();
var selList = new Array();
var groupCount = new Array();
var groupCount2 = new Array();
var orderLine = "";
var newWindow;
var sizeChartWindow;
var largePictureWindow;
var newWinShipTo;
var msg;

function fixArrays(productlist,hasColor,hasSize){
var form = document.getElementById("item_detail");
var iList = new String("" + productlist);
var startPos = 0;
var endPos = iList.indexOf(",");
var isGood = 0;
var keepGoing = 1;
var n = 0;
var curRec = new String();
// build size array
var howMany = (document.getElementsByName('howManyItems')) 
            ? parseInt(document.getElementsByName('howManyItems')[0].value)
            : 0;

for (var j = 0; j < howMany; j++){
 var sList = new String(document.getElementsByName("size_list"+(j+1))[0].value);
 var startPos = 0;
 var endPos = sList.indexOf(",");
 var isGood = 0;
 var keepGoing = 1;
 var k=0;
 sizeList[j] = new Array();
 while (keepGoing == 1){
  if (endPos == sList.length-1) keepGoing =0;
  if (endPos == -1){
   endPos = sList.length;
   keepGoing =0;
  }
  //put each into an array
  curRec = sList.substring(startPos, endPos);
  sizeList[j][k] = curRec;
  k++;
  if (keepGoing == 1){
   startPos = endPos +1;
   endPos = sList.indexOf(",", startPos);
  }
 }
 groupCount2[j] = k;
}

// build size select with size array
if (hasSize == "yes") {setSizeSelect(hasSizeN);
} else
if (hasColor == "yes") {setColorSelect(hasColorN);}
// build color array
for (var n = 0; n < howMany; n++){
 var iList = (document.getElementsByName("color_list"+(n+1)).length > 0 ) ? new String(document.getElementsByName("color_list"+(n+1))[0].value) : new String("");
 var startPos = 0;
 var endPos = iList.indexOf(",");
 var isGood = 0;
 var keepGoing = 1;
 var m=0;
 colorList[n] = new Array();
 while (keepGoing == 1){
  if (endPos == iList.length-1) keepGoing =0;
  if (endPos == -1){
   endPos = iList.length;
   keepGoing =0;
  }
  //put each into an array
  curRec = iList.substring(startPos, endPos);
  colorList[n][m] = curRec;
  m++;
  if (keepGoing == 1){
   startPos = endPos +1;
   endPos = iList.indexOf(",", startPos);
  }
 }
 groupCount[n] = m;
}
}

function sizeChanged(hasColor,hasColorN){
if (hasColor == "yes"){setColorSelect(hasColorN);}
}

function setSizeSelect(hasSizeN){
var form = document.item_detail;
var numSelected = 0;
var selectedItem = 0; //form.sel_item.selectedIndex;
form.sel_size.length=0;  //clear the options array
form.sel_size.options[0] = new Option(hasSizeN + " - Choose First", "");
for (var n = 0; n < groupCount2[selectedItem]; n++){
 var option1 =
 new Option(""+sizeList[selectedItem][n], ""+sizeList[selectedItem][n]);
 form.sel_size.options[n + 1]= option1;
 // mark as selected condition from gbs app never evaluates true here
 var deptString;
 deptString = 'All departments';
 if (deptString.indexOf(""+sizeList[selectedItem][n]) > -1 ){
  form.sel_size.options[n].selected=true;
  numSelected++;
 }
}
if (numSelected == 0) form.sel_size.options[0].selected=true;
}

function setColorSelect(hasColorN){
var form = document.item_detail;
var cForm = document.sizecolor;
var xForm = document.item_detail.color_list1;
var rForm = document.item_detail.color_codes;
var numSelected = 0;
var selectedItem = 0; //form.sel_item.selectedIndex;
if (typeof form.sel_size.selectedIndex == "number") {
 selectedItem = form.sel_size.selectedIndex - 1;
}
if(!Array.indexOf){
   Array.prototype.indexOf = function(obj){
      for(var i=0; i<this.length; i++){
         if(this[i]==obj){
            return i;
         }
      }
   return -1;
   }
}
form.sel_color.options.length = 0;
if (form.sel_size.type == 'hidden'){
form.sel_color.options[0] = new Option(hasColorN + " - Choose First", "");
}else{
form.sel_color.options[0] = new Option(hasColorN + " - Choose Second", "");
}
if (selectedItem >= 0) {
 var spArray = cForm.elements[(selectedItem)].value.split(",");
 var sprArray = rForm.value.split(",");
 var spxArray = xForm.value.split(",");
 for (var q=0;q<spArray.length;q++){
  var num1 = spxArray.indexOf(spArray[q]);
  var colnum = sprArray[num1];
  var option1 = new Option(colnum + " - " + spArray[q], spArray[q]);
  form.sel_color.options[q + 1] = option1;
 }
}
if (numSelected == 0) form.sel_color.options[0].selected=true;
}

function reqFields() {
// validate email address
form = document.start_anywhere;
if (validEmailAddr(form.email)==false) return false;
return true;
}

function isPosInt(iVal) {
iStr = iVal.toString();
if(iStr.length==0){return false;}
for(var i=0;i<iStr.length;i++) {
 var oneCh = iStr.charAt(i);
 if(oneCh<"0"||oneCh>"9") {return false;}
}
return true;
}

function personalized( yesorno ) {
persEntered = yesorno;
}

function ShowSizeChart(site) {
if (site=="timeforme" || site=="delight") {
 sizeChartWindow = window.open("chart.html", "sizeChartWindow",
  "width=675,height=677,left=0,top=10,resizable,scrollbars");
} else {
 sizeChartWindow = window.open("chart.html", "sizeChartWindow",
  "width=620,height=500,left=0,top=10,resizable,scrollbars");
} 
sizeChartWindow.focus();
}

function ShowSizeChart2(site) {
 sizeChartWindow = window.open("chart2.html", "sizeChartWindow",
  "width=500,height=500,left=0,top=10,resizable,scrollbars");
 sizeChartWindow.focus();
}

function ShowEyeChart(site) {
 sizeChartWindow = window.open("eye-chart.html", "sizeChartWindow",
  "width=700,height=700,left=0,top=10,resizable,scrollbars");
 sizeChartWindow.focus();
}

function UnloadWindows() {
if (newWindow) {newWindow.close();}
if (largePictureWindow) {largePictureWindow.close();}
if (sizeChartWindow) {sizeChartWindow.close();}
if (newWinShipTo) {newWinShipTo.close();}
if (answ) {answ.close();}
}

function contHelp() {
var vm = "If you choose a continuity option, we will automatically reorder " +
 "this product at the time intervals you choose. Just select how frequently " +
 "you would like to receive this product on a regular basis. From this " +
 "point on, AmeriMark will automatically order and ship the product to " +
 "your doorstep at the time interval selected.  When the order ships, we " +
 "will automatically bill your credit card.";
if (!answ || answ.closed) {
 vm = '<html><head><title>Continuity Help</title></head>' +
  '<body style="padding:5;">' + vm +
  '<br><br><div align="center">'+
  '<input type="button" value="Close" onClick="self.close();"></div>' +
  '</body></html>';
 answ = window.open("","","height=260,width=300,top=160,left=160");
 answ.document.write(vm);
 answ.document.close();
}
if (answ.focus) {answ.focus()};
}

      function defbodyLoad() {
            
         var sizeDD = document.getElementById("sel_size");
         var colorDD = document.getElementById("sel_color");
         var sizelistArr = document.getElementById("size_list1").value.split(",");
         var sizecodesArr = document.getElementById("size_codes").value.split(",");
         var sizepricesArr = document.getElementById("size_prices").value.split(",");
         var colorlistArr = document.getElementById("color_list1").value.split(",");
         var colorcodesArr = document.getElementById("color_codes").value.split(",");
         var colorpricesArr = document.getElementById("color_prices").value.split(",");
         var sizestr;
         var colorstr;
         
         if(sizeDD.options){
         
            var sizename = document.getElementById("sizetitle").value;
            //Clear array
            if (sizeDD.length > 0)
            {
               sizeDD.remove(sizeDD.length - 1);
            }

            // put in  first option
            var elOptFirst = document.createElement('option');
            elOptFirst.text = sizename + ' - Choose First';
            elOptFirst.value = '';
            try {
            sizeDD.add(elOptFirst, null); // standards compliant; doesn't work in IE
            }
            catch(ex) {
            sizeDD.add(elOptFirst); // IE only
            }       
            
            var longeststr = 0;
            for(var i = 0; i < sizelistArr.length; i++){
               var thislen = sizelistArr[i].length + sizecodesArr[i].replace(/^[0]+/g,"").length;
               if(thislen  > longeststr )
               longeststr = thislen;
            }
        
            for(var i = 0; i < sizelistArr.length; i++){
               if( sizepricesArr[i] != '0' )
               {
                  sizestr = "";
          
                  var thislen = sizelistArr[i].length + sizecodesArr[i].replace(/^[0]+/g,"").length;
                  var padding = ((longeststr - thislen) * 2) + 4;
          
                  if(!colorDD.options)
                  sizestr = paddingstr(padding) + '-' + paddingstr(5) + sizepricesArr[i];

                  var elOptNew = document.createElement('option');
                  elOptNew.text = sizelistArr[i] + sizestr
                  elOptNew.value =  sizecodesArr[i];
                  
                  try {
                     sizeDD.add(elOptNew, null); // standards compliant; doesn't work in IE
                  }
                  catch(ex) {
                     sizeDD.add(elOptNew); // IE only
                  }
               }
            }
            
         }
         else if(colorDD.options){
           
            var colorname = document.getElementById("colortitle").value;

            //Clear array
            if (colorDD.length > 0)
            {
               colorDD.remove(colorDD.length - 1);
            }

            // put in  first option
            var elOptFirst = document.createElement('option');
            elOptFirst.text = colorname + ' - Choose First';
            elOptFirst.value = '';
            try {
            colorDD.add(elOptFirst, null); // standards compliant; doesn't work in IE
            }
            catch(ex) {
            colorDD.add(elOptFirst); // IE only
            } 
        
        
            var longeststr = 0;
            for(var i = 0; i < colorlistArr.length; i++){
               var thislen = colorlistArr[i].length + colorcodesArr[i].replace(/^[0]+/g,"").length;
               if(thislen  > longeststr )
               longeststr = thislen;
            }
        
            //put in other values
            for(var i = 0; i < colorlistArr.length; i++){
            
               if( colorpricesArr[i] != '0' )
               {
               
                  var thislen = colorlistArr[i].length + colorcodesArr[i].replace(/^[0]+/g,"").length;
                  var padding = ((longeststr - thislen) * 2) + 4;
               
                  colorstr = paddingstr(padding) + '-' + paddingstr(5) + colorpricesArr[i];
               
                  var elOptNew = document.createElement('option');
                  elOptNew.text = colorcodesArr[i] + '\xa0\xa0\xa0-\xa0\xa0\xa0' + colorlistArr[i] + colorstr;
                  //elOptNew.text = colorcodesArr[i].replace(/^[0]+/g,"") + '\xa0' + colorlistArr[i] + colorstr
                  elOptNew.value =  colorcodesArr[i];

                  try {
                     colorDD.add(elOptNew, null); // standards compliant; doesn't work in IE
                  }
                  catch(ex) {
                     colorDD.add(elOptNew); // IE only
                  } 
               }      
            }
         }
      }

        function paddingstr(plen){ 
         
            var pstr = "";
            for( var i = 1 ; i < plen; i++){
               pstr += '\xa0';
            } 
            return pstr;
        }


        function presubmit(sizetitle,colortitle){

                jnk=CheckItem(sizetitle,colortitle);
                if ( jnk ) {
                        document.item_detail.submit();
                        return true;
                }
                return false;

        }

        function swatchPop(url){
                window.open(url,'swatchWin','toolbar=no,location=no,status=no,menubar=no,directories=no,copyhistory=no,scrollbars=no,width=355,height=345,top=300,left=400,screenY=300,screenX=400,resizable=no');
                return false;
        }

        function updatePrice(sizetitle,colortitle) {
                var selcol = (document.item_detail.sel_color.type=="select-one") ? document.item_detail.sel_color.selectedIndex : 0;
                var selsize = (document.item_detail.sel_size.type=="select-one") ? document.item_detail.sel_size.selectedIndex : 0;;

                if(selcol>0&&selsize>0){
                        if (CheckItem(sizetitle,colortitle)) {
                                 if (hasColors == 'yes') {
                                  document.item_detail.selectedColor.value = selcol;
                                 }
                                 if (hasSizes == 'yes') {
                                  document.item_detail.selectedSize.value = selsize;
                                 }
                                document.getElementById('buynow').innerHTML = 'Calculating price ...';
                                document.item_detail.submit();
                        }
                }
        }

        function checkAvail(sizetitle,colortitle) {
                if (CheckItem(sizetitle,colortitle)) {
                        if (hasColors == 'yes') {
                                document.item_detail.selectedColor.value = document.item_detail.sel_color.selectedIndex;
                        }
                        if (hasSizes == 'yes') {
                                document.item_detail.selectedSize.value = document.item_detail.sel_size.selectedIndex;
                        }

                        return CheckItem(sizetitle,colortitle);
                        document.item_detail.submit();
                } else {
                        return false;
                }
				return true;
        }

        function EnterPers(thePage) {
                if(thePage!=''){
                        window.open(thePage ,'newWin','toolbar=no,location=no,status=yes,menubar=no,directories=no,copyhistory=no,scrollbars=yes,width=465,height=345,left=450,screenX=450,top=30,screenY=30,resizable=yes');
                }
                return false;
        }

function SendToFriend(thePage) {
if(thePage!=''){
 window.open(thePage ,'newWin',
 'toolbar=no,location=no,status=yes,menubar=no,directories=no,copyhistory=no,scrollbars=yes,width=565,height=535,left=400,screenX=400,top=30,screenY=30,resizable=yes');
 }
 // return false;
}

function ScentInfo(thePage) {
if(thePage!=''){
 window.open(thePage ,'newWin',
'toolbar=no,location=no,status=yes,menubar=no,directories=no,copyhistory=no,scrollbars=no,width=565,height=565,left=400,screenX=400,top=30,screenY=30,resizable=no');
 }
  // return false;
}
  

function ShowLargePicture(vr_test) {
                if (vr_test > "") {
                        largePictureWindow = window.open("large_picture.html", "largePictureWindow", "width=400,height=500,left=0,top=30,resizable,scrollbars");
                        largePictureWindow.focus();
                }
        }

function CheckItem(sizetitle,colortitle){
var di=document.item_detail;
var eordValue;

if(document.getElementById('eordRadio')){
   for(var jj=0; jj<di.eordRadio.length; jj++)
   {
      if(di.eordRadio[jj].checked)
      { eordValue = di.eordRadio[jj].value; }
   }

   if(eordValue == "Y"){
      if(di.continuity.value == ""){
         alert("Please select how often you would like item shipped, or select 'Buy one time only'.");   
         return false;
      }
   }
}

if (di.continuity && di.continuity.selectedIndex > 0 ){
  var eMsg;
  eMsg = "You have selected how often you would like refills.\n";
  eMsg += "You must also select 'Easy Order Refill' in order \n";
  eMsg += "to complete this transaction. \n";
  eMsg += "Otherwise, select 'Buy one time only'. \n";
  for(var jj=0; jj<di.eordRadio.length; jj++){
     if(di.eordRadio[jj].checked)
     { eordValue = di.eordRadio[jj].value; }
  }
  if (eordValue == "N"){
     alert(eMsg);
     return false;
  }
}

 if (di.sel_qty.value == "0" ||
 !isPosInt(di.sel_qty.value) ){
 alert("You must order at least 1 item.");
 di.sel_qty.select();
 return false;
} else if (parseInt(di.sel_qty.value) > 99){
 alert("Not allowed to order quantities greater than 99.");
 di.sel_qty.select();
 return false;
}
else if (hasSizes == 'yes' &&
  di.sel_size.selectedIndex <= 0) {
 if (di.sel_size.selectedIndex == 0) {
  alert("Please select a "+sizetitle+".");
  di.sel_size.focus();
  return false;
 }
 else {
  alert("Error occured. If problem persists, try refreshing page.");
  di.sel_size.focus();
  return false;
 }
} else if (hasColors == 'yes' &&
  di.sel_color.selectedIndex <= 0) {
 if (di.sel_color.selectedIndex == 0) {
  alert("Please select a "+colortitle+".");
  di.sel_color.focus();
  return false;
 }
 else {
  alert("Error occured. If problem persists, try refreshing page.");
  di.sel_color.focus();
  return false;
 }
} else if (persReq == 'yes' && persEntered == 'no') {
 alert("Personalization is required for this item.");
 // di.personalize.focus();
 return false;
/* added check to be sure we have a color & size value */
} else if
  (hasColors == 'yes' &&
(di.sel_color.options[di.sel_color.selectedIndex].value == null ||
di.sel_color.options[di.sel_color.selectedIndex].value == "")) {
 msg = "Error selecting a "+colortitle+", try again.";
 alert(msg);
 di.sel_color.focus();
 return false;
} else if (hasSizes == 'yes' &&
(di.sel_size.options[di.sel_size.selectedIndex].value == null ||
di.sel_size.options[di.sel_size.selectedIndex].value == "")) {
 msg = "Error selecting a "+sizetitle+", try again.";
 alert(msg);
 di.sel_size.focus();
 return false;
} else {
 di.persentered.value = persEntered;
 return true;
}
}


