if( "undefined" == typeof __)
{
    __ = function(idname)
    {
        return document.getElementById(idname);
    }
}

/*Ecriture dans un div*/
function writediv(idName, txtHtml)
{
	d = document.getElementById(idName);
	
	try{
		d.innerHTML=txtHtml;
	}catch(error){
		detailError(error);
	}
	
	// forcer l'executtion des script si présents
	var AllScripts=d.getElementsByTagName('script');
	for (var i=0; i<AllScripts.length; i++){
//for(var x in AllScripts[i]) alert(x);
	var s=AllScripts[i];
	if (s.src && s.src!="") {
		// Précédement asynchrone, mis en synchrone pour éviter des problèmes de dépendances de scripts
		eval(getFileContent(s.src));
	 }
	 else if(s.text && s.text!=""){
	    eval(s.text);
	 }else{
		eval(s.innerHTML);
	 }
  }
}

function writeOptions(select,xml,protege)
{
    if(xml == null) return;
    var options = xml.getElementsByTagName("option");
    var elt,selected;
    var select = __(select);
    try
    {
        while(select.length > protege)
            select.remove(protege);
        for(var i = 0; i < options.length; i++)
        {
            elt =  document.createElement("option");
            select.appendChild(elt);
            elt.setAttribute("value",options[i].getAttribute("value"));
            selected    = options[i].getAttribute("selected");
            if(selected != null)
            {
                elt.setAttribute("selected","selected");
            }
            elt.text    = options[i].firstChild.data;           
        }
    }
    catch(e)
    {
        alert(e);
    }        
}

function detailError(a){
	if(typeof a=="string"){
		d=a+"\n string"
	}else{
		for(var e in a){
			try{
				d += e + ": " + a[e] + "\n"
			}catch(f){}
		}
	}
	alert(a);
}


    /*
        procedures d'appel générique ajax
    
        - ajaxGetObject    
        - ajaxSyncPOST  a faire
        - ajaxASyncPOST a faire
        - ajaxSyncGET
        - ajaxSyncGETXML
        - ajaxASyncGET a faire
    */
    function ajaxGetObject()
    {
        if("undefined" != typeof XMLHttpRequest)
        {
            return new XMLHttpRequest();
        }
        else if("undefined" != typeof ActiveXObject)
        {
            try
            {
                return new ActiveXObjet("Msxml2.XMLHTTP.4.0");
            }
            catch(e)
            {
                try
                {
                    return new ActiveXObject("Msxml2.XMLHTTP");
                }
                catch(e2)
                {
                    return new ActiveXObject("Microsoft.XMLHTTP");
                }
            }
        }
        else if(window.createRequest)
        {
            return window.createRequest();
        }
        return null;
    }
    
    function ajaxSyncGET(url)
    {
        var xhr = null;
        
//        if(window.XMLHttpRequest)       // pour firefox
//            xhr = new XMLHttpRequest();
//        else if(window.ActiveXObject)   // pour IE
//            xhr = new ActiveXObject("Microsoft.XMLHTTP");
//           else
//        return "";
        
        xhr = ajaxGetObject();
        if(xhr)
        {
            xhr.open("GET",url,false);
            xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); 
            xhr.send(null);
            return xhr.responseText;
        }
        
        return "";
    }

    function ajaxSyncGETXML(url,debug)
    {
        var xhr = null;
        
        xhr = ajaxGetObject();
        if(xhr)
        {
            xhr.open("GET",url,false);
            xhr.send(null);

            if("undefined" != typeof debug)
                alert("1-->"+xhr.responseText);
                
            return xhr.responseXML;
        }
        
        return "";
    }

/*
    fonctions utilitaires pour les select
*/
    function onChangeXMLPays(idpays,idprovinces,protege)
    {
        writeOptions(idprovinces,ajaxSyncGETXML("ajax_provinces_selectxml.php?idpays="+idpays),protege)
    }
    
/*
    fonction utilitaires pour les vérifications de formulaires
*/    
    
function verifier_entierNonSigne(value)
{
    var exp = new RegExp("^[0-9]+$")
    return exp.test(value);
}
function verifier_entiersigne(value)
{
    var exp = new RegExp("^[+-]?[0-9]+$")
    return exp.test(value);
}
function verifier_flottant(value)
{
    value = value.replace(",",".");
    var exp = new RegExp("^[+-]?[0-9]+((\.)?[0-9]+)?$");//[0-9]+$"); //*([0-9]{1}(\.[0-9]+)?)$");
    return exp.test(value);
}

function verifier_date(value)
{
    var exp = new RegExp("^([0-9]){2}/([0-9]){2}/([0-9]){4}$");
    if(exp.test(value))
    {
        var jour,mois,annee;
        var maxJours = Array(31,28,31,30,31,30,31,31,30,31,30,31);
        jour = parseInt(value.substring(0,2));
        mois = parseInt(value.substring(3,5));
        annee = parseInt(value.substring(6,10));

        if(mois > 12 || mois < 1) return false;
        if(mois == 2 && (annee % 4) == 0 && (annee % 400) != 0)
            maxJours[1]++;
        return (maxJours[mois-1] >= jour);
    }
    return false;
}


function champEntree(obj)
{
    obj.style.backgroundColor = "#ffffff";
}

function champErreur(obj)
{
    obj.style.backgroundColor = "#e52121";
    obj.onfocus = function() { this.style.backgroundColor="#ffffff";}
}

function verifierEmail(email)
{
    var exp = new RegExp("^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$");
    return exp.test(email);
}

function formatMontant(value,decimales)
{
    var i,retCode="";
    value = value.toString();
    for(i=0;i<value.length;i++)
    {
        retCode += value.charAt(i);
        if(value.charAt(i) == ".")
        {
            i++;
            break;
        }
    }
    if(i >= value.length) retCode += ".";
    for(var j=0;j<decimales;j++,i++)
    {
        if(i < value.length)
            retCode += value.charAt(i);
        else
            retCode += "0";
    }
    return retCode;
}
