function de(txt,element) {	// data error
	element.focus()
	element.select()
	alert(txt)
}

function de2(txt,element){
	element.focus()
	alert(txt)
}

function stripchar(str,character) {	// strips character from str
	s = str
	if (s != null) {
		while ((j=s.indexOf(character))>=0) {
			s = s.substring(0,j) + s.substring(j+1,s.length)
		}
	}
	return s
}

function stripbegspace(str) {	// strips whitespace from beginning of string
	t = str
	if (t != null) {
		for (i=0; i<t.length; i++) {
				if ( t.charAt(0)==' ' || t.charAt(0)=='	') {				//second IF is a tab
					t = t.substring(1,t.length)
					i=0;   									//restart the count
				}else{
					return t;
				}
		}
	}
	return t;
}

function checknumeric(txt) {
	ok = true
	t = txt
	for (i=0; i<t.length; i++) {
		if (!isDigit(t.charAt(i)) && ok==true) { ok=false }
	}
	return ok
}

function checknumericcount(txt) {
	count=0;
	t = txt
	for (i=0; i<t.length; i++) {
		if (isDigit(t.charAt(i))){ count = count+1; }
	}
	return count;
}

function checkalphacount(txt) {
	ok = true
	count = 0;
	t = txt
	for (i=0; i<t.length; i++) {
		if ( (t.charAt(i) <= "z" && t.charAt(i) >= "a") || (t.charAt(i) <= "Z" && t.charAt(i) >= "A")) { count = count + 1; }
	}
	return count;
}

function isDigit(num) {
	if (num.length>1){return false;}
	var string="1234567890.";
	if (string.indexOf(num)!=-1){return true;}
	return false;
}


function validate_login(usrLen,pwdLen)
{
  if ((usrLen < 4)||(usrLen >16)){
    alert('Sorry, but your username must be between 4 and 16 characters. Please try again!');
    return false;
  }
  if ((pwdLen < 4)||(pwdLen >16)){
    alert('Sorry, but your password must be between 4 and 16 characters. Please try again!');
    return false;
  }

  return true;
}


function checkEmail(email, emailField){
	length2=email.length-1;
	number=0;
	number2=0;
	error=0;
	numb=0;
	flag=0;

	if (email.length == 0){
		alert('You must enter a ' + emailField + 'email address.');
		return false;
	}
	if ((email.length != 0)&&(email.charAt(0) == ".")){
		alert(emailField + 'Email address can not start with a full stop');
		return false;
	}
	if ((email.length != 0)&&(email.charAt(0) == "@")){
		alert(emailField + 'Email address can not start with an @ symbol');
	   return false;
	}
	for(num=0;num<email.length;num++){
		if(email.charAt(num)=="@"){
			numb=numb+1;
		}
	}
	if(numb>1){
		alert(emailField + 'Email address can only contain one @ symbols.');
		return false;
	}
	else if((numb==0)){
		alert(emailField + 'Email address must contain an @ symbol.');
		return false;
	}
	else if((email.charAt(length2)=="@")){
		alert(emailField + 'Email address can not end with a @ symbol.');
		return false;
	}
	else if((email.charAt(length2)==".")){
		alert(emailField + 'Email address can not end with a full stop.');
		return false;
	}
	for(num=0;num<email.length;num++){
		if(email.charAt(num)==" "){
				number=number+1;
		}
	}
	if(number>0){
		alert(emailField + 'Email address can not contain spaces.')
		return false;
	}

	for(num=0;num<email.length;num++){
		if(email.charAt(num)=="."){
				number2=number2+1;
		}
	}
	if(number2==0){
		alert(emailField + 'Email address must contain a full stop.')
		return false;
	}


	for(num=0;num<email.length;num++){
		if(email.charAt(num)=="."){
		  if(email.charAt(num+1)=="."){
			 alert(emailField + 'Email address has two full stops in a row.')
			 return false;
		  }
		}
	}

	return true;
}


function confirmDelete(str) {
	if (str == null)
		str = "continue";

	return confirm("Are you sure you want to " + str + "?\n",1,0);
}


function genEditCheck(frm,noEmailCheck) {

	//# Removes " from all form fields
	var elem = frm.elements;
	var flength = elem.length;
	for (var i=0; i < flength; i++) {
		if (elem[i].type == 'select-multiple') { //#loop through multiple selections and stripchar
			for (var k=0; k<elem[i].options.length; k++) {
				if (elem[i].options[k].selected) {
					elem[i].options[k].value = stripchar(elem[i].options[k].value,'"');
				}
			}
		}
		else {
			elem[i].value = stripchar(elem[i].value,'"');
		}
	}

	if (frm.GroupName) {
		if (frm.GroupName.value == null || frm.GroupName.value == '') {
			de("Error: You must enter a user group name.",frm.GroupName);
			return false;
		}
	}

	if (frm.Name.value == null || frm.Name.value == '') {
		de("Error: You must enter a name.",frm.Name);
		return false;
	}
	if (frm.DateSettled && frm.DateSettled.value != '') {
		var DateSettled = frm.DateSettled.value;
		var RegExp = /^\d{1,2}\-\d{1,2}\-\d{4}$/;
		var digitArray = DateSettled.split('-');
		if ( RegExp.test(DateSettled) == false ) {
			de("Error: Invalid date format. \nMust be in the form dd-mm-yyyy.",frm.DateSettled);
			return false;
		}
		else if ( digitArray[0]>31 || digitArray[1]>12 ) {
			de("Error: Invalid day or month.",frm.DateSettled);
			return false;
		}
	}

	if (!noEmailCheck || (frm.Email && frm.Email.value!='')) { if (!checkEmail(frm.Email.value, "")) { return false } }

	if (frm.UserName) {
		if (frm.UserName.value == null || frm.UserName.value == '') {
			de("Error: You must enter a user name.",frm.UserName);
			return false;
		}
		else if (frm.UserName.value.length < 4) {
			de("Error: User name must be at least 4 characters.",frm.UserName);
			return false;
		}
	}


	if (frm.Enabled) {
		if (frm.PasswordOriginal) {
			if (frm.Enabled.checked == true && (frm.PasswordOriginal.value == null || frm.PasswordOriginal.value == '')) {
				de("Error: You must enter a password when this person is enabled to use Lead Tracker.",frm.PasswordOriginal);
				return false;
			}
		}
		if (frm.SendLoginDetails) {
			if (frm.SendLoginDetails.checked == true && (frm.PasswordOriginal.value == null || frm.PasswordOriginal.value == '')) {
				de("Error: You must enter a password before you can send the login details.",frm.PasswordOriginal);
				return false;
			}
			if (frm.SendLoginDetails.checked == true && (frm.Email.value == null || frm.Email.value == '')) {
				de("Error: You must enter an email address before you can send the login details.",frm.Email);
				return false;
			}
			if (frm.SendLoginDetails.checked == true && frm.Enabled.checked == false) {
				de("Error: You must enable this person to use Lead Tracker before you can send the login details.",frm.Enabled);
				return false;
			}
		}
	}

	if (frm.PasswordOriginal) {
		if (frm.PasswordOriginal.value != null && frm.PasswordOriginal.value != '' && frm.PasswordOriginal.value.length < 4) {
			de("Error: Password must be at least 4 characters.",frm.PasswordOriginal);
			return false;
		}
	}

	if (frm.CompanyEmail && frm.CompanyEmail.value != null && frm.CompanyEmail.value != '') {
		if (!checkEmail(frm.CompanyEmail.value, "Company ")) { return false }
	}


	if (frm.Brokers) {
		if (frm.Brokers.options.selectedIndex == -1) {
			de2("Error: You must select at least one broker for this group.",frm.Brokers);
			return false;
		}
	}

	if (frm.Note) {

		if (frm.Note.value != null && frm.Note.value != '') {
			if (frm.Note.value.length > 65000) {
				de("Error: Note must be less than 65,000 characters.",frm.Note);
				return false;
			}
		}
	}

	return true;
}
