/////////////////////////////////////////////////////
//
//					Number Functions
//
/////////////////////////////////////////////////////

/////////////////////////////////////////////////////
// Sintax: onkeypress="checkNumberKeyPress(this, [true]);"
/////////////////////////////////////////////////////
function checkNumberKeyPress(el, unsigned){
	var validKeys = "0123456789";
	var k = event.keyCode;
	var c = String.fromCharCode(k);
	var flag = validKeys.indexOf(c);
	if (flag == -1){
		k = 0;
		if (c == "," || c == "."){
			flag = el.value.indexOf(",");
			if (flag == -1){ c = ","; k = c.charCodeAt(0); }
		}
		if (!(unsigned) && c == "-"){ 
			var value = el.value;
			flag = value.indexOf("-");
			if (flag == -1){	el.value = "-" + value; }
		}
	}
	event.keyCode = k;
}	





/////////////////////////////////////////////////////
//
//					Date Functions
//
/////////////////////////////////////////////////////

/////////////////////////////////////////////////////
// Sintax: onkeypress="checkDateKeyPress(this);"
/////////////////////////////////////////////////////
function checkDateKeyPress(el){
	var k = event.keyCode;
	var validKeys = "0123456789";
	var c = String.fromCharCode(k);
	var flag = validKeys.indexOf(c);
	if (flag == -1){
		k = 0;
		if (c == "/" || c == " " || c == "-"){
			var re;
			re = new RegExp("/","g");
			var sDatevalue = el.value;
			var n = sDatevalue.match(re);
			c = "/";
			if (n){
				if (n.length > 1){
					c = "";
				}
			}
			k = c.charCodeAt(0);
		}
	}
	event.keyCode = k;
}
	

/////////////////////////////////////////////////////
// Sintax: onbeforedeactivate="checkDateValue(this);"
/////////////////////////////////////////////////////
function checkDateValue(el){
	var newVal = el.value;
	if (newVal.toString().length == 0){ 	
		return ""
	}
	var tmp = newVal.split("/");
	if (tmp.length != 3){ 
		if (event.type == "beforedeactivate"){ 
			alert("Data non valida!"); 
			event.returnValue=false;
		}
		return
	}			
	var tmpDay = new Number(tmp[0]);
	var tmpMonth = new Number(tmp[1]);
	var tmpYear = tmp[2];
	var today = new Date();
	if (tmpYear.toString().length == 0){ tmpYear = today.getFullYear(); }
	if (tmpYear.toString().length == 2){ tmpYear = today.getFullYear().toString().substr(0, 2) + tmpYear; }
	tmpMonth--;
	var flagError;
	if (isNaN(tmpDay) || tmpDay < 1){ flagError = true; }
	if (isNaN(tmpMonth) || tmpMonth < 0 || tmpMonth > 11){ flagError = true; }
	if (flagError){ 
		if (event.type == "beforedeactivate"){ 
			alert("Data non valida!"); 
			event.returnValue=false;
		}
		return
	}		
	var dateRetVal = new Date(tmpYear,tmpMonth,tmpDay)
	var tmpDay1 = dateRetVal.getDate();
	var tmpMonth1 = dateRetVal.getMonth().toString();
	var tmpYear1 = dateRetVal.getFullYear().toString();
	if (tmpMonth.toString() != tmpMonth1.toString() || tmpYear.toString() != tmpYear1.toString()){
		if (event.type == "beforedeactivate"){ 
			alert("Data non valida!"); 
			event.returnValue=false;
		}
		return
	}
	tmpMonth++;
	tmpMonth1 = tmpMonth.toString();
	if (tmpDay1.toString().length == 1){ tmpDay1 = '0' + tmpDay; }
	if (tmpMonth1.length == 1){ tmpMonth1 = '0' + tmpMonth1; }
	el.value = tmpDay1 + "/" + tmpMonth1 + "/" + tmpYear1;
}
