// JavaScript Document

	function goContact()
	{
		var tab		= document.getElementById( 'contact_tab' );
		var label	= tab.getElementsByTagName( "*" )[ 0 ].className;
		if ( label.search( "tab_text_selected" ) < 0 )
			prepAndGo( 'contact' );
	} // end goHome()
	
	function doContactTasks()
	{		
		var msg = verify();
		if ( msg != null && msg.verified == true )
		{
			submitMessage( msg );
		} // end if
		else
			showError( msg );
		
		document.getElementById( 'x' ).style.zIndex = "0";
	} // end doContactTasks()
	
	// ------------------------------------------
	
	function doButtonFx( elName )
	{
		var button = document.getElementById( elName );
		
		button.style.backgroundImage = "url( 'public/images/" + elName + "_pressed.png' )";
	} // end doButtonFx()

	function doCancelFx( elName )
	{
		var button = document.getElementById( elName );
		
		button.style.backgroundImage = "url( 'public/images/" + elName + ".png' )";
	} // end doButtonFx()

	function verify()
	{
		var from	= document.getElementById( 'textbox_from' ).value;
		var subject	= document.getElementById( 'textbox_subject' ).value;
		var message	= document.getElementById( 'textarea_msg' ).value;

		var failMsg	= null;
		if ( from == "" || subject == "" || message == "" )
		{
			failMsg = "Please fill out all areas before submitting.";
		} // end if
		else
		{
			// Return msg in case text validation fails
			failMsg	= "Only letters a-z and 0-9 (incl. , ( ) @ . * - ? ! ') are permitted."
					+ "<br>Please make corrections and try again.";
					
			if ( 	validate( from ) != null && 
					validate( subject ) != null && 
					validate( message ) != null
				)		
				return new Message( from, subject, message );
		} // end else
		
		return failMsg;		
	} // end verify()
	
	function submitMessage( msg )
	{
		new DialogPanel( msg, goHome );
		
	} // end submitMessage()
	
	/*
	 *	Custom message object
	 */
	 function Message( _from, _subject, _body )
	 {
		 this.verified 		= false;
		 this.msgSubject	= null;
		 this.msgBody		= null; 
		 if ( 	_from != null &&
			 	_subject != null &&
				_body != null &&
		 		_from != "" &&
			 	_subject != "" &&
				_body != ""		)
				
		 {
			 this.verified		= true;
			 this.msgSubject	= _subject;
			 this.msgBody		= _body;
		 } // end if
		 else
			 alert( 'Internal error: Undefined message object.' );
		 
	 } // end Message class()
	 
	 /**
	  * Determines if the message was successfully sent and
	  * notifies the user.
	  */
	 function confirmSend()
	 {
		if ( _xhReq4.readyState == 4 )
		{
			if ( _xhReq4.responseText == 1 )
				submitMessage( "Email sent successfully." );
			else
				submitMessage( "Error: Unable to send message." );
			
		} // end if
			
	 } // end confirmSend()
	 
	 /**
	  * Builds a parameter string by iterating through form inputs.
	  * 10/6/09
	  * Taken from http://www.captain.at/howto-ajax-form-post-get.php
	  * @param obj	Form HTMLDivObject
	  * @return		A parameter string for POST request
	  */
	 function get(obj) {
		  var getstr = "?";
		  for (i=0; i<obj.getElementsByTagName("input").length; i++) {
		        if (obj.getElementsByTagName("input")[i].type == "text") {
		           getstr += obj.getElementsByTagName("input")[i].name + "=" + 
		                   obj.getElementsByTagName("input")[i].value + "&";
		        }
		        if (obj.getElementsByTagName("input")[i].type == "checkbox") {
		           if (obj.getElementsByTagName("input")[i].checked) {
		              getstr += obj.getElementsByTagName("input")[i].name + "=" + 
		                   obj.getElementsByTagName("input")[i].value + "&";
		           } else {
		              getstr += obj.getElementsByTagName("input")[i].name + "=&";
		           }
		        }
		        if (obj.getElementsByTagName("input")[i].type == "radio") {
		           if (obj.getElementsByTagName("input")[i].checked) {
		              getstr += obj.getElementsByTagName("input")[i].name + "=" + 
		                   obj.getElementsByTagName("input")[i].value + "&";
		           }
		     }  
		     if (obj.getElementsByTagName("input")[i].tagName == "SELECT") {
		        var sel = obj.getElementsByTagName("input")[i];
		        getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
		     }
		     
		     if (obj.getElementsByTagName("textarea")[i] != null &&
		    		 obj.getElementsByTagName("textarea")[i].name == "msgBody") {
		    	 var sel = obj.getElementsByTagName("textarea")[i];
			        getstr += sel.name + "=" + sel.value + "&";
			     }
		     
		  }
		  submitForm( 'mailer2.php', getstr );
		}
	 
	 /**
	  * Makes ajax call to mail.jsp and sends message.
	  */
	 var _xhReq4 = null;
	 function submitForm( page, params )
	 {
		// Ajax call to home_page_content
		_xhReq4 = createXMLHttpRequest();			
		if ( _xhReq4 != null )
		{					
			_xhReq4.open("POST", "mailer2.jsp" + params, true);
			_xhReq4.onreadystatechange = confirmSend;
			_xhReq4.send(null);
			
		} // end if
		else
			alert( "Internal error: Unable to create request object." );
	 
	 } // end callMailer()
	 
	function showRecaptcha(element, submitButton, themeName) {
		Recaptcha.create("6LdHtwgAAAAAAB0LwrZfwI1FOHiFBpecsF8bSZYg", element, {
		      theme: themeName,
		      tabindex: 0,
		      callback: Recaptcha.focus_response_field
		});		  
	}	
	  	 		
