$(document).ready(function() { 
	// Trouble Ticket Form Submission
    var options = { 
		success: showTroubleTicketResponse,
		resetForm: true,
		beforeSubmit: validateTroubleTicket
	}; 
    $('#TroubleTicket_Web').submit(function() { 
        $(this).ajaxSubmit(options); 
        return false; 
    });

	// email validation
	$('input.email').keyup(function() {
		var email = $('input.email').val();
		if (email != 0) {
			if(isValidEmailAddress(email)) {
				$('#validIconEmail').removeClass('validIconNo').addClass('validIconYes');
			} else {
				$('#validIconEmail').removeClass('validIconYes').addClass('validIconNo');
			}
		} else {
			$('#validIconEmail').removeClass('validIconYes validIconNo');
		}
	});

	// http://malsup.com/jquery/cycle/lite/
	$('#feature-container').cycle({ timeout: 6000, speed: 1000, sync: 1 })
}); 

function showTroubleTicketResponse(responseText, statusText) {
	if (responseText == -1) {
		setValidStatus(false);
	} else {
		setValidStatus(true);
	}
}

function setValidStatus(valid) {
	if (valid) {
		$('#TroubleTicket_Web_Response').removeClass('warning').addClass('success');
		$('#TroubleTicket_Web_Response').html('Thank you. Someone will be contacting you shortly.');
		$('#TroubleTicket_Web').hide();
	} else {
		$('#TroubleTicket_Web_Response').removeClass('success').addClass('warning');
		$('#TroubleTicket_Web_Response').html('Problem submitting the form. Please fill in all required fields and try again or contact us using the above contact information.');
	}
}

function validateTroubleTicket(formData, jqForm, options) {
	var form = jqForm[0];
	if (!isValidEmailAddress(form.Email.value) || !form.Name.value ||
	!form.Subject.value || !form.Suggestion.value) {
		setValidStatus(false);
		return false;
	}
	return true;
}

function isValidEmailAddress(emailAddress) {
	var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	return pattern.test(emailAddress);
}

