﻿
var regFormErrors = 0;
var Selected_meuser = '';
var SelectMeuserNotUsed = false;

var strBrPostfix = "<br />"; 
var intRegFormErrorsCount = 0;



function testEmail(str) {
	var atpos = str.indexOf('@');
	if(atpos == -1) {
		return false;
	}
	if(atpos == 0) {
		return false;
	}
	var dotpos = str.indexOf('.', atpos+2);
	if( dotpos == -1) {
		return false;
	}
	if(dotpos == (str.length - 1) ) {
		return false;
	}
	var fpart = str.substring(0,atpos);
	var host = str.substring(atpos + 1, dotpos);
	var domain = str.substr(dotpos +1);
	if(!( valid(fpart) && valid(host) && valid(domain))) {
		return false;
	}
	var afterat = str.substr(atpos + 1);
	if(afterat.lastIndexOf('.') == (afterat.length - 1)) {
		return false;
	}
	for(var i = 1; i < afterat.length; i++) {
		if(afterat.charAt(i) == '.' && afterat.charAt(i-1) == '.') {
			return false;
		}
	}
	return true;
}

function show_regFrom() {
	if(document.getElementById('featureVideo')){
		document.getElementById('featureVideo').style.display='none';
	}
	if(document.getElementById('featureVideo2')){
		document.getElementById('featureVideo2').style.display='none';
	}
	if(document.getElementById('reg_form')){
		document.getElementById('reg_form').style.display='block';
	}
	if(document.getElementById('reg_wait')){
		document.getElementById('reg_wait').style.display='none';
	}
	if(document.getElementById('reg_forminner')){
		document.getElementById('reg_forminner').style.display='block';
	}
	if(document.getElementById('reg_form')){
		document.getElementById('reg_form').style.visibility = "visible";
	}
	if(document.getElementById('reg_wait')){
		document.getElementById('reg_wait').style.visibility = "hidden";
	}
	if(document.getElementById('reg_forminner')){
		document.getElementById('reg_forminner').style.visibility = "visible";
	}
}
function close_regForm() {
	if(document.getElementById('regForm')){
		unmarkError_all();
		document.getElementById('regForm').reset();
	}
	if(document.getElementById('featureVideo')){		
		document.getElementById('featureVideo').style.display='block';
	}
	if(document.getElementById('featureVideo2')){
		document.getElementById('featureVideo2').style.display='block';
	}
	if(document.getElementById('reg_form')){
		document.getElementById('reg_form').style.display='none';
	}
	if(document.getElementById('reg_wait')){
		document.getElementById('reg_wait').style.display='none';
	}
	if(document.getElementById('reg_forminner')){
		document.getElementById('reg_forminner').style.display='none';
	}
	if(document.getElementById('reg_form')){
		document.getElementById('reg_form').style.visibility = "hidden";
	}
	if(document.getElementById('reg_wait')){
		document.getElementById('reg_wait').style.visibility = "hidden";
	}
	if(document.getElementById('reg_forminner')){
		document.getElementById('reg_forminner').style.visibility = "hidden";
	}
}


function unmarkError_all()
{
	var fields = new Array();
	fields[0] = "fname";
	fields[1] = "lname";
	fields[2] = "gender";
	fields[3] = "country";
	fields[4] = "meuser";
	fields[5] = "pass";
	fields[6] = "passconf";
	fields[7] = "passhint";
	fields[8] = "othermail";
	fields[9] = "occupation";
	fields[10] = "knowMaktoob";
	fields[11] = "code";

	for (i=0;i<fields.length;i++)
	{
		unmarkError(fields[i]+'');
	}
	
	unmarkbError('bmon');
	
}

function switch_regWait_on() {
	document.getElementById('reg_wait').style.display='block';
	document.getElementById('reg_forminner').style.display='none';
	document.getElementById('reg_wait').style.visibility = "visible";
	document.getElementById('reg_forminner').style.visibility = "hidden";
}
function switch_regWait_off() {
	document.getElementById('reg_wait').style.display='none';
	document.getElementById('reg_forminner').style.display='block';
	document.getElementById('reg_wait').style.visibility = "hidden";
	document.getElementById('reg_forminner').style.visibility = "visible";
}
function reloadCaptcha() {
	document.getElementById('regFormCaptcha').src = "http://clipat.maktoob.com/viewCaptcha.php?mm="+Math.round(Math.random()*1000000);
}
function markError(objField,text) {
	var pass = objField.value;
	objField.className = 'regFromerrLabel';
	objField.className = 'regFormerrField';
	var objParent = objField.offsetParent;
	objParent.className = 'regFormerrText';
	objParent.innerHTML =objParent.innerHTML.replace("*","");
	objParent.innerHTML =objParent.innerHTML + " " + text;
	document.getElementById(objField.id).value=pass;
	regFormErrors++;
}

function unmarkError(objField) {
	var pass = objField.value;
	objField.className = 'regFormLabel';
	objField.className = '';
	var objParent = objField.offsetParent;
	objParent.innerHTML =objParent.innerHTML.replace("*","");
	document.getElementById(objField.id).value=pass;
}
function markbError(field,text) {
	document.getElementById('birthday').className = 'regFromerrLabel';
	eval("document.regForm."+field+".className = 'regFormerrField'");
	document.getElementById('birthday_err').className = 'regFormerrText';
	document.getElementById('birthday_err').innerHTML = text;
	regFormErrors++;
}

function unmarkbError(field) {
	document.getElementById('birthday').className = 'regFormLabel';
	eval("document.regForm."+field+".className = ''");
	document.getElementById('birthday_err').className = '';
	document.getElementById('birthday_err').innerHTML = '';
}

function startLoading(field) {
	document.getElementById(field+'_err').innerHTML = "<img src=\"images/loader.gif\" alt=\"Loading\" />";
}
function stopLoading(field) {
	document.getElementById(field+'_err').innerHTML = "";
}

function trim(str) {
	var from_start = 0;
	var from_end = str.length - 1;
	var return_value;

	while(str.charAt(from_start) == ' ') {
		from_start ++;
	}

	while(str.charAt(from_end) == ' ') {
		from_end --;
	}

	if(from_end < from_start) {
		return '';
	}

	return_value = str.substring(from_start,from_end+1);
	return return_value;
}

function has_special_char(str) {
	for(var i = 0; i <str.length; i++) {
		var charat = str.charAt(i);
		if(charat == '`' || charat == '~' || charat == '!' || charat == '@' || charat == '#' ||
		charat == '$' || charat == '%' || charat == '^' || charat == '&' || charat == '*' ||
		charat == '(' || charat == ')' || charat == '`' || charat == '<' || charat == '>' ||
		charat == ';' || charat == ',' || charat == '|' || charat == '\\' || charat == '/' ||
		charat == '?' || charat == '+' || charat == '=') {
			return true;
		}
	}
	return false;
}

function alphaNumUnderSocredash(str) {
	for(var i = 0; i < str.length; i++) {
		var charcode = str.charCodeAt(i);
		/* A-Z */
		if(charcode >= 0x41 && charcode <= 0x5A) {
			continue;
		}

		/* a-z */
		if(charcode >= 0x61 && charcode <= 0x7A) {
			continue;
		}

		/* 0-9 */
		if(charcode >= 0x30 && charcode <= 0x39) {
			continue;
		}

		/* - _ */
		if(charcode == 0x2D || charcode == 0x5F) {
			continue;
		}
		return false;
	}
	return true;
}

function valid(str) {
	for(var i = 0; i < str.length; i++) {
		var charcode = str.charCodeAt(i);
		/* A-Z */
		if(charcode >= 0x41 && charcode <= 0x5A) {
			continue;
		}

		/* a-z */
		if(charcode >= 0x61 && charcode <= 0x7A) {
			continue;
		}

		/* 0-9 */
		if(charcode >= 0x30 && charcode <= 0x39) {
			continue;
		}

		/* . - _ */
		if(charcode == 0x2D || charcode == 0x2E || charcode == 0x5F) {
			continue;
		}
		return false;
	}
	return true;
}

function RegFormCheckFname(obj) 
{
	obj.value = trim(obj.value);
	var fname = obj.value;
	if(fname.length == 0) {
		markError(obj,'*');
		intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "الرجاء ادخال الاسم الأول" + strBrPostfix;
	}
	if(has_special_char(fname)) {
		markError(obj,'*');
		intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "الرجاء عدم استخدام الأحرف الخاصة في الاسم الأول" + strBrPostfix;
	}
	unmarkError(obj);
	return "";
}

function RegFormCheckLname(obj) 
{
	obj.value = trim(obj.value);
	var lname = obj.value;
	if(lname.length == 0) {
		markError(obj,'*');
		intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "الرجاء ادخال الاسم العائلة" + strBrPostfix;
	}
	if(has_special_char(lname)) {
		markError(obj,'*');
		intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "الرجاء عدم استخدام الأحرف الخاصة في الاسم العائلة" + strBrPostfix;
	}
	unmarkError(obj);
	return "";
}

function RegFormCheckGender(obj)
{
	if(obj.value == "-1") {
		markError(obj,'*');
		intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "الرجاء اختيار الجنس" + strBrPostfix;
	}
	unmarkError(obj);
	return "";
	
	/*
	var gender = obj.value;
	if (gender != "Male" && gender != "Female") {
		markError(obj,'*');
		return;
	}
	unmarkError(obj);
	*/
}
function RegFormCheckCountry(obj) 
{
	if(obj.value == "-1") {
		markError(obj,'*');
		intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "الرجاء اختيار بلد اقامة" + strBrPostfix;
	}
	unmarkError(obj);
	return "";
}
function RegFormCheckMeuser(obj) 
{
	obj.value = trim(obj.value);
	var meuser = obj.value;
	if(meuser.length == 0) 
	{
		markError(obj,'*');
		intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "الرجاء ادخال اسم الدخول" + strBrPostfix;
	}
	if(meuser.length > 32) 
	{
		markError(obj,'*');
		intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "اسم الدخول يجب أن يكون أقل من 32 حرف" + strBrPostfix;
	}
	if( !alphaNumUnderSocredash(meuser)) 
	{
		markError(obj,'*');
		intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "الرجاء استخدام فقط احرف وارقام و(_) و(-)" + strBrPostfix;
	}
	unmarkError(obj);
	if(meuser == Selected_meuser) 
	{
		if(SelectMeuserNotUsed) {
			return "";
		}
	}
	
	return "";
}


function RegFormMeuserExist(result) {
	stopLoading('meuser');
	if ( trim(result) == 't' ) {
		markError('meuser','*');
		SelectMeuserNotUsed = false;
		return;
	}
	if (trim(result) == 'f') {
		SelectMeuserNotUsed = true;
	}
}
function RegFormCheckPassword(obj) {
	obj.value = trim(obj.value);
	var pass = obj.value;
	if(pass.length == 0 ) {
		markError(obj,'*');
		intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "الرجاء ادخال كلمة السر" + strBrPostfix;
	}
	if(pass.length < 6 ) {
		markError(obj,'*');
		intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "كلمة السر يجب ان تكون 6 أحرف على الأقل" + strBrPostfix;
	}
	if(pass.length > 20 ) {
		markError(obj,'*');
		intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "كلمة السر يجب ان تكون أقل من 20 حرف" + strBrPostfix;
	}
	if( !alphaNumUnderSocredash(pass)) {
		markError(obj,'*');
		intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "كلمة السر يجب ان تكون بالأحرف الإنجليزية فقط" + strBrPostfix;
	}
	if(pass == Selected_meuser) {
		markError(obj,'*');
		return;
	}
	unmarkError(obj);
	return  "";
}

function RegFormCheckPassconf(obj,txtPasswordID) {
	obj.value = trim(obj.value);
	if(obj.value != document.getElementById(txtPasswordID).value) {
		markError(obj,'*');
		intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "كلمة السر يجب ان تكون متطابقه" + strBrPostfix;

	}
	unmarkError(obj);
	return "";
}
function RegFormCheckPasshint(obj) {
	obj.value = trim(obj.value);
	if(obj.value.length == 0) {
		markError(obj,'*');
        intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "الرجاء ادخال تذكير اذا نسيت كلمة السر" + strBrPostfix;
	}
	unmarkError(obj);
	return "";
}

function RegFormCheckOthermail(obj) {
	obj.value = trim(obj.value);
	if(obj.value.length == 0) {
		markError(obj,'*');
        intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "الرجاء ادخال البريد الإلكتروني البديل" + strBrPostfix;
	}
	var othermail = obj.value;
	if(!testEmail(othermail)) {
		markError(obj,'*');
		intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "الرجاء استخدام بريد الكتروني صحيح" + strBrPostfix;
	}
	
	var atpos = othermail.indexOf('@');
	var domain = othermail.substr(atpos + 1);
	if(domain.toUpperCase() == "MAKTOOB.COM") {
		markError(obj,'*');
		intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "الرجاء استخدام بريد الكتروني غير Maktoob.com" + strBrPostfix;
	}
	unmarkError(obj);
	return "";
}

function RegFormOthermailDns(result) {
	stopLoading('othermail');
	if ( trim(result) == 'f' ) {
		markError(obj,'*');
		return;
	}
}

function RegFormCheckDay(obj){
  if(obj.value == "-1") {
		document.getElementById('day_err').innerHTML="*";
		document.getElementById('day_err').className='regFormerrText';
		obj.className = 'regFromerrLabel';
		obj.className = 'regFormerrField';
		regFormErrors++;
		intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "الرجاء اختيار اليوم في تاريخ الميلاد" + strBrPostfix;
	}
	document.getElementById('day_err').innerHTML="";
	document.getElementById('day_err').className='';
	regFormErrors--;
	
	return "";
}

function RegFormCheckMonth(obj){
   if(obj.value == "-1") {
		document.getElementById('month_err').innerHTML="*";
		document.getElementById('month_err').className='regFormerrText';
		obj.className = 'regFromerrLabel';
		obj.className = 'regFormerrField';
		regFormErrors++;
		intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "الرجاء اختيار الشهر في تاريخ الميلاد" + strBrPostfix;
	}
	document.getElementById('month_err').innerHTML="";
	document.getElementById('month_err').className='';
	regFormErrors--; 
	
	return "";
}

function RegFormCheckYear(obj){
    if(obj.value == "-1") {
		document.getElementById('year_err').innerHTML="*";
		document.getElementById('year_err').className='regFormerrText';
		obj.className = 'regFromerrLabel';
		obj.className = 'regFormerrField';
		regFormErrors++;
		intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "الرجاء اختيار السنة في تاريخ الميلاد" + strBrPostfix;
	}
	document.getElementById('year_err').innerHTML="";
	document.getElementById('year_err').className='';
	regFormErrors--;
	
	return "";
}


function RegFormOccupation(obj) {
	if(obj.value == "-1") {
		markError(obj,'*');
		intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "الرجاء اختيار مهنة" + strBrPostfix;
	}
	unmarkError(obj);
	return "";
}

function RegFormCode(obj) 
{
	obj.value = trim(obj.value)
	if(obj.value.length == 0) {
		document.getElementById('code_err').innerHTML="*";
		document.getElementById('code_err').className='regFormerrText';
		obj.className = 'regFromerrLabel';
		obj.className = 'regFormerrField';
		regFormErrors++;
		intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "الرجاء ادخال الارقام الظاهر في الصورة" + strBrPostfix;
	}
	document.getElementById('code_err').innerHTML="";
	document.getElementById('code_err').className='';
	regFormErrors--;
	
	return "";
}

function RegFormknow(obj) {
	if(obj.value == "-1") {
		markError(obj,'*');
		intRegFormErrorsCount += 1;
		return intRegFormErrorsCount + " - " + "الرجاء اختيار كيف علمت عن مكتوب" + strBrPostfix;
	}
	unmarkError(obj);
	return "";
}
function checkAll(txtFirstNameID,txtLastNameID,ddlGenderID,ddlCountryID,txtUsernameID,txtPasswordID,txtPassConfID,txtHintID,txtAltEmailID,ddlOccupationID,ddlKnewID,txtCodeID,ddlDay,ddlMonth,ddlYear)
{
 	regFormErrors = 0;
	RegFormCheckFname(document.getElementById(txtFirstNameID));
	RegFormCheckLname(document.getElementById(txtLastNameID));
	RegFormCheckGender(document.getElementById(ddlGenderID));
	RegFormCheckCountry(document.getElementById(ddlCountryID))
	RegFormCheckMeuser(document.getElementById(txtUsernameID));
	RegFormCheckPassword(document.getElementById(txtPasswordID));
	RegFormCheckPassconf(document.getElementById(txtPassConfID),document.getElementById(txtPasswordID).id);
	RegFormCheckPasshint(document.getElementById(txtHintID));
	RegFormCheckOthermail(document.getElementById(txtAltEmailID));
	RegFormOccupation(document.getElementById(ddlOccupationID));
	RegFormknow(document.getElementById(ddlKnewID));
	RegFormCode(document.getElementById(txtCodeID));
	RegFormCheckDay(document.getElementById(ddlDay));
	RegFormCheckMonth(document.getElementById(ddlMonth));
	RegFormCheckYear(document.getElementById(ddlYear));
	if(regFormErrors > 0) 
		return false;
    hideDropDownList();
}


function checkAllWithSummary(txtFirstNameID,txtLastNameID,ddlGenderID,ddlCountryID,txtUsernameID,txtPasswordID,txtPassConfID,txtHintID,txtAltEmailID,ddlOccupationID,ddlKnewID,txtCodeID,ddlDay,ddlMonth,ddlYear)
{
 	var strErrors = "";
 	intRegFormErrorsCount = 0;
 	
	strErrors += RegFormCheckFname(document.getElementById(txtFirstNameID));
	strErrors += RegFormCheckLname(document.getElementById(txtLastNameID));
	strErrors += RegFormCheckGender(document.getElementById(ddlGenderID));
	strErrors += RegFormCheckCountry(document.getElementById(ddlCountryID))
	strErrors += RegFormCheckDay(document.getElementById(ddlDay));
	strErrors += RegFormCheckMonth(document.getElementById(ddlMonth));
	strErrors += RegFormCheckYear(document.getElementById(ddlYear));
	strErrors += RegFormOccupation(document.getElementById(ddlOccupationID));
	strErrors += RegFormCheckMeuser(document.getElementById(txtUsernameID));
	strErrors += RegFormCheckPassword(document.getElementById(txtPasswordID));
	strErrors += RegFormCheckPassconf(document.getElementById(txtPassConfID),document.getElementById(txtPasswordID).id);
	strErrors += RegFormCheckPasshint(document.getElementById(txtHintID));
	strErrors += RegFormCheckOthermail(document.getElementById(txtAltEmailID));
	strErrors += RegFormknow(document.getElementById(ddlKnewID));
	strErrors += RegFormCode(document.getElementById(txtCodeID));

	if(intRegFormErrorsCount > 0) 
		return strErrors;
    hideDropDownList();
    
    return "";
}


function BarbicanRegFormCheckGender() {
	var gender = document.regForm.gender.value;
	if (gender != "Male" && gender != "Female") {
		alert('gender');
		return false;
	}
	return true;
}
function BarbicanRegFormCheckCountry(obj) {
	if(obj.value == "") {
		return false;
	}
	return true;
}

function BarbicanRegFormCheckOthermail() {
	document.regForm.othermail.value = trim(document.regForm.othermail.value);
	if(document.regForm.othermail.value.length == 0) {
		alert('email');
		return false;
	}
	var othermail = document.regForm.othermail.value
	if(!testEmail(othermail)) {
		alert('email');
		return false;
	}
	return true;
}

function lnkCheckValidUser(txtUserID,lblMsgsID,LoadMsg)
{
        /*
        var obj = document.getElementById('txtUrName')
	    obj.value = trim(obj.value);
	    var meuser = obj.value;
	    
	    if(meuser.length == 0){   markError(obj,'*');   return false;	    }
	    if(meuser.length > 32){   markError(obj,'*');   return false;     }
	      */
	document.getElementById(lblMsgsID).innerHTML = LoadMsg;
	var txtUser = document.getElementById(txtUserID);
    var url="checkValidUser.aspx?username=" + txtUser.value + "&divID=" + lblMsgsID;
    
    divLoadingID = lblMsgsID;
       
    DoAjax(url,divLoadingID,"<font style=\"color:#FF0000;\">جاري تأكد من توفر الاسم ...</font>");
}