/*
 Utilitaire JavaScript : contrôle des forumulaires;
*/
function isEmail(str) {
    // are regular expressions supported? 
    var supported = 0;
    if (window.RegExp) {
      var tempStr = "a";
      var tempReg = new RegExp(tempStr);
      if (tempReg.test(tempStr)) supported = 1;
    }
    if (!supported)
      return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
    var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
    var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
    return (!r1.test(str) && r2.test(str));
}
function isDate(str, fmt) {
	var fmt2 = (typeof fmt == "undefined") ? "%d/%m/%Y" : fmt;
	var y = 0;
	var m = 0;
	var d = 0;
	var a = str.split(/\W+/);
	var b = fmt2.match(/%./g);
	var i = 0, j = 0;
	for (i = 0; i < a.length; ++i) {
		if (!a[i])
			continue;
		switch (b[i]) {
		    case "%d":
				if(a[i].length != 2) return false;
				d = parseInt(a[i], 10);
				break;

		    case "%m":
				if(a[i].length != 2) return false;
				m = parseInt(a[i], 10);
				break;

		    case "%Y":
				if(a[i].length != 4) return false;
				y = parseInt(a[i], 10);
				break;
				
		    case "%y":
				if(a[i].length != 2) return false;
				y = parseInt(a[i], 10);
				(y < 100) && (y += (y > 29) ? 1900 : 2000);
				break;
		}
	}
	if (isNaN(y)) return false;
	if (isNaN(m)) return false;
	if (isNaN(d)) return false;
	
	if(y < 1900 || y > 2999) return false;
	if(m < 1 || m > 12) return false;
	if(d < 1 || d > 31) return false;
	if(m==2) {
		// si on est Fevrier 
		if(y%4==0) {
			if(d>29) return false;
		} else {
			if (d>28) return false;
		}
	}else{
		var reste=0;
		if(m>8) reste=1;
		
		if((m<7)||(m>8)) {
			if(m%2==reste)//dernier jour =30
				if(d>30) return false;
		}
	}
	return true;
}
//******
function verifyInputText(objTxt, msgError, bFocus) {
	if(trim(objTxt.value)=="") {
		if(msgError) {
			alert(msgError);
		}
		if(bFocus==true && objTxt.type!="hidden") {
			objTxt.focus();
		}
		return false;
	}
	return true;
}
function verifyNumericInputText(objTxt, msgError, bFocus) {
	if(!verifInputText(objTxt, msgError, bFocus)) return false;
	if(isNumeric(objTxt.value)) return true;
	if(msgError) {
		alert(msgError);
	}
	if(bFocus==true && objTxt.type!="hidden") {
		objTxt.focus();
	}
	return false;
}

function blockLetters(e) {
	var key;
	var keychar;
	var reg;
	
	if(window.event) {
		// for IE, e.keyCode or window.event.keyCode can be used
		key = e.keyCode; 
	}
	else if(e.which) {
		// netscape
		key = e.which; 
	}
	else {
		// no event, so pass through
		return true;
	}
	if(key == 8) return true;
    if((key < 48) || (key > 57)) return false;
	return true;
}

function floatOnly(e, txtForm) {
	var key;
	var keychar;
	var reg;
	
	if(window.event) {
		// for IE, e.keyCode or window.event.keyCode can be used
		key = e.keyCode; 
	}
	else if(e.which) {
		// netscape
		key = e.which; 
	}
	else {
		// no event, so pass through
		return true;
	}
	if(key == 8) return true;
	if(key==46 && (new String(txtForm.value)).indexOf(".") < 0) return true;
   	if((key < 48) || (key > 57)) return false;
	return true;
}
function getRadioIndex(formRadio) {
	var i;
	if(formRadio) {
		if(formRadio.length) {
			for(i=0;i<formRadio.length;i++) {
				if(formRadio[i].checked) return i;
			}
		}else{
			if(formRadio.checked) return 0;
		}
	}
	return -1;
}
function getRadioValue(formRadio) {
	var index = getRadioIndex(formRadio);
	if(index>0) return formRadio[index].value;
	else if(index==0 && !formRadio.length) return formRadio.value;
	return null;
}
function redirect_url (url) {
	window.location = url;
}