function emptyCheck(obj){
	if(obj.value==""){
		obj.className			= "inputRed";
		obj.value 				= error1; // should be a php constant or something like it
		setTimeout(function(){obj.value = "";},2000);
		return false;
	}else{
		obj.className			='';
		obj.onfocus				='';
		return true;
	}
}
function emptyCheckPass(obj,error_id){
	var error	= document.getElementById(error_id);
	if(obj.value==""){
		error.className						= "error";
		error.innerHTML						= error1; // should be a php constant or something like it
		error.parentNode.style.lineHeight	= "10px";
		return false;
	}else{
		error.className						='';
		error.innerHTML						='';
		error.parentNode.style.lineHeight	= "0px";
		return true;
	}
}
function validateEmail(obj){
	if(obj.value==""){
		obj.className			= "inputRed";
		obj.value 				= error1; // should be a php constant or something like it
		setTimeout(function(){obj.value = "";},2000);
		return false;
	}else{
		var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.]{3,5})+\.([A-Za-z]{2,4})$/;
		var address = obj.value;
		if(reg.test(address) == false) {
			obj.className			= "inputRed";
			obj.value				= error2; // should be a php constant or something like it
			setTimeout(function(){obj.value = "";},2000);
			return false;
		}else{
			obj.className			='';
			obj.onfocus				='';
			return true;
		}
	}
}
function validateBulstat(obj){
	var controlSum		= 0;
	var tmpControlNum;
	var controlNum;
	
	var controlSum2		= 0;
	var tmpControlNum2;
	var controlNum2;
	
	var controlSum3;
	var tmpControlNum3;
	
	if(obj.value==""){
		obj.className			= "inputRed";
		obj.value 				= error1; // should be a php constant or something like it
		setTimeout(function(){obj.value = "";},2000);
		return false;
	}else{
		var bulstat = obj.value.split("");
		switch(bulstat.length){
			case 10:
				return true;
			case 11:
				bulstat.splice(0,2);
			case 9:
				for(var i=0,j=1;i<bulstat.length-1;i++,j++){
					if(bulstat[i]>9){
						obj.className			= "inputRed";
						obj.value 				= error3; // should be a php constant or something like it
						setTimeout(function(){obj.value = "";},2000);
						return false;
					}else{
						controlSum += j*bulstat[i];
					}
				}
				
				tmpControlNum = controlSum % 11;
				if(tmpControlNum==10){
					for(var i=0,j=3;i<bulstat.length-1;i++,j++){
						if(bulstat[i]>9){
							obj.className			= "inputRed";
							obj.value 				= error3; // should be a php constant or something like it
							setTimeout(function(){obj.value = "";},2000);
							return false;
						}else{
							controlSum2 += j*bulstat[i];
						}
					}
					
					tmpControlNum2 = controlSum2 % 11;
					
					if(tmpControlNum2==10){
						controlNum = 0;
					}else{
						controlNum = tmpControlNum2;
					}
				}else{
					controlNum = tmpControlNum;
				}
				if(bulstat[8]==controlNum){
					obj.className			='';
					obj.onfocus				='';
					return true;
				}else{
					obj.className			= "inputRed";
					obj.value 				= error3; // should be a php constant or something like it
					setTimeout(function(){obj.value = "";},2000);
					return false;
				}
			break;
			case 13:
				for(i=0,j=1;i<bulstat.length-1;i++,j++){
					if(bulstat[i]>9){
						obj.className			= "inputRed";
						obj.value 				= error3; // should be a php constant or something like it
						setTimeout(function(){obj.value = "";},2000);
						return false;
					}else{
						controlSum += j*bulstat[i];
					}
				}
				
				tmpControlNum = controlSum % 11;
				if(tmpControlNum==10){
					controlNum = 0;
				}else{
					controlNum = tmpControlNum;
				}
				
				controlSum2 = 2*controlNum+7*bulstat[9]+3*bulstat[10]+5*bulstat[11];
				
				tmpControlNum2 = controlSum2 % 11;
				if(tmpControlNum2==10){
					controlSum3 	= 4*controlNum+9*bulstat[9]+5*bulstat[10]+7*bulstat[11];
					
					tmpControlNum3 = controlSum3 % 11;
					if(tmpControlNum3==10){
						controlNum2 = 0;
					}else{
						controlNum2 = tmpControlNum3;
					}
				}else{
					controlNum2 = tmpControlNum2;
				}
				
				if(bulstat[12]==controlNum2){
					obj.className			='';
					obj.onfocus				='';
					return true;
				}else{
					obj.className			= "inputRed";
					obj.value 				= error3; // should be a php constant or something like it
					setTimeout(function(){obj.value = "";},2000);
					return false;
				}
			break;
			default:
				obj.className			= "inputRed";
				obj.value 				= error3; // should be a php constant or something like it
				setTimeout(function(){obj.value = "";},2000);
				return false;
			break;
		}
	}
}

function validateCode(obj){
	if(obj.value==""){
		obj.className			= "inputRed";
		obj.value 				= error1; // should be a php constant or something like it
		setTimeout(function(){obj.value = "";},2000);
		return false;
	}else{
		myXmlHttpRequest.open("GET","requests/checkCode.php?code=" + obj.value,false);
		myXmlHttpRequest.send(null);
		
		if(myXmlHttpRequest.responseText==0){
			obj.className			= "inputRed";
			obj.value 				= error4; // should be a php constant or something like it
			setTimeout(function(){obj.value = "";},2000);
			return false;
		}else{
			obj.className			='';
			obj.onfocus				='';
			return true;
		}
	}
}

function validatePhone(obj){
	if(obj.value==""){
		obj.className			= "inputRed";
		obj.value 				= error1; // should be a php constant or something like it
		setTimeout(function(){obj.value = "";},2000);
		return false;
	}else{
		if(isNaN(obj.value)){
			obj.className			= "inputRed";
			obj.value 				= error5; // should be a php constant or something like it
			setTimeout(function(){obj.value = "";},2000);
			return false;
		}else{
			obj.className			='';
			obj.onfocus				='';
			return true;
		}
	}
}

function canProceed(formName){
	var result = true;
	var rqFields	= new Array();

	for(i=1;i<canProceed.arguments.length;i++){
		rqFields[i-1] = canProceed.arguments[i];
	}

	for(var i=0;i<rqFields.length;i++){
		switch(rqFields[i]){
			case 'bulstat':
				if(result==true){
					result = validateBulstat(document.forms[formName].elements[rqFields[i]]);
				}else{
					validateBulstat(document.forms[formName].elements[rqFields[i]]);
				}
			break;
			case 'email':
				if(formName=='profile'){
					if(result==true){
						result = emptyCheck(document.forms[formName].elements[rqFields[i]]);
					}else{
						emptyCheck(document.forms[formName].elements[rqFields[i]]);
					}
				}else{
					if(result==true){
						result = validateEmail(document.forms[formName].elements[rqFields[i]]);
					}else{
						validateEmail(document.forms[formName].elements[rqFields[i]]);
					}
				}
			break;
			case 'phone':
				if(formName=='profile'){
					if(result==true){
						result = emptyCheck(document.forms[formName].elements[rqFields[i]]);
					}else{
						emptyCheck(document.forms[formName].elements[rqFields[i]]);
					}
				}else{
					if(result==true){
						result = validatePhone(document.forms[formName].elements[rqFields[i]]);
					}else{
						validatePhone(document.forms[formName].elements[rqFields[i]]);
					}
				}
			break;
			case 'code':
				if(result==true){
					result = validateCode(document.forms[formName].elements[rqFields[i]]);
				}else{
					validateCode(document.forms[formName].elements[rqFields[i]]);
				}
			break;
			case 'curr_pass':
				if(result==true){
					result = emptyCheckPass(document.forms[formName].elements[rqFields[i]],'curr_pass_error');
				}else{
					emptyCheckPass(document.forms[formName].elements[rqFields[i]],'curr_pass_error');
				}
			break;
			case 'new_pass':
				if(result==true){
					result = emptyCheckPass(document.forms[formName].elements[rqFields[i]],'new_pass_error');
				}else{
					emptyCheckPass(document.forms[formName].elements[rqFields[i]],'new_pass_error');
				}
			break;
			case 'conf_pass':
				if(result==true){
					result = confirmPassword(document.forms[formName].elements[rqFields[i]],'new_pass');
				}else{
					confirmPassword(document.forms[formName].elements[rqFields[i]],'new_pass');
				}
			break;
			default:
				if(result==true){
					result = emptyCheck(document.forms[formName].elements[rqFields[i]]);
				}else{
					emptyCheck(document.forms[formName].elements[rqFields[i]]);
				}
			break;
		}
	}
	return result;
}

function confirmPassword(obj,new_pass_id){
	var new_pass_field	= document.getElementById(new_pass_id);
	var curr_pass_error	= document.getElementById('curr_pass_error');
	var new_pass_error	= document.getElementById('new_pass_error');
	var conf_pass_error	= document.getElementById('conf_pass_error');
	if(new_pass_field.value==""){
		new_pass_error.className					= "error";
		new_pass_error.innerHTML					= error1; // should be a php constant or something like it
		new_pass_error.parentNode.style.lineHeight	= "10px";
		return false;
	}else{
		new_pass_error.className					='';
		new_pass_error.innerHTML					='';
		new_pass_error.parentNode.style.lineHeight	= "0px";
	}
	if(obj.value==new_pass_field.value){
		conf_pass_error.className					='';
		conf_pass_error.innerHTML					='';
		conf_pass_error.parentNode.style.lineHeight	= "0px";
		return true;
	}else{
		conf_pass_error.className					= "error";
		conf_pass_error.innerHTML 					= error6; // should be a php constant or something like it
		conf_pass_error.parentNode.style.lineHeight	= "10px";
		return false;
	}
}
