// JavaScript Document

$.validator.setDefaults({
	submitHandler: function(form) {
   		form.submit();
	}
});

$().ready(function() {
	
	// set first program value to be null for validation
	$("#program").prepend('<option value="">Please select a program:</option>');
	$("#program option[value='-1']").remove();
	
	// validate signup form on keyup and submit
	$("#contact").validate({
		rules: {
			program: "required",
			firstName: "required",
			lastName: "required",
			address: "required",
			city: "required",
			state: "required",
			phone: {
				required: true,
				phoneUS: true
			},
			email: {
				required: true,
				email: true
			},
			zip: {
				required: true,
				minlength: 5,
				maxlength: 12
			}
		},
		messages: {
			program: "Please choose a program.",
			firstName: "Please enter your first name.",
			lastName: "Please enter your last name.",
			phone: "Please enter a phone number.",
			email: "Please enter a valid email address.",
			address: "Please enter your address.",
			city: "Please enter a city.",
			state: "Please choose a state.",
			zip: "Please enter a Zip code."
		}
	});
	
	// SHOW STEP 2
	$('#program').change(function() {
		if ($('#step2:visible').length < 1)
		{
			animatedcollapse.show('step2');
		}
	});
	
	// Storing form field data page to page
	setForm();
	$('#contact :input:not(input[type=hidden])').each(function(n,element) {
		if ($.cookie($(this).attr('name')) && $(this).val() == "")
		{
			$(this).val($.cookie($(this).attr('name')));
		}
		$(this).change(function() {
			setCookie($(this).attr('name'), $(this).val());
		});
	});
	if ($('#contact select[name=program]').val() != "")
	{
		$("#step2").show();
	}
});

animatedcollapse.addDiv('step2', 'fade=1,height=auto')
animatedcollapse.init()

sfFocus = function() {
	var sfEls = document.getElementsByTagName("INPUT");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onfocus=function() {
			this.className+=" sffocus";
		}
		sfEls[i].onblur=function() {
			this.className=this.className.replace(new RegExp(" sffocus\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfFocus);

function setCookie(cName, cValue)
{
	var expdate = new Date();
	expdate.setDate(expdate.getDate() + 30);
	document.cookie = cName + "=" + escape(cValue) + "; expires=" + expdate.toGMTString();
}

function getCookie(cName)
{
	if (document.cookie.length > 0)
	{
		cStart = document.cookie.indexOf(cName + "=");
		if (cStart != -1)
		{
			cStart = cStart + cName.length + 1;
			cEnd = document.cookie.indexOf(";", cStart);
			if (cEnd == -1)
				cEnd = document.cookie.length;
			return unescape(document.cookie.substring(cStart,cEnd));
		}
	}
	return "";
}

function setForm()
{
	var selects = document.getElementsByTagName('select');
	var selectsLength = selects.length;
	for (i = 0; i < selectsLength; i++)
	{
		var name = selects[i].name;
		var cookie = getCookie(name);
		if (cookie.length)
		{
			for (j = 0; j < selects[i].options.length; j++)
			{
				if (selects[i].options[selects[i].selectedIndex].value == "" && selects[i].options[j].value == cookie)
				{
					selects[i].options[j].selected = true;
					j = selects[i].options.length;
					if (name == 'campusid')
					{
						fireEvent('campusid','change');
					}
				}
			}
		}
	}
}

function fireEvent(elementID,event)
{
	var element = document.getElementById(elementID);
	if (document.createEventObject)
	{
		// dispatch for IE
		var evt = document.createEventObject();
		return element.fireEvent('on' + event,evt)
	}
	else
	{
		// dispatch for firefox + others
		var evt = document.createEvent("HTMLEvents");
		evt.initEvent(event, true, true); // event type,bubbling,cancelable
		return !element.dispatchEvent(evt);
	}
}

