/*
//developed by ahmed nabil hamam for flashcorner.com
//microsoft \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
//ansh [a-zA-z_]+\w+\@\w+\.\w+(\.|\w)*
//http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
1-add in the page a dive with id=error
2-add in the page and fire it when the form is fiered
function validatePage()
	{
		doSubmit=true;
		isEmail(id2el('txt'),'email is not valid',"emailErr",1,1);
	}
3-
*/
var err_dive_name="error";
var doSubmit=true;
/*********************************************************************/
function examinePattern(pattern,str)
	{	
		var re=new RegExp(pattern);
		return re.test(str);
	}
/*********************************************************************/
function id2el(id)
	{
		try
			{
				return document.getElementById(id);
			}
		catch(e)
			{
				//alert(e.name);
				return false;
			}
	}
/*********************************************************************/
function isValid(el,pattern,error,errId,blnRequired,blnErrDiv)
	{
		try
			{
				if(blnRequired && (el.value=="" || el.value==null))
					{
						return isFalse(error,errId,blnErrDiv);
					}
				if(examinePattern(pattern,el.value) || !blnRequired && (el.value=="" || el.value==null))
					{
						return isTrue(errId,blnErrDiv);
					}
				else
					{
						return isFalse(error,errId,blnErrDiv);
					}
			}
		catch(e)
			{
				//alert(e.name);
				return false;
			}
	}
/*********************************************************************/
function isFilled(el,error,errId,blnErrDiv)
	{
		try
			{
				if(el.value!="" && el.value!=null)
					{
						return isTrue(errId,blnErrDiv);
					}
				else
					{
						return isFalse(error,errId,blnErrDiv);
					}
			}
		catch(e)
			{
				//alert(e.name);
				return false;
			}
	}
/*********************************************************************/
function rteISFilled(el,error,errId,blnErrDiv)
	{
		try
			{
				var rte=null;
				rte=el.contentWindow.document.body.innerHTML;
				if(rte!="" && rte!=null)
					{
						return isTrue(errId,blnErrDiv);
					}
				else
					{
						return isFalse(error,errId,blnErrDiv);
					}
			}
		catch(e)
			{
				//alert(e.name);
				return false;
			}
	}
/*********************************************************************/
function isTrue(errId,blnErrDiv)
	{
	    hideErrStar(errId);
		if(blnErrDiv)hideErrMessage(errId);
		return true;
	}
/*********************************************************************/
function isFalse(error,errId,blnErrDiv)
	{
		doSubmit=false;
		return showErrMessage(error,errId,blnErrDiv);
	}
/*********************************************************************/
function isEmail(el,error,errId,blnRequired,blnErrDiv)
	{
		isValid(el,/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,error,errId,blnRequired,blnErrDiv);
	}
/*********************************************************************/
function isUrl(el,error,errId,blnRequired,blnErrDiv)
	{
		isValid(el,/^http:\/\/([\w-]+\.)+[\w-]+(\/[\w- \.\/?%&=]*)?$/,error,errId,blnRequired,blnErrDiv);
	}
/*********************************************************************/
function isTime(el,error,errId,blnRequired,blnErrDiv)
	{
		isValid(el,/^\d{1,2}:\d{1,2}$/,error,errId,blnRequired,blnErrDiv);
	}
/*********************************************************************/
function isDate(el,error,errId,blnRequired,blnErrDiv)
	{
		isValid(el,/^\d{4}-\d{1,2}-\d{1,2}$/,error,errId,blnRequired,blnErrDiv);
	}
/*********************************************************************/
function isNumber(el,error,errId,blnRequired,blnErrDiv)
	{
		isValid(el,/^\d*$/,error,errId,blnRequired,blnErrDiv);
	}
/*********************************************************************/
function isContainsSP(el,error,errId,blnRequired,blnErrDiv)
	{
		isValid(el,/^[^\@\#\$\%\&\(\)\-\=\+\!\~\\\/\'\"\]\[\{\}\"\'\*]*$/,error,errId,blnRequired,blnErrDiv);
	}
/*********************************************************************/
function compare2elements(el,el2,sign,error,errId,blnRequired,blnErrDiv)
	{
		var res=null;
		if(blnRequired && (el.value=="" || el.value==null))
			{
				return isFalse(error,errId,blnErrDiv);
			}
		switch(sign)
			{
				case "=":
					el.value == el2.value?res=true:res=false;
					break;
				case ">":
					el.value > el2.value?res=true:res=false;
					break;
				case "<":
					el.value < el2.value?res=true:res=false;
					break;
				case ">=":
					el.value >= el2.value?res=true:res=false;
					break;
				case "<=":
					el.value <= el2.value?res=true:res=false;
					break;
			}
		if(res)
			{
				return isTrue(errId,blnErrDiv);
			}
		else
			{
				return isFalse(error,errId,blnErrDiv);
			}
	}
/*********************************************************************/
function compare2value(el,val,sign,error,errId,blnRequired,blnErrDiv)
	{
		var res=null;
		if(blnRequired && (el.value=="" || el.value==null))
			{
				return isFalse(error,errId,blnErrDiv);
			}
		switch(sign)
			{
				case "=":
					el.value == val?res=true:res=false;
					break;
				case ">":
					el.value > val?res=true:res=false;
					break;
				case "<":
					el.value < val?res=true:res=false;
					break;
				case ">=":
					el.value >= val?res=true:res=false;
					break;
				case "<=":
					el.value <= val?res=true:res=false;
					break;
			}
		if(res)
			{
				return isTrue(errId,blnErrDiv);
			}
		else
			{
				return isFalse(error,errId,blnErrDiv);
			}
	}
/*********************************************************************/
function showErrMessage(message,errId,blnErrDiv)
	{
		try
			{
				if(showErrStar(errId) && blnErrDiv)
					{
						var err_div=document.getElementById(err_dive_name);
						var err=document.createElement("li");
						err.setAttribute("id",errId+"_mes");
						var mes=document.createTextNode(message);
						err.appendChild(mes);
						err_div.appendChild(err);
				}
				return false;
			}
		catch(e)
			{
				//alert(e.name);
				return false
			}

	}
/*********************************************************************/
function showErrStar(errId)
	{
		try
			{
				var star=document.getElementById(errId);
				if(star.style.display=="")
					{
						return false;
					}
				else if(star.style.display=="none")
					{
						star.style.display="";
						return true;
					}
			}
		catch(e)
			{
				//alert(e.name);
			}

	}
/*********************************************************************/
function hideErrStar(errId)
	{
		try
			{
				var star=document.getElementById(errId);
				star.style.display="none";
				return true;
			}
		catch(e)
			{
				//alert(e.name);
				return false;
			}

	}
/*********************************************************************/
function hideErrMessage(errId)
	{
		try
			{
				if(document.getElementById(errId+"_mes"))
					{
						var err_div=document.getElementById(err_dive_name);
						var err_li=document.getElementById(errId+"_mes");
						err_div.removeChild(err_li);
						return true;
					}
			}
		catch(e)
			{
				//alert(e.name);
				return false;
			}
	}
/*********************************************************************/
function isPageValid()
	{
		return doSubmit;
	}
/*********************************************************************/
