$(document).ready(
	function()
	{
		/**
		 *	Reset current image popup hidden field on loading the page.
		 **/
		$("#hidCurrentPopupImage").val("");
		
		/**
		 *	Rotating Quotes.
		 **/
		funcChangeQuote(0);
		setInterval(function(){ funcRotateQuotes(); }, quoteRotateInterval);
		
		
		/**
		 *	Toggle recent credits list.
		 **/
		$("#lnkToggleRecentCredits").toggle(
			function()
			{
				$("#videoId").slideUp(recentCreditsChangeSpeed, 	function()
																	{
																		$("#seelistId").slideDown(recentCreditsChangeSpeed, 	function()
																																{
																																	$("#lnkToggleRecentCredits").text("CLOSE");
																																});
																	});
				return false;
			},
			function()
			{
				$("#seelistId").slideUp(recentCreditsChangeSpeed, 	function()
																	{
																		$("#videoId").slideDown(recentCreditsChangeSpeed,	function()
																															{
																																$("#lnkToggleRecentCredits").text("SEE LIST");
																															});
																	});
				return false;
			}
		);
		
		
		/**
		 *	Equipment map click event. Show the popup.
		 **/
		$(".mapEquipments").click(
			function()
			{
				//	Save the box id in hidden field for showing the image gallery.
				$("#hidSelectedEquipment").val($(this).attr("id"));
				
				//	Popup box.
				var popup = $("#popupId");
				
				//	Calculate the top position of the popup for placing it in the middle of the window.
				//var difference = ($(window).height() - popup.height())/2;
				//var cssTop = document.documentElement.scrollTop + difference;
				
				var offset = $("#EquipmentOtrId").offset();
				var cssTop = offset.top + 13;
				
				//	Block the background(map) box.
				$('#dvTabsMain').block({ message: null });
				
				funcChangePopupGalleryImage("first");
				
				//	Show the popup after changing the position to the middle.
				popup.css({"top" : cssTop}).fadeIn("fast");
				
				return false;
			}
		);
		
		/**
		 *	Close the equipment popup.
		 **/
		$("#lnkClosePopup").click(
			function()
			{
				$("#hidSelectedEquipment").val("");
				$("#hidCurrentPopupImage").val("");
				$('#dvTabsMain').unblock(); 
				$("#popupId").fadeOut("fast");
				return false;
			}
		);
		
		
		
		/**
		 *	Popup image gallery back button.
		 **/
		$("#lnkPopupGalleryBack").click(
			function()
			{
				funcChangePopupGalleryImage("back");
				
				return false;
			}
		);
		
		
		/**
		 *	Popup image gallery next button.
		 **/
		$("#lnkPopupGalleryNext").click(
			function()
			{
				funcChangePopupGalleryImage("next");
				
				return false;
			}
		);
		
		/**
		 *	Change the default value in the contact us input boxes.
		 **/
		$("#frmContact input[type='text'],#frmContact textarea").focus(
			function()
			{
				if($.trim($(this).val()) == funcGetDefaultContactText($(this).attr("id")))
				{
					$(this).val("");
				}
			}
		);
		$("#frmContact input[type='text'],#frmContact textarea").blur(
			function()
			{
				if($.trim($(this).val()) == "")
				{
					$(this).val(funcGetDefaultContactText($(this).attr("id")));
				}
			}
		);
		
		/**
		 *	Send contact email.
		 **/
		$("#sendContactMail").click(
			function()
			{
				var name			= $.trim($("#txtName").val());
				var email			= $.trim($("#txtEmail").val());
				var subject			= $.trim($("#txtSubject").val());
				var content			= $.trim($("#txtEmailContent").val());
				var dvContact		= $("#dvContactMail");
				var dvContactOffset	= dvContact.offset();
				var dvContactHeight = dvContact.height();
				var dvContactWidth	= dvContact.width();
				var dvAlert			= $("#dvAlertBox");
				var error			= "";
				var errorInput		= "";
				
				if(name == "" || name == contactNameDefault)
				{
					error = "Please give name";
					errorInput = "#txtName";
				}
				else if(email == "" || email == contactEmailDefault)
				{
					error = "Please give email";
					errorInput = "#txtEmail";
				}
				else if(!funcValidateEmail(email))
				{
					error = "Please give valid email";
					errorInput = "#txtEmail";
				}
				else if(subject == "" || subject == contactSubjectDefault)
				{
					error = "Please give subject";
					errorInput = "#txtSubject";
				}
				else if(content == "" || content == contactContentDefault)
				{
					error = "Please give the email content";
					errorInput = "#txtEmailContent";
				}
				
				if(error != "")
				{
					$("#dvContactMail").block({ message: null });
					
					$("#dvErrorMsg").text(error);
					
					cssTop = dvContactOffset.top + (dvContactHeight - dvAlert.height()) / 2;
					cssLeft = dvContactOffset.left + (dvContactWidth - dvAlert.width()) / 2;
					
					dvAlert.css({"left" : cssLeft, "top" : cssTop}).fadeIn("normal").data("ErrorInput", errorInput);
				}
				else	// if(confirm("Are you sure to send this mail ?"))
				{
					$.ajax(
						{
							url :		"contact.php",
							type :		"POST",
							data :		"name=" + escape(name) + "&email=" + escape(email) + "&subject=" + escape(subject) + "&body=" + escape(content),
							dataType :	"json",
							beforeSend:	function()
										{
											
										},
							success :	function(reply)
										{
											if(reply.error)
											{
												var jsonError = reply.error;
												var errorString = "";
												
												$.each(jsonError, 	function()
																	{
																		errorString += this.error + "<br />";
																	});
												
												$("#dvContactMail").block({ message: null });
					
												$("#dvErrorMsg").html(errorString + "<br />");
												
												cssTop = dvContactOffset.top + (dvContactHeight - dvAlert.height()) / 2;
												cssLeft = dvContactOffset.left + (dvContactWidth - dvAlert.width()) / 2;
												
												dvAlert.css({"left" : cssLeft, "top" : cssTop}).fadeIn("normal").data("ErrorInput", errorInput);
											}
											else if(reply.message)
											{
												$("#dvSuccessMessage").html(reply.message);
												
												funcShowContactSuccessMessage();
												
												/*var cssTop = document.documentElement.scrollTop + $(window).height()- $("#dvSuccessMessage").height() - 30;
												var cssLeft = $(window).width()- $("#dvSuccessMessage").width() - 30;
												
												$("#dvSuccessMessage").css({"top": cssTop, "left" : cssLeft}).fadeIn("slow", function(){ setTimeout(function(){ $("#dvSuccessMessage").fadeOut("slow"); }, 3000)});*/
												
												$("#txtName").val(contactNameDefault);
												$("#txtEmail").val(contactEmailDefault);
												$("#txtSubject").val(contactSubjectDefault);
												$("#txtEmailContent").val(contactContentDefault);
											}
										},
							complete :	function()
										{
											
										}
						}
					);
				}
				
				return false;
			}
		);
		
		$("#lnkAlertClose").click(
			function()
			{
				$("#dvAlertBox").fadeOut("normal");
				$("#dvContactMail").unblock();
				var errorInput = $("#dvAlertBox").data("ErrorInput");
				
				if(errorInput != "" && $(errorInput).length > 0)
				{
					$(errorInput).focus();
				}
				
				return false;
			}
		);
		
		$("#EquipmentNavid").click(
			function()
			{
				//funcDisCompanyDtls('EquipmentNavid','CompanyDtlsId','companyID','EquipmentOtrId');
				
				$("#CompanyDtlsId").removeClass().addClass("tpBarActive");
				
				$("#EquipmentNavid").removeClass().addClass("tpNavBar");
				
				$("#EquipmentOtrId").show();
				$("#companyID").hide();
				
				return false;
			}
		);
		
		$("#CompanyDtlsId").click(
			function()
			{
				//funcDisCompanyDtls('CompanyDtlsId','EquipmentNavid','EquipmentOtrId','companyID');
				
				$("#EquipmentNavid").removeClass().addClass("tpBarActive");
				
				$("#CompanyDtlsId").removeClass().addClass("tpNavBarRt");
				
				$("#companyID").show();
				$("#EquipmentOtrId").hide();
				
				return false;
			}
		);
		
	}	//	document ready ends.
);

function funcShowContactSuccessMessage()
{
	var cssTop = document.documentElement.scrollTop + $(window).height()- $("#dvSuccessMessage").height() - 30;
	var cssLeft = $(window).width()- $("#dvSuccessMessage").width() - 30;
	
	$("#dvSuccessMessage").css({"top": cssTop, "left" : cssLeft}).fadeIn("slow", function(){ setTimeout(function(){ $("#dvSuccessMessage").fadeOut("slow"); }, 2000)});
}


/**
 *	Function to get default value of contact inputs.
 **/
function funcGetDefaultContactText(inputID)
{
	var defaultValue = "";
	switch(inputID)
	{
		case "txtName" : defaultValue = contactNameDefault;	break;
		
		case "txtEmail" : defaultValue = contactEmailDefault;	break;
		
		case "txtSubject" : defaultValue = contactSubjectDefault;	break;
		
		case "txtEmailContent" : defaultValue = contactContentDefault;	break;
	}
	
	return defaultValue;
}

/**
 *	Function to change popup gallery image.
 **/
function funcChangePopupGalleryImage(direction)
{
	var currentImage 	= $("#hidCurrentPopupImage").val();
	var equipmentImages	= funcGetEquipmentImages();
	var imageCount		= equipmentImages.length;
	var changeImage		= false;
	var changeEffect	= "slide";
	
	if(!(currentImage >= 0))
	{
		currentImage = 0;
	}
	
	if(direction == "back" && currentImage > 0)
	{
		--currentImage;
		changeImage = true;
	}
	else if(direction == "next" && (currentImage < (imageCount - 1)))
	{
		++currentImage;
		changeImage = true;
	}
	else if(direction == "first" && equipmentImages[0])
	{
		currentImage = 0;
		changeImage = false;
		$("#imgPopupGalleryImage").attr("src", "images/" + equipmentImages[currentImage].image);
		
		var popupImageText = funcGetEquipmentText();
		$("#popupText").html(popupImageText.text);
		
		$(".dvPopupHdr").css({"background-image" : "url(images/" + popupImageText.image + ")"});
		
	}
	
	if(changeImage)
	{
		//$("#imgPopupGalleryImage").fadeOut("slow", function(){ $("#imgPopupGalleryImage").attr("src", "images/" + equipmentImages[currentImage].image).fadeIn("slow"); });
		$("#imgPopupGalleryImage").attr("src", "images/" + equipmentImages[currentImage].image);
	}
	
	$("#hidCurrentPopupImage").val(currentImage);
}

function funcGetEquipmentImages()
{
	var images = "";
	switch($("#hidSelectedEquipment").val())
	{
		case "areaSpingMount"		: 	images = springMountImages;		break;
		
		case "areaCopterMount"		: 	images = copterMountImages;		break;
		
		case "areaUltimateArm"		:	images = ultimateArmImages;		break;
		
		case "areaLevHead"			:	images = levHeadImages;			break;
		
		case "areaSprayDeflector"	:	images = sprayDeflectorImages;	break;
	}
	
	return images;
}


function funcGetEquipmentText()
{
	var text = "";
	switch($("#hidSelectedEquipment").val())
	{
		case "areaSpingMount"		: 	text = springMountPopup;		break;
		
		case "areaCopterMount"		: 	text = copterMountPopup;		break;
		
		case "areaUltimateArm"		:	text = ultimateArmPopup;		break;
		
		case "areaLevHead"			:	text = levHeadPopup;			break;
		
		case "areaSprayDeflector"	:	text = sprayDeflectorPopup;		break;
	}
	
	return text;
}


/**
 *	Function to rotate quotes.
 **/
var quoteCount = quotes.length;
var currentQuote = 0;
function funcRotateQuotes()
{
	//	If the mode is random, create a random number between zero and quotecount.
	if(quoteChangeMode == "random")
	{
		currentQuote = funcGenerateRandomNumber(0, quoteCount - 1);
	}
	else
	{
		currentQuote++;
		if(currentQuote >= quoteCount)
			currentQuote = 0;
	}
	$("#dvQuoteMain").fadeOut(quoteFadeSpeed, function(){ funcChangeQuote(currentQuote); });
}

function funcChangeQuote(currentQuote)
{
	$("#dvQuote").html('"' + quotes[currentQuote].quote + '"');
	$("#dvQuoteAuthor").html('-- ' + quotes[currentQuote].author);
	$("#dvQuoteMain").fadeIn(quoteFadeSpeed);
}

/**
 *	Function to generate random number between two numbers.
 *	@param first number.
 *	@param second number.
 **/
function funcGenerateRandomNumber(num1, num2)
{
	num1 = parseInt(num1);
	num2 = parseInt(num2);
	if(num1 > num2)
	{
		temp = num2;
		num2 = num1;
		num1 = temp;
	}
	var generator = Math.random()*(num2-num1);
	return Math.round(num1+generator);
}

function funcValidateEmail(email)
{
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   return reg.test(email);
}
