// JavaScript Document

/* GENERAL FUNCTIONS [START] */

function Error(Msg, Element)
{
	alert(Msg);
	if(Element != null)
	{
		var Type = Element.type;
		if(Type == "text" || Type == "password" || Type == "file" || Type == "textarea")
			Element.select();
		Element.focus();
	}
	return false;
}

function RemoveSpaces(Str, Mode)
{
	if(Mode != 0 && Mode != 1 && Mode != 2)
		Mode = 0;
	Ret = "";
	switch (Mode)
	{
		case 0: Ret = Str.split(" ").join("");
						break;
		case 1: Tmp1 = Str.split(" ");
						Tmp2 = new Array();
						for(var i = 0; i < Tmp1.length; i++)
							if(Tmp1[i].length > 0)
								Tmp2.push(Tmp1[i]);
						Ret = Tmp2.join(" ");
						break;
		case 2: From = 0;
						while(Str.charAt(From) == " ")
							From ++;
						Str = Str.substr(From);
						To = Str.length - 1;
						while(Str.charAt(To) == " ")
							To --;
						Ret = Str.substr(0, To + 1);
						break;
	}
	return Ret;
}

function isNumberKey(evt)
{
	var charCode = (evt.which) ? evt.which : evt.keyCode
	if (charCode > 31 && (charCode < 48 || charCode > 57))
		return false;
	
	return true;
}

function IsEmail(email)
{
	at = email.split("@");
	if(at.length == 1 || at[0].length == 0)
		return false;
	dot = at[1].split(".");
	if(dot.length == 1 || dot[0].length == 0 || dot[dot.length-1].length == 0)
		return false;
	return true;
}

/* GENERAL FUNCTIONS [ END ] */


/* FORM VALIDATION FUNCTIONS [START] */

function ValidateUserForm(form)
{
	if(RemoveSpaces(form.elements["UserName"].value) == "")
		return Error("Please Enter User Name", form.elements["UserName"]);
	if(RemoveSpaces(form.elements["Password"].value) == "")
		return Error("Please Enter Password", form.elements["Password"]);
	return true;
}

function ValidatePollForm(form, ACnt)
{
	if(RemoveSpaces(form.elements["Question"].value) == "")
		return Error("Please Enter Question", form.elements["Question"]);
	DelCnt = 0;
	for(i = 0; i < ACnt; i++)
	{
		if(form.elements["Del[" + i + "]"].checked)
		{
			DelCnt++;
			continue;
		}
		if(RemoveSpaces(form.elements["Answers[" + i + "][Answer]"].value) == "")
			return Error("Please Enter All Answers", form.elements["Answers[" + i + "][Answer]"]);
		if(isNaN(form.elements["Answers[" + i + "][Hits]"].value))
			form.elements["Answers[" + i + "][Hits]"].value = 0;
	}
	if((ACnt - DelCnt) < 2)
	{
		alert("Poll should have at least 2 answers");
		return false;
	}
	return true;
}

function ValidateBannerForm(form)
{
	if(RemoveSpaces(form.elements["Title"].value) == "")
		return Error("Please Enter Title", form.elements["Title"]);
	if(RemoveSpaces(form.elements["URL"].value) == "")
		return Error("Please Enter URL", form.elements["URL"]);
	return true;
}

function ValidatePassForm(form)
{
	if(RemoveSpaces(form.elements["Old"].value) == "")
		return Error("Please Enter Old Password", form.elements["Old"]);
	if(RemoveSpaces(form.elements["New"].value) == "")
		return Error("Please Enter New Password", form.elements["New"]);
	if(RemoveSpaces(form.elements["Con"].value) == "")
		return Error("Please Enter Password Confirmation", form.elements["Con"]);
	if(form.elements["Con"].value != form.elements["New"].value)
	{
		form.elements["New"].value = "";
		form.elements["Con"].value = "";
		return Error("Password Confirmation Should Match The Password", form.elements["New"]);
	}
	return true;
}

function ValidateContactForm(form)
{
	if(RemoveSpaces(form.elements["Name"].value) == "")
		return Error(Validation["Contact"][0], form.elements["Name"]);
	if(RemoveSpaces(form.elements["Email"].value) == "")
		return Error(Validation["Contact"][1], form.elements["Email"]);
	email = form.elements["Email"].value;
	at = email.split("@");
	if(at.length == 1 || at[0].length == 0)
		return Error(Validation["Contact"][2], form.elements["Email"]);
	dot = at[1].split(".");
	if(dot.length == 1 || dot[0].length == 0 || dot[dot.length-1].length == 0)
		return Error(Validation["Contact"][2], form.elements["Email"]);
	if(RemoveSpaces(form.elements["Comments"].value) == "")
		return Error(Validation["Contact"][3], form.elements["Comments"]);
	return true;
}

function ValidateText(form)
{
	if(form.elements["TitleA"][1] != null)
	{
		if(RemoveSpaces(form.elements["TitleA"][1].value) == "")
			return Error("Please Enter Arabic Title", form.elements["TitleA"][1]);
		/*if(RemoveSpaces(form.elements["TitleE"][1].value) == "")
			return Error("Please Enter English Title", form.elements["TitleE"][1]);
		if(RemoveSpaces(form.elements["TitleI"][1].value) == "")
			return Error("Please Enter Italian Title", form.elements["TitleI"][1]);
		if(RemoveSpaces(form.elements["TitleS"][1].value) == "")
			return Error("Please Enter Spanish Title", form.elements["TitleS"][1]);*/
	}

	if(form.elements["File"] != null)
	{
		if(! form.elements["UploadFile"].disabled && RemoveSpaces(form.elements["UploadFile"].value) == "")
			return Error("Please Choose a File", form.elements["UploadFile"]);
		if(! form.elements["URLFile"].disabled && RemoveSpaces(form.elements["URLFile"].value) == "")
			return Error("Please Enter a URL", form.elements["URLFile"]);
	}
	
	if(form.elements["Site"] != null)
	{
		if(RemoveSpaces(form.elements["Site"].value) == "")
			return Error("Please Enter Site URL", form.elements["Site"]);
	}
	
	return true;
}

function ValidateDirectory(form)
{
	DirName = form.elements["Dir"];
	if(RemoveSpaces(DirName.value) == "")
			return Error("Please Enter Directory Name", DirName);
	for(i = 0; i < DirName.value.length; i++)
	{
		char = DirName.value.charAt(i);
		if(char >= 'a' && char <= 'z')
			continue;
		if(char >= 'Z' && char <= 'Z')
			continue;
		if(char >= '0' && char <= '9')
			continue;
		if(char == '-' || char <= '_')
			continue;
		return Error("You can use only these sets of characters in the directory name:\na - z\tA - Z\t0 - 9\tDash(-)\tUnderscore(_)", DirName);
	}
	return true;
}

function ValidateUpload(form)
{
	FilePath = form.elements["ImageFile"];
	if(RemoveSpaces(FilePath.value) == "")
			return Error("Please Choose An Image", FilePath);
	
	NewName = form.elements["NewName"];
	for(i = 0; i < NewName.value.length; i++)
	{
		char = NewName.value.charAt(i);
		if(char >= 'a' && char <= 'z')
			continue;
		if(char >= 'Z' && char <= 'Z')
			continue;
		if(char >= '0' && char <= '9')
			continue;
		if(char == '-' || char <= '_')
			continue;
		return Error("You can use only these sets of characters in the new image name:\na - z\tA - Z\t0 - 9\tDash(-)\tUnderscore(_)", NewName);
	}
	
	SetImageNewName(form);
	return true;
}

function ValidateResumeAttachment(El)
{
	var Formats = "-DOC-WPD-PDF-PPT-TXT-XLS-QPW-ZIP-";
	
	var Attachment = El;
	var AttachmentFile = El.value;
	if(AttachmentFile != "")
	{	
		var Ex = AttachmentFile.substr(AttachmentFile.lastIndexOf(".") + 1);
		if(Formats.indexOf("-" + Ex.toUpperCase() + "-") == -1)
			return Error(Validation["Resume"][13], Attachment);
	}
	return true;
}

function ValidateResume(form)
{
	var EnterFirstName 				= Validation["Resume"][0];
	var EnterLastName 				= Validation["Resume"][1];
	var EnterNationality 			= Validation["Resume"][2];
	var EnterEMail 						= Validation["Resume"][3];
	var EnterCorrectEMail 		= Validation["Resume"][4];
	var EnterAddress 					= Validation["Resume"][5];
	var EnterCity 						= Validation["Resume"][6];
	var EnterCountry 					= Validation["Resume"][7];
	var EnterZipCode 					= Validation["Resume"][8];
	var EnterPhone 						= Validation["Resume"][9];
	var EnterWhen 						= Validation["Resume"][10];
	var EnterDesiredPosition 	= Validation["Resume"][11];
	
	if(RemoveSpaces(form.elements["FirstName"].value) == "")
		return Error(EnterFirstName, form.elements["FirstName"]);
	if(RemoveSpaces(form.elements["LastName"].value) == "")
		return Error(EnterLastName, form.elements["LastName"]);
	if(RemoveSpaces(form.elements["Nationality"].value) == "")
		return Error(EnterNationality, form.elements["Nationality"]);
	if(RemoveSpaces(form.elements["EMail"].value) == "")
		return Error(EnterEMail, form.elements["EMail"]);
	if(! IsEmail(RemoveSpaces(form.elements["EMail"].value)))
		return Error(EnterCorrectEMail, form.elements["EMail"]);
	if(RemoveSpaces(form.elements["Address"].value) == "")
		return Error(EnterAddress, form.elements["Address"]);
	if(RemoveSpaces(form.elements["City"].value) == "")
		return Error(EnterCity, form.elements["City"]);
	if(RemoveSpaces(form.elements["Country"].value) == "")
		return Error(EnterCountry, form.elements["Country"]);
	if(RemoveSpaces(form.elements["ZipCode"].value) == "")
		return Error(EnterZipCode, form.elements["ZipCode"]);
	if(RemoveSpaces(form.elements["Phone"].value) == "")
		return Error(EnterPhone, form.elements["Phone"]);
	if(RemoveSpaces(form.elements["When"].value) == "")
		return Error(EnterWhen, form.elements["When"]);
	if(RemoveSpaces(form.elements["DesiredPosition"].value) == "")
		return Error(EnterDesiredPosition, form.elements["DesiredPosition"]);
	
	return ValidateResumeAttachment(form.elements["Resume"]);
}

function ValidateResumeAttachmentOnly(form)
{
	if(RemoveSpaces(form.elements["Resume"].value) == "")
		return Error(Validation["Resume"][12], form.elements["Resume"]);
	if(ValidateResumeAttachment(form.elements["Resume"]))
	{
		form.onsubmit = function () { }
		form.submit();
	}
	else
		return false;
}

function ValidateSendToFriendForm(form, labels)
{
	Element = form.From;
	if(RemoveSpaces(Element.value) == "")
		return Error(labels[0], Element);
	email = Element.value;
	at = email.split("@");
	if(at.length == 1 || at[0].length == 0)
		return Error(labels[2], Element);
	dot = at[1].split(".");
	if(dot.length == 1 || dot[0].length == 0 || dot[dot.length-1].length == 0)
		return Error(labels[2], Element);
	
	Element = form.To;
	if(RemoveSpaces(Element.value) == "")
		return Error(labels[1], Element);
	email = Element.value;
	at = email.split("@");
	if(at.length == 1 || at[0].length == 0)
		return Error(labels[2], Element);
	dot = at[1].split(".");
	if(dot.length == 1 || dot[0].length == 0 || dot[dot.length-1].length == 0)
		return Error(labels[2], Element);
	
	return true;
}

/* FORM VALIDATION FUNCTIONS [ END ] */
