var req_status_print = 0;

function histats_site_geolocstats_class() {
    try {

        this.ids = 0 ;
        this.nmod = 0 ; 
        this.PTR_MOD = null;

        this.BOOL_initialized = false ; 

        this.TAB_current = 'country';

        this.AR_data= Array(); // unserialized
        this.AR_datastr= Array(); //  serialized
        
        this.swf_map_type = 'small'; // big or small
        this.STR_SWF = '';

        this.swfmapid = 0 ;

        this.str_x = '' ;
        this.str_data = '' ;
        this.str_swf_1stWEEKDAY= '0' ;
        this.str_swf_ndays= 0 ;
        this.str_swf_nrows= 0 ;
        this.ARSWF_variables = new Array();

        this.time_offset = 0;
        
    } catch(e){
        alert("err loading javascript ,    try refreshing browser cache \n "  + e.message + "\n ");
    }
	
} // end
//infovis_build_html_city

histats_site_geolocstats_class.prototype.print_swf  = function(){
    var swfid = G_SWF_HANDLER.crate_swf_obj();
    this.swfmapid = swfid;
    G_SWF_HANDLER.AR_SWFOBJ[swfid].SET_MAP();
    G_SWF_HANDLER.AR_SWFOBJ[swfid].nmod_container = this.nmod;
    G_SWF_HANDLER.AR_SWFOBJ[swfid].nome_DIV_CONTAINER ='histats_geoloc_MAIN_SWF';
    G_SWF_HANDLER.AR_SWFOBJ[swfid].callback_type = 'data';
    G_SWF_HANDLER.AR_SWFOBJ[swfid].AR_RETURN_DATA['val_geo'] = this.STR_SWF;
    G_SWF_HANDLER.AR_SWFOBJ[swfid].AR_RETURN_DATA['rldData'] = '0';
    G_SWF_HANDLER.AR_SWFOBJ[swfid].LOAD_FOB();
}
// swf callback  function 
histats_site_geolocstats_class.prototype.SWF_map_CALLBACK  = function(idswf,variable){
    //alert( ' -> idswf = ' +  idswf + ' , ' + variable);
    //      if(variable == 'val_geo') return (this.STR_SWF);
    setTimeout('alert (\''+idswf + ' , ' + variable + this.STR_SWF + '\' );',200);
    return  this.STR_SWF;
    return '';
}
// initialized object from global arrays 
histats_site_geolocstats_class.prototype.__INITIALIZE_OBJECT  = function(nmod) {
    this.BOOL_initialized =  true ;
    this.nmod =  nmod ;
    if(G_AR_GEObrw['visinfo_AR']) copia_ar(G_AR_GEObrw['visinfo_AR'], this.AR_data);
}

histats_statsmodule_class.prototype.f_print_geoloc  = function() {
    OBJ_SITE = OBJ_SITEs[this.ids];
    this.OBJ_GEOLOC = new histats_site_geolocstats_class();
    this.OBJ_GEOLOC.__INITIALIZE_OBJECT(this.nmod);
    this.f_print_geoloc_HTML();
}

histats_statsmodule_class.prototype.f_print_geolocTREND  = function() {
    OBJ_SITE = OBJ_SITEs[this.ids];
    this.OBJ_GEOLOC = new histats_site_geolocstats_class();
    this.OBJ_GEOLOC.__INITIALIZE_OBJECT(this.nmod);
    this.f_print_geolocTREND_HTML();
}
// build and print html portions of infovis 
histats_statsmodule_class.prototype.f_print_geoloc_HTML  = function() {
    
    var OBJ_SITE = OBJ_SITEs[this.ids];

    var dateOBJ_lastres_city = new histats_datecal_class();
    dateOBJ_lastres_city.tNOW = this.OBJ_GEOLOC.AR_data['ultimo_reset_city'];
    dateOBJ_lastres_city.build_dateAR();
    var str_dateLASTRES_city = dateOBJ_lastres_city.get_hour() + ' ' + dateOBJ_lastres_city.get_dateday_y() ;

    var dateOBJ_lastres_ctry = new histats_datecal_class();
    dateOBJ_lastres_ctry.tNOW = this.OBJ_GEOLOC.AR_data['ultimo_reset_country'];
    dateOBJ_lastres_ctry.build_dateAR();
    var str_dateLASTRES_ctry = dateOBJ_lastres_ctry.get_hour() + ' ' + dateOBJ_lastres_ctry.get_dateday_y() ;

    var print_intestazione_HTML = '<table class="Dintesta" border="0" width="700" cellspacing="0" cellpadding="0"><tr><td align="left">'+GL.R('dhtml_geolocation')+'</td></tr></table>\
                                    <table border="0" width="700" cellspacing="0" cellpadding="0"><tr>\
                                        <td valign="top">\
                                            <table border="0" width="100%" cellspacing="0" cellpadding="0" height="10"><tr><td></td></tr></table>\
                                            <table border="0" width="700" cellspacing="0" cellpadding="0">\
                                                    <tr>\
                                                            <td height="30" width="250" align="left"><a href="http://www.histats.com/viewstats/?sid='+this.ids+'&r_iv=11&act=10" class="btC" style="width:230px;"><img border="0" src="'+GLOBALS['FOLDER_img']+'cestinoB.png"> '+GL.R('reset_city_database')+'</a></td>\
                                                            <td height="30" style="padding-left: 10px" align="left"><font class="text11_grey">'+GL.R('last_reset')+' : </font><font class="text11_Dblue">'+str_dateLASTRES_city+'</font></td>\
                                                    </tr>\
                                                    <tr>\
                                                            <td height="30" width="250" align="left"><a href="http://www.histats.com/viewstats/?sid='+this.ids+'&r_iv=12&act=10" class="btC" style="width:230px;"><img border="0" src="'+GLOBALS['FOLDER_img']+'cestinoB.png"> '+GL.R('reset_country_database')+'</a></td>\
                                                            <td height="30" style="padding-left: 10px" align="left"><font class="text11_grey">'+GL.R('last_reset')+' : </font><font class="text11_Dblue">'+str_dateLASTRES_ctry+'</font></td>\
                                                    </tr>\
                                            </table>\
                                        </td>\
                                    </tr></table>\
                                    <hr color="#EAEAEA" width="650" size="1">\
                                    <table border="0" width="100%" cellspacing="0" cellpadding="0" height="5"><tr><td></td></tr></table>\
                                    <table border="0" width="700" cellspacing="0" cellpadding="0"><tr><td><font class="text11_Lgrey">'+GL.R('geo_frase1')+'<br>'+GL.R('geo_frase2')+'</font></td></tr></table>\
                                    <table border="0" width="700" cellspacing="0" cellpadding="0" height="20"><tr><td style="padding-left: 5px"><font class="text11_Lgrey">'+GL.R('geo_aggiornamento')+'</font></td></tr></table>\
                                    <div id="histats_geoloc_MAIN_SWF"></div>\
                                    <table border="0" width="100%" cellspacing="0" cellpadding="0" height="5"><tr><td></td></tr></table>\
                                    <table border="0" cellpadding="0" cellspacing="0" height="20" width="700"><tr>\
                                        <td align="right" ><font class="text11_Lgrey">'+GL.R('export')+'</font></td>\
                                        <td align="right" width="35"><a href="javascript:f_print_EXPORT(0,\'csv\');"><img src="'+GLOBALS['FOLDER_img']+'exp_csv.png" border="0"></a></td>\
                                        <td align="right" width="35"><a href="javascript:f_print_EXPORT(0,\'tsv\');"><img src="'+GLOBALS['FOLDER_img']+'exp_tsv.png" border="0"></a></td>\
                                    </tr></table>\
                                    <table border="0" width="100%" cellspacing="0" cellpadding="0" height="5"><tr><td></td></tr></table>\
                                    <div class="tabC" style="width:690px;">\
                                        <a href="javascript:OBJ_STATSsheet.ARmodules['+this.nmod+'].f_setTAB_geo_HTML(\'country\');" id="tabGEO_country" class="tabE tabE_attivo" style="width:120px;">'+GL.R('country')+'</a>\
                                        <a href="javascript:OBJ_STATSsheet.ARmodules['+this.nmod+'].f_setTAB_geo_HTML(\'city\');" id="tabGEO_city" class="tabE" style="width:120px;">'+GL.R('city')+'</a>\
                                    </div>\
                                    <div id="histats_geoloc_MAIN_cnt_country" style="display:block;"></div>\
                                    <div id="histats_geoloc_MAIN_cnt_city" style="display:none;"></div>';

    $('#histats_geoloc_MAIN_content').html(print_intestazione_HTML);
    
    this.OBJ_GEOLOC.infovis_build_html_country_SKT();
    
    this.OBJ_GEOLOC.infovis_build_html_city_SKT();
    this.OBJ_GEOLOC.print_swf();
}

histats_statsmodule_class.prototype.f_setTAB_geo_HTML = function(kTab) {
    $('.tabE').removeClass("tabE_attivo");
    $('#tabGEO_'+kTab).addClass("tabE_attivo");

    $("div[id^='histats_geoloc_MAIN_cnt_']").attr({
        "style":"display:none;"
    });
    $('#histats_geoloc_MAIN_cnt_'+kTab).attr({
        "style":"display:block;"
    });

}

function f_caricaLmap(id,lat,lon){
    var swfid = this.swfmapid;
    G_SWF_HANDLER.AR_SWFOBJ[id].SET_MAP_zoom();
    G_SWF_HANDLER.AR_SWFOBJ[id].nome_DIV_CONTAINER ='histats_geoloc_MAIN_SWF';
    G_SWF_HANDLER.AR_SWFOBJ[id].callback_type = 'data';
    G_SWF_HANDLER.AR_SWFOBJ[id].AR_RETURN_DATA['CooX'] = lat;
    G_SWF_HANDLER.AR_SWFOBJ[id].AR_RETURN_DATA['CooY'] = lon;
    G_SWF_HANDLER.AR_SWFOBJ[id].LOAD_FOB();
}

function f_caricaSmap(id,lat,lon){
    var swfid = this.swfmapid;
    G_SWF_HANDLER.AR_SWFOBJ[id].SET_MAP();
    G_SWF_HANDLER.AR_SWFOBJ[id].nome_DIV_CONTAINER ='histats_geoloc_MAIN_SWF';
    G_SWF_HANDLER.AR_SWFOBJ[id].callback_type = 'data';
    G_SWF_HANDLER.AR_SWFOBJ[id].swf_URLvariables = '';
    G_SWF_HANDLER.AR_SWFOBJ[id].LOAD_FOB();
}

histats_statsmodule_class.prototype.f_print_dataEXP  = function(JSID,type){
    var print_strEXP = '';
    var tmp_separatore = ",";
    var conta = 1;

    if(type=='tsv'){
        tmp_separatore = "\t";
    }

    if(!this.OBJ_GEOLOC.AR_data['country_ar']) return GL.R('No_data');
    var ar_country_main = Array();
    var tmp_K = 0 ;
    var tmp_VAL = 0 ;
    var TMP_TOTAL_COUNT = 0 ;
    var id_country = 0;
    var t_nomecountry = '';

    var ar_country_sorted = VIGOsortAssoc(ar_country_main,1,'a',true);
    
    if(this.OBJ_GEOLOC.AR_data['country_ar']){
        print_strEXP = GL.R('rank') + tmp_separatore +  GL.R('nazione') + tmp_separatore + GL.R('visitatori') + "\n";

        for(var k in this.OBJ_GEOLOC.AR_data['country_ar']){
            t_nomecountry = k;
            if(t_nomecountry=='-' || t_nomecountry.length==0) t_nomecountry =  GL.R('unknown') + "/" + GL.R('altro');

            print_strEXP +=   conta  + tmp_separatore + t_nomecountry + tmp_separatore + this.OBJ_GEOLOC.AR_data['country_ar'][k]+ "\n";
            conta++;
        }
    }else{
        print_strEXP = GL.R('No_data');
    }
    
    return print_strEXP;
//
}

histats_site_geolocstats_class.prototype.infovis_build_html_country_SKT  = function(){
    var ARcountryM = new Array();
    var ARcountryS = new Array();

    if(!this.AR_data['country_ar']) return ;
    for( var k in this.AR_data['country_ar']){
        if(this.AR_data['city_ar']){
            for(var t in this.AR_data['city_ar']){
                if(this.AR_data['city_ar'][t]['st'] && this.AR_data['city_ar'][t]['co']==k){
                    ARcountryM[k] = this.AR_data['city_ar'][t]['st'];
                }
            }
        }
    }
       
    ARcountryS = VIGOsortAssoc(this.AR_data['country_ar'],1,'a',true);

    var TMP_TOTAL_COUNT = 0 ;
    var HTML_PRINT = '';
    var tmp_class_row = '';
    var tmp_conta = 0;
    var tmp_print_bar = '';
    var tmp_flag = 0;
    var t_nomecountry = '' ;
    var idC = 0 ;
    var n_percent = 0;

    for(var k in this.AR_data['country_ar'] ){
        TMP_TOTAL_COUNT+=parseInt(this.AR_data['country_ar'][k]);
    }

    for(var  k in ARcountryS ){
        if(ARcountryS[k]>0){
            idC = k.substr(1);
            t_nomecountry = ARcountryM[idC];
            if(idC == 1 || idC == 0) t_nomecountry =  GL.R('unknown') + "/" + GL.R('altro');
            n_percent = parseInt((ARcountryS[k]/TMP_TOTAL_COUNT)*10000)/100;

            tmp_class_row='tb_data_1';
            if(tmp_conta%2==1) tmp_class_row='tb_data_2';

            tmp_print_bar = '';
            if(ARcountryS[k]>0){
                tmp_print_bar = '<div id="prgBAR" style="width:'+parseInt((n_percent/100)*300)+'px"></div>';
            }

            if(t_nomecountry=='Unknown/other' || !_2NCh[idC.toLowerCase()] || t_nomecountry=='-') tmp_flag = '<img border="0" src="'+GLOBALS['FOLDER_img']+'noflag.gif">';
            else tmp_flag = '<img border="0" src="'+GLOBALS['FOLDER_img']+'flags/'+_2NCh[idC.toLowerCase()].toLowerCase()+'.gif">';

            HTML_PRINT += '<table width="700" class="'+tmp_class_row+'" onmouseover="this.className=\'tb_data_Over\'" onmouseout="this.className=\''+tmp_class_row+'\'"><tr>\
                                <td width="20" align="left" style="padding-left:5px;">'+(tmp_conta+1)+'</td>\
                                <td width="30" align="center">'+tmp_flag+'</td>\
                                <td width="170" align="left" style="padding-left:5px;">'+idC+'</td>\
                                <td width="350" >'+tmp_print_bar+'&nbsp;'+GL.fn(n_percent)+'%</td>\
                                <td width="130" align="center"><font class="text14">'+GL.fn(ARcountryS[k])+'</font></td>\
                            </tr></table>';
            tmp_conta++;
        }
    }
    
    $('#histats_geoloc_MAIN_cnt_country').html(HTML_PRINT);
}

histats_site_geolocstats_class.prototype.infovis_build_html_city_SKT  = function(filtro){
    if(!this.AR_data['city_ar']) return;

    var ARcityS = new Array();
    var ARtmp = new Array();
    var TMP_TOTAL_COUNT = 0;
    for( k in this.AR_data['city_ar']){
        ARtmp[k] = this.AR_data['city_ar'][k]['h'];
        TMP_TOTAL_COUNT += parseInt(this.AR_data['city_ar'][k]['h']);
    }
    
    ARcityS = VIGOsortAssoc(ARtmp,1,'a',true);

    var ARcntryGRP = new Array();

    var HTML_PRINT = '';
    var HTML_PRINT_other = '';

    var id_city = 0;
    var t_nomecity = '';
    var tmp_lat = 0;
    var tmp_lon = 0;
    var t2chrState = '';
    var t_nomestate = '';
    var n_percent = 0;
    var tmp_print_bar = '';
    var tmp_flag = '';
    var tmp_class_row = '';
    var tmp_class_row_other = '';
    var tmp_conta = 0;
    var tmp_conta_other = 0;
    var tmp_swfstr_separator = '';

    var PuntC = null;
    for( var k in ARcityS ){
        id_city = parseInt(k.substr(1));
        PuntC = this.AR_data['city_ar'][id_city];
        if(PuntC['cy']) t_nomecity = PuntC['cy'];
        if(t_nomecity == '-') t_nomecity =  GL.R('altro');
        if(PuntC['la']) tmp_lat = PuntC['la'];
        if(PuntC['lo']) tmp_lon = PuntC['lo'];
        if(PuntC['st']) t2chrState = PuntC['st'];
        if(PuntC['re']) t_nomestate = PuntC['re'];
        if(PuntC['co']) t_nomestate += ', '+PuntC['co'];
        if(t_nomestate == '-') t_nomestate =  GL.R('altro');

        if(t2chrState.length==2) ARcntryGRP[t2chrState] = 1;

        if((filtro && filtro==t2chrState) || (!filtro)){
            if(t_nomecity.length>0 && ARcityS[k]>0){
                tmp_print_bar = '';
                n_percent = parseInt((ARcityS[k]/TMP_TOTAL_COUNT)*10000)/100;
                tmp_print_bar = '<div id="prgBAR" style="width:'+parseInt((n_percent/100)*300)+'px"></div>';

                if(t2chrState=='-') tmp_flag = '<img border="0" src="'+GLOBALS['FOLDER_img']+'noflag.gif">';
                else tmp_flag = '<img border="0" src="'+GLOBALS['FOLDER_img']+'flags/'+t2chrState.toLowerCase()+'.gif">';

                if(t_nomecity == "other" || t_nomecity == GL.R('altro')){
                    tmp_class_row_other='tb_data_1';
                    if(tmp_conta_other%2==1) tmp_class_row_other='tb_data_2';
                    HTML_PRINT_other += '<table width="700" class="'+tmp_class_row_other+'" onmouseover="this.className=\'tb_data_Over\'" onmouseout="this.className=\''+tmp_class_row_other+'\'"><tr>\
                                    <td width="20" align="left" style="padding-left:5px;">'+(tmp_conta_other+1)+'</td>\
                                    <td width="30" align="center">'+tmp_flag+'</td>\
                                    <td width="170" align="left" style="padding-left:5px;">'+t_nomecity+'</td>\
                                    <td width="350" >'+tmp_print_bar+'&nbsp;'+GL.fn(n_percent)+'%</td>\
                                    <td width="130" align="center"><font class="text14">'+GL.fn(ARcityS[k])+'</font></td>\
                                </tr></table>';
                    tmp_conta_other++;
                }else{
                    tmp_class_row='tb_data_1';
                    if(tmp_conta%2==1) tmp_class_row='tb_data_2';
                    HTML_PRINT += '<table width="700" class="'+tmp_class_row+'" onmouseover="this.className=\'tb_data_Over\'" onmouseout="this.className=\''+tmp_class_row+'\'"><tr>\
                                    <td width="20" align="left" style="padding-left:5px;">'+(tmp_conta+1)+'</td>\
                                    <td width="30" align="center">'+tmp_flag+'</td>\
                                    <td width="170" align="left" style="padding-left:5px;">'+t_nomecity+'</td>\
                                    <td width="350" >'+tmp_print_bar+'&nbsp;'+GL.fn(n_percent)+'%</td>\
                                    <td width="130" align="center"><font class="text14">'+GL.fn(ARcityS[k])+'</font></td>\
                                </tr></table>';
                    tmp_conta++;
                }
                this.STR_SWF+= tmp_swfstr_separator+ id_city + '##'+   tmp_lon + '##'+tmp_lat + '##'+ id_city + '##'+ t_nomecity + '##'+ t2chrState.toLowerCase() + '##'+  ARcityS[k] + '';
                tmp_swfstr_separator = '<p>';
            }
        }       
    }

    var tmp_print_Cgroup = '';
    if(ARcntryGRP){
        var tmp_print_Cgroup = '';
        for(var t in ARcntryGRP){
            tmp_print_Cgroup += '<a href="javascript:OBJ_STATSsheet.ARmodules['+this.nmod+'].OBJ_GEOLOC.infovis_build_html_city_SKT(\''+t+'\');"><img border="0" src="'+GLOBALS['FOLDER_img']+'flags/'+t.toLowerCase()+'.gif"></a>&nbsp;';
        }
        HTML_PRINT = '<table border="0" width="100%" cellspacing="0" cellpadding="0" height="5"><tr><td></td></tr></table>\
                    <table border="0" width="700" cellspacing="0" cellpadding="0">\
                        <tr><td width="700" height="20"><a href="javascript:OBJ_STATSsheet.ARmodules['+this.nmod+'].OBJ_GEOLOC.infovis_build_html_city_SKT();" class="text11_Dblue">'+GL.R('geo_lista_completa_city')+'&nbsp;</a><img border="0" src="'+GLOBALS['FOLDER_img']+'188.png"></td></tr>\
                        <tr><td valign="top" width="700" align="left"><font class="text11_grey">'+GL.R('geo_lista_per_country')+':&nbsp;</font>'+tmp_print_Cgroup+'</td></tr>\
                    </table>\
                    <table border="0" width="100%" cellspacing="0" cellpadding="0" height="15"><tr><td></td></tr></table>'+HTML_PRINT;
    }

    if(HTML_PRINT_other.length>0){
        HTML_PRINT += '<br><table border="0" width="700" cellspacing="0" cellpadding="0" style="border-bottom: 2px solid #000000;padding-left:5px;"><tr><td><font class="text16">'+GL.R('geo_altre_city')+'</font></td></tr></table>'+HTML_PRINT_other;
    }

    $('#histats_geoloc_MAIN_cnt_city').html(HTML_PRINT);
}

//------------------------------------TREND-------------------------------------
histats_statsmodule_class.prototype.f_print_geolocTREND_HTML  = function() {
    //var OBJ_SITE = OBJ_SITEs[this.ids];
    if(this.OBJ_GEOLOC.AR_data['trend_ar'].length==0){
        var print_intestazione_HTML = '<table class="Dintesta" border="0" width="700" cellspacing="0" cellpadding="0"><tr><td align="left">'+GL.R('dhtml_geolocation_trend')+'</td></tr></table>\
                                        <table border="0" width="100%" cellspacing="0" cellpadding="0" height="5"><tr><td></td></tr></table>\
                                        <table border="0" width="700" cellspacing="0" cellpadding="0"><tr>\
                                            <td align="center">\
                                                <br><br><font class="text16_blue">'+GL.R('No_data')+'</font>\
                                            </td>\
                                        </tr></table>';
        document.getElementById('histats_geoloc_MAIN_content').innerHTML = print_intestazione_HTML;
        return;
    }

    var print_intestazione_HTML = '<table class="Dintesta" border="0" width="700" cellspacing="0" cellpadding="0"><tr><td align="left">'+GL.R('dhtml_geolocation_trend')+'</td></tr></table>\
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="10"><tr><td></td></tr></table>\
<table border="0" width="700" cellspacing="0" cellpadding="0"><tr><td valign="top" align="left"><a href="http://www.histats.com/viewstats/?sid='+this.ids+'&r_iv=13&act=10&op=1" class="btC"><img border="0" src="'+GLOBALS['FOLDER_img']+'cestinoB.png"> '+GL.R('reset_trend_database')+'</a></td></tr></table>\
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="10"><tr><td></td></tr></table>\
<table border="0" width="700" cellspacing="0" cellpadding="0"><tr><td><font class="text11_Lgrey">'+GL.R('12_top_Country')+'</font></td></tr></table>\
<div id="histats_geoloc_MAIN_SWF"></div>\
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="5"><tr><td></td></tr></table>\
<div id="histats_geoloc_MAIN_trend" style="display:block;"></div>';

    document.getElementById('histats_geoloc_MAIN_content').innerHTML = print_intestazione_HTML;
    //alert(OBJ_SITE.time_offset);
    this.OBJ_GEOLOC.time_offset = ptrDATE.tOFFSET;

    this.OBJ_GEOLOC.f_print_geoT_SWF_BASE();
    this.OBJ_GEOLOC.infovis_build_html_trend();
    this.OBJ_GEOLOC.print_swf_trend();
}

histats_site_geolocstats_class.prototype.infovis_build_html_trend  = function(){
    if(!this.AR_data['trend_ar']) return;
    //---___aggiungo oggi all'array TREND
    if(this.AR_data['trend_ar_today']){
        for(var s in this.AR_data['trend_ar_today']){
            this.AR_data['trend_ar'][s] = this.AR_data['trend_ar_today'][s];
        }
    }
    
    //---___SOMMO hits di ogni stato e lo ordino decrescente
    var AR_data_ID = new Array();
    
    var AR_SUM = new Array();
    var AR_SUM_count = new Array();
    for(var t in this.AR_data['trend_ar']){
        if(this.AR_data['trend_ar'][t]){
            AR_data_ID[t] = new Array();
            for(var t1 in this.AR_data['trend_ar'][t]){
                AR_data_ID[t][this.AR_data['trend_ar'][t][t1]['id']] = this.AR_data['trend_ar'][t][t1]['val'];
                
                
                if(!AR_SUM[this.AR_data['trend_ar'][t][t1]['id']]) AR_SUM[this.AR_data['trend_ar'][t][t1]['id']] = 0;
                AR_SUM[this.AR_data['trend_ar'][t][t1]['id']] += parseInt(this.AR_data['trend_ar'][t][t1]['val']);
                
                if(!AR_SUM_count[this.AR_data['trend_ar'][t][t1]['id']]) AR_SUM_count[this.AR_data['trend_ar'][t][t1]['id']] = 0;
                AR_SUM_count[this.AR_data['trend_ar'][t][t1]['id']]++;
            }
        }
    }
    var AR_SORT = VIGOsortAssoc(AR_SUM,true,'a' ,true);

    //############################___STAMPO intestazione + AVG___###################
    //##############################################################################
    if(!AR_SORT) return;
    var PRT_intesta = '';
    var PRT_media = '';
    var PRT_rowR = '';
    var PRT_row = '<table border="0" width="700" cellspacing="0" cellpadding="0"><tr><td>\
                        <div style="height:400px;width:700px;overflow-x:scroll;overflow-y:scroll;">';
    var tmp_flag = '';
    var tmp_nameC = '';
    var tmp_media = 0;
    var tmp_conta = 0;
    var kindice='';
    for(var t in AR_SORT){
        kindice = t.substr(1);
        
        if(this.AR_data['trend_ar_country'][kindice]) tmp_nameC = this.AR_data['trend_ar_country'][kindice];
        if(kindice=='0') tmp_nameC = GL.R('altro');
        
        tmp_flag = '';
        if(_2NCh[tmp_nameC.toLowerCase()]) tmp_flag = '<img border="0" src="http://usa1.ffcdn.net/images/flags/'+_2NCh[tmp_nameC.toLowerCase()].toLowerCase()+'.gif">';
        
        PRT_intesta += '<td width="140" style="border-right: 1px solid #C7CDDE;" align="center">'+tmp_flag+' <font class="text11_Dblue">'+tmp_nameC+'</font></td>';
        
        if(AR_SORT[t]) tmp_media = parseInt((AR_SORT[t]/AR_SUM_count[kindice]));
        else tmp_media = 0;
        
        PRT_media += '<td width="140" align="center" style="border-right: 1px solid #C0C0C0;background-color: #FFE3AA"><font class="text14_orange">'+GL.fn(tmp_media)+' </font></td>';

        this.ARSWF_variables['var_lang_p'+(tmp_conta+1)] =  htmlentities_decode(tmp_nameC);
        
        tmp_conta++;
    }
    
    this.ARSWF_variables['var_number_lineDraw'] = tmp_conta;

    var tmp_w_table = 8+100+(tmp_conta*140)+8;
    
    PRT_row += '<table border="0" cellspacing="0" cellpadding="0" height="30" width="'+tmp_w_table+'"><tr>\
                    <td width="8" background="'+GLOBALS['FOLDER_img']+'bar_70030_l.png"></td>\
                    <td background="'+GLOBALS['FOLDER_img']+'bar_70030_m.png">\
                        <table border="0" cellspacing="0" cellpadding="0" height="20"><tr>\
                            <td width="100" align="center" style="border-right: 1px solid #C7CDDE"><font class="text11_Dblue">'+GL.R('giorno')+'</font></td>\
                            '+PRT_intesta+'\
                        </tr></table>\
                    </td>\
                    <td width="8" background="'+GLOBALS['FOLDER_img']+'bar_70030_r.png"></td>\
                </tr></table>\
                <table width="'+tmp_w_table+'"  class="tb_data_1" ><tr>\
                    <td width="8"></td>\
                    <td width="100" align="center" style="border-right: 1px solid #C0C0C0;"><font class="text11_red">AVG</font></td>\
                    '+PRT_media+'\
                    <td width="8"></td>\
                </tr></table>';
    
    //############################___STAMPO RIGHE___################################
    //##############################################################################
    var PRT_rowDay = '';
    var tmp_class_row = '';
    tmp_conta = 0;
    var TOT_day = 0;
    var tmp_value = 0;
    var PRT_perc = '';
    var TIPalert = '';
    var contaCTRY = 0;
    var print_data = '';
    var tmp_cancel = '';
    var tmp_offsetDay = 0;
    
    var AR_dataS_trend_ar = new Array()
    var contaS = 0;
    for(var t in this.AR_data['trend_ar']){
        AR_dataS_trend_ar[contaS] = parseInt(t);
        contaS++;
    }

    AR_dataS_trend_ar.sort(sortNumber);
    var t = 0;
    
    for(var z in AR_dataS_trend_ar){
        TOT_day = 0;
        t = AR_dataS_trend_ar[z];
        
        for(var k in this.AR_data['trend_ar'][t]){
            TOT_day += parseInt(this.AR_data['trend_ar'][t][k]);
        }
        
        tmp_class_row='tb_data_1';
        if(tmp_conta%2==1) tmp_class_row='tb_data_2';
        
        tmp_offsetDay = parseInt(t);
        tmp_offsetDay = tmp_offsetDay-86400+ this.time_offset ;
        TOT_day = 0;
        AR_tmpdata = new Array();
        AR_tmpdata = f_return_DATE_AR(tmp_offsetDay);
        
        print_data = GLOBAL_AR_DAYW[AR_tmpdata['wday']]+' '+AR_tmpdata['day']+'/'+AR_tmpdata['month']+'/'+AR_tmpdata['year'];

        this.str_x += tmp_cancel + AR_tmpdata['day'];
        this.str_data += tmp_cancel + GLOBAL_AR_DAYW[AR_tmpdata['wday']]+' '+AR_tmpdata['day'] + ' ' + GL.R(GLOBAL_AR_MONTH[AR_tmpdata['month']]);
        tmp_cancel = "#";
        this.str_swf_1stWEEKDAY= AR_tmpdata['wday1st'] ;
        this.str_swf_ndays++;

        PRT_rowDay = '<table width="'+tmp_w_table+'" class="'+tmp_class_row+'" onmouseover="this.className=\'tb_data_Over\'" onmouseout="this.className=\''+tmp_class_row+'\'"><tr>\
                        <td width="8"></td>\
                        <td width="100" align="center" style="border-right: 1px solid #C0C0C0;">'+print_data+'</td>';
        contaCTRY = 0;     
        for(var k in AR_SORT){
            
            kindice = k.substr(1);
            
            if(AR_data_ID[t][kindice]){
                tmp_value = parseInt(AR_data_ID[t][kindice]);
                PRT_perc = '';
                if(TOT_day>0){
                    PRT_perc = '<font class="text11_green">| '+(parseInt((tmp_value/TOT_day)*1000)/10)+'%</font>';
                }
            }else{
                tmp_value = 0;
                PRT_perc = '';
            }
            
            
            if(!this.ARSWF_variables['var_val_p'+(contaCTRY+1)]) this.ARSWF_variables['var_val_p'+(contaCTRY+1)] = '';
            this.ARSWF_variables['var_val_p'+(contaCTRY+1)] += tmp_value + tmp_cancel ;

            TIPalert = '';
            if(tmp_value==0){
                tmp_value = '-';
                TIPalert = 'original-title=\''+addslashes(GL.R('out_of_range_trendC'))+'\'';
            } else tmp_value = GL.fn(tmp_value);
            
            PRT_rowDay += '<td width="140" align="center" class="ttip" style="border-right: 1px solid #C0C0C0" '+TIPalert+'><font class="text14">'+tmp_value+' </font>'+PRT_perc+'</td>';
            contaCTRY ++
        }
        
        PRT_rowDay += '<td width="8"></td></tr></table>';
        tmp_conta++;
        PRT_rowR = PRT_rowDay+PRT_rowR;
    }
    PRT_row += PRT_rowR;
    
    this.ARSWF_variables['var_n_barre'] = this.str_swf_ndays;
    this.ARSWF_variables['var_gg_forecast'] = this.str_swf_ndays;
    this.ARSWF_variables['var_str_data'] = this.str_data;
    this.ARSWF_variables['var_str_x'] = this.str_x;
    this.ARSWF_variables['WDAY_firstDAY'] = 99;//this.str_swf_1stWEEKDAY;
    
    $('#histats_geoloc_MAIN_trend').html(PRT_row);
    return ;
}

histats_site_geolocstats_class.prototype.infovis_build_html_trend_OLD  = function(){
    if(!this.AR_data['trend_ar']) return ;
    if(!this.AR_data['trend_ar_country']) return ;

    var AR_sum = new Array();
    var AR_trend_S = new Array();
    var AR_id_Val = new Array();
    var AR_contaReg = new Array();
    
    //aggiungo il giorno di oggi
    //this.AR_data['trend_ar'] = this.AR_data['trend_ar_today'];

    var tmp_conta = 0;
    for(var t in this.AR_data['trend_ar']){
        for(var k in this.AR_data['trend_ar'][t]){
            if(!AR_sum[this.AR_data['trend_ar'][t][k]]) AR_sum[this.AR_data['trend_ar'][t][k]] = 0;
            AR_sum[this.AR_data['trend_ar'][t][k]] += parseInt(this.AR_data['trend_ar'][t][k]);

            if(!AR_contaReg[this.AR_data['trend_ar'][t][k]]) AR_contaReg[this.AR_data['trend_ar'][t][k]] = 0;
            if(parseInt(this.AR_data['trend_ar'][t][k])>0) AR_contaReg[this.AR_data['trend_ar'][t][k]]++;

            if(!AR_id_Val[t]) AR_id_Val[t] = new Array();
            AR_id_Val[t][this.AR_data['trend_ar'][t][k]] = parseInt(this.AR_data['trend_ar'][t][k]);
            tmp_conta++;
        }
    }
    var AR_trend_S = VIGOsortAssoc(AR_sum,1,'a',true);
    var id_cntry = 0;
    var tmp_nameC = '';
    var tmp_flag = '';
    var TOT_day = 0;
    var PRT_row = '';
    var PRT_intesta = '';
    if(tmp_conta==0) return;
    tmp_conta = 0;
    //****** stampo intestazione nazioni *******************************************
    var PRT_row = '<table border="0" width="700" cellspacing="0" cellpadding="0"><tr><td>\
                        <div style="height:400px;width:700px;overflow-x:scroll;overflow-y:scroll;">';


    for(var k in AR_trend_S){
        id_cntry = k.substr(1);
        id_cntry = parseInt(id_cntry);

        if(this.AR_data['trend_ar_country'][id_cntry]) tmp_nameC = this.AR_data['trend_ar_country'][id_cntry];
        if(tmp_nameC.length<2) tmp_nameC = GL.R('altro');

        tmp_flag = '';
        if(_2NCh[tmp_nameC.toLowerCase()]) tmp_flag = '<img border="0" src="http://usa1.ffcdn.net/images/flags/'+_2NCh[tmp_nameC.toLowerCase()].toLowerCase()+'.gif">';

        PRT_intesta += '<td width="140" style="border-right: 1px solid #C7CDDE;" align="center">'+tmp_flag+' <font class="text11_Dblue">'+tmp_nameC+'</font></td>';

        this.ARSWF_variables['var_lang_p'+(tmp_conta+1)] =  tmp_nameC;

        tmp_conta++;
        this.str_swf_nrows++;
    }
    this.ARSWF_variables['var_number_lineDraw'] = tmp_conta;

    var tmp_w_table = 8+100+(tmp_conta*140)+8;
    PRT_row += '<table border="0" cellspacing="0" cellpadding="0" height="30" width="'+tmp_w_table+'"><tr>\
                    <td width="8" background="'+GLOBALS['FOLDER_img']+'bar_70030_l.png"></td>\
                    <td background="'+GLOBALS['FOLDER_img']+'bar_70030_m.png">\
                        <table border="0" cellspacing="0" cellpadding="0" height="20"><tr>\
                            <td width="100" align="center" style="border-right: 1px solid #C7CDDE"><font class="text11_Dblue">'+GL.R('giorno')+'</font></td>\
                            '+PRT_intesta+'\
                        </tr></table>\
                    </td>\
                    <td width="8" background="'+GLOBALS['FOLDER_img']+'bar_70030_r.png"></td>\
                </tr></table>';

    //******************************************************************************


    //***************___stampo la riga di media___**********************************
    var tmp_media = 0;

    PRT_row += '<table width="'+tmp_w_table+'"  class="tb_data_1" ><tr>\
                        <td width="8"></td>\
                        <td width="100" align="center" style="border-right: 1px solid #C0C0C0;"><font class="text11_red">AVG</font></td>';
    for(var k in AR_trend_S){
        id_cntry = k.substr(1);
        id_cntry = parseInt(id_cntry);

        if(AR_trend_S[k]) tmp_media = parseInt((AR_trend_S[k]/AR_contaReg[id_cntry]));
        else tmp_media = 0;
        PRT_row += '<td width="140" align="center" style="border-right: 1px solid #C0C0C0;background-color: #FFE3AA"><font class="text14_orange">'+GL.fn(tmp_media)+' </font></td>';
    }
    PRT_row += '<td width="8"></td></tr></table>';


    var tmp_class_row = '';
    var PRT_perc = 0;
    var tmp_value = 0;
    var print_data = '';
    var tmp_cancel = '';
    var contaCTRY = 0;
    var PRT_dayR = '';
    var PRT_dayRr = '';
    var tmp_offsetDay = 0;
    tmp_conta = 0;
    var TIPalert='';
  
    for(var t in this.AR_data['trend_ar']){
        tmp_class_row='tb_data_1';
        if(tmp_conta%2==1) tmp_class_row='tb_data_2';

        tmp_offsetDay = parseInt(t);
        tmp_offsetDay = tmp_offsetDay-86400+ this.time_offset ;
        TOT_day = 0;
        AR_tmpdata = new Array();
        AR_tmpdata = f_return_DATE_AR(tmp_offsetDay);
        
        print_data = GLOBAL_AR_DAYW[AR_tmpdata['wday']]+' '+AR_tmpdata['day']+'/'+AR_tmpdata['month']+'/'+AR_tmpdata['year'];

        this.str_x += tmp_cancel + AR_tmpdata['day'];
        this.str_data += tmp_cancel + GLOBAL_AR_DAYW[AR_tmpdata['wday']]+' '+AR_tmpdata['day'] + ' ' + GL.R(GLOBAL_AR_MONTH[AR_tmpdata['month']]);

        tmp_cancel = "#";
        this.str_swf_1stWEEKDAY= AR_tmpdata['wday1st'] ;
        this.str_swf_ndays++;

        PRT_dayR = '';

        PRT_dayR = '<table width="'+tmp_w_table+'" class="'+tmp_class_row+'" onmouseover="this.className=\'tb_data_Over\'" onmouseout="this.className=\''+tmp_class_row+'\'"><tr>\
                        <td width="8"></td>\
                        <td width="100" align="center" style="border-right: 1px solid #C0C0C0;">'+print_data+'</td>';

        for(var k in this.AR_data['trend_ar'][t]){
            TOT_day += parseInt(this.AR_data['trend_ar'][t][k]);
        }
        contaCTRY = 0;
        for(var k in AR_trend_S){
            id_cntry = k.substr(1);
            id_cntry = parseInt(id_cntry);

            if(AR_id_Val[t][id_cntry]){
                tmp_value = parseInt(AR_id_Val[t][id_cntry]);
                PRT_perc = '';
                if(TOT_day>0){
                    PRT_perc = '<font class="text11_green">| '+(parseInt((tmp_value/TOT_day)*1000)/10)+'%</font>';
                }
            }else{
                tmp_value = 0;
                PRT_perc = '';
            }

            if(!this.ARSWF_variables['var_val_p'+(contaCTRY+1)]) this.ARSWF_variables['var_val_p'+(contaCTRY+1)] = '';
            this.ARSWF_variables['var_val_p'+(contaCTRY+1)] += tmp_value + tmp_cancel ;

            TIPalert = '';
            if(tmp_value==0){
                tmp_value = '-';
                TIPalert = 'onmouseover="doTooltip_testo(event,\''+addslashes(GL.R('out_of_range_trendC'))+'\')" onmouseout="hideTip()"';
            } else tmp_value = GL.fn(tmp_value);

            PRT_dayR += '<td width="140" align="center" style="border-right: 1px solid #C0C0C0" '+TIPalert+'><font class="text14">'+tmp_value+' </font>'+PRT_perc+'</td>';
            contaCTRY ++
        }
        PRT_dayR += '<td width="8"></td></tr></table>';
        tmp_conta++;
        PRT_dayRr = PRT_dayR+PRT_dayRr;
    }

    PRT_row += PRT_dayRr;

    this.ARSWF_variables['var_n_barre'] = this.str_swf_ndays;
    this.ARSWF_variables['var_gg_forecast'] = this.str_swf_ndays;
    this.ARSWF_variables['var_str_data'] = this.str_data;
    this.ARSWF_variables['var_str_x'] = this.str_x;
    this.ARSWF_variables['WDAY_firstDAY'] = 99;//this.str_swf_1stWEEKDAY;

    //print_r(this.ARSWF_variables);
    HTML_PRINT = PRT_row;

    if(!document.getElementById('histats_geoloc_MAIN_trend' )) return ;
    document.getElementById('histats_geoloc_MAIN_trend' ).innerHTML = HTML_PRINT;
    return ;
}

histats_site_geolocstats_class.prototype.f_print_geoT_SWF_BASE  = function() {
    var OBJ_SITE = OBJ_SITEs[this.ids];
    this.ARSWF_variables = Array();
    this.ARSWF_variables['var_for_col1'] = '';
    this.ARSWF_variables['var_for_col2'] = '';
    this.ARSWF_variables['var_for_col3'] = '';
    this.ARSWF_variables['var_number_lineDraw'] = 0;
    this.ARSWF_variables['var_tiposcala_linee'] = 3;
    this.ARSWF_variables['var_str_x'] = '';
    this.ARSWF_variables['var_str_data'] = '';
    this.ARSWF_variables['var_n_barre'] =   '0';
    this.ARSWF_variables['var_gg_forecast'] =   '0';
    this.ARSWF_variables['WDAY_firstDAY'] = '0';// weekday first day 0,6-99
    this.ARSWF_variables['var_lang_vis'] = GL.Q('visitatori');
    this.ARSWF_variables['var_lang_pv'] = GL.Q('pagine_viste');

}

histats_site_geolocstats_class.prototype.print_swf_trend  = function() {
    var OBJ_MOD = OBJ_STATSsheet.ARmodules[this.nmod];
    // init swf
    var swfid = G_SWF_HANDLER.crate_swf_obj();
    this.SWF_graph_ID = swfid;
    // load swf
    G_SWF_HANDLER.AR_SWFOBJ[swfid].nome_DIV_CONTAINER ='histats_geoloc_MAIN_SWF';
    G_SWF_HANDLER.AR_SWFOBJ[swfid].callback_type = 'data';
    G_SWF_HANDLER.AR_SWFOBJ[swfid].AR_RETURN_DATA = this.ARSWF_variables;

    //print_r(this.ARSWF_variables);
    //print_r(OBJ_MOD.ARSWF_variables);
    G_SWF_HANDLER.AR_SWFOBJ[swfid].LOAD_FOB();

}

if(!JSCACHE) JSCACHE = [] ;
JSCACHE.push(['geoloc.class.js',2]);
