/* ======================================================================
Define cookie variables.

	Cookies[0] = Saved map views
	Cookies[1] = Current map view
====================================================================== */
var days_to_expire = 360*10;
var expiration_date = new Date();
expiration_date.setTime(expiration_date.getTime() + (days_to_expire*24*60*60*1000));
var CookieName = "MapMachineSaved";
var CookieBatchSize = 2;
var Cookies = new Array(CookieBatchSize);

/* ======================================================================
   SetCookie(cookienum,value)
   Description: 
       We're only using one cookie in this site.  The cookie contains a
       string of values delimited by an asterisk. This function will
       store the appropriate value into the cookie string based on the
       cookie number.
====================================================================== */
function SetCookie(cookienum,value){
   GetCookies();
   Cookies[cookienum] = value;
   for (var i = 0; i < CookieBatchSize; i++){
      if (i == 0){
         thiscookie = Cookies[i];
      }else{
         thiscookie += ("*" + Cookies[i]);
      }
   }
	//alert ("QA *******************\n\nCookieManagement setting entire cookie to: " + thiscookie);
   document.cookie = CookieName + "=" + thiscookie + "; expires=" + expiration_date.toGMTString() + ";path=/";
}

/* ======================================================================
   GetCookies()
   Description: 
       This function will read the various parts of the cookie stored for
       this feature into the Cookies array for reference elsewhere. If 
		 a number is sent to the function, the function will return the
		 cookie value associated with that number.
====================================================================== */
function GetCookies() {


   if(document.cookie) {
      index = document.cookie.indexOf(CookieName);
   } else {
      index = -1;
   }

   Cookies[0] = "null";
   if (index != -1) {
      var cookiebeg = (document.cookie.indexOf("=",index) + 1);
      var cookieend = document.cookie.indexOf(";",index);
      if (cookieend==-1) {
         cookieend=document.cookie.length;
      }
      var myCookie = document.cookie.substring(cookiebeg,cookieend);
      //var i = 0;
      for (var i = 0; i < CookieBatchSize; i++){
         if (i < (CookieBatchSize-1)) {
            Cookies[i]=myCookie.substring(0,myCookie.indexOf('*'));
            myCookie=myCookie.substring(myCookie.indexOf('*')+1,myCookie.length);
         }else{
            Cookies[i]=myCookie;
         }
      }

   }else{
      // Cookie hasn't been set or has been deleted. set to null
      for (var i = 0; i  < CookieBatchSize; i++){
         if (i == 0){
            thiscookie = "null";
         }else{
            thiscookie += "*null";
         }
      }
      document.cookie = CookieName + "=" + thiscookie + "; expires=" + expiration_date.toGMTString() + ";path=/";
   }


   if (GetCookies.arguments.length > 0){
		CookieNum = GetCookies.arguments[0];
		if(Cookies[CookieNum].indexOf("null")  > -1 || Cookies[CookieNum].indexOf("undefined") > -1)
			return "";
		else
			return Cookies[CookieNum];
			
   }
}

function storeInCookie(message) {

	SavedViews = GetCookies(0);
	if (SavedViews == "" || SavedViews == "null"){
		SavedViews = message;
	} else {
		SavedViews = SavedViews + "^" + message;
	}
	SetCookie('0',SavedViews);
}

function readFromCookie(pos) {

	SavedView = GetCookies();
	savedMaps = Cookies[0].split("^");
	message = saveMaps[pos];
	return message;
}

function getCookieSize() {
	GetCookies();
	return Cookies[0].length;
}

