﻿//browser detection
var strUserAgent = navigator.userAgent.toLowerCase(); 
var isIE = strUserAgent.indexOf("msie") > -1; 
var isNS6 = strUserAgent.indexOf("netscape6") > -1; 
var isNS4 = !isIE && !isNS6  && parseFloat(navigator.appVersion) < 5; 
			
//regular expressions
var reValidChars = /\d/;
var reValidString = /^\d*$/;
var reKeyboardChars = /[\x00\x03\x08\x0D\x16\x18\x1A]/;
var reClipboardChars = /[cvxz]/i;
			
//mask functions
function maskKeyPress(objEvent) {
	var iKeyCode, strKey, objInput;  
				
	if (isIE) {
		iKeyCode = objEvent.keyCode;
		objInput = objEvent.srcElement;
	} else {
		iKeyCode = objEvent.which;
		objInput = objEvent.target;
	}
				
	strKey = String.fromCharCode(iKeyCode);
				
	if (isValid(objInput.value)) {
		objInput.validValue = objInput.value;
		if (!reValidChars.test(strKey) && !reKeyboardChars.test(strKey) && !checkClipboardCode(objEvent, strKey)) {
			return false;
		}
	} else {
		objInput.value = objInput.validValue;
		return false;
	}
}
			
function checkClipboardCode(objEvent, strKey) {
	if (isNS6)
		return objEvent.ctrlKey && reClipboardChars.test(strKey);
	else
		return false;
}
			
function isValid(strValue) {
	return reValidString.test(strValue) || strValue.length == 0;			
}
			
function maskChange(objEvent) {
	var objInput;
		
	if (isIE) {
		objInput = objEvent.srcElement; 
	} else {
		objInput = objEvent.target;
	}
			 
	if (!isValid(objInput.value)) {
		objInput.value = objInput.validValue || "";
		objInput.focus();
		objInput.select(); 
	} else {
		objInput.validValue = objInput.value;
	}
}
			
function maskPaste(objEvent) {
	var strPasteData = window.clipboardData.getData("Text");
	if(typeof(objEvent) == "undefined"){
		objEvent = event;
	}
	if(typeof(objEvent) != "undefined"){
		var objInput = objEvent.srcElement;
		if (!isValid(strPasteData)) {
			objInput.focus();
			return false;
		}
	}
}

function maskBlur(objEvent) {
	var objInput;
		
	if (isIE) {
		objInput = objEvent.srcElement; 
	} else {
		objInput = objEvent.target;
	}
			 
	if (!isValid(objInput.value)) {
		objInput.value = objInput.validValue || "";
	} else {
		objInput.validValue = objInput.value;
	}
}

//Verifica un indirizzo di e-mail
function isEmail (s) {    
   
    // is s whitespace?
    //if (isEmptyString(s)) return false;
    
    // there must be >= 1 character before @, so we
    // start looking at character position 1 
    // (i.e. second character)
    var i = 1;
    var sLength = s.length;

    // look for @
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    // look for .
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }

    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    
    return true;
}