var detect = navigator.userAgent.toLowerCase();
var OS,browser,version,total,thestring;

if (checkIt('konqueror'))
{
	browser = "Konqueror";
	OS = "Linux";
}
else if (checkIt('safari')) browser = "Safari"
else if (checkIt('omniweb')) browser = "OmniWeb"
else if (checkIt('opera')) browser = "Opera"
else if (checkIt('webtv')) browser = "WebTV";
else if (checkIt('icab')) browser = "iCab"
else if (checkIt('msie')) browser = "Internet Explorer"
else if (!checkIt('compatible'))
{
	browser = "Netscape Navigator"
	version = detect.charAt(8);
}
else browser = "An unknown browser";

if (!version) version = detect.charAt(place + thestring.length);

if (!OS)
{
	if (checkIt('linux')) OS = "Linux";
	else if (checkIt('x11')) OS = "Unix";
	else if (checkIt('mac')) OS = "Mac"
	else if (checkIt('win')) OS = "Windows"
	else OS = "an unknown operating system";
}


if (browser !="Safari"){
if (browser !="Internet Explorer"){
if (browser !="Netscape Navigator"){
alert ("You appear to be using " + browser + ". In order to access this site you must be using one of the supported browsers with JavaScript and Cookies enabled.\n If you wish to be informed when the site is accessible by your browser please email us.");
top.location.href ="/help/wrongbrowser.htm";
}}}

function stopRKey(evt) { 
  var evt = (evt) ? evt : ((event) ? event : null); 
  var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null); 
  if (evt.keyCode == 13)
  {
  if (node.type=="text" || node.type=="password")  {return false;} 
  }
} 

if (browser =="Safari")
{
document.onkeypress = stopRKey; 
}



function checkIt(string)
{
	place = detect.indexOf(string) + 1;
	thestring = string;
	return place;
}


function myvalidate(from)
{
if (from){
if (from.indexOf(".")== -1)
 {
if(from!="save") top.help.location.href = "/help/" + from +".htm";}
else
{var from_array=from.split(".");
top.help.location.href = "/help/" + from_array[2] + ".htm";}	
}

var myStop = false;
var oldmyStop = false;
for (var i = 0; i < document.employeeform.elements.length; i++)
	{

	if (document.employeeform.elements[i].getAttribute("myValidate"))
		{
		var myValue = document.employeeform.elements[i].value;
		var myValidate = document.employeeform.elements[i].getAttribute("myValidate");
var notneeded=false		

if (myValidate.indexOf('_') != -1){
if (myValue==""){notneeded=true;}else 
{notneeded=false;}
}		
myValidate = myValidate.replace(/_/,"");
	
		var myAllow = false;
		if (myValue){myAllow = true;}
		if (myValidate == "date"){
if(validate_date(document.employeeform.elements[i]))
{reg = /^[0-3]\d\/[0-1]\d\/[1-2][890]\d{2}$/;
myValue = document.employeeform.elements[i].value;}
else
{reg = /^forcefail$/;}
}

if (myValidate == "phone")
{removespacesetc(document.employeeform.elements[i]); reg = /^[0-9]+$/;myValue = document.employeeform.elements[i].value;}

if (myValidate == "password")
{reg = /^[ -\~]+$/;}


		if (myValidate == "money"){
if(validate_money(document.employeeform.elements[i]))
{reg = /^[\-\d]\d*\.\d{2}$/;
myValue = document.employeeform.elements[i].value;}
else
{reg = /^forcefail$/;}
}
		if (myValidate == "email"){reg = /^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)\.[a-z]{2,6}$/i;}
		if (myValidate == "ni")
{
if (myValue != myValue.toUpperCase()){
myValue = myValue.toUpperCase();
document.employeeform.elements[i].value = myValue;
}

reg = /^[A-Z]{2}\d{6}[A-Z]?$/;}
		if (myValidate == "perweek"){reg = /^[1-7]$/;}
		if (myValidate == "taxcode"){
if(validate_taxcode(document.employeeform.elements[i]))
{reg = /^.*$/;
myValue = document.employeeform.elements[i].value;}
else
{reg = /^forcefail$/;}
}
		if (myValidate == "table"){
if (myValue != myValue.toUpperCase()){
myValue = myValue.toUpperCase();
document.employeeform.elements[i].value = myValue;
}
reg = /^A|B|C|D|E|F|G|J|L|S|X$/;}


		if (myValidate == "ECON")
{
if (myValue != myValue.toUpperCase()){
myValue = myValue.toUpperCase();
document.employeeform.elements[i].value = myValue;
}
reg = /^.{9}$/;}


		if (myValidate == "SCON")
{
if (myValue != myValue.toUpperCase()){
myValue = myValue.toUpperCase();
document.employeeform.elements[i].value = myValue;
}
reg = /^.{9}$/;}



		if (myValidate == "forename")
{
reg = /^[A-Za-z][A-Za-z&\-]*$/;}
        

		if (myValidate == "surname")
{
reg = /^[A-Za-z0-9 ,\.\(\)\/&\-\']+$/;}
        
//actual regex=^[A-Za-z0-9 ,\.\(\)/&\-\']+$


		if (myValidate == "postcode"){
if (myValue != myValue.toUpperCase()){
myValue = myValue.toUpperCase();
document.employeeform.elements[i].value = myValue;
}

reg = /^[a-zA-Z][a-zA-Z0-9]{2,3}$|^[a-zA-Z][a-zA-Z0-9]{1,3} \d[a-zA-Z]{2}$/;}

		if (myValidate == "yes"){reg = /^./;}
		if (myValidate == "bool"){
			if (myValue == "yes" |myValue == "Yes" |myValue == "y" |myValue == "Y")
			{document.employeeform.elements[i].value = "true";}
			if (myValue == "no" |myValue == "No" |myValue == "n" |myValue == "N")
			{document.employeeform.elements[i].value = "false";}
			myValue = document.employeeform.elements[i].value;
			reg = /^true|false$/;
			}
		if (myValidate == "freq"){reg = /^m|w|2w|4w$/;}
		if (reg.test(myValue)==true){myAllow = true;}else{myAllow = false;}
		if (myAllow){document.employeeform.elements[i].className='plain';}
		else
		{document.employeeform.elements[i].className='wrong';
		myStop = true;
		}	
		}
	else
		{document.employeeform.elements[i].className='plain';}
		
if (notneeded==true){document.employeeform.elements[i].className='plain';
myStop=oldmyStop;
}
var oldmyStop=myStop;
	}
if (myStop) {return false;}
else
{return true;}
}




function mydisable() { 
for (var i = 0; i < (document.employeeform.elements.length-1); i++)
{
document.employeeform.elements[i].title = "To make changes, click the 'Edit Details' button";
document.employeeform.elements[i].disabled=true;
document.employeeform.elements[i].className='plain';}
}

function myenable() {
for (var i = 0; i < document.employeeform.elements.length; i++)
{document.employeeform.elements[i].disabled=false;
document.employeeform.elements[i].title = "";
document.employeeform.elements[i].className='plain';}
document.employeeform.elements[1].focus();
}


function mydisableinv() { 
for (var i = 0; i < (document.employeeform.elements.length-1); i++)
{
document.employeeform.elements[i].title = "To make changes, click the 'Edit Details' button.";
document.employeeform.elements[i].disabled=true;
document.employeeform.elements[i].className='input.off';}
}

function myenableinv() {
for (var i = 0; i < document.employeeform.elements.length; i++)
{document.employeeform.elements[i].disabled=false;
document.employeeform.elements[i].title = "";
document.employeeform.elements[i].className='input.off';}
document.employeeform.elements[1].focus();
}


function mySubmit (){

if(myvalidate())
{document.employeeform.submit();}
else
{
	alert("Save has Failed !!! \nPlease check all fields highlighted in red.");}
}




function trimspaces( field )
{
if (field.value != field.value.replace(/^[ ]*/,"").replace(/[ ]*$/,"")){
    field.value = field.value.replace(/^[ ]*/,"").replace(/[ ]*$/,"");
}
}

function removespacesetc( field )
{
    if( field.value != field.value.replace(/[ .+\-()]/g,"") ) {
        field.value = field.value.replace(/[ .+\-()]/g,"");
    }
}

function removespaces( field )
{
    field.value = field.value.replace(/ /,"");
}

function capitalise( field )
{
    field.value = field.value.toUpperCase();
}

function validate_date( field )
{

    trimspaces( field );

    // Pad the day part, if necessary
    if( (/^\d\//).test(field.value) )
	field.value = "0" + field.value;

    // Pad the month part, if necessary
    if( (/^\d{2}\/\d\//).test(field.value) )
        field.value = field.value.substring(0,3)+"0"+field.value.substring(3);

    // Expand the year part, if necessary
    if( (/^\d{2}\/\d{2}\/[01]\d$/).test(field.value) )
        field.value = field.value.substring(0,6)+"20"+field.value.substring(6);
    // Same thing, but for 20th century dates
    if( (/^\d{2}\/\d{2}\/[23456789]\d$/).test(field.value) )
        field.value = field.value.substring(0,6)+"19"+field.value.substring(6);

    // Is structure ok?
    if( !(/^[0-3]\d\/[0-1]\d\/[1-2][890]\d{2}$/).test(field.value) ) return false;
    // Is month ok?
    if( (/^\d{2}\/1[3-9]/).test(field.value) ) return false;

    // Is day ok?
    if( (/^3[2-9]\/\d{2}/).test(field.value) ) return false;
    if( (/^31\/0[2469]/).test(field.value) ) return false;
    if( (/^31\/11/).test(field.value) ) return false;
    if( (/^30\/02/).test(field.value) ) return false;

    // 29th Feb...  This doesn't work for 1900 or 2100, which aren't leap
    if( (/^29\/02\/\d{2}[02468][048]/).test(field.value) ) return true;
    if( (/^29\/02\/\d{2}[13579][26]/).test(field.value) ) return true;
    if( (/^29\/02/).test(field.value) ) return false;

    return true;
}

function validate_money( field )
{
    if( (/^[\-\d]\d*\.\d{2}$/).test(field.value) ) return true;

    trimspaces( field );

    // Add the pence, if necessary
    if( (/^[\-\d]\d*$/).test(field.value) )
        field.value = field.value + ".00";

    // An unusual case - they've typed in one decimal place
    if( (/^[\-\d]\d*\.\d$/).test(field.value) )
        field.value = field.value + "0";

    if( (/^[\-\d]\d*\.\d{2}$/).test(field.value) ) return true;

    return false;
}

function validate_taxcode( field )
{
    if( (/^K\d\d*$/).test(field.value) ) return true;
    if( (/^\d\d*[LPTVY]$/).test(field.value) ) return true;

    removespaces( field );
    capitalise( field );

    // Convert letter O to number 0
    field.value = field.value.replace(/O/,"0");

    // Take care of the numbers only case
    if( (/^\d\d*$/).test(field.value) ) field.value = field.value + "T";

    if( field.value == "NT" ) return true;
    if( field.value == "BR" ) return true;
    if( field.value == "D0" ) return true;

    if( (/^K\d\d*$/).test(field.value) ) return true;
    if( (/^\d\d*[LPTVY]$/).test(field.value) ) return true;

    return false;
}


