/// <summary>
/// setCookie(name, value, expires)
/// Funzione generica che scrive un cookie con i valori passati
/// </summary>
/// <param name="name">nome del cookie</param>
/// <param name="value">valore</param>
/// <param name="expires">data (in formato stringa)</param>
function setCookie(name, value, expires) {
    var Today = new Date();
    var tempdate = Today.getTime();
    var exp = new Date();
    if(expires=='delete') {
        exp.setTime(exp.getTime() - 1000);
    } else {
        exp.setTime(exp.getTime() + (1000 * 60 * 60 * 24 * 30));
    }
    document.cookie = name + "=" + escape(value) + "; path=/" + ((exp == null) ? "" : "; expires=" + exp.toGMTString());
}
/// <summary>
/// retrieveCookie(name)
/// Funzione generica che legge un cookie con il nome cercato
/// </summary>
/// <param name="name">nome del cookie</param>
/// <returns>string: valore del cookie letto</returns>
function retrieveCookie(name) { 
    var dc = document.cookie; 
    var cname = name + "="; 
    if (dc.length > 0) { 
      begin = dc.indexOf(cname); 
      if (begin != -1) { 
        begin += cname.length; 
        end = dc.indexOf("; ", begin);
        if (end == -1) end = dc.length;
        return unescape(dc.substring(begin, end));
        } 
      } 
    return null; 
}
/// <summary>
/// setBWCookie(hotelname, propid, location)
/// Funzione che scrive/aggiorna il cookie "BWFavorites" con i valori dell'hotel selezionato
/// formato valore del cookie: 'BW Hotel Name 1|98xxx$BW Hotel Name 2|98xxy|Location'
/// se è il caso, viene chiamata UpdateFavorites per aggiornare l'html della pagina
/// </summary>
/// <param name="hotelname">nome dell'hotel</param>
/// <param name="propid">id dell'hotel</param>
/// <param name="location">location dell'hotel</param>
function setBWCookie(hotelname, propid, location) {
    var Today = new Date();
    var tempdate = Today.getTime();

    tempdate += 30*60*1000; //validità del cookie: 30 minuti
    var CookieExpiresAt = new Date();
    CookieExpiresAt.setTime(tempdate);

    var myCookie = retrieveCookie('BWFavorites');
    var found = false;

    if(myCookie) {
        var hotelCookieLine = [];
        hotelCookieLine = myCookie.split('$');
        
        var hotelCookie = [];
        for(var i=0;i<hotelCookieLine.length;i++) {
            hotelCookie[i] = hotelCookieLine[i].split('|');
        }
        
        for(i=0;i<hotelCookie.length;i++) {
            if(hotelCookie[i][1]==propid) {
                found = true;
            }
        }
        myCookie += '$';
    } else {
        myCookie = '';
    }
    if(!found) {
        myCookie += hotelname + '|' + propid + '|' + location;
        setCookie('BWFavorites', myCookie, CookieExpiresAt.toString());
        UpdateFavorites(myCookie);
    }
}
/// <summary>
/// deleteBWCookie(propid)
/// Funzione che aggiorna il cookie "BWFavorites" cancellando l'hotel selezionato
/// viene chiamata anche UpdateFavorites per aggiornare l'html della pagina
/// </summary>
/// <param name="propid">id dell'hotel</param>
function deleteBWCookie(propid) {
    var myCookie = retrieveCookie('BWFavorites');
    var found = false;

    if(myCookie) {
        var hotelCookieLine = [];
        hotelCookieLine = myCookie.split('$');
        
        var hotelCookie = [];
        for(var i=0;i<hotelCookieLine.length;i++) {
            hotelCookie[i] = hotelCookieLine[i].split('|');
        }
        
        for(i=0;i<hotelCookie.length;i++) {
            if(hotelCookie[i][1]==propid) {
                hotelCookie[i][0]='';
                found = true;
            }
        }
    }
    if(found) {
        myCookie = '';
        for(i=0;i<hotelCookie.length;i++) {
            if(hotelCookie[i][0]!='') {
                myCookie += hotelCookie[i][0] + '|' + hotelCookie[i][1] + '|' + hotelCookie[i][2]  + '$';
            }
        }
        myCookie = myCookie.substring(0,myCookie.length-1);
        if(myCookie == '') {
            setCookie('BWFavorites','','delete');
        } else {
            setCookie('BWFavorites', myCookie, '30minutes');
        }
        UpdateFavorites(myCookie);
    }
}
/// <summary>
/// DeleteAll()
/// Funzione che cancella completamente il cookie "BWFavorites"
/// viene chiamata anche UpdateFavorites per aggiornare l'html della pagina
/// </summary>
function DeleteAll() {
    setCookie('BWFavorites','','delete');
    UpdateFavorites('');
}