function getXmlHttpRequest(){
	
	var httpRequest = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        httpRequest = new XMLHttpRequest();
        if (httpRequest.overrideMimeType) {
            //httpRequest.overrideMimeType('text/xml');
  			httpRequest.overrideMimeType("text/html");
        }
    }
    else if (window.ActiveXObject) { // IE
        try {
            httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {}
        }
    }

    if (!httpRequest) {
        alert("Your navigator doesn't handle AJAX, please use Internet explorer, Safari or firefox");
        return false;
    }
    
    return httpRequest;

}

function ref(instance_or_id){
	return(typeof(instance_or_id)=="string")?document.getElementById(instance_or_id):instance_or_id;
}
function _getId(id){
	return document.getElementById(id);
}
function addEvent(obj,evType,fn,capt)
{
	if(obj.addEventListener){obj.addEventListener(evType,fn,capt);return true;} // NS6+
	else if(obj.attachEvent)obj.attachEvent("on"+evType,fn) // IE 5+
	else {return false;}
}
function showDiv(divName)
{
	var tempDiv=ref(divName);
	if(!tempDiv){return;}
	if(hasClass(tempDiv,"wasinline")){
		tempDiv.style.display="inline";
		removeClass(tempDiv,"wasinline");
	}else if(hasClass(tempDiv,"wasblock")){
		tempDiv.style.display="block";
		removeClass(tempDiv,"block");
	}else{
		tempDiv.style.display=getDisplayStyleByTagName(tempDiv);
	}
}
function hideDiv(divName)
{
	var tempDiv=ref(divName);
	if(!tempDiv){return;}
	if(tempDiv.style.display=="inline"){
		addClass(tempDiv,"wasinline");
	}else if(tempDiv.style.display=="block"){
		addClass(tempDiv,"wasblock");
	}
	tempDiv.style.display="none";
}
function setInnerHTML(div_id,value){
	var dstDiv=_getId(div_id);
	dstDiv.innerHTML=value;
}
function replaceContent(idContent, idContainer) {
	if (!_getId(idContent)) return false;
	var divContent = _getId(idContent);
	var divContainer = _getId(idContainer);
	divContainer.style.display = 'block';
	setInnerHTML(idContainer, divContent.innerHTML);
}
function getDisplayStyleByTagName(o){
	var n=o.nodeName.toLowerCase();
	return(n=="span"||n=="img"||n=="a")?"inline":(n=='tr'||n=='td'?"":"block");
}
function toggleClass(element,className){
	var e=ref(element);
	if(!e)return;
	if(hasClass(e,className)){
		removeClass(e,className);
	}else{
		addClass(e,className);
	}
}
function changeClass(id, classe) {
	var div = _getId(id);
	div.className= classe;
} 
function hasClass(element,_className){
	if(!element){
		return;
	}
	var upperClass=_className.toUpperCase();
	if(element.className){
		var classes=element.className.split(' ');
		for(var i=0;i<classes.length;i++){
			if(classes[i].toUpperCase()==upperClass){
				return true;
			}
		}
	}
	return false;
}
function addClass(element,_class){
	if(!hasClass(element,_class)){
		element.className+=element.className?(" "+_class):_class;
	}
}
function getClassList(element){
	if(element.className){
		return element.className.split(' ');
	}else{
		return[];
	}
}
function removeClass(element,_class){
	var upperClass=_class.toUpperCase();
	var remainingClasses=[];
	if(element.className){
		var classes=element.className.split(' ');
		for(var i=0;i<classes.length;i++){
			if(classes[i].toUpperCase()!=upperClass){
				remainingClasses[remainingClasses.length]=classes[i];
			}
		}
		element.className=remainingClasses.join(' ');
	}
}
function cbUnSwitchAll(id) {
	var inputs = document.getElementsByTagName('input');
	var input;
	for (i = 0; i < inputs.length; i++) {
		input = inputs[i];
		if (input.type == 'checkbox' && input.id.substr(0, id.length) == id) {
			removeClass(input.parentNode.parentNode,'checked');
			input.checked = false;
		}
	}
}
function cbSwitchAll(id, value) {
	var inputs = document.getElementsByTagName('input');
	var input;
	for (i = 0; i < inputs.length; i++) {
		input = inputs[i];
		if (input.type == 'checkbox' && input.id.substr(0, id.length) == id) {
			if (input.checked) {
				removeClass(input.parentNode.parentNode,'checked');
				input.checked = false;
			} else {
				addClass(input.parentNode.parentNode,'checked');
				input.checked = true;
			}
		}
	}
}
function cbSwitch(id) {	
	var inputs = document.getElementsByTagName('input');
	var input;
	for (i = 0; i < inputs.length; i++) {
		input = inputs[i];
		if (input.type == 'checkbox' && input.id.substr(0, id.length) == id) {			
			if (input.checked) {
				removeClass(input.parentNode.parentNode,'checked');
				input.checked = false;
			} else {
				addClass(input.parentNode.parentNode,'checked');
				input.checked = true;
			}
		}
	}
}
function urlEncodeDict(dict){
	var result="";
	for(var i=0;i<dict.length;i++){
	result+="&"+encodeURIComponent(dict[i].name)+"="+encodeURIComponent(dict[i].value);
	}
	return result;
}
function postFormByForm(form,async,successCallback){
	var formVars=new Array();
	for(var i=0;i<form.elements.length;i++)	{
		var formElement=form.elements[i];
		/// Special handling for checkboxes and radios(we need an array of selected checkboxes..)!
		if((formElement.type=='radio'||formElement.type=='checkbox')&&!formElement.checked){
			continue;
		}
		var v=new Object;
		v.name=formElement.name;
		v.value=formElement.value;
		formVars.push(v);
	}
	postUrl(form.action,urlEncodeDict(formVars),async,execOnSuccess(successCallback));
}
function postUrl(url,data,async,stateChangeCallback){
	var xmlHttpReq=getXmlHttpRequest();
	if(!xmlHttpReq)
		return;
	xmlHttpReq.open("POST",url,async);
	xmlHttpReq.onreadystatechange=function() {
		stateChangeCallback(xmlHttpReq);
	};
	xmlHttpReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xmlHttpReq.send(data);
}
function execOnSuccess(stateChangeCallback,opt_successCallback,opt_divId){
	return function(xmlHttpReq)	{
		if(xmlHttpReq.readyState==4&&xmlHttpReq.status==200){
			if(opt_divId){
				stateChangeCallback(xmlHttpReq,opt_successCallback,opt_divId);
			}else{
				stateChangeCallback(xmlHttpReq,opt_successCallback);
			}
		}
	};
}  
function verifCheckbox(form) {
    var myCB = form.getElementsByTagName("input")
  	for (var i=0; i<=myCB.length-1; i++) {
    	if (myCB[i].type.toLowerCase()=="checkbox"){
		    if(myCB[i].checked)
		    	return true;
    	}
  	}
    return false;
}
function verifEmptyForm(form) {
    var myText = form.getElementsByTagName("input")
  	for (var i=0; i<=myText.length-1; i++) {
    	if (myText[i].type.toLowerCase()=="text"){
		    if(myText[i].value==null)
		    	return false;
    	}
  	}
    return true;
}
function postDl_js(form_id){
	var form = document.forms[form_id];
	form.dl_button.value = "wait_during_traitment";
	if(dlValidator(form)){
		form.dl_button.value = "ok";
		form.dl_button.disabled=true;
	}
}
function dlValidator(form){
	if(!verifCheckbox(form))	{
		alert("empty");
		return false;
	}
	showLoading("containerDl");
	postFormByForm(form,true,dlResponse);
	return true;
}
function dlResponse(xmlHttpRequest) {
	divReplace = _getId('containerDl');
	divReplace.style.display = 'block';
	divReplace.innerHTML=xmlHttpRequest.responseText;
}
function showLoading(div_id){
	var temp_HTML='<table width="100%" height="100%"><tr><td align="center" valign="center"><img src="/img/loadingAnimation.gif"></td></tr></table>';
	//var temp_HTML='<center><img src=/img/loadingAnimation.gif><center>';
	_getId(div_id).style.display = 'block';
	_getId(div_id).innerHTML=temp_HTML;
	document.body.focus();
}