
/* mmh/formUtility.js */

 /**
 * Utility functions for Form elements
 *
 * This file contains utility functions for setting up listeners and handlers
 * for different form elements
 *
 * @param	author	John P. Giatropoulos	<jgiatropoulos@thinkinc.com>
 */

/**
 * add listeners to the Input.text elements
 *
 * This function will add a onFocus, and onBlur event listener
 * for all INPUT elements with a class of "text".
 */
//error: #ecbaba;

function addFormInputListeners(){
	// first we have to get all of the Input.text elements
		var inputText = Element.select('INPUT', 'text');
		var inputDimensions = Element.select('INPUT', 'dimensions');
		var inputDateMD = Element.select('INPUT', 'dateMD');
		var inputDateY = Element.select('INPUT', 'dateY');
		var inputCurrency = Element.select('INPUT', 'currency');
		var textareaText = Element.select('TEXTAREA', 'text');

		for(var i=0; i<inputText.length;i++){
			Event.observe(inputText[i], 'focus', handleInputTextFocus);
			Event.observe(inputText[i], 'blur', handleInputTextBlur);
		}


		for(var i=0; i<inputDimensions.length;i++){
			Event.observe(inputDimensions[i], 'focus', handleInputTextFocus);
			Event.observe(inputDimensions[i], 'blur', handleInputTextBlur);
		}
		for(var i=0; i<inputDateMD.length;i++){
			Event.observe(inputDateMD[i], 'focus', handleInputTextFocus);
			Event.observe(inputDateMD[i], 'blur', handleInputTextBlur);
		}
		for(var i=0; i<inputDateY.length;i++){
			Event.observe(inputDateY[i], 'focus', handleInputTextFocus);
			Event.observe(inputDateY[i], 'blur', handleInputTextBlur);
		}
		for(var i=0; i<inputCurrency.length;i++){
			Event.observe(inputCurrency[i], 'focus', handleInputTextFocus);
			Event.observe(inputCurrency[i], 'blur', handleInputTextBlur);
		}
		for(var i=0; i<textareaText.length;i++){
			Event.observe(textareaText[i], 'focus', handleInputTextFocus);
			Event.observe(textareaText[i], 'blur', handleInputTextBlur);
		}

}

/////// Handlers ///////////////

/**
 * handle text input focus
 *
 * This will change the background color of the text input field to blue
 */

function handleInputTextFocus(e){
	Event.element(e).style.background = '#cce7f0';
}

function handleInputTextBlur(e){
	Event.element(e).style.background = '#FFFFFF';
}

// when the window finishes loading, set up the listners
	Event.onReady(addFormInputListeners);


/**
 * purchaseHistory
 */

 /**
  * TODO: short term fix for release bug, should be replaced with form.serialize.
  */
 function collectFormData(form){
	var queryString = '';
	for (var i = 0; i < form.elements.length; i++)
 	{
 		if (form.elements[i].type == 'radio'){
 			if (form.elements[i].checked){
 				if (queryString.length > 0){
 					queryString += "&";
 				}
 				queryString += form.elements[i].name + "=" + form.elements[i].value;
 			}
 		}else {
 				if (queryString.length > 0){
 					queryString += "&";
 				}
 				queryString += form.elements[i].name + "=" + form.elements[i].value;
 		}
	}
	return queryString;
}

/*  Taken from TypeLanding.js to clear and add text to input fields and text areas  */

function clearText(inputToClear, label) {
	var inputElement = $(inputToClear);
	if (inputElement.value == label) {
		inputElement.value = '';
	}
}

function addText(inputToAdd, label) {
	var inputElement = $(inputToAdd);
	if (inputElement.value == '') {
		inputElement.value = label;
	}
}
