<!--
 
//For ordering a product & setting a cookie
//and retrieving cookies in favourite orders (in conjunction with Prodcode.js) 

//~~~~~~~~~~~~~~~~
//COOKIE HANDLING:
//~~~~~~~~~~~~~~~~

var ContactCookie="ContactDetails";
var FavouritesCookie="OrderHistory";
var StrReduce="";

function getCookie(name) {
var dcookie = document.cookie; 
var cname = name + "=";
var clen = dcookie.length;
var cbegin = 0;
while (cbegin < clen) {
        var vbegin = cbegin + cname.length;
                if (dcookie.substring(cbegin, vbegin) == cname) { 
                var vend = dcookie.indexOf (";", vbegin);
                        if (vend == -1) vend = clen;
                return unescape(dcookie.substring(vbegin, vend));
                }
        cbegin = dcookie.indexOf(" ", cbegin) + 1;
                if (cbegin == 0) break;
        }
return null;
}

function setCookie(name, value, expires) {
        if (!expires) expires = new Date();
document.cookie = name + "=" + escape (value) + 
"; expires=" + expires.toGMTString() +  "; path=/";
}

function delCookie (name) {
var expireNow = new Date();
document.cookie = name + "=" + 
"; expires=Thu, 01-Jan-70 00:00:01 GMT" +  "; path=/";
}

function AddStringToCookie(CookieName,StrNew){
//Set cookie expiry date - 1 year
var ExpDate = new Date();
ExpDate.setTime (ExpDate.getTime() +  (24 * 60 * 60 * 1000 * 365)); 
//get any existing cookie and add to it
StrCookie=getCookie(CookieName);
if (StrCookie==null){
   StrCookie=StrNew+"|";
   }
   else {
   StrCookie=StrNew+"|"+StrCookie;//ie pipe delimited
   }
//replace old cookie - we dont need to delete it first
//delCookie(CookieName); //NB REMOVE
setCookie(CookieName, StrCookie, ExpDate);
}

function AddOrderToCookie(ProductCode, ProductName, Quantity){
var DateNow = new Date();
DateNow.setTime(DateNow.getTime());
AddStringToCookie(FavouritesCookie,DateNow.toLocaleString()+"#"+ProductCode+"#"+ProductName+"#"+Quantity+"#");
}

function IsCookieExists(CookieName){
return (getCookie(CookieName)!=null);
}

function GetCookieField(CookieName,FieldName){
var StrValue="";
if (IsCookieExists(CookieName)){
   var StrCookie=getCookie(CookieName);
   var StrField="";
   while (StrCookie!=""){
         //alert("start of round StrCookie="+StrCookie);
         StrReduce=StrCookie;
         StrField=SliceStrReduce("|");//reducing StrReduce too
         StrValue=SliceStrReduce("|");//reducing StrReduce too	
         if (StrField==FieldName){
            break;
	    }
         StrCookie=StrReduce;  
         }
   }
return StrValue;    
}

//nb StrReduce must be global!
function SliceStrReduce(StrDelimiter){
var IdxPos=StrReduce.indexOf(StrDelimiter);
//alert("SliceStrReduce: StrReduce="+StrReduce+" IdxPos="+IdxPos);
var StrResult="";
if (IdxPos>-1){
   StrResult=StrReduce.substring(0, IdxPos);
   StrReduce=StrReduce.substring((IdxPos+1),StrReduce.length);
   }
   else {
   StrResult=StrReduce;
   StrReduce="";
   }   
return StrResult;
}

//-->
