// JavaScript Document
// Controllo campi form 
// Glassico - 2006 groncoUEB - gronco.ac@tin.it

function Trim(str) { 
  return str.replace(/^\s+|\s+$/g,"");
}

function FieldIsEmpty(frmElem) {
        switch (frmElem.type) {
				
                case "select":
                        return (frmElem.selectedIndex==0)?true:false;
                        break;
                case "select-one":
                        return false;
                        break;
                case "text":
                        return (Trim(frmElem.value).length==0)?true:false;
                        break;
                case "textarea":
                        return (Trim(frmElem.value).length==0)?true:false;
                        break;
                case "password":
                        return (Trim(frmElem.value).length==0)?true:false;
                        break;
                case "file":
                        return (Trim(frmElem.value).length==0)?true:false;
                        break;
                case "radio":
                        return false;
                        break;
                case "button":
                        return false;
                        break;
                case "reset":
                        return false;
                        break;
                default:
                        alert("Errore FieldIsEmpty");
                        return true;
                        break;
        }
}


function CheckField(field, mikExp) 
{
	if(field.value.search(mikExp) == -1) 
	{
		return true;
	}
	else 
	{
		alert("Sono stati inseriti uno o pił caratteri non ammessi");
		field.select();
		field.focus();
		return false;
	}
}


function minLengthLogin(frmElem, lang)
{
    if ((Trim(frmElem.value).length) <= 5)
	{
		if (lang=='IT')
		{
			alert("La login deve essere almeno di 6 caratteri");
		}
		else
		{
			alert("Login must contain more than 6 characters");
		}
		return false;
	}
	else
    {
    	return true;
	}
}

function minLengthPassword(frmElem, lang)
{
    if ((Trim(frmElem.value).length) <= 5)
	{
		if (lang=='IT')
		{
			alert("La password deve essere almeno di 6 caratteri");
		}
		else
		{
			alert("Password must contain more than 6 characters");
		}
		return false;
	}
	else
    {
    	return true;
	}
}

/******** Controllo telefono ********/

function isPhoneNumber(frmElem, lang)
{
	for(var i = 0; i < (frmElem.value).length; i++)
	{
        var c = (frmElem.value).charAt(i);
        if ((c != '0') && (c != '1') && (c != '2') &&  (c != '3') &&  (c != '4') &&  (c != '5') && 
			(c != '6') &&  (c != '7') &&  (c != '8') &&  (c != '9') && (c != ' ') && (c != '+')) 
		{
			if (lang=='IT')
			{
				alert("Il formato del numero di telefono non e' corretto");
			}
			else
			{
				alert("The telephone number is not correct");
			}
			return false;
		}
    }
    return true;
}

/******** Controllo fax ********/

function isFaxNumber(frmElem, lang)
{
	for(var i = 0; i < (frmElem.value).length; i++)
	{
        var c = (frmElem.value).charAt(i);
        if ((c != '0') && (c != '1') && (c != '2') &&  (c != '3') &&  (c != '4') &&  (c != '5') && 
			(c != '6') &&  (c != '7') &&  (c != '8') &&  (c != '9') && (c != ' ') && (c != '+')) 
		{
			if (lang=='IT')
			{
				alert("Il formato del numero di fax non e' corretto");
			}
			else
			{
				alert("The fax number is not correct");
			}
			return false;
		}
    }
    return true;
}

/***** Controllo ora *****/

function IsValidTime(timeStr) 
{
	var timePat = /^(\d{1,2}):(\d{2})/;
	var matchArray = timeStr.match(timePat);
	
	if (!matchArray)
		{
		alert("Inserire l'ora nel formato hh:mm");
		return false;
		}
		
	hour = matchArray[1];
	minute = matchArray[2];
		
	if (hour < 0  || hour > 23) 
		{
		alert("L'ora dell'evento deve essere compresa fra 0 e 23");
		return false;
		}
	if (minute<0 || minute > 59) 
		{
		alert ("I minuti devono essere compresi fra 0 e 59.");
		return false;
		}
	return true;
}

/******** Controllo data ********/

function checkdata(txt) 
{
	txt=txt.replace(/^\s+|\s+$/g,"");;
	var re = /^(\d{1,2})[\/\-]{1}(\d{1,2})[\/\-]{1}(\d{4})$/gi;
	if (txt.search(re)==-1) 
	{
		return false;
	}
	txt = txt.replace(/\//gi,"-");
	var arr = txt.split("-");
	if (arr[0]-0>31 || arr[1]-0>12 || arr[1]-0==0) 
	{
		return false;
	} 
	if ((arr[1]-0==4 || arr[1]-0==6 || arr[1]-0==9 || arr[1]-0==11) && arr[0]-0>30) 
	{ 
		return false;;
	}
	if (arr[1]-0==2 && arr[0]-0>29) 
	{ 
		return false;
	}
	return true;
}

/******** Controllo mail ********/

function isEMailAddr(frmElem, lang)
{
    var str = frmElem.value;
    var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
    if (!str.match(re))
	{
		if (lang=='IT')
		{
        	alert("Il formato dell'indirizzo mail non e' corretto");
		}
		else
		{
			alert("The mail address is not correct");
		}
        return false;
    } 
	else 
	{
       return true;
 	}
}

/******* Controllo intero *******/

function isIntero(frmElem, lang)
{
	for(var i = 0; i < (frmElem.value).length; i++)
	{
        var c = (frmElem.value).charAt(i);
        if ((c != '0') && (c != '1') && (c != '2') &&  (c != '3') &&  (c != '4') && (c != '5') && (c != '6') && (c != '7') && (c != '8') && (c != '9')) 
		{
			if(lang=='IT')
			{
				alert("Uno o pił valori inseriti non sono corretti");
			}
			else
			{
				alert("One or more value are not correct");
			}
			return false;
		}
    }
    return true;
}

/******* Controllo Cap *******/

function isCap(frmElem, lang)
{
	for(var i = 0; i < (frmElem.value).length; i++)
	{
        var c = (frmElem.value).charAt(i);
        if ((c != '0') && (c != '1') && (c != '2') &&  (c != '3') &&  (c != '4') && (c != '5') && (c != '6') && (c != '7') && (c != '8') && (c != '9')) 
		{
			if(lang=='IT')
			{
				alert("Il cap deve contenere solo numeri");
			}
			else
			{
				alert("Zip code must contain only number");
			}
			return false;
		}
    }
    return true;
}

/**** Controllo numero caratteri inseribili nella textbox ****/

var ns6=document.getElementById&&!document.all;

function restrictinput(maxlength,e,placeholder)
{
	if (window.event&&event.srcElement.value.length>=maxlength)
	return false
	else if (e.target&&e.target==eval(placeholder)&&e.target.value.length>=maxlength){
	var pressedkey=/[a-zA-Z0-9\.\,\/]/ //detect alphanumeric keys
	if (pressedkey.test(String.fromCharCode(e.which)))
	e.stopPropagation()
}
}

function countlimit(maxlength,e,placeholder)
{
	var theform=eval(placeholder)
	var lengthleft=maxlength-theform.value.length
	var placeholderobj=document.all? document.all["ph_"+placeholder.id] : document.getElementById("ph_"+placeholder.id)
	if (window.event||e.target&&e.target==eval(placeholder)){
	if (lengthleft<0)
	theform.value=theform.value.substring(0,maxlength)
	placeholderobj.innerHTML=lengthleft
}
}

function displaylimit(thename, theid, thelimit, maxlimit, lang)
{
	var theform=theid!=""? document.getElementById(theid) : thename
	if (lang=='IT')
	{
		var limit_text='<span class=testo>Puoi inserire ancora <span id="ph_'+theform.id+'">'+thelimit+'</span> caratteri</span>'
	}
	else
	{
		var limit_text='<span class=testo>Only <span id="ph_'+theform.id+'">'+thelimit+'</span> character left</span>'
	}
	if (document.all||ns6)
	document.write(limit_text)
	if (document.all){
	eval(theform).onkeypress=function(){ return restrictinput(maxlimit,event,theform)}
	eval(theform).onkeyup=function(){ countlimit(maxlimit,event,theform)}
}
}


