﻿var User=
{
	vroot: "",
	UsernameField: null,
	Validated: false,
	NotValidatedFields: 0,
	Errors: [],
	CheckUserCallBack: function(res)
	{
		document.getElementById("UserName_Val").innerHTML = res.Request.responseText;
	},
	Validators:
	{
		FirstName: [["Mendatory", "ألاسم لا يمكن ان يكون خالي"]],
		Nationality: [["Mendatory", "ألجنسية لا يمكن ان تكون خالية"]],
		Phone: [["Mendatory", "رقم الهاتف لا يمكن ان يكون خالي"]],
		Mobile: [["Mendatory", "ألموبيل لا يمكن ان يكون خالي"]],
		FamilyNumber: [["ValNumbers", "عدد أفراد ألاسرة يجب ان يكون رقما "]],
		Email: [["Mendatory", "البريد الإلكتروني لا يمكن ان يكون خالي"], ["ValEmail", "الرجاء ادخال بريد الكتروني صحيح"]],
		UserName: [["Mendatory", " إسم المستخدم لا يمكن ان يكون خالي"], ["ValUser", "أسم المستخدم يجب ان يكون مؤلف من 8 احرف او اكثر"], ["CheckUser"]],
		Password: [["Mendatory", " كلمة السر لا يمكن ان تكون خالية"], ["ValUser", "كلمة السر يجب ان تكون مؤلفة من 8 احرف او اكثر"]]
	},
	Validate: function(f,ValidateAll)
	{
		var val = User.Validators[f.name];
		if(val != null)
		{
			for(var i = 0; i < val.length; i++)
			{
				if(!eval(val[i][0] + "(\""+f.value.replace(/\"/g,"\\\"")+"\")"))
				{
					f.style.border = "1px solid red";
					if(!ValidateAll)
						return;
					else
					{
						User.Errors.push(val[i][1]);
						break;
					}
				}
				else
				{
					f.style.border = "1px solid #4C9FE6";
					document.getElementById(f.name+"_Val").innerHTML = "";
				}
			}
		}
	},
	ValidateUserForm: function(f)
	{
		User.Errors = [];
		for (var i = 0; i < f.elements.length; i++)
		{
			User.Validate(f.elements[i],true);
		}
		if(f["Email"] && f["ConfirmEmail"])
			if(f["Email"].value.Trim().toLowerCase() != f["ConfirmEmail"].value.Trim().toLowerCase())
				User.Errors.push("البريد الإلكتروني و تأكيد البريد الإلكتروني غير متطابقان");
		if(f["Password"] && f["ConfirmPassword"])
			if(f["Password"].value != f["ConfirmPassword"].value)
				User.Errors.push("كلمة السر و تأكيد كلمة السر غير متطابقان");
		if(f["Terms"] && (!f["Terms"].checked))
			User.Errors.push("You must agree to site Terms and Conditions before submitting.");
		if(User.Errors.length > 0)
			alert("ألرجاء اصلاح هذه الأخطاء قبل ألتسجيل\t\n\n\t"+User.Errors.join("\n\t"));
		return (User.Errors.length == 0);
	},
	ValidateUserForm2: function(f)
	{
		User.Errors = [];
		for (var i = 0; i < f.elements.length; i++)
		{
			User.Validate(f.elements[i],true);
		}
		var rad = f["SUB"];
		var bool = false;
		if(rad.checked)
			bool = true;
		else
		{
			for(var i = 0; i < rad.length; i++)
			{
				bool = rad[i].checked;
				if(bool)
					break;
			}
		}
		if(!bool)
			User.Errors.push("Subscription type must be selected");
		if(User.Errors.length > 0)
			alert("Please correct the following before submitting:\t\n\n\t"+User.Errors.join("\n\t"));
		return (User.Errors.length == 0);
	},
	ValidateEdit: function(f)
	{
		User.Errors = [];
		for (var i = 0; i < f.elements.length; i++)
		{
			User.Validate(f.elements[i],true);
		}
		if(f["Email"] && f["ConfirmEmail"])
			if(f["Email"].value.Trim().toLowerCase() != f["ConfirmEmail"].value.Trim().toLowerCase())
				User.Errors.push("Email and Confirm email address are not the same.");
		if(User.Errors.length > 0)
			alert("Please correct the following before submitting:\t\n\n\t"+User.Errors.join("\n\t"));
		return (User.Errors.length == 0);
	}
}
function CheckUser(f)
{
	User.UsernameFiel = f;
	var req = pl4e_Ajax.Request(User.vroot+"/Ajax/CheckUser.aspx", "UserName="+f.replace(/\"/g,"\\\""), User.CheckUserCallBack, []);
	return true;
}
function BillingMendatory(v)
{
	var f = document.forms["profileEdit"];
	if(!f)
		f = document.forms["RegistrationFormStep2"];
		
	if(f.BillingSameAsAddress.checked)
		return true;
	return Mendatory(v);
}
function SwitchAddressFields(c)
{
	document.getElementById("BillingAddressContainer").style.display = c.checked? "none": "block"; 
	var fields = ["BillingAddressLine1","BillingAddressLine2","BillingCity","BillingState","BillingZip","BillingCountry"];
	for(var i = 0; i < fields.length; i++)
	{
		c.form[fields[i]].disabled = c.checked;
		c.form[fields[i]].style.border = c.checked?"1px #afafaf solid":"1px solid #4C9FE6";
	}
}
function ValEditCredit()
{
	var f = document.forms["profileEdit"];
	if(f["EditCreditCardNumber"].value == f["OldCardNumber"].value)
		return true;
	return ValCreditCard(f["EditCreditCardNumber"].value);
}