
function storeXYCoord(frm){
}

function scrollWindow(posX,posY){
}

function validateRequired(){
	var retVal = true;
	if (validateRequired.arguments.length < 2) return retVal;
	var txtObj;
	var fieldname;
	var errMsg;
	var frmObj;
	for(var count=0;count < validateRequired.arguments.length && retVal;count++){
		txtObj=validateRequired.arguments[count];
		frmObj = txtObj.form;
		errMsg=validateRequired.arguments[++count];
		if(trim(txtObj.value).length == 0){
			alert(errMsg);
			txtObj.focus();
			txtObj.select();
			retVal = false;
		}
	}
	return retVal;
}

function validateHiddenRequired(){
	var retVal = true;
	if (validateHiddenRequired.arguments.length < 2) return retVal;
	var txtObj;
	var fieldname;
	var frmObj;
	for(var count=0;count < validateHiddenRequired.arguments.length && retVal;count++){
		txtObj=validateHiddenRequired.arguments[count];
		frmObj = txtObj.form;
		fieldname=validateHiddenRequired.arguments[++count];
		if(trim(txtObj.value).length == 0){
			alert(fieldname + ((frmObj.language.value==lang_english)?requiredField_eng:requiredField_itl));
			retVal = false;
		}
	}
	return retVal;
}

function validateTextArea(){
	var retVal = true;
	if (validateTextArea.arguments.length < 3) return retVal;
	var txtObj;
	var fieldname;
	var frmObj;
	var valLen = 0;
	for(var count=0;count < validateTextArea.arguments.length && retVal;count++){
		txtObj=validateTextArea.arguments[count];
		frmObj = txtObj.form;
		fieldname=validateTextArea.arguments[++count];
		valLen = validateTextArea.arguments[++count];
		if(valLen > 0){ //required
			if(trim(txtObj.value).length == 0){
				alert(fieldname + ((frmObj.language.value==lang_english)?requiredField_eng:requiredField_itl));
				txtObj.focus();
				txtObj.select();
				retVal = false;
			}
		}
		if(retVal && txtObj.value.length > valLen){
			alert(fieldname + ((frmObj.language.value==lang_english)?maxlength_eng:maxlength_itl) + valLen + ((frmObj.language.value==lang_english)?character_eng:character_itl));
			txtObj.focus();
			txtObj.select();
			retVal = false;
		}
	}
	return retVal;
}

function validateDDRequired(){
	var retVal = true;
	if (validateDDRequired.arguments.length < 2) return retVal;
	var selObj;
	var fieldname;
	var frmObj;
	var selected = false;
	for(var count=0;count < validateDDRequired.arguments.length && retVal;count++){
		selected = false;
		selObj=validateDDRequired.arguments[count];
		frmObj = selObj.form;
		fieldname=validateDDRequired.arguments[++count];
		if(selObj.type=="select-multiple"){
			for(var cnt=0;cnt < selObj.options.length;cnt++){
				if(selObj.options[cnt].selected && !(selObj.options[cnt].value == "-1" || selObj.options[cnt].value == "-")){
					selected = true;
					break;
				}
			}
		}else{
			if(!(selObj.options[selObj.selectedIndex].value == "-1" || selObj.options[selObj.selectedIndex].value == "-")){
				selected = true;
			}
		}
		if(selected == false){
			alert(fieldname + ((frmObj.language.value==lang_english)?requiredField_eng:requiredField_itl));
			selObj.focus();
			retVal = false;
		}
	}
	return retVal;
}

function validateRadioRequired(){
	var retVal = true;
	if (validateRadioRequired.arguments.length < 2) return retVal;
	var radioObj;
	var fieldname;
	var frmObj;
	var radioChecked = false;
	for(var count=0;count < validateRadioRequired.arguments.length && retVal;count++){
		radioObj=validateRadioRequired.arguments[count];
		frmObj = radioObj.form;
		fieldname=validateRadioRequired.arguments[++count];
		radioChecked = false;
		if(radioObj.length){
			for(var cnt=0;cnt < radioObj.length;cnt++){
				if(radioObj[cnt].checked){
					radioChecked = true;
					break;
				}
			}
			if(!radioChecked){
				alert("Al meno un valore di " + fieldname + " deve essere selezionato.");
				radioObj[0].focus();
				retVal = false;
			}
		}else{
			if(!radioObj.checked){
				alert(fieldname + ((frmObj.language.value==lang_english)?requiredField_eng:requiredField_itl));
				radioObj.focus();
				retVal = false;
			}
		}
	}
	return retVal;
}

/**
 * This method is to validate email
 */
function isEmail(string) {
    if (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1){
        return true;
    }else{
        return false;
    }
}


/**
 * This method allows the user to type-in only numeric
value in a textbox.
 * It allows float value i.e. number with decimal. 
 * drawback : user can copy and paste invalid values.
 * usage : put the below line along with the textbox
for which you want to validate numbers
 *  onkeypress="return validateFloat(event,this);" 
 *
 * @verified in IE(4/5/6) for windows and
Netscape(4.7) for windows
 */
function validateFloat(evt,obj){
	if(document.all) {
		if(event.keyCode != 46 && !(event.keyCode >= 48 && event.keyCode <= 57)) {
			event.keyCode = 0;
		}else{
			if(event.keyCode == 46 && obj.value != "" && obj.value.indexOf(".") != -1)
				event.keyCode = 0; 
			}
		} else if(document.layers) {
			var keyPressed = evt.which;
			if (keyPressed == 46 || keyPressed == 8 || (keyPressed >= 48 && keyPressed <= 57)){ 
				if(keyPressed == 46 && obj.value != "" && obj.value.indexOf(".") != -1)
					return false
				else
					return true;
			}else{
				return false;
		}
	}
}

function handleFloatOnBlur(obj){
	if(isNaN(obj.value)){
		obj.value="";
	}
}

function validateDate(txtObj){
	dateVal = txtObj.value;
	var retVal=false;
	if(typeof(dateVal) != "undefined" && trim(dateVal).length > 0){
		var objRegExp = /^\d{2}(\/)\d{2}\1\d{4}$/;
		if(!objRegExp.test(dateVal)){
    		retVal=false;
 		}else{
 			var strSeparator = "/";
		    var arrayDate = dateVal.split(strSeparator); //split date into month, day, year
		    //create a lookup for months not equal to Feb.
		    var arrayLookup = { '01' : 31,'03' : 31, '04' : 30,'05' : 31,'06' : 30,'07' : 31,
		                        '08' : 31,'09' : 30,'10' : 31,'11' : 30,'12' : 31}
		    var intDay = parseInt(arrayDate[0],10); 
		    //check if month value and day value agree
		    if(arrayLookup[arrayDate[1]] != null) {
		    	if(intDay <= arrayLookup[arrayDate[1]] && intDay != 0){
		      		retVal = true; //found in lookup table, good date
		      	}
		    }else{
		    	if(arrayDate[1]=='02'){
		    		//check for February
				    var intYear = parseInt(arrayDate[2],10);
				    var intMonth = parseInt(arrayDate[1],10);
				    if(((intYear % 4 == 0 && intDay <= 29) || (intYear % 4 != 0 && intDay <=28)) && intDay !=0){
				      	retVal = true; //Feb. had valid number of days
				    }
				}else{
		    		retVal = false;
		    	}
		    }
		 }
	}else{
		//If the textbox is empty don't validate.
		retVal=true;
	}
	if(!retVal){
		alert("Data non valida; inserire la data nel formato gg/mm/aaaa");
		txtObj.focus();
		txtObj.select();
	}
	return retVal;
}


function validateTime(txtObj){
	timeVal = txtObj.value;
	var retVal=true;
	if(typeof(timeVal) != "undefined" && trim(timeVal).length > 0){
		var objRegExp1 = /^\d{1,2}(\:)\d{2}\1\d{2}$/;
		var objRegExp2 = /^\d{1,2}(\.)\d{2}\1\d{2}$/;
		var objRegExp3 = /^\d{1,2}[:.]\d{2}$/;
		if(!objRegExp1.test(timeVal) && !objRegExp2.test(timeVal) && !objRegExp3.test(timeVal)){
    		retVal=false;
 		}else{
 			var strSeparator = ((timeVal.indexOf(":") == -1)?".":":");
		    var arrayTime = timeVal.split(strSeparator); //split date into month, day, year
		    
		    var intHour = parseInt(arrayTime[0]); 
		    var intMinute = parseInt(arrayTime[1]); 
		    var intSecond = 0;
		    if(arrayTime.length > 2){
		    	intSecond = parseInt(arrayTime[2]);
		    }
		    //alert(" intHour :" + intHour + " intMinute :" + intMinute + " intSecond : " + intSecond);
		    if(intHour > 23 || intMinute > 59 || intSecond > 59){
		    	retVal = false;
		    }
		 }
	}else{
		//If the textbox is empty don't validate.
		retVal=true;
	}
	if(!retVal){
		alert(((txtObj.form.language.value==lang_english)?invalid_time_eng:invalid_time_itl));
		txtObj.focus();
		txtObj.select();
	}
	return retVal;
}

function validateDependentFields(fld1,fld2,fldName1,fldName2){
	var retVal = true;
	if(trim(fld1.value).length > 0 && trim(fld2.value).length == 0){
		alert(fldName2 + " field is required when " + fldName1 + " field is entered.")
		retVal=false;
		fld2.focus();
		fld2.select();
	}else if(trim(fld1.value).length == 0 && trim(fld2.value).length > 0){
		alert(fldName1 + " field is required when " + fldName2 + " field is entered.")
		retVal=false;
		fld1.focus();
		fld1.select();
	}
	return retVal;
}

function validateEmail(txtObj){
	if(txtObj.value.length > 0){
		if(!isEmail(txtObj.value)){
			alert(((txtObj.form.language.value==lang_english)?notanemail_eng:notanemail_itl));
			txtObj.focus();
			txtObj.select();
		}
	}
}

function validateTALength(txtareaObj,maxlen){
	if(txtareaObj.value.length > maxlen){
		alert(fieldname + ((frmObj.language.value==lang_english)?maxlength_eng:maxlength_itl) + maxlen + ((frmObj.language.value==lang_english)?character_eng:character_itl));
		txtareaObj.focus();
		txtareaObj.select();
	}
}

function isEmpty(strValue){
	if(trim(strValue).length == 0){
		return true;
	}
	return false;
}
