﻿var reason = "";

// http://www.webcheatsheet.com/javascript/form_validation.php

function submitForm(frmId)
{
	if( frmId != 'frmSearch')
		resetValues() ;
	
	var valid = true;
	frm = document.getElementById(frmId);
	
	switch(frmId)
	{
		case 'frmReg':
			valid = regFormValid(frm) ;
		break; 
		
		case 'frmCV1':
			valid = cv1FormValid(frm) ;
		break;
		
		case 'frmCV2':
			valid = cv2FormValid(frm) ;
		break; 
		
		case 'frmCV3':
			valid = cv3FormValid(frm) ;
			
			if(valid == 'redirect')
				redirect('inner', 'cv4', '');
		break;
		
		case 'frmCV4':
			valid = cv4FormValid(frm) ;
		break;
		
		case 'frmLogin':
			valid = loginFormValid(frm) ;
		break;
		
		case 'frmPersEdit':
			valid = editPersonalFormValid(frm) ;
		break;
		
		case 'frmRegOwners':
			valid = regOwnersFormValid(frm) ;	
		
		break; 
		
		case 'frmLogOwner':
			valid = logOwnersFormValid(frm) ;	
		
		break; 		

		case 'frmAddJob':
			valid = addJobFormValid(frm) ;	
		
		break;
		
		case 'frmEditOwners':
			valid = editOwnersFormValid(frm) ;
		break;
		
		case 'frmPass':
			valid = changePassFormValid(frm) ;
		break;
		
		case 'frmUploadedCVs':
			valid = true;
		break;
		
		case 'frmEditedCVs':
			valid = true;
		break;
		
		case 'frmEdcv2':
			valid = edcv2FormValid(frm) ;
		break;
		
		case 'frmEdcv3':
			valid = edcv3FormValid(frm) ;
		break;
		
		case 'frmExpCV':
			valid = true;
		break;
		
		case 'frmQuaCV':
			valid = true;
		break;
		
		case 'frmVacDis':
			valid = true;
		break ;
		
		case 'frmSearch':
			valid = validateheaderSearch();
		break ;
		
		case 'frmApps':
			valid = true;
		break;
		
		case 'frmForPass':
			valid = validateForgetPass(frm);
		break;
		
		case 'frmSearchAdv':
			valid = true ;
		break;
		
		case 'frmFriend':
			valid = sendToFriend(frm) ;
		break;
		
		default:
			valid = false;
	}
	
	if (valid == true)
		frm.submit();
} // function submitForm(frmId)


function regFormValid(frm)
{
	reason += validateEmpty(frm.txtUserName, 'اسم المستخدم');
	reason += validatePassword(frm.txtPass, 'كلمة المرور');
	reason += validatePassword(frm.txtPassConf, 'تأكيد كلمة المرور');
	reason += validatePassConfirm(frm.txtPass, frm.txtPassConf, 'تأكيد كلمة المرور');
	reason += validateEmpty(frm.txtFirstName, 'الإسم الأول');
	reason += validateEmpty(frm.txtLastName, 'اسم العائلة');
	reason += validateSelection(frm.selMarStatus, 'الحالة الإجتماعية');
	reason += validateSelection(frm.selNationality, 'الجنسية');
	reason += validateEmpty(frm.txtBirthDate, 'تاريخ الميلاد');
	reason += validateSelection(frm.selCountry, 'مكان الإقامة');
	reason += validateEmail(frm.txtEmail, 'البريد الإلكتروني');

	if (reason != "")
    	return false;
	else
		return true;
} // function regFormValid()


function cv1FormValid(frm)
{
	var radioCvType = frm.cvType;
	var cvType = '';
	
	if(radioCvType[0].checked)
		cvType = 'edit' ;
	else if (radioCvType[1].checked)
		cvType = 'upload' ;
	else 
		cvType = '' ;
	
	reason += validateEmpty(frm.txtcvTitle, 'عنوان سيرتك الذاتية');
	reason += validateInputOption(frm.cvType, 'كيف تود بناء سيرتك الذاتية') ;
	
	if(cvType == 'upload'){
		reason += validateEmpty(frm.filCV, 'ملف سيرتك الذاتية');
		reason += validateInputFile(frm.filCV, 'التقيد بنوع الملف');
	}
	
	if (reason != "")
    	return false;
	else
		return true;
} // function cv1FormValid()


function cv2FormValid(frm)
{
	reason += validateEmpty(frm.txtPhone, 'رقم الهاتف');
	reason += validateEmail(frm.txtEmail, 'البريد الإلكتروني');
	
	if (reason != "")
    	return false;
	else
		return true;
} // function cv2FormValid()


function cv3FormValid(frm)
{
	var expNum = document.getElementById('RowsNum').value;
	
	if( expNum == 0) {
		var answer = confirm('لم تدخل خبراتك العملية، هل تريد المتابعة إلى الخطوة التالية؟');
		
		if(answer == true)
			return 'redirect' ;
		else
			return false;
	}
	
	for(i=1; i<= expNum; i++) {
		var fldCompName = document.getElementById('txtCompName' + i);
		var fldCompMajor = document.getElementById('selCompMajor' + i);
		var fldCompSect = document.getElementById('selCompSection' + i);
		var fldPosition = document.getElementById('txtPosition' + i);
		var fldCountry = document.getElementById('selCountry' + i);
		var fldMonthFrom = document.getElementById('selMonthFrom' + i);
		var fldYearFrom = document.getElementById('selYearFrom' + i);
		var fldMonthTo = document.getElementById('selMonthTo' + i);	
		
		var fldYearTo = null;;
		
		if (document.getElementById('divYear' + i).style.display != 'none') {
			fldYearTo = document.getElementById('selYearTo' + i);
		}
		
		
		reason += validateEmpty(fldCompName, 'اسم الشركة' + i);
		reason += validateSelection(fldCompMajor, 'مجال عمل الشركة ' + i);
		reason += validateSelection(fldCompSect, 'الدور الوظيفي ' + i);
		reason += validateEmpty(fldPosition, 'المسمى الوظيفي ' + i);
		reason += validateSelection(fldCountry, 'عنوان الشركة/الدولة ' + i);
		reason += validateSelection(fldMonthFrom, 'شهر بداية العمل ' + i);
		reason += validateSelection(fldYearFrom, 'سنة بداية العمل ' + i);
		reason += validateSelection(fldMonthTo, 'شهر نهاية العمل ' + i);
		
		if(fldYearTo != null){
			reason += validateSelection(fldYearTo, 'سنة نهاية العمل ' + i);
			reason += validateDatePeriod(fldYearFrom, fldMonthFrom, fldYearTo, fldMonthTo) ;
		}
			
	} // for(i=1; i<= expNum; i++)
	
	if (reason != "")
    	return false;
	else
		return true;
} // function cv3FormValid()


function cv4FormValid(frm)
{
	var expNum = document.getElementById('RowsNum').value;
	
	for(i=1; i<= expNum; i++) {
		var fldQualific = document.getElementById('selQual' + i);
		var fldGrade = document.getElementById('selGrade' + i);
		var fldMajor = document.getElementById('txtMajor' + i);
		var fldMonth = document.getElementById('selMonth' + i);
		var fldYear = document.getElementById('selYear' + i);
		
		reason += validateSelection(fldQualific, 'المؤهل ' + i);
		reason += validateSelection(fldGrade, 'التقدير ' + i);
		reason += validateEmpty(fldMajor, 'التخصص ' + i);
		reason += validateSelection(fldMonth, 'الشهر ' + i);
		reason += validateSelection(fldYear, 'السنة ' + i);
	} // for(i=1; i<= expNum; i++)
	
	if (reason != "")
    	return false;
	else
		return true;
} // function cv4FormValid()


function loginFormValid(frm)
{
	reason += validateEmpty(frm.txtUserName, 'اسم المستخدم');
	reason += validateEmpty(frm.txtPass, 'كلمة المرور');
	
	if (reason != "")
    	return false;
	else
		return true;
} // function loginFormValid()



function editPersonalFormValid(frm)
{
	reason += validateEmpty(frm.txtFirstName, 'الإسم الأول');
	reason += validateEmpty(frm.txtLastName, 'اسم العائلة');
	reason += validateSelection(frm.selMarStatus, 'الحالة الإجتماعية');
	reason += validateSelection(frm.selNationality, 'الجنسية');
	reason += validateEmpty(frm.txtBirthDate, 'تاريخ الميلاد');
	reason += validateSelection(frm.selCountry, 'مكان الإقامة');
	reason += validateEmail(frm.txtEmail, 'البريد الإلكتروني');

	if (reason != "")
    	return false;
	else
		return true;
} // function editPersonalFormValid()


function addJobFormValid(frm)
{
	reason += validateEmpty(frm.txtTitle, 'عنوان الوظيفة');
	reason += validateSelection(frm.selCountry, 'مكان الوظيفة');
	reason += validateSelection(frm.selJobDomain, 'مجال العمل');
	reason += validateEmpty(frm.txtDetails, 'تفاصل الوظيفة');
	reason += validateEmpty(frm.txtSkills, 'المهارات المطلوبة');
	

	if (reason != "")
    	return false;
	else
		return true;
		
}//function addJobFormValid(frm)


function logOwnersFormValid(frm)
{
	reason += validateEmpty(frm.txtUserName, 'اسم المستخدم');
	reason += validatePassword(frm.txtPass, 'كلمة المرور');

	if (reason != "")
    	return false;
	else
		return true;
}//function logOwnersFormValid(frm)


function editOwnersFormValid(frm)
{
	reason += validateEmail(frm.txtEmail, 'البريد الإلكتروني');
	reason += validateEmpty(frm.txtName, 'اسم الشركة');
	reason += validateSelection(frm.selCountry, 'البلد');
	reason += validateEmpty(frm.txtCity, 'المدينة');
	reason += validateEmpty(frm.txtAddress, 'العنوان');
	reason += validateEmpty(frm.txtWeb, 'موقع الشركة الإلكتروني');
	reason += validateSelection(frm.selJobDomain, 'عمل الشركة');
	reason += validateEmpty(frm.txtPhone, 'هاتف');
	reason += validateEmpty(frm.txtFax, 'فاكس');
	

	if (reason != "")
    	return false;
	else
		return true;
}//function editOwnersFormValid(frm)


function regOwnersFormValid(frm)
{	
	reason += validateEmpty(frm.txtUserName, 'اسم المستخدم');
	reason += validatePassword(frm.txtPass, 'كلمة المرور');
	reason += validatePassword(frm.txtPassConf, 'تأكيد كلمة المرور');
	reason += validatePassConfirm(frm.txtPass, frm.txtPassConf, 'تأكيد كلمة المرور');
	reason += validateEmail(frm.txtEmail, 'البريد الإلكتروني');
	reason += validateEmpty(frm.txtName, 'اسم الشركة');
	reason += validateSelection(frm.selCountry, 'البلد');
	reason += validateEmpty(frm.txtCity, 'المدينة');
	reason += validateEmpty(frm.txtAddress, 'العنوان');
	reason += validateURL(frm.txtWeb, 'موقع الشركة الإلكتروني');
	reason += validateSelection(frm.selJobDomain, 'عمل الشركة');
	reason += validateEmpty(frm.txtPhone, 'هاتف');
	reason += validateEmpty(frm.txtFax, 'فاكس');
	

	if (reason != "")
    	return false;
	else
		return true;
} // function regOwnersFormValid()


function changePassFormValid(frm)
{
	reason += validatePassword(frm.txtOldPass, 'كلمة المرور القديمة');
	reason += validatePassword(frm.txtNewPass, 'كلمة المرور الجديدة');
	reason += validatePassword(frm.txtNewPass, 'تأكيد كلمة المرور الجديدة');
	reason += validatePassConfirm(frm.txtNewPass, frm.txtConfPass, 'تأكيد كلمة المرور الجديدة');
	
	if (reason != "")
    	return false;
	else
		return true;
} // function changePassFormValid()


function edcv2FormValid(frm)
{
	var fldCompName = document.getElementById('txtCompName');
	var fldCompMajor = document.getElementById('selCompMajor');
	var fldCompSect = document.getElementById('selCompSection');
	var fldPosition = document.getElementById('txtPosition');
	var fldCountry = document.getElementById('selCountry');
	var fldMonthFrom = document.getElementById('selMonthFrom');
	var fldYearFrom = document.getElementById('selYearFrom');
	var fldMonthTo = document.getElementById('selMonthTo');	
	
	var fldYearTo = null;;
	
	if (document.getElementById('divYear').style.display != 'none') {
		fldYearTo = document.getElementById('selYearTo');
	}
	
	
	reason += validateEmpty(fldCompName, 'اسم الشركة');
	reason += validateSelection(fldCompMajor, 'مجال عمل الشركة ');
	reason += validateSelection(fldCompSect, 'الدور الوظيفي ');
	reason += validateEmpty(fldPosition, 'المسمى الوظيفي ');
	reason += validateSelection(fldCountry, 'عنوان الشركة/الدولة ');
	reason += validateSelection(fldMonthFrom, 'شهر بداية العمل ');
	reason += validateSelection(fldYearFrom, 'سنة بداية العمل ');
	reason += validateSelection(fldMonthTo, 'شهر نهاية العمل ');
		
	if(fldYearTo != null){
		reason += validateSelection(fldYearTo, 'سنة نهاية العمل ');
		reason += validateDatePeriod(fldYearFrom, fldMonthFrom, fldYearTo, fldMonthTo) ;
	}
	
	if (reason != "")
    	return false;
	else
		return true;
} // function edcv2FormValid()


function edcv3FormValid(frm)
{	
	var fldQualific = document.getElementById('selQual');
	var fldGrade = document.getElementById('selGrade');
	var fldMajor = document.getElementById('txtMajor');
	var fldMonth = document.getElementById('selMonth');
	var fldYear = document.getElementById('selYear');
	
	reason += validateSelection(fldQualific, 'المؤهل ');
	reason += validateSelection(fldGrade, 'التقدير ');
	reason += validateEmpty(fldMajor, 'التخصص ');
	reason += validateSelection(fldMonth, 'الشهر ');
	reason += validateSelection(fldYear, 'السنة ');
	
	if (reason != "")
    	return false;
	else
		return true;
} // function edcv3FormValid()


function validateheaderSearch()
{
	var searchBox = document.getElementById('txtSearch') ;
	var countryList = document.getElementById('selCountries') ;
	
	if( trimString( searchBox.value ) == '' && countryList.selectedIndex == 0 ) {
		alert('الرجاء إدخال النص المراد البحث عنه أو الدولة') ;
		searchBox.focus();
		return false ;
	}
	
	return true ;
} // function validateheaderSearch()


function validateForgetPass(frm)
{	
	reason += validateEmail(frm.txtEmail, 'البريد الإلكتروني');
	
	if (reason != "")
    	return false;
	else
		return true;
} // function validateForgetPass()


function sendToFriend(frm)
{
	reason += validateEmpty(frm.txtName, 'اسمك');
	reason += validateEmail(frm.txtEmail, 'بريدك الالكتروني');
	reason += validateEmail(frm.txtFriendEmail, 'بريد صديفك الالكتروني');
	
	if (reason != "")
    	return false;
	else
		return true;
} // function sendToFriend()
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////




function trim(s)
{
	return s.replace(/^\s+|\s+$/, '');
} // function trim()


function resetValues()
{
	reason = '';
	document.getElementById('dvError').display = 'none';
	document.getElementById('tdError').innerHTML = '';
} // function resetValues()


function setError(err)
{
	divError = document.getElementById('dvError');
	tdError = document.getElementById('tdError');
	
	divError.style.display = '';
	tdError.innerHTML += err ;
} // function setError()


function validateEmpty(fld, hint)
{
	var error = "";
	
	if (trim(fld.value).length == 0) {
		fld.style.background = '#FFFF66';
		error = 'الرجاء إدخال ' + hint + '<br/>';
		setError(error);
	}
	else {
		fld.style.background = 'White';
	}
	return error;
} // function validateEmpty()


function validateSelection(fld, hint)
{
	var error = "";
	
	if(fld.selectedIndex == 0) {
		fld.style.background = '#FFFF66';
		error = 'الرجاء الإختيار من ' + hint + '<br/>' ;
		setError(error);
	}
	else {
		fld.style.background = 'White';
	}
	return error;
} // function validateSelection()


function validateEmail(fld, hint)
{
	var error = "";
	var tfld = trim(fld.value);
	var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
	var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
	
	if (tfld.length == 0) {
		fld.style.background = '#FFFF66';
		error = 'الرجاء إدخال ' + hint + '<br/>';
		setError(error);
	}
	else if (!emailFilter.test(tfld) || fld.value.match(illegalChars) )
	{
		fld.style.background = '#FFFF66';
		error = 'الرجاء إدخال ' + hint + ' بشكل صحيح <br/>';
		setError(error);
	}
	else{
		fld.style.background = 'White';
	}
	
	return error;
} // validateEmail()


function validateURL(fld, hint)
{
	var error="";
	var tfld = trim(fld.value);
	
	var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
	
	
	if (tfld.length == 0) {
		fld.style.background = '#FFFF66';
		error = 'الرجاء إدخال ' + hint + '<br/>';
		setError(error);
	}
	else if( !regexp.test(tfld)) {
		fld.style.background = '#FFFF66';
		error = 'الرجاء إدخال ' + hint + ' بشكل صحيح <br/>';
		setError(error);
	}
	return error;
} // function validateURL()


function validatePassword(fld, hint)
{
	var error="";
	var tfld = trim(fld.value);
	
	if (tfld.length == 0) {
		fld.style.background = '#FFFF66';
		error = 'الرجاء إدخال ' + hint + '<br/>';
		setError(error);
	}
	else if(tfld.length < 6) {
		fld.style.background = '#FFFF66';
		error =  hint + ' يجب أن يكون طولها أكبر من 5' + '<br/>';
		setError(error);
	}
	else
		fld.style.background = 'White';
	return error;
} // validatePassword()


function validatePassConfirm(fldPass, fldPassConf, hint)
{
	var error = '';
	
	if(fldPass.value != fldPassConf.value) {
		fldPass.style.background = '#FFFF66';
		fldPassConf.style.background = '#FFFF66';
		error = 'الرجاء ' + hint + '<br/>';
		setError(error);
	}
	return error;
} // function validatePassConfirm()


function validateInputFile(fldFile, hint)
{
	var error = '';
	var fileName = fldFile.value;
	var ext = fileName.substring(fileName.lastIndexOf('.') + 1);
	
	ext.toLowerCase(); 
	
	if(ext != 'doc' && ext != 'docx' && ext != 'pdf'){
		fldFile.style.background = '#FFFF66';
		error = 'الرجاء ' + hint + '<br/>';
		setError(error);
	}
	return error;
} // function validateInputFile()


function validateInputOption(fldOption, hint)
{
	var error = '';
	var isChked = false ;
	
	for(i=0; i < fldOption.length; i++){
		if(fldOption[i].checked){
			isChked = true;
			break;
		}
	}
	if( isChked == false )
	{
		//fldOption.style.background = '#FFFF66';
		error = 'الرجاء اختيار ' + hint + '<br/>';
		setError(error);
	}
	
	return error ;
} // function validateInputOption()


function validateDatePeriod(fldYfrom, fldMfrom, fldYto, fldMto)
{
	var error = "";
	var tmpError = "" ;
	
	if(fldYto != null) {
		
		var yearFrom = fldYfrom.options[fldYfrom.selectedIndex].value ;
		var mnthFrom = fldMfrom.selectedIndex ;
		var yearTo = fldYto.options[fldYto.selectedIndex].value ;
		var mnthTo = fldMto.selectedIndex - 1 ;
		
		if(yearTo < yearFrom) 
			tmpError = "error" ;
		else if(yearTo == yearFrom){
			if(mnthTo < mnthFrom)
				tmpError = "error" ;
		}
		
		if(tmpError == "error"){
			fldYfrom.style.background = '#FFFF66';
			fldMfrom.style.background = '#FFFF66';
			fldYto.style.background = '#FFFF66';
			fldMto.style.background = '#FFFF66';
			error = 'الرجاء إدخال التواريخ بشكل صحيح';
			setError(error);
		}
		else {
			fldYfrom.style.background = 'white';
			fldMfrom.style.background = 'white';
			fldYto.style.background = 'white';
			fldMto.style.background = 'white';
		}
	}

	return error;
} // function validateDatePeriod()

function submitLoginf(frmId)
{
	frm = document.getElementById(frmId);
	frm.submit();
}


