﻿// JavaScript Document


if(typeof parkside == "undefined") var parkside = new Object();
if(typeof parkside.callback == "undefined") parkside.callback = new Object();

// Constructor
parkside.callback = function() {
}

/// Class members
parkside.callback.prototype = {
/// Properties
	timeout: null,
	nameID: null,
	phoneID: null,
	datetimeID: null,
	loadingID: null,
	messageContainerID: null,
	messageID: null,
	sidebarID: null,

/// Methods
	request: function(form, sidebar, nameElement, phoneElement, dateElement, timeElement, submitElement, loadingElement, messageContainerElement, messageElement) 
	{ 
		if( typeof http == "undefined" )
		{
			alert("JSMX not included!");
			return;
		}
		nameID = nameElement;
		phoneID = phoneElement;
		datetimeID = dateElement + " / " + timeElement;
		submitID = submitElement;
		loadingID = loadingElement;
		messageContainerID = messageContainerElement;
		messageID = messageElement;	
		sidebarID = sidebar;
		document.getElementById(submitID).style.display = 'none';
		document.getElementById(messageContainerID).style.display = 'none';
		document.getElementById(loadingID).style.display = 'block';			
		http("POST", "custom/content_elements/callback.cfc?method=callbackAjax", this.response, form); //notice the third argument = list_response. This is the callback function below.
	}
	,
	response: function(obj) //callback functions always take one argument. This is the result passed back from the server.
	{ 	
		document.getElementById(submitID).style.display = 'block';
		document.getElementById(loadingID).style.display = 'none';
		if (obj.error != "") 
		{
			document.getElementById(messageID).innerHTML = obj.error;
		}
		else if (obj.technical_error != "")  
		{
			document.getElementById(messageID).innerHTML = obj.technical_error;
/*			document.getElementById(nameID).value = "";
			document.getElementById(phoneID).value = "";
*/		}
		else if (obj.success != "")  
		{
			document.getElementById(messageID).innerHTML = obj.success;
		}

		document.getElementById(messageContainerID).style.display = 'block';	
		var pos = parkside.Callback.findPos(document.getElementById(submitID));
		if(sidebarID)
			document.getElementById(messageContainerID).style.left = pos[0] + "px";
		else
			document.getElementById(messageContainerID).style.left = pos[0] - 135 + "px";
		document.getElementById(messageContainerID).style.top = pos[1]  + 28 + "px";
		
		if(this.timeout != null) 
			clearTimeout(this.timeout);
		this.timeout = setTimeout("parkside.Callback.clearResponse()", 6000);	
	}
	, 
	clearResponse: function() 
	{
		document.getElementById(messageID).innerHTML = "";
		document.getElementById(messageContainerID).style.display = 'none';
		this.timeout = null;
	}
	,
	findPos: function(obj) 
	{
		var curleft = curtop = 0;
		if(obj.offsetParent) 
		{
			do 
			{
				curleft += obj.offsetLeft;
				curtop += obj.offsetTop;
			} 
			while(obj = obj.offsetParent);

			return [curleft,curtop];
		}
	}
}

parkside.Callback = new parkside.callback();


