IE = (document.all) ? true:false;
MAC = (navigator.userAgent.indexOf("Mac") != -1); 


function displaytext(num) {
	document.getElementById('nav_text').innerHTML = nav_text[num];
}






function checkLoginFrm(frm) {
		var err = "";
		if (frm.username.value=="") err = err + " - Enter your username\n"
		if (frm.password.value=="") err = err + " - Enter your password\n"
		else if (!checkPassword(frm.password.value)) err = err + " - Your password is incorrectly formatted (min. 6 chars.)\n"
		
		if (err) { alert("Before you continue...\n\n" + err); return false; }
		else { return true; }
	}


function checkContactFrm(frm) {
		var err = "";
		if (frm.name.value=="") err = err + " - Enter your name\n"
		if (frm.email.value=="") err = err + " - Enter your email address\n"
		else if (!emailCheck(frm.email.value)) err = err + " - The email address appears to be invalid\n"
		if (frm.comments.value=="") err = err + " - Enter some comments\n"
		
		if (err) { alert("Before you continue...\n\n" + err); return false; }
		else { return true; }
	}
	
	
	
function changetab(tab) {
	document.getElementById('tab_'+currentTab).className = '';
	document.getElementById(currentTab).style.display = 'none';
	document.getElementById('tab_'+tab).className = 'selected';
	document.getElementById(tab).style.display = 'block';
	currentTab = tab;
}


function checkRegisterFrm(frm,page) {
		var err = "";
		
		if (page == 1) {
		
			if (frm.subscription_level)
			var level = false;
			for (counter = 0; counter < frm.subscription_level.length; counter++) {
				if (frm.subscription_level[counter].checked) level = true;
			}
			if (!level) err = err + " - Select a 12 month subscription level\n"
			if (!frm.agree_to_legal.checked) err = err + " - You must agree to the Terms and Conditions\n"
			
			
		} else if (page == 2) {
		
			if (frm.username.value=="") err = err + " - Enter a username\n"
			else if (!checkUsername(frm.username.value)) err = err + " - Your username is incorrectly formatted (min. 4 chars.)\n"
			if (frm.password1.value=="") err = err + " - Enter a password\n"
			else if (!checkPassword(frm.password1.value)) err = err + " - Your password is incorrectly formatted (min. 6 chars.)\n"
			else if (frm.password1.value != frm.password2.value) err = err + " - Your password and confirmation password do not match\n"
			
			if (frm.firstname.value=="") err = err + " - Enter your first name\n"
			if (frm.surname.value=="") err = err + " - Enter your surname\n"
			if (frm.email.value=="") err = err + " - Enter your email address\n"
			else if (!emailCheck(frm.email.value)) err = err + " - The email address appears to be invalid\n"
			
			if (frm.phone.value != '') { if (!checkPhone(frm.phone.value)) err = err + " - The phone number appears to be invalid (may contain numbers only)\n" }
			if (frm.fax.value != '') { if (!checkPhone(frm.fax.value)) err = err + " - The fax number appears to be invalid (may contain numbers only)\n" }
			if (frm.mobile.value != '') { if (!checkPhone(frm.mobile.value)) err = err + " - The mobile number appears to be invalid (may contain numbers only)\n" }
			
			if (frm.company_name.value=="") err = err + " - Enter your companies name\n"
			
			if (frm.industry[frm.industry.selectedIndex].value=="-1") err = err + " - Select the nature of your business\n"
			else if (frm.industry[frm.industry.selectedIndex].value=="0") {
				if (frm.other.value=="" || frm.other.value=="Other nature of business") err = err + " - Enter the nature of your business\n"
			}
			
			if (frm.address1.value=="") err = err + " - Enter an address\n"
			if (frm.city.value=="") err = err + " - Enter a city/town\n"
			
			if (frm.postcode.value=="") err = err + " - Enter a postcode\n"
			else if (!checkPostcode(frm.postcode.value)) err = err + " - The postcode appears to be invalid (may contain numbers only)\n"
			if (frm.state[frm.state.selectedIndex].value=="-1") err = err + " - Select a state\n"
		
		} else if (page == 3) {
		
			if (frm.cardname.value=="") err = err + " - Enter the name on the card\n"	
			if (frm.cardnumber.value=="") err = err + " - Enter your credit card number\n"
			else if (!checkCreditCard(frm.cardnumber.value)) err = err + " - Your credit card number does not appear to be valid\n"
		
		}
	
	
		if (err) { alert("Before you continue...\n\n" + err); return false; }
		else { return true; }
	}
	
	
function checkProgramFrm(frm) {
	var err = "";
	
	if (frm.title.value=="") err = err + " - Enter a title\n"	
	
	if (frm.start_date.value != '') {
		if (!isDate(frm.start_date.value,'dd/MM/yyyy'))  err = err + '- The start date does not appear to be valid (DD/MM/YYYY)\n';
	}
	if (frm.close_date.value != '') {
		if (!isDate(frm.close_date.value,'dd/MM/yyyy'))  err = err + '- The close date does not appear to be valid (DD/MM/YYYY)\n';
	}
	if (frm.flag_date.value != '') {
		if (!isDate(frm.flag_date.value,'dd/MM/yyyy'))  err = err + '- The flag date does not appear to be valid (DD/MM/YYYY)\n';
	}
			
	if (frm.start_date.value != '' && frm.close_date.value != '') {
		if (compareDates(frm.start_date.value,'dd/MM/yyyy',frm.close_date.value,'dd/MM/yyyy') == 1)  err = err + '- The start date must be BEFORE the close date\n';
	}
	
	if (err) { alert("Before you continue...\n\n" + err); return false; }
	else { return true; }
}
	
function checkPaymentFrm(frm) {
	var err = "";
	
	if (frm.cardname.value=="") err = err + " - Enter the name on the card\n"	
	if (frm.cardnumber.value=="") err = err + " - Enter your credit card number\n"
	else if (!checkCreditCard(frm.cardnumber.value)) err = err + " - Your credit card number does not appear to be valid\n"

	
	if (err) { alert("Before you continue...\n\n" + err); return false; }
	else { return true; }
}


function checkEmailFrm(frm) {
	var err = "";
	
	if (frm.email.value=="") err = err + " - Enter your email address\n"
	else if (!emailCheck(frm.email.value)) err = err + " - The email address appears to be invalid\n"
			
	
	if (err) { alert("Before you continue...\n\n" + err); return false; }
	else { return true; }
}
	
	
function checkProfileFrm(frm) {
		var err = "";
		
		if (frm.username.value=="") err = err + " - Enter a username\n"
		else if (!checkUsername(frm.username.value)) err = err + " - Your username is incorrectly formatted (min. 4 chars.)\n"
		
		if (frm.password1.value!="") {
			if (!checkPassword(frm.password1.value)) err = err + " - Your password is incorrectly formatted (min. 6 chars.)\n"
			else if (frm.password1.value != frm.password2.value) err = err + " - Your password and confirmation password do not match\n"
		}
		
		if (frm.name.value=="") err = err + " - Enter your first name\n"
		if (frm.surname.value=="") err = err + " - Enter your surname\n"
		if (frm.email.value=="") err = err + " - Enter your email address\n"
		else if (!emailCheck(frm.email.value)) err = err + " - The email address appears to be invalid\n"
		
		if (frm.phone.value != '') { if (!checkPhone(frm.phone.value)) err = err + " - The phone number appears to be invalid (may contain numbers only)\n" }
		if (frm.fax.value != '') { if (!checkPhone(frm.fax.value)) err = err + " - The fax number appears to be invalid (may contain numbers only)\n" }
		if (frm.mobile.value != '') { if (!checkPhone(frm.mobile.value)) err = err + " - The mobile number appears to be invalid (may contain numbers only)\n" }
		
		if (frm.company_name.value=="") err = err + " - Enter your companies name\n"
		
		if (frm.industry[frm.industry.selectedIndex].value=="-1") err = err + " - Select the nature of your business\n"
		else if (frm.industry[frm.industry.selectedIndex].value=="0") {
			if (frm.other.value=="" || frm.other.value=="Other nature of business") err = err + " - Enter the nature of your business\n"
		}
		
		if (frm.address1.value=="") err = err + " - Enter an address\n"
		if (frm.city.value=="") err = err + " - Enter a city/town\n"
		
		if (frm.postcode.value=="") err = err + " - Enter a postcode\n"
		else if (!checkPostcode(frm.postcode.value)) err = err + " - The postcode appears to be invalid (may contain numbers only)\n"
		if (frm.state[frm.state.selectedIndex].value=="-1") err = err + " - Select a state\n"
	
	
	
		if (err) { alert("Before you continue...\n\n" + err); return false; }
		else { return true; }
	}
	
	
	
function trim(sString) {
	while (sString.substring(0,1) == ' ') {
		sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' ') {
		sString = sString.substring(0,sString.length-1);
	}
	return sString;
}
	
function help(num) {
	el = document.getElementById('help'+num);
	if (el.style.display == 'none') el.style.display = 'inline';
	else el.style.display = 'none';
}

	
	
	
var da = (document.all) ? 1 : 0;
var pr = (window.print) ? 1 : 0;


function printPage(dialog) {

  if (pr && !MAC) // NS4, IE5
    window.print()
  else if (da && !MAC) // IE4 (Windows)
    vbPrintPage()
  else if (MAC && !IE)
    window.print()
  else if (MAC && IE)// other browsers
    alert("Sorry, Macintosh browsers cannot use this feature.\n\n - Select the Print option from the File menu.");
	else
	alert("Sorry, Macintosh browsers cannot use this feature.");
  return;
}

if (da && !pr && !MAC) with (document) {
  writeln('<OBJECT ID="WB" WIDTH="0" HEIGHT="0" CLASSID="clsid:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>');
  writeln('<' + 'SCRIPT LANGUAGE="VBScript">');
  writeln('Sub window_onunload');
  writeln('  On Error Resume Next');
  writeln('  Set WB = nothing');
  writeln('End Sub');
  writeln('Sub vbPrintPage');
  writeln('  OLECMDID_PRINT = 6');
  writeln('  OLECMDEXECOPT_DONTPROMPTUSER = 2');
  writeln('  OLECMDEXECOPT_PROMPTUSER = 1');
  writeln('  On Error Resume Next');
  writeln('  WB.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER');
  writeln('End Sub');
  writeln('<' + '/SCRIPT>');
}










function checkPassword(passwordStr) {
	if (passwordStr.length < 6) return false;
	if (passwordStr.length > 15) return false;
	
	return true;
}

function checkUsername(usernameStr) {
	if (usernameStr.length < 4) return false;
	if (usernameStr.length > 15) return false;

	return true;
}

function checkPostcode(postcodeStr) {
	for (i=0; i<postcodeStr.length; i++) {
		if ((("0123456789").indexOf(postcodeStr.charAt(i)) == -1)) {
			return false;
		}
	}
	if (postcodeStr.length == 4) return true;
}

function checkCreditCard(creditStr) {
	if (creditStr.length < 10) return false;
	if (creditStr.length > 16) return false;
	
	for (i=0; i<creditStr.length; i++) {
		if ((("0123456789").indexOf(creditStr.charAt(i)) == -1)) {
			return false;
		}
	}
	
	return true;
}

function checkPhone(phoneStr) {
	if (phoneStr.length < 8) return false;
	if (phoneStr.length > 13) return false;
	
	
	for (i=0; i<phoneStr.length; i++) {
		if ((("0123456789").indexOf(phoneStr.charAt(i)) == -1)) {
			return false;
		}
	}
	
	return true;
}




function emailCheck (emailStr) {
	
	var checkTLD=1;
	
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	
	if (matchArray==null) {
		//alert("Email address seems incorrect (check @ and .'s)");
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			//alert("Ths username contains invalid characters.");
			return false;
	   }
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			//alert("Ths domain name contains invalid characters.");
			return false;
	   }
	}
	
	if (user.match(userPat)==null) {
		//alert("The username doesn't seem to be valid.");
		return false;
	}
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
	
	for (var i=1;i<=4;i++) {
		if (IPArray[i]>255) {
		//alert("Destination IP address is invalid!");
		return false;
	   }
	}
	return true;
	}
	
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
	if (domArr[i].search(atomPat)==-1) {
		//alert("The domain name does not seem to be valid.");
		return false;
	   }
	}
	
	if (checkTLD && domArr[domArr.length-1].length!=2 && 
		domArr[domArr.length-1].search(knownDomsPat)==-1) {
		//alert("The address must end in a well-known domain or two letter " + "country.");
		return false;
	}
	
	if (len<2) {
		//alert("This address is missing a hostname!");
		return false;
	}
	
	// If we've gotten this far, everything's valid!
	return true;
}







function numbersonly(myfield, e, dec) {
	var key;
	var keychar;

	if (window.event)
	   key = window.event.keyCode;
	else if (e)
   		key = e.which;
	else
	   return true;
	
	keychar = String.fromCharCode(key);

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

	// numbers
	else if ((("0123456789").indexOf(keychar) > -1))
	   return true;
	
	// decimal point jump
	else if (dec && (keychar == "."))
	   {
	   myfield.form.elements[dec].focus();
	   return false;
	   }
	else
	   return false;
}



function checkAll(name, id, checkstatus) {
	for(i=0;i<document.getElementsByName(name+'[]').length;i++) {
		if (document.getElementsByName(name+'[]')[i].id.indexOf(name+"_"+id) != -1) {
			document.getElementsByName(name+'[]')[i].checked=false;
			document.getElementsByName(name+'[]')[i].disabled=checkstatus;
		}
	}
}

function checkUser(id, checkstatus) {
	for(i=0;i<document.getElementsByName('user_'+id+'[]').length;i++) {
		if (checkstatus) document.getElementsByName('user_'+id+'[]')[i].disabled=false;
		else document.getElementsByName('user_'+id+'[]')[i].disabled=true;
		document.getElementsByName('user_'+id+'[]')[i].checked=checkstatus;
	}
}



function checkSearch(frm) {
	var err = "";
	
	if (frm.keywords.value=="" && frm.id.value=="") err = err + " - Enter keywords to search for\n"

	if (err) { alert("Before you continue...\n\n" + err); return false; }
	else { return true; }
}




function logout() {
	if(confirm('Are you sure that you want to logout?')){ location.href='/framework/form/logout.php';}
}

