// JavaScript: Common Scripts ************************************************

// Global Members ***************************

	addScrollEvent(scrollEvents);
	
	function scrollEvents()
	{
		if (getElement("shadedPane").style.display == "block")
		{
			shadePageBackground("#1e375b", 60);
		}
	}
	
/* Get Referral Sign-Up Popup ***********************************************
*
*	TAKES:		NOTHING
*	RETURNS:	NOTHING
*	NOTES:
*
******************************************************************************/

	function getReferralSignUpPopup()
	{
		window.open("/newsletterSignUp.php", "SignUpWindow", "width=550, height=600, location=0,status=0, scrollbars=1, menubar=0, resizable=0", "");	
	}
	
/* Validate Data **********************************************************
*
*	TAKES:		Input Element, Data Type
*	RETURNS:	NOTHING
*	NOTES:		Throws a client-side error is invalid.
*
**************************************************************************/

	function validateData(inputElement, dataType, isRequired)
	{
		var throwError = false;
		var errorMessage = "";
		
		if (inputElement)
		{
			// Required *******************
			
				if ((isRequired) & (inputElement.value == ""))
				{
					throwError = true;
					errorMessage += "This Field is REQUIRED!<br>";
				}
		
			// Data Value **********************
			
				var isValidResult = dataIsValid(inputElement.value, dataType);
					
				if ((isValidResult != true) & (inputElement.value != ""))
				{
					throwError = true;
					errorMessage += isValidResult + "<br>";
				}
			
			// Error **************************
				
				var errorElement = getElement("errorMessage_" + inputElement.id.replace("textbox_", ""));
					
				if (throwError)
				{
					inputElement.className = "errorTextbox";
					showElement(errorElement.id);
					errorElement.innerHTML = errorMessage;
					
				}
				else
				{
					hideElement(errorElement.id);
					inputElement.className = "";
				}
		}
	}

/* Errors Exist **********************************************************
*
*	TAKES:		NOTHING
*	RETURNS:	NOTHING
*	NOTES:		
*
**************************************************************************/

	function errorsExist()
	{
		var errorsThrown = false;
		var inputElements = getTagGroup("input", "textbox_");
		
		var iterateAction = function(inputElement, ctr)
		{
			if ((inputElement.className == "errorTextbox") & (inputElement.style.display != "none"))
			{
				errorsThrown = true;
			}
		}
		
		iterateElementList(inputElements, iterateAction);
		
		if (getElement("textbox_comments"))
		{
			if ((getElement("textbox_comments").className == "errorTextbox") & (getElement("textbox_comments").style.display != "none"))
			{
				errorsThrown = true;
			}
		}
		
		return errorsThrown;
	}

/* Errors Exist **********************************************************
*
*	TAKES:		NOTHING
*	RETURNS:	NOTHING
*	NOTES:		
*
**************************************************************************/

	function showPropertyListingDetail(listingId)
	{
		if (listingId != "")
		{
			loadingElement = getElement("loadingGraphic");
			glassElement = getElement("glassPane");
			shadedElement = getElement("shadedPane");
			showLoadingGraphic();
			shadePageBackground("#1e375b", 60);
			setPaneContent(glassElement, "<div id=\"propertyListingDetailContainer\"></div>");
			
			//setOpacity(glassElement.id, 0);
			
			var paramArray = new Array();
			paramArray.push(["listingId", listingId]);
			paramArray.push(["action", "showPropertyListingDetail"]);
			
			setAjaxPostUrl("propertyListingDetailContainer", "backOffice/ajaxPropertyListingTool.php", paramArray, false, "showPropertyListingDetailComplete();");	
		}
	}

	function showPropertyListingDetailComplete()
	{
		centerElement(getElement("glassPane"));
		hideLoadingGraphic();
		//setOpacity(glassElement.id, 100);
		//$("#glassPane").fadeIn("fast", function() {});
	}

/* Center Element **********************************************************
*
*	TAKES:		NOTHING
*	RETURNS:	NOTHING
*	NOTES:		
*
**************************************************************************/

	function centerElement(element)
	{
		setElementX(element, (getWindowWidth()/2) - (getWidth(glassElement)/2));
		setElementY(element, (getWindowHeight()/2) - (getHeight(glassElement)/2) + getPageYOffset());	
	}

/* Show Contact Form  **********************************************************
*
*	TAKES:		NOTHING
*	RETURNS:	NOTHING
*	NOTES:		
*
**************************************************************************/

	function showContactForm(formType)
	{
		loadingElement = getElement("loadingGraphic");
		glassElement = getElement("glassPane");
		shadedElement = getElement("shadedPane");
		showLoadingGraphic();
		shadePageBackground("#1e375b", 60);
		setPaneContent(glassElement, "<div id=\"contactFormContainer\"></div>");
			
			
		var paramArray = new Array();
		paramArray.push(["action", "showContactForm"]);
		paramArray.push(["formType", formType]);
		
		setAjaxPostUrl("contactFormContainer", "ajaxContactForm.php", paramArray, false, "showContactFormComplete()");
		
	}
	
/* Show Contact Form Compelte **********************************************************
*
*	TAKES:		NOTHING
*	RETURNS:	NOTHING
*	NOTES:		
*
**************************************************************************/

	function showContactFormComplete()
	{
		centerElement(getElement("glassPane"));
		hideLoadingGraphic();
	}

/* Close Contact Form Panel **********************************************************
*
*	TAKES:		NOTHING
*	RETURNS:	NOTHING
*	NOTES:		
*
**************************************************************************/

	function closeContactFormPanel()
	{
		restorePageBackground();
	}
	
/* Toggle Contact Me By **********************************************************
*
*	TAKES:		Radio Button Element
*	RETURNS:	NOTHING
*	NOTES:		
*
**************************************************************************/

	function toggleContactMeBy(radioBtnElement)
	{
		if (radioBtnElement.value == "E-mail")
		{
			hideElement("phoneNumberContainer");
			hideElement("textbox_phone");
			
			showElement("emailAddressContainer");
			showElement("textbox_email");
		}
		else
		{
			hideElement("emailAddressContainer");
			hideElement("textbox_email");
			
			showElement("phoneNumberContainer");
			showElement("textbox_phone");
		}
	}

/* Send Contact Form **********************************************************
*
*	TAKES:		NOTHING
*	RETURNS:	NOTHING
*	NOTES:		
*
**************************************************************************/

	function sendContactForm()
	{
		if (!errorsExist())
		{
			$("#errorMessageContactForm").hide();
			$("#successMessageContactForm").hide();
			
			var fullName		= encodeQueryString(getValue("textbox_fullName"));
			var contactMeBy		= encodeQueryString(getRadioValue("contactMeBy"));
			var email			= encodeQueryString(getValue("textbox_email"));
			var phone			= encodeQueryString(getValue("textbox_phone"));
			var interestedIn	= encodeQueryString(getCheckedValues("interestedIn"));
			var hearAboutUs		= encodeQueryString(getCheckedValues("hearAboutUs"));
			
			var comments		= getValue("textbox_comments");
			comments			= encodeQueryString(comments);
			
			
			var paramArray = new Array();
			paramArray.push(["action", "sendContactForm"]);
			paramArray.push(["formType", getValue("formType")]);
			paramArray.push(["fullName", fullName]);
			paramArray.push(["contactMeBy", contactMeBy]);
			paramArray.push(["email", email]);
			paramArray.push(["phone", phone]);
			paramArray.push(["comments", comments]);
			paramArray.push(["interestedIn", interestedIn]);
			paramArray.push(["hearAboutUs", hearAboutUs]);
			
			showLoadingGraphic();
			setAjaxPostUrl("updateData", "ajaxContactForm.php", paramArray, false, "sendContactFormComplete()");
		}
		else
		{
			$("#errorMessageContactForm").text("We're sorry, it looks like there are some errors. Please correct the errors highlighted in red.");
			$("#errorMessageContactForm").fadeIn("fast");
		}
	}
	
	function sendContactFormComplete()
	{
		hideLoadingGraphic();
		var result = getElement("updateData").innerHTML;	
		getElement("updateData").innerHTML = "";
		
		if (result.indexOf("ERROR") != -1)
		{
			$("#errorMessageContactForm").html(result);
			$("#errorMessageContactForm").fadeIn("fast");
		}
		else
		{
			$("#successMessageContactForm").html(result);
			$("#successMessageContactForm").show();
			
			$("#contactFormBtns").hide();
			$("#okBtn").show();
				
			$("#contactFormFields").hide();
			
		}
	}
	
/* Show Maintenance Request Form  **********************************************************
*
*	TAKES:		NOTHING
*	RETURNS:	NOTHING
*	NOTES:		
*
**************************************************************************/

	function showMaintenanceRequestForm()
	{
		loadingElement = getElement("loadingGraphic");
		glassElement = getElement("glassPane");
		shadedElement = getElement("shadedPane");
		showLoadingGraphic();
		shadePageBackground("#1e375b", 60);
		setPaneContent(glassElement, "<div id=\"maintenanceRequestFormContainer\"></div>");
			
			
		var paramArray = new Array();
		paramArray.push(["action", "showMaintenanceRequestForm"]);
		
		setAjaxPostUrl("maintenanceRequestFormContainer", "ajaxMaintenanceRequestForm.php", paramArray, false, "showMaintenanceRequestFormComplete()");
		
	}

/* Show Maintenance Request Form Compelte **********************************************************
*
*	TAKES:		NOTHING
*	RETURNS:	NOTHING
*	NOTES:		
*
**************************************************************************/

	function showMaintenanceRequestFormComplete()
	{
		centerElement(getElement("glassPane"));
		hideLoadingGraphic();
	}

/* Close Maintenance Request Form Panel **********************************************************
*
*	TAKES:		NOTHING
*	RETURNS:	NOTHING
*	NOTES:		
*
**************************************************************************/

	function closeMaintenanceRequestFormPanel()
	{
		restorePageBackground();
	}
	
/* Send Maintenance Request Form **********************************************************
*
*	TAKES:		NOTHING
*	RETURNS:	NOTHING
*	NOTES:		
*
**************************************************************************/

	function sendMaintenanceRequestForm()
	{
		if (!errorsExist())
		{
			$("#errorMessageForm").hide();
			$("#successMessageForm").hide();
			
			var fullName		= encodeQueryString(getValue("textbox_fullName"));
			var phone			= encodeQueryString(getValue("textbox_phone"));
			var address1		= encodeQueryString(getValue("textbox_address1"));
			var address2		= encodeQueryString(getValue("textbox_address2"));
			var city			= encodeQueryString(getValue("textbox_city"));
			var state			= encodeQueryString($("#textbox_state").val());
			var zip				= encodeQueryString(getValue("textbox_zip"));
			
			var issue			= getValue("textbox_issue");
			issue				= encodeQueryString(issue);
			
			var issueMonth		= getElement("issueMonth").options[getElement("issueMonth").selectedIndex].value;
			var issueDay		= getElement("issueDay").options[getElement("issueDay").selectedIndex].value;
			var issueYear		= getElement("issueYear").options[getElement("issueYear").selectedIndex].value;
			
			var paramArray = new Array();
			paramArray.push(["action", "sendMaintenanceRequestForm"]);
			paramArray.push(["fullName", fullName]);
			paramArray.push(["phone", phone]);
			paramArray.push(["address1", address1]);
			paramArray.push(["address2", address2]);
			paramArray.push(["city", city]);
			paramArray.push(["state", state]);
			paramArray.push(["zip", zip]);
			
			paramArray.push(["issue", issue]);
			
			paramArray.push(["issueMonth", issueMonth]);
			paramArray.push(["issueDay", issueDay]);
			paramArray.push(["issueYear", issueYear]);
			
			showLoadingGraphic();
			setAjaxPostUrl("updateData", "ajaxMaintenanceRequestForm.php", paramArray, false, "sendMaintenanceRequestFormComplete()");
		}
		else
		{
			$("#errorMessageForm").text("We're sorry, it looks like there are some errors. Please correct the errors highlighted in red.");
			$("#errorMessageForm").fadeIn("fast");
		}
	}
	
	
/* Send Maintenance Request Form Complete **********************************************************
*
*	TAKES:		NOTHING
*	RETURNS:	NOTHING
*	NOTES:		
*
**************************************************************************/

	function sendMaintenanceRequestFormComplete()
	{
		hideLoadingGraphic();
		var result = getElement("updateData").innerHTML;	
		getElement("updateData").innerHTML = "";
		
		if (result.indexOf("ERROR") != -1)
		{
			$("#errorMessageForm").html(result);
			$("#errorMessageForm").fadeIn("fast");
		}
		else
		{
			$("#successMessageForm").html(result);
			$("#successMessageForm").show();
			
			$("#contactFormBtns").hide();
			$("#okBtn").show();
				
			$("#contactFormFields").hide();
			
		}
	}
	
	
	
	
	
	
	
	
