﻿function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
} // addLoadEvent()

function searchForReqFields( tag ){
	var tags = document.getElementsByTagName(tag);
	for( var i=0; i < tags.length; i++ ){
		if( tags[i].className == "required" ){
alert(document.getElementById(tags[i].className));
		}
	}
} // searchForHints()

function checkForLength(inputField,minLength,required){
	var txt = inputField.value;
	if( txt.length >= minLength ){
		inputField.className = "welldone";
	}
	else if( typeof required != "undefined" ){
		inputField.className = "required";
	}
	else{
		inputField.className = "";
	}
	if( typeof required != "undefined" )
		setSaveStatus();
} // checkForLength()

function checkForRange(inputField,minLength,recomendedLength,required){
	var txt = inputField.value;
	if( txt.length >= minLength && txt.length < recomendedLength ) {
		inputField.className = "kindagood";
	}else if( txt.length >= recomendedLength ){
		inputField.className = "welldone";
	}
	else if( typeof required != "undefined" ){
		inputField.className = "required";
	}else{
		inputField.className = "";
	}
	if( typeof required != "undefined" )
		setSaveStatus();
} // checkForRange

function checkPasswordMatch(inputField1,inputField2,required){
	var pwd0 = inputField1.value;
	var pwd1 = inputField2.value;
	if( pwd0 == pwd1 )
		inputField2.className = "spellok";
	else
		inputField2.className = "required";
	if( typeof required != "undefined" )
		setSaveStatus();
}

function checkForNumber(inputField,type,required){
	if( type == "float" ){
		if( inputField.value != "" && isNaN( inputField.value ) )
			inputField.value = isNaN( inputField.value ) && inputField.value.length < 4 ? '' : parseFloat( inputField.value );
		if( inputField.value.indexOf(".") != -1 && inputField.value.split(".")[1].length > 2 )
			inputField.value = inputField.value.substring(0,inputField.value.length-1);
	}
	else if( type == "int" ){
		if( inputField.value != "" && isNaN( inputField.value ) )
			inputField.value = isNaN( inputField.value ) && inputField.value.length < 4 ? '' : parseInt( inputField.value );
		if( inputField.value.indexOf(".") != -1 )
			inputField.value = inputField.value.substring(0,inputField.value.indexOf("."));
	}
	if( typeof required != "undefined" ){
		inputField.className = inputField.value.length > 0 ? "welldone" : "required";
		setSaveStatus();
	}
} // checkForNumber

function checkForMaxVal(inputField,maxValue,type,required){
	checkForNumber(inputField,type);
	if( type == "float" ){
		if( parseFloat( inputField.value ) > parseFloat( maxValue ) )
			inputField.value = maxValue;
	}
	else{
		if( parseInt( inputField.value ) > parseInt( maxValue ) )
			inputField.value = maxValue;
	}
	if( typeof required != "undefined" ){
		inputField.className = inputField.value.length > 0 ? "welldone" : "required";
		setSaveStatus();
	}
} // checkForMaxVal

function checkForMinMaxVal(inputField,minValue,maxValue,type,required){
	checkForNumber(inputField,type);
	if( type == "float" ){
		if( parseFloat( inputField.value ) < parseFloat( minValue ) )
			inputField.value = minValue;
		if( parseFloat( inputField.value ) > parseFloat( maxValue ) )
			inputField.value = maxValue;
	}
	else{
		if( parseInt( inputField.value ) < parseInt( minValue ) )
			inputField.value = minValue;
		if( parseInt( inputField.value ) > parseInt( maxValue ) )
			inputField.value = maxValue;
	}
	if( typeof required != "undefined" ){
		inputField.className = inputField.value.length > 0 ? "welldone" : "required";
		setSaveStatus();
	}
} // checkForMinMaxVal

function checkEmail(inputField,required){
	var email = inputField.value;
	var binvalid = false;
	invalidChars = " /;,:";
	for( var j = 0; j < invalidChars.length; j++ ){
		badChar = invalidChars.charAt(j);
		if( email.indexOf( badChar, 0 ) > -1 ){
			binvalid = true;
			break;		
		}
	}
	var atPos = email.indexOf( "@", 1 );
	// there must be one "@" symbol
	if( atPos == -1 )
		binvalid=true;
	// and only one "@" symbol
	if( email.indexOf( "@", atPos + 1 ) != -1 )
		binvalid=true;
	// and at least one "." after the "@"
	periodPos = email.indexOf(".",atPos)
	if(periodPos == -1)
	    binvalid=true;
	// and at least one character between "@" and "."
	if (atPos + 2 > periodPos)
		binvalid=true;
	if (periodPos + 3 > email.length)
		binvalid=true;
	if (email.charAt(email.length-1)==".")
		binvalid=true;	
	inputField.className = binvalid ? "required" : "spellok";
	if( typeof required != "undefined" )
		setSaveStatus();
}

function hint(inputField,disp){
	var ehint = document.getElementById(inputField.name+"_hint");
	if( ehint != null ){
		ehint.style.display = disp;
	}
} // hint()

/*
function prepareForValidate() {
	searchForReqFields("input");
}

addLoadEvent(prepareForValidate);
*/
function setSaveStatus(){
	var btnSave = document.getElementById('btn_save');
	btnSave.className = "btn_save_welldone";
	btnSave.disabled = false;
	for( var i = 0; i < reqFieldNames.length; i++ ){
		if( document.getElementById(reqFieldNames[i]).className == "required" ){
			btnSave.className = "btn_save_required";
			btnSave.disabled = true;
			break;
		}
	}
} // setSubmitStatus
