<!--

/*
   name - name of the cookie
   value - value of the cookie
   [expires] - expiration date of the cookie
     (defaults to end of current session)
   [path] - path for which the cookie is valid
     (defaults to path of calling document)
   [domain] - domain for which the cookie is valid
     (defaults to domain of calling document)
   [secure] - Boolean value indicating if the cookie transmission requires
     a secure transmission
   * an argument defaults when it is assigned null as a placeholder
   * a null placeholder is not required for trailing omitted arguments
*/

function setCookie(name, value, expires, path, domain, secure) {
  var curCookie = name + "=" + escape(value) +
      ((expires) ? "; expires=" + expires.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");
  document.cookie = curCookie;
}


/*
  name - name of the desired cookie
  return string containing value of specified cookie or null
  if cookie does not exist
*/

function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}


/*
   name - name of the cookie
   [path] - path of the cookie (must be same as path used to create cookie)
   [domain] - domain of the cookie (must be same as domain used to
     create cookie)
   path and domain default if assigned null or omitted if no explicit
     argument proceeds
*/

function deleteCookie(name, path, domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}

// date - any instance of the Date object
// * hand all instances of the Date object to this function for "repairs"

function fixDate(date) {
  var base = new Date(0);
  var skew = base.getTime();
  if (skew > 0)
    date.setTime(date.getTime() - skew);
}

function aux_Shortlist_del(cookie,listing)
{
	start=cookie.indexOf(','+listing+',');
	if (start < 0)
	  return;
	if (start > 0)
	  cookie=cookie.substring(0,start)+','+cookie.substring(start+listing.toString().length+2,cookie.length);
	else
	  cookie=','+cookie.substring(listing.toString().length+2,cookie.length);  
	if (cookie==',')
	  deleteCookie('shortlist');
	else
	  setCookie('shortlist',cookie,expires); 
}

function Shortlist(listing,mode)
{
  var cookie=getCookie('shortlist');
  var img;
  var e;
  today=new Date();
  expires=new Date();
  expires.setTime(today.getTime()+3600000*24*30);
  if (cookie==null)
    cookie=',';
  if (listing < 0) {
    // locate the item
	if (confirm("Are you sure you want to remove this listing from your shortlist ?")) {
	  aux_Shortlist_del(cookie,-listing);
      document.location.href='shortlist.php';	// refresh
	}
	return;
  }
  if (cookie.indexOf(','+listing+',') >= 0) {
	// delete from shortlist
	aux_Shortlist_del(cookie,listing);
	if (mode) {
	  e=document.getElementById('add_'+listing);
	  if (e)
	    e.style.display='block';
	  e=document.getElementById('del_'+listing);
	  if (e)
	    e.style.display='none';
	}
	else {
      img=document.getElementById(listing);
	  img.className='btn shortlistBtn';
	}
    alert("Listing removed from your shortlist.");
	return;
  }
  cookie=cookie+listing+',';
  setCookie('shortlist',cookie,expires);
  if (mode) {
	  e=document.getElementById('add_'+listing);
	  if (e)
	    e.style.display='none';
	  e=document.getElementById('del_'+listing);
	  if (e)
	    e.style.display='block';
  }
  else {
    img=document.getElementById(listing);
    img.className='btn r_shortlistBtn';
  }
  alert("Listing added to your shortlist.");
}

function openWindow(url,win,mode)
{
  window.open(url,win,mode);  
}

// betta research
function tgp(e,rb)
{
  var cookie=getCookie('research');
  var index;
  var id=new String(e.name.substring(4))+(rb ? '_r' : '');
  var research;
  today=new Date();
  expires=new Date();
  expires.setTime(today.getTime()+3600000*24*30);
  if (!cookie)
    research=[];
  else
    research=JSON.parse(cookie);
  
  // lets identify location of id 
  for (index=0; index < research.length; index++)
    if (research[index]==id)
      break;
  if (e.checked && index >= research.length) // if adding and not already in list add
    research[research.length]=id;
  else if (!e.checked && index < research.length) // otherwise if removing and in list remove
    research.splice(index,1);      
  setCookie('research',JSON.stringify(research),expires);  
}
