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;
}

/*Fonction jQuery qui centre un élement dans la page*/
(function(jQuery){
        jQuery.fn.center = function(){
            var scrollbarwidth=16;
			var standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body; //create reference to common "body" across doctypes
			var ie=document.all && !window.opera;
			var dom=document.getElementById;
			var scroll_top=(ie)? standardbody.scrollTop : window.pageYOffset;
			var scroll_left=(ie)? standardbody.scrollLeft : window.pageXOffset;
			var docwidth=(ie)? standardbody.clientWidth : window.innerWidth-scrollbarwidth;
			var docheight=(ie)? standardbody.clientHeight: window.innerHeight;
			var docheightcomplete=(standardbody.offsetHeight>standardbody.scrollHeight)? standardbody.offsetHeight : standardbody.scrollHeight; //Full scroll height of document
			var objwidth=jQuery(this)[0].offsetWidth; //width of div element
			var objheight=jQuery(this)[0].offsetHeight; //height of div element
			var topposition=(docheight>objheight)? scroll_top+docheight/2-objheight/2+"px" : scroll_top+10+"px"; //Vertical position of div element: Either centered, or if element height larger than viewpoint height, 10px from top of viewpoint
			var leftposition=(docwidth>objwidth)? scroll_left+docwidth/2-objwidth/2+"px" : scroll_left+10+"px"; //Vertical position of div element: Either centered, or if element height larger than viewpoint height, 10px from top of viewpoint
			//divobj.style.left=docwidth/2-objwidth/2+"px" //Center div element horizontally
			this.css("left",Math.floor(parseInt(leftposition))+"px");
			this.css("top",Math.floor(parseInt(topposition))+"px");
			this.css("visibility","visible");
        };
})(jQuery);

//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

