﻿function endForm(containerName,submitButtonName)
{
	$("#"+submitButtonName).unbind("click");
}

function setupForm(containerName,submitButtonName,handler,callback)
{
	var container = $("#"+containerName);
	var inputs = container.find("input");
	var textareas = container.find("textarea")

	for(var i=0;i<inputs.length;i++)
	{
		setupInputField(inputs.eq(i),submitButtonName);
	}
	
	for(var i=0;i<textareas.length;i++)
	{
		setupTextArea(textareas.eq(i),submitButtonName);
	}

	$("#"+submitButtonName).bind("click",function(){
		var formDataString= "eval({";
		for(var i=0;i<inputs.length;i++)
		{
			if(i>0)
				formDataString+= ",";

			var inputField = inputs.eq(i);
			formDataString += inputField.attr("id") + ": '" + inputs[i].value + "'";
		}
		for(var i=0;i<textareas.length;i++)
		{
			formDataString+= ",";
			var textArea = textareas.eq(i);
			formDataString += textArea.attr("id") + ": '" + textArea[i].value + "'";
		}
		formDataString += ",formHandler:'"+handler+"'";
		formDataString += "})";
		
		var formData = eval(formDataString);
		$.post("/FormProcessor.aspx",formData ,function(data,textStatus){
			var results = eval(data);
			results.ajaxStatus = textStatus;
			
			for(var i=0;i<inputs.length;i++)
			{
				inputs.eq(i).removeClass("inputFieldError");
				inputs.eq(i).attr("title","");
			}

			for(var i=0;i<textareas.length;i++)
			{
				textareas.eq(i).removeClass("inputFieldError");
				textareas.eq(i).attr("title","");
			}

			if(results.status == "Invalid Fields")
			{
				var invalidFields = results.invalidFields.split(",");
				var invalidFieldReasons = results.invalidFieldReasons.split(",");
				for(var j=0;j<invalidFields.length;j++)
				{
					$("#"+invalidFields[j]).addClass("inputFieldError");
					$("#"+invalidFields[j]).attr("title",invalidFieldReasons[j]);
				}
			}
			
			callback(results);
		},"JSON");
	});
}

function setupInputField(inputField,submitButtonName)
{
	inputField.bind("keydown",function(e){
		if (e.keyCode == 13) 
		{
			$("#"+submitButtonName).trigger("click");
			return false;
		}
	});
	
	inputField.addClass("inputFieldBlurred");
	
	inputField.bind("focus",function(){
		if(inputField[0].value == inputField[0].defaultValue)
		{
			inputField[0].value = "";
			inputField.removeClass("inputFieldBlurred");
			inputField.addClass("inputField");			
		}
	});

	inputField.bind("blur",function(){
		if(inputField[0].value.length == 0)
		{
			inputField[0].value = inputField[0].defaultValue;
			inputField.removeClass("inputField");
			inputField.addClass("inputFieldBlurred");			
		}
	});
}

function setupTextArea(textArea,submitButtonName)
{
	textArea.addClass("inputFieldBlurred");
	
	textArea.bind("focus",function(){
		textArea[0].value = "";
		textArea.removeClass("inputFieldBlurred");
		textArea.addClass("inputField");
		textArea.unbind("focus");			
	});
}
