/*      
        wreport.js
        Wreport version 0.1 copyright Weborama 01-07-2005
        Fonctionnalités :
                - groupe
                - contenu
                - chaîne thématique
                - alphanum
*/


/* ------------------ Variables ------------------------- */
var _NB_MAX_CONTENU_ = 1;
var _NB_CONTENUS_ = 0;
var _TAILLE_MAX_CONTENU_ = 100;
var WEBO_CONTENU_ARG = new String();
var _TAILLE_MAX_CHAINE_ = 50;
var WEBO_CHAINE_ARG = new String();
var _TAILLE_MAX_ALPHANUM_ = 30;
var WEBO_ALPHANUM = new String();
var WEBO_ID_GROUPE = 234133;


var _DEBUG_ = 0;


/* ------------------ Profilling ------------------------ */
var mon_pfl_domaine = '';
var mon_pfl_id;
var WRP_PFL1='';
var WRP_PFL2='';
var WRP_PFL3='';
var WRP_PFL4='';
var WRP_PFL5='';
var mon_pfl_cookie = 'wbo_segment_';


/* ------------------ Privée ---------------------------- */


/* ------------------ Cookies --------------------------- */
function getCookieVal (offset) {
        var endstr = document.cookie.indexOf (";", offset);
        if (endstr == -1)
        endstr = document.cookie.length;
        return unescape(document.cookie.substring(offset, endstr));
}       


function GetCookie (name) {
        var arg = 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)
                return getCookieVal (j);
                i = document.cookie.indexOf(" ", i) + 1;
                if (i == 0) break;
        }
        return null;
}


function SetCookie (name,value,expires,path,domain,secure)  {
        document.cookie = name + "=" + escape (value) +
        ((expires) ? "; expires=" + expires.toGMTString() : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}



/* ------------------ Profiling ------------------------- */
function init_profiling(site) {
        mon_pfl_id = site;
        mon_pfl_cookie += mon_pfl_id;
}


function wreport_profiling (site) {
        init_profiling(site);
        for(a=1;a<arguments.length;a++){
                maj_segment(a,arguments[a]);
        }
}


function maj_segment(numero,valeur) {
        if(parseInt(navigator.appVersion,10)<=3) return -1;
        nb_mois = 12;
        numero = parseInt(numero,10);
        if ((numero < 1) || (numero > 5)) return -2;
        var verif_val_I = /^\d+$/;
        if(verif_val_I.test(valeur)) valeur = encode_en_lettre(valeur);
        var verif_val_A = /^\w*$/; 
        if(verif_val_A.test(valeur)) {
                var mon_profil_wbo = GetCookie(mon_pfl_cookie);
                tab_segment = new Array('','','','','');
                if(mon_profil_wbo != null) {
                        tab_segment = mon_profil_wbo.split('|');
                        if(tab_segment.length != 5) tab_segment = ('','','','','');             
                        //On vérifie qu'une mise à jour est nécessaire.
                        if(tab_segment[numero - 1]==valeur) return 1;           
                }                       
                if(mon_pfl_domaine == '') {
                        mon_pfl_domaine = this.location.host;
                        tab_points = new Array();
                        tab_points = this.location.host.split('.');
                        if(tab_points.length>2) mon_pfl_domaine = mon_pfl_domaine.substring(mon_pfl_domaine.indexOf('.'),mon_pfl_domaine.length);
                        if(tab_points.length==2) mon_pfl_domaine = '.' + mon_pfl_domaine;
                }
                var ma_chaine_profil='';
                for(var i=1; i<=5; i++) {
                        if(i==numero) tab_segment[i-1]=valeur;
                        if((tab_segment[i-1]=='') || (tab_segment[i-1]==null)) tab_segment[i-1] = '';
                        ma_chaine_profil += tab_segment[i-1];
                        if(i<5) ma_chaine_profil += '|';
                }
                expd = new Date();
                expd.setTime(expd.getTime() + (nb_mois * 30 * 24 * 3600 * 1000));
                SetCookie (mon_pfl_cookie,ma_chaine_profil,expd,'/',mon_pfl_domaine);
                return 2;
        }
        else return -3;
        
}


function raz_segment() {
        //destruction du cookie
        expd = new Date();
        expd.setTime(expd.getTime() - (24 * 3600 * 1000));
        SetCookie (mon_pfl_cookie,'||||',expd,'/',mon_pfl_domaine);
}


function recup_param_profil() {
        var mes_param_pfl = GetCookie(mon_pfl_cookie);
        if(mes_param_pfl == null) {
                mes_pfl = new Array('','','','','');
                if(WRP_PFL1 != '') mes_pfl[0]=WRP_PFL1;
                if(WRP_PFL2 != '') mes_pfl[1]=WRP_PFL2;
                if(WRP_PFL3 != '') mes_pfl[2]=WRP_PFL3;
                if(WRP_PFL4 != '') mes_pfl[3]=WRP_PFL4;
                if(WRP_PFL5 != '') mes_pfl[4]=WRP_PFL5;
                
                mes_param_pfl = '';
                var verif_val_I = /^\d+$/;
                for(var i=1;i<=5;i++) {
                        if(verif_val_I.test(mes_pfl[i-1])) mes_pfl[i-1] = encode_en_lettre(mes_pfl[i-1]);
                        mes_param_pfl += mes_pfl[i-1];
                        if(i<5) mes_param_pfl += '|';
                }       
        }
        return mes_param_pfl;
}


function encode_en_lettre(num) {
        num = parseInt(num,10);
        if(num > 2500) return '';
        var num1 = parseInt(num/52,10);
        var num2 = num % 52;


        num1 += 65;
        if (num1>90) num1+=6;
        
        num2 += 65;
        if (num2>90) num2+=6;
        
        var mon_code52 = String.fromCharCode(num1) + String.fromCharCode(num2);
        if(_DEBUG_) { document.write("Encodage en lettre '"+ num +"' = '"+mon_code52+"'<br>\n");}
        return mon_code52;
}


/* ------------------ Générales ------------------------- */
function wf_uaO(c) {
        var wf_ual=navigator.userAgent.toLowerCase();
        return(wf_ual.indexOf(c))
}


function _traite_chaine (chaine,taille_max) {
	var contenu = new String();
	var _chaine_ = new String(chaine);
	var re = new RegExp("[^a-z0-9\-.,;:_ %]*", "gi");
	contenu = _chaine_.replace(re,'');
	return encodeURIComponent(contenu.substr(0,taille_max));
}

function _traite_alphanum ( rubrique, sous_rubrique, type ) {
        if ( (rubrique == null) || ( sous_rubrique == null) )  return '';
        rubrique        = _traite_chaine(rubrique,_TAILLE_MAX_ALPHANUM_);
        sous_rubrique   = _traite_chaine(sous_rubrique,_TAILLE_MAX_ALPHANUM_);
        if ( type == 'groupe' ) {
                return "&WRP_SECTION_GRP="+rubrique+"&WRP_SUBSECTION_GRP="+sous_rubrique;
        }
        else {
                return "&WRP_SECTION="+rubrique+"&WRP_SUBSECTION="+sous_rubrique;
        }
}


function _get_webo_arg ( _WEBOID,_ACC,_WEBOID2 ) {
        var wbs_da=new Date();
        wbs_da=parseInt(wbs_da.getTime()/1000 - 60*wbs_da.getTimezoneOffset());
        var wbs_ref=''+escape(document.referrer);
        var wbs_ta='0x0';
        var wbs_co=0;
        var wbs_nav=navigator.appName;
        var wbs_pfl = escape(recup_param_profil());
        if (parseInt(navigator.appVersion)>=4) {
                wbs_ta=screen.width+"x"+screen.height;
                wbs_co=(wbs_nav!="Netscape")?screen.colorDepth:screen.pixelDepth;
        }
        if((_ACC != null)&&(wbs_nav!="Netscape")) {
                var reftmp = 'parent.document.referrer';
                if((_ACC<5)&&(_ACC>0)) {
                        for(_k=_ACC;_k>1;_k--) reftmp = 'parent.' + reftmp;
                }
                var mon_ref = eval(reftmp);             
                if(document.referrer == parent.location || document.referrer=='') wbs_ref=''+escape(mon_ref)
        }
        var wbs_arg = "/fcgi-bin/comptage_wreport.fcgi?WRP_ID="+_WEBOID;
        if ( location.protocol == 'https:'){
                wbs_arg = "https://ssl.weborama.fr" + wbs_arg;
        }
        else {
                wbs_arg = "http://wreport.weborama.fr" + wbs_arg;
        }
        wbs_arg+="&WRP_PFL="+wbs_pfl;
        var wbo1_is_mac=(wf_uaO('mac')!=-1);
        var wbo1_is_opera=(wf_uaO('opera')!=-1);
        if((!wbo1_is_mac)&&(!wbo1_is_opera)) {
                var msieind=navigator.userAgent.indexOf('MSIE');
                if(msieind>0) {
                        if(parseInt(navigator.userAgent.charAt(msieind+5))>=5) {
                                document.body.addBehavior("#default#clientCaps");
                                var _webo_cnx = (document.body.connectionType == 'modem') ? 'A':'B';
                                document.body.addBehavior("#default#homePage");
                                var _webo_home = (document.body.isHomePage(location.href)) ? 'A':'B';
                                wbs_arg+="&CONN="+_webo_cnx+"&ISHOME="+_webo_home; 
                        }
                }
        }
        if(_WEBOID2 != null) wbs_arg+="&WRP_ID_GRP="+_WEBOID2;
        if(WEBO_ALPHANUM.length) wbs_arg+=WEBO_ALPHANUM;
        if(WEBO_CONTENU_ARG.length) wbs_arg+="&WRP_CONTENT="+WEBO_CONTENU_ARG;
        if(WEBO_CHAINE_ARG.length) wbs_arg+="&WRP_CHANNEL="+WEBO_CHAINE_ARG;     
        wbs_arg+="&ver=2&da2="+wbs_da+"&ta="+wbs_ta+"&co="+wbs_co+"&ref="+wbs_ref;

        return wbs_arg;
}


function _webo_affiche (wbs_arg) {
        if (_DEBUG_) { document.write('\n<br><b>WEBOSCOPE : </b><i>'+wbs_arg+'</i><br>\n'); return false; }
        var webo_compteur = new Image(1,1);
        webo_compteur.src=wbs_arg;
        return true;
}


/* ------------------ Publiques ------------------------- */
function ajout_webo_contenu (chaine) {
        if (chaine == null) return 0;
        _NB_CONTENUS_++;
        if ( _NB_CONTENUS_ > _NB_MAX_CONTENU_ ) return 0;
        if ( _NB_CONTENUS_ > 1 ) WEBO_CONTENU_ARG = WEBO_CONTENU_ARG.concat('|');
        chaine = chaine.replace('|',' ');
        WEBO_CONTENU_ARG = WEBO_CONTENU_ARG.concat(_traite_chaine(chaine,_TAILLE_MAX_CONTENU_));
        return 1;
}


function ajout_webo_chaine (chaine) {
        if (chaine == null) return 0;
        WEBO_CHAINE_ARG = _traite_chaine(chaine,_TAILLE_MAX_CHAINE_);
        return 1;
}


function wreport_groupe (_WEBO_RUBRIQUE,_WEBO_SOUS_RUBRIQUE,_WEBOID,_WEBO_RUBRIQUE_GROUPE,_WEBO_SOUS_RUBRIQUE_GROUPE,_ACC,_WEBO_CONTENU,_WEBO_CHAINE) {
        WEBO_ALPHANUM  = _traite_alphanum ( _WEBO_RUBRIQUE, _WEBO_SOUS_RUBRIQUE, '' );
        WEBO_ALPHANUM += _traite_alphanum ( _WEBO_RUBRIQUE_GROUPE, _WEBO_SOUS_RUBRIQUE_GROUPE, 'groupe' );
	_NB_CONTENUS_ = 0;
        ajout_webo_contenu(_WEBO_CONTENU);
        ajout_webo_chaine(_WEBO_CHAINE);
        var mes_wbs_arg = _get_webo_arg (_WEBOID,_ACC,WEBO_ID_GROUPE);
        _webo_affiche (mes_wbs_arg);
}


function wreport (_WEBO_RUBRIQUE,_WEBO_SOUS_RUBRIQUE,_WEBOID,_ACC,_WEBO_CONTENU,_WEBO_CHAINE) {
        WEBO_ALPHANUM = _traite_alphanum ( _WEBO_RUBRIQUE, _WEBO_SOUS_RUBRIQUE, '' );
        _NB_CONTENUS_ = 0;
        ajout_webo_contenu(_WEBO_CONTENU);
        ajout_webo_chaine(_WEBO_CHAINE);
        var mes_wbs_arg = _get_webo_arg (_WEBOID,_ACC);
        _webo_affiche (mes_wbs_arg);
}


/* ------------------ Indice de chargment --------------- */
wreport_ok      = 1;
