function AddSelectOption(selectObj, text, value, isSelected)
{
    if (selectObj != null && selectObj.options != null)
    {
        selectObj.options[selectObj.options.length] =
            new Option(text, value, false, isSelected);
    }
}

function Dvb_Load_Agence(f, sTarget)
{
    nSel = f.selectedIndex;
    nIdDistri = f.options[nSel].value;
    //alert(f.options[nSel].text);
    s = sTarget+'_nIdAgence';
    fAgence = $(s);
    fAgence.options.length=0;
    AddSelectOption(fAgence, "---", "NONE", true);

    for (nIdAgence in dAgence[nIdDistri])
    {
        AddSelectOption(fAgence, dAgence[nIdDistri][nIdAgence], nIdAgence, false);
    }
}
function h_submit_bilant2(event)
{
    if (event != null)
    {
        event.preventDefault();
        frm = event.target;
    }
    else
        frm = $('frm_FRM_bilant2');

    /*
     * Validation des éléments du formulaire
     */

    var sErrMsg = '';

     if (frm.bilant2_sIdStation.value=='')
        sErrMsg += "Vous devez indiquer une station météo de référence en cliquant sur la carte.\n";

     if (frm.bilant2_nAltitude.value=='')
        sErrMsg += "l'altitude doit etre renseignée.\n";
     if (frm.bilant2_sTempExpo.value=='')
        sErrMsg += "l'ensoleillement doit etre renseigné.\n";
     if (frm.bilant2_nSurface.value<10)
        sErrMsg += "La surface doit etre renseignée et supérieur à 10 mètres carré.\n";
     if (frm.bilant2_nVolume.value<10)
        sErrMsg += "La surface doit etre renseignée et supérieur à 10 mètres cube.\n";

     if (       (frm.bilant2_sTemperatureObjectif.value== '')
            ||  (frm.bilant2_sTempBainEnd.value== '---')
            ||  (frm.bilant2_sTempBainStart.value== '---')
        )
        sErrMsg += "La rubrique Mon besoin doit être complètement renseignée.\n";

     if (       (frm.bilant2_sPiscineDebordement.value== '---')
            ||  (frm.bilant2_sProtectionThermique.value== '---')
            ||  (frm.bilant2_sPiscinePrivee.value== '---')
            ||  (frm.bilant2_sTypeLocal.value== '---')
            ||  (frm.bilant2_sDistanceLocal.value== '')
        )
        sErrMsg += "La rubrique Mon installation doit être complètement renseignée.\n";

     if (       (frm.bilant2_sNameBilant.value== '')
            ||  (frm.bilant2_sAdresseBilant.value== '')
            ||  (frm.bilant2_sZipBilant.value== '')
            ||  (frm.bilant2_sCityBilant.value== '')
            ||  (frm.bilant2_sPhoneBilant.value== '')
            ||  (frm.bilant2_sEmailBilant.value== '')
        )
        sErrMsg += "La rubrique Mes coordonnées doit être complètement renseignée.\n";

     if (sErrMsg != '')
     {
         alert(sErrMsg);
         return;
     }

    /*
     * preparation de la requete
     */

    dQuery = $H({
        'f': 'bilant2'
    });
    tinput = Form.getElements(frm);
    s = dQuery.keys().join();
    var sQuery = '';
    tinput.map(function(e){
       dQuery.set(e.name, e.value);
       sQuery = sQuery + e.name + "=" + e.value+ "&";
    });

    /*
     * envoie de la requete non Ajax
     */

     document.location = dvb.kHttp_Script+"?"+sQuery;
     return;

    /*
     * soumission en Ajax : OBSOLETE à cause des pb de navigation BACK par la suite
     */

    new Ajax.Request(dvb.kHttp_Script, {
            method: 'get',
            parameters: dQuery,
            encoding : 'iso-8859-1',
            onSuccess: function(xrq) {
                    $('bilant2').innerHTML = xrq.responseText;
                    $('bilant2').show();
                    frm.hide();
                    window.scrollTo(0,0);

            },
            onFailure:function() {
                    alert('echec');
            },
            onCreate: function(){
                    try {
                            Element.show('systemWorking');
                    }catch(e){}
            },
            onComplete: function() {
                    try {
                            if(Ajax.activeRequestCount == 1)
                                    Element.hide('systemWorking');
                    }catch(e){}

            }
    });


}

function Init_Bilant()
{
    Event.observe(window, 'load', function(){
        if ($('frm_FRM_bilant2'))
        {
            frm = $('frm_FRM_bilant2');
            frm.observe('submit', h_submit_bilant2);
        }
        //h_submit_bilant2(null);
    });

}

function Dvb_Station(x, y)
{
    dQuery = {};
    frm = $('frm_FRM_bilant2');
    dQuery['pgl'] = 'Ajax/Station';
    dQuery['x'] = x;
    dQuery['y'] = y;
    dQuery['h'] = frm.bilant2_nAltitude.value;

    new Ajax.Request(dvb.kHttp_Script, {
            method: 'get',
            parameters: dQuery,
            onSuccess: function(xrq) {
                    var sRet;
                    sRet = Extract_tag('tempsaison', xrq.responseText);
                    sRet = Extract_tag('station', xrq.responseText);
                    frm.bilant2_sIdStation.value = sRet;
                    sRet = Extract_tag('altitude', xrq.responseText);
            },
            onFailure:function() {
                    alert('echec');
            },
            onCreate: function(){
                    try {
                            Element.show('systemWorking');
                    }catch(e){}
            },
            onComplete: function() {
                    try {
                            if(Ajax.activeRequestCount == 1)
                                    Element.hide('systemWorking');
                    }catch(e){}

            }
	});
}

function Decode_tag(s)
{
	s = decodeURIComponent( escape( s));
	s = s.unescapeHTML();
	var reg=new RegExp("(\\\\n)", 'g');
	s = s.replace(reg, "\n");
	// remplacement des caractères ci dessous pour imcompatibilité entre mozilla et ie,chrome
//	s = s.replace(/&quot;/g,'"');
//	s = s.replace(/&nbsp;/g,' ');
//	s = s.replace(/&#039;/g,"'"); // 39 27
//	s = s.replace(/&lt;/g,'<'); // 60 3C
//	s = s.replace(/&gt;/g,'>'); // 62 3E

	s = s.replace(/&nbsp;/g,' ');
	s = s.replace(/&#039;/g,"'"); // 39 27
	s = s.replace(/&quot;/g,'"'); // 34 22
	s = s.replace(/&amp;/g,'&'); // 38 26
	s = s.replace(/'/g,"'"); // 39 27
	s = s.replace(/&lt;/g,'<'); // 60 3C
	s = s.replace(/&gt;/g,'>'); // 62 3E
        return s;
}

function Extract_tag(sTag, s)
{
    var sRet = null;
    var sBalise1 = "<dvb_"+sTag+">";
    var sBalise2 = "</dvb_"+sTag+">";
    var nIndex1 = s.indexOf(sBalise1);
    var nIndex2 = s.indexOf(sBalise2);
    //alert(nIndex1+"/"+nIndex2);
    if ( (nIndex1 != -1) && (nIndex2 != -1))
    {
       sRet = s.substring(nIndex1+strlen(sTag)+6, nIndex2);
        sRet = Decode_tag(sRet);
    }
    if (sRet != null)
        $(sTag).innerHTML = sRet;
   return sRet;
}

function Dvb_Station_Map(event)
{
    /*
     * attention ne marche pas en mode debug sous ie si la fenetre est trop élagie
     */
    objname = 'map_fr';
    elt = $(objname);
    var pos_x = Event.pointerX(event)-Position.page(elt)[0]-document.documentElement.scrollLeft;
    var pos_y = Event.pointerY(event)-Position.page(elt)[1]-document.documentElement.scrollTop;
    div_station = $('station');
    Dvb_Station(pos_x, pos_y);
}


function test(event)
{
    objname = 'map_fr';
    elt = $(objname);
    var eX = Position.page(elt)[0];// + (parseInt(elt.getStyle('width')) / 2);
    var eY = Position.page(elt)[1];// + (parseInt(elt.getStyle('height')) / 2);
    pos_x = Event.pointerX(event);
    pos_y =  Event.pointerY(event);
    var x = pos_x-eX;
    alert(pos_x+'/'+eX+'/'+(x)+"/"+ document.documentElement.scrollLeft);
}
