var basket = new Array();

function populateBasket()
{
	var value = getCookie('basket');
	if(value)
	{
		basket = value.split("#");
	}
	else
	{
		basket = new Array();
	}

}

function save(name, id)
{
	var savelink=document.getElementById("saveLink"+id);

	
	if(getCookie('basket'))
	{
		if(isInBasket(name, id))
		{
			savelink.href = "javascript:remove('" +name+ "'," +id+ ")";
			savelink.innerHTML = "Remove from Favourites";
			return;
		}

		var cookieStr = getCookie('basket');
		var cookieValue = name+":"+id+"#"+cookieStr;
		setCookie('basket', cookieValue, 90);

	}
	else
	{
		setCookie('basket', name+":"+id, 90);
	}
	
	if (savelink != null)
	{
		savelink.href = "javascript:remove('" +replaceAll(name, "'", "\\\'")+ "'," +id+ ")";
		savelink.innerHTML = "Remove from Favourites";
	}
	relaybasket();
}

function reset()
{
	setCookie('basket', "", 0);
	relaybasket();
}
/*This is used on the small basket on most screens*/
function remove(name, id)
{
//	alert("remove("+name+","+ id);
	removeFromCookie(name, id);

	//reenable link
	saveLink = document.getElementById("saveLink"+id);
	if (saveLink != null){
		saveLink.innerHTML = "Add to Favourites";
		saveLink.href = "javascript:save('" +replaceAll(name, "'", "\\\'")+ "'," +id+ ")";
	}
	relaybasket();
	
}


/*This is used on the viewBasketPage*/
function removeFromBasket(name, id)
{
	removeFromCookie(name, id);

	//remove from basketdisplay
	houseRow = document.getElementById(id);
	
	var len = houseRow.childNodes.length;
	for(var i=0;i<len;i++)
	{
		houseRow.childNodes[i].innerHTML="";
	}
	
	houseRow.style.display="none";	
	populateBasket();
	var count = basket.length;
	if (count == 1)
	{
		document.getElementById("number").innerHTML = count+" house";
	}
	else if(count == 0)
	{
		document.getElementById("basketHeader").innerHTML = "Your basket is empty";
		
		document.getElementById("availForm").style.display="none";
		document.getElementById("enquire").style.display="none";
	}
	else
	{
		document.getElementById("number").innerHTML = count+" houses";

	}
	
	
		
}

function removeFromCookie(name, id)
{
	var item = name+":"+id;
	var saved = getCookie('basket');
	var before = saved.substring(0, saved.indexOf(item));
	var after = saved.substring(saved.indexOf(item)+item.length);
	if (after.length > 0)
	{
		after = after.substring(1);
	}
	else if(before.length > 0)
	{
		before = before.substring(0,before.length-1);
	}
	setCookie('basket', before+after, 90);
}

function relaybasket()
{
	document.getElementById("innerbasket").innerHTML = compileBasket();
}

function displayBasket()
{
	document.write(compileBasket());
	document.write(compileLists());
}
function compileLists()
{
var listhtml = "";
var value = getCookie('lists');
if(value)
{
	lists = value.split("#");
	
	if(lists.length > 0)
	{
		listhtml +="<hr/><h4>"+ lists.length +" Lists:</h4>	<ul class=\"lists\">";

		for(var i=0;i<lists.length;i++)
		{
			
			listhtml +="<li><a href=\""+urlroot+"showSearch.php?showlist=1&list="+lists[i]+"\" title=\"view list '"+lists[i]+"'\">"+lists[i]+"</a></li>";

			
		}
		
		listhtml +="</ul>";

	}
	
}
return listhtml;
	
}
	
function compileBasket()
{
	if(urlroot == undefined)
	{
		alert("setting urlroot to empty");
		urlroot = "";
	}
	var baskethtml = "";
	populateBasket();
	if(basket.length > 0)
	{
		var toDisplay = basket.length;
		var remainder = 0;
		var max = 5;
		if (max < basket.length){
			remainder =  basket.length-max;
			toDisplay = max;
		}
		
		baskethtml = "<table>";
		for(var i=0;i<toDisplay;i++)
		{
			parts = basket[i].split(":");
			baskethtml += '<tr><td><img src="'+urlroot+'images/thumbs/'+parts[1]+'.jpg" alt="'+parts[0]+'"/></td>'
					+'<td class="name"><a href="'+urlroot+'showHouse.php?hid=' +parts[1]+ '" title="view '+parts[0]+'">'+parts[0]+'</a></td>'
					+'<td class="remove"><a href="javascript:remove(\''+replaceAll(parts[0],"'","\\\'")+'\', '+parts[1]+')" title="remove">X</a></td></tr>';
			
		}
		baskethtml += "</table>";
		if (remainder > 0)
		{
			baskethtml += "<a href=\""+urlroot+"viewBasket.php\" class=\"here\">"+remainder+" more...</a>";
		}
		else
		{
			baskethtml += "<a href=\""+urlroot+"viewBasket.php\" class=\"here\">View all favourites</a>";
		}
		//baskethtml += "<a href=\"javascript:reset();\" class=\"here\">Empty basket</a>";
	}
	
	
	else
	{
		baskethtml = "<p>empty</p>";
	}
	return baskethtml;

}

function isInBasket(name, id)
{
	return getCookie('basket').indexOf(name+":"+id)>-1;
}


function printSaveToBasket(name, id)
{

document.write('<a href= "#" id="link'+id+'" onclick="save(\''+replaceAll(name, "'", "\\\'")+'\', '+id+', this);">');

	if(!isInBasket(name, id))
	{
		document.write("save id "+id);
	}
	else
	{
		document.write(id +" in basket");
	}
document.write('</a>');


}


function setVisitTime()
{
	var now = new Date();
	setCookie("lastVisited", now.toGMTString(), 90);
}

function showLastVisitTime()
{
if(getCookie("lastVisited"))
{

document.write('last visited:'+getCookie("lastVisited"));

}
else
{
document.write('first visit');
}
}

function setCookie(cookieName,cookieValue,nDays) {
	 var today = new Date();
	 var expire = new Date();
	 if (nDays==null || nDays==0) nDays=1;
	 expire.setTime(today.getTime() + 3600000*24*nDays);
	 document.cookie = cookieName+"="+escape(cookieValue)
	 			+ ";path=/"
                 + ";expires="+expire.toGMTString();
}

function getCookie(c_name)
{
	if (document.cookie.length>0)
	  {
	  c_start=document.cookie.indexOf(c_name + "=");
	  if (c_start!=-1)
	    { 
	    c_start=c_start + c_name.length+1; 
	    c_end=document.cookie.indexOf(";",c_start);
	    if (c_end==-1) c_end=document.cookie.length;
	    ret = unescape(document.cookie.substring(c_start,c_end));
//alert(ret);
newret=replaceAll(ret, "+", " ");
//alert ("after: "+newret);   
	    return newret;
	    } 
	  }
	return "";
}

function replaceAll(str, search, replace)
{

//	alert("replacing "+search+" with "+replace+" in "+str);
	var parts=str.split(search);
	var ret = "";
	var num = parts.length;
	for(var i=0;i<num;i++)
	{
		if(i>0)
		{
			ret+=replace;
		}
		ret+=parts[i];
		
	}
	
	return ret;
}




function URLEncode (clearString) {
	  var output = '';
	  var x = 0;
	  clearString = clearString.toString();
	  var regex = /(^[a-zA-Z0-9_.]*)/;
	  while (x < clearString.length) {
	    var match = regex.exec(clearString.substr(x));
	    if (match != null && match.length > 1 && match[1] != '') {
	    	output += match[1];
	      x += match[1].length;
	    } else {
	      if (clearString[x] == ' ')
	        output += '+';
	      else {
	        var charCode = clearString.charCodeAt(x);
	        var hexVal = charCode.toString(16);
	        output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
	      }
	      x++;
	    }
	  }
	  return output;
	}



function recentlyViewed()
{
	if(urlroot == undefined)
	{
		alert("setting urlroot to empty");
		urlroot = "";
	}
	
	var value = getCookie('recent');
	if(value)
	{
		recent = value.split("#");
	}
	else
	{
		return "";
	}

	
	
	var recenthtml = "";
	if(recent.length > 0)
	{
		recenthtml += "<h3 class=\"leftbox header_small\">Recently viewed</h3>";
		recenthtml += "<div class=\"leftbox\">";
		var toDisplay = recent.length;
		var max = 20;
		if (max < toDisplay){
			toDisplay = max;
		}
		
		recenthtml += "<ul>";
		for(var i=0;i<toDisplay;i++)
		{
			parts = recent[i].split(":");
			recenthtml += '<li><img src="'+urlroot+'images/thumbs/'+parts[0]+'.jpg" alt="Thumbnail of '+parts[1]+'"/>'
					+'<span><a href="'+urlroot+'showHouse.php?hid=' +parts[0]+ '" title="view '+parts[1]+'">'+parts[1]+'</a></span>'
					+'</li>';
			
		}
		recenthtml += "</ul></div>";
	}
	
	return recenthtml;
	
}

function addRecent(housename, id)
{
//alert("addRecent("+housename+":"+ id);
	var cookieStr = "";
	var str = id+":"+housename;

	if(getCookie('recent'))
	{
		cookieStr = getCookie('recent');
//if already there remove it
//		alert("cookieStr = "+cookieStr);

		if (cookieStr.indexOf(str)>-1)
		{

			cookieStr = replaceAll(cookieStr, str, "");
			cookieStr = replaceAll(cookieStr, "##", "#");
			if (cookieStr.indexOf("#") == 0)
			{
				cookieStr = cookieStr.substring(1);
			}
			if (cookieStr.lastIndexOf("#") == cookieStr.length - 1)
			{
				cookieStr = cookieStr.substring(0, cookieStr.length - 1);
			}
		}	
		
		if(cookieStr.length > 0)
		{
			cookieStr="#"+cookieStr;
		}

	}

	cookieStr = str+cookieStr;
//	alert("cookieStr new = "+cookieStr);
	setCookie('recent', cookieStr, 90);
	
}



function load(name, id){

	var saveLink=document.getElementById("saveLink"+id);

	if(saveLink){
		if(isInBasket(name,id))
		{
			saveLink.href="javascript:remove('"+name+"',"+id+")";
			saveLink.innerHTML="Remove from Favourites";
		}
		else
		{
			saveLink.href="javascript:save('"+name+"',"+id+")";
			saveLink.innerHTML="Add to Favourites";
		}
	}	
	
}

