//Init globale variables
_ie=(document.all!=null)?true:false;				// Browser is Internet Explorer
_dtd4=!_ie||(document.compatMode!='BackCompat'); 	// Browser is compatible HTML 4.0 Strict
_dom=(document.getElementById!=null)?true:false; 	// has DOM functions
_moz=_dom&&!_ie ;									// Is mozilla or Firefox
_show='visible';
_hide='hidden';
_hand=_ie?"hand":"pointer";
_appVer=navigator.appVersion.toLowerCase();
_mac=(_appVer.indexOf('macintosh')>=0)||(_appVer.indexOf('macos')>=0);
_userAgent=navigator.userAgent?navigator.userAgent.toLowerCase():null;
_saf=_moz&&_mac&&(_userAgent.indexOf("safari")>=0);	// Browser is Safari
_ctrl=0;
_shift=1;
_alt=2;
_ie6 = _ie&&(_appVer.indexOf("msie 5")<0);
_ie7 = _ie6&&(_appVer.indexOf("msie 6")<0);

function isValid(field) {
	if (field.value == '') {
		var label = document.getElementById("lbl" + field.name).innerHTML;
		if (label && label.length > 0) {
			label = label.substring(0, label.length-1);
		}
		alert("La saisie du champ '" + label + "' est obligatoire");
		field.focus();
		return false;
	}
	return true;
}

function checkFieldValue(field) {
	if (!checkPseudo(field.value)) {
		field.focus();
		return false;
	}
	return true;
}

function checkPseudo(str) {
	if (str != null) {
		var len = str.length;
		for (var i=0; i<len; i++) {
			var c = str.charAt(i);
			if (c == '<' || c == '>' || c == '"' || c == '\'' || c == '?' || c == '\\' || c == '*' || c == '$' || c == '(' || c == ')') {
				alert('Les caractères < > \\ " \' $ ? * ( ) ne sont pas autorisés.');
				return false;
			}
		}
	}
	return true;
}

function formatDate(date,format) {
    format=format+"";
    var result="";
    var i_format=0;
    var c="";
    var token="";
    var y=date.getYear()+"";
    var M=date.getMonth()+1;
    var d=date.getDate();
    var E=date.getDay();
    var H=date.getHours();
    var m=date.getMinutes();
    var s=date.getSeconds();
    var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;
    // Convert real date parts into formatted versions
    var value=new Object();
    if (y.length < 4) {y=""+(y-0+1900);}
    value["y"]=""+y;
    value["yyyy"]=y;
    value["yy"]=y.substring(2,4);
    value["M"]=M;
    value["MM"]=LZ(M);
    //value["MMM"]=arrMonthNames[M-1];
    //value["NNN"]=arrMonthNames[M+11];
    value["d"]=d;
    value["dd"]=LZ(d);
    //value["E"]=arrDayNames[E+7];
    //value["EE"]=arrDayNames[E];
    value["H"]=H;
    value["HH"]=LZ(H);
    if (H==0){value["h"]=12;}
    else if (H>12){value["h"]=H-12;}
    else {value["h"]=H;}
    value["hh"]=LZ(value["h"]);
    if (H>11){value["K"]=H-12;} else {value["K"]=H;}
    value["k"]=H+1;
    value["KK"]=LZ(value["K"]);
    value["kk"]=LZ(value["k"]);
    if (H > 11) { value["a"]="PM"; }
    else { value["a"]="AM"; }
    value["m"]=m;
    value["mm"]=LZ(m);
    value["s"]=s;
    value["ss"]=LZ(s);
    while (i_format < format.length) {
        c=format.charAt(i_format);
        token="";
        while ((format.charAt(i_format)==c) && (i_format < format.length)) {
            token += format.charAt(i_format++);
        }
        if (value[token] != null) { result=result + value[token]; }
        else { result=result + token; }
     }
     return result;
}

function LZ(x) {
    return(x<0||x>9?"":"0")+x
}

function sendAjaxRequest(url, cbFunction, bAsync) {
	bAsync = (bAsync == null) ? true : bAsync;
	
    var xhr=null;
    if (window.XMLHttpRequest) {
        xhr = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) 
    {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    
    xhr.onreadystatechange = function() {
    	if (xhr.readyState == 4) { 
			cbFunction(xhr.responseText);
    	}
    }
    
    xhr.open("GET", url, bAsync);
    xhr.send(null);
}

function getServerTime(ds) {
	var arr = ds.split('-');
	var dt = new Date(arr[0], arr[1]-1, arr[2], arr[3], arr[4], arr[5]);
	return dt.getTime();
}

function getQueryParamValue(strQueryString, strParamName)
{
	var strRet = "";
	if (strQueryString != null)
	{
		var arrQueryParam = strQueryString.split('&');
		for (var i=0;i<arrQueryParam.length;i++)
		{
			var strName = arrQueryParam[i];
			var strValue = "";
			var iPos = arrQueryParam[i].indexOf('=');
			if (iPos>=0)
			{
				strName = arrQueryParam[i].substring(0, iPos);
				strValue = arrQueryParam[i].substring(iPos + 1);
			}
			if (strParamName == strName)
			{
				strRet = strValue;
				break;
			}
		}
	}
	return strRet;
}

function startsWithIgnoreCase(strString, strToFind)
{
	var blnRet = false;
	if (strToFind != null)
	{
		var strVar = strString.substring(0, strToFind.length);
		if (strVar.toLowerCase() == strToFind.toLowerCase())
			blnRet = true;
	}
	return blnRet;
}

function endsWithIgnoreCase(strString, strToFind)
{
	var blnRet = false;
	if (strToFind != null)
	{
		var iRight = strString.length- strToFind.length;
		if (iRight >= 0)
		{
			var strVar = strString.substring(iRight);
			if (strVar.toLowerCase() == strToFind.toLowerCase())
				blnRet = true;
		}
	}
	return blnRet;
}

function getAttribValue(container, attribute)
{
	var ret = '';
	var el = document.getElementById(container);						
	if (el && el.childNodes.length > 0) {
		var tb = null;
		for (var i=0; i<el.childNodes.length; i++) {
			var n = el.childNodes[i];
			if (n.tagName && n.tagName == "TABLE") {
				tb = n;
				break;
			}
		}
		if (tb != null) {				
			var ret = tb.getAttribute(attribute);
		}
	}
	return ret;
}

function escapeHTML(text) {
	var s = '';
	if (text != null && text != '') {
		for (var i=0; i < text.length; i++) {
			var c = text.charAt(i);
			if (c == '<') {
				s += '&lt;';
			}
			else if (c == '>') {
				s += '&gt;'
			}
			else {
				s += c;
			}
		}
	}
	return s;
}
