/* 
  cookie.js 
 */
 
var cookieMaxAgeTime = 60;
var cookieMaxNum = 5;
var cookieCurrentNum = 0;

Array.prototype.uniq = function()
{
    var i = 0, j = 0;
    while (undefined !== this[i])
    {
        j = i + 1;
        while(undefined !== this[j])
        {
            if (this[i] === this[j]) 
            {
               this.splice(j, 1);
            }
            ++j;
        }

        ++i;
    }

    return this;
}

function SetCookie(name, value, expires, path, domain, secure) 
{ 
    var expDays = expires*24*60*60*1000; 
    var expDate = new Date(); 
    expDate.setTime(expDate.getTime()+expDays); 
    var expString = ((expires==null) ? "" : (";expires="+expDate.toGMTString())) 
    var pathString = ((path==null) ? "" : (";path="+path)) 
    var domainString = ((domain==null) ? "" : (";domain="+domain)) 
    var secureString = ((secure==true) ? ";secure" : "" ) 
    document.cookie = name + "=" + escape(value) + expString + pathString + domainString + secureString;
} 

function GetCookie(name) 
{ 
    var result = null; 
    var myCookie = document.cookie + ";"; 
    var searchName = name + "="; 
    var startOfCookie = myCookie.indexOf(searchName); 
    var endOfCookie; 
    if (startOfCookie != -1) 
    { 
        startOfCookie += searchName.length; 
        endOfCookie = myCookie.indexOf(";",startOfCookie); 
        result = unescape(myCookie.substring(startOfCookie, endOfCookie)); 
    } 
    
    return result; 
} 

function ClearCookie(name) 
{ 
    var ThreeDays=3*24*60*60*1000; 
    var expDate = new Date(); 
    expDate.setTime(expDate.getTime()-ThreeDays); 
    document.cookie=name+"=;expires="+expDate.toGMTString(); 
} 

function addCookie(name, value)
{
    SetCookie(name, value, cookieMaxAgeTime, null, null, false);
}

function addProjectCookie(value)
{
    var cookieArr = getProjectCookies();
    var cookieArrTmp = new Array();
    var i = 0;
    var n = 0;
 
    for(i=0,n=0;i<cookieArr.length;i++)
    {
        if(cookieArr[i]!=value)
        {
            cookieArrTmp[n++]=cookieArr[i];
        }
        else
        {
            cookieArr.length -= 1;
        }
    }
    
    var len = (cookieArrTmp.length >= cookieMaxNum) ? cookieMaxNum : (cookieArrTmp.length + 1);
    
    for (i = 1, n = 0; i < len; i++, n++)
    {
        addCookie("project"+i, cookieArrTmp[n]);
    }
    
    addCookie("project0", value);
}

function getProjectCookies()
{
    var cookieArr = new Array();
    var i = 0;
    var j = 0;
    
    
    for(i = 0; i < cookieMaxNum; i++)
    {
        var cookieTmp = GetCookie("project"+i);
        if (cookieTmp)
            cookieArr[j++] = cookieTmp;
        else
            break;
    }  
    
    cookieArr = cookieArr.uniq();
 
    return cookieArr;
}
