// JavaScript Document
function doAction(form, action, message){
  if (message != null){
	 setMessageSablier(message);
  }
  if (form != null)
  {
  	if (action != null)
		form.action = action;
	if (form.action != null){
		sablier();
		form.submit();
	}
  } else {
    if (message == null)
  	  sablier();
  	//document.URL = action;
  	document.location.href=action;
  }
}

function fDomOffset(oObj, sProp) {
	var iVal = 0;
	while (oObj && oObj.tagName != 'BODY') {
 		eval('iVal += oObj.' + sProp + ';');
 		oObj = oObj.offsetParent;
	}
	return iVal;
}

// Masque / Affiche les combobox en dessous du div 'sId'
function fSwapSelect(sId) {
	oObj = document.getElementById(sId);
	Top_Element  = fDomOffset(oObj, 'offsetTop');
	Left_Element  = fDomOffset(oObj, 'offsetLeft');
	Largeur_Element  = oObj.offsetWidth;
	Hauteur_Element  = oObj.offsetHeight;
	//alert('Top_Element: ' + Top_Element + ',' + 'Left_Element: ' + Left_Element + ',' + 'Largeur_Element: ' + Largeur_Element + ',' + 'Hauteur_Element: ' + Hauteur_Element );
	oSelects = document.getElementsByTagName('SELECT');
	if (oSelects.length > 0) {
		for (i = 0; i < oSelects.length; i++) {
			oSlt = oSelects[i];
			Top_Select = fDomOffset(oSlt, 'offsetTop');
			Left_Select = fDomOffset(oSlt, 'offsetLeft');
			Largeur_Select = oSlt.offsetWidth;
			Hauteur_Select = oSlt.offsetHeight;
			//alert('Top_Select: ' + Top_Select + ',' + 'Left_Select: ' + Left_Select + ',' + 'Largeur_Select: ' + Largeur_Select + ',' + 'Hauteur_Select: ' + Hauteur_Select );
			isLeft = false;
			if ((Left_Element > (Left_Select - Largeur_Element)) && (Left_Element < (Left_Select + Largeur_Select))) { 
				isLeft = true;
			}
			isTop = false;
			if ((Top_Element > (Top_Select - Hauteur_Element)) && (Top_Element < (Top_Select + Hauteur_Select))) { 
				isTop = true;
			}
			if (isLeft && isTop) {
				sVis = (oObj.style.visibility == 'hidden') ? 'visible' : 'hidden';
				if (oSlt.style.visibility != sVis) {
					oSlt.style.visibility = sVis;
				}
			} else {
				if (oSlt.style.visibility != 'visible') {
					oSlt.style.visibility = 'visible';
				}
			}
		}
	}
}

function cacherSablier() {
	var layer = document.getElementById('layerSablier');
	var layerSablierTable= document.getElementById('layerSablierTable');
	var div_menu= document.getElementById('menu');
		
	layer.style.visibility='hidden';
	layerSablierTable.style.visibility='hidden';
	// Affiche les combobox en dessous
	
	if(div_menu!=null)div_menu.style.visibility="visible";
			
	fSwapSelect('layerSablierTable');
	
	// Affiche les images flash de l'accueil
	oSelect = document.getElementById('flash');
	if (oSelect!=null) {
		oSelect.style.visibility = 'visible';
	}
}

function sablier(){
	// DESACTIVER LA GESTION DES TOUCHES
	document.onkeydown = null;
	// AFFICHER LE MASQUE d'ATTENTE

	var layer = document.getElementById('layerSablier');
	var layerSablierTxt= document.getElementById('layerSablierTxt');
	var layerSablierTable= document.getElementById('layerSablierTable');
	var div_menu= document.getElementById('menu');
	var width=300;
	var height=100;

	if (layer != null) {
	    var posX = (document.body.clientWidth - width)/2;
	    var posY = (document.body.clientHeight - height)/2-100;
	
		layer.style.left = 0;
		layer.style.top = 0; 
		layer.style.width =  document.body.clientWidth; //document.body.scrollLeft + document.body.clientWidth;
		layer.style.height = document.body.clientHeight; //document.body.scrollTop + document.body.clientHeight;
		// AJout pour positionement en haut

		document.body.scrollLeft = 0;
		document.body.scrollTop = 0;
		layer.style.visibility='visible';
		layer.style.opacity='.45';
		layer.style.filter="alpha(opacity=45)";
		layerSablierTxt.style.opacity='1';
		layerSablierTxt.style.filter="alpha(opacity=100)";
		layerSablierTable.style.opacity='1';
		layerSablierTable.style.left=posX+"px";
		layerSablierTable.style.top=posY+"px";
		layerSablierTable.style.visibility='visible';
		layerSablierTable.style.filter="alpha(opacity=100)";

		if(div_menu!=null)div_menu.style.visibility="hidden";

		
		layer.style.backgroundColor='#FFFFFF';
		// Masque les combobox en dessous
		fSwapSelect('layerSablierTable');
		oSelect = document.getElementById('flash');
		if (oSelect != null) {
			oSelect.style.visibility = 'hidden';
		}
	}
}

function setMessageSablier(newMessage){
var td;
//	document.getElementById("message").value = newMessage;
	td = document.getElementById("msgPatientez");
	td.innerHTML = newMessage;
}

function setTitre(newTitre)
{
	document.getElementById("msgTitre").innerHTML = newTitre;
}

window.onbeforeunload = sablier;


function readOnlyForm(form){
	var i;
	for (i=0; i<form.elements.length; i++){
	  desactiver(form.elements[i]);
	}
  }


function desactiver(field){
	if (field == null || field == undefined)
		return;

	  //select
	  if (field.type == "select-multiple" | field.type == "select-one"
		  | field.type == "checkbox"){
		  field.disabled = true;
	  }
	  //textarea
	  if (field.type == "textarea"){
		  field.readOnly = true;
	  }
	  //input
	  if (field.type == "text" | field.type == "password"
	  		 | field.type == "file" | field.type == "radio"){
		  field.readOnly = true;
	  }
	  if (field.type != "button")field.className="clsChpAffiche"
}

function activer(field){
	if (field == null || field == undefined)
		return;

	  //select
	  if (field.type == "select-multiple" | field.type == "select-one"
		  | field.type == "checkbox"){
		  field.disabled = false;
	  }
	  //textarea
	  if (field.type == "textarea"){
		  field.readOnly = false;
	  }
	  //input
	  if (field.type == "text" | field.type == "password"
	  		 | field.type == "file" | field.type == "radio"){
		  field.readOnly = false;
	  }
	  field.className=""
}

function lstDeplacer(from, to) {
	for(i=0;i<from.options.length;i++) {
    	if(from.options[i].selected ) {
      		to.options[to.options.length] = new Option(from.options[i].text,from.options[i].value);
		    from.options[i]=null;
		    i--;
    	}
   	}
}

function lstInit(from, to) {
var i;
var val;	

if (to.options != null){
//	window.alert("to.options.length="+to.options.length);
	for(i=0;i<to.options.length;i++) {
		val = to.options[i].value;
		for(j=0;j<from.options.length;j++) {
    		if(from.options[j].value == val) {
			    from.options[j]=null;
		    	j--;
	    	}
   		}
   	}
}
}


function initWidthEnteteTable(tabData, tabEntete){
var i;
var trEntete;
var trData;

	if (tabData == null || tabEntete == null) return;
	if (tabData.rows.length == 0 || tabEntete.rows.length == 0) return;
	
	trEntete = tabEntete.rows(0)
	trData = tabData.rows(0)
	
	for (i=0; i<trEntete.cells.length; i++){
		window.alert('col '+i+' ('+trEntete.cells(i).innerText+'): '+ trEntete.cells(i).width + ' -> '+ trData.cells(i).width);
		trEntete.cells(i).width = trData.cells(i).width;
	}
		
}

function enableAllFieldsAndDoAction(form, action, message) {
	if(form != null) {
		var elements = form.elements;
		for(i=0; i<elements.length; i++){
			elements[i].disabled = false;
		}
	}
	doAction(form, action, message);
}


function selectMyText(event) {
	var src =  event.srcElement;
	src.select();
}

function addAutomaticSelectText(form) {
	var i;
	for (i=0; i<form.elements.length; i++) {
		var field = form.elements[i];
		if (field.type == "text"){
			var navigateur = navigator.appName;
			if ("Microsoft Internet Explorer"==navigateur){
				field.attachEvent('onclick', selectMyText);
			}else{
				window.addEventListener("onclick", selectMyText, false);
			}
		}
	}
}

function getElementsByTagNameRegExp(tagName, regExp) {
	var res = new Array();
	var	elements=document.getElementsByTagName(tagName);
	for(i = 0; i < elements.length; i++) {
		var	elm = elements[i];
		if(regExp.test(elm.id)) {
			res.push(elm);
		}
	}
	return res;
}

// Retourne vrai si tableau contient la chaine str
function contains(tableau, str) {
	var res = false;
	if(tableau != null) {
		for (var i=0; (i<tableau.length) && (res == false); i++) {
			var val = tableau[i];
			if (val == str) {
				res = true;
			}
		}
	}
	return res;
}



