
if(typeof deconcept=="undefined"){
    var deconcept={};
}
if(typeof deconcept.util=="undefined"){
    deconcept.util={};
}
if(typeof deconcept.SWFObjectUtil=="undefined"){
    deconcept.SWFObjectUtil={};
}
deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){
    if(!document.getElementById){
        return;
    }
    this.DETECT_KEY=_a?_a:"detectflash";
    this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);
    this.params={};

    this.variables={};

    this.attributes=[];
    if(_1){
        this.setAttribute("swf",_1);
    }
    if(id){
        this.setAttribute("id",id);
    }
    if(w){
        this.setAttribute("width",w);
    }
    if(h){
        this.setAttribute("height",h);
    }
    if(_5){
        this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));
    }
    this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();
    if(!window.opera&&document.all&&this.installedVer.major>7){
        if(!deconcept.unloadSet){
            deconcept.SWFObjectUtil.prepUnload=function(){
                __flash_unloadHandler=function(){};

                __flash_savedUnloadHandler=function(){};

                window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);
            };

            window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);
            deconcept.unloadSet=true;
        }
    }
    if(c){
        this.addParam("bgcolor",c);
    }
    var q=_7?_7:"high";
    this.addParam("quality",q);
    this.setAttribute("useExpressInstall",false);
    this.setAttribute("doExpressInstall",false);
    var _c=(_8)?_8:window.location;
    this.setAttribute("xiRedirectUrl",_c);
    this.setAttribute("redirectUrl","");
    if(_9){
        this.setAttribute("redirectUrl",_9);
    }
};

deconcept.SWFObject.prototype={
    useExpressInstall:function(_d){
        this.xiSWFPath=!_d?"expressinstall.swf":_d;
        this.setAttribute("useExpressInstall",true);
    },
    setAttribute:function(_e,_f){
        this.attributes[_e]=_f;
    },
    getAttribute:function(_10){
        return this.attributes[_10]||"";
    },
    addParam:function(_11,_12){
        this.params[_11]=_12;
    },
    getParams:function(){
        return this.params;
    },
    addVariable:function(_13,_14){
        this.variables[_13]=_14;
    },
    getVariable:function(_15){
        return this.variables[_15]||"";
    },
    getVariables:function(){
        return this.variables;
    },
    getVariablePairs:function(){
        var _16=[];
        var key;
        var _18=this.getVariables();
        for(key in _18){
            _16[_16.length]=key+"="+_18[key];
        }
        return _16;
    },
    getSWFHTML:function(){
        var _19="";
        if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){
            if(this.getAttribute("doExpressInstall")){
                this.addVariable("MMplayerType","PlugIn");
                this.setAttribute("swf",this.xiSWFPath);
            }
            _19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+(this.getAttribute("style")||"")+"\"";
            _19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";
            var _1a=this.getParams();
            for(var key in _1a){
                _19+=[key]+"=\""+_1a[key]+"\" ";
            }
            var _1c=this.getVariablePairs().join("&");
            if(_1c.length>0){
                _19+=" wmode=\"transparent\" ";
                _19+="flashvars=\""+_1c+"\"";
            }
            _19+="/>";
        }else{
            if(this.getAttribute("doExpressInstall")){
                this.addVariable("MMplayerType","ActiveX");
                this.setAttribute("swf",this.xiSWFPath);
            }
            _19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+(this.getAttribute("style")||"")+"\">";
            _19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";
            var _1d=this.getParams();
            for(var key in _1d){
                _19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";
            }
            var _1f=this.getVariablePairs().join("&");
            if(_1f.length>0){
                _19+="<param name=\"flashvars\" value=\""+_1f+"\" />";
                _19+="<param name=\"wmode\" value=\"transparent\" />";
            }
            _19+="</object>";
        }
        return _19;
    },
    write:function(_20){
        //alert(this.getSWFHTML());
        if(this.getAttribute("useExpressInstall")){
            var _21=new deconcept.PlayerVersion([6,0,65]);
            if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){
                this.setAttribute("doExpressInstall",true);
                this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));
                document.title=document.title.slice(0,47)+" - Flash Player Installation";
                this.addVariable("MMdoctitle",document.title);
            }
        }
        if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){
            var n=(typeof _20=="string")?document.getElementById(_20):_20;
            n.innerHTML=this.getSWFHTML();
            return true;
        }else{
            if(this.getAttribute("redirectUrl")!=""){
                document.location.replace(this.getAttribute("redirectUrl"));
            }
        }
        return false;
    }
};

deconcept.SWFObjectUtil.getPlayerVersion=function(){
    var _23=new deconcept.PlayerVersion([0,0,0]);
    if(navigator.plugins&&navigator.mimeTypes.length){
        var x=navigator.plugins["Shockwave Flash"];
        if(x&&x.description){
            _23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));
        }
    }else{
        if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){
            var axo=1;
            var _26=3;
            while(axo){
                try{
                    _26++;
                    axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);
                    _23=new deconcept.PlayerVersion([_26,0,0]);
                }catch(e){
                    axo=null;
                }
            }
        }else{
            try{
                var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
            }catch(e){
                try{
                    var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
                    _23=new deconcept.PlayerVersion([6,0,21]);
                    axo.AllowScriptAccess="always";
                }catch(e){
                    if(_23.major==6){
                        return _23;
                    }
                }
                try{
                    axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
                }catch(e){}
            }
            if(axo!=null){
                _23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
            }
        }
    }
    return _23;
};

deconcept.PlayerVersion=function(_29){
    this.major=_29[0]!=null?parseInt(_29[0]):0;
    this.minor=_29[1]!=null?parseInt(_29[1]):0;
    this.rev=_29[2]!=null?parseInt(_29[2]):0;
};

deconcept.PlayerVersion.prototype.versionIsValid=function(fv){
    if(this.major<fv.major){
        return false;
    }
    if(this.major>fv.major){
        return true;
    }
    if(this.minor<fv.minor){
        return false;
    }
    if(this.minor>fv.minor){
        return true;
    }
    if(this.rev<fv.rev){
        return false;
    }
    return true;
};

deconcept.util={
    getRequestParameter:function(_2b){
        var q=document.location.search||document.location.hash;
        if(_2b==null){
            return q;
        }
        if(q){
            var _2d=q.substring(1).split("&");
            for(var i=0;i<_2d.length;i++){
                if(_2d[i].substring(0,_2d[i].indexOf("="))==_2b){
                    return _2d[i].substring((_2d[i].indexOf("=")+1));
                }
            }
        }
        return "";
    }
};

deconcept.SWFObjectUtil.cleanupSWFs=function(){
    var _2f=document.getElementsByTagName("OBJECT");
    for(var i=_2f.length-1;i>=0;i--){
        _2f[i].style.display="none";
        for(var x in _2f[i]){
            if(typeof _2f[i][x]=="function"){
                _2f[i][x]=function(){};
            }
        }
    }
};

if(!document.getElementById&&document.all){
    document.getElementById=function(id){
        return document.all[id];
    };
}
var getQueryParamValue=deconcept.util.getRequestParameter;
var FlashObject=deconcept.SWFObject;
var SWFObject=deconcept.SWFObject;





function f_formatnumber_sigla(numero){

    var newsigla = ' ';
    numero = parseFloat(numero);
    if(numero > 1000000000000){
        newsigla =' T';
        numero = numero/1000000000000;
    }
    if(numero > 1000000000){
        newsigla =' G';
        numero = numero/1000000000;
    }
    if(numero > 1000000){
        newsigla =' M';
        numero = numero/1000000;
    }
    if(numero > 1000){
        newsigla =' K';
        numero = numero/1000;
    }
    numero = parseInt(numero*100)/100;
    return (numero+newsigla);
}



function removeElement(parentDiv, childDiv){
    var child = document.getElementById(childDiv);
    var parent = document.getElementById(parentDiv);
    parent.removeChild(child);

}



function f_sec_to_minsec(sec){
    if(sec < 1 ) return '';
    var min = parseInt(sec/60);
    sec = (sec%60);
    var str = '';
    if(min > 0 ) str = min+'m ';
    if(sec > 0 ) str+= sec+'s';
    return str;
}



function f_UNcut_text(text,inizio,fine){
    if(text.length < 1) return '';
    var v_inizio=0;
    var v_fine=text.length;
    var parte_fin = '';
    var parte_in ='';
    v_inizio = text.indexOf(inizio);
    if(v_inizio > -1) {
        parte_in = text.substr(0,v_inizio);
        v_fine = text.indexOf(fine);
        if(v_fine > -1) {
            v_fine--;
            parte_fin = text.substr((v_fine),(text.length-v_fine));
        }
    }
    text =parte_in  +  parte_fin ;
    return text;
}
//alert(f_UNcut_text("uno.due,tre-prova","due","tre"));

function f_insert_text_in_text(text_Base,inizio,fine,text_Toinsert){ // insert -->  from, to
    if(text_Base.length < 1) return '';
    var v_inizio=0;
    var v_fine=text_Base.length;
    var parte_fin = '';
    var parte_in ='';
    v_inizio = text_Base.indexOf(inizio);
    if(v_inizio > -1) {
        parte_in = text_Base.substr(0,v_inizio);
        v_fine = text_Base.indexOf(fine);
        if(v_fine > -1) {

            parte_fin = text_Base.substr((v_fine),(text_Base.length-v_fine));
        }
    }
    text_Base=parte_in +inizio + text_Toinsert +  parte_fin ;
    return text_Base;
}

// calcola di un array le percentuali singole relative, e relative delle percentuali
function f_cal_percentuali_ARRAY(array_to_calculate) {
    var AR_ritorno = new Array();
    AR_ritorno['perc_assoluta'] = new Array();
    AR_ritorno['perc_relativa'] = new Array();
    var MAX_VALUE = 0  ;
    var SUM_VALUE = 0  ;
    var tmp_value = 0;
    var tmp_percent = 0 ; 
    for(k in array_to_calculate){
        tmp_value = parseInt(array_to_calculate[k]);
        SUM_VALUE+=tmp_value;
        if(tmp_value > MAX_VALUE) MAX_VALUE = tmp_value;
    }
    for(k in array_to_calculate){
        tmp_value = parseInt(array_to_calculate[k]);
        tmp_percent = (tmp_value/SUM_VALUE)*100;
        AR_ritorno['perc_assoluta'][k] = tmp_percent;
        tmp_percent = (tmp_value/MAX_VALUE)*100;
        AR_ritorno['perc_relativa'][k] = tmp_percent;
    }
    return AR_ritorno;
}
//f_cal_percentuali_ARRAY(array)  // AR_ritorno['perc_assoluta'] ,  AR_ritorno['perc_relativa']



//GL.R('weekday_short_sun');GL.R('weekday_short_mon');GL.R('weekday_short_tue');GL.R('weekday_short_wed');GL.R('weekday_short_thu');GL.R('weekday_short_fri');GL.R('weekday_short_sat');
//GL.R('weekday_long_sun');GL.R('weekday_long_mon');GL.R('weekday_long_tue');GL.R('weekday_long_wed');GL.R('weekday_long_thu');GL.R('weekday_long_fri');GL.R('weekday_long_sat');
var GLOBAL_AR_MONTH = new Array();
GLOBAL_AR_MONTH[0] = '';
GLOBAL_AR_MONTH[1] = 'gen';
GLOBAL_AR_MONTH[2] = 'feb';
GLOBAL_AR_MONTH[3] = 'mar';
GLOBAL_AR_MONTH[4] = 'apr';
GLOBAL_AR_MONTH[5] = 'may';
GLOBAL_AR_MONTH[6] = 'jun';
GLOBAL_AR_MONTH[7] = 'jul';
GLOBAL_AR_MONTH[8] = 'aug';
GLOBAL_AR_MONTH[9] = 'sep';
GLOBAL_AR_MONTH[10] = 'oct';
GLOBAL_AR_MONTH[11] = 'nov';
GLOBAL_AR_MONTH[12] = 'dec';
var GLOBAL_AR_MONTH_long = new Array();
GLOBAL_AR_MONTH_long[0] = '';
GLOBAL_AR_MONTH_long[1] = 'January';
GLOBAL_AR_MONTH_long[2] = 'February';
GLOBAL_AR_MONTH_long[3] = 'March';
GLOBAL_AR_MONTH_long[4] = 'April';
GLOBAL_AR_MONTH_long[5] = 'May';
GLOBAL_AR_MONTH_long[6] = 'June';
GLOBAL_AR_MONTH_long[7] = 'July';
GLOBAL_AR_MONTH_long[8] = 'August';
GLOBAL_AR_MONTH_long[9] = 'September';
GLOBAL_AR_MONTH_long[10] = 'October';
GLOBAL_AR_MONTH_long[11] = 'November';
GLOBAL_AR_MONTH_long[12] = 'December';
//GL.R('gen');GL.R('feb');GL.R('mar');GL.R('apr');GL.R('may');GL.R('jun');GL.R('jul');GL.R('aug');GL.R('sep');GL.R('oct');GL.R('nov');GL.R('dec');
/*GL.R('January');
GL.R('February');
GL.R('March');
GL.R('April');
GL.R('May');
GL.R('June');
GL.R('July');
GL.R('August');
GL.R('September');
GL.R('October');
GL.R('November');
GL.R('December');
*/
var GLOBAL_AR_MONTHd = new Array();
GLOBAL_AR_MONTHd[0] = 0;
GLOBAL_AR_MONTHd[1] = 31;
GLOBAL_AR_MONTHd[2] = 28;
GLOBAL_AR_MONTHd[3] = 31;
GLOBAL_AR_MONTHd[4] = 30;
GLOBAL_AR_MONTHd[5] = 31;
GLOBAL_AR_MONTHd[6] = 30;
GLOBAL_AR_MONTHd[7] = 31;
GLOBAL_AR_MONTHd[8] = 31;
GLOBAL_AR_MONTHd[9] = 30;
GLOBAL_AR_MONTHd[10] =31;
GLOBAL_AR_MONTHd[11] = 30;
GLOBAL_AR_MONTHd[12] = 31;
function f_days_month(nmonth) {
    if(nmonth < 12) nmonth+=12;
    if(nmonth > 12) nmonth-=12;
    return GLOBAL_AR_MONTHd[nmonth];
}

var GLOBAL_AR_DDSTR = new Array();
GLOBAL_AR_DDSTR[1] = 'Today';
GLOBAL_AR_DDSTR[2] = 'Yesterday';
GLOBAL_AR_DDSTR[3] = '2 days ago';
GLOBAL_AR_DDSTR[4] = 'Last week';
GLOBAL_AR_DDSTR[5] = 'Current month';
GLOBAL_AR_DDSTR[6] = 'Last month';






function f_completa_0_data(txtdata) {
    txtdata = txtdata+'';
    if (txtdata.length<2) ora_completa = '0'+txtdata;
    else ora_completa = txtdata;
    return ora_completa;
}


function f_unixtime_to_data(unixtime){
    var linuxtime = unixtime*1000;
    var stringa_finale = '';
    GMTtimer_f = new Date();
    GMTtimer_f.setTime(linuxtime);
    //alert(GMTtimer_f);
    //secondi
    tmp_txt_s = f_completa_0_data(GMTtimer_f.getUTCSeconds());
    //minuti
    tmp_txt_p = f_completa_0_data(GMTtimer_f.getUTCMinutes());
    //ore
    tmp_txt_h = f_completa_0_data(GMTtimer_f.getUTCHours());
    //giorno
    tmp_txt_d = f_completa_0_data(GMTtimer_f.getUTCDate());
    //mese
    tmp_txt_m = f_completa_0_data(parseInt(GMTtimer_f.getUTCMonth())+1);
    //anno
    tmp_txt_y = f_completa_0_data(GMTtimer_f.getUTCFullYear());
    stringa_finale = tmp_txt_d+'/'+tmp_txt_m+'/'+tmp_txt_y+', '+tmp_txt_h+':'+tmp_txt_p+':'+tmp_txt_s;
    return stringa_finale;
}





function copia_ar(AR_partenza,AR_fine){
    for ( var chiave in AR_partenza){
        if(!(isArray_v2(AR_partenza[chiave]))){
            AR_fine[chiave] =  AR_partenza[chiave];
        }else{
            AR_fine[chiave] = new Array();
            copia_ar(AR_partenza[chiave],AR_fine[chiave])
        }
    }
}

function replace_ar_INTindex(AR_partenza){ // replace key with integer
    var tmp_ar = new Array();
    copia_ar_INTindex(AR_partenza,tmp_ar);
    return tmp_ar;
}

function copia_ar_INTindex(AR_partenza,AR_fine){
    for ( var chiave in AR_partenza){
        if(!(isArray_v2(AR_partenza[chiave]))){
            AR_fine[parseInt(chiave)] =  AR_partenza[chiave];
        }else{
            AR_fine[parseInt(chiave)] = new Array();
            copia_ar_INTindex(AR_partenza[chiave],AR_fine[parseInt(chiave)])
        }
    }
}

function copia_ar_CUT(AR_BASE,nvals){
    var ar_return = new Array();
    var n_val_copied = 0;
    for(k in AR_BASE){
        if(n_val_copied < nvals ){
            ar_return[k] = AR_BASE[k];
            n_val_copied++;
        }
    }
    return ar_return;
}



function sortAssoc(aInput)
{
    var aTemp = [];
    for (var sKey in aInput)
        aTemp.push([sKey, aInput[sKey]]);
    aTemp.sort(function () {
        return arguments[0][1] < arguments[1][1]
    });

    var aOutput = [];
    for (var nIndex = aTemp.length-1; nIndex >=0; nIndex--)
        aOutput[aTemp[nIndex][0]] = aTemp[nIndex][1];

    return aOutput;
}

function D2b(x){
    var p=256;
    var r ='';
    while(p>1){
        p/=2;
        if(x>=p){
            r+='1';
            x-=p
        }else{
            r+='0';
        }
    }
    return r;
}

function print_r( array, return_val ) {
    // Prints human-readable information about a variable
    //
    // +    discuss at: http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_print_r/
    // +       version: 805.2023
    // +   original by: Michael White (http://crestidg.com)
    // +   improved by: Ben Bryan
    // *     example 1: print_r(1, true);
    // *     returns 1: 1

    var output = "", pad_char = " ", pad_val = 4;

    var formatArray = function (obj, cur_depth, pad_val, pad_char) {
        if (cur_depth > 0) {
            cur_depth++;
        }

        var base_pad = repeat_char(pad_val*cur_depth, pad_char);
        var thick_pad = repeat_char(pad_val*(cur_depth+1), pad_char);
        var str = "";

        if (obj instanceof Array || obj instanceof Object) {
            str += "Array\n" + base_pad + "(\n";
            for (var key in obj) {
                if (obj[key] instanceof Array) {
                    str += thick_pad + "["+key+"] => "+formatArray(obj[key], cur_depth+1, pad_val, pad_char);
                } else {
                    str += thick_pad + "["+key+"] => " + obj[key] + "\n";
                }
            }
            str += base_pad + ")\n";
        } else {
            str = obj.toString();
        }

        return str;
    };

    var repeat_char = function (len, pad_char) {
        var str = "";
        for(var i=0; i < len; i++) {
            str += pad_char;
        };
        return str;
    };
    output = formatArray(array, 0, pad_val, pad_char);

    if (return_val !== true) {
        document.write("<pre>" + output + "</pre>");
        return true;
    } else {
        return output;
    }
}// }}}

function f_unique_KEY(str){
    //var str = "Hello world!";
    if(!str) return 0;

    var valueKEY = 0;
    for(var i = 0 ; i < str.length ;i++){
        valueKEY += str.charCodeAt(i);
        if(valueKEY > 10000000) valueKEY= parseInt(valueKEY/2);
    }
    return valueKEY;
}

f_decuri_CUTSTR = function (dd){
    dd=dd+"";
    var i = dd.length ;
    var dd_cut = dd;
    var dd_result = dd;
    while(i > 0){
        dd_cut = dd_cut.substr(0,i);
        try{
            dd_result = decodeURIComponent(dd_cut);
            return dd_result;
            i = -1;
        }catch(e){
            i = dd_cut.lastIndexOf("%") ;
        //document.writeln("i = " + i + " on " +dd_cut +" <br> " );
        }
    //document.writeln("i = " + i + " , str = " + dd_cut + " , res(" + dd_result.length + ") =" + dd_result + " done? -> " + b_done + " <br> " );
    }
    return "";

}
f_HTMLcodedcharset_CUT = function (dd,i_CharCount){
    dd=dd+"";
    var i= 0;
    var pos = 0;
    var len = dd.length;
    if(len <= i_CharCount ) return dd ; // don't waste cputime
    var ifind = 0 ;
    var carac = '' ;
    while(i< i_CharCount && pos < len){
        if((pos+3) < len){ //there are at least 2 char more
            if(dd.substr(pos,1).charCodeAt(0)==38 && dd.substr((pos+1),1).charCodeAt(0)==35){ //& + # (start of multichar
                ifind = dd.indexOf(';',pos);
                if((ifind>pos+2) && (ifind < pos+7)){ // it's a special char encoded
                    pos = ifind;
                }
            }
        }
        i++;
        pos++;

    }
    if(pos >= len ) pos = len-1;//security
    var addpoints = '';
    if(pos<(len)) addpoints = '...';
    return (dd.substr(0,pos) +addpoints);
}
f_HTMLdecuri_v = function (dd){
    try{
        return htmlentities(f_decuri_v(dd));
    }
    catch(e){
        return (htmlentities(dd));
    }
}
f_HTML_URIPRINT_v = function (dd){
    dd = f_decuri_v(dd);
    return window.encodeURIComponent?encodeURIComponent(dd):escape(dd).split("@").join("%40");
}


f_HTMLdecuri_v_CUT = function (dd,i_CharCount){
    try{
        return f_HTMLcodedcharset_CUT(htmlentities(f_decuri_v(dd)),i_CharCount);
    }
    catch(e){
        return ('');
    }
}

f_decuri_v = function (dd){
    //function G_refSITE.f_decuri_v(dd){
    try{
        dd = f_decuri_doublecall(dd);
       // dd = f_decuri_doublecall(dd);
        return dd;
    }
    catch(e){
        return (unescape(dd));
    }
}

f_decuri_doublecall = function (dd){
    //function G_refSITE.f_decuri_v(dd){
    try{
        dd=dd+"";
        //if (dd.match(/^((%)([0-9A-Fa-f]){0,2})+$/)){ // URIcomponent string
        if (dd.match(/%u[0-9]{4}/)){ //  %uxxxx -> ESCAPE coded string!
            return (unescape(dd));
        }
        if (dd.match(/((%)([0-9A-Fa-f]){0,2}){2}/)){ // double %xx%xx coded string!
            s_decodeuri = f_decuri_CUTSTR(dd);
            if(s_decodeuri.length > 0 ){
                return s_decodeuri;
            }
        }
        return(decodeURIComponent(dd));
    }
    catch(e){
        return (unescape(dd));
    }
}
/*

f_decuri_v =  function (dd){
    //function G_refSITE.f_decuri_v(dd){
    try{
        return(decodeURIComponent(dd));
    }
    catch(e){
        return (unescape(dd));
    }
}

*/

function f_array_size(AR){  //return arary size (for multidimensional, return only first row)
    try {
        var cnt = 0 ;
        for(k in AR ){
            cnt++;
        }
        return cnt;
    }catch(e){
        return 0;
    }
}

function f_identaSeconds(seconds){
    var tmpSec = parseInt(seconds);
    var secondsIdentati = '';
    var tmpH = parseInt(tmpSec/3600);
    if(tmpH>0){
        secondsIdentati = tmpH+'h';
        tmpSec = tmpSec%3600;
    }
    var tmpM = parseInt(tmpSec/60);
    if(tmpM>0){
        secondsIdentati += tmpM+"'";
        tmpSec = tmpSec%60;
    }
    if(tmpSec>0){
        secondsIdentati += tmpSec+'"';
    }
    return secondsIdentati;
}

function f_URLstr_GETLINK(s_url,s_sitebase){ // -- return link from url string
  s_url = f_decuri_v(s_url); // decode
  s_sitebase = f_decuri_v(s_sitebase); // decode
    // fix given url
    var s_http = s_url.replace(/^((http(s)?(:)+(\/)*(\\)*)|((http(s)?(:)*((\/)+|(\\)+)))|((ftp(:)+(\/)*(\\)*)))/i, '');
    if(s_url.indexOf('-',0)==0){
        s_http = s_sitebase + s_http.substr(1);
    }else{
        if(s_url.indexOf('/',0)==0){
            if(s_sitebase.indexOf('/',0)==0){ /* if both have "/" remove it from domain base */
                s_sitebase = s_sitebase.substr(1);
            }
            s_http = s_sitebase + s_http;
        }
    }
    // fix sitebase also
    var s_http = 'http://' + s_http.replace(/^((http(s)?(:)+(\/)*(\\)*)|((http(s)?(:)*((\/)+|(\\)+)))|((ftp(:)+(\/)*(\\)*)))/i, '');

    return s_http;
}

function f_URLstr_GETLINKESCAPED(s_url,s_sitebase){ // -- return link from url string
s_url = f_URLstr_GETLINK(s_url,s_sitebase);
return htmlentities(s_url); //
}

var json_parse=function(){
    var k,a,o={
        '"':'"',
        "\\":"\\",
        "/":"/",
        b:"\u0008",
        f:"\u000c",
        n:"\n",
        r:"\r",
        t:"\t"
    },m,g=function(c){
        throw{
            name:"SyntaxError",
            message:c,
            at:k,
            text:m
        };

},b=function(c){
    c&&c!==a&&g("Expected '"+c+"' instead of '"+a+"'");
    a=m.charAt(k);
    k+=1;
    return a
    },p=function(){
    var c;
    c="";
    if(a==="-"){
        c="-";
        b("-")
        }
        for(;a>="0"&&a<="9";){
        c+=a;
        b()
        }
        if(a===".")for(c+=".";b()&&a>="0"&&a<="9";)c+=a;
    if(a==="e"||a==="E"){
        c+=a;
        b();
        if(a==="-"||a==="+"){
            c+=a;
            b()
            }
            for(;a>="0"&&a<="9";){
            c+=a;
            b()
            }
        }
        c=+c;
if(isNaN(c))g("Bad number");
else return c
    },q=function(){
    var c,d,e="",i;
    if(a==='"')for(;b();)if(a==='"'){
        b();
        return e
        }else if(a==="\\"){
        b();
        if(a==="u"){
            for(d=i=0;d<4;d+=1){
                c=parseInt(b(),16);
                if(!isFinite(c))break;
                i=i*16+c
                }
                e+=String.fromCharCode(i)
            }else if(typeof o[a]==="string")e+=o[a];else break
    }else e+=a;g("Bad string")
    },f=function(){
    for(;a&&a<=" ";)b()
        },t=function(){
    switch(a){
        case "t":
            b("t");
            b("r");
            b("u");
            b("e");
            return true;
        case "f":
            b("f");
            b("a");
            b("l");
            b("s");
            b("e");
            return false;
        case "n":
            b("n");
            b("u");
            b("l");
            b("l");
            return null
            }
            g("Unexpected '"+
        a+"'")
    },l;
l=function(){
    f();
    switch(a){
        case "{":
            var c;
            a:{
            var d,e={};

            if(a==="{"){
                b("{");
                f();
                if(a==="}"){
                    b("}");
                    c=e;
                    break a
                }
                for(;a;){
                    d=q();
                    f();
                    b(":");
                    Object.hasOwnProperty.call(e,d)&&g('Duplicate key "'+d+'"');
                    e[d]=l();
                    f();
                    if(a==="}"){
                        b("}");
                        c=e;
                        break a
                    }
                    b(",");
                    f()
                    }
                }
                g("Bad object")
            }
            return c;
    case "[":a:{
        c=[];
        if(a==="["){
            b("[");
            f();
            if(a==="]"){
                b("]");
                d=c;
                break a
            }
            for(;a;){
                c.push(l());
                f();
                if(a==="]"){
                    b("]");
                    d=c;
                    break a
                }
                b(",");
                f()
                }
            }
            g("Bad array")
        }
        return d;
case '"':
    return q();
case "-":
    return p();
default:
    return a>=
    "0"&&a<="9"?p():t()
    }
};

return function(c,d){
    var e;
    m=c;
    k=0;
    a=" ";
    e=l();
    f();
    a&&g("Syntax error");
    return typeof d==="function"?function i(r,s){
        var j,n,h=r[s];
        if(h&&typeof h==="object")for(j in h)if(Object.hasOwnProperty.call(h,j)){
            n=i(h,j);
            if(n!==undefined)h[j]=n;else delete h[j]
        }
        return d.call(r,s,h)
        }({
        "":e
    },""):e
    }
}();








if(!JSCACHE) JSCACHE = [] ;
JSCACHE.push(['UTILS.js',9]);

