// Validation functions

/*
function replace_special( s )
{
	s = s.replace(/[\-\,\:\;\[\]\(\)\#\!\?\\\/']/g,"");
	return s;
}
*/

function validate_length( obj, length )
{
	obj = document.getElementById( obj );
	var str = obj.value;
	var div = obj.id + "_error";
	div = document.getElementById( div );

	div.innerHTML = "";

	if( str.length > length )
	{
		div.innerHTML = "* Cannot exceed " + length + " characters";
		return false;
	}

	return true;
}

function validate_min_length( obj, length )
{
	obj = document.getElementById( obj );
	var str = obj.value;
	var div = obj.id + "_error";
	div = document.getElementById( div );

	div.innerHTML = "";

	if( str.length < length )
	{
		div.innerHTML = "* Minimum length: " + length + " characters";
		return false;
	}

	return true;	
}

function validate_required( obj )
{
	obj = document.getElementById( obj );
	var str = obj.value;
	var div = obj.id + "_error";
	div = document.getElementById( div );

	div.innerHTML = "";

	if( str == "" )
	{
		div.innerHTML = "* Required field";
		return false;
	}

	return true;
}

function validate_compare( obj1, obj2 )
{
	var result = true;
	obj1 = document.getElementById( obj1 );
	obj2 = document.getElementById( obj2 );
	
	var div = obj1.id + "_error";
	div = document.getElementById( div );

	div.innerHTML = "";
	
	if( obj1.value != obj2.value )
	{
		div.innerHTML = "* both fields must match";
		var result = false;
	}
	
	return result;
}

function validate_number( obj )
{
	obj = document.getElementById( obj );
	var str = obj.value;
	var div = obj.id + "_error";
	div = document.getElementById( div );

	div.innerHTML = "";

	var Chars = "0123456789 ";

	for ( var i = 0; i < str.length; i++ )
	{
	   if ( Chars.indexOf(str.charAt( i ) ) == -1)
	   {
			div.innerHTML = "* Please enter a numeric value";
			return false;
	   }
	}
	return true;
}

function validate_email( obj )
{
	obj = document.getElementById( obj );
	var str = obj.value;
	var div = obj.id + "_error";
	div = document.getElementById( div );

	div.innerHTML = "";

	var emailFilter=/^.+@.+\..{2,3}$/;
	if ( !( emailFilter.test( str ) ) )
	{
		div.innerHTML = "* Please enter a valid email address";
		return false;
	}


	var illegalChars= /[\(\)\<\>\,\;\:\'\\\/\"\[\]]/
	if ( str.match( illegalChars ) )
	{
	   div.innerHTML = "* The email address contains illegal characters";
	   return false;
	}

	return true;
}

function validate_address( prefix )
{
	var result = true;

	if( !validate_required( prefix + "_firstname" ) ) 	result = false;
	if( !validate_required( prefix + "_lastname" ) ) 	result = false;
	if( !validate_required( prefix + "_address1" ) ) 	result = false;
	if( !validate_required( prefix + "_city" ) ) 		result = false;
	if( !validate_required( prefix + "_postcode" ) ) 	result = false;
	
	if( result == false ) document.getElementById( prefix ).style.display = "block";
	
	return result;
}