  // BOI, followed by one or more digits, followed by EOI.

var reInteger = /^\d+$/
var reFloat = /^((\d+(\.\d*)?)|((\d*\.)?\d+))$/
var defaultEmptyOK = false
var reEmail = /^.+\@.+\..+$/
var reWhitespace = /^\s+$/
//var reDate = \b(?<month>\d{1,2})/(?<day>\d{1,2})/(?<year>\d{2,4})\b
var reDate=/^(\d?)+(\d)+(\/(\d?)+(\d))+(\/\d\d\d\d)/

// Check whether string s is empty.

function isEmpty(s){
  return ((s == null) || (s.length == 0))
}
////////////////////////////////////////////
function isMobileNo(s)
{ 
 if(!isEmpty(s) )
 {
  if(!isInteger(s) || s.length<10 || s.charAt(0)=='0') return false;
 }else return false;  
 return true;
}
////////////////////////////////////////////
function isPhoneNo(s)
{ 
 if(!isEmpty(s) )
 {
  if(!isInteger(s) || s.length<7 /*|| s.charAt(0)=='0'*/ ) return false;
 }else return false;  
 return true;
}
////////////////////////////////////////////
function isFloat (s)
{   if (isEmpty(s)) 
       if (isFloat.arguments.length == 1) return defaultEmptyOK;
       else return (isFloat.arguments[1] == true);

    return reFloat.test(s)
}

/////////////////////////////////////
function isInteger (s)

{   var i;

    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);

    return reInteger.test(s)
}

////////////////////////////////////
function isDate(s)
{ 
  var i;
    if (isEmpty(s)) 
       if (isDate.arguments.length == 1) return defaultEmptyOK;
       else return (isDate.arguments[1] == true);

    return reDate.test(s)
}
////////////////////////////////////
function isEmail (s)
{   if (isEmpty(s)) 
       if (isEmail.arguments.length == 1) return defaultEmptyOK;
       else return (isEmail.arguments[1] == true);
    
    else {
       return reEmail.test(s)
    }
}
////////////////////////////////
function isWhitespace (s)
{   // Is s empty?
    return (isEmpty(s) || reWhitespace.test(s));
}
////////////////////////////////
function checkString (Str,  emptyOK)
{   // Next line is needed on NN3 to avoid "undefined is not a number" error
    // in equality comparison below.
    if (checkString.arguments.length == 2) emptyOK = defaultEmptyOK;
    if ((emptyOK == true) && (isEmpty(Str))) return true;
   
    if (isWhitespace(Str)) 
		{		
		return false;}
	 else return true;
}
////////////////////////////////
function test()
{
    window.alert('Test Ok');
}
////////////////////////////////  
function LookupForm(lkpForm, Fields)
{
    var myargs      = Fields;
	var winsettings = "center:yes;resizable:no;dialogheight=650px;dialogwidth=500px";		
	var myargs      = window.showModalDialog(lkpForm, myargs, winsettings);

	if (myargs == null)
	{
		window.alert('لم تقم بأي إختيار');
        for (i = 0; i < Fields.length; ++i) document.getElementById(Fields[i]).value = '';				
	}
	else
	{
        for (i = 0; i < Fields.length; ++i) document.getElementById(Fields[i]).value = myargs[i].toString();							
	}
}
////////////////////////////////  
function IDOnKeyup(curTextBox)
{			
	if(!isEmpty(curTextBox.value) && !isInteger(curTextBox.value))
	{
		alert("الرقم يجب أن يكون عدد");
		curTextBox.value = '';
		curTextBox.focus();
		
		return false;
	}
    
    return true;
}
////////////////////////////////  
function IDOnKeyupFloat(curTextBox)
{			
	if(!isEmpty(curTextBox.value) && !isFloat(curTextBox.value))
	{
		alert("الرقم يجب أن يكون عدد");
		curTextBox.value = '';
		curTextBox.focus();
		
		return false;
	}
    
    return true;
}
////////////////////////////////  

