// validates user input
function validChars(e, goods) {
	var key, keychar;
	key = (window.event) ? window.event.keyCode : ((e) ? e.which : null);
	if (key == null) return true;

	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();
	goods = goods.toLowerCase();

	if (goods.indexOf(keychar) != -1)
		return true;

	if (key==null || key==0 || key==8 || key==9 || key==13 || key==27)
		return true;

	return false;
}

function showConfirmation(msg)
{
	return confirm(msg);
}

/*
 ****************Validation begins here...*********************
 */

function validate(field, msg, elementType)
{
	with (field)
	{
		//For text or textareas...
		if(elementType=='text' || elementType=='textarea'|| elementType=='password' || elementType=='file')
		{
			if(disabled == false)
			if (value==null||value=="")
			{
				alert(msg);
				return false;
			}
		}
		//For drop downs...
		else if(elementType=='select-one')
		{
			if (selectedIndex==0)
			{
				alert(msg);
				return false;
			}
		}
		else if(elementType=='checkbox')
		{
			if(checkboxIsChecked == 0)
				if (checked == false)
				{
					alert(msg);
					return false;
				}
		}
		else 
		{
			return true;
		}
	}
}
//E mail validation function.
function validateEmail(field, msg)
{
	with (field)
	{
		apos=value.indexOf("@")
		dotpos=value.lastIndexOf(".")
		
		if (apos<1||dotpos-apos<2) 
		{
			alert(msg);
			value='';
			return false;
		}
		else 
		{
			return true;
		}
	}
}


//----------------------------------validation-------------------------------------------
/**
 * validateForm(string form element[, string tag ids[, string flag]])
 * thisForm = Form name.
 * elementIds = Should be an element ID seperated by commas. ( Eg:'name,address' ).
 * flag = 'email' -> Validates email format.
 *		  'password' -> Validates password confirmation format.
 *		  'email+password' -> Validates email format & password confirmation.
 * Usage : validateForm(this, 'name,address') -> Validates only the 'name' & 'address'.
 *  	   validateForm(this) -> Validates all the fields.
 *		   validateForm(this,'*') -> Validates all the fields. Same as validateForm(this).
 *		   validateForm(this,'*','email+password') -> Validates email format & password confirmation.
 **/
var checkboxIsChecked = 0;
var emailFieldName = 'email';	//should give the name of the email field.
//var passwordFieldName = 'newPassword';	//should give the name of the password field.
//var confirmationFieldName = 'confirmation';	//should give the name of the password confirmation field.
function validateForm(thisForm, elementIds, flag)
{
	var alertText;
	with (thisForm)
		{
			//Checks whether the Ids were given.
			if(typeof elementIds != 'undefined' && elementIds!='*')
			{
				alertText='All fields marked with º needs to be complete in full.';
				var tempElementIdArray = new Array();
				var tempElementsArray = new Array();
				var i;
				
				tempElementIdArray = elementIds.split(',');
				
				for(i in tempElementIdArray)
				{
					if(typeof elements[tempElementIdArray[i]] != 'undefined')
					tempElementsArray[i] = elements[tempElementIdArray[i]];
				}
				
				if(validateThis(tempElementsArray, alertText, flag) == false)
					return false;
			}
			//Else validates all the fields.
			else
			{
				alertText='All fields need to be complete in full.';
				if(validateThis(elements, alertText, flag) == false)
					return false;
			}
		}
}



/**
validateThis(elementObj,alertText[,Array confirm(elem1,elem2,'confirmation msg')])
last element of confirm contains the message to be displayed
**/
function validateThis(elementObj, alertText, confirm)
{
	for (i=0;i<elementObj.length;i++) 
	{
		//Text field validation done here...
		if(elementObj[i].type=='text')
		{
			//Checks whether text fields are empty...
			if (validate(elementObj[i], alertText, elementObj[i].type)==false)
				{
					elementObj[i].focus();
					return false;
				}
	 			
			//E mail validation is done here...	
			else if(elementObj[i].name == emailFieldName)
			{
				if(typeof confirm != 'undefined' && confirm.indexOf("email")!=-1)
					if (validateEmail(elementObj[i], "Invalid e-mail address format.", elementObj[i].type)==false)
					{
						elementObj[i].focus();
						return false;
					}
			}
		}
		//Drop down validation done here...
		else if(elementObj[i].type=='select-one')
		{
			if (validate(elementObj[i], alertText, elementObj[i].type)==false)
				{
					elementObj[i].focus();
					return false;
				}
		}
		//Textarea validation done here...
		else if(elementObj[i].type=='textarea')
		{
			if (validate(elementObj[i], alertText, elementObj[i].type)==false)
			{
				elementObj[i].focus();
				return false;
			}
		}
		else if(elementObj[i].type=='password')
		{
			if (validate(elementObj[i], alertText, elementObj[i].type)==false)
			{
				elementObj[i].focus();
				return false;
			}
		}
		else if(elementObj[i].type=='checkbox')
		{
			if (validate(elementObj[i], alertText, elementObj[i].type)==false)
			{
				elementObj[i].focus();
				return false;
			}
		}
		else if(elementObj[i].type=='file')
		{
			
			if(!elementObj[i].disabled)
			if (validate(elementObj[i],alertText,elementObj[i].type)==false)
			{
				
				elementObj[i].focus();
				return false;
			}
		}
		
	}
	if(typeof confirm != 'undefined' && confirm.indexOf("password")!=-1)
	{
		pass = document.getElementById('password');
		conf = document.getElementById('confirmation');
		
		if(conf.value == pass.value)
		{
			return true;
		}
		else
		{
			conf.focus();
			conf.value = "";
			alert('New Password and Confirmation and need to be identical.');
			return false;
		}
		
		
	}localhost
		
}