var regFormErrors = 0;
var Selected_meuser = '';
var SelectMeuserNotUsed = false;

//Make IE Behave like Mozilla
if (typeof XMLHttpRequest == "undefined" && window.ActiveXObject) {
	function XMLHttpRequest() {
		var arrSignatures = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0",
		"MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP",
		"Microsoft.XMLHTTP"];
		for (var i=0; i < arrSignatures.length; i++) {
			try {
				var oRequest = new ActiveXObject(arrSignatures[i]);
				return oRequest;
			} catch (oError) {
				//ignore
			}
		}
		throw new Error("MSXML is not installed on your system.");
	}
}

//Make an Xml Loader For IE and Mozilla
function XmlDom() {
	if(window.ActiveXObject) {
		var arrSignatures = ["MSXML2.DOMDocument.5.0", "MSXML2.DOMDocument.4.0",
		"MSXML2.DOMDocument.3.0", "MSXML2.DOMDocument",
		"Microsoft.XmlDom"];
		for (var i=0; i < arrSignatures.length; i++) {
			try {
				var oXmlDom = new ActiveXObject(arrSignatures[i]);
				return oXmlDom;
			} catch (oError) {
				//ignore
			}
		}
		throw new Error("MSXML is not installed on your system.");
	} else if (document.implementation && document.implementation.createDocument) {
		var oXmlDom = document.implementation.createDocument("","",null);
		oXmlDom.addEventListener("load", function () {
			this.__changeReadyState__(4);
		}, false);
		return oXmlDom;
	} else {
		throw new Error("Your browser doesn't support an XML DOM object.");
	}
}


function AJAXGet() {
	var url = arguments[0]; 
	var callback = arguments[1];
	var bXMLResult = arguments[2];

	if(typeof XMLHttpRequest == "object" || typeof XMLHttpRequest == "function" || window.ActiveXObject) {
		var xmlhttp = new XMLHttpRequest();
		xmlhttp.onreadystatechange= function () {
			if (xmlhttp.readyState == 4) {

				if (xmlhttp.status == 200) {
					if(bXMLResult) {
						callback(xmlhttp.responseXML)
					} else {
						callback(xmlhttp.responseText)
					}
				} else {
					throw new Error("Could not connect to page")
				}
			}
		}
		urlData = url.split("?");
		url= urlData[0];
		data = urlData[1];
		if(data == undefined) {
			data = "";
		}
		xmlhttp.open('POST', url, true);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlhttp.setRequestHeader("Content-length", data.length);
		xmlhttp.send(data)
	} else if(navigator.javaEnabled() && typeof java != "undefined" && typeof java.net != "undefined") {
		var oURL = new java.net.URL(url);
		var oStream = this.oURL.openStream();
		var oReader = new java.io.BufferedReader(new java.io.InputStreamReader(oStream));
		var sResponseText = "";
		var sLine = oReader.readLine();
		while (sLine != null) {
			sResponseText += sLine + "\n";
			sLine = oReader.readLine();
		}
		oReader.close();
		if(arguments[2]) {
			var oXmlDom = new XmlDom();
			oXmlDom.onreadystatechange = function () {
				if (oXmlDom.readyState == 4) {
					alert(oXmlDom.xml);
				}
			};
			oXmlDom.loadXML(sResponseText);
			callback(oXmlDom);
		} else {
			callback(sResponseText);
		}
	} else {
		throw new Error("Could Not Perform AJAX Here")
	}
}

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,'*');
		return;
	}
	if(has_special_char(fname)) {
		markError(obj,'*');
		return;
	}
	unmarkError(obj)
}
function RegFormCheckLname(obj) {
	obj.value = trim(obj.value)
	var lname = obj.value
	if(lname.length == 0) {
		markError(obj,'*');
		return;
	}
	if(has_special_char(lname)) {
		markError(obj,'*');
		return;
	}
	unmarkError(obj);
}

function RegFormCheckGender(obj) {
	var gender = obj.value;
	if (gender != "Male" && gender != "Female") {
		markError(obj,'*');
		return;
	}
	unmarkError(obj);
}
function RegFormCheckCountry(obj) {
	if(obj.value == "-1") {
		markError(obj,'*');
		return;
	}
	unmarkError(obj);
}
function RegFormCheckMeuser(obj) {
	obj.value = trim(obj.value)
	var meuser = obj.value
	if(meuser.length == 0) {
		markError(obj,'*');
		return;
	}
	if(meuser.length > 32) {
		markError(obj,'*');
		return;
	}
	if( !alphaNumUnderSocredash(meuser)) {
		markError(obj,'*');
		return;
	}
	unmarkError(obj);
	if(meuser == Selected_meuser) {
		if(SelectMeuserNotUsed) {
			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,'*');
		return;
	}
	if(pass.length < 6 ) {
		markError(obj,'*');
		return;
	}
	if(pass.length > 20 ) {
		markError(obj,'*');
		return;
	}
	if( !alphaNumUnderSocredash(pass)) {
		markError(obj,'*');
		return;
	}
	if(pass == Selected_meuser) {
		markError(obj,'*');
		return;
	}
	unmarkError(obj)
}
function RegFormCheckPassconf(obj,txtPasswordID) {
	obj.value = trim(obj.value)
	if(obj.value != document.getElementById(txtPasswordID).value) {
		markError(obj,'*');
		return;
	}
	unmarkError(obj)
}
function RegFormCheckPasshint(obj) {
	obj.value = trim(obj.value)
	if(obj.value.length == 0) {
		markError(obj,'*');
		return;
	}
	unmarkError(obj)
}
function RegFormCheckOthermail(obj) {
	obj.value = trim(obj.value)
	if(obj.value.length != 0) {
		unmarkError(obj);
		return;
	}
	if(obj.value.length != 0) {
		markError(obj,'*');
		return;
	}
	var othermail = obj.value
	if(!testEmail(othermail)) {
		markError(obj,'*');
		return;
	}
	var atpos = othermail.indexOf('@');
	var domain = othermail.substr(atpos + 1);
	if(domain.toUpperCase() == "MAKTOOB.COM") {
		markError(obj,'*');
		return;
	}
	unmarkError(obj);
}
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++;
		return;
	}
	document.getElementById('day_err').innerHTML="";
	document.getElementById('day_err').className='';
	regFormErrors--;
}
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++;
		return;
	}
	document.getElementById('month_err').innerHTML="";
	document.getElementById('month_err').className='';
	regFormErrors--; 
}
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++;
		return;
	}
	document.getElementById('year_err').innerHTML="";
	document.getElementById('year_err').className='';
	regFormErrors--;
}


function RegFormOccupation(obj) {
	if(obj.value == "-1") {
		markError(obj,'*');
		return;
	}
	unmarkError(obj);
}

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++;
		return;
	}
	document.getElementById('code_err').innerHTML="";
	document.getElementById('code_err').className='';
	regFormErrors--;
}

function RegFormknow(obj) {
	if(obj.value == "-1") {
		markError(obj,'*');
		return;
	}
	unmarkError(obj);
}
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 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)
{
	document.getElementById(lblMsgsID).innerHTML = LoadMsg;
	var txtUser = document.getElementById(txtUserID);
	var x=document.URL;
    var index = x.lastIndexOf('/');
    var LogicalRoot= x.substring(0,index+1);
	var file = LogicalRoot+'checkValidUser.aspx?username=' + txtUser.value + "&divID=" + lblMsgsID;
    var head = document.getElementsByTagName("head")[0];    
    script = document.createElement('script');  
    script.id = 'importedScriptId';
    script.type = 'text/javascript';
    script.src = file;
    head.appendChild(script);
}
