var msie5 = (navigator.userAgent.indexOf('MSIE 5') != -1);

//************************************************************
// Folder content
var isSelected = false;

function showPlan(div, niveau)
{
	show2(div);
	if (isIE) { calque = document.all[div];fleche = document.all["fleche_"+div]; }
	if (isNN6){ calque = document.getElementById(div);fleche = document.getElementById("fleche_"+div); }
	switch(calque.className)
	{	
		case "ferme" : 
			changeClass(div, "ouvert");
			switch(niveau)
			{
				case 1: fleche.src = "moins.jpg";		break;
				case 2: fleche.src = "moins2.jpg";		break;

			}
			
			break;

		default : 
			changeClass(div, "ferme");
			switch(niveau)
			{
				case 1: fleche.src = "plus.jpg";		break;
				case 2: fleche.src = "plus2.jpg";		break;			
			}
	}
}

function changeClass(calque, classe)
{
	if (isIE) { calque = document.all[calque]; }
	if (isNN6){ calque = document.getElementById(calque); }
	calque.className=classe;
}

function show2(calque) 
{ 
	isIE = (document.all) ;
	isNN6 = (!isIE) && (document.getElementById);
	
	if (isIE) 	calque = document.all[calque]; 
	else if (isNN6) calque = document.getElementById(calque);
	
	if( (calque.style.display == "block") || (calque.style.display == "inline")  || (calque.style.display == "")  ) 			calque.style.display = "none";
	else calque.style.display = "block"; 
}

function verif_date(input){
  var regex = new RegExp("[/]");
  var date = input.split(regex);
  var nbJours = new Array('',31,28,31,30,31,30,31,31,30,31,30,31);
  var result = true;

  if ( date['2']%4 == 0 && date['2']%100 > 0 || date['2']%400 == 0 )
  nbJours['2'] = 29;
  
  if( isNaN(date['2']) )
  result=false;
  
  if ( isNaN(date['1']) || date['1'] > 12 || date['1'] < 1 )
  result=false;
  
  if ( isNaN(date['0']) || date['0'] > nbJours[Math.round(date['1'])] || date['0'] < 1 )
  result=false;
  
  return result;
}

function diffDate(dateDeb, dateFin) {
    var regex = new RegExp("[/]");
    var dateDeb = dateDeb.split(regex);
    var dateFin = dateFin.split(regex);

    var dateDebTab = new Date(dateDeb[0], dateDeb[1], dateDeb[2]);
    var dateFinTab = new Date(dateFin[0], dateFin[1], dateFin[2]);

    if (dateFinTab.getFullYear() < dateDebTab.getFullYear()){return -1;}
    if (dateDebTab.getFullYear() < dateFinTab.getFullYear()){return 1;}

    if (dateFinTab.getMonth() < dateDebTab.getMonth()){return -1;}
    if (dateDebTab.getMonth() < dateFinTab.getMonth()){return 1;}
    
    if (dateDebTab.getTime() <= dateFinTab.getTime()){return 1;}
    return -1;
}

function diffDate_searchActe(dateDeb, dateFin) {
    var regex = new RegExp("[/]");
    var dateDeb = dateDeb.split(regex);
    var dateFin = dateFin.split(regex);

    var dateDebTab = new Date()
    dateDebTab.setFullYear(Number(dateDeb[2]), Number(dateDeb[1]) - 1, Number(dateDeb[0]));
    var dateFinTab = new Date();
    dateFinTab.setFullYear(Number(dateFin[2]), Number(dateFin[1]) - 1, Number(dateFin[0]));

    if (dateFinTab.getFullYear() < dateDebTab.getFullYear()){return -1;}
    if (dateDebTab.getFullYear() < dateFinTab.getFullYear()){return 1;}

    if (dateFinTab.getMonth() < dateDebTab.getMonth()){return -1;}
    if (dateDebTab.getMonth() < dateFinTab.getMonth()){return 1;}

    if (dateDebTab.getTime() <= dateFinTab.getTime()){return 1;}
    return -1;
}
function toggleSelect(toggleSelectButton, selectAllText, deselectAllText) {
    formElements = toggleSelectButton.form.elements;

    if (isSelected) {
	for (i = 0; i < formElements.length; i++) {
	    formElements[i].checked = false;
	}
	isSelected = false;
	toggleSelectButton.value = selectAllText;
    } else {
	for (i = 0; i < formElements.length; i++) {
	    formElements[i].checked = true;
	}
	isSelected = true;
	toggleSelectButton.value = deselectAllText;
    }
}

//************************************************************
/**
 * Toggles an element's visibility.
 * Function to show tooltips.
 */
function toggleElementVisibility(id) {
    element = document.getElementById(id);
    if (element) {
    	if (element.style.visibility == 'hidden') {
    	    element.style.visibility = 'visible';
    	} else {
    	    element.style.visibility = 'hidden';
    	}
    }
}

//************************************************************
/**
 * Toggles an element's visibility.
 * Function to show tooltips.
 */
function togglePutElementVisibility(id,mode) {
    element = document.getElementById(id);
    if (element) {
      element.style.visibility = mode;
    }
}

//************************************************************
/**
 * Toggles an element's class.
 * Function to show tooltips.
 */
function toggleElementClass(id,newClass) {
    element = document.getElementById(id);
    if (element) {
      element.className = newClass;
	  }
}

function showElement(show, id) {
    element = document.getElementById(id);
    if (element) {
	if (show) {
	    element.style.visibility = 'visible';
	} else {
	    element.style.visibility = 'hidden';
	}
    }
}

//************************************************************
function trim(s) {
    if (s) {
	return s.replace(/^\s*|\s*$/g, "");
    }
    return "";
}

//************************************************************
function checkEmptySearch(formElem) {
    var query = trim(formElem.SearchableText.value);
    if (query != '') {
	formElem.SearchableText.value = query;
	return true;
    }
    formElem.SearchableText.value = query;
    formElem.SearchableText.focus();
    return false;
}


//************************************************************
/**
 * Sets focus on <input> elements that have a class attribute
 * containing the class 'focus'.
 * Examples:
 * <input type="text" id="username" name="__ac_name" class="focus"/>
 * <input type="text" id="searchableText" class="standalone giant focus"/>
 *
 * This function does not work on crappy MSIE5.0 and MSIE5.5.
 */
function setFocus() {
    if (msie5) {
	return false;
    }
    var elements = document.getElementsByTagName('input');
    for (var i = 0; i < elements.length; i++) {
	var nodeClass = elements[i].getAttributeNode('class');
	//alert("nodeClass = " + nodeClass);
	if (nodeClass) {
	    var classes = nodeClass.value.split(' ');
	    for (var j = 0; j < classes.length; j++) {
		if (classes[j] == 'focus') {
		    elements[i].focus();
		    return true;
		}
	    }
	}
    }
}

function validateRequiredFields(fieldIds, fieldLabels, informationText) {
    for (i = 0; i < fieldIds.length; i++) {
	element = document.getElementById(fieldIds[i]);
	if (element && !element.value) {
	    window.alert("'" + fieldLabels[i] + "' " + informationText);
	    return false;
	}
    }
    return true;
}

//************************************************************
function getSelectedRadio(buttonGroup) {
   if (buttonGroup[0]) {
      for (var i=0; i<buttonGroup.length; i++) {
	 if (buttonGroup[i].checked) {
	    return i
	 }
      }
   } else {
      if (buttonGroup.checked) { return 0; }
   }
   return -1;
}

function getSelectedRadioValue(buttonGroup) {
   var i = getSelectedRadio(buttonGroup);
   if (i == -1) {
      return "";
   } else {
      if (buttonGroup[i]) {
	 return buttonGroup[i].value;
      } else {
	 return buttonGroup.value;
      }
   }
}

function getSelectedRadioId(buttonGroup) {
   var i = getSelectedRadio(buttonGroup);
   if (i == -1) {
      return "";
   } else {
      if (buttonGroup[i]) {
	 return buttonGroup[i].id;
      } else {
	 return buttonGroup.id;
      }
   }
}

