//Copyright Mangolab Ltd. 2008. All rights reserved.
//USES:
// - Prodcode.js
//SUMMARY:
// Cookie handling
// For ordering a product & setting a cookie
// and retrieving cookies in favourite orders (in conjunction with Prodcode.js) 
//HISTORY:
// 16.10.08 Version 1.0
// 23.10.08 Version 1.0 - <FC> - Reviewd / FB ref: CASE:1496
// 23.11.09 Version 1.0 -<FC> - Renamed 'getCookie' to 'GetCookie'.

var ContactCookie="ContactDetails";
var FavouritesCookie="OrderHistory";
var StrReduce="";

function GetCookie(name) {
	//alert('GetCookie called.');
	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;
}

function setCookie(name, value, expires) {
	if (!expires) {
		expires = getExpireDate();
	} else {
		expires = getExpireDate(expires);
	}
	document.cookie = name + "=" + escape (value) + "; expires=" + expires.toGMTString() +  "; path=/";
}

function getExpireDate(days) {
	if (!days) days = 365 * 5;
	var exdate = new Date();
	exdate.setDate(exdate.getDate()+days);
	return exdate;
}

function delCookie (name) {
var expireNow = new Date();
document.cookie = name + "=" + "; expires=Thu, 01-Jan-1970 00:00:01 GMT" + "; path=/";
}

function AddStringToCookie(CookieName,StrNew){
//Set cookie expiry date - 1 year
//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);
}

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){
//alert('GetCookieField called.');
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;
		}
		StrValue="";//Reset in case value isnt there
		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;
}
