//////	3-Mar-1996 Copyright (C) 1996 by Geoff Inglis. You may use these
//////	routines in your pages (commercial or noncommercial) as long as
//////	you include these four lines. You may not Re-sell this code. 
//////  Questions (or if you use this code) E-mail: inglis@maxcomp.com

// added getstateID function by D.L.Jeffries 5/25/00 - YukonSoft Corporation
// added isCartEmpty function by D.L.Jeffries 7/30/00 - YukonSoft Corporation
 
function isQuoteEmpty() {
   var iCustomer = 0;
   var iQuote = 0;

   iQuote = document.cookie.indexOf("TheQuote");
   iCustomer = document.cookie.indexOf("TheCustomer");

   if (iBasket > -1) {
      if (iBasket < iCustomer) {
         if (document.cookie.substring(iQuote,iCustomer).indexOf("[") > -1) 
            return false;
         else
            return true;
      }
      else {
         if (document.cookie.substring(iQuote).indexOf("[") > -1) 
            return false;
         else
            return true;
      }
   }
   else
      return true;
}


function isCartEmpty() {
   var iBasket = 0;
   var iCustomer = 0;

   iBasket = document.cookie.indexOf("TheBasket");
   iCustomer = document.cookie.indexOf("TheCustomer");

   if (iBasket > -1) {
      if (iBasket < iCustomer) {
         if (document.cookie.substring(iBasket,iCustomer).indexOf("[") > -1) 
            return false;
         else
            return true;
      }
      else {
         if (document.cookie.substring(iBasket).indexOf("[") > -1) 
            return false;
         else
            return true;
      }
   }
   else
      return true;
}


function isCustomerEmpty() {
   var iBasket = 0;
   var iCustomer = 0;

   iBasket = document.cookie.indexOf("TheBasket");
   iCustomer = document.cookie.indexOf("TheCustomer");

   if (iBasket > -1) {
      if (iBasket < iCustomer) {
         if (document.cookie.substring(iBasket,iCustomer).indexOf("[") > -1) 
            return false;
         else
            return true;
      }
      else {
         if (document.cookie.substring(iBasket).indexOf("[") > -1) 
            return false;
         else
            return true;
      }
   }
   else
      return true;

}

function getstateID(object) {
//	var object = "";

    switch (object) {
        case "AA" : return 1 ; break;
        case "AB" : return 2 ; break;
        case "AE" : return 3 ; break;
        case "AK" : return 4 ; break;
        case "AL" : return 5 ; break;
        case "AP" : return 6 ; break;
        case "AR" : return 7 ; break;
        case "AS" : return 8 ; break;
        case "AZ" : return 9 ; break;
        case "BC" : return 10 ; break;
        case "CA" : return 11 ; break;
        case "CO" : return 12 ; break;
        case "CT" : return 13 ; break;
        case "DC" : return 14 ; break;
        case "DE" : return 15 ; break;
        case "FL" : return 16 ; break;
        case "FM" : return 17 ; break;
        case "GA" : return 18 ; break;
        case "GU" : return 19 ; break;
        case "HI" : return 20 ; break;
        case "IA" : return 21 ; break;
        case "ID" : return 22 ; break;
        case "IL" : return 23 ; break;
        case "IN" : return 24 ; break;
        case "KS" : return 25 ; break;
        case "KY" : return 26 ; break;
        case "LA" : return 27 ; break;
        case "MA" : return 28 ; break;
        case "MB" : return 29 ; break;
        case "MD" : return 30 ; break;
        case "ME" : return 31 ; break;
        case "MH" : return 32 ; break;
        case "MI" : return 33 ; break;
        case "MN" : return 34 ; break;
        case "MO" : return 35 ; break;
        case "MP" : return 36 ; break;
        case "MS" : return 37 ; break;
        case "MT" : return 38 ; break;
        case "NB" : return 39 ; break;
        case "NC" : return 40 ; break;
        case "ND" : return 41 ; break;
        case "NE" : return 42 ; break;
        case "NF" : return 43 ; break;
        case "NV" : return 44 ; break;
        case "NH" : return 45 ; break;
        case "NJ" : return 46 ; break;
        case "NM" : return 47 ; break;
        case "NS" : return 48 ; break;
        case "NT" : return 49 ; break;
        case "NY" : return 50 ; break;
        case "OH" : return 51 ; break;
        case "OK" : return 52 ; break;
        case "ON" : return 53 ; break;
        case "OR" : return 54 ; break;
        case "PA" : return 55 ; break;
        case "PE" : return 56 ; break;
        case "PR" : return 57 ; break;
        case "PW" : return 58 ; break;
        case "QC" : return 59 ; break;
        case "RI" : return 60 ; break;
        case "SC" : return 61 ; break;
        case "SD" : return 62 ; break;
        case "SK" : return 63 ; break;
        case "TN" : return 64 ; break;
        case "TX" : return 65 ; break;
        case "UT" : return 66 ; break;
        case "VA" : return 67 ; break;
        case "VT" : return 68 ; break;
        case "WA" : return 69 ; break;
        case "WI" : return 70 ; break;
        case "WV" : return 71 ; break;
        case "WY" : return 72 ; break;
        case "YT" : return 73 ; break;
    }                          
}

// End

//\/\/\/\/\/\/\/\/\  ** Here is the CookieName */\/\/\/\/\/\/\

TheCookieName = 'TheCustomer';
numDays       = 30;  //Days 'till Cookie expires.(eg. 183 days = 6 months)

// Write One Big Cookie with all the values in it.
function WriteOneBigCookie () {
   var expire = new Date ();
   expire.setTime (expire.getTime() + (numDays * 24 * 3600000)); //6 months from now!
//                                     (dd) (hr) (ms in hr)
   var WholeCookie = expire ;

// Text entry
   WholeCookie = WholeCookie + '`' + document.Aform.first_name.value;
   WholeCookie = WholeCookie + '`' + document.Aform.last_name.value;
   WholeCookie = WholeCookie + '`' + document.Aform.address.value;
   WholeCookie = WholeCookie + '`' + document.Aform.city.value;
   WholeCookie = WholeCookie + '`' + document.Aform.state.value;
   WholeCookie = WholeCookie + '`' + document.Aform.zip.value;
   WholeCookie = WholeCookie + '`' + document.Aform.pnpcountry.value;
   WholeCookie = WholeCookie + '`' + document.Aform.first_name2.value;
   WholeCookie = WholeCookie + '`' + document.Aform.last_name2.value;
   WholeCookie = WholeCookie + '`' + document.Aform.address2.value;
   WholeCookie = WholeCookie + '`' + document.Aform.city2.value;
   WholeCookie = WholeCookie + '`' + document.Aform.state2.value;
   WholeCookie = WholeCookie + '`' + document.Aform.zip2.value;
   WholeCookie = WholeCookie + '`' + document.Aform.country2.value;
   WholeCookie = WholeCookie + '`' + document.Aform.phone.value;
   WholeCookie = WholeCookie + '`' + document.Aform.email.value;

//Radio button
   WholeCookie = WholeCookie + '`' + setChkIndx(document.Aform.delivery);
   WholeCookie = WholeCookie + '`' + document.Aform.company;

//Select Form (One entry)
   WholeCookie = WholeCookie + '`' + document.Aform.Entry9.selectedIndex;

//Select Form (Multiple entries)
//   WholeCookie = WholeCookie + '`' + findChkIndx_MS(document.TestForm.Entry10);

//Put cookie in the Oven Bake 'till done
  document.cookie = TheCookieName +"=" + escape (WholeCookie) +
                    "; expires=" + expire.toGMTString() ;
}

//**Edit this function for each corresponding function above.
//  They are numbered in the order they are placed in the Cookie
//  starting with zero which is ALWAYS the expriation date.

function UpdateForm () {

//Get the Cookievalue then use a Cookie Cutter to slice it up in an array.
MakeCookieArray(GetCookie(TheCookieName));

//TEXT input Form

//alert('ckArray: ' + ckArray[0]);
if (ckArray[0] != "*") {
  document.Aform.first_name.value   = ckArray[0];
  document.Aform.last_name.value   	= ckArray[1];
  document.Aform.address.value  	= ckArray[2];
  document.Aform.city.value  		= ckArray[3];
  document.Aform.state.value 		= ckArray[4];
  document.Aform.selstate.selectedIndex = getstateID(ckArray[4]) +1;
  document.Aform.zip.value 			= ckArray[5];
  document.Aform.pnpcountry.value 		= ckArray[6];
  document.Aform.first_name2.value  = ckArray[7];
  document.Aform.last_name2.value   = ckArray[8];
  document.Aform.address2.value  	= ckArray[9];
  document.Aform.city2.value  		= ckArray[10];
  document.Aform.state2.value 		= ckArray[11];
  document.Aform.selstate2.selectedIndex = getstateID(ckArray[11]) +1;
  document.Aform.zip2.value 		= ckArray[12];
  document.Aform.country2.value 	= ckArray[13];
  document.Aform.phone.value 		= ckArray[14];
  document.Aform.email.value 		= ckArray[15];
  document.Aform.company.value = ckArray[17];
}

//Get and return the index of THE checked radio button

 function setChkIndx(theName) {
   for (var i=0; i < theName.length; i++ ) {
   if (theName[i].checked == true) return i;
  } 
 return "*"; // One item is always supposed to be checked but...
 }

//Find and return list of indexes of *all* the selected MULTIPLE selects. YUCK
//Return list of indexes, seperated by ",".
 function findChkIndx_MS(theName) {
 var indxlist = "";
   for (var i=0; i < theName.options.length; i++ ) {
   if (theName.options[i].selected == true) indxlist = indxlist + "," + i;
	}   
 return (indxlist == "")?indxlist = "*":indxlist;
} 

//Use the list to SET all stored MULTIPLE selects.
// Most efficient storage for a very long list, but messy.
// Requires clearing all before loading to get only those checked.
 function setChkIndx_MS(formObj,theList) {
   for (var i=0; i < formObj.options.length; i++) {
   formObj.options[i].selected = false;} //clear all.
   var ilen = 0;
   while ( ilen < theList.length-1 ) {
    var indxstart = theList.indexOf(',',ilen);
    if (indxstart == -1) return;

    ilen = theList.indexOf(',',indxstart+1);
    if (ilen == -1) ilen = theList.length;
}
    //make sure its an integer before using as subscript
    var indx = parseInt(theList.substring(indxstart+1,ilen) ,10);
    formObj.options[indx].selected = true;
	}
}   
 
//Get the cookie from a list of possible cookies. Honest!
function GetCookie (CookieName) {
  var cname = CookieName + "=";
  var i = 0;
  while (i < document.cookie.length) {
    var j = i + cname.length;
    if (document.cookie.substring(i, j) == cname) {
	var leng = document.cookie.indexOf (";", j);
	if (leng == -1) leng = document.cookie.length;
	return unescape(document.cookie.substring(j, leng));
	}    
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break; //thats -1 plus 1, duh.
	}  
  return "*";
  }

//Set the Cookie with expire date in the past - 2 days to get it for sure.
function DelEatCookie (name) {
  var expire = new Date()
  expire.setTime (expire.getTime() - 2 * 86400001);  //-2 days ago. Stale Cookie
  document.cookie = name + "=*; expires=" + expire.toGMTString();
	}

//Parse Big  Cookie. A CookieCutter if you will.

function MakeCookieArray(cookieValue) {
	var i = 0, indx = 0;
   var lastitem;
  	ckArray = new Array();
  	if ( cookieValue == null ) {ckArray[0]= "*";return}//Data has expired or never entered.
   	if ( cookieValue == "*"  ) {ckArray[0]= "*";return}//Data has expired or never entered.

	for (var i = 0; i <= cookieValue.length+2; i++) {
		if (cookieValue.substring(i,i+1) == '[') {
			itemstart = i+2;
			indx = 0;
		} 
		else if (cookieValue.substring(i,i+1) == ']') {
			itemend = i;
			lastitem = cookieValue.substring(itemstart-1, itemend);
		} 
		else if (cookieValue.substring(i,i+1) == '|') {
		    ckArray[indx] = cookieValue.substring(itemstart-1, i);
		    i++;
			indx++;
			itemstart=i+1;
		}
	}
	ckArray[17] = lastitem;
}

