var DB_Favorites = 'DB_Favorites';
var options = { path: '/', expires: 60 };
var FavoritesItemArray = [];
var CurrentFavItem = "";
var FavoritesItem = {
	Index: "",
	RecordID: "",
	MLS: "",
	ImageLocation: "",
	City: "",
	State: "",
	Price: "",
	Rooms: "",
	Baths: "",
	SquareFootag: "",
}

function SaveToFav(RecordID,MLS,ImageLocation,City,State,Price,Rooms,Baths,SquareFootag)
{
		var AddItem = true;
		var FavItem = FavoritesItem;
		FavItem.Index = FavoritesItemArray.length + 1;
		//alert(FavItem.Index);
		//FavItem.MLS = MLS;
		//FavItem.ID = ID;
		//FavItem.Image = Image;
		//FavItem.CityState = CityState;
		//FavItem.Price = Price;
		
		FavItem.RecordID = RecordID;
		FavItem.MLS = MLS;
		FavItem.ImageLocation = ImageLocation;
		FavItem.City = City;
		FavItem.State = State;
		FavItem.Price = Price;
		FavItem.Rooms = Rooms;
		FavItem.Baths = Baths;
		FavItem.SquareFootag = SquareFootag;
		
		CurrentFavItem = FavItem;
		
		for (i=0;i<=FavoritesItemArray.length - 1;i++) // Check to see if Item has already been stored.
		{
			if(FavoritesItemArray[i].MLS == MLS && FavoritesItemArray[i].RecordID == RecordID)
			{
				AddItem = false;
				break;
			}
		}
		
		if(AddItem)
		{
			FavoritesItemArray.push(FavItem);
			SaveToCookie();
			LoadFavContent();
		}
	
		CallCloud("addfav",CurrentFavItem);
}
function SaveToCookie(){
	if($.cookie != undefined)
	{
		var CookieData = $.toJSON(FavoritesItemArray);
		$.cookie(DB_Favorites, CookieData, options);
		LoadFavs();
	}
}
function ReIndexFavs()
{
	for (i=0;i<=FavoritesItemArray.length - 1;i++)
	{
		FavoritesItemArray[i].Index = i;
	}
}
function LoadFavs(){
	if($.cookie != undefined)
	{
		var FavData = $.evalJSON($.cookie(DB_Favorites));
		var RecordCount = "0";
		if(FavData != null){
			RecordCount = FavData.length + '';
			if(RecordCount != "0")
			{
				FavoritesItemArray = FavData;
			}
		}
	}
}
function RemoveFav(MLS,ID){
		var ObjectIndex = undefined;
		for (i=0;i<=FavoritesItemArray.length - 1;i++) // Check to see if Item has already been stored.
		{
			if(FavoritesItemArray[i].MLS == MLS && FavoritesItemArray[i].RecordID == ID)
			{
				ObjectIndex = i;
				CallCloud("delfav",FavoritesItemArray[i]);
				break;
			}
		}
		
		if(ObjectIndex != undefined)
		{
			if(ObjectIndex == 0){FavoritesItemArray.shift();}
			else{
				var Front = FavoritesItemArray.slice(0,ObjectIndex);
				var Back = FavoritesItemArray.slice(ObjectIndex + 1);
				
				FavoritesItemArray = Front.concat(Back);
			}
			ReIndexFavs();
			SaveToCookie();
			LoadFavContent();
		}

}
function ClearFavs(){
	FavoritesItemArray = [];
	SaveToCookie();
}


var  FavTemplate = "\
<div class='FavRow'> \
<div class='FavThumb'><img src='#{Image}' width='75' height='50' border='0'></div> \
<div class='FavPrice'>$#{Price}</div> \
<div class='FavCityState'>#{CityState}</div> \
<div class='FavView' onclick='window.location=\"/Listings?d=#{ID}\"'>View</div> \
<div class='FavDelete' onclick=\"RemoveFav('#{MLS}','#{ID}');LoadFavContent();\">Delete</div> \
<div> \
";
function LoadFavContent()
{
	try{	
	var FavView = document.getElementById('FavView');
	var FavBody = document.getElementById('FavBody');
	if(FavoritesItemArray.length > 0)
	{
		FavView.style.display="";
		
		var DisplayArray = FavoritesItemArray;
		DisplayArray.reverse();
		FavBody.innerHTML = "";
		for (i=0;i<=DisplayArray.length - 1;i++)
		{
			var TmpObj = FavTemplate + "";
			TmpObj = TmpObj.replace("#{Image}",DisplayArray[i].ImageLocation);
			TmpObj = TmpObj.replace("#{Price}",DisplayArray[i].Price);
			TmpObj = TmpObj.replace("#{CityState}",DisplayArray[i].City + ', ' + DisplayArray[i].State);
			TmpObj = TmpObj.replace("#{MLS}",DisplayArray[i].MLS);
			TmpObj = TmpObj.replace(/#{ID}/g,DisplayArray[i].RecordID);
			FavBody.innerHTML += TmpObj;
		}
	}
	else
	{
		FavBody.innerHTML = "<br/><br/><br/><br/><br/><center>You have no Favorites at this time.</center>";
		FavView.style.display="";
	}
	}
	catch(err){}
}
function CallCloud(call,item)
{
	try{
		var favitem = $.toJSON(item);
		var url = 'http://' + location.host + '/bin/rest.php?rstmd=S922awrEn6gutRuf&call='+call+'&fav='+favitem;
		//alert(url);
		$.ajax({
		  url: url,
		  success: function(data) {
		    //alert(data);
		  }
		});
	} catch(err){}
}
function LoadFavsCloud()
{
	try{
	var url = 'http://' + location.host + '/bin/rest.php?rstmd=S922awrEn6gutRuf&call=getfavs';
	//alert(url);
	$.ajax({
	  url: url,
	  success: function(data) {
	  	if(data != "" && data != null)
	  	{
		  	var CloudData = $.evalJSON(data);
			for (i=0;i<=CloudData.length;i++) // Check to see if Item has already been stored.
			{
				if(CloudData[i] != undefined)
				{
					var FavItem = CloudData[i];
					FavItem.Index = i;
					FavoritesItemArray.push(FavItem);
				}
			}
		    SaveToCookie();
		    LoadFavs();
		    LoadFavContent();
	  	}
	  	else
	  	{
		    LoadFavs();
		    LoadFavContent();
	  	}
	  }
	});
	} catch(err){}
}

//ClearFavs();
//LoadFavs();



$(document).ready(function(){
	LoadFavsCloud(LoadFavs);
	//LoadFavContent();
});


