//Standard Sandstone JS Functions

function GetEventTarget(e)
{
	var returnValue;

	if (e.currentTarget)
	{
		returnValue = e.currentTarget;
	}
	else
	{
		returnValue = e.srcElement;
	}

	return returnValue;
}

function getElementsByClassName(ClassName, TagName, ParentElement)
{
	// Set Argument Default Values if Necessary
	var testClass = new RegExp("(^|\s)" + ClassName + "(\s|$)");
	var TagName = TagName || "*";
	var ParentElement = ParentElement || document;

	// Get Elements Matching Tag Name under the Parent
	var elements = (TagName == "*" && ParentElement.all)? ParentElement.all : ParentElement.getElementsByTagName(TagName);

	var returnValue = [];
	var current;
	var length = elements.length;
	var i;

	for(i = 0; i < length; i++)
	{
		current = elements[i];

		if(testClass.test(current.className))
		{
			returnValue.push(current);
		}
	}

	return returnValue;
}

function FullFormAJAX(Target, Method, FormID)
{

	var FormParameters = Form.serialize(FormID);

	RaiseAJAXevent(Target, Method, FormParameters);

}

function SingleElementAJAX(Target, Method, ElementID)
{
	var ElementParameter = ElementID + "=" + $F(ElementID);

	RaiseAJAXevent(Target, Method, ElementParameter);

}

function NoValueAJAX(Target, Method)
{
	RaiseAJAXevent(Target, Method, '');
}

function RaiseAJAXevent(Target, Method, PostParameters)
{

	PostParameters = PostParameters + "&target=" + Target + "&method=" + Method;

	new Ajax.Request('home.ajax', {method:'post', asynchronous:true, postBody:PostParameters, onSuccess:AJAXsuccess, onFailure:AJAXfailure})
}

function AJAXsuccess(t)
{
	eval(t.responseText);
}

function AJAXfailure(t)
{
	alert('An AJAX error has happened!');
}


function SetControlMessage(ControlName, MessageText)
{

	var messageDOM = $(ControlName + '_Message');
	var existingMessageLength = messageDOM.innerHTML.length;


	if (MessageText.length == 0 && existingMessageLength > 0)
	{
		// We had a message, but not it has been cleared
		new Effect.BlindUp(messageDOM,
			{
				afterFinish:function(){messageDOM.innerHTML = MessageText;}
			});

	}
	else if (MessageText.length > 0)
	{
		messageDOM.innerHTML = MessageText;

		if (existingMessageLength == 0)
		{
			// We did not have a message, but now we do
			new Effect.BlindDown(messageDOM);
		}
		else
		{
			// We had a message, but it has changed
			new Effect.Shake(messageDOM);
		}
	}
}

function SelectDropdownItem(DomID, Value)
{
    var i;

    $(DomID)[0].selected = true;

    for (i = 0; i < $(DomID).length; i++)
    {
        if ( $(DomID)[i].value == Value )
        {
            $(DomID)[i].selected = true;
        }
    }
}

function SetCheckboxChecked(DomID, IsChecked)
{
	$(DomID).checked = IsChecked;
}

function AlternateTableRowStyles(tableElement, oddClass, evenClass)
{
	if (!oddClass)
	{
		oddClass = "odd";
	}
	
	if (!evenClass)
	{
		evenClass = "even";
	}
	
	$$('table#'+tableElement+' tbody > tr:nth-child(odd)').each(function(s) 
	{
		s.addClassName(oddClass);
	});
	
    $$('table#'+tableElement+' tbody > tr:nth-child(even)').each(function(s) 
	{
        s.addClassName(evenClass);
    });
}

function Trim(str, chars) 
{
    return Ltrim(Rtrim(str, chars), chars);
}

function Ltrim(str, chars) 
{
    chars = chars || "\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function Rtrim(str, chars) 
{
    chars = chars || "\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

//End of Standard Sandstone JS Functions

function MainForm_LeadName_OnFocus()
{
		if ($('MainForm_LeadName').value == 'Name')
	{
		$('MainForm_LeadName').removeClassName('titletextbox_blank');
		$('MainForm_LeadName').value = '';
	}
	
	if (typeof MainForm_LeadName_OnFocusCallback=="function")
	{
		MainForm_LeadName_OnFocusCallback();
	}
}

function MainForm_LeadName_OnBlur()
{
		if ($('MainForm_LeadName').value == '')
	{
		$('MainForm_LeadName').addClassName('titletextbox_blank');
		$('MainForm_LeadName').value = 'Name';
	}
	
	if (typeof MainForm_LeadName_OnBlurCallback=="function")
	{
		MainForm_LeadName_OnBlurCallback();
	}
}

function MainForm_LeadName_OnLoad()
{
		if ($F('MainForm_LeadName') == '')
	{
		$('MainForm_LeadName').value = 'Name';
		$('MainForm_LeadName').addClassName('titletextbox_blank');
	}

	$('MainForm_LeadName_Label').hide();

}
function MainForm_Email_OnFocus()
{
		if ($('MainForm_Email').value == 'Email')
	{
		$('MainForm_Email').removeClassName('titletextbox_blank');
		$('MainForm_Email').value = '';
	}
	
	if (typeof MainForm_Email_OnFocusCallback=="function")
	{
		MainForm_Email_OnFocusCallback();
	}
}

function MainForm_Email_OnBlur()
{
		if ($('MainForm_Email').value == '')
	{
		$('MainForm_Email').addClassName('titletextbox_blank');
		$('MainForm_Email').value = 'Email';
	}
	
	if (typeof MainForm_Email_OnBlurCallback=="function")
	{
		MainForm_Email_OnBlurCallback();
	}
}

function MainForm_Email_OnLoad()
{
		if ($F('MainForm_Email') == '')
	{
		$('MainForm_Email').value = 'Email';
		$('MainForm_Email').addClassName('titletextbox_blank');
	}

	$('MainForm_Email_Label').hide();

}



function RegisterObservers()
{
	if ($('MainForm_LeadName'))
	{
		Event.observe('MainForm_LeadName', 'focus', MainForm_LeadName_OnFocus);
		Event.observe('MainForm_LeadName', 'blur', MainForm_LeadName_OnBlur);
		MainForm_LeadName_OnLoad();
	}

	if ($('MainForm_Email'))
	{
		Event.observe('MainForm_Email', 'focus', MainForm_Email_OnFocus);
		Event.observe('MainForm_Email', 'blur', MainForm_Email_OnBlur);
		MainForm_Email_OnLoad();
	}

}

Event.observe(window, 'load', RegisterObservers);