// JavaScript Document 

// Validation functions



// my own ereg thing immitation

function inputValidatorCrossCheck( input, alowedChars ) {

	//alert( "input = " + input );

	// loop through input, one char at a time

	for( var i=0; i<input.length; i++ ) {

		ch = input.charAt( i );

		// search for each char in alowedChars

		if( alowedChars.indexOf( ch ) >= 0 ) {

			// on success continue next iteration

			continue;

		}

		// if no continue then return false

		return false;

	} // end for loop

	

	// success

	return true; 



}



function inputValidateNums( input ) {

	return inputValidatorCrossCheck( input, "0123456789" );

}



function inputValidateAlpha( input ) {

	return inputValidatorCrossCheck( input, "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM " );

}

function inputValidateAlphaNums( input ) {

	return inputValidatorCrossCheck( input, "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM0123456789 " );

}



function emptyValidation(value){

 if ( value=="" || value==undefined ) {//|| value==null ) {

  return true;

 }

  return false;

} 



// param to be an object

function checkRadioGroup(rg) {

	for(var i=0; i<rg.length; i++) {

		if( rg[i].checked ) {

			return true;

		}

	}

	return false;

}



function emailValidation(value){

apos=value.indexOf("@"); 

dotpos=value.lastIndexOf(".");

lastpos=value.length-1;

if (apos<1 || dotpos-apos<2 || lastpos-dotpos>3 || lastpos-dotpos<2){

 return false;

}

else {

 return true;

}

}





// @use :  error = check....Field( fieldName, formName, info );

//         if( error.length > 0 ) // then there is an error



function checkAlphaField( fieldName, formName, info ) {

	//alert( formName + " : " + fieldName );

	var val = eval("document."+formName+"."+fieldName+".value");

	//alert( "val ="+val );

	// if not empty, check alphas

	if( !emptyValidation( val ) && !inputValidateAlpha( val ) ){

		return "Only Letters allowed in in \'"+info+"\' field\n\n";

	}

	return "";

}



function checkNumField(fieldName, formName, info ){

	var val = eval("document."+formName+"."+fieldName+".value");

	if( !emptyValidation( val ) && !inputValidateNums( val ) ){

		return "Only Numbers allowed in \'"+info+"\' field.\n\n";

	}

	return "";

}



function checkAlphaNumField(fieldName, formName, info ){

	var val = eval("document."+formName+"."+fieldName+".value");

	if( !emptyValidation( val ) && !inputValidateAlphaNums( val ) ){

		return "Only Letters and Numbers allowed in \'"+info+"\' field.\n\n";

	}

	return "";

}



function checkCompulsoryField(fieldName, formName, info ){

	var val = eval("document."+formName+"."+fieldName+".value");

	//alert("val: "+val);

	if( emptyValidation(val) ){

		return "\'"+info+"\' needs to be filled in.\n\n";

	}

	return "";

}



function checkCompulsorySelect(fieldName, formName, info ){

	var val = eval("document."+formName+"."+fieldName+".value");

	//alert("val: "+val);

	if( emptyValidation(val) ){

		return "You need a selection for: \'"+info+"\'.\n\n";

	}

	return "";

}



function checkEmailField(fieldName, formName, info ){

	var val = eval("document."+formName+"."+fieldName+".value");

	if( !emptyValidation(val) && !emailValidation( val ) ){

		return "\'"+info+"\' seems to be incorrect.\n\n";

	}

	return "";

}



function checkStreetField(fieldName, formName, info ){

	var val = eval("document."+formName+"."+fieldName+".value");

	if( !emptyValidation(val) && !inputValidatorCrossCheck( val, 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM0123456789 ,./-' ) ){

		return "\'"+info+"\' allowed input are; letters, numbers, spaces and ,./- characters.\n\n";

	}

	return "";

}



function checkMoney(fieldName, formName, info ) {

	var val = eval("document."+formName+"."+fieldName+".value");



	if (!inputValidatorCrossCheck( val, '1234567890,$. ' ) ) {

		return "\'"+info+"\', needs a proper Money value.\n\n";

	}

	return "";

}



function checkPhone(fieldName, formName, info )	{

	var val = eval("document."+formName+"."+fieldName+".value");



	if (!inputValidatorCrossCheck( val, '1234567890()-+ ' ) || val.length<6 ) {

		return "\'"+info+"\', needs a proper Phone Number.\n\n";

	}

	return "";

}

