

if ( !document.all ) {
	if (document.getElementById){
		var ns6 = true;
	}
}
var ie4 = (document.all);
var ns4 = (document.layers);
var onInvalidMessageText;
var onInvalidMessageTextStem;
var OKtoPost;


function tellafriend() {
	document.location.href='/tellafriend/index.html?pagename=' + document.title + '&amp;url=' + document.location.href;
}
		
function onSubmitForm(theform) {
		
		OKtoPost = true;
		
		onInvalidMessageText = eval('onInvalidMessageTextStem' + theform.name);
		ValidationArray = eval('arr' + theform.name + 'ValidationTests');
		for (var i=0 ; i < ValidationArray.length; i++) {
			
			DoValidation(ValidationArray[i],theform);
		}
		//alert(OKtoPost);

		if (OKtoPost == false) {
			alert(onInvalidMessageText);
			//MessageBlock.innerHTML = onInvalidMessageText;
			//showLayer('invalidform' + theform.name);
		}
		else {
			theform.submit();
			//alert('form submit');
		}								
}

function DoValidation(strTest,theform) {

	// strTest Format is as follows
	// [fieldname]:[test 1];[test 1 onInvalidText]|[test 2];[test 2 onInvalidText]|[test 3]:[test 3 onInvalidText]|...|[test n]:[test n onInvalidText]

	var arrTest = new Array(2);
	arrTest =  strTest.split(":")
	var fieldname = arrTest[0];
	var arrTests = arrTest[1].split("|");
	marklabelasOK(theform.name + fieldname);
	for (var j=0; j < arrTests.length; j++) {


		var arrThisTest = new Array(2);
		arrThisTest = arrTests[j].split(";");
		var onInvalidText = arrThisTest[1];
		var arrTestDetails = new Array(2);
		arrTestDetails = arrThisTest[0].split("=");
		var thisvalue;
		eval("thisvalue = theform." + fieldname + ".value");
		var testresult;

		switch(arrTestDetails[0]) {

			case "email":
				testresult = IsEmail(thisvalue);
				if (testresult == false) {
					marklabelasinvalid(theform.name + fieldname);
					onInvalidMessageText = onInvalidMessageText + "\n - " + onInvalidText;
				}
				break;


			case "exists":
				
				testresult = DoesExist(thisvalue);
				if (testresult == false) {
					marklabelasinvalid(theform.name + fieldname);
					onInvalidMessageText = onInvalidMessageText + "\n - " + onInvalidText;
				}
				break;


			case "radiochecked":
				
				testresult = HasEnoughChecked(eval('theform.' + fieldname), 1);
				if (testresult == false) {
					marklabelasinvalid(theform.name + fieldname);
					onInvalidMessageText = onInvalidMessageText + "\n - " + onInvalidText;
				}
				break;



			case "length":					

				testresult = IsLongEnough(thisvalue, arrTestDetails[1]);
				if (testresult == false) {
					marklabelasinvalid(theform.name + fieldname);
					onInvalidMessageText = onInvalidMessageText + "\n - " + onInvalidText;
				}
				break;



			case "numchecked":					
				
				testresult = HasEnoughChecked(eval('theform.' + fieldname), arrTestDetails[1]);
				if (testresult == false) {
					marklabelasinvalid(theform.name + fieldname);
					onInvalidMessageText = onInvalidMessageText + "\n - " + onInvalidText;
				}
				break;

			case "maxlength":
				
				testresult = IsShortEnough(thisvalue, arrTestDetails[1]);
				if (testresult == false) {
				   marklabelasinvalid(theform.name + fieldname);
				   onInvalidMessageText = onInvalidMessageText + "\n - " + onInvalidText;
				}
				break;

		}
		OKtoPost = OKtoPost && testresult;
	}
}

//function marklabelasOK(fieldname) {
//	if (blnUseDropDown) {
//		if(document.all) {
//			document.all['fieldlabel' + fieldname].style.color = 'black';							
//		}
//	}	
//}



function marklabelasOK(fieldname) {
	if (ie4){
		labeldiv = eval('fieldlabel' + fieldname +'.style')
	}
	else{
		if (ns4){
			return true;
			//alert('marklabelasOK - document.fieldlabel' + fieldname);
			//labeldiv = eval('document.fieldlabel' + fieldname);
			
		}
		else{			
			labeldiv = eval('document.getElementById("fieldlabel' + fieldname + '").style');
		}
	}
	labeldiv.color='black';
}


function marklabelasinvalid(fieldname) {
	if (ie4){
		labeldiv = eval('fieldlabel' + fieldname +'.style')
	}
	else{
		if (ns4){
			return true;
			//alert('marklabelasinvalid - document.fieldlabel' + fieldname);
			//labeldiv = eval('document.fieldlabel' + fieldname);
			
		}
		else{			
			labeldiv = eval('document.getElementById("fieldlabel' + fieldname + '").style');
		}
	}
	labeldiv.color='red';
}

function showLayer(layername){
	if (ie4){
		if(eval(layername +'.style.visibility=="visible"')){hideLayer(layername);}
		else{eval(layername +'.style.visibility="visible"');}
	}
	else{
		if (ns4){
			if(eval('document.' + layername + '.visibility=="show"')){hideLayer(layername)}
			else{eval('document.' + layername + '.visibility="show"');}
		}
		else{
			if(eval('document.getElementById("' + layername + '").style.visibility=="visible"')){
				hideLayer(layername)
			}
			else{eval('document.getElementById("' + layername + '").style.visibility="visible"');}
		}
	}
}


function hideLayer(layername){
	if (ie4){
		eval(layername + '.style.visibility="hidden"');
	}
	else{
		if (ns4){
			eval('document.' + layername + '.visibility="hide"');
		}
		else{
			eval('document.getElementById("' + layername + '").style.visibility="hidden"');
		}
	}
}				
function IsEmail(str) {
	if (str.indexOf("@")==-1) {	
		return false;
	}
	return true;
}


function DoesExist(str) {
	if (str=='') {	
		return false;
	}
	return true;
}


function IsLongEnough(str,strlen) {
	if (str.length < strlen) {
		return false;
	}
	return true;
}

function IsShortEnough(str,strlen) {
	if (str.length > strlen) {
		return false;
	}
	return true;
}

function HasEnoughChecked(checkboxfield,strlen) {
	var NumChecked = 0;
	for (var i=1; i <= checkboxfield.length; i++) {
		if (checkboxfield[i-1].checked) {NumChecked++}
	}
	
	if (NumChecked < strlen) {return false}
	return true;
}


function launchforce( loginurl, url )
{	
	window.open( loginurl, 'launchforce','toolbar=no,height=680,width=600,resizable=yes');
	self.setTimeout("window.open( '"+url+"', 'launchforce','toolbar=no,height=680,width=600,resizable=yes')", 2000) 	
}