// JavaScript Document
function login(form){
	//alert('login');
	var username = trim(document.form.username.value);
	var password = trim(document.form.password.value);
	if(username==""){
		alert('Enter your username');
		return false;
		}
	else if(password==""){
		alert('Enter your password');
		return false;
		}
	return true;
}
//used on getpass.php (retrive password)
function pass(form){
	var msg="";
	var email = trim(form.email.value);
	if(email==""){
		msg = ("Please enter your email address");
	}else{
		if(checkEmail(email)!=true)
			msg = checkEmail(email);
	}
	if(msg!=""){
		alert(msg);
		return false;
	}
	else
		return true;

}
//
function editProfile(form){
	//alert("editProfile");
	var msg="";
	var firstname = trim(form.firstname.value);
	var surname = trim(form.surname.value);
	var email = trim(form.email.value);
	var pass = trim(form.password.value)
	var confirmPass =trim(form.confirmPass.value) 
	var carmake = trim(form.carmake.value);
	var carmodel = trim(form.carmodel.value);
	var caryear = form.caryear.options[form.caryear.options.selectedIndex].value
	
	if(firstname=="")
		msg = msg+"You must enter your firstname.\n"
	else if(checkFirstname(firstname)!=true)
		msg = msg+checkFirstname(firstname);
	if(surname=="")
		msg = msg+"You must enter your surname.\n"
	else if(checkSurname(surname)!=true)
		msg = msg+checkSurname(surname);
	if(checkEmail(email)!=true)
		msg += checkEmail(email);
		
	if(checkPassword(pass,confirmPass,15)!=true)
		msg += checkPassword(pass,confirmPass,15);
	//alert('pass '+pass+' confirm '+confirmPass);
	var gender="";
	for (var i=0; i <= 1; i++) {
         if (form.gender[i].checked){
				gender = form.gender[i].value;
				//alert("answer selected: "+a);
				break;
			}
	}
	//alert('gender '+gender);
	if(gender=="")
		msg+="Please select gender.\n"

	if(carmake!=""){
		if((carmodel=="")||(caryear==""))
			msg+="Please complete all car details\n"
	}
	else if(carmodel!=""){
		if((carmake=="")||(caryear==""))
			msg+="Please complete all car details\n"
	}
	else if(caryear!=""){
		if((carmake=="")||(carmodel==""))
			msg+="Please complete all car details\n"
	}
//alert(msg);
	if(msg!=""){
		alert(msg);
		return false;
	}
	else
		return true;
//
}


function addProfile(form){
	//alert("editProfile");
	var msg="";
	var username = trim(form.username.value);
	var firstname = trim(form.firstname.value);
	var surname = trim(form.surname.value);
	var email = trim(form.email.value);
	var carmake = trim(form.carmake.value);
	var carmodel = trim(form.carmodel.value);
	var caryear = form.caryear.options[form.caryear.options.selectedIndex].value
	
	/*if(username=="")
		msg = msg+"You must enter a username.\n"
	else if(isAlphaNumeric(username)==false)
		msg+="Username can contain letters or numbers only.\n"
		*/
	if(checkUsername(username,6)!=true)
		msg=msg+checkUsername(username,6);
	if(firstname=="")
		msg = msg+"You must enter your firstname.\n"
	else if(checkFirstname(firstname)!=true)
		msg = msg+checkFirstname(firstname);
	if(surname=="")
		msg = msg+"You must enter your surname.\n"
	else if(checkSurname(surname)!=true)
		msg = msg+checkSurname(surname);
	if(checkEmail(email)!=true)
		msg += checkEmail(email);
	
	var gender="";
	for (var i=0; i <= 1; i++) {
         if (form.gender[i].checked){
				gender = form.gender[i].value;
				//alert("answer selected: "+a);
				break;
			}
	}
	//alert('gender '+gender);
	if(gender=="")
		msg+="Please select gender.\n"

	if(carmake!=""){
		if((carmodel=="")||(caryear==""))
			msg+="Please complete all car details\n"
	}
	else if(carmodel!=""){
		if((carmake=="")||(caryear==""))
			msg+="Please complete all car details\n"
	}
	else if(caryear!=""){
		if((carmake=="")||(carmodel==""))
			msg+="Please complete all car details\n"
	}
//alert(msg);
	if(msg!=""){
		alert(msg);
		return false;
	}
	else
		return true;
//
}

/*********************************************** OLD ********************************/

function isUsernameUnique(username){
	for (var i=0; i<usernamelist.length; i++){
		if (username == usernamelist[i]){
			return false
		}
	}
	return true
}

function checkPassword(pass1,pass2,maxlength){
	var msg=""
	var passwordError = false
	var password = trim(pass1)

	if(password==""){
		passwordError=true
		msg+="You must enter a password.\n"
		}
	else if(password.length <4){
		passwordError=true
		msg+="Password must be at least 4 characters long.\n"
		}
	else if(password.length>maxlength){
		passwordError=true
		msg+="Password cannot be greater than "+maxlength+" characters long.\n"
		}
	else if(isAlphaNumeric(password)==false){
		passwordError=true
		msg+="Password can contain letters or numbers only.\n"
		}
	else if(pass1 != pass2){
		passwordError=true
		msg+="Your password and confirmation do not match.\n"
		}
	
	if(passwordError==true)
		return msg
	else
		return true
}

function checkUsername(text,maxlength){
	var msg=""
	var usernameError=false
	var username=trim(text)
	
	if(username==""){
		usernameError=true
		msg+="You must enter a username.\n"
		}
	else if(username.length <4){
		usernameError=true
		msg+="Username must be at least 4 characters long.\n"
		}
	else if(username.length>maxlength){
		usernameError=true
		msg+="Username cannot be greater than "+maxlength+" characters long.\n"
		}
	else if(isAlphaNumeric(username)==false){
		usernameError=true
		msg+="Username can contain letters or numbers only.\n"
		}
	
	if(usernameError==true)
		return msg
	else
		return true
}

// Checks if a string is alphanumeric, returns true or false 
function isAlphaNumeric(text){
	var t=trim(text)
	//if (t=="")
		//return false
		
	var isLetter=true
	t=t.toLowerCase()

    var alpha="abcdefghijklmnopqrstuvwxyz1234567890"
	
	// compare each letter of string with letters of alphabet, set flag 
	for (i=0;i<t.length;i++){
		for(j=0;j<alpha.length;j++){
			alphaChar=alpha.charAt(j);
			if (t.charAt(i)==alphaChar){
			    isLetter=true
				break;
			}
			else{
				isLetter=false
			}
		}
		if(isLetter==false)
		 	return false
	}
	return isLetter
}

// Checks if a string is numeric, returns true or false 
function isNumeric(t){
	msg='';
    var numeric="1234567890";
	if(t=='0'){
		msg='Please enter at least 1 or higher.';
		isNum=false;
	}
	else{
		// compare each letter of string with letters of alphabet, set flag 
		for (i=0;i<t.length;i++){
			for(j=0;j<numeric.length;j++){
				numChar=numeric.charAt(j);
				if (t.charAt(i)==numChar){
					isNum=true
					break;
				}
				else{
					isNum=false
				}
			}
			if(isNum==false)
				msg='Please input numbers only.';
		}
	}
	if(msg!=""){
		alert(msg);
		return false;
	}
	else
		return true;
}
//
function checkRegisterForm(form,usernamemaxlength,passwordmaxlength){
	var firstname = form.firstname.value
	var surname = form.surname.value
	var username = form.username.value
	var password = form.password.value
	var confirmation = form.confirmation.value
	var email = form.email.value
	var reminder = form.reminder.value
	var formpassed = true
	var msg = ""
	
	if (firstname==""){
		formpassed = false
		msg = msg+"You must enter a first name.\n"
	}
	
	if (surname==""){
		formpassed = false
		msg = msg+"You must enter a surname.\n"
	}
	
	if (!isUsernameUnique(username)){
		formpassed = false
		msg = msg+"The username '"+username+"' is taken.  Please choose another.\n"
	}
	else{
		if (checkUsername(username,usernamemaxlength)!=true){
			formpassed = false
			msg = msg + checkUsername(username,usernamemaxlength)
		}
	}
	
	if (checkPassword(password,confirmation,passwordmaxlength)!=true){
		formpassed = false
		msg = msg + checkPassword(password,confirmation,passwordmaxlength)
	}
	
	if (reminder==""){
		formpassed = false
		msg = msg+"You must enter a password reminder.\n"
	}
	
	if (email==""){
		formpassed = false
		msg = msg+"You must enter an email.\n"
	}
	
	if (formpassed){
		return true
		}
	else{
		alert(msg)
		return false
		}
}

function checkEditForm(form,usernamemaxlength,passwordmaxlength){
	var firstname = form.firstname.value
	var surname = form.surname.value
	var username = form.username.value
	var password = form.password.value
	var email = form.email.value
	var reminder = form.reminder.value
	var formpassed = true
	var msg = ""
	
	if (firstname==""){
		formpassed = false
		msg = msg+"You must enter a first name.\n"
	}
	
	if (surname==""){
		formpassed = false
		msg = msg+"You must enter a surname.\n"
	}
	
	if (!isUsernameUnique(username)){
		formpassed = false
		msg = msg+"The username '"+username+"' is taken.  Please choose another.\n"
	}
	else{
		if (checkUsername(username,usernamemaxlength)!=true){
			formpassed = false
			msg = msg + checkUsername(username,usernamemaxlength)
		}
	}
	
	if (checkPassword(password,password,passwordmaxlength)!=true){
		formpassed = false
		msg = msg + checkPassword(password,password,passwordmaxlength)
	}
	
	if (reminder==""){
		formpassed = false
		msg = msg+"You must enter a password reminder.\n"
	}
	
	if (email==""){
		formpassed = false
		msg = msg+"You must enter an email.\n"
	}
	
	if (formpassed){
		return true
		}
	else{
		alert(msg)
		return false
		}
}

// Trims white space from both sides of a string and returns the trimmed string
function trim(text){

	var start=0
	var leftTrim=""
	var fullTrim=""
	var end=0
	var isAllSpaces
	
	// Check if entire string is spaces
	for(w=0;w<text.length;w++){
		if(text.charAt(w)==" "){
			isAllSpaces=true
		}
		else{
			isAllSpaces=false
			break
			}
	}
	
	// If string is all spaces return zero length string 
	if (isAllSpaces==true){
		var x=""
		return x
		}

	// If the string is not all spaces then perform trim of white space
	 
	// Perform a left trim
	// Find position first real char appears in string
	for(i=0;i<text.length;i++){
		if(text.charAt(i)!=" "){
			start=i
			break
		}
	}

	// Extract the string to the right of start
	for(i=start;i<text.length;i++){
		leftTrim+=text.charAt(i)
	}
	
	//perform right trim
	for(i=leftTrim.length-1;i>=0;i--){          // -1 is for end of string
		if(leftTrim.charAt(i)!=" "){
			end=i
			break
		}
	}

	// Extract the string to the left of start
	for(i=0;i<=end;i++){
		fullTrim+=leftTrim.charAt(i)
	}
	return fullTrim
}



function formsubmit(e){
	var key = document.all ? e.keyCode : e.which ;
	
	if (key == 13){
		userlogin()
	}
}

function checkFilename(form){
	var filename = form.newfilename.value
	var formpassed = true
	var msg=""
	
	if(filename.length > 12){
		formpassed = false
	}
	
	if(filename.length < 7){
		formpassed = false
	}
	
	var dotcount = 0
	for (var i=0; i < filename.length; i++){
		if (filename.charAt(i)=="."){
			dotcount++
		}
	}	
	if(dotcount!=1){
		formpassed = false
	}
	
	// Check filename for alphanumeric characters and "."
	var isAlpaNumeric=true
	t=filename.toLowerCase()
	var alphaChar = ""
    var alpha="abcdefghijklmnopqrstuvwxyz1234567890."
	
	// compare each letter of string with letters of alphabet, set flag 
	for (var x=0;x<t.length;x++){
		for(var j=0;j<alpha.length;j++){
			alphaChar=alpha.charAt(j);
			if (t.charAt(x)==alphaChar){
			    isAlpaNumeric=true
				break;
			}
			else{
				isAlpaNumeric=false
			}
		}
		if(!isAlpaNumeric){
			msg += "Filename can only contain letters and numbers and a single '.' character."
			formpassed = false
			break
		}
	}
	
	if (filename.charAt(filename.length-4)!="."){
		formpassed = false
	}
	
	if (formpassed){
		return true
		}
	else{
		alert("The filename must :\n\n- be less than 12 characters in length\n- be greater than 6 characters in length\n- only contain letters and numbers and a single '.' character\n- contain a 3 letter file extension.\n\neg. myfile.ext")
		return false
		}
}

function userEdit(){
	var firstname = trim(document.form.firstname.value);
	var surname = trim(document.form.surname.value);
	var reminder = trim(document.form.reminder.value);
	var newPass = trim(document.form.newPass.value);
	var confirmPass = trim(document.form.confirmPass.value);
	var email = trim(document.form.email.value);
	var formpassed = true;
	var maxlength = 30;
	var msg="";

	if (firstname == ""){
	 	msg+="Please enter your firstname.\n"
		formpassed = false;
	 }
	else if (surname == ""){
	 	msg+="Please enter your surname.\n"
		formpassed = false;
	 }
	 else if(newPass!=""){ 
		if(isAlphaNumeric(newPass)==false){
			formpassed = false;
			msg+="Password can contain letters or numbers only.\n"
			}
		else if(newPass.length <4){
			formpassed = false;
			msg+="Password must be at least 4 characters long.\n"
			}
		else if(newPass.length>maxlength){
			formpassed = false;
			msg+="Password cannot be greater than "+maxlength+" characters long.\n"
			}
		else if(confirmPass == ""){
			msg+="If you would like to change your password you must enter both the password and verification.\n"
			formpassed = false;
			}
		else if(newPass != confirmPass){
			msg+="If you would like to change your password, your verification must match your new password.\n"
			formpassed = false;
			}
		}
	else if ((newPass == "") &&(confirmPass != "")){
	 	msg+="If you would like to change your password you must enter both the password and confirmation.\n"
		formpassed = false;
	 }
	 else if (reminder == ""){
		 msg+="Please enter your password reminder. This will be your clue given to you incase you forget your password."
		formpassed = false;
	 }
	 /**/
	isValid(firstname);
	if (isLetter==false)
		formpassed = false;
	isValid(surname);
	if (isLetter==false)
		formpassed = false;
	isValid(confirmPass);
	if (isLetter==false)
		formpassed = false;
	isValid(reminder);
	if (isLetter==false)
		formpassed = false;
	isValid(email);
	if (isLetter==false)
		formpassed = false;
		
	if (formpassed){
		return true
		}
	else{
		if(msg!="")
			alert(msg)
		return false
		}
}
//
function orderCheck(form){
	var msg = "";
	var firstname = trim(form.firstname.value);
	var surname = trim(form.surname.value);
	var postal1 = trim(form.postal1.value);
	var city = trim(form.city.value);
	var state= form.state.options[form.state.options.selectedIndex].value;
	var postcode = trim(form.postcode.value);
	var email = trim(form.email.value);
	if(firstname==""){
		msg += "* firstname\n";
	}
	if(surname==""){
		msg += "* surname\n";
	}
	if(postal1==""){
		msg += "* street address\n";
	}
	if(city==""){
		msg += "* town/suburb\n";
	}
	if(state==""){
		msg += "* state\n";
	}
	if(postcode==""){
		msg += "* postcode\n";
	}

	if(email!=""){
	//*******************************************************************************************************
		var invalidChars="/:,; ";
		var position=email.indexOf("@");
		var periodPos=email.indexOf(".",position);
		var errorFlagB
		var errorFlag
	
		if (email.length<6){
			msg=msg+"Your email address must be at least 6 characters long.\n";
			errorFlag=false;
		}	else if (position==-1){
			msg=msg+"Your email address must contain a '@' character.\n";
			errorFlag=false;
		}	else if ((email.indexOf("@",(position+1)))!=-1){
			msg=msg+"You can only have one '@' character in your email address\n";
			errorFlag=false;
		}	else if ((position==0)||(position==(email.length-1))){
			msg=msg+"You can't have the '@' character as the first or\n"+
			"last character in your email address.\n";
			errorFlag=false;
		}	else if ((periodPos==-1)||((periodPos+3)>email.length)){
			msg=msg+"The name of your mail server must have a '.com' (or similar) extension.\n";
			errorFlag=false;
		}	
		
		for (i=0;i<invalidChars.length;i++){
			badChar=invalidChars.charAt(i);
			if (email.indexOf(badChar,0)!=-1){
					errorFlagB=true;
					}
			}
						
		if (errorFlagB==true){
			msge=msge+"Your email address contains invalid character(s) (ie. / : , ; space)\n";

			}
			
	}
	//*****************************************************************/
	if(msg!=""){
		alert("Please enter your; \n"+msg);
		return false;
	}
	
	return true;
}
//
function testContact(form){
	//alert("ello");
	var msg="";
	var sender = trim(form.sender.value);
	var subject = trim(form.subject.value);
	var author = form.author.options[form.author.selectedIndex].value;
	var comments = trim(form.comments.value);
	//alert("sender: "+sender);
	//alert("sender: "+sender+"\nAuthor: "+author+"\ncomments: "+comments);
	//alert("*"+sender+"*");
	if(sender==""){
		msg += "* Enter your email address\n";
	}
	else if(checkEmail(sender)!=true){
		msg += checkEmail(sender);
	}
	if(subject==""){
		msg = msg+" * Enter the subject\n";
	}
	if(author==0){
		msg = msg+" * Select an author \n";
	}
	
	if(comments==""){
		msg = msg+" * Enter some comments";
	}
	if(msg!=""){
		alert(msg);
		return false;
	}
	
	return true;
	
} // end funtion

//hel desk page.
function helpDesk(){
	var subject = trim(document.form.subject.value);
	var message = trim(document.form.message.value);
	var comments = trim(document.form.comments.value);
	var email = trim(document.form.email.value);
	var formpassed = true;
	var msg="";

	if (subject == ""){
	 	msg+="Please enter the subject for the email.\n"
		formpassed = false;
	 }
	else if (message == ""){
	 	msg+="Please enter a description of the problem occurred.\n"
		formpassed = false;
	 }
	else if (email == ""){
	 	msg+="Please enter your email address.\n"
		formpassed = false;
	 }
	if (formpassed){
		return true
		}
	else{
		alert(msg)
		return false
		}
}
