function AutoRun(){
	 
	if(typeof(document.form) == "object" && typeof(document.form.back) == "object" && document.form.back.value == 1){
		for(i = 0; i < document.form.length; i++){ document.form.elements[i].disabled = true; }
	}
	 
	ChangeCaptcha();
}

var repeatCaptcha = 1;
function ChangeCaptcha(){
	if(repeatCaptcha++ > 3){ alert(".عفواً.. لا يمكنك تغيير الصورة أكثر من ثلاث مرات"); }
	else if(document.images['imgCaptcha']){ document.images['imgCaptcha'].src = '/captcha.php?i=' + Math.random(); }
}

function Menu(){
	var currentmenu;
	switch(window.page){
		case "PageSectionIndex": case "PageSectionFav": case "PageSectionItem":
		case "PageSectionItemsThreads": case "PageManageItemAdd":
			currentmenu = 2; break;
		case "PageForumIndex": case "PageForumFav": case "PageForumFr":
		case "PageForumFrsThreads": case "PageManageFrAdd":
			currentmenu = 3; break;
		case 'PageManageIndex': case 'PageManageInternal':
		case 'PageManageInternalSend': case 'PageManageItems': case 'PageManageItemsThreads':
		case 'PageManageItemUpdate': case 'PageManageEmailNew': case 'PageManageMobileNew':
		case 'PageManageFrs': case 'PageManageFrsThreads': case 'PageManageFrUpdate':
		case 'PageManageFiles': case 'PageManageShop': case 'PageManageCustomize':
		case 'PageManageUpdateVerify': case 'PageManageUpdate':
			currentmenu = 4; break;
		case 'PageHomePayableServices': case 'PageHomeKnown': case 'PageHomeTAd': 
			currentmenu = 5; break;
		case 'PageHomeIndex': case 'PageHomeFAQ': case 'PageHomeContact':
		case 'PageHomeLink': case 'PageHomeMedia': case 'PageHomeMediaimage':
		case 'PageHomeAgreement':
			currentmenu = 6; break;
		default:
			currentmenu = 1;
	}
	ChangeMenu(currentmenu, 0);
}

function ChangeMenu(obj, flash){
	var i;
	for(i = 1; i <= 6; i++){
		document.getElementById("menuButton" + i).className = "menuButton";
		document.getElementById("menuLinks" + i).style.display = "none";
	}
	if(flash == 1){
		document.getElementById("menuButton" + obj).className = "menuButtonFlash";
		document.getElementById("subMenu").className = "subMenuFlash";
		document.getElementById("menuLinks" + obj).style.display = "block";
		setTimeout("ChangeMenu(" + obj + ", 0)", 300);
	}else{
		document.getElementById("menuButton" + obj).className = "menuButtonActive";
		document.getElementById("subMenu").className = "subMenu";
		document.getElementById("menuLinks" + obj).style.display = "block";
	}
}

function ChangeColor(field, value, css){
	if(field.value == value){ field.className = "color gWhite " + css; }else{ field.className = "color gH3 " + css; }
}

function ArrayIndexOf(a, o){
	if(Array.indexOf){
		return a.indexOf(o);
	}else{
		for(var i = 0; i < a.length; i++){
			if(a[i] == o){ return i; }
		}
		return -1;
	}
}

function Types(s, t, selected, noFirstOption){
	var currentSection = parseInt(s.value);
	var currentSectionIndex;
	if(currentSection == 0){ t.length = 1; }
	else{
		currentSectionIndex = ArrayIndexOf(SOrder, currentSection);
		t.length = TOrder[currentSectionIndex].length + 1;
	}
	if(noFirstOption){ t.length--; j = 0; }
	else{ t.options[0].style.backgroundColor = "white"; j = 1; }
	t.options[0].selected = 1;
	var i;
	var currentSectionTypes = TOrder[currentSectionIndex];
	var currentSelectedTypeIndex;
	if(currentSectionTypes){ currentSelectedTypeIndex = ArrayIndexOf(currentSectionTypes, parseInt(selected)); }
	for(i in currentSectionTypes){
		t.options[j].value = currentSectionTypes[i];
		t.options[j].text = T[currentSection][currentSectionTypes[i]];
		if(currentSelectedTypeIndex == i){ t.options[j].selected = 1; }
		j++;
	}
	if(document.getElementById("tDes")){ TypesDes(TD, t.value, s.value); }
	else{ Cars(s.value, t.value); }
}

function TypesDes(TD, t, s){
	if(t == 0){
		document.getElementById("tDes").innerHTML = "اختر القسم الرئيسي أولاً، ثم اختر القسم الفرعي من القائمة أعلاه.";
		if(window.page == "PageManageItemAdd" || window.page == "PageManageItemAdd"){ document.getElementById("tDes").className = ""; }
	}else{
		document.getElementById("tDes").innerHTML = TD[t];
		if(window.page == "PageManageItemAdd" || window.page == "PageManageItemAdd"){ document.getElementById("tDes").className = "gO1"; }
	}
	Cars(s, t);
}

function Cars(s, t){
	if(s == "4" && t != "44" && t != "45"){
		document.getElementById('c').disabled = false; // important for verifing form
		document.getElementById('c').style.display = ""; // show the field in list & add & search pages
		if(document.getElementById('cField')){ document.getElementById('cField').style.display = ""; } // show the tr in add & search pages
	}else{
		if(document.getElementById('c').value > 0){ document.getElementById('c').options[0].selected = true; } // reset the field before hide it to reshow it again form the bigining
		document.getElementById('c').disabled = true;
		document.getElementById('c').style.display = "none";
		if(document.getElementById('cField')){ document.getElementById('cField').style.display = "none"; }
	}
}

function LocationDes(l){
	switch(l){
		case "1":  document.getElementById("lDes").innerHTML="الرياض، الدرعية، الخرج، الدوادمي، المجمعة، القويعية، الأفلاج، وادي الدواسر، الزلفي، شقراء، حوطة بني تميم، عفيف، السليل، ضرماء، المزاحمية، رماح، ثادق، حريملاء، الحريق، الغاط..."; break;
		case "2":  document.getElementById("lDes").innerHTML="مكة المكرمة، جدة، الطائف، القنفذة، الليث، رابغ، الجموم، خليص، الكامل، الخرمة، رنية، تربة..."; break;
		case "3":  document.getElementById("lDes").innerHTML="المدينة المنورة، ينبع، العلا، المهد، بدر، خيبر، الحناكية..."; break;
		case "4":  document.getElementById("lDes").innerHTML="الدمام، الخبر، الإحساء، حفر الباطن، الجبيل، القطيف، الخفجي، رأس تنورة، أبقيق، النعيرية، قرية العليا، الخرخير..."; break;
		case "5":  document.getElementById("lDes").innerHTML="بريدة، عنيزة، الرس، المذنب، البكيرية، البدائع، الأسياح، النبهانية، الشماسية، عيون الجواء، رياض الخبراء..."; break;
		case "6":  document.getElementById("lDes").innerHTML="أبها، خميس مشيط، بيشة، النماص، محايل، سراة عبيدة، تثليث، رجال المع، بالقرن، أحد رفيدة، ظهران الجنوب، المجاردة..."; break;
		case "7":  document.getElementById("lDes").innerHTML="جازان، صبياء، أبوعريش، صامطة، الحرث، ضمد، الريث، بيش، فراسان، الدائر، أحد المسارحة، العيدابي، العارضة، القياس..."; break;
		case "8":  document.getElementById("lDes").innerHTML="نجران، شرورة، حبونا، بدر الجنوب، يدمة، ثار، خباش..."; break;
		case "9":  document.getElementById("lDes").innerHTML="الباحة، بلجرشي، المندق، المخواة، العقيق، قلوة، القرى..."; break;
		case "10": document.getElementById("lDes").innerHTML="حائل، بقعاء، الغزالة، الشنان..."; break;
		case "11": document.getElementById("lDes").innerHTML="تبوك، الوجه، ضباء، تيماء، أملج، حقل..."; break;
		case "12": document.getElementById("lDes").innerHTML="سكاكا، القريات، دومة الجندل..."; break;
		case "13": document.getElementById("lDes").innerHTML="عرعر، رفحاء، طريف..."; break;
		case "14": document.getElementById("lDes").innerHTML="خارج المملكة العربية السعودية."; break;
		default:   document.getElementById("lDes").innerHTML="اختر مكان الإعلان من القائمة أعلاه.";
	}
}

function PayableServicesSpecial(){
	if(isNaN(document.form.period.value)){ document.form.amount.value = 0; }
	else{
		document.form.amount.value = document.form.period.value * 35;
		if(document.form.amount.value > 350){ document.form.amount.value = 350; }
	}
}

function PayableServicesFixed(){
	if(document.form.type.value == "1. الإعلانات المثبتة في الصفحة الرئيسية"){ week = 350; month = 1000; }
	else if(document.form.type.value == "2. الإعلانات المثبتة في أحد أقسام الموقع"){ week = 250; month = 800; }
	else{ week = 0; month = 0; }
	if(document.form.period.value == "أسبوع"){ document.form.amount.value = week; }
	else if(document.form.period.value == "أسبوعين"){ document.form.amount.value = 2 * week; }
	else{ document.form.amount.value = document.form.period.value * month; }
}

function PayableServicesBroker(i){
	if(i){
		document.form.amountToSeller.value = Math.round(document.form.amount.value * 0.97);
		document.form.amountToMstaml.value = Math.round(document.form.amount.value * 0.03);
		if(document.form.amountToMstaml.value < 30){
			document.form.amountToMstaml.value = 30;
			document.form.amountToSeller.value = document.form.amount.value - 30;
		}
	}else{
		document.form.amount.value = Math.round(document.form.amountToSeller.value / 0.97);
		document.form.amountToMstaml.value = Math.round(document.form.amount.value * 0.03);
		if(document.form.amountToMstaml.value < 30){
			document.form.amountToMstaml.value = 30;
			document.form.amount.value = (document.form.amountToSeller.value * 1 ) + 30; // *1 is imp to be adding numbers not concatenating strings
		}
	}
}

function PayableServicesCommission(){
	if(isNaN(document.calculateCommission.total.value)){
		document.calculateCommission.commission.value = "X";
		alert(".يرجى إضافة أرقام فقط");
	}else{ document.calculateCommission.commission.value = Math.round(document.calculateCommission.total.value) / 100; }
}

function BidStatus(value){
	if(value == 2){ document.form.bidStart.disabled = false; document.form.bidCurrency.disabled = false; }
	else{ document.form.bidStart.disabled = true; document.form.bidCurrency.disabled = true; }
}

var threads = new Object();
function ThreadEdit(id, move){
	document.form.body.value = threads['ID' + id];
	document.form.thr.value = id;
	document.form.edit.style.visibility = "visible"
	if(move){ window.location = String(window.location).replace(/\#.*$/, "") + "#thread"; }
}

var userInfo = new Object();
function ShowUserInfo(info, siteName){
	var domain = "^.*\\." + siteName + "\\.com$";			
	if(window.location.host.match(domain)){
		document.write(info);
	}else{
		document.write("<a href='http://www.mstaml.com'>هذا المعلومات مسروقة من موقع مستعمل</a>");
	}
}

function SetCookie(name, value, domain){
	var exdate = new Date();
	exdate.setDate(exdate.getDate() + 365);
	document.cookie = name + "=" + escape(value) + ";expires=" + exdate + ";path=/;domain=." + domain;
}

function GetCookie(name){
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0; i < ca.length; i++){
		var c = ca[i];
		while(c.charAt(0)==' '){ c = c.substring(1, c.length); }
		if(c.indexOf(nameEQ) == 0){ return unescape(c.substring(nameEQ.length, c.length)); }
	}
	return null;
}

function SavedSearch(save, domain){
	if(save){
		if(!GetCookie('savedSearch') || confirm('يوجد لديك بحث محفوظ حالياً، هل تريد حفظ هذا البحث بدلاً من البحث القديم؟')){
			SetCookie('savedSearch', window.location, domain);
			alert("لقد تم حفظ هذا البحث في جهازك هذا بنجاح. ويمكنك الرجوع لهذا البحث عن طريق رابط \"البحث المحفوظ\" في قائمة الروابط أعلى الموقع تحت قسم السوق أو عن طريق قسم \"بسرعة!\" في يسار صفحات الموقع");
		}
	}else{
		if(GetCookie('savedSearch')){ window.location = GetCookie('savedSearch'); }
		else{ alert("عفواً.. لا يوجد لديك بحث محفوظ حالياً! يمكنك حفظ أي بحث تقوم به عن طريق زر \"حفظ البحث\" الموجود في صفحات البحث في السوق"); }
	}
}


function ItemsShowAll(i, max, name){
	if(!name){ name = "item"; }
	while(i++ <= max){
		if(document.getElementById(name + i)){ 
			document.getElementById(name + i).style.display = "block"; 
			document.getElementById("plusminus" + i).src = "/images/minus.gif";
			document.getElementById("meta" + name + i).style.display = "none";
			ImageShow(i); 
		}
	}
}

function ItemsHideAll(i, max, name){
	if(!name){ name = "item"; }
	while(i++ <= max){
		if(document.getElementById(name + i)){ 
			document.getElementById(name + i).style.display="none"; 
			document.getElementById("plusminus" + i).src = "/images/plus.gif";
			document.getElementById("meta" + name + i).style.display = "block";
		}
	}
}

function ItemsShowHide(i, flag, name){
	if(!name){ name = "item"; }
	if(document.getElementById(name + i).style.display == "none" || document.getElementById(name + i).style.display == ""){
		document.getElementById(name + i).style.display = "block";
		document.getElementById("plusminus" + i).src = "/images/minus.gif";
		if(flag){
			document.getElementById("meta" + name + i).style.display = "none";
			ImageShow(i);
		}
	}else{
		document.getElementById(name + i).style.display = "none";
		document.getElementById("plusminus" + i).src = "/images/plus.gif";
		if(flag){
			document.getElementById("meta" + name + i).style.display = "block";
		}
	}
}

var imagesNames = new Array();
var imagesNamesFr = new Array();
var imagesWidths = new Array();
var imagesWidthsFr = new Array();
var imagesHeights = new Array();
var imagesHeightsFr = new Array();
function ImageShow(i){
	if((document.getElementById("image" + i)) && (document.getElementById("image" + i).src != "/imagesData/" + imagesNames[i])){
		document.getElementById("image" + i).src = "/imagesData/" + imagesNames[i];
		document.getElementById("image" + i).border = "1";
		document.getElementById("image" + i).width = imagesWidths[i];
		document.getElementById("image" + i).height = imagesHeights[i];
	}
	if((document.getElementById("imageFr" + i)) && (document.getElementById("imageFr" + i).src != "/imagesData/" + imagesNamesFr[i])){
		document.getElementById("imageFr" + i).src = "/imagesData/" + imagesNamesFr[i];
		document.getElementById("imageFr" + i).border = "1";
		document.getElementById("imageFr" + i).width = imagesWidthsFr[i];
		document.getElementById("imageFr" + i).height = imagesHeightsFr[i];
	}
}

function RowShowHide(value, field){
	if(value < 0){ document.getElementById(field).style.display = ""; }
	else{ document.getElementById(field).style.display = "none"; }
}

function CountryShowHide(){
	if(document.form.country[22].selected){ document.getElementById("countryOtherID").style.display = "block"; }
	else{ document.getElementById("countryOtherID").style.display = "none"; }
	if(document.form.country[7].selected){ document.form.city.disabled = false; }
	else{ document.form.city.disabled = true; }
}



var messages = new Object();
messages.agreement = '.عفواً.. يجب الموافقة على اتفاقية استخدام الموقع';
messages.username = '.عفواً.. يجب إضافة اسم المستخدم، وبشكل صحيح، وأن لا يقل طوله عن ثلاثة خانات';
messages.password = '.عفواً.. يجب إضافة كلمة السر، وأن لا يقل طولها عن أربعة خانات';
messages.passwordIdentical = '."عفواً.. يجب أن تتطابق خانة "كلمة السر" مع خانة "تأكيد كلمة السر';
messages.passwordNumbers = '.عفواً.. يجب إضافة الرقم السري، وأن يتكون من أربعة أرقام';
messages.passwordGeneral = '.عفواً.. يجب إضافة الرقم السري';
messages.emailIdentical = '."عفواً.. يجب أن تتطابق خانة "البريد الإلكتروني" مع خانة "تأكيد البريد الإلكتروني';
messages.url = '.عفواً.. يجب إضافة رابط متجرك الإلكتروني، وأن يتكون من حروف إنجليزية و/أو أرقام فقط، وأن يبدأ بحرف، وأن لا يقل طوله عن 3 خانات';
messages.shop = '.عفواً.. يجب إضافة اسم متجرك الإلكتروني';
messages.email = '.عفواً.. يجب إضافة البريد الإلكتروني، وبشكل صحيح';
messages.mobile = '.عفواً.. يجب إضافة رقم الجوال، وأن يبدأ بالخط الدولي، وبدون أصفار أو أي علامات أخرى';
messages.phone = '.عفواً.. خانة الهاتف اختيارية، يمكنك تركها فارغة، أو كتابة أرقام صحيحة فيها، ويمكنك فصل الأرقام بالعلامة "-" فقط';
messages.other = '.عفواً.. خانة طريقة اتصال أخرى اختيارية، يمكنك تركها فارغة، أو كتابة أرقام صحيحة فيها، ويمكنك فصل الأرقام بالعلامة "-" فقط';
messages.country = '.عفواً.. يجب إضافة الدولة وباللغة العربية';
messages.city = '.عفواً.. يجب اختيار المدينة';
messages.fullname = '.عفواً.. يجب إضافة الاسم الكامل، وباللغة العربية، وبشكل صحيح';
messages.name = '.عفواً.. يجب إضافة الاسم، وبشكل صحيح';
messages.birthdate = '.عفواً.. يجب التأكد من صحة تاريخ الميلاد';
messages.date = '.عفواً.. يجب اختيار التاريخ الصحيح';
messages.bid = '.عفواً.. يجب إضافة المزايدة، وبشكل صحيح، وأن لا تقل عن ما هو مذكور';
messages.thread = '.عفواً.. يجب إضافة الرد';
messages.message = '.عفواً.. يجب أن تضيف رسالتك';
messages.maximum = '.عفواً.. يجب أن لا يزيد عدد حروف هذه الخانة عن ';
messages.quickly = '.عفواً.. يجب ملء الخانة';
messages.captcha = '.عفواً.. يجب كتابة الرقم الظاهر في الصورة، وبشكل صحيح';
messages.correct = '.عفواً.. يجب التأكد من صحة ودقة المعلومات، والموافقة على النقطتين الأخيرتين في قسم إرسال الطلب';
messages.adID = '.عفواً.. يجب إضافة رقم الإعلان، وبشكل صحيح';
messages.period = '.عفواً.. يجب اختيار الفترة المطلوبة';
messages.bank = '.عفواً.. يجب اختيار البنك الذي تم فيه الإيداع';
messages.tad = '.عفواً.. يجب اختيار نوع الإعلان المطلوب';
messages.accountName = '.عفواً.. يجب إضافة اسم المودع أو صاحب الحساب البنكي';
messages.accountNumber = '.عفواً.. يجب إضافة رقم الحساب الذي تم التحويل منه، أو صفر في حال الإيداع';
messages.money = '.عفواً.. يجب إضافة المبلغ بالريال السعودي، وبشكل صحيح';
messages.section = '.عفواً.. يجب أن تختار القسم الرئيسي المناسب لإعلانك';
messages.type = '.عفواً.. يجب أن تختار القسم الفرعي المناسب لإعلانك';
messages.car = '.عفواً.. يجب أن تختار نوع السيارة';
messages.division = '.عفواً.. يجب أن تختار المنتدى المناسب لموضوعك';
messages.location = '.عفواً.. يجب أن تختار مكان الإعلان';
messages.subjectItem = '.عفواً.. يجب أن تضيف عنوان الإعلان';
messages.subjectFr = '.عفواً.. يجب أن تضيف عنوان الموضوع';
messages.bodyItem = '.عفواً.. يجب أن تضيف مواصفات الإعلان';
messages.bodyFr = '.عفواً.. يجب أن تضيف الموضوع';
messages.bidStart = '.عفواً.. يجب أن تضيف قيمة لبداية المزاد وأن تكون عدد صحيح بدون كسور';
messages.commission = '.عفواً.. يجب الموافقة على عمولة موقع مستعمل';
messages.kashida = '.عفواً.. يجب أن لا تحتوي هذه الخانة على علامة "_" لتمديد الحروف العربية، وذلك لضمان ظهور إعلانك عند استخدام البحث';
messages.contactsUser = 'تنبيه: لا ننصح بإضافة أرقام اتصالك في خانة المواصفات، لأنها قد تبقى في محركات البحث حتى بعد حذف الإعلان، وقد تقوم مواقع أخرى بنسخها آلياً وإعادة نشرها، مما يسبب لك اتصالات مزعجة. الأفضل وضعها في بطاقتك أدناه، حيث يصعب نسخها آلياً من هناك';
messages.contactsVisitor = 'تنبيه: لا ننصح بإضافة أرقام اتصالك في خانة المواصفات، لأنها قد تبقى في محركات البحث حتى بعد حذف الإعلان، وقد تقوم مواقع أخرى بنسخها آلياً وإعادة نشرها، مما يسبب لك اتصالات مزعجة. الأفضل الاكتفاء برقم جوالك المذكور أعلاه، حيث يصعب نسخه آلياً';
messages.numbers = '.عفواً.. يجب إضافة أرقام فقط';
messages.sure1 = 'هل أنت متأكد؟';
messages.sure2 = '.يرجى التأكد! ... لأنه لا يمكنك تغيير هذه المعلومات مستقبلاً';

// general variables
var integerPattern = /^[0-9]+$/;
var phonePattern = /^[0-9\- ]+$/;
var mobilePattern = /^[1-9][0-9]+$/;
var arabicPattern = /^[ابتثجحخدذرزسشصضطظعغفقكلمنهويأإآىئؤءة ]+$/;
var urlPattern = /^[a-zA-Z]([0-9a-zA-Z]){2,29}$/;
var emailPattern = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+[a-zA-Z0-9]{2,4}$/;



function CorrectUsername(field){
	while(field.value.indexOf(" ") != -1){ field.value = field.value.replace(" ", ""); }
	while(field.value.indexOf("ـ") != -1){ field.value = field.value.replace("ـ", ""); }
	while(field.value.indexOf(".") != -1){ field.value = field.value.replace(".", ""); }
	while(field.value.indexOf("--") != -1){ field.value = field.value.replace("--", "-"); }
	while(field.value.indexOf("__") != -1){ field.value = field.value.replace("__", "_"); }
	field.value = field.value.replace(/(\S)\1{2,}/g, "$1$1");
}

function RemoveKashida(field, msg){
	if(field.value.indexOf("ـ") != -1){ 
		if(msg){ alert(messages.kashida); }
		while(field.value.indexOf("ـ") != -1){ field.value = field.value.replace("ـ", ""); }
	}
}

var alertDone = 0;
function RemoveContacts(field, visitor){
	if(visitor){ msg = messages.contactsVisitor; }else{ msg = messages.contactsUser; }
	var contactsPattern = /(?:0|966|00966|\+966)5[0-9]{8}/;
	if(!alertDone && contactsPattern.test(field.value)){ alertDone = 1; alert(msg); }
}

function RemoveSpaces(field){
	if(field.value.indexOf("  ") != -1){ 
		while(field.value.indexOf("  ") != -1){ field.value = field.value.replace("  ", " "); }
	}
}

function CheckTextArea(field, max){
	if(field.value.length > max){ 
		alert(messages.maximum + max);
		field.value = field.value.substring(0, max); 
		field.focus();
	}
}

function CheckQuick(domain, x){
	Q = document.frmQuick;
	Q.x.value = Q.x.value.split(' ').join(''); // remove any spaces
	if(Q.x.value.length < 1){ alert(messages.quickly); Q.x.focus(); return false; }
	data = Q.x.value;
	Q.action = domain;
	Q.fi.disabled = true; Q.i.disabled = true; Q.u.disabled = true; Q.m.disabled = true; Q.x.disabled = true; // no need to send these in url
	if(x == 'ad'){ Q.i.disabled = false; Q.i.value = data; Q.action += "section/item.php"; }else
	if(x == 'fr'){ Q.i.disabled = false; Q.i.value = data; Q.action += "forum/fr.php"; }else	
	if(x == 'fi'){ Q.fi.disabled = false; Q.fi.value = data; Q.action += "section/index.php"; }else	
	if(x == 'm') { Q.m.disabled = false; Q.m.value = data; Q.action += "section/item.php"; }else	
	if(x == 'u') { Q.u.disabled = false; Q.u.value = data; Q.action += "manage/user.php"; }	
	Q.submit();
	return true;
}

function FormVerify(settings, disableSubmit){
	var fields = settings.split(","); // settings: fild|condition|message, sample: city|minimum:2|city, name|minimum:8|name, ...
	var i, field, type, fail;
	for(i = 0; i < fields.length; i++){
		field = fields[i].split("|");
		type = field[1].split(":");
		switch(type[0]){
			case "minimum":			if(document.form[field[0]].value.length < type[1]){ fail = 1; } break;
			case "minimumArabic":	if(!(arabicPattern.test(document.form[field[0]].value)) || (document.form[field[0]].value.length < type[1])){ fail = 1; } break;
			case "minimumSelect":	if(!document.form[field[0]].disabled && document.form[field[0]].options[document.form[field[0]].selectedIndex].value.length < type[1]){ fail = 1; } break;
			case "select":			if(!document.form[field[0]].disabled && document.form[field[0]].options[0].selected){ fail = 1; } break;
			case "check":			if(!document.form[field[0]].checked){ fail = 1; } break;
			case "url":				if(!(urlPattern.test(document.form[field[0]].value))){ fail = 1; } break;
			case "identical":		if(document.form[field[0]].value != document.form[type[1]].value){ fail = 1; } break;
			case "email":			if(!(emailPattern.test(document.form[field[0]].value))){ fail = 1; } break;
			case "phone":			if(!(phonePattern.test(document.form[field[0]].value)) || (document.form[field[0]].value.length < type[1])){ fail = 1; } break;
			case "mobile":			if(!(mobilePattern.test(document.form[field[0]].value)) || (document.form[field[0]].value.length < type[1])){ fail = 1; } break;
			case "integer":			if(!(integerPattern.test(document.form[field[0]].value)) || document.form[field[0]].value < 1){ fail = 1; } break;
			case "integerMinimum":	if(!(integerPattern.test(document.form[field[0]].value)) || document.form[field[0]].value < parseInt(type[1])){ fail = 1; } break;
			case "float":			if(isNaN(document.form[field[0]].value) || document.form[field[0]].value.length < 1){ fail = 1; } break;
			default:				if(document.form[field[0]].value.length < 1){ fail = 1; }
		}
		if(fail == 1){
			alert(messages[field[2]]);
			document.form[field[0]].focus();
			return false;
		}
	}
	if(typeof(document.form.back) == "object"){ document.form.back.value = 1; } // to know when user click back history
	if(disableSubmit){ DisableSubmit(); }
	return true;
}

function DisableSubmit(){
	inputs = document.form.getElementsByTagName('input');
	for(i = 0; i < inputs.length; ++i){ if(inputs[i].type == 'submit'){ inputs[i].disabled = true; }}
}



function CheckRegister(isRegister){
	var toVerify = "agreed|check|agreement,";
	if(isRegister){ toVerify += "username|minimum:3|username,"; }
	toVerify += "password|minimum:4|password,";
	toVerify += "password2|identical:password|passwordIdentical,";
	if(document.form.country[22].selected){ toVerify += "countryOther|minimumArabic:3|country,"; }
	if(document.form.country[7].selected){ toVerify += "city|minimumSelect:2|city,"; }
	if(document.form.phone.value){ toVerify += "phone|phone:5|phone,"; }
	if(document.form.other.value){ toVerify += "other|phone:5|other,"; }
	toVerify += "name|minimumArabic:10|fullname,";
	toVerify += "checkInfo1|check|correct,";
	toVerify += "checkInfo2|check|correct";
	return FormVerify(toVerify, 1);
}

function CheckItem(i, visitor){
	var toVerify = "";
	if(visitor){ toVerify += "mobile|mobile:8|mobile,password|integer|passwordNumbers,password|minimum:4|passwordNumbers,"; }
	if(!i){
		toVerify += "s|select|section,";
		toVerify += "t|select|type,";
		toVerify += "c|select|car,";
		toVerify += "l|select|location,";
	}
	toVerify += "subject|minimum:3|subjectItem,";
	toVerify += "body|minimum:3|bodyItem,";
	if(!document.form.bidStart.disabled){ toVerify += "bidStart|integer|bidStart,"; }
	toVerify += "commission|check|commission";
	if(visitor) toVerify += ",captcha|minimum:4|captcha";
	if(FormVerify(toVerify, 0) && (!visitor || confirm(messages.sure2))){
		DisableSubmit();
		return true;
	}else{
		return false;
	}	
}

function CheckFr(i){
	var toVerify = "";
	if(!i){ toVerify += "f|select|division,"; }
	toVerify += "subject|minimum:3|subjectFr,";
	toVerify += "body|minimum:3|bodyFr";
	return FormVerify(toVerify, 1);
}

function CheckShop(){
	return FormVerify("url|url:3|url,name|minimum:3|shop", 1);
}

function CheckVerify(){
	return FormVerify("password|minimum:4|password", 1);
}

function CheckLogin(){
	return FormVerify(
		"username|minimum:3|username," +
		"password|minimum:4|password"
		,1
	);
}

function CheckForget(){
	return FormVerify("email|email|email,captcha|minimum:4|captcha", 1);
}

function CheckPassword(){
	return FormVerify("password|minimum:4|password,password2|identical:password|passwordIdentical" ,1);
}

function CheckEmailNew(){
	return FormVerify("email|email|email,email2|identical:email|emailIdentical" ,1);
}

function CheckContact(user){
	if(user){ return FormVerify("body||message", 1); }
	else{ return FormVerify("body||message,email|email|email,captcha|minimum:4|captcha", 1); }
}

function CheckInternalSend(){
	return FormVerify("username|minimum:3|username,body||message" ,1);
}

function CheckInternalVisitor(){
	return FormVerify("body||message,name||name,email|email|email,captcha|minimum:4|captcha" ,1);
}

function CheckVisitorAd(){
	var toVerify = "";
	if(document.form.action[0].checked){ toVerify += "body||thread,"; }
	toVerify += "password||passwordGeneral,captcha|minimum:4|captcha";
	if(FormVerify(toVerify, 0) && confirm(messages.sure1)){
		DisableSubmit();
		return true;
	}else{
		return false;
	}	
}

function CheckPayableServices(uid, special, fixed, tads, broker){
	var toVerify = "";
	if(!uid && (special || broker)) toVerify += "username|minimum:3|username,";
	toVerify += "name|minimum:3|name,";
	toVerify += "mobile|phone:5|mobile,";
	toVerify += "email|email|email,";
	if(fixed || tads) toVerify += "type|select|tad,";
	if(special || fixed || tads) toVerify += "period|select|period,";
	if(fixed || broker) toVerify += "adID|integer|adID,";
	toVerify += "bank|select|bank,";
	toVerify += "day|select|date,";
	toVerify += "month|select|date,";
	toVerify += "accountName|minimum:3|accountName,";
	toVerify += "accountNumber||accountNumber,";
	toVerify += "amount|float|money";
	if(!uid) toVerify += ",captcha|minimum:4|captcha";
	return FormVerify(toVerify, 1);
}

function CheckBid(bidMinAllowed){
	return FormVerify("body|integerMinimum:" + bidMinAllowed + "|bid", 1);
}

function CheckThread(){
	return FormVerify("body||thread", 1);
}

function CheckEmail(){
	return FormVerify("name|minimum:3|name,email|email|email" ,1);
}

function CheckMobile(){
	document.form.mobile = document.form.mobile.split(' ').join(''); // remove any spaces
	return FormVerify("mobile|mobile:8|mobile" ,0);
}
