String.prototype.trim = function() {
  return this.replace(/(^\s*)|(\s*$)/g,'');
}

function isValidEmailAddress(emailAddress) {
  // If a simple regular expression doesn't work
  if(!new RegExp(/^test$/).test("test")) { return true; }

  // If the email address is empty
  if(emailAddress.trim() == '') { return false; }

  return new RegExp(/^([a-z]([_\.0-9a-z-]+)?@)([a-z]([_\.0-9a-z-]+)?\.)([a-z]{2,4})$/i).test(emailAddress.trim());
}

var obj_border = new Array();
function valid_input(o, tab) {
  var buffer = '';
  var obj = '';
  var texte = '';
  var retour_tmp = '';
  for (var i = 0; i < tab.length; i++) {
	obj = o.elements[tab[i][0]];
	texte = tab[i][1];
	if(!tab[i][2]) { tab[i][2] = ''; }

	if(obj) {	//Vérifie que l'object existe bien
	  retour_tmp = true;
	  switch (obj.type) {
		case 'text' :
		case 'password' :
		case 'textarea' :
		  if ((obj.value == '') || (obj.value == tab[i][2])) { retour_tmp = false; }
		  break;
		case 'select-one' :
		  if (obj.selectedIndex <= 0) { retour_tmp = false; }
		  break;
		case 'checkbox' :
		  if (obj.checked == false) { retour_tmp = false; }
		  break;
		default :
		  switch (obj[0].type) {
			case 'radio' :
			  var checked = false;
			  for (var j = 0; j < obj.length; j++) {
			  	checked = obj[j].checked?true:checked;
			  }
			  if (checked == false) { retour_tmp = false; }
			  break;
	  }}
	  obj.className = (retour_tmp == false)?'invalidInput':'validInput';

	  if (retour_tmp == false) {

		if((buffer == '') && (obj.name != undefined)) {
		  obj.focus();
		}

		buffer += "- "+texte+"\n";
  }}}

  return buffer;
}


//Calendrier
var calendarField;
function calendrier(field) {
  var o=document.getElementById('fglobal');
  var ladate = o.elements[field].value;
  calendarField = field;
  var vtmp = new Array(3);
  if(ladate == "") {
	var today = new Date();
	vtmp[0] = today.getDay();
	vtmp[1] = today.getMonth()+1;
	vtmp[2] = today.getYear();
	vtmp[3] = today.getHours();
	vtmp[4] = today.getMinutes();
	vtmp[5] = today.getSeconds();
	if(vtmp[2] < 1000) vtmp[2]+=1900;
  } else {
	var reg = new RegExp("[: /]", "ig");
	vtmp=ladate.split(reg);
  }

  var heure = (arguments[1] == true) ? true : false;	//Si l'heure est demandée

  var chaine_date = "y=" + vtmp[2] + "&m=" + vtmp[1] + "&d=" + vtmp[0];
  if(heure == true) {
	chaine_date += "&h=" + (vtmp[3]?vtmp[3]:"00") + "&i=" + (vtmp[4]?vtmp[4]:"00") + "&s=" + (vtmp[5]?vtmp[5]:"00");
  }

  window.open("../calendrier.php?"+ chaine_date,"calendrier","width=180,height="+(heure?230:200)+",scrollbars=no,left=200,top=150");
}

function retourDate(dat) {
  var o=document.getElementById('fglobal');
  el=o.elements[calendarField];
  el.value=dat;
  calendarField="";

  calcul_date_depart(dat);
}

function addDays(d, j) {
  return new Date(d.getTime() + (1000 * 60 * 60 * 24 * j));
}

function calcul_date_depart(dat) {
  var o = document.getElementById('fglobal');
  var d = document.getElementById('date_depart');
  var n = document.getElementById('NUITES');

  var j=(dat.substring(0,2));
  var m=(dat.substring(3,5));
  var a=(dat.substring(6));

  var ObjDate = new Date(a, m-1, j);
  var newDate = addDays(ObjDate, parseInt(n.options[n.selectedIndex].value));
  d.innerHTML = newDate.getDate()+'/'+(newDate.getMonth()+1)+'/'+newDate.getFullYear();

  if(!document.getElementById('fglobal').elements['ACT']) {
	o.submit();
}}