
// JavaScript Document
var req;
function createRequester() 
{					
	if (window.XMLHttpRequest) // branch for native XMLHttpRequest object	
		req = new XMLHttpRequest();       					
	else if (window.ActiveXObject) // branch for IE/Windows ActiveX version
		req = new ActiveXObject("Microsoft.XMLHTTP");	
}
function executeCommand(id)
{	
	if(document.getElementById)
	{
		document.getElementById(id).click();
		document.getElementById(id).focus();
	}else
	{
		document.all[id].click();
		document.all[id].focus();
	}
}
// Removes leading and ending whitespaces
function trim(str) {
	
	return str.replace(/^\s+|\s+$/g, '') ;
	
}

function validateRequired (control){
	if (control.tagName == 'INPUT' && trim(control.value)=='') {
		return false;
	}
	if (control.tagName == 'TEXTAREA' && trim(control.value)=='') {
		return false;
	}
	if(control.tagName == 'SELECT' && control.options[control.selectedIndex].value == ''){
		return false;
	}
	return true;
}
function validateEmail(control){ 
	if(!control.value.length || control.disabled){
		return true; 
	}
	var emailfmt= /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
	return emailfmt.test(control.value);
}
function validateNumber(control){ 
	if(!control.value.length || control.disabled){
		return true; 
	}
	var reg= /^\d+$/
	return reg.test(control.value);
}
function validateMoney(control){ 
	if(!control.value.length || control.disabled){
		return true; 
	}
	var reg= /^(\d){1,3}(,?\d{3})*(\.\d+)?$/
	return reg.test(control.value);
}


function validateUsername(control){ 
	if(!control.value.length || control.disabled){
		return true; 
	}
	var usernamefmt= /^\w+$/; 	
	return usernamefmt.test(control.value);
}

function getSelectText(field){
	if(field != null && field.value != ""){
		if (typeof(document.selection)!= 'undefined'){
			var range = document.selection.createRange();
			if (range.parentElement() == field){
				return range.text;
			}
		}
		else if (typeof(field.selectionStart)!= 'undefined'){
			return(field.value.substring(field.selectionStart, field.selectionEnd));
		}
	}
	return "";
}
function doSubmitForm(e,formId){
	e = e||window.event;
	var whichCode = e.charCode||e.keyCode||e.which;		
	if(whichCode == 13){
		if(doSubmitClientLogin()){
			document.forms[formId].submit();
		}
	}
}
function authorizationClientUser(formId, username, pwd, urlReturn){
	createRequester();
	if(req != null){
		try
		{			
			req.open("POST", 'backend/callback/user.php?action=authentication', true);
			req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 	
			req.onreadystatechange = function() {
				if(req.readyState == 4 && req.status == 200) {
					if(req.responseText == 0){				
						if(urlReturn.indexOf("clientlogin.php") >=0){
							urlReturn = "index.php";
						}
						document.location.href = urlReturn;						
					}else{
						if(formId == 'homeLogin'){							
							alert("Invalid Username or Password");
						}else{
							document.getElementById('spanError').innerHTML = "Invalid Username or Password";	
						}
					}
				}
			}
			req.send('acc_username='+username+'&acc_password='+pwd);
		}	
		catch(e) 
		{
			alert("XMLHTTPRequest failed");							
		}
	}
}
function validateClientLoginSubmit(formId, txtUsernameId, txtPasswordId, spanErrorId, returnURL){
	try{
		var form = document.forms[formId];
		var msg = '';
		if(!validateRequired(form[txtUsernameId])){
			msg = 'Username';
			form[txtUsernameId].focus();
		}
		if(!validateRequired(form[txtPasswordId])){
			if(msg != ''){
			 	msg += ' and '
			}else{
				form[txtPasswordId].focus();					
			}
			msg += 'Password';	
		}
		if(msg == ''){
			authorizationClientUser(formId,form[txtUsernameId].value, form[txtPasswordId].value, returnURL);			
			form[txtUsernameId].focus();
		}else{
			if(formId == 'homeLogin'){
				alert("Please enter " + msg);				
			}else{
				document.getElementById(spanErrorId).innerHTML = "Please enter "+ msg;	
			}
		}
	}catch(e){
		alert(e.message);
	}
	return false;
}
