if (typeof Array.prototype.removeAt!=='function'){Array.prototype.removeAt=function (iIndex /*:int*/)/*:variant*/{var vItem=this[iIndex];if(vItem){this.splice(iIndex,1);}return vItem;};}
if (typeof Array.prototype.indexOf!=='function'){Array.prototype.indexOf=function(vItem /*:Variant*/,iStart /*:int*/)/*:int*/ {if(iStart==null){iStart=0;}for(var i=iStart,l=this.length;i<l;i++){if(this[i]==vItem){return i;}}return -1;};}
var objCookies={version:'0.1',czasZyc:{'month':1,'day':0,'hour':0},domena:''};
objCookies.cookie_ustaw=function(name,value,expires,path,domain,secure)
{
    document.cookie=name+"="+escape(value)+((expires)?"; expires="+expires.toGMTString():"")+
        ((path)?"; path="+path:"")+((domain) ? "; domain=" + domain : "")+((secure)?"; secure":"");
    var t = '';
};

objCookies.cookie_pobierz_wartosc=function(offset)
{var endstr = document.cookie.indexOf (";", offset);
    if (endstr == -1){
        endstr = document.cookie.length;
    }
    return unescape(document.cookie.substring(offset, endstr));
};
/**
 * pobranie zawartosci cookiesa
 *
 * @param  cookie_name - nazwa cookiesa.
 */
objCookies.cookie_pobierz=function(cookie_name)
{
    var arg = cookie_name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while (i < clen) {
        var j = i + alen;
        if (document.cookie.substring(i, j) == arg){
            var cookie = this.cookie_pobierz_wartosc(j);
            var parse_ok = true;
            try{
                var parse = JSON.parse(cookie);
            }catch(err)
            {
                parse_ok = false;
                if(err=='SyntaxError: JSON.parse')
                {
                    var temp = this.cookie_all_values_remove(cookie_name);
                }
                alert(err);
            }
            if(parse_ok)
            {
                var temp = this.cookie_veryf(parse,cookie_name);
            }            
            var ttt = 'dd';
            return temp;
        }
        i = document.cookie.indexOf(" ", i) + 1;
        if (i == 0) break;
    }
    return null;

};/**
 * dopisanie nowej wartosci do cookiesa.
 *
 * @param  cookie_name - nazwa cookiesa.
 * @param  value - wartosc w postaci rodzaj,wartosc np: c,243.
 */
objCookies.cookie_value_add=function(cookie_name,value)
{
    var expdate = new Date ();
    var dateNow = new Date();
    var datePrz = new Date();
    var czasZyc = (this.czasZyc.hour * 3600 ) + (this.czasZyc.day * 3600 * 24 ) + (this.czasZyc.month * 3600 * 24 * 30);
    datePrz.setMonth(dateNow.getMonth()+1);
    
    expdate.setTime (expdate.getTime() + (czasZyc*1000));

    var ciastko = this.cookie_pobierz(cookie_name);

    if( (ciastko != null ) && (ciastko != '') )
    {
        var index = ciastko.zawartosc.dane.indexOf(value);
        if(index < 0)
            ciastko.zawartosc.dane.push(value);
        ciastko.zawartosc.zmieniono = 'tak';
    }
    else
    {
        ciastko ={'daty':{'czas_zycia':czasZyc,'data_przedawnienia':datePrz.getTime(),'data_utworzenia':dateNow.getTime()},'wersja':this.version,'zawartosc':{'zmieniono':'tak','dane':[value]}};
    }
    var json_ciastko = JSON.stringify(ciastko);
    objCookies.cookie_ustaw(cookie_name,json_ciastko,expdate,"/","","");
};

/**
 * sprawdzenie czy wartosc istnieje w cookiesa.
 *
 * @param  cookie_name - nazwa cookiesa.
 * @param  value - wartosc do wyszukania w cookiesie.
 */
objCookies.cookie_value_isset=function(cookie_name, value)
{
    var ciastko = this.cookie_pobierz(cookie_name);
    if( ( ciastko != '' ) && ( ciastko != null ) ){
        var index = ciastko.zawartosc.dane.indexOf(value);
        if(index >= 0)
            return true;
    }

    return false;
};

/**
 * skasowanie wartosci z cookiesa.
 *
 * @param  cookie_name - nazwa cookiesa.
 * @param  value - wartosc do skasowania z cookiesa.
 *
 */
objCookies.cookie_value_remove=function(cookie_name, value)
{
    var expdate = new Date ();
    expdate.setTime (expdate.getTime() + (2*24 * 60 * 60 * 1000));

    var ciastko = this.cookie_pobierz(cookie_name);
    var ciastko_nowe = '';

    if( ( ciastko != '' ) && ( ciastko != null ) ){
        var index = ciastko.zawartosc.dane.indexOf(value);
        if(index >= 0)
            ciastko.zawartosc.dane.removeAt(index);
        ciastko.zawartosc.zmieniono = 'tak';
        ciastko_nowe = JSON.stringify(ciastko);
        this.cookie_ustaw(cookie_name,ciastko_nowe,expdate,"/","","");
    }
};

/**
 * wyczyszczenie calej zawartosci cookiesa.
 *
 * @param cookie_name - nazwa cookiesa. *
 */
objCookies.cookie_all_values_remove=function(cookie_name)
{
    var dateNow = new Date();
    var datePrz = new Date();
    var czasZyc = {'month':1,'day':0,'hour':0};
    datePrz.setMonth(dateNow.getMonth()+1);
    var cookie ={'daty':{'czas_zycia':czasZyc,'data_przedawnienia':datePrz.getTime(),'data_utworzenia':dateNow.getTime()},'wersja':this.version,'zawartosc':{'zmieniono':'tak','dane':[]}};
    var json_ciastko = JSON.stringify(cookie);
    this.cookie_ustaw(cookie_name,json_ciastko,0,"/","","");
    return cookie;
};

/**
 * wyczyszczenie calej zawartosci cookiesa.
 *
 * @param cookie_name - nazwa cookiesa. *
 */
objCookies.cookie_veryf=function(ciastko,cookie_name)
{
    if(    ( ciastko == '' )
        || ( ciastko == null )
        || ( ciastko.wersja != this.version )
        || ( !ciastko.zawartosc )
        || ( !ciastko.zawartosc.dane )
        || ( !ciastko.zawartosc.zmieniono )
    )
    {
        return this.cookie_all_values_remove(cookie_name);
    }
    return ciastko;
};
objCookies.cookie_delete=function(cookie_name)
{
    var expdate = new Date ();
    expdate.setTime (expdate.getTime()-1);
    this.cookie_ustaw(cookie_name,'',expdate,"/","","");
    window.location.reload( true );
}
