/*
Description: Cookie manipulation.

*/
var savedInmueblesCookieName = 'misInmueblesUsaSeleccionados';
var savedPopupCookieName = "comparePopUp";
var deletedCookieArray = new Array();

function openSavePopup(referer)
{
    var compareWin = window.open('http://us.tuinmueble.com:8080/savedInmueblesUsa/app/warning.jsp?referer='+referer,'saveMessage','height=240,width=330');
    compareWin.focus();
}

function openAdClickPopUp (adId) {
	var compareWin = window.open('http://us.tuinmueble.com:8080/savedInmueblesUsa/app/adClick.jsp?adId='+adId,'adClicking','height=50,width=350');
    compareWin.focus();
}

/* Save Inmuebles Popup setting */
function savedPopupCookieValue()
{
    return parseCookie(savedPopupCookieName);
}
function setSavedPopupCookie (val)
{
    return setCookie(savedPopupCookieName, val)
}

/* Update Saved Inmuebles according to a checkbox value
 */
function updatePicks(idVal)
{
    //alert('updatePicks');
    // get the cookie & parse its contents
    //if (checkboxRef.checked)
    //{
        if(parseCookie(savedPopupCookieName) != "true")
        {
            openSavePopup();
        }
        insertCookieValue(savedInmueblesCookieName,idVal);
        openAdClickPopUp(idVal);
        //alert('Anuncio agregado a sus favoritos');
    //}
    //else
    //    removeCookieValue(savedInmueblesCookieName,idVal);
}

function deletePicks(paId)
{
    if (null != paId)
    {
        removeCookieValue(savedInmueblesCookieName,paId);
        refresh();
    }
}
function changePicks(checkboxRef) 
{
    if (checkboxRef.checked)
    {
        removeCookieValue(savedInmueblesCookieName,checkboxRef.value);
    }
    else
        insertCookieValue(savedInmueblesCookieName,checkboxRef.value);
}


function addDeletedCookieValue(valueToRemove)
{
    // calculate how big the deleted cookie values array is
    var lastArrayInteger = deletedCookieArray.length;
    var newArrayValueNumber = lastArrayInteger + 1;
    // add new cookie value at the end of array
    deletedCookieArray[newArrayValueNumber] = valueToRemove;
    alert (deletedCookieArray[newArrayValueNumber]);
}

function addSavedInmuebleCookie(valueToInsert)
{
    if (cookieExists(savedInmueblesCookieName))
    {
        if (valueNotInCookie(savedInmueblesCookieName,valueToInsert))
        {
            var cookieValues = parseCookie(savedInmueblesCookieName);
            var newCookie = new Array();
            for (i=0; i < cookieValues.length; i++)
            {
                newCookie[i]=cookieValues[i];
            }
            if (newCookie.length != 0)
                newCookie[newCookie.length]=valueToInsert;
            else
                newCookie[0]=valueToInsert;
            
            newCookie = newCookie.sort();
            setCookie(savedInmueblesCookieName,newCookie.toString());
            return true;
        }
    }
    else
    {
        setCookie(savedInmueblesCookieName,valueToInsert.toString());
        return true;
    }
    return false;
}

/* Generic cookie insertion */
function insertCookieValue(cookieName, valueToInsert)
{
    if (null!=valueToInsert && valueToInsert != '')
    {
        //alert('insert (' + valueToInsert + ')');
        var cookieValues = parseCookie(cookieName);
        var alreadyExists = false;
        var newCookie = new Array();
        for (i=0; i < cookieValues.length; i++)
        {
            if (cookieValues[i] != '')
                newCookie[newCookie.length] = cookieValues[i];
            if (cookieValues[i] == valueToInsert)
                alreadyExists = true;
        }
        if (!alreadyExists)
            newCookie[newCookie.length] = valueToInsert;
        
        newCookie = newCookie.sort();
        //alert('set '+cookieName+' (' + newCookie.toString() + ')');
        setCookie(cookieName, newCookie.toString());
        return true;
    }
    return false;
}

/* Generic cookie parsing */
function parseCookie(cookieName)
{
    var allCookies = document.cookie;
    var desiredCookie = cookieName;
    var targetCookieStart = allCookies.indexOf(desiredCookie + '=');
    if (targetCookieStart != -1)
    {
        targetCookieStart += desiredCookie.length + 1;
        var targetCookieEnd = allCookies.indexOf(';',targetCookieStart);
        if (targetCookieEnd == -1) targetCookieEnd = allCookies.length;
        var targetCookieValue = allCookies.substring(targetCookieStart,targetCookieEnd);
        var cookieValueArray = targetCookieValue.split('|');
        var returnVal = cookieValueArray;
    }
    else returnVal = -1;
    return returnVal;
}

/* was in compare.jsp */
function getcookie(cookiename)
{
    var cookiestring = ""+document.cookie;
    var index1 = cookiestring.indexOf(cookiename);
    if (index1==-1 || cookiename=="")
        return ""; 

    var index2=cookiestring.indexOf(';',index1);
    if (index2==-1) 
        index2=cookiestring.length; 
    return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
}


/* Generic cookie setter */
function setCookie(cookieName,valueToSet, expires)
{
    var cookie = new String();
    if(expires) {
      var expiry = new Date((new Date()).getTime() + expires);
    }
    else {
      var expiry = new Date((new Date()).getTime() + 336*3600000);
    }
    cookie += cookieName + "=" + valueToSet.replace(/,/g,'|');
    cookie += ";path=/;expires=" + expiry.toGMTString();
    document.cookie = cookie;
    return true;
}

/* Generic cookie value remover */
function removeCookieValue(cookieName,valueToRemove)
{
    if (cookieExists(cookieName))
    {
            //alert('delete (' + valueToRemove + ')');
        var cookieValues = parseCookie(cookieName);
        cookieValues = cookieValues.sort();
        var newCookie = new Array();
        var j=0;
        for (i=0; i < cookieValues.length; i++)
        {
            if (cookieValues[i] != '' && valueToRemove != cookieValues[i])
            {
                newCookie[j]=cookieValues[i];
                j+=1;        
            }        
        }
    
        setCookie(cookieName, newCookie.toString());
    }
}

/* Generic test for value w/in a cookie */
function valueNotInCookie(cookieName,valueToCheck)
{
    var cookieValues = parseCookie(cookieName);
    cookieValues = cookieValues.sort();
    var newCookie = new Array();
    for (i=0; i < cookieValues.length; i++) {
        if (valueToCheck == cookieValues[i]){
            return false;
            break;
        }        
    }
    return true;
}

/* Generic test for cookie existence */
function cookieExists(cookieName)
{
    var cookieValues = parseCookie(cookieName);
    if (cookieValues != -1) {
        return true;
    }
    else {
        return false;
    }
}


function refresh()
{
    window.location.href = 'http://us.tuinmueble.com:8080/savedInmueblesUsa/app/compare.jsp?orderParam=nothing';
}


