﻿function createCookie(name,value) {

	var date = new Date();
	date.setTime(date.getTime()+(30*24*60*60*1000));
	var expires = "; expires="+date.toGMTString();
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function setAddClass(pid)
{
    var fav = document.getElementById('fav_'+pid);
    if (fav!=null) {
        fav.className = "favAdd";
        fav.title = "Add to Favourites";
    }
}

function eraseCookie(name) {
    var str = readFavorites();
    var L = str.split('#');
    for (var i = 0; i < L.length; i++) {
        if (L[i]!=undefined && L[i]!=null) {
            var s2 = L[i];
            var P = s2.split("|");
            if (P[0] != "" && P[1] != "" && P[2] != "" && P[0] != null && P[1] != null && P[2] != null) {
                setAddClass(P[2]);
            }
        }
    }
   	createCookie(name,"",-1);
}

function readFavorites()
{
    var str=readCookie("CityletsFavoriteProps");
    if (str == null) return ""; else return str;  
} 

function removeFavorite(url,desc,pid) {  
    var str = readCookie("CityletsFavoriteProps");
    var i=-1;
    var key="#"+url+"|"+desc+"|"+pid+"#";
    if (str == null || (i=str.indexOf(key))==-1) {return;}
    str = str.replace(key, "");
    createCookie("CityletsFavoriteProps",str);
    setAddClass(pid);
    updatefavs(true);
}

function updatefavs(updateImages)
{
    var obj;
    var c = 0;
    if (((obj=document.getElementById('favs')) != null) || ((obj=parent.document.getElementById('favs')) != null)) {
        obj.innerHTML = '';
        var str = readFavorites();
        var L = str.split('#');
        for (var i = 0; i < L.length; i++) {
            if (L[i]!=undefined && L[i]!=null) {
                var s2 = L[i];
                var P = s2.split("|");
                if (P[0] != "" && P[1] != "" && P[2] != "" && P[0] != null && P[1] != null && P[2] != null) {
                    c++;
                    if (!isMobileDevice) {
                        obj.innerHTML = obj.innerHTML+"<div id=\"favAddr\"><a OnClick=\"tb_show('Details',mktb(this.href),null);exit=false;return false;\" href=\""+unescape(P[0])+"\">"+unescape(P[1])+"</a></div>"+
                                    "<div id=\"favIco\">"+"<a OnClick=\"tb_show('Email Agent',mktbe(this.href),null);return false;\" href=\""+bp+"/Email.aspx?from=13&pid="+P[2]+"\"><img border=0 src=\""+bp+"/images/favs/email.gif\"></a>" +
                                    "&nbsp;<a OnClick=\"javascript:removeFavorite('"+P[0]+"','"+P[1]+"','"+P[2]+"');return false;\" href=\"\"><img border=0 src=\""+bp+"/images/favs/erase.gif\"></a></div><br clear=\"all\"><hr>";
                    } else {
                        obj.innerHTML = obj.innerHTML+"<div id=\"favAddr\"><a href=\""+unescape(P[0])+"\">"+unescape(P[1])+"</a></div>"+
                                    "<div id=\"favIco\">" +
                                    "&nbsp;<a OnClick=\"javascript:removeFavorite('"+P[0]+"','"+P[1]+"','"+P[2]+"');return false;\" href=\"\"><img border=0 src=\""+bp+"/images/favs/erase.gif\"></a></div><br clear=\"all\"><hr>";
                    }
                }
            }
        }
    }
    if (((obj=document.getElementById('myfavtxt')) != null) || ((obj=parent.document.getElementById('myfavtxt')) != null)) {
        obj.innerHTML =  "("+c+")";
    }
    if (updateImages) setFavImages();
}

function isAFav(pid)
{
    var obj;
    var str = readFavorites();
    var L = str.split('#');
    var first = true;
    for (var i = 0; i < L.length; i++) {
        if (L[i]!=undefined && L[i]!=null) {
            var s2 = L[i];
            var P = s2.split("|");
            if (P[2] != null && P[2] == pid && P[0]!=null && P[1]!=null) {
                return true;
            }
        }
    }
    return false;
}
function countFavs()
{
    var obj;
    var str = readFavorites();
    var L = str.split('#');
    var count=0;
    for (var i = 0; i < L.length; i++) {
        if (L[i]!=undefined && L[i]!=null) {
            var s2 = L[i];
            var P = s2.split("|");
            if (P[2] != null && P[1]!=null && P[0]!=null) {
                count++;
            }
        }
    }
    return count;
}

function setFavImages()
{
    setFavImagesByTags(document.getElementsByTagName("a"));
}


function setFavImagesByTags(tags)
{
    var i=0
    for (i=0; i<tags.length; i++) {
        var tag = tags[i];
        if (tag.id !=null && tag.id.substr(0, 4) == "fav_") {
            var pid = tag.id.substr(4,tag.id.length - 4);
            if (isAFav(pid)) {
                tag.className= "favDel";
            } else {
                tag.className= "favAdd";
            }
        }
    }
}

function setFavImagesParent()
{
    if (parent.document.getElementById('favs') != null) {
        var tags = parent.document.getElementsByTagName("a");
        setFavImagesByTags(tags);
    }
}

function emailAllFavs()
{
    var obj;
    var pids = "";
    if ((obj=document.getElementById('favs')) != null) {
        obj.innerHTML = '';
        var str = readFavorites();
        var L = str.split('#');
        var first = true;
        for (var i = 0; i < L.length; i++) {
            if (L[i]!=undefined && L[i]!=null) {
                var s2 = L[i];
                var P = s2.split("|");
                if (P[0] != "" && P[1] != "" && P[2] != "" && P[0] != null && P[1] != null && P[2] != null) {
                    pids = pids + (first ? "" : ",") + P[2];
                    first = false;
                }
            }
        }
    }
    if (pids == "") return;
    pids = bp+"/Email.aspx?from=13&pid="+pids;
    tb_show('Email All Agents', mktbe(pids),null);
    updatefavs(false);
}

function nextElem(elem) {
    do {
        elem = elem.nextSibling;
    } while (elem && elem.nodeType != 1);
    return elem;                
}


function createFavorite(url,desc, pid, updateParent) {
    var str = readCookie("CityletsFavoriteProps");
    var key="#"+escape(url)+"|"+escape(desc)+"|"+pid+"#";
    if (str != null && str.indexOf(key)!=-1) {
        /* Fav exists so lets remove it */
        removeFavorite(escape(url),escape(desc),pid);
        document.getElementById('fav_'+pid).className = "favAdd";
        document.getElementById('fav_'+pid).title = "Add to Favourites";
        if (parent.document != null && parent.document.getElementById('fav_'+pid) != null) {
            parent.document.getElementById('fav_'+pid).className = "favAdd";
            parent.document.getElementById('fav_'+pid).title = "Add to Favourites";
        }
        if (updateParent && parent!=null & parent.document != null) {
            if (parent.document.getElementById('compareFavs') != null) {
                parent.location.reload(false);
            }
        }
        return;
    } else {
        /* Fav does not exist so add it in */
        createCookie("CityletsFavoriteProps",(str==null?"":str)+key);
        document.getElementById('fav_'+pid).className = "favDel";
        document.getElementById('fav_'+pid).title = "Remove from Favourites"
        if (parent.document != null && parent.document.getElementById('fav_'+pid) != null) {
            parent.document.getElementById('fav_'+pid).className = "favDel";
            parent.document.getElementById('fav_'+pid).title = "Remove from Favourites"
        }
    }
    updatefavs(false);
    if (updateParent) setFavImagesParent();
    
}

function openCloseFavs()
{
    if (document.getElementById('favid').style.display != 'none') 
        document.getElementById('favid').style.display='none';
    else 
        document.getElementById('favid').style.display='block';
}


function deleteFavByPid(pid)
{
    var obj;
    var str = readFavorites();
    var L = str.split('#');
    var first = true;
    for (var i = 0; i < L.length; i++) {
        if (L[i]!=undefined && L[i]!=null) {
            var s2 = L[i];
            var P = s2.split("|");
            if (P[2] != null && P[2] == pid && P[0]!=null && P[1]!=null) {
                removeFavorite(P[0], P[1], P[2]);
            }
        }
    }
    location.reload(true);
}



function emailChecked()
{
    var obj;
    var pids = "";
    var i;
    var first = true;
    // look for the first 100 favourites any more than that will be ignored - not an unreasonable assumption
    for (var i=0; i<100; i++) {
        if ((obj=document.getElementById('em_'+i)) != null && obj.checked) {
            var pidobj = nextElem(obj);
            if (pidobj != null) {
                pids = pids + (first ? "" : ",") + pidobj.value;
                first = false;
            }
        }
    }
    if (pids == "") return;
    pids = bp+"/Email.aspx?from=15&pid="+pids;
    tb_show('Email All Agents', mktbe(pids),null);
    updatefavs(false);
}
