// JavaScript Document
jQuery(document).ready(function(){
	var options = { 
    	target: '#resultTarget', // target identifies the element(s) to update with the server response 
		clearForm: false,		 // clear all form fields after successful submit
		url: 'process2.php',		 // override for form's 'action' attribute  
		success: showResponse	 // post-submit callback 
	}; 

	jQuery('#resultTarget').hide();
	jQuery("#txtZip").mask("99999");
	jQuery("#txtZip4").mask("9999");
	jQuery("#txtPhone").mask("(999) 999-9999");

	if(jQuery("#txtGraduation1").length > 0) {
		$('#txtGraduation1').datepicker({ dateFormat: 'm/d/yy', changeMonth: true, changeYear: true, yearRange: '-100:+0', maxDate: "+0" });
	}
	if(jQuery("#txtGraduation2").length > 0) {
		$('#txtGraduation2').datepicker({ dateFormat: 'm/d/yy', changeMonth: true, changeYear: true, yearRange: '-100:+0', maxDate: "+0" });
	}
	if(jQuery("#txtGraduation3").length > 0) {
		$('#txtGraduation3').datepicker({ dateFormat: 'm/d/yy', changeMonth: true, changeYear: true, yearRange: '-100:+0', maxDate: "+0" });
	}

	if(jQuery("#txtSEmployed1").length > 0) {
		$('#txtSEmployed1').datepicker({ dateFormat: 'm/d/yy', changeMonth: true, changeYear: true, yearRange: '-100:+0', maxDate: "+0" });
		$('#txtEEmployed1').datepicker({ dateFormat: 'm/d/yy', changeMonth: true, changeYear: true, yearRange: '-100:+0', maxDate: "+0" });
	}
	if(jQuery("#txtSEmployed2").length > 0) {
		$('#txtSEmployed2').datepicker({ dateFormat: 'm/d/yy', changeMonth: true, changeYear: true, yearRange: '-100:+0', maxDate: "+0" });
		$('#txtEEmployed2').datepicker({ dateFormat: 'm/d/yy', changeMonth: true, changeYear: true, yearRange: '-100:+0', maxDate: "+0" });
	}
	if(jQuery("#txtSEmployed3").length > 0) {
		$('#txtSEmployed3').datepicker({ dateFormat: 'm/d/yy', changeMonth: true, changeYear: true, yearRange: '-100:+0', maxDate: "+0" });
		$('#txtEEmployed3').datepicker({ dateFormat: 'm/d/yy', changeMonth: true, changeYear: true, yearRange: '-100:+0', maxDate: "+0" });
	}

	if(jQuery("#tablesorter").length > 0) {
		jQuery("#tablesorter").tablesorter({sortList:[[0,0],[1,0]], widgets: ['zebra']});
	}

	if(jQuery("#capcha").length > 0) {
		jQuery('#capcha').captcha();
	}

	// add * to required field labels
	jQuery('label.required').append('&nbsp;<font color="#990000"><b>*</b></font>&nbsp;');

	jQuery.validator.addMethod("pageRequired", function(value, element) {
		var $element = jQuery(element)
		return !this.optional(element);
	}, jQuery.validator.messages.required)

	// show a simple loading indicator
	var loader = jQuery('<div id="loader" style="background-color:#000000;color:#ffffff;padding:10;border: 1px solid #000;z-index: 99;">&nbsp;&nbsp;Processing...<br/><img src="/VPanel/images/loader.gif" alt="loading..." /></div>')
		.css({position: "absolute", top: "25em", left: "35em"})
		.appendTo("body")
		.hide();
	jQuery().ajaxStart(function() {
		loader.show();
	}).ajaxStop(function() {
		loader.hide();
	}).ajaxError(function(a, b, e) {
		throw e;
	});

	if(jQuery("#applyForm").length > 0) {
		var v = jQuery("#applyForm").validate({
			errorClass: "warning",
			onkeyup: false,
			onblur: false,
			submitHandler: function(form) {
				if (verifyCriteria()) {
					jQuery(form).ajaxSubmit(options);
				}
			},
			rules: {
				txtName: {
					required: true,
					minlength: 2
				},
				txtAddress: {
					required: true,
					minlength: 2
				},
				txtCity: {
					required: true,
					minlength: 2
				},
				cboState: {
					required: true
				},
				txtZip: {
					required: true,
					minlength: 2
				},
				txtPhone: {
					required: true,
					minlength: 10
				},
				txtEmail: {
					required: false,
					email: true
				},
				optAdult: "required",
				optLegal: "required",
				optEmployed: "required",
				optConvicted: "required"
			},
			messages: {
				txtName: {
					required: "** Required",
					minlength: "** Minimum 2 characters"
				},
				txtAddress: {
					required: "** Required",
					minlength: "** Minimum 2 characters"
				},
				txtCity: {
					required: "** Required",
					minlength: "** Minimum 2 characters"
				},
				cboState: {
					required: "** Required"
				},
				txtZip: {
					required: "** Required",
					minlength: "** Minimum 2 characters"
				},
				txtPhone: {
					required: "** Required",
					minlength: "** Invalid Phone Number"
				},
				txtEmail: {
					email: "** Invalid E-Mail"
				},
				optAdult: "** Please specify",
				optLegal: "** Please specify",
				optEmployed: "** Please specify",
				optConvicted: "** Please specify"
			}
		});
	}

	if(jQuery("#referForm").length > 0) {
		var v = jQuery("#referForm").validate({
			errorClass: "warning",
			onkeyup: false,
			onblur: false,
			submitHandler: function(form) {
				if (verifyCriteria()) {
					jQuery(form).ajaxSubmit(options);
				}
			},
			rules: {
				txtYName: {
					required: true,
					minlength: 2
				},
				txtYEmail: {
					required: true,
					email: true
				},
				txtFName: {
					required: true,
					minlength: 2
				},
				txtFEmail: {
					required: true,
					email: true
				}
			},
			messages: {
				txtYName: {
					required: "** Required",
					minlength: "** Minimum 2 characters"
				},
				txtYEmail: {
					required: "** Required",
					email: "** Invalid E-Mail"
				},
				txtFName: {
					required: "** Required",
					minlength: "** Minimum 2 characters"
				},
				txtFEmail: {
					required: "** Required",
					email: "** Invalid E-Mail"
				}
			}
		});
	}

}); 

// post-submit callback 
function showResponse(responseText, statusText)  { 
	if(!displayForm) {
		jQuery('#htmlForm').hide();
		//jQuery('html, body').animate({scrollTop:0}, 'slow');
	}

	jQuery('#resultTarget').fadeIn('slow'); 
} 

function verifyCriteria() {
	if(jQuery("input[name='captcha']").is(":checked")){
		// Do Nothing
	} else {
		alert("Please select security image to continue...\n");
		return false;
	}

	return true;
}
