﻿function validateForm(form)
{
	var fieldscount = form.length;
	var result= new Array();

	for(var i=0;i<fieldscount;++i)
	{
		field = form.elements[i];

		if ((field.type != 'submit') && (!validateField(field)))
		{
			result.push(field);
		}
	}

	if (result.length > 0) {
		result[0].focus();
		return false;
		}
}

function validateField(field)
{
	required = field.getAttribute('required');
	mode = field.getAttribute('mode');
	minx = field.getAttribute('minx');
	maxx = field.getAttribute('maxx');
	equal = field.getAttribute('equal');
	emsg = field.getAttribute('emsg');

	if (required == 1)
	{
		if (((field.type == "text") || (field.type == "password") || (field.type == "textarea")) && (Trim(field.value) == ''))
		{
			document.getElementById(field.name+'msg').style.display = 'block';
			document.getElementById(field.name+'msg').innerHTML = 'الحقل فارغ.';
			field.className = 'error';
			return false;
		}
		else if ((field.type == "select-one") && (!validateSelect(field)))
		{
			document.getElementById(field.name+'msg').style.display = 'block';
			document.getElementById(field.name+'msg').innerHTML = 'يجب إختيار أحد الخيارات.';
			field.className = 'error';
			return false;
		}
		else if ((field.type == "checkbox") && (!validateCheck(field)))
		{
			document.getElementById(field.name+'msg').style.display = 'block';
			document.getElementById(field.name+'msg').innerHTML = emsg;
			field.className = 'error';
			return false;
		}
		else if ((minx) && (Trim(field.value).length < minx)) {
			document.getElementById(field.name+'msg').style.display = 'block';
			document.getElementById(field.name+'msg').innerHTML = 'يجب أن يحتوي الحقل على أكثر من '+minx+'حروف.';
			field.className = 'error';
			return false;
		}
		else if ((maxx) && (Trim(field.value).length > maxx)) {
			document.getElementById(field.name+'msg').style.display = 'block';
			document.getElementById(field.name+'msg').innerHTML = 'يجب أن يحتوي الحقل على أقل من '+maxx+' حروف.';
			field.className = 'error';
			return false;
		}
		else if ((mode == 'string') && (!validateString(field.value))) {
			document.getElementById(field.name+'msg').style.display = 'block';
			document.getElementById(field.name+'msg').innerHTML = 'يجب أن يحتوي الحقل على حروف أو أرقام أو الرموز - _ فقط.';
			field.className = 'error';
			return false;
		}
		else if ((mode == 'num') && (!validateNum(field.value))) {
			document.getElementById(field.name+'msg').style.display = 'block';
			document.getElementById(field.name+'msg').innerHTML = 'يجب أن يحتوي الحقل على أرقام فقط.';
			field.className = 'error';
			return false;
		}
		else if ((mode == 'email') && (!validateEmail(field.value))) {
			document.getElementById(field.name+'msg').style.display = 'block';
			document.getElementById(field.name+'msg').innerHTML = 'يرجى كتابة بريد ألكتروني صحيح.';
			field.className = 'error';
			return false;
		}
		else if ((equal) && (field.value != document.getElementById(equal).value)) {
			document.getElementById(field.name+'msg').style.display = 'block';
			document.getElementById(field.name+'msg').innerHTML = emsg;
			field.className = 'error';
			return false;
		}
		else
		{
			document.getElementById(field.name+'msg').style.display = 'none';
			document.getElementById(field.name+'msg').innerHTML = '';
			field.className = '';
			return true;
		}
	}
	else
		return true;
}

function validateString(VALUE) {
if (/^[\w\sأ-ي\-_]+$/.test(VALUE)){
return (true)
}
return (false)  
}
function validateNum(VALUE) {
if (/^[0-9]+$/.test(VALUE)){
return (true)
}
return (false)  
}
function validateEmail(VALUE) {
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(VALUE)){
return (true)
}
return (false)
}

function validateSelect(field) {
if (field.selectedIndex > 0){
return (true)
}
return (false)
}

function validateCheck(field) {
if (field.checked){
return (true)
}
return (false)
}

function Trim(TRIM_VALUE){
if(TRIM_VALUE.length < 1){
return"";
}
TRIM_VALUE = RTrim(TRIM_VALUE);
TRIM_VALUE = LTrim(TRIM_VALUE);
if(TRIM_VALUE==""){
return "";
}
else{
return TRIM_VALUE;
}
} //End Function

function RTrim(VALUE){
var w_space = String.fromCharCode(32);
var v_length = VALUE.length;
var strTemp = "";
if(v_length < 0){
return"";
}
var iTemp = v_length -1;

while(iTemp > -1){
if(VALUE.charAt(iTemp) == w_space){
}
else{
strTemp = VALUE.substring(0,iTemp +1);
break;
}
iTemp = iTemp-1;

} //End While
return strTemp;

} //End Function

function LTrim(VALUE){
var w_space = String.fromCharCode(32);
if(v_length < 1){
return"";
}
var v_length = VALUE.length;
var strTemp = "";

var iTemp = 0;

while(iTemp < v_length){
if(VALUE.charAt(iTemp) == w_space){
}
else{
strTemp = VALUE.substring(iTemp,v_length);
break;
}
iTemp = iTemp + 1;
} //End While
return strTemp;
} //End Function
