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

function isValidEmailAddress(emailAddress) {
  return (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.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 && obj.style && (obj.style.display != 'none')) {	//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;
}


//Combo multiple sans Ctrl
//<select name="exemple" multiple="multiple" onMouseDown="GetCurrentListValues(this);" onchange="FillListValues(this);">
var arrOldValues;

function SelectAllList(CONTROL) {
  for(var i = 0;i < CONTROL.length;i++) {
	CONTROL.options[i].selected = true;
}}

function DeselectAllList(CONTROL){
  for(var i = 0;i < CONTROL.length;i++){
	CONTROL.options[i].selected = false;
}}

function FillListValues(CONTROL) {
  var arrNewValues;
  var intNewPos = -1;
  var strTemp = GetSelectValues(CONTROL);
  arrNewValues = strTemp.split(",");
  for(var i=0;i<arrNewValues.length-1;i++) {
	if(arrNewValues[i]==1) {
	  intNewPos = i;
  }}
  if(intNewPos == -1) { return; }

  for(var i=0;i<arrOldValues.length-1;i++) {
	if(arrOldValues[i]==1 && i != intNewPos){
	  CONTROL.options[i].selected= true;
	} else if(arrOldValues[i]==0 && i != intNewPos) {
	  CONTROL.options[i].selected= false;
	}

	if(arrOldValues[intNewPos]== 1) {
	  CONTROL.options[intNewPos].selected = false;
	} else {
	  CONTROL.options[intNewPos].selected = true;
}}}

function GetSelectValues(CONTROL) {
  var strTemp = "";
  for(var i = 0;i < CONTROL.length;i++) {
	if(CONTROL.options[i].selected == true) {
	  strTemp += "1,";
	} else {
	  strTemp += "0,";
  }}
  return strTemp;
}

function GetCurrentListValues(CONTROL) {
  var strValues = "";
  strValues = GetSelectValues(CONTROL);
  arrOldValues = strValues.split(",")
}
//Fin Combo multiple sans Ctrl

function getposOffset(what, offsettype) {
  var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
  var parentEl=what.offsetParent;
  while (parentEl!=null) {
	totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
	parentEl=parentEl.offsetParent;
  }
  return totaloffset;
}
