/////////////////////////////////////////////////////////////
///////////////FORM VALIDATION FUNCTIONS/////////////////////
/////////////////////////////////////////////////////////////
//////////////////configuration variables///////////////////////////
//dateFormat : date format (i.e: DD/MM/YYYY)
//entryTypes : DataTypes (i.e: email,number,date)
//ValidDomainExtensions : valid email domains
//ArabicLetter : arabic letters
/////////////////available functions/////////////////////////////////
//validateAction(FormObject)
//ValidateDataType(FormObject)
//ValidateDetails(FormObject)
//ValidateFormItems(FormObject)
//ValidateUsers(FormObject) : validation for add user form
//ValidateModifyUsersForm(FormObject) : validation of modify user form
//ValidateUsersTypes(FormObject)
//ValidateCssManagerForm(FormObject)
//ValidateLawyerForm(FormObject)
//ValidateClientTypeForm(FormObject)
//ValidateCalendarForm(FormObject)
//ValidateConsultations()
//ValidateConsultationReply()
//ValidateCaseForm(FormObject)
//ValidateCaseSearchForm(FormObject)
//ValidationNoteBook(FormObject)
//ValidationNoteBookGroup(FormObject)
//ValidateSectionsForm(FormObject)
//ValidateSendMail(FormObject)
//ValidateMailList(FormObject)
//ValidationAdvertisementForm(FormObject)
//ValidationTemplate(obj,Required,dataType,LengthGreaterThan,LengthLessThan,DoNotContain,[FieldCaption])
//ValidateClientForm(FormObject)
//ValidateSearchForm(FormObject)
//LoginFormValidation(FormObject)
//check_date(field,format)
//IsDateBeforeToday(datefield1,format)
//isEmpty(obj)
//isFirstSelected(obj)
//isNull(obj)
//isDisabled(obj)
//isNumber(obj)
//isLengthLessThanExpected(obj,leastLength)
//isLengthGreaterThanExpected(obj,MaximumLength)
//contains(obj,stringToSearch)
//ClientResponse(obj,message)
//compareDates(datefield1,datefield2,format)
//check_email(obj)
//GetFormFieldByName(FormObject,FieldName)
//GetTagByName(tagName,ItemName)
//GetTagByNameInParentWindow(tagName,ItemName)
//SpecialStringFormat(obj,StringFormat)
//getDay(datefield,format)
//getMonth(datefield,format)
///getYear(datefield,format)
//multipleValidation(FormObject,FieldsIndexes,RequiredArray,ValidationTypeArray,MinimumLengthArray,MaximumLengthArray,RubbishTextArray)
/////////////////////////////////////////////////////////////
var dateFormat = "DD/MM/YYYY";
//dataTypes that should be validated                
var EntryTypes = new Array("emailEntry","numberEntry","dateTimeEntry","selectEntry","checkBox","WebSite","multiSelectionListBox");
var EMAIL_DATA_TYPE = EntryTypes[0];
var NUMBER_DATA_TYPE = EntryTypes[1];
var DATE_DATA_TYPE = EntryTypes[2];
var COMBO_BOX_DATA_TYPE = EntryTypes[3];
var CHECKBOX_DATA_TYPE = EntryTypes[4];    
var WEB_SITE_URL_DATA_TYPE = EntryTypes[5]; 
var MULTISELECT_LIST_BOX_DATA_TYPE = EntryTypes[6];
//Error Messages
var ErrorMessages = new Array("ليس بريد صحيح","يجب أن يكون رقما","ليس تاريخ صحيح","لا يمكن أن يعطى أول إختيار","ليس موقع على الإنترنت","يجب أن يزيد طوله عن","يجب أن يقل طوله عن","لا يمكن أن يحتوى على الحروف التالية","يجب إختياره","لا يمكن تركه خاليا" , "يجب تحديد نطاق البحث" , "يجب إختيار عنصر واحد من"); 
var ERROR_NOT_VALID_EMAIL = ErrorMessages[0];
var ERROR_NOT_VALID_NUMBER = ErrorMessages[1];
var ERROR_NOT_VALID_DATE = ErrorMessages[2];
var ERROR_FIRST_CHOICE_FORBIDDEN = ErrorMessages[3];
var ERROR_NOT_VALID_WEB_SITE = ErrorMessages[4];
var ERROR_LESS_THAN_REQUIRED = ErrorMessages[5];
var ERROR_GREATER_THAN_REQUIRED = ErrorMessages[6];
var ERROR_HAVE_INVALID_LETTERS = ErrorMessages[7];
var ERROR_MUST_BE_CHECKED = ErrorMessages[8];
var ERROR_CANNOT_BE_NULL = ErrorMessages[9];
var ERROR_MUST_SELECT_SEARCH_CRITERIA = ErrorMessages[10];
var ERROR_AT_LEAST_ONE_ITEM_SELECTED =  ErrorMessages[11];
//valid email domains
var ValidDomainExtensions = new Array("com" ,"net","gov","org","edu","biz" ,"tv","us"); 
//arabic characters
var ArabicLetter = "ذضصثقفغعهخحجدطكمنتالبيسشئءؤرلاىةوزظألألآآ";
///////////////////////////////////////////////////////////ValidateCDSForm
//////////////////////////////////////////////////////
function ValidateCDSForm(FormObject)
{
	var obj = GetFormFieldByName(FormObject,"LastDBUpdate");
	if( !ValidationTemplate(obj,true,"text",-1,40,"'<>","تاريخ أخر بيان في قاعدة البيانات")   )
	{
		return false;
	}
	var obj2 = GetFormFieldByName(FormObject,"VersionDate");
	alert(obj.value+"//////////////////"+obj2.value)
	if( obj.value < obj2.value )
	{
		alert("رجاء تاريخ الاسطوانه يجب ان يكون اقل من "+obj2.value)
		obj.focus();
		return false;
	}
	return true;
}
function ValidateInvoicesForm(FormObject)
{
	var obj = GetFormFieldByName(FormObject,"TotalValue");
	if( !ValidationTemplate(obj,true,"text",-1,40,"'<>","إجمالي المشتروات")   )
	{
		return false;
	}
	if (!isNumber(obj))
	{
		alert("رجاء ادخل ارقام فقط");
		obj.focus();
		return false;
	}
	
	obj = GetFormFieldByName(FormObject,"Coin");
	if( !ValidationTemplate(obj,true,EntryTypes[3],1,-1,"","العملة")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"ValueAfterDiscount");
	if( !ValidationTemplate(obj,true,"text",-1,40,"'<>","الإجمالي بعد التخفيض")   )
	{
		return false;
	}
	if (!isNumber(obj))
	{
		alert("رجاء ادخل ارقام فقط");
		obj.focus();
		return false;
	}
	obj = GetFormFieldByName(FormObject,"Paymentway");
	if( !ValidationTemplate(obj,true,EntryTypes[3],1,-1,"","طريقة الدفع")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"CardType");
	if( !ValidationTemplate(obj,true,EntryTypes[3],1,-1,"","نوع بطاقة الإتمان")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"Cheque");
	if( !ValidationTemplate(obj,true,"text",-1,40,"'<>","رقم الشيك")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"BankID");
	if( !ValidationTemplate(obj,true,EntryTypes[3],1,-1,"","اسم البنك")   )
	{
		return false;
	}
	return true;
}
//////////////////////////////////////////////////////////
function ValidateCustomerProducts(FormObject)
{
	var obj = GetFormFieldByName(FormObject,"ProductTypeID");
	if( !ValidationTemplate(obj,true,EntryTypes[3],1,-1,"","نوع المنتج")   )
	{
		return false;
	}
	 obj = GetFormFieldByName(FormObject,"CopiesNO");
	if( !ValidationTemplate(obj,true,"text",-1,4,"'<>","عدد النسخ")   )
	{
		return false;
	}
	if (!isNumber(obj))
	{
		alert("رجاء ادخل ارقام فقط");
		obj.focus();
		return false;
	}
	obj = GetFormFieldByName(FormObject,"PaiedValue");
	if( !ValidationTemplate(obj,true,"text",-1,6,"'<>","المبلغ المدفوع")   )
	{
		return false;
	}
	if (!isNumber(obj))
	{
		alert("رجاء ادخل ارقام فقط");
		obj.focus();
		return false;
	}
	obj = GetFormFieldByName(FormObject,"InvoiceNo");
	if( !ValidationTemplate(obj,true,EntryTypes[3],1,-1,"","رقم الإيصال")   )
	{
		return false;
	}
	return true;
}
//////////////////////////////////////////////////////
function ValidateSubscriptionForm(FormObject)
{
	var obj = GetFormFieldByName(FormObject,"ProductID");
	if( !ValidationTemplate(obj,true,EntryTypes[3],1,-1,"","المنتج")   )
	{
		return false;
	}
	
	obj = GetFormFieldByName(FormObject,"SubscriptionCase");
	if( !ValidationTemplate(obj,true,EntryTypes[3],1,-1,"","حالة الإشتراك")   )
	{
		return false;
	}
	return true;
}
//////////////////////////////////////////////////////
function LoginForm(FormObject)
{
	var obj = GetFormFieldByName(FormObject,"UserNameTextBox");
	if( !ValidationTemplate(obj,true,"text",5,250,"'?%&@(*=/\!~.,-);,<>[]+^$#","إسم المستخدم")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"PasswordTextBox");
	if( !ValidationTemplate(obj,true,"text",5,250,"'<>","كلمة السر")   )
	{
		return false;
	}
}
//////////////////////////////////////////////////////////////////////////
//users adding formUsersTypeID
//////////////////////////////////////////////////////////////////////////
function CustomerValidation(FormObject)
{
	
	var obj = GetFormFieldByName(FormObject,"UsersTypeID");
	if( !ValidationTemplate(obj,true,EntryTypes[3],1,-1,"","نوع المستخدم")   )
	{
		return false;
	}
	
	obj = GetFormFieldByName(FormObject,"CountryID");
	if( !ValidationTemplate(obj,true,EntryTypes[3],1,-1,"","البلد")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"CityID");
	var objCity = GetFormFieldByName(FormObject,"NewCity");
	//alert(obj.value);
	if( obj.value == "0" && objCity.value == "" )
	{
		alert("رجاء حدد الدوله في احدى الخليتين المحددين للدولة");
		obj.focus();
		return false;
		
	}
	
	obj = GetFormFieldByName(FormObject,"FirstName");
	if( !ValidationTemplate(obj,true,"text",5,250,"'?%&@(*=/\!~.,-);,<>[]+^$#","الاسم الاول")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"MiddleName");
	if( !ValidationTemplate(obj,true,"text",5,250,"'?%&@(*=/\!~.,-);,<>[]+^$#","الاسم الثاني")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"LastName");
	if( !ValidationTemplate(obj,true,"text",5,250,"'?%&@(*=/\!~.,-);,<>[]+^$#","الاسم الثالث")   )
	{
		return false;
	}
	
	obj = GetFormFieldByName(FormObject,"username");
	if( !ValidationTemplate(obj,true,"text",5,250,"'?%&@(*=/\!~.,-);,<>[]+^$#","إسم المستخدم")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"Password");
	if( !ValidationTemplate(obj,true,"text",8,250,"'<>","كلمة السر")   )
	{
		return false;
	}
	var objConfirmedPassword = GetFormFieldByName(FormObject,"ConfirmPasswordTextBox");
	try{
		if( obj != null && objConfirmedPassword != null){				
			if (obj.value != objConfirmedPassword.value)
			{
				alert("تأكيد كلمة السر لايساوى كلمة السر الأولى");
				objConfirmedPassword.focus();
				return false;
			}
		}
	}catch(e){}
	obj = GetFormFieldByName(FormObject,"EmailAddress");
	if( !ValidationTemplate(obj,true,EntryTypes[0],-1,250,"'<> []=*","البريد الالكتروني")   )
	{
		return false;
	}
	
	return true;
}

function CountryValidation(FormObject){
	var obj = GetFormFieldByName(FormObject,"NameArabic");
	if( !ValidationTemplate(obj,true,"text",-1,100,"'<>","اسم البلد")   )
	{
		return false;
	}
	 obj = GetFormFieldByName(FormObject,"Prefix");
	if( !ValidationTemplate(obj,true,"text",-1,5,"'<>","رمز البلد")   )
	{
		return false;
	}
	 obj = GetFormFieldByName(FormObject,"CurrencyArabic");
	if( !ValidationTemplate(obj,true,"text",-1,50,"'<>","عملة البلد")   )
	{
		return false;
	} 
	obj = GetFormFieldByName(FormObject,"CoinPreFix");
	if( !ValidationTemplate(obj,true,"text",-1,10,"'<>","رمز عملة البلد")   )
	{
		return false;
	} 
	obj = GetFormFieldByName(FormObject,"TelCode");
	if( !ValidationTemplate(obj,true,"text",-1,10,"'<>","مفتاح أرقام الهواتف في البلد")   )
	{
		return false;
	}
	
	return true;
}

/////////////////////////////////////////////////////
//validate BankValidation form
//////////////////////////////////////////////
function BankValidation(FormObject){
	var obj = GetFormFieldByName(FormObject,"Name");
	if( !ValidationTemplate(obj,true,"text",-1,200,"'<>","اسم البنك")   )
	{
		return false;
	}
	
	return true;
}

//////////////////////////////////////////////////////
/////////////////////////////////////////////////////
//validate IPValidation form
//////////////////////////////////////////////
function IPValidation(FormObject){
	var obj = GetFormFieldByName(FormObject,"FromIP");
	if( !ValidationTemplate(obj,true,"text",-1,200,"'<>","بداية المدى")   )
	{
		return false;
	}
	var obj = GetFormFieldByName(FormObject,"ToIP");
	if( !ValidationTemplate(obj,true,"text",-1,200,"'<>","نهاية المدى")   )
	{
		return false;
	}
	return true;
}
//////////////////////////////////////////////////////
/////////////////////////////////////////////////////
//validate CityValidation form
//////////////////////////////////////////////
function CityValidation(FormObject){
	var obj = GetFormFieldByName(FormObject,"CityTitle");
	if( !ValidationTemplate(obj,true,"text",-1,200,"'<>","اسم المدينة")   )
	{
		return false;
	}
	
	return true;
}
//////////////////////////////////////////////////////
/////////////////////////////////////////////////////
//validate RegionValidation form
//////////////////////////////////////////////
function RegionValidation(FormObject){
	var obj = GetFormFieldByName(FormObject,"RegionTitle");
	if( !ValidationTemplate(obj,true,"text",-1,200,"'<>","اسم الاقليم")   )
	{
		return false;
	}
	
	return true;
}
//////////////////////////////////////////////////////
/////////////////////////////////////////////////////
//validate action form
//////////////////////////////////////////////
function BranchValidation(FormObject){
	var obj = GetFormFieldByName(FormObject,"BranchTitle");
	if( !ValidationTemplate(obj,true,"text",-1,200,"'<>","اسم الفرع")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"PreFix");
	if( !ValidationTemplate(obj,true,"text",1,5,"()@,?%'*<>"+ArabicLetter,"رمز الفرع")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"Country");
	if( !ValidationTemplate(obj,true,"text",-1,250,"'<>","البلد")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"City");
	if( !ValidationTemplate(obj,true,"text",-1,250,"'<>","المدينة")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"Email");
	if( !ValidationTemplate(obj,true,EntryTypes[0],-1,250,"'","البريد الإلكتروني الرئيسي للفرع")   )
	{
		return false;
	}
	return true;
}
//////////////////////////////////////////////////////
/////////////////////////////////////////////////////
//validate action form
//////////////////////////////////////////////
function validateAction(FormObject){
	var obj = GetFormFieldByName(FormObject,"ActionName");
	if( !ValidationTemplate(obj,true,"text",1,250,"'? %&@(*-);,/\[]+^$#"+ArabicLetter,"ACTION NAME")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"ActionFile");
	if( !ValidationTemplate(obj,true,"text",1,250,"()@,?%'*<>"+ArabicLetter,"ACTION FILE")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"ActionCaption");
	if( !ValidationTemplate(obj,false,"text",-1,250,"'<>","ACTION CAPTION")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"ActionClass");
	if( !ValidationTemplate(obj,false,"text",-1,250,"'<>","ACTION CLASS")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"ActionOperation");
	if( !ValidationTemplate(obj,false,"text",-1,250,"'<>","ACTION OPERATION")   )
	{
		return false;
	}
	return true;
}
///////////////////////////////////////////////////////////////////////////////
//validate clients (calendar)
/////////////////////////////////////////////////////////////////////////////
function ValidateClientForm(FormObject)
{
	var obj = GetFormFieldByName(FormObject,"ClientName");
	if( !ValidationTemplate(obj,true,"text",-1,250,"'<=+[]().,;%$&#@!~-+_>","CLIENT NAME")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"ClientCountry");
	if( !ValidationTemplate(obj,false,"text",-1,250,"'","CLIENT COUNTRY")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"ClientCity");
	if( !ValidationTemplate(obj,false,"text",-1,250,"'","CLIENT CITY")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"ClientAddress");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'","CLIENT ADDRESS")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"ClientTel");
	if( !ValidationTemplate(obj,false,EntryTypes[1],-1,250,"'","CLIENT TELEPHONE")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"ClientFax");
	if( !ValidationTemplate(obj,false,EntryTypes[1],-1,250,"'","CLIENT FAX")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"ClientMob");
	if( !ValidationTemplate(obj,false,EntryTypes[1],-1,250,"'","CLIENT MOBILE")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"ClientEmail");
	if( !ValidationTemplate(obj,false,EntryTypes[0],-1,250,"'","CLIENT EMAIL")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"ClientURL");
	if( !ValidationTemplate(obj,false,"text",-1,250,"'","CLIENT URL")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"ClientNotes");
	if( !ValidationTemplate(obj,false,"text",-1,250,"'","CLIENT NOTES")   )
	{
		return false;
	}

	return true;
}
///////////////////////////////////
///////ValidateKholasaDoc/////////
/////////////////////////////////
function ValidateKholasaDoc(FormObject)
{
	var obj = GetFormFieldByName(FormObject,"DocName");
	//alert(obj)
	if( !ValidationTemplate(obj,true,"text",5,250,"'","نص الصفحة باللغة العربية")   )
	{
		return false;
	}
	return true;
}
///////////////////////////////////
///////ValidateKholasaDoc/////////
/////////////////////////////////
function ValidateMokhtarDoc(FormObject)
{
	var obj = GetFormFieldByName(FormObject,"ArabicTitle");
	//alert(obj)
	if( !ValidationTemplate(obj,true,"text",5,250,"","عنوان المقالة بالعربية")   )
	{
		obj.select();
		return false;
	}
	var obj = GetFormFieldByName(FormObject,"PageNumber");
	//alert(obj)
	if( !ValidationTemplate(obj,true,"text",1,250,"","صفحة بداية المقال")   )
	{
		obj.select();
		return false;
	}
	var obj = GetFormFieldByName(FormObject,"ArabicText");
	//alert(obj)
	if( !ValidationTemplate(obj,true,"text",1,-1,"","نص المقالة باللغة العربية")   )
	{
		obj.select();
		return false;
	}
	var obj = GetFormFieldByName(FormObject,"PublisherIDDropDownList");
	//alert(obj)
	if( !ValidationTemplate(obj,true,EntryTypes[3],1,-1,"","اسم الناشر")   )
	{
		obj.focus();
		return false;
	}
	return true;
}

///////////////////////////////////
///////ValidateArticlesDoc/////////
/////////////////////////////////
function ValidateArticles(FormObject)
{
	var obj = GetFormFieldByName(FormObject,"ProductNodeID");
	//alert(obj)
	if( !ValidationTemplate(obj,true,EntryTypes[3],1,-1,""," نوع المنتج ")   )
	{
		obj.focus();
		return false;
	}
	var Yearobj = GetFormFieldByName(FormObject,"Year");
	var IssueNumobj = GetFormFieldByName(FormObject,"IssueNum");
	var BookIDobj = GetFormFieldByName(FormObject,"BookID");
	if( !ValidationTemplate(Yearobj,true,EntryTypes[3],1,-1,""," السنة ")   )
	{
		Yearobj.focus();
		return false;
	}
	if( !ValidationTemplate(IssueNumobj,true,EntryTypes[3],1,-1,""," رقم تسلسل أعداد المنتج ")   )
	{
		IssueNumobj.focus();
		return false;
	}
	if( !ValidationTemplate(BookIDobj,true,EntryTypes[3],1,-1,""," الكتاب ")   )
	{
		BookIDobj.focus();
		return false;
	}
	
	var obj = GetFormFieldByName(FormObject,"ArticleNoAtEddition");
	//alert(obj)
	if( !ValidationTemplate(obj,true,"text",1,250,""," رقم المقولة في العدد ")   )
	{
		obj.select();
		return false;
	}
	var obj = GetFormFieldByName(FormObject,"PageNo");
	//alert(obj)
	if( !ValidationTemplate(obj,true,"text",1,250,""," رقم الصفحة ")   )
	{
		obj.select();
		return false;
	}
	
	return true;
}
////////////////////////////////////////////////////////////////////////
//client type validation 
///////////////////////////////////////////////////////////////////////
function ValidateClientTypeForm(FormObject)
{
	var obj = GetFormFieldByName(FormObject,"ClientTypeName");
	if( !ValidationTemplate(obj,true,"text",-1,250,"'.+=-*&^%$#@!~|:',./\<.>","CLIENT TYPE NAME")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"ClientTypeDesc");
	if( !ValidationTemplate(obj,false,"text",-1,250,"',/\<>","CLIENT TYPE NAME")   )
	{
		return false;
	}
	return true;
}
//////////////////////////////////////////////////////////////////////////////
//validate calendar form
///////////////////////////////////////////////////////////////////////////
function ValidateCalendarForm(FormObject)
{
	var obj = GetFormFieldByName(FormObject,"CalendarName") 
	if ( !ValidationTemplate(obj,true,"text",-1,250,"'=+-<>","CALENDAR NAME") )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"CalendarPlace") 
	if ( !ValidationTemplate(obj,false,"text",-1,250,"'=+-<\>","CALENDAR PLACE") )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"CalendarDate") 
	if ( !ValidationTemplate(obj,true,EntryTypes[2],-1,-1,"'=+-<>","CALENDAR DATE") )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"CalenderNotes") 
	if ( !ValidationTemplate(obj,false,"text",-1,250,"'=+-<\>","CALENDAR NOTES") )
	{
		return false;
	}
	return true;
}
///////////////////////////////////////////////////////////////////////////////
//validate case form
//////////////////////////////////////////////////////////////////////////////
function ValidateCaseForm(FormObject)
{
	var obj = GetFormFieldByName(FormObject,"CaseFilesListBox");
	if (isNull(obj) == false)
	{
		SelectAllListItem(obj);
	}
	obj = GetFormFieldByName(FormObject,"CaseRecievedFilesListBox");
	if (isNull(obj) == false)
	{
		SelectAllListItem(obj);
	}
	obj = GetFormFieldByName(FormObject,"CaseCourtAddress");
	if( !ValidationTemplate(obj,false,"text",-1,250,"',/\<>","CASE COURT ADDRESS")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"CaseCourtName");
	if( !ValidationTemplate(obj,true,"text",-1,250,"',/\*=+-<>","CASE COURT NAME")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"CaseName");
	if( !ValidationTemplate(obj,true,"text",-1,250,"',/\*=+()[]|:.,;'?~@#!$%^&*-<>","CASE NAME")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"CaseFileNumber");
	if( !ValidationTemplate(obj,true,EntryTypes[1],-1,250,"',/\*=+-<>","CASE FILE NUMBER")   )
	{
		return false;
	}
	return true;
}
/////////////////////////////////////////////////////////////////////////////
//validate search form of cases
//////////////////////////////////////////////////////////////////////////////
function ValidateCaseSearchForm(FormObject)
{
	var obj = GetFormFieldByName(FormObject,"CaseCourtAddress");
	if( !ValidationTemplate(obj,false,"text",-1,250,"',/\<>","CASE COURT ADDRESS")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"CaseCourtName");
	if( !ValidationTemplate(obj,false,"text",-1,250,"',/\*=+-<>","CASE COURT NAME")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"CaseName");
	if( !ValidationTemplate(obj,false,"text",-1,250,"',/\*=+()[]|:.,;'?~@#!$%^&*-<>","CASE NAME")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"CaseFileNumber");
	if( !ValidationTemplate(obj,false,EntryTypes[1],-1,250,"',/\*=+-<>","CASE FILE NUMBER")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"CaseYear");
	if( !ValidationTemplate(obj,false,EntryTypes[1],-1,250,"',/\*=+-<>","CASE YEAR")   )
	{
		return false;
	}
	return true;
}
////////////////////////////////////////////////////////////////////////
//validate lawyers form
///////////////////////////////////////////////////////////////////////
function ValidateLawyerForm(FormObject)
{
	var obj = GetFormFieldByName(FormObject,"Name");
	if( !ValidationTemplate(obj,true,"text",-1,250,"'.+=-*&^%$#@!~|:',./\<.>","LAWYER NAME")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"Tel");
	if( !ValidationTemplate(obj,false,EntryTypes[1],-1,250,"',/\<>","LAWYER TELEPHONE")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"Email");
	if( !ValidationTemplate(obj,false,EntryTypes[0],-1,250,"',/\<>","LAWYER EMAIL")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"Address");
	if( !ValidationTemplate(obj,false,"text",-1,250,"',/\<>","LAWYER ADDRESS")   )
	{
		return false;
	}
	return true;
}
/////////////////////////////////////////////////////////////////////
//validate dataTypes form
/////////////////////////////////////////////////////////////////////
function ValidateDataType(FormObject){
	var obj = GetFormFieldByName(FormObject,"DataTypeName");
	if( !ValidationTemplate(obj,true,"text",1,250,"'?%&@/\[]();,<>^$#","DATA TYPE NAME")   )
	{
		return false;
	}
	return true;
}
//////////////////////////////////////////////////////////////////////
//validate details form
//////////////////////////////////////////////////////////////////////
function ValidateDetails(FormObject){
	var obj = GetFormFieldByName(FormObject,"DetailName");
	if( !ValidationTemplate(obj,true,"text",1,250,"'?*<>.&[]()#;,","DETAIL NAME")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"DetailCaption");
	if( !ValidationTemplate(obj,true,"text",1,250,"<>'","DETAIL CAPTION")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"DetailLength");
	if( !ValidationTemplate(obj,false,EntryTypes[1] ,-1,10,"<>'","DETAIL LENGTH")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"DataTypeID");
	if( !ValidationTemplate(obj,true,EntryTypes[3],1,-1,"","DATA TYPE ID")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"FormItemID");
	if( !ValidationTemplate(obj,true,EntryTypes[3],1,-1,"","FORM ITEM ID")   )
	{
		return false;
	}
/*	obj = GetFormFieldByName(FormObject,"UsersTypeID");
	if( !ValidationTemplate(obj,true,EntryTypes[3],1,-1,"","USERS TYPE ID")   )
	{
		return false;
	}*/
	return true;
}
////////////////////////////////////////////////////////////////////////////
//validate form items form
////////////////////////////////////////////////////////////////////////////
function ValidateFormItems(FormObject){
	var obj = GetFormFieldByName(FormObject,"FormItemName");
	if( !ValidationTemplate(obj,true,"text",1,250,"'?%&@();<>[],","FORM ITEM NAME")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"FormItemType");
	if( !ValidationTemplate(obj,true,"text",1,250,"'?%&@();,[]","FORM ITEM TYPE")   )
	{
		return false;
	}
	return true;
}
///////////////////////////////////////////////////////////////////
//validate tables form
///////////////////////////////////////////////////////////////////
function ValidateTables(FormObject){
	var obj = GetFormFieldByName(FormObject,"TableName");
	if( !ValidationTemplate(obj,true,"text",1,250,"'?%&@();,#&<>","TABLE NAME")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"TableCaption");
	if( !ValidationTemplate(obj,false,"text",-1,250,"'?%&@();,<>","TABLE CAPTION")   )
	{
		return false;
	}
	return true;
}
///////////////////////////////////////////////////////////////////////////
//validate treeItem (CMS)
//////////////////////////////////////////////////////////////////////////
function ValidateTreeItem(FormObject){
	var	obj = GetFormFieldByName(FormObject,"TreeItemTitle");
	if (!ValidationTemplate(obj,true,"text",1,250,"'<>[];","TREE ITEM TITLE"))
	{
		return false;
	}  
	obj = GetFormFieldByName(FormObject,"TreeItemOrder");
	if (!ValidationTemplate(obj,false,EntryTypes[1],-1,10,"<>'","TREE ITEM ORDER"))
	{
		return false;
	}  
	return true;
}
///////////////////////////////////////////////////////////////////////////
//validate CMSDetails (GlobalCMS)
//////////////////////////////////////////////////////////////////////////
function ValidateCMSDetailsForm(FormObject){
	var	obj = GetFormFieldByName(FormObject,"DetailName");
	if (!ValidationTemplate(obj,true,"text",1,250,"'<>[];","DETAIL NAME"))
	{
		return false;
	}  
	var	obj = GetFormFieldByName(FormObject,"DetailLength");
	if (!ValidationTemplate(obj,true,"text",1,250,"'<>[];","DETAIL LENGTH"))
	{
		return false;
	}
	return true;
}
///////////////////////////////////////////////////////////////////////////
//validate CMSTreeType (GlobalCMS)
//////////////////////////////////////////////////////////////////////////
function ValidateTreeTypeForm(FormObject){
	var	obj = GetFormFieldByName(FormObject,"TreeTypeName");
	if (!ValidationTemplate(obj,true,"text",1,250,"'<>[];","TREE TYPE NAME"))
	{
		return false;
	}  
	return true;
}


////////////////////////////////////////////////////////////////////////////
//validate mailList Entries
////////////////////////////////////////////////////////////////////////////
function ValidateMailList(FormObject){
	var	obj = GetFormFieldByName(FormObject,"MailListName");
	if (!ValidationTemplate(obj,true,"text",1,250,"'<>()*@~!?/\=+-*^%$#","الاسم"))
	{
		return false;
	}  
	obj = GetFormFieldByName(FormObject,"MailListEmail");
	if (!ValidationTemplate(obj,true,EntryTypes[0],-1,250,"<> '","البريد الإلكترونى"))
	{
		return false;
	}  
	return true;
}
////////////////////////////////////////////////////////////////////////////
//validate send mail form
function ValidateSendMail(FormObject)
{
	var	obj = GetFormFieldByName(FormObject,"MailListMessageTitle");
	if (!ValidationTemplate(obj,true,"text",1,250,"<>","عنوان الرسالة"))
	{
		return false;
	}  
	var	obj = GetFormFieldByName(FormObject,"SourceEmailTextBox");
	if (!ValidationTemplate(obj,true,EntryTypes[0],1,250,"","عنوان الراسل"))
	{
		return false;
	}  
	var obj = GetFormFieldByName(FormObject , "NameTextbox");
	if (!ValidationTemplate(obj,true,"text",1,250,"","الإسم"))
	{
		return false;
	}  
	var obj = GetFormFieldByName(FormObject , "نص الرسالة");
	if (!ValidationTemplate(obj,true,"text",1,250,"","BODY"))
	{
		return false;
	}  
	return true;	
}

////////////////////////////////////////////////////////////////////////////
//validate send mail form
function SearchValidate(FormObject)
{
	var	obj = GetFormFieldByName(FormObject,"TreeTypeListBox");
	if (!ValidationTemplate(obj,true,EntryTypes[4],1,250,"<>","Plaese select at least one field"))
	{
		return false;
	}  
	return true;	
}
///////////////////////////////////////////////////////////////////////
function ValidateSearchForm(FormObject)
{
	var	objKeywordTextBox = GetFormFieldByName(FormObject,"KeywordTextBox");
	var	objTitleCheckBox = GetFormFieldByName(FormObject,"SearchInTitleCheckBox");
	var	objContentCheckBox = GetFormFieldByName(FormObject,"SearchInContentCheckBox");
	var objTreeTypesListBox = GetFormFieldByName(FormObject,"TreeTypeListBox");
	if (!ValidationTemplate(objKeywordTextBox,true,"text",1,250,"<>'","كلمة البحث "))
	{
		return false;
	}  
	try{
		if ( !objTitleCheckBox.checked && !objContentCheckBox.checked)
		{
			alert( ERROR_MUST_SELECT_SEARCH_CRITERIA );
			return false;
		}
	}catch(e){}
	if (!ValidationTemplate(objTreeTypesListBox,true,MULTISELECT_LIST_BOX_DATA_TYPE,1,250,"<>","أقسام الموقع"))
	{
		return false;
	}  
	return true;	
}
////////////////////////////////////////////////////////////////////////////////
//validate Guest Book
function ValidateGuestBook(FormObject)
{
	var obj = GetFormFieldByName(FormObject,"GuestName");
	if( !ValidationTemplate(obj,true,"text",-1,250,"'<>","الإسم")  )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"GuestBookMessage");
	if( !ValidationTemplate(obj,true,"text",1,-1,"'","نص الرسالة")  )
	{
		return false;
	}	
		obj = GetFormFieldByName(FormObject,"EmailTextbox");
	if( !ValidationTemplate(obj,true,EntryTypes[0],-1,250,"'<> []=*","البريد الإلكترونى")   )
	{
		return false;
	}
return true;
}
/////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////
//users modify form
///////////////////////////////////////////////////////////////////////////
function ValidateModifyUsersForm(FormObject){
	var obj = GetFormFieldByName(FormObject,"username");
	if( !ValidationTemplate(obj,true,"text",5,250,"'<>","إسم المستخدم")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"password");
	if( !ValidationTemplate(obj,true,"text",8,250,"'<>","كلمة السر")   )
	{
		return false;
	}
	var objConfirmedPassword = GetFormFieldByName(FormObject,"ConfirmPasswordTextBox");
	try{
		if ( obj != null && objConfirmedPassword != null){	
			if (obj.value != objConfirmedPassword.value)
			{
				alert("تأكيد كلمة السر لا يساوى كلمة السر الأولى");
				objConfirmedPassword.focus();
				return false;
			}
		}
	}catch(e){}
	obj = GetFormFieldByName(FormObject,"EmailAddress");
	if( !ValidationTemplate(obj,true,EntryTypes[0],-1,250,"'<> []=*","البريد الإلكترونى")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"usersTypeID");
	if( !ValidationTemplate(obj,true,EntryTypes[3],1,-1,"","نوع المستخدم")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"StartDate");
	if( !ValidationTemplate(obj,true,EntryTypes[2],1,-1,"'","تاريخ بداية الإشتراك")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"EndDate");
	if( !ValidationTemplate(obj,true,EntryTypes[2],1,-1,"'","تاريخ نهاية الإشتراك")   )
	{
		return false;
	}
/*	obj = GetFormFieldByName(FormObject,"StartDate");
	var obj2 = GetFormFieldByName(FormObject,"EndDate");
	if ( compareDates(obj,obj2,dateFormat) == 1   )
	{
		ClientResponse( obj , "START DATE connot be greater than EXPIRATION DATE");
		return false;
	}	*/
	return true;
}
//////////////////////////////////////////////////////////////////////////
//users adding form
//////////////////////////////////////////////////////////////////////////
function ValidateUsers(FormObject){
	var obj = GetFormFieldByName(FormObject,"username");
	if( !ValidationTemplate(obj,true,"text",5,250,"'?%&@(*=/\!~.,-);,<>[]+^$#","إسم المستخدم")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"password");
	if( !ValidationTemplate(obj,true,"text",8,250,"'<>","كلمة السر")   )
	{
		return false;
	}
	var objConfirmedPassword = GetFormFieldByName(FormObject,"ConfirmPasswordTextBox");
	try{
		if( obj != null && objConfirmedPassword != null){				
			if (obj.value != objConfirmedPassword.value)
			{
				alert("تأكيد كلمة السر لايساوى كلمة السر الأولى");
				objConfirmedPassword.focus();
				return false;
			}
		}
	}catch(e){}
	obj = GetFormFieldByName(FormObject,"EmailAddress");
	if( !ValidationTemplate(obj,true,EntryTypes[0],-1,250,"'<> []=*","البريد")   )
	{
		return false;
	}
/*	obj = GetFormFieldByName(FormObject,"usersTypeID");
	if( !ValidationTemplate(obj,true,EntryTypes[3],1,-1,"","USERS TYPE ID")   )
	{
		return false;
	}*/
	obj = GetFormFieldByName(FormObject,"StartDate");
	if( !ValidationTemplate(obj,true,EntryTypes[2],1,-1,"'","بداية الإشتراك")   )
	{
		return false;
	}
/*	obj = GetFormFieldByName(FormObject,"StartDate");
	if ( IsDateBeforeToday(obj,dateFormat)   == -1   )
	{
		ClientResponse( obj , "START DATE should be greater than or equal current date");
		return false;
	}	*/
	obj = GetFormFieldByName(FormObject,"EndDate");
	if( !ValidationTemplate(obj,true,EntryTypes[2],1,-1,"'","نهاية الإشتراك")   )
	{
		return false;
	}
/*	obj = GetFormFieldByName(FormObject,"StartDate");
	var obj2 = GetFormFieldByName(FormObject,"EndDate");
	if ( compareDates(obj,obj2,dateFormat) == 1   )
	{
		ClientResponse( obj , "START DATE connot be greater than EXPIRATION DATE");
		return false;
	}	
	obj = GetFormFieldByName(FormObject,"EndDate");
	if ( IsDateBeforeToday(obj,dateFormat)   == -1   )
	{
		ClientResponse( obj , "EXPIRATION DATE should be greater than or equal current date");
		return false;
	}	*/
	return true;
}

//////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////
///////////Validate Renew Subscription //////////////////////////
/////////////////////////////////////////////////////////////////
function ValidateRenewSubscription(FormObject){
	var obj = GetFormFieldByName(FormObject,"txtS1");
	if( !ValidationTemplate(obj,true,"text",5,250,"'?%&@(*=/\!~.,-);,<>[]+^$#"," الشركة")   )
	{
		return false;
	}
	 obj = GetFormFieldByName(FormObject,"txtS2");
	if( !ValidationTemplate(obj,true,"text",5,250,"'?%&@(*=/\!~.,-);,<>[]+^$#","الاسم ")   )
	{
		return false;
	}
	 obj = GetFormFieldByName(FormObject,"txtS3");
	if( !ValidationTemplate(obj,true,"text",5,250,"'?%&@(*=/\!~.,-);,<>[]+^$#","الوظيفة")   )
	{
		return false;
	}
	 obj = GetFormFieldByName(FormObject,"txtG1");
	if( !ValidationTemplate(obj,true,"text",5,250,"'?%&@(*=/\!~.,-);,<>[]+^$#"," الجهة")   )
	{
		return false;
	}
	 obj = GetFormFieldByName(FormObject,"txtG2");
	if( !ValidationTemplate(obj,true,"text",5,250,"'?%&@(*=/\!~.,-);,<>[]+^$#","الاسم ")   )
	{
		return false;
	}
	 obj = GetFormFieldByName(FormObject,"txtG3");
	if( !ValidationTemplate(obj,true,"text",5,250,"'?%&@(*=/\!~.,-);,<>[]+^$#","الوظيفة")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"txtT");
	if( !ValidationTemplate(obj,true,"text",5,250,"'?%&@(*=/\!~.,-);,<>[]+^$#","الاسم")   )
	{
		return false;
	}
	return true;
}
///////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
//users adding form
//////////////////////////////////////////////////////////////////////////
function ValidateRegistrationForm(FormObject){
	var obj;
	try{
		obj = GetFormFieldByName(FormObject,USER_NAME_UNIQUE_ID);
		if( !ValidationTemplate(obj,true,"text",5,250,"'?%&@(*=/\!~.,-);,<>[]+^$#","إسم المستخدم")   )
		{
			return false;
		}
		if( obj != null )
		{
			var str = obj.value;
			while( str.indexOf(" ") != -1 )
			{
				str = str.replace(" ","");
			}
			if( str == "" )
			{
				alert("اسم المستخدم لا يمكن أن يكون خالياً");
				return false;
			}
		}
	}
	catch(e){}
	try{
		obj = GetFormFieldByName(FormObject,PASSWORD_UNIQUE_ID);
		if( !ValidationTemplate(obj,true,"text",8,250,"'<>","كلمة السر")   )
		{
			return false;
		}
	}
	catch(e){}
	var objConfirmedPassword = GetFormFieldByName(FormObject,"ConfirmPasswordTextBox");
	try{
		if( obj != null && objConfirmedPassword != null){				
			if (obj.value != objConfirmedPassword.value)
			{
				alert("تأكيد كلمة السر لا يساوى كلمة السر الأولى");
				objConfirmedPassword.focus();
				return false;
			}
		}
	}catch(e){}
	obj = GetFormFieldByName(FormObject,"EmailAddress");
	if( !ValidationTemplate(obj,true,EntryTypes[0],-1,250,"'<> []=*","البريد")   )
	{
		return false;
	}
/*	obj = GetFormFieldByName(FormObject,"usersTypeID");
	if( !ValidationTemplate(obj,true,EntryTypes[3],1,-1,"","USERS TYPE ID")   )
	{
		return false;
	}*/
	obj = GetFormFieldByName(FormObject,"StartDate");
	if( !ValidationTemplate(obj,true,EntryTypes[2],1,-1,"'","بداية الإشتراك")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"EndDate");
	if( !ValidationTemplate(obj,true,EntryTypes[2],1,-1,"'","نهاية الإشتراك")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"MustAgreeCheckBox");
	if( !ValidationTemplate(obj,true,CHECKBOX_DATA_TYPE,-1,-1,"'","يجب أن توافق على شروط الإشتراك")   )
	{
		return false;
	}
	return true;
}

/////////////////////////////////////////////////////////////////////////////
//validate users Types form
/////////////////////////////////////////////////////////////////////////////
function ValidateUsersTypes(FormObject){
	var obj = GetFormFieldByName(FormObject,"usersTypeName");
	if( !ValidationTemplate(obj,true,"text",1,250,"?%<>&@()*';,[]=!~","USERS TYPE NAME")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"HeaderUserControl");
	if( !ValidationTemplate(obj,false,"text",1,250,"?%<>&@()*';,[]=!~","HEADER USER CONTROL")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"RightLinksUserControl");
	if( !ValidationTemplate(obj,false,"text",1,250,"?%<>&@()*';,[]=!~","RIGHT LINKS USER CONTROL")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"FooterUserControl");
	if( !ValidationTemplate(obj,false,"text",1,250,"?%<>&@()*';,[]=!~","FOOTER USER CONTROL")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"LeftLinksUserControl");
	if( !ValidationTemplate(obj,false,"text",1,250,"?%<>&@()*';,[]=!~","LEFT LINKS USER CONTROL")   )
	{
		return false;
	}
	return true;
}
/////////////////////////////////////////////////////////////////////////////
//validate login form
/////////////////////////////////////////////////////////////////////////////
function LoginFormValidation(FormObject){
	var obj = GetFormFieldByName(FormObject,"username");
	if( !ValidationTemplate(obj,true,"text",1,-1,"'*@()><","إسم المستخدم")  )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"password");
	if( !ValidationTemplate(obj,true,"text",1,-1,"'@()<>","كلمة السر")  )
	{
		return false;
	}
	return true;
}
/////////////////////////////////////////////////////////////////////////////
//////////////validations for consultation module////////////////////////////
/////////////////////////////////////////////////////////////////////////////
//validate Consultations
/////////////////////////////////////////////////////////////////////////////
function ValidateConsultations(FormObject)
{
	var obj = GetFormFieldByName(FormObject,"ConsultationRequester");
	if( !ValidationTemplate(obj,true,"text",1,-1,"'@()[]=.*&#<>","CONSULTATION REQUESTER")  )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"ConsultationEmail");
	if( !ValidationTemplate(obj,true,EntryTypes[0],1,-1,"'( )[]=*&#<>","CONSULTATION EMAIL")  )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"ConsultationTitle");
	if( !ValidationTemplate(obj,true,"text",1,-1,"'*@()><*=[].","CONSULTATION TITLE")  )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"ReplyTitle");
	if( !ValidationTemplate(obj,true,"text",1,-1,"'*@()><*=[].","REPLY TITLE")  )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"ReplyDate");
	if( !ValidationTemplate(obj,false,EntryTypes[2],1,-1,"'*@()><*=[].","REPLY DATE")  )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"Reply");
	if( !ValidationTemplate(obj,false,"text",1,-1,"'","REPLY")  )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"Consultation");
	if( !ValidationTemplate(obj,false,"text",1,-1,"'","CONSULTATION")  )
	{
		return false;
	}
	return true;
}
/////////////////////////////////////////////////////////////////////////
function ValidateConsultationReply()
{
	if(document.form1.ReplyTitle.value == "")
	{
		alert("Please enter the Reply Title ...");
		document.form1.ReplyTitle.focus();
		return false;   
	}
}
//////////////////////////////////////////////////////////////////////////////
//advertisemnets
///////////////////////////////////////////////////////////////////////////////
//section form
function ValidateSectionsForm(FormObject)
{
	var obj = GetFormFieldByName(FormObject,"WidthTextBox");
	if( !ValidationTemplate(obj,true,EntryTypes[1],1,250,"'? %&@(*-);,<>/\[]+^$#"+ArabicLetter,"WIDTH")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"HeightTextBox");
	if( !ValidationTemplate(obj,true,EntryTypes[1],1,250,"'? %&@(*-);,<>/\[]+^$#"+ArabicLetter,"HEIGHT")   )
	{
		return false;
	}
	return true;
}
//advertisments form
function ValidationAdvertisementForm(FormObject)
{
	var obj = GetFormFieldByName(FormObject,"ImagesURLTextBox");
	if( !ValidationTemplate(obj,true,"text",1,250,"'?%&@*;,<>[]+^$#","IMAGE_URL")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"NavigationURLTextBox");
	if( !ValidationTemplate(obj,true,"text",1,250,"'? %&@(*-);,<>[]+^$#","NAVIGATION URL")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"AlternateTextTextBox");
	if( !ValidationTemplate(obj,false,"text",1,250,"'?%&@(*-);,<>/\[]+^$#","ALTERNATE TEXT")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"ImpressionTextBox");
	if( !ValidationTemplate(obj,true,EntryTypes[1],1,250,"'? %&@(*-);,<>/\[]+^$#","IMPRESSION")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"KeyWordTextBox");
	if( !ValidationTemplate(obj,false,"text",1,250,"'?%&@*;<>/\[]+^$#","KEYWORD")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"StartDateTextBox");
	if( !ValidationTemplate(obj,true,EntryTypes[2],1,250,"'? %&@(*-);,<>[]+^$#","START DATE")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"ExpirationDateTextBox");
	if( !ValidationTemplate(obj,true,EntryTypes[2],1,250,"'? %&@(*-);,<>[]+^$#","EXPIRATION DATE")   )
	{
		return false;
	}
	return true;
}
////////////////////////////////////////////////////////////////////////////////////
function ValidateCssManagerForm(FormObject)
{
	var obj = GetFormFieldByName(FormObject,"NewCssFileInput");
	if( !ValidationTemplate(obj,true,"text",1,250,"'?%&@*;,<>/\[]+^$#","FILE PATH")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"NewCssIDTextBox");
	if( !ValidationTemplate(obj,true,"text",1,250,"'?%&@*;  -()~!{}|=_,<>/\[]+^$#","DESIGN NAME")   )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"NewCssCaptionTextBox");
	if( !ValidationTemplate(obj,true,"text",1,250,"'?%&@*;-()~!{}|=_,<>/\[]+^$#","DESIGN CAPTION")   )
	{
		return false;
	}
	return true;
}
/////////////////////////////////////////////////////////////////////////////////
////////////////////////NOTE BOOK validations////////////////////////////////////
//validate note book entries
function ValidationNoteBook(FormObject)
{
	var obj = GetFormFieldByName(FormObject,"Name");
	if( !ValidationTemplate(obj,true,"text",1,-1,"'@()[]=.*&#<>","NAME")  )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"Email1");
	if( !ValidationTemplate(obj,false,EntryTypes[0],1,-1,"'( )[]=*&#<>","EMAIL#1")  )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"Email2");
	if( !ValidationTemplate(obj,false,EntryTypes[0],1,-1,"'( )[]=*&#<>","EMAIL#2")  )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"Email3");
	if( !ValidationTemplate(obj,false,EntryTypes[0],1,-1,"'( )[]=*&#<>","EMAIL#3")  )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"Tel1");
	if( !ValidationTemplate(obj,false,EntryTypes[1],1,-1,"'( )[]=*&#<>","Telephone#1")  )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"Tel2");
	if( !ValidationTemplate(obj,false,EntryTypes[1],1,-1,"'( )[]=*&#<>","Telephone#2")  )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"Tel3");
	if( !ValidationTemplate(obj,false,EntryTypes[1],1,-1,"'( )[]=*&#<>","Telephone#3")  )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"Address");
	if( !ValidationTemplate(obj,false,"text",1,-1,"'<>","ADDRESS")  )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"GroupID");
	if( !ValidationTemplate(obj,true,EntryTypes[3],1,-1,"'<>","GROUP ID")  )
	{
		return false;
	}
	return true;
}

//////////////////////////////////////////////////////////////////////////////
//validate notebook groups
function ValidationNoteBookGroup(FormObject)
{
	var obj = GetFormFieldByName(FormObject,"Name");
	if( !ValidationTemplate(obj,true,"text",1,-1,"'@()[]=.*&#<>","NAME")  )
	{
		return false;
	}
	return true;
}
/////////////////////////////////////////////////////////////////////////////////
/////////////////VALIDATION FOR COMPANIES MODULE/////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////
function ValidateCompaniesDetails(FormObject){
//PUT YOUR VALIDATION CODE HERE
//YOU CAN USE FUNCTION "VALIDATIONTEMPLATE" IN YOUR VALIDATION
//EXAMPLE:
//var obj = GetFormFieldByName(FormObject,"FormFieldName");
//if( !ValidationTemplate(obj,IsRequired,DataType,minimumLength,MaximumLength,"RubbishText","Form Field Caption")   )
//return false;
return true;
}
function ValidateCompaniesNames(FormObject){
//PUT YOUR VALIDATION CODE HERE
//YOU CAN USE FUNCTION "VALIDATIONTEMPLATE" IN YOUR VALIDATION
//EXAMPLE:
	var obj = GetFormFieldByName(FormObject,"RequesterName");
	if( !ValidationTemplate(obj,true,"text",-1,-1,"'<>", "requester NAME")   )
	return false;
	obj = GetFormFieldByName(FormObject,"TradeName");
	if( !ValidationTemplate(obj,true,"text",-1,-1,"'<>","NAME")   )
	return false;
	obj = GetFormFieldByName(FormObject,"Activity");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'<>","activity")   )
	return false;
	obj = GetFormFieldByName(FormObject,"TradeFileID");
	if( !ValidationTemplate(obj,false,NUMBER_DATA_TYPE,-1,-1,"'<>","trade file id")   )
	return false;
	obj = GetFormFieldByName(FormObject,"TradeAddress");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'<>","trade address")   )
	return false;
	obj = GetFormFieldByName(FormObject,"OmElqoraVolumeNum");
	if( !ValidationTemplate(obj,false,NUMBER_DATA_TYPE,-1,-1,"'<>","volume number")   )
	return false;
	obj = GetFormFieldByName(FormObject,"OmElqoraVolumePublishdate");
	if( !ValidationTemplate(obj,false,DATE_DATA_TYPE,-1,-1,"'<>","Publish date")   )
	return false;
	obj = GetFormFieldByName(FormObject,"Interface");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'","Interface")   )
	return false;
	
	return true;
}
function ValidateCompaniesNodes_Details(FormObject){
//PUT YOUR VALIDATION CODE HERE
//YOU CAN USE FUNCTION "VALIDATIONTEMPLATE" IN YOUR VALIDATION
//EXAMPLE:
//var obj = GetFormFieldByName(FormObject,"FormFieldName");
//if( !ValidationTemplate(obj,IsRequired,DataType,minimumLength,MaximumLength,"RubbishText","Form Field Caption")   )
//return false;
return true;
}
function ValidateCompanyType(FormObject){
//PUT YOUR VALIDATION CODE HERE
//YOU CAN USE FUNCTION "VALIDATIONTEMPLATE" IN YOUR VALIDATION
//EXAMPLE:
	var obj = GetFormFieldByName(FormObject,"Name");
	if( !ValidationTemplate(obj,true,"text",-1,250,"'<>=+_()*#@!~","NAME")   )
	return false;
	return true;
}
function ValidateCompanyType_TradeType(FormObject){
//PUT YOUR VALIDATION CODE HERE
//YOU CAN USE FUNCTION "VALIDATIONTEMPLATE" IN YOUR VALIDATION
//EXAMPLE:
//	var obj = GetFormFieldByName(FormObject,"FormFieldName");
//	if( !ValidationTemplate(obj,IsRequired,DataType,minimumLength,MaximumLength,"RubbishText","Form Field Caption")   )
//	return false;
	return true;
}
function ValidateDyingCompanies(FormObject){
//PUT YOUR VALIDATION CODE HERE
//YOU CAN USE FUNCTION "VALIDATIONTEMPLATE" IN YOUR VALIDATION
//EXAMPLE:
	var obj = GetFormFieldByName(FormObject,"CompanyName");
	if( !ValidationTemplate(obj,true,"text",-1,-1,"'<>", "company NAME")   )
	return false;
	obj = GetFormFieldByName(FormObject,"CompanyTypeID");
	if( !ValidationTemplate(obj,false,NUMBER_DATA_TYPE,-1,-1,"'<>","company type")   )
	return false;
	obj = GetFormFieldByName(FormObject,"TradeFileID");
	if( !ValidationTemplate(obj,false,NUMBER_DATA_TYPE,-1,-1,"'<>","TRADE File ID")   )
	return false;
	obj = GetFormFieldByName(FormObject,"RegisterDate");
	if( !ValidationTemplate(obj,false,DATE_DATA_TYPE,-1,-1,"'<>","Register date")   )
	return false;
	obj = GetFormFieldByName(FormObject,"TradeFileArea");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'<>","trade file area")   )
	return false;
	obj = GetFormFieldByName(FormObject,"DealerName");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'<>","dealer name")   )
	return false;
	obj = GetFormFieldByName(FormObject,"DealerTel");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'<>","dealer tel")   )
	return false;
	obj = GetFormFieldByName(FormObject,"DealerAddress");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'<>","dealer address")   )
	return false;
	obj = GetFormFieldByName(FormObject,"OmElqoraVolumeNum");
	if( !ValidationTemplate(obj,false,NUMBER_DATA_TYPE,-1,-1,"'<>","volume number")   )
	return false;
	obj = GetFormFieldByName(FormObject,"OmElqoraPublishDate");
	if( !ValidationTemplate(obj,false,DATE_DATA_TYPE,-1,-1,"'<>","publish date")   )
	return false;
	obj = GetFormFieldByName(FormObject,"Interface");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'","interface")   )
	return false;
	
	return true;
}
function ValidateTradeMark(FormObject){
//PUT YOUR VALIDATION CODE HERE
//YOU CAN USE FUNCTION "VALIDATIONTEMPLATE" IN YOUR VALIDATION
//EXAMPLE:
	var obj = GetFormFieldByName(FormObject,"ArabicName");
	if( !ValidationTemplate(obj,true,"text",-1,-1,"'<>","NAME")   )
	return false;
	obj = GetFormFieldByName(FormObject,"EnglishName");
	//if( !ValidationTemplate(obj,false,"text",-1,-1,"'<>","NAME")   )
	//return false;
	obj = GetFormFieldByName(FormObject,"OmElqoraVolumeNum");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'<>","Volume number")   )
	return false;
	obj = GetFormFieldByName(FormObject,"OmElqoraPublishDate");
	if( !ValidationTemplate(obj,false,DATE_DATA_TYPE,-1,-1,"'<>","Publish date")   )
	return false;
	obj = GetFormFieldByName(FormObject,"Interface");
	if( !ValidationTemplate(obj,true,"text",-1,-1,"'","interface")   )
	return false;
	
	return true;
return true;
}
function ValidateTreatmentKind(FormObject){
//PUT YOUR VALIDATION CODE HERE
//YOU CAN USE FUNCTION "VALIDATIONTEMPLATE" IN YOUR VALIDATION
//EXAMPLE:
//var obj = GetFormFieldByName(FormObject,"FormFieldName");
//if( !ValidationTemplate(obj,IsRequired,DataType,minimumLength,MaximumLength,"RubbishText","Form Field Caption")   )
//return false;
return true;
}
function ValidateTradeMarkSearchForm(FormObject){
	var obj = GetFormFieldByName(FormObject,"ArabicName");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'<>","NAME")   )
	return false;
	obj = GetFormFieldByName(FormObject,"EnglishName");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'<>","NAME")   )
	return false;
	obj = GetFormFieldByName(FormObject,"OmElqoraVolumeNum");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'<>","Volume number")   )
	return false;
	obj = GetFormFieldByName(FormObject,"StartPublishDate");
	if( !ValidationTemplate(obj,false,DATE_DATA_TYPE,-1,-1,"'<>","Publish date")   )
	return false;
	obj = GetFormFieldByName(FormObject,"StartPublishDate");
	if( !ValidationTemplate(obj,false,DATE_DATA_TYPE,-1,-1,"'<>","Publish date")   )
	return false;
	obj = GetFormFieldByName(FormObject,"Interface");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'<>","INTERFACE")   )
	return false;
	
	return true;
}
function ValidateCompaniesNamesSearchForm(FormObject){
	var obj = GetFormFieldByName(FormObject,"RequesterName");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'<>", "requester NAME")   )
	return false;
	obj = GetFormFieldByName(FormObject,"TradeName");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'<>","NAME")   )
	return false;
	obj = GetFormFieldByName(FormObject,"Activity");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'<>","activity")   )
	return false;
	obj = GetFormFieldByName(FormObject,"TradeFileID");
	if( !ValidationTemplate(obj,false,NUMBER_DATA_TYPE,-1,-1,"'<>","trade file id")   )
	return false;
	obj = GetFormFieldByName(FormObject,"TradeAddress");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'<>","trade address")   )
	return false;
	obj = GetFormFieldByName(FormObject,"OmElqoraVolumeNum");
	if( !ValidationTemplate(obj,false,NUMBER_DATA_TYPE,-1,-1,"'<>","volume number")   )
	return false;
	obj = GetFormFieldByName(FormObject,"StartPublishdate");
	if( !ValidationTemplate(obj,false,DATE_DATA_TYPE,-1,-1,"'<>","Publish date")   )
	return false;
	obj = GetFormFieldByName(FormObject,"EndPublishdate");
	if( !ValidationTemplate(obj,false,DATE_DATA_TYPE,-1,-1,"'<>","Publish date")   )
	return false;
	obj = GetFormFieldByName(FormObject,"Interface");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'<>","Interface")   )
	return false;
	
	return true;
}
function ValidateUnderSettlementSearchForm(FormObject){
	var obj = GetFormFieldByName(FormObject,"CompanyName");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'<>", "company NAME")   )
	return false;
	obj = GetFormFieldByName(FormObject,"CompanyTypeID");
	if( !ValidationTemplate(obj,false,NUMBER_DATA_TYPE,-1,-1,"'<>","company type")   )
	return false;
	obj = GetFormFieldByName(FormObject,"TradeFileID");
	if( !ValidationTemplate(obj,false,NUMBER_DATA_TYPE,-1,-1,"'<>","TRADE File ID")   )
	return false;
	obj = GetFormFieldByName(FormObject,"TradeFileID");
	if( !ValidationTemplate(obj,false,NUMBER_DATA_TYPE,-1,-1,"'<>","trade file id")   )
	return false;
	obj = GetFormFieldByName(FormObject,"StartRegisterDate");
	if( !ValidationTemplate(obj,false,DATE_DATA_TYPE,-1,-1,"'<>","Register date")   )
	return false;
	obj = GetFormFieldByName(FormObject,"EndRegisterDate");
	if( !ValidationTemplate(obj,false,DATE_DATA_TYPE,-1,-1,"'<>","Register date")   )
	return false;
	obj = GetFormFieldByName(FormObject,"TradeFileArea");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'<>","trade file area")   )
	return false;
	obj = GetFormFieldByName(FormObject,"DealerName");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'<>","dealer name")   )
	return false;
	obj = GetFormFieldByName(FormObject,"DealerTel");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'<>","dealer tel")   )
	return false;
	obj = GetFormFieldByName(FormObject,"DealerAddress");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'<>","dealer address")   )
	return false;
	obj = GetFormFieldByName(FormObject,"OmElqoraVolumeNum");
	if( !ValidationTemplate(obj,false,NUMBER_DATA_TYPE,-1,-1,"'<>","volume number")   )
	return false;
	obj = GetFormFieldByName(FormObject,"StartPublishDate");
	if( !ValidationTemplate(obj,false,DATE_DATA_TYPE,-1,-1,"'<>","publish date")   )
	return false;
	obj = GetFormFieldByName(FormObject,"EndPublishDate");
	if( !ValidationTemplate(obj,false,DATE_DATA_TYPE,-1,-1,"'<>","publish date")   )
	return false;
	obj = GetFormFieldByName(FormObject,"Interface");
	if( !ValidationTemplate(obj,false,"text",-1,-1,"'<>","interface")   )
	return false;
	
	return true;
}
function ValidateTextAdvertisermentsForm(FormObject){
	var obj = GetFormFieldByName(FormObject,"Full_Name");
	if( !ValidationTemplate(obj,true,"text",-1,250,"'<>","FULL NAME")  )
	{
		return false;
	}
	obj = GetFormFieldByName(FormObject,"email");
	if( !ValidationTemplate(obj,false,EMAIL_DATA_TYPE,1,-1,"'","EMAIL")  )
	{
		return false;
	}	
	obj = GetFormFieldByName(FormObject,"Address");
	if( !ValidationTemplate(obj,false,"text",1,-1,"'","ADDRESS")  )
	{
		return false;
	}	
	obj = GetFormFieldByName(FormObject,"Web");
	if( !ValidationTemplate(obj,false,WEB_SITE_URL_DATA_TYPE,1,-1,"'","WEB SITE")  )
	{
		return false;
	}	
	obj = GetFormFieldByName(FormObject,"Tel");
	if( !ValidationTemplate(obj,false,"text",1,-1,"'","TELEPHONE")  )
	{
		return false;
	}	
	obj = GetFormFieldByName(FormObject,"fax");
	if( !ValidationTemplate(obj,false,"text",1,-1,"'","FAX")  )
	{
		return false;
	}	
	obj = GetFormFieldByName(FormObject,"mob");
	if( !ValidationTemplate(obj,false,"text",1,-1,"'","MOBILE")  )
	{
		return false;
	}	
	obj = GetFormFieldByName(FormObject,"Activity");
	if( !ValidationTemplate(obj,false,"text",1,-1,"'","ACTIVITY")  )
	{
		return false;
	}	
	obj = GetFormFieldByName(FormObject,"FolderID");
	if( !ValidationTemplate(obj,false,NUMBER_DATA_TYPE,1,-1,"'","CMS NodeID")  )
	{
		return false;
	}	
	obj = GetFormFieldByName(FormObject,"TreeTypeID");
	if( !ValidationTemplate(obj,false,NUMBER_DATA_TYPE,1,-1,"'","CMSTreeTypeID")  )
	{
		return false;
	}	
	obj = GetFormFieldByName(FormObject,"validFromDate");
	if( !ValidationTemplate(obj,false,DATE_DATA_TYPE,1,-1,"'","FROM DATE")  )
	{
		return false;
	}	
	obj = GetFormFieldByName(FormObject,"validFromDate");
	if( !ValidationTemplate(obj,false,DATE_DATA_TYPE,1,-1,"'","FROM DATE")  )
	{
		return false;
	}	
	obj = GetFormFieldByName(FormObject,"validToDate");
	if( !ValidationTemplate(obj,false,DATE_DATA_TYPE,1,-1,"'","TO DATE")  )
	{
		return false;
	}	
	obj = GetFormFieldByName(FormObject,"validToDate");
	if( !ValidationTemplate(obj,false,DATE_DATA_TYPE,1,-1,"'","TO DATE")  )
	{
		return false;
	}	
	obj = GetFormFieldByName(FormObject,"validToDate");
	if( !ValidationTemplate(obj,false,DATE_DATA_TYPE,1,-1,"'","TO DATE")  )
	{
		return false;
	}	
	obj = GetFormFieldByName(FormObject,"validToDate");
	if( !ValidationTemplate(obj,false,DATE_DATA_TYPE,1,-1,"'","TO DATE")  )
	{
		return false;
	}	
return true;
}

//////////////////////////////////////////////////////////////////////////////////
//////////////////////RELATED DOCS FORMS VALIDATION///////////////////////////////
/////////////////////////////////////////////////////////////////////////////////
function ValidateDocSearchRelated(FormObject){
//PUT YOUR VALIDATION CODE HERE
//YOU CAN USE FUNCTION "VALIDATIONTEMPLATE" IN YOUR VALIDATION
//EXAMPLE:
	var obj = GetFormFieldByName(FormObject,"CatID");
	if( !ValidationTemplate(obj,false,NUMBER_DATA_TYPE,-1,10,"'<>","CATEGORY ID")   )
		return false;
	obj = GetFormFieldByName(FormObject,"PubNo");	
	if( !ValidationTemplate(obj,false,"text",-1,10,"'<>","SUBJECT NUMBER")   )
		return false;
	obj = GetFormFieldByName(FormObject,"DocDate");	
	if( !ValidationTemplate(obj,true,DATE_DATA_TYPE,-1,10,"'<>","DOCUMENT DATE")   )
		return false;
	return true;
}
function ValidateDocsSearchCategories(FormObject){
//PUT YOUR VALIDATION CODE HERE
//YOU CAN USE FUNCTION "VALIDATIONTEMPLATE" IN YOUR VALIDATION
//EXAMPLE:
	var obj = GetFormFieldByName(FormObject,"CatName");
	if( !ValidationTemplate(obj,true,"text",-1,250,"'<>","CATEGORY NAME")   )
		return false;
	obj = GetFormFieldByName(FormObject,"Caption");
	if( !ValidationTemplate(obj,true,"text",-1,250,"'<>","CATEGORY Caption")   )
		return false;
	return true;
}
function ValidateDocsSearchForm(FormObject){
//PUT YOUR VALIDATION CODE HERE
//YOU CAN USE FUNCTION "VALIDATIONTEMPLATE" IN YOUR VALIDATION
//EXAMPLE:
	var obj = GetFormFieldByName(FormObject,"CatID");
	if( !ValidationTemplate(obj,false,NUMBER_DATA_TYPE,-1,10,"'<>","CATEGORY ID")   )
		return false;
	obj = GetFormFieldByName(FormObject,"PubNo");	
	if( !ValidationTemplate(obj,false,"text",-1,10,"'<>","SUBJECT NUMBER")   )
		return false;
	obj = GetFormFieldByName(FormObject,"StartDocDate");	
	if( !ValidationTemplate(obj,false,DATE_DATA_TYPE,-1,10,"'<>","DOCUMENT DATE")   )
		return false;
	obj = GetFormFieldByName(FormObject,"EndDocDate");	
	if( !ValidationTemplate(obj,false,DATE_DATA_TYPE,-1,10,"'<>","DOCUMENT DATE")   )
		return false;
	return true;
}
/////////////////////////////////////////////////////////////////////////////////
//////////////////general function used for validation///////////////////////////
/////////////////////////////////////////////////////////////////////////////////
//check date
//parameters:
//field : (object) reference to form field 
//format: (string) date format (i.e: dd/mm/yyyy)
//return:
//true : if field is a valid date
//false : if field is a valid date
function check_date(field,format){
	var DateField = field;
	var Datevalue = "";
	var DateTemp = "";
	var day;
	var month;
	var year;
	var leap = 0;
	var i;
	var pos;
	if (isNull(field))
	{
		return true;
	} 
	DateValue = DateField.value;
   /* if there are letters then date is invalid*/
   for (i = 0; i < DateValue.length; i++) 
   {
	  if ( isNaN( DateValue.substr(i,1) ) && DateValue.substr(i,1)!="/"  ) 
	  {
	     return false;
	  }
   }
	var DatePortions = DateValue.split("/");
	if (DatePortions.length != 3)
		return false;
	//if date format is (MM/DD/YYYY) then the first portion
	//is month otherwise it will be the day
	if (format.toLowerCase() == "mm/dd/yyyy")
	{
		month = DatePortions[0];
	}
	else
	{
		day = DatePortions[0];
    }
	//if date format is (MM/DD/YYYY) then the second portion
	//is day otherwise it will be the month
	if (format.toLowerCase() == "mm/dd/yyyy")
	{		
		day = DatePortions[1];
	}
	else
	{
		month = DatePortions[1];
    }
    //year = DateValue;
    year = DatePortions[2];
	//now after we got the day , month and year we should check them
   if ((month < 1) || (month > 12)) 
   {
	     return false;
   }
   if ((day < 1) || (day > 31)) 
   {
	     return false;
   }
   if (year == 0) 
   {
	     return false;
   }
   /* Validation leap-year / february / day */
   if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) 
   {
      leap = 1;
   }
   if ((month == 2) && (leap == 1) && (day > 29)) 
   {
	     return false;
   }
   if ((month == 2) && (leap != 1) && (day > 28)) 
   {
	     return false;
   }
   /* Validation of other months */
   if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) 
   {
	     return false;
   }
   if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) 
   {
	     return false;
   }
   return true;	
}
////////////////////////////////////////////////////////////////////////////////////////
//check if obj is empty
//parameter:
//obj: (object) reference to form field
//return:
//true : if obj value is empty
//false: if obj value is not empty
function isEmpty(obj)
{
		if(obj.value == "")
		{
			return true;
		}//end if
		return false;
}
//////////////////////////////////////////////////////
//check if form field first choise is selected (dropDownList)
//parameter:
//obj : (object) form field object
//return :
//true : if first choise selected
function isFirstSelected(obj){
	if(obj.selectedIndex==0)
	{
		return true;
	}
	return false;
}
function SetValue(DropDownListObject)
{
	var IDField = GetFormFieldByName(document.forms.item(0),"SelectedYear");
	document.forms[0].SelectedYear.value= DropDownListObject.Selected;	
	
}
/////////////////////////////////////////////////
//check if form object is null
//parameters:
//obj: (object) form field
//return:
//true : if field is null
function isNull(obj){
	if (!obj)
	{
		return true;
	}
	return false;
}
//////////////////////////////////////////////////////
//check is form filed value is a number
//parameter:
//obj : (object) form field
//return :
//true: if form field is a number
function isNumber(obj){
		if(isNaN(obj.value))
		{
			return false;
		}
		return true;
}
////////////////////////////////////////////////////
//check if field value length less than specific length
//parameters:
//obj: (object) form field 
//leastLength : (int) value length
//return:
//true: if field value is less than "leastLength" 
function isLengthLessThanExpected(obj,leastLength){
		if(obj.value.length < leastLength )
		{
			return true;
		}//end if
		return false;
}
//////////////////////////////////////////////////
//check if field value length greater than specific length
//parameters:
//obj: (object) form field 
//MaximumLength : (int) value length
//return:
//true: if field value is greater than "leastLength" 
function isLengthGreaterThanExpected(obj,MaximumLength){
		if(obj.value.length > MaximumLength )
		{
			return true;
		}//end if
		return false;
}
//////////////////////////////////////////////////////////////////////////////////
//check if form field value contains specific value , (don't match letter cases)
//parameters: 
//obj : (object) form field
//stringToSearch : (string) string to search for
//return :
//true : if "stringToSearch" found in field value
function contains(obj,stringToSearch){
		if( obj.value.toUpperCase().indexOf(stringToSearch.toUpperCase()) != -1  )
		{
			return true;
		}//end if
		return false;
}
//////////////////////////////////////////////////////////////////////////////////
//this function should get a reference to a form field 
//when a form Field name contains parameter "FieldName"  
//(i.e:not exact name of form field)
//parameter:
//FormObject: (object) reference to form
//FieldName : (string) field name to search for
function GetFormFieldByName(FormObject,FieldName){
		
		var i = 0;
		try{

			
			while (FormObject.elements.item(i) != null)
			{
				//if a field with name contains field name return this field
				if( FormObject.elements.item(i).name.toUpperCase().indexOf(FieldName.toUpperCase()) != -1  )
				{
					return FormObject.elements.item(i);
				}//end if
				i++;
			}
		}
		catch(e){}
		return null;
}
///////////////////////////////////////////////////////////////////////////
function GetIndexOfFormFieldByName(FormObject,FieldName){
		var i = 0;
		while (FormObject.elements.item(i) != null)
		{
			//if a field with name contains field name return this field
			if( FormObject.elements.item(i).name.toUpperCase().indexOf(FieldName.toUpperCase()) != -1  )
			{
				return i;
			}//end if
			i++;
		}
		return -1;
}
////////////////////////////////////////////////////////////////
function GetTagByName(tagName,ItemName){
		var i = 0;
		while (document.all.tags(tagName).item(i) != null)
		{
			//if a field with name contains field name return this field
			if( document.all.tags(tagName).item(i).id.toUpperCase().indexOf(ItemName.toUpperCase()) != -1  )
			{
				return document.all.tags(tagName).item(i);
			}//end if
			i++;
		}
		return null;
}
//////////////////////////////////////////////////////////////////////////
function GetTagByNameInParentWindow(tagName,ItemName){
		var i = 0;
		while (window.opener.document.all.tags(tagName).item(i) != null)
		{
			//if a field with name contains field name return this field
			if( window.opener.document.all.tags(tagName).item(i).id.toUpperCase().indexOf(ItemName.toUpperCase()) != -1  )
			{
				return window.opener.document.all.tags(tagName).item(i);
			}//end if
			i++;
		}
		return null;
}
//////////////////////////////////////////////////////////////////////////////////
//this function should validate a form field
//against a special format
//parameters:
//obj: (object) form field reference
//StringFormat : (string) the string format
//     examples:
//		email validation	
//		/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi
//return:
//true : if field value match the format
//false: if field value doesn't math the format
function SpecialStringFormat(obj,StringFormat){
	var ValidFormat = obj.value.match(StringFormat);
	if (ValidFormat)
	{
		return true;
	}
	else
	{
		return false;
	}
}
//////////////////////////////////////////////////////////////////////////////////
//this function should check if a form field is a valid email address
//parameter:
//obj : (object) form field
//return :
//true: if field has valid email value
function check_email(obj){
	//email address cannot have spaces
	if (obj.value.indexOf(" ") != -1)
	{
		return false;
	}
	//check for existence of '@'
	var EmailPortions = obj.value.split("@");
	if (EmailPortions.length != 2)
	{
		return false;
	}
	//the email with format '@dfgh.djfh' is invalid
	if (EmailPortions[0] == "")
	{
		return false;
	}
	//the email with format 'sdfhg@' is invalid
	if (EmailPortions[1] == ""){
		return false;
	}
	//check for existence of '.'
	EmailPortions = EmailPortions[1].split(".");
	if (EmailPortions.length < 2)
	{
		return false;
	}
	//the email with format 'sdf@.com' is invalid
	if(EmailPortions[0] == "")
	{
		return false;
	}
	//check for domain extensions (i.e: .net,.com,.gov)
	var validDomain = false;
	for (i=0;i<ValidDomainExtensions.length;i++)
	{
		if(EmailPortions[1].toLowerCase() == ValidDomainExtensions[i].toLowerCase())
		{
			validDomain = true;
			break; 
		}//end of if
	}//end of for
	if (!validDomain)
	{
		return false;
	}//if domain is not valid return false
	return true;
}
/////////////////////////////////////////////////////////////////////////
//this function should check if a form field is a valid email address
//parameter:
//obj : (object) form field
//return :
//true: if field has valid email value
function check_WebSite(obj){
	//email address cannot have spaces
	if (obj.value.indexOf(" ") != -1)
	{
		return false;
	}
	//check for existence of '.'
	var StringPortions = obj.value.split(".");
	if (StringPortions.length < 2)
	{
		return false;
	}
	//the email with format 'sdf@.com' is invalid
	if(StringPortions[0] == "" || StringPortions[1] == "" )
	{
		return false;
	}
	//check for domain extensions (i.e: .net,.com,.gov)
	var validDomain = false;
	for (i=0;i<ValidDomainExtensions.length;i++)
	{
		if(StringPortions[1].toLowerCase() == ValidDomainExtensions[i].toLowerCase())
		{
			validDomain = true;
			break; 
		}//end of if
	}//end of for
	if (!validDomain)
	{
		return false;
	}//if domain is not valid return false
	return true;
}

///////////////////////////////////////////////////////////////////////////////////
//this function should check if a date is less than current day
//and return integer value :
//return 1 if datefield1 > currentday
//return 0 if datefield1 == currentday
//return -1 if datefield1 < currentday
function IsDateBeforeToday(datefield1,format){
	var result = 0;
	var flag = 0;
	var Today = new Date();
	if (isNull(datefield1))
	{
		return false;
	}   
	if (check_date (datefield1,format))
	{
		///////////////////////check year///////////////////////////////////
		if (flag == 0)
		{
			if ( getYear(datefield1,format) > Today.getFullYear()  )
			{
				result = 1;
				flag = 1;
				
			}
		} //if (flag == 0)
		if (flag == 0)
		{
			if ( getYear(datefield1,format) < Today.getFullYear()  )
			{
					result = -1;
					flag=1;
			}
		}//if (flag == 0)		
		///////////////////////check month///////////////////////////////////
		if (flag == 0)
		{
			if ( getMonth(datefield1,format) > Today.getMonth()+1  )
			{
					result = 1;
					flag=1;
			}
		}//if (flag == 0)		
		if (flag == 0)
		{
			if ( getMonth(datefield1,format) < Today.getMonth()+1  )
			{
					result = -1;
					flag=1;
			}
		}//if (flag == 0)		
		///////////////////////check day///////////////////////////////////
		if (flag == 0)
		{
			if ( getDay(datefield1,format) > Today.getDate()   )
			{
					result = 1;
					flag=1;
			}
		}//if (flag == 0)		
		if (flag == 0)
		{
			if ( getDay(datefield1,format) < Today.getDate()   )
			{
					result = -1;
					flag=1;
			}
		}//if (flag == 0)		
	}//if (!check_date (datefield1,format) || !check_date(datefield2,format) )     
	return result;
}
///////////////////////////////////////////////////////////////////////////////////
//this function should compare two dates
//and return integer value :
//return 1 if datefield1 > datefield2
//return 0 if datefield1 == datefield2
//return -1 if datefield1 < datefield2
function compareDates(datefield1,datefield2,format){
	var result = 0;
	var flag = 0;
	if (isNull(datefield1) || isNull(datefield2))
	{
		return 0;
	}  
	if (check_date (datefield1,format) && check_date(datefield2,format) )
	{
		///////////////////////check year///////////////////////////////////
		if (flag == 0)
		{
			if ( getYear(datefield1,format) > getYear(datefield2,format) )
			{
				result = 1;
				flag = 1;
			}
		} //if (flag == 0)
		if (flag == 0)
		{
			if ( getYear(datefield1,format) < getYear(datefield2,format) )
			{
					result = -1;
					flag=1;
			}
		}//if (flag == 0)		
		///////////////////////check month///////////////////////////////////
		if (flag == 0)
		{
			if ( getMonth(datefield1,format) > getMonth(datefield2,format) )
			{
					result = 1;
					flag=1;
			}
		}//if (flag == 0)		
		if (flag == 0)
		{
			if ( getMonth(datefield1,format) < getMonth(datefield2,format) )
			{
					result = -1;
					flag=1;
			}
		}//if (flag == 0)		
		///////////////////////check day///////////////////////////////////
		if (flag == 0)
		{
			if ( getDay(datefield1,format) > getDay(datefield2,format) )
			{
					result = 1;
					flag=1;
			}
		}//if (flag == 0)		
		if (flag == 0)
		{
			if ( getDay(datefield1,format) < getDay(datefield2,format) )
			{
					result = -1;
					flag=1;
			}
		}//if (flag == 0)		
	}//if (!check_date (datefield1,format) || !check_date(datefield2,format) )     
	return result;
}
///////////////////////////////////////////////////////////////////////////////////
//get day from date
//parameter:
//dateField : (object) date form field 
//format: (string) date format (i.e: MM/DD/YYYY)
//return :
//day portion from date field
function getDay(datefield,format){
	var day;
	var DateTemp;
	var DateValue;
	var pos;
	if (!check_date (datefield,format) )
	{
		return 0;
	}     
	else
	{
		DateValue = datefield.value;
		var DatePortions = DateValue.split("/");
		pos = DateValue.indexOf("/");
		if (format.toLowerCase() == "mm/dd/yyyy")
		{
			day = DatePortions[1];
		}
		else
		{
			day = DatePortions[0];
	    }//end of if
		if( day == "08"  )
		{
			return 8;
		}
		if( day == "09"  )
		{
			return 9;
		}
	return parseInt(day);
	}
}
//////////////////////////////////////////////////////////////////////////////////
//get month from date
//parameter:
//dateField : (object) date form field 
//format: (string) date format (i.e: MM/DD/YYYY)
//return :
//month portion from date field
function getMonth(datefield,format){
	var month;
	var DateTemp;
	var DateValue;
	var pos;
	if (!check_date (datefield,format) )
	{
		return 0;
	}     
	else
	{
		DateValue = datefield.value;
		var DatePortions = DateValue.split("/");
		if (format.toLowerCase() == "mm/dd/yyyy")
		{
			month = DatePortions[0];
		}
		else
		{
			month = DatePortions[1];
	    }//end of if
		if( month == "08"  )
		{
			return 8;
		}
		if( month == "09"  )
		{
			return 9;
		}
	return parseInt(month);
	}
}
//////////////////////////////////////////////////////////////////////////////////
//get year from date
//parameter:
//dateField : (object) date form field 
//format: (string) date format (i.e: MM/DD/YYYY)
//return :
//year portion from date field
function getYear(datefield,format){
	var year;
	var DateTemp;
	var DateValue;
	var pos;
	if (!check_date (datefield,format) )
	{
		return 0;
	}     
	DateValue = datefield.value;
	var DatePortions = DateValue.split("/");
	year = DatePortions[2];
    return parseInt(year);
}
//////////////////////////////////////////////////////////////////////////////////
//this function has validation templates for field items
//parameters:
//1:) obj : (object)form field to be validated
//2:) Required : (boolean)if true then check if field have data
//3:) dataType : (string)field data type (numberEntry , textEntry , dateTimeEntry or selectEntry )
//4:) LengthGreaterThan : (int)the minimum length for the field , (-1) don't check for minimum length
//5:) LengthLessThan : (int)the maximum length for the field , (-1) don't check for maximum length
//6:) DoNotContain :(string) the field value must not have any character in that string
//7:) FieldCaption(optional) : (string) the field caption , used for alert appear to users
//return :
//true : if form field is valid according to previous criteria
//false : if form field is not valid according to previous criteria
function ValidationTemplate(obj,Required,dataType,LengthGreaterThan,LengthLessThan,DoNotContain){
	var k=0;
	//if form field not found return true since there is no field to validate
	//otherwise validate the field according to specified criteria
	if ( !isNull(obj)  )
	{
		//getting field caption that used in alerting errors
		//if  parameter fieldCaption not set make the field caption = the name of object
		var FieldCaption = obj.name;
		if (ValidationTemplate.arguments.length > 6) 
		{
			FieldCaption = ValidationTemplate.arguments[6];
		}
		//checking if form field required
		if (Required == true)
		{
			switch(obj.type)
			{
				//if field is a checkbox
				case "checkbox":
					if(obj.checked == false)
					{
						ClientResponse(obj,FieldCaption+" "+ERROR_MUST_BE_CHECKED); 
						return false;
					}//end of if
				case "select-multiple":
					if(isEmpty(obj))
					{
						ClientResponse(obj,ERROR_AT_LEAST_ONE_ITEM_SELECTED+" "+FieldCaption); 
						return false;
					}
					break;
				default:
					if(isEmpty( obj ) )
					{
						ClientResponse(obj,FieldCaption+" "+ERROR_CANNOT_BE_NULL); 
						return false;
					}//end of if
					break;
				}//end of switch
		}
		else
		{
			switch(obj.type)
			{
				//if field is a check box
				case "checkbox":
					if(obj.checked == false)
					{
						return true;
					}//end of if
				default:
					if(isEmpty( obj ) )
					{
						return true;					
					}//end of if
					break;
				}//end of switch
		}
		////////////////////////////////
		///check data type
		switch( dataType )
		{
			//check for valid email addresses
			case EntryTypes[0] :
				//email address cannot have spaces
				if (obj.value.indexOf(" ") != -1)
				{
					ClientResponse(obj,FieldCaption+" "+ERROR_NOT_VALID_EMAIL);
					return false;
				}
				if( !( check_email(obj) )  )
				{
					ClientResponse(obj,FieldCaption+" "+ERROR_NOT_VALID_EMAIL); 
					return false;
				}
				break;
			//check for integer values
			case EntryTypes[1]:
				if( !isNumber( obj )  )
				{
					ClientResponse(obj,FieldCaption+" "+ERROR_NOT_VALID_NUMBER); 
					return false;
				}
				break;
			//check for date
			case EntryTypes[2]:
				if( !check_date( obj ,dateFormat )  )
				{
					ClientResponse(obj,FieldCaption+" "+ERROR_NOT_VALID_DATE); 
					return false;
				}
				break;
			//check if first choice in a combo selected
			case EntryTypes[3]:
				if( isFirstSelected( obj)  )
				{
					ClientResponse(obj,FieldCaption+" "+ERROR_FIRST_CHOICE_FORBIDDEN); 
					return false;
				}
				break;
			//web site address
			case EntryTypes[5]:
				if( !check_WebSite(obj)  )
				{
					ClientResponse(obj,FieldCaption+" "+ERROR_NOT_VALID_WEB_SITE); 
					return false;
				}
				break;
			//multiselection list box
			case EntryTypes[6]:
				var isValidListBox = false;
				for(i=0 ; i<obj.options.length;i++)
				{
					if(obj.options[i].selected)
					{
						isValidListBox = true;
						break;
					}
				}
				if(!isValidListBox)
				{
					ClientResponse(obj,ERROR_AT_LEAST_ONE_ITEM_SELECTED+" "+FieldCaption); 
					return false;
				}
				break; 
		}//switch
		////////////////////////////////		
		//check if field data length 
		//is less than the required length or not
		if ( LengthGreaterThan != -1 ){
			if(	isLengthLessThanExpected(obj,LengthGreaterThan ))
			{
				ClientResponse(obj,FieldCaption+" "+ERROR_LESS_THAN_REQUIRED+" "+LengthGreaterThan); 
				return false;
			}
		}
		////////////////////////////////
		//check if field data length 
		//is greater than the required length or not
		if ( LengthLessThan != -1 )
		{
			if(	isLengthGreaterThanExpected (obj,LengthLessThan ))
			{
				ClientResponse(obj,FieldCaption+" "+ERROR_GREATER_THAN_REQUIRED+" "+LengthLessThan); 
				return false;
			}
		}
		////////////////////////////////
		//check if field value has rubbish text
	   for (k = 0; k < DoNotContain.length; k++) 
	   {
			if (  contains(obj,DoNotContain.substr(k,1) )  ) 
			{
				ClientResponse(obj,FieldCaption+" "+ERROR_HAVE_INVALID_LETTERS+" ("+DoNotContain+")"  ); 
				return false;
			}
		}//for 
		//////////////////////////////////
		//if field satisfies all the validation criteria return true
		return true;		
	}
	else
	{
		return true;
	}//end of if ( !isNull(obj)  )
}
//////////////////////////////////////////////////////////////////////////////////
//this function validates many form fields at one time
//parameters:
//1:)formObject : (object) reference to form 
//2:)FieldsIndexes: (Array of int) form fields  indexes which should be validated
//3:)RequiredArray : (Array of boolean) need for form fields to be filled by data
//4:)ValidationTypeArray : (Array of string) form fields types (email,date,integer,...etc)
//5:)MinimumLengthArray : (Array of int) minimum length for fields
//6:)MaximumLengthArray : (Array of int ) maximum length for fields 
//7:)RubbishTextArray : (Array of string) characters that shouldn't appear in form fields values
//return :
//true : if all form fields are valid
//false : if one field is invalid
function multipleValidation(FormObject,FieldsIndexes,RequiredArray,ValidationTypeArray,MinimumLengthArray,MaximumLengthArray,RubbishTextArray)
{
	for (i=0;i<FieldsIndexes.length;i++)
	{
			if (!ValidationTemplate(FormObject.item(FieldsIndexes[i]),RequiredArray[i],ValidationTypeArray[i],MinimumLengthArray[i],MaximumLengthArray[i],RubbishTextArray[i]) )
			{
				return false;
			}
	} 
	return true;
}
//////////////////////////////////////////////////////////////////////////////////
//this function has the action that should be done when encountering errors
//parameter:
//obj : (object) form field
//message : (string) error message that will be alerted to user
function ClientResponse(obj,message){
		//alert the message to inform user that data entered is not valid
		alert(message);
		//make the field get focus
		try
		{
			
			if ( obj.type != "hidden" ){
				obj.focus();
			}
			//if field is text select the text inside it
			if (obj.type == "text" || obj.type == "textarea")
			{
				obj.select();
			}
		}
		catch(e)
		{
		}
}
////////Step 1 in Displing All Cat Of Users TO select The Admin In Cat Creation

//selectCollageTree 
//////////////////////////////////////////////////////////////////////////////////
////////////////////////////////END OF FILE//////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
