﻿// version 2.0.0.0

var pl4e_v = new Object();
var pl4e_e = new Object();
var pl4e_eL = 0;

function getForm(formId)
{
	return(document.forms(formId));
}

function pl4e_addErr(fieldName, error)
{
	if(pl4e_eL<pl4e_eMax)
	{
		if(pl4e_e[fieldName]==null)
		{
			pl4e_e[fieldName] = error;
			pl4e_eL ++;
		}
	}
}

function pl4e_addVC(formId, groupName, fieldName, attribute, value)
{
	if(pl4e_v[formId]==null)
	{
		pl4e_v[formId] = new Array();
	}
	var vcName = formId + "_" + fieldName + "_" + value;
	var str = "VC(\"" + formId + "\", \"" + fieldName + "\", \"" +
		attribute + "\",";
	if(typeof(value)=="String")
	{
		str += "\"" + value + "\")";
	}
	else
	{
		str += value + ")";
	}
	//pl4e_v[groupName].push(str);
	pl4e_v[groupName][pl4e_v[groupName].length] = str;
}

function pl4e_addM(formId, groupName, fieldName, error)
{
	if(pl4e_v[groupName]==null)
	{
		pl4e_v[groupName] = new Array();
	}
/*
	pl4e_v[groupName].push("M(\"" + formId + "\", \"" + fieldName + "\",\"" +
		error.replace("\\", "\\\\") + "\")");
*/
	pl4e_v[groupName][pl4e_v[groupName].length] = "M(\"" + formId + "\", \"" +
		fieldName + "\",\"" + error.replace("\\", "\\\\") + "\")";
}

function pl4e_addP(formId, groupName, fieldName, pattern, error)
{
	if(pl4e_v[groupName]==null)
	{
		pl4e_v[groupName] = new Array();
	}
/*
	pl4e_v[groupName].push("P(\"" + formId + "\", \"" + fieldName + "\",\"" +
		pattern + "\", \"" + error.replace("\\", "\\\\") + "\")");
*/
	pl4e_v[groupName][pl4e_v[groupName].length] = "P(\"" + formId + "\", \"" +
		fieldName + "\",\"" + pattern + "\", \"" + error.replace("\\", "\\\\") + "\")";
}

function pl4e_addNR(formId, groupName, fieldName, min, max, error)
{
	if(pl4e_v[groupName]==null)
	{
		pl4e_v[groupName] = new Array();
	}
/*
	pl4e_v[groupName].push("NR(\"" + formId + "\", \"" + fieldName + "\"," + min + "," + max +
		",\"" + error.replace("\\", "\\\\") + "\")");
*/
	pl4e_v[groupName][pl4e_v[groupName].length] = "NR(\"" + formId + "\", \"" +
		fieldName + "\"," + min + "," + max + ",\"" + error.replace("\\", "\\\\") + "\")";
}

function pl4e_addSR(formId, groupName, fieldName, min, max, error)
{
	if(pl4e_v[groupName]==null)
	{
		pl4e_v[groupName] = new Array();
	}
/*
	pl4e_v[groupName].push("SR(\"" + formId + "\", \"" + fieldName + "\"," + min + "," + max +
		",\"" + error.replace("\\", "\\\\") + "\")");
*/
	pl4e_v[groupName][pl4e_v[groupName].length] = "SR(\"" + formId + "\", \"" +
		fieldName + "\"," + min + "," + max + ",\"" + error.replace("\\", "\\\\") + "\")";
}

function pl4e_addC(formId, groupName, fieldNames, error)
{
	if(pl4e_v[groupName]==null)
	{
		pl4e_v[groupName] = new Array();
	}
	var fn = fieldNames.join("\",\"");
/*
	pl4e_v[groupName].push("C(\"" + formId + "\", new Array(\"" + fn + "\"),\""
		+ error.replace("\\", "\\\\") + "\")");
*/
	pl4e_v[groupName][pl4e_v[groupName].length] = "C(\"" + formId + "\", new Array(\"" +
		fn + "\"),\"" + error.replace("\\", "\\\\") + "\")";
}

function pl4e_addSC(formId, groupName, fieldNames, ignoreCase, error)
{
	if(pl4e_v[groupName]==null)
	{
		pl4e_v[groupName] = new Array();
	}
	var fn = fieldNames.join("\",\"");
/*
	pl4e_v[groupName].push("SC(\"" + formId + "\", new Array(\"" + fn + "\")," + ignoreCase +
		",\"" + error.replace("\\", "\\\\") + "\")");
*/
	pl4e_v[groupName][pl4e_v[groupName].length] = "SC(\"" + formId + "\", new Array(\"" +
		fn + "\")," + ignoreCase + ",\"" + error.replace("\\", "\\\\") + "\")";
}



function pl4e_checkVC(formId, fieldName, attribute, value)
{
	var forme = getForm(formId);
	if(forme==null)
	{
		return(true);
	}
	if(forme[fieldName][attribute]!=value)
	{
		return(true);
	}
	var v = pl4e_v[formId + "_" + fieldName + "_" + attribute + "_" + value];
	for(f in v)
	{
		eval("pl4e_check" + v[f]);
	}
}

function pl4e_checkM(formId, fieldName, error)
{
	var forme = getForm(formId);
	if(forme==null)
	{
		return(true);
	}
	if(forme[fieldName].value=="")
	{
		pl4e_addErr(fieldName, error);
	}
}

function pl4e_checkP(formId, fieldName, pattern, error)
{
	var forme = getForm(formId);
	if(forme==null)
	{
		return(true);
	}
	if(forme[fieldName].value=="")
	{
		return;
	}
	var re = new RegExp(pattern);
	if(!re.test(forme[fieldName].value))
	{
		pl4e_addErr(fieldName, error);
	}
}

function pl4e_checkNR(formId, fieldName, min, max, error)
{
	var forme = getForm(formId);
	if(forme==null)
	{
		return(true);
	}
	if(forme[fieldName].value=="")
	{
		return;
	}
	var f = parseFloat(forme[fieldName].value);
	if(isNaN(f))
	{
		pl4e_addErr(fieldName, error);
	}
	var raise = false;
	raise = ((min!=null) && (f<min));
	raise = raise || ((max!=null) && (f>max));
	if(raise)
	{
		pl4e_addErr(fieldName, error);
	}	
}

function pl4e_checkSR(formId, fieldName, min, max, error)
{
	var forme = getForm(formId);
	if(forme==null)
	{
		return(true);
	}
	if(forme[fieldName].value=="")
	{
		return;
	}
	var l = forme[fieldName].value.length;
	var raise = false;
	raise = ((min!=null) && (l<min));
	raise = raise || ((max!=null) && (l>max));
	if(raise)
	{
		pl4e_addErr(fieldName, error);
	}	
}

function pl4e_checkC(formId, fieldNames, error)
{
	var forme = getForm(formId);
	if(forme==null)
	{
		return(true);
	}
	var v;
	for(fn in fieldNames)
	{
		if(v==null)
		{
			v = forme[fieldNames[fn]].value;
		}
		else
		{
			if(v!=forme[fieldNames[fn]].value)
			{
				pl4e_addErr(fieldNames[fn], error);
				break;
			}
		}
	}
}

function pl4e_checkSC(formId, fieldNames, ignoreCase, error)
{
	var forme = getForm(formId);
	if(forme==null)
	{
		return(true);
	}
	var v;
	for(fn in fieldNames)
	{
		if(v==null)
		{
			v = forme[fieldNames[fn]];
		}
		else
		{
			if(ignoreCase)
			{
				if(v!=forme[fieldNames[fn]])
				{
					pl4e_addErr(fieldNames[fn], error);
					break;
				}
			}
			else
			{
				if(v.toLower()!=forme[fieldNames[fn]].toLower())
				{
					pl4e_addErr(fieldNames[fn], error);
					break;
				}
			}
		}
	}
}



function checkForm(forme)
{
	var formId = forme.id;
	var v = pl4e_v[formId];
	if(v==null)
	{
		return(true);
	}
	pl4e_e = new Object();
	pl4e_eL = 0;
	for(f in v)
	{
		eval("pl4e_check" + v[f]);
	}

	if(pl4e_eL>0)
	{
		var er = "";
		for(e in pl4e_e)
		{
			er += " " + pl4e_e[e] + "\r\n";
		}
		alert("ألرجاء اصلاح هذه الأخطاء قبل ألتسجيل\r\n\r\n" +
			er);
		return(false);
	}
	return(true);
}