function viewError(error_message) {
	
	alert(error_message) ;
}


function hasValue(obj, obj_type) {

	if (obj_type == "TEXT" || obj_type == "PASSWORD" || obj_type == "TEXTAREA") {
		if (obj.value.length == 0) return false ;
		else return true ; 
	} else if (obj_type == "SELECT") {
       	for (i=0; i < obj.length; i++) {
			if (obj.options[i].selected) return true ;
		}
    	return false ;	
	} else if (obj_type == "SINGLE_VALUE_RADIO" || obj_type == "SINGLE_VALUE_CHECKBOX") {
		if (obj.checked) return true ;
		else return false ;	
	} else if (obj_type == "RADIO" || obj_type == "CHECKBOX") {
		for (i=0; i < obj.length; i++) {
			if (obj[i].checked)	return true ;
		}
       	return false ;	
	}
}


function checkNumber(object_value) {

	if (object_value.length == 0) return true ;
	
	var start_format = " .+-0123456789" ;
	var number_format = " .0123456789" ;
	var check_char ;
	var decimal = false ;
	var trailing_blank = false ;
	var digits = false ;
	
	check_char = start_format.indexOf(object_value.charAt(0)) ;
	if (check_char == 1) decimal = true ;
	else if (check_char < 1) return false ;
        
	for (var i = 1; i < object_value.length; i++) {
		check_char = number_format.indexOf(object_value.charAt(i)) ;
		if (check_char < 0) return false ;
		else if (check_char == 1) {
			if (decimal) return false ;
			else decimal = true ;
		} else if (check_char == 0) {
			if (decimal || digits) trailing_blank = true ;
       	} else if (trailing_blank) return false ;
		else digits = true ;
	}	
    return true ;
}

function checkInteger(object_value) {

	if (object_value.length == 0) return true ;

	var decimal_format = "." ;
	var check_char ;

	check_char = object_value.indexOf(decimal_format) ;
    
	if (check_char < 1) return checkNumber(object_value) ;
    else return false ;
}


function numberRange(object_value, min_value, max_value) {

	if (min_value != null) {
        if (object_value < min_value) return false ;
	}
    if (max_value != null) {
		if (object_value > max_value) return false ;
	}
	return true;
}


function checkRange(object_value, min_value, max_value) {

	if (object_value.length == 0) return true ;
    if (! checkNumber(object_value)) {
		return false;
	} else {
		return (numberRange((eval(object_value)), min_value, max_value)) ;
	}	
	return true;
}


function checkDay(checkYear, checkMonth, checkDay) {

	maxDay = 31 ;
	if (checkMonth == 4 || checkMonth == 6 || checkMonth == 9 || checkMonth == 11) {
		maxDay = 30 ;
	} else {
		if (checkMonth == 2) {
			if (checkYear % 4 > 0) {
				maxDay =28 ;
			} else {
				if (checkYear % 100 == 0 && checkYear % 400 > 0) {
					maxDay = 28 ; 
				} else {
					maxDay = 29 ;
				}
			}
		}
	}
	return checkRange(checkDay, 1, maxDay) ;

}


function checkDate(object_value) {
    
	if (object_value.length == 0) {
        return true ;
	}
    isplit = object_value.indexOf('/') ;
	if (isplit == -1) {
		isplit = object_value.indexOf('.') ;
	}
	if (isplit == -1 || isplit == object_value.length) {
		return false ;
	}
    sDay = object_value.substring(0, isplit) ;
	monthSplit = isplit + 1 ;
	isplit = object_value.indexOf('/', monthSplit) ;
	if (isplit == -1) {
		isplit = object_value.indexOf('.', monthSplit) ;
	}
	if (isplit == -1 ||  (isplit + 1 )  == object_value.length) {
		return false ;
	}
    sMonth = object_value.substring((sDay.length + 1), isplit) ;
	sYear = object_value.substring(isplit + 1) ;
	if (!checkInteger(sMonth))
		return false ;
	else
	if (!checkRange(sMonth, 1, 12))
		return false ;
	else
	if (!checkInteger(sYear))
		return false ;
	else
	if (!checkRange(sYear, 0, null))
		return false ;
	else
	if (!checkInteger(sDay))
		return false ;
	else
	if (!checkDay(sYear, sMonth, sDay))
		return false ;
	else
		return true ;
}

function CheckQta(object_value) {
	if (object_value == "") return false;
	if (isNaN(object_value)) return false;
	else if (object_value <= 0) return false;
	return true;
}

function CheckCAP(object_value) {
	if (object_value.length < 5) return false;
	if (isNaN(object_value)) return false;
	return true;
}

function CheckPIVA(object_value) {
	if (object_value.length < 11) return false;
	if (isNaN(object_value)) return false;
	a = 0; piva = object_value;
	for (i=1; i<10; i+=2) {
		temp = eval(piva.charAt(i)) * 2;
		if (temp >= 10) a++;
		a += temp % 10;
	}
	for (i=0; i<9; i+=2) {
		a += eval(piva.charAt(i));
	}
	a = (10 - (a % 10)) % 10;
	if (a != eval(piva.charAt(10))) 
		return confirm('La Partita I.V.A. risulta errata continui lo stesso?');
	return true;
}

function CheckEMail(object_value) {
	if (object_value.length < 5) return false;
	pos_at = object_value.indexOf('@');
	pos_punto = object_value.lastIndexOf('.');
	if (pos_at <= 1) return false;
	if (pos_punto <= (pos_at + 1)) return false;
	return true;
}

function CheckCodFis(object_value) {
	if (object_value.length != 16) return false;
	var resto = [ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];
	somma = 0;
	cfis = object_value.toUpperCase();
	for (i=1; i<14; i+=2) {
		switch (cfis.charAt(i)) {
			case "0": p = 0; break;
            case "1": p = 1; break;
            case "2": p = 2; break;
            case "3": p = 3; break;
            case "4": p = 4; break;
            case "5": p = 5; break;
            case "6": p = 6; break;
            case "7": p = 7; break;
            case "8": p = 8; break;
            case "9": p = 9; break;
            case "A": p = 0; break;
            case "B": p = 1; break;
            case "C": p = 2; break;
            case "D": p = 3; break;
            case "E": p = 4; break;
            case "F": p = 5; break;
            case "G": p = 6; break;
            case "H": p = 7; break;
            case "I": p = 8; break;
            case "J": p = 9; break;
            case "K": p = 10; break;
            case "L": p = 11; break;
            case "M": p = 12; break;
            case "N": p = 13; break;
            case "O": p = 14; break;
            case "P": p = 15; break;
            case "Q": p = 16; break;
            case "R": p = 17; break;
            case "S": p = 18; break;
            case "T": p = 19; break;
            case "U": p = 20; break;
            case "V": p = 21; break;
            case "W": p = 22; break;
            case "X": p = 23; break;
            case "Y": p = 24; break;
            case "Z": p = 25; break;
		}
		somma += p;
	}
	for (i=0; i<15; i+=2) {
		switch (cfis.charAt(i)) {
        	case "0": d = 1; break;
            case "1": d = 0; break;
            case "2": d = 5; break;
            case "3": d = 7; break;
            case "4": d = 9; break;
            case "5": d = 13; break;
            case "6": d = 15; break;
            case "7": d = 17; break;
            case "8": d = 19; break;
            case "9": d = 21; break;
            case "A": d = 1; break;
            case "B": d = 0; break;
            case "C": d = 5; break;
            case "D": d = 7; break;
            case "E": d = 9; break;
            case "F": d = 13; break;
            case "G": d = 15; break;
            case "H": d = 17; break;
            case "I": d = 19; break;
            case "J": d = 21; break;
            case "K": d = 2; break;
            case "L": d = 4; break;
            case "M": d = 18; break;
            case "N": d = 20; break;
            case "O": d = 11; break;
            case "P": d = 3; break;
            case "Q": d = 6; break;
            case "R": d = 8; break;
            case "S": d = 12; break;
            case "T": d = 14; break;
            case "U": d = 16; break;
            case "V": d = 10; break;
            case "W": d = 22; break;
            case "X": d = 25; break;
            case "Y": d = 24; break;
            case "Z": d = 23; break;
		}
		somma += d;
	}
    return resto[somma % 26] == cfis.charAt(15);
}

