/***********************************************************************************************************
* webtrans.js
* 
* ICT Services, Web Transactional Team
*
* Common Javascript validation to be used in conjuction with webtrans.css
*
***********************************************************************************************************/

var WT_EMAIL = /^[a-zA-Z0-9'._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$|^$/;

var WT_URL = /^http:\/\/[A-Za-z0-9_]+(\.[A-Za-z0-9_]+)*(\/[A-Za-z0-9?~\.]*)*$/;
var WT_FRIENDLY_URL = /([a-zA-Z0-9\-_]+\.)+[a-z]{2,}($|\/)(\/\S)*/;

var WT_POSTCODE = /^[A-Z][A-Z0-9]{1,3} [0-9][A-Z]{2}$/;

var WT_ALPHA = /^[A-Za-z]*$/;
var WT_UCASE_ALPHA = /^[A-Z]*$/; 
var WT_LCASE_ALPHA = /^[a-z]*$/;

var WT_ALPHA_NUMERIC = /^[A-Za-z0-9]*$/;
var WT_UCASE_ALPHA_NUMERIC = /^[A-Z0-9]*$/;

var WT_TEXT = /^[A-Za-z0-9][A-Za-z0-9 ]*$/;
var WT_ANYTHING = /^/;

var WT_PASSWORD = /^([A-Za-z]+[0-9]+[A-Za-z0-9]*)|([0-9]+[A-Za-z]+[A-Za-z0-9]*)$/;

var WT_NINO = /^[A-Z]{2}[0-9]{6}[A-Z]$/;

//var WT_PHONE = /^[0-9]{0,15}[ ]{0,1}[0-9]{0,7}$/;
//var WT_PHONE = /^([0]{1}[0-9]{4}[ ]?[0-9]{6})|([0]{1}[0-9]{3}[ ]{1}[0-9]{3}[ ]?[0-9]{4})$/;
var WT_PHONE = /^([0]{1}[0-9]{4,5}[ ]?[0-9]{5,6})|([0]{1}[0-9]{3}[ ]{1}[0-9]{3}[ ]?[0-9]{4})$/;

function wt_isString(theElement, type)
{
	var str = theElement.value;
	if (/^$/.test(str)) return WT_OK;	
	if (!type.test(str)) return WT_WRONG;
	return WT_DONE;
}

function wt_toTitleCase(theElement)
{
	var str = theElement.value;
	var retString = "";
	
	// Only bother if there's something in the box
	if (str.length > 0)
	{
		var curChar = "";
		var capitaliseNextChar = false;

		// Automatically capitalise the first letter
		curChar = str.charAt(0);
		retString = curChar.toUpperCase();
		
		var i;
		for (i = 1; i < str.length; i++)
		{
			curChar = str.charAt(i);
			
			// If the character is a space or hyphen, we have to note that the following
			// character should be capitalised
			if (curChar == " " || curChar == "-" || curChar == "'")
			{
				capitaliseNextChar = true;
				retString = retString + curChar;
			}
			else
			{
				if (capitaliseNextChar == true)
				{
					retString = retString + curChar.toUpperCase();
				}
				else
				{
					retString = retString + curChar.toLowerCase();
				}
				
				capitaliseNextChar = false;
			}
		}
	}
	
	theElement.value = retString;
}
