// FUNCTION TO SHOW SIGN IN FORM
function showSignIn() {
	var url = "ajax/get_sign_in.php";
	new Ajax.Request(url, {
		method: 'get',
		onSuccess: function(transport) {
			$('formHolder').style.display = 'none';
			$('formHolder').innerHTML = transport.responseText; 
			Effect.Appear('formHolder', { duration: 1.0 });
			setTimeout("$('user').focus()", 25);
		}
	});
}

// FUNCTION TO SHOW FORGOT PWD FORM
function showForgotPwd() {
	var url = "ajax/get_forgot_pwd.php";
	new Ajax.Request(url, {
		method: 'get',
		onSuccess: function(transport) {
			$('formHolder').style.display = 'none';
			$('formHolder').innerHTML = transport.responseText; 
			Effect.Appear('formHolder', { duration: 1.0 });
			setTimeout("$('emailAddress').focus()", 25);
		}
	});
}

// FUNCTION TO SHOW SIGN UP FORM
function showSignUp() {
	$('outter').style.display = 'block';
	$('outter').style.opacity = "0.40";
	$('outter').style.filter = "alpha(opacity = 40)";
	var url = "ajax/get_sign_up.php";

	new Ajax.Request(url, {
		method: 'get',
		onSuccess: function(transport) {
			$('inner').innerHTML = transport.responseText; 
			$('inner').style.display = 'block';
			$('company').focus();
		}
	});
	
}

// FUNCTION TO HIDE SIGN UP FORM
function hideSignUp() {
	$('outter').style.display = 'none';
	$('inner').style.display = 'none';
	$('inner').innerHTML = "";
}

// FUNCTION TO SIGN IN USER
function signIn() {
	// VALIDATE FIELDS
	if(validateSignIn() == false) {
		return false;	
	}
	
	$('spinnerBox').style.display = "block";
	$('outter').style.opacity = "0.35";
	$('outter').style.filter = "alpha(opacity = 35)";
	$('outter').style.display = 'block';
	var user = $('user').value;
	var pwd = escape($('pwd').value);
	var url = 'ajax/sign_in.php?user=' + user + '&pwd=' + pwd;
	
	new Ajax.Request(url, {
		method: 'get',
		onSuccess: function(transport) {
			if (transport.responseText == 1) {
				window.location = 'dashboard.php';
			}
			else {
				$('errorUsername').innerHTML = "<img src='images/error.png' style='margin-bottom:-1px' title='Incorrect username or password'/>";
				$('errorPassword').innerHTML = "<img src='images/error.png' style='margin-bottom:-1px' title='Incorrect username or password'/>";
				$('spinnerBox').style.display = "none";
				$('outter').style.display = 'none';
			}
		}
	});
}

//FUNCTION TO SIGN USER UP
function signUp() {
	// VALIDATE FIELDS
	if(validateSignUp() == false) {
		return false;	
	}
	
	$('spinnerBox').style.display = "block";
	$('outter').style.opacity = "0.35";
	$('outter').style.filter = "alpha(opacity = 35)";
	$('outter').style.display = 'block';
	var company = escape($('company').value);
	var user = $('username').value;
	var pwd = escape($('password').value);
	var email = $('email').value; 
	var captcha = $('captcha').value;
	
	var url = 'ajax/sign_up.php?company=' + company + '&user=' + user + '&pwd=' + pwd + '&email=' + email + '&captcha=' + captcha;
	
	new Ajax.Request(url, {
		method: 'get',
		onSuccess: function(transport) {
			if (transport.responseText == "1") {
				$('errorCaptcha').innerHTML = "<img src='images/error.png' style='margin-bottom:-1px' title='Word Identification Failed'/>";
				$('errorCaptcha').style.display = "block";
			}
			if (transport.responseText == "2") {
				$('errorEmail').innerHTML = "<img src='images/error.png' style='margin-bottom:-1px' title='Email Already Exists'/>";
				$('errorUser').style.display = "none";
				$('errorEmail').style.display = "block";
			}
			if (transport.responseText == "3") {
				$('errorUser').innerHTML = "<img src='images/error.png' style='margin-bottom:-1px' title='Username Already Exists'/>";
				$('errorUser').style.display = "block";
				$('errorEmail').style.display = "none";
			}
			if (transport.responseText == "0") {
				$('msgBox').innerHTML = "Your account has been created. Please check your email";
				$('msgBox').style.display = 'block';
				$('msgBox').fade({ duration: 13.0 }); 
				hideSignUp();
			}
			if (transport.responseText == "4") {
				$('msgBox').innerHTML = "Your request has been sent to your company account administrator";
				$('msgBox').style.display = 'block';
				$('msgBox').fade({ duration: 13.0 }); 
				hideSignUp();
			}
			$('spinnerBox').style.display = "none";
		}
	});
}

function resetPassword() {
	// VALIDATE FIELDS
	if(validateForgotPwd() == false) {
		return false;	
	}
	
	var email = $('emailAddress').value;
	var url = 'ajax/reset_pwd.php?email=' + email;
	new Ajax.Request(url, {
		method: 'get',
		onSuccess: function(transport) {
			$('msgBox').innerHTML = transport.responseText;
			$('msgBox').style.display = 'block';
			$('msgBox').fade({ duration: 10.0 });
			$('spinnerBox').style.display = "none"; 
		}
	});
}

// FUNCTION TO VALIDATE SIGN IN FIELDS
function validateSignIn () {
	var validate = new validator();
	validate.addControl("pwd", '', 'pwd', 'errorPassword', ' Password', '');
	validate.addControl("user", '', 'text', 'errorUsername', 'Username', '');
	return validate.validate(); 
}

// FUNCTION TO VALIDATE FORGOT PASSWORD FIELDS
function validateForgotPwd () {
	var validate = new validator();
	validate.addControl("emailAddress", '', 'email', 'errorEmailAddress', 'email address', '');
	return validate.validate(); 
}

// FUNCTION TO VALIDATE SIGN UP FIELDS
function validateSignUp () {
	var validate = new validator();
	validate.addControl("terms", '', 'check', 'errorTerms', 'Terms of Use', '');
	validate.addControl("captcha", '', 'text', 'errorCaptcha', 'Word Identification', '');
	validate.addControl("cpassword", 'password', 'confirm', 'errorConfirm', 'Password', '');
	validate.addControl("password", '', 'pwd', 'errorPwd', 'Password', '');
	validate.addControl("email", '', 'email', 'errorEmail', 'email address', '');
	validate.addControl("username", '', 'text', 'errorUser', 'Username', '');
	validate.addControl("company", '', 'text', 'errorCompany', 'Company name', '');
	return validate.validate(); 
}

// AJAX CALL TO SEARCH FOR COMPANIES
function getCompanies(searchString) {
	
	var url = 'ajax/get_companies.php?url=' + searchString;
	new Ajax.Request(url, {
			method: 'get',
			onSuccess: function(transport) {
				if (transport.responseText != "") {
					$('searchResults').style.display = "block";
					$('searchResults').innerHTML = transport.responseText;
				}
				else {
					$('searchResults').style.display = "none";
				}
			},
			onFailure: function(transport){
				$('searchResults').style.display = "none";
			}
	});
}

// MOVE VALUES FROM SEARCH RESULTS TO TEXT BOX
function moveValue(selectedValue) {
	document.all("company").value = selectedValue;
	$('searchResults').style.display = "none";
	document.all('username').focus();
}