//*****Mask function from http://digitalbush.com/projects/masked-input-plugin**************************************************//
function mask() {
	if($('#txtMsg').length){
  	$('#txtMsg').mask('(999) 999-9999');
	}
	if($('#txtZip').length){
		$('#txtZip').mask('99999');
	}
	if($('#txtPhone').length){
		$('#txtPhone').mask('(999) 999-9999');
	}
	if($('#txtCellPhone').length){
		$('#txtCellPhone').mask('(999) 999-9999');
	}
	if($('#txtDOB').length){
		$('#txtDOB').mask('99/99/9999');
	}
	if($('#txtSSN').length){
		$('#txtSSN').mask('999-99-9999');
	}
	if($("#inputID").length){
		$("#inputID").keyup(function() {
			$("#inputID").val($(this).val().toLowerCase().replace(' ','_'));
		});
	}
}
//*****jQuery form validation from http://bassistance.de/jquery-plugins/jquery-plugin-validation/**************************************************//
function validate() {
  $('#formId').validate({
    //add the error class to the label and element
    highlight: function(element, errorClass) {
		  if ($(element).is(':checkbox')) {
		    $(element).parent().prev().addClass(errorClass);
		  } else {
        $(element).addClass(errorClass);
        $(element.form).find("label[for=" + element.id + "]").addClass(errorClass);
      }
    },
    //remove error class from label and element once valid
    unhighlight: function(element, errorClass) {
		  if ($(element).is(':checkbox')) {
		    $(element).parent().prev().removeClass(errorClass);
		    $(element).parent().prev().addClass('valid');
		  } else {
        $(element).removeClass(errorClass).addClass('valid');
        $(element.form).find("label[for=" + element.id + "]").removeClass(errorClass).addClass('valid');
      }
    },
    //add the green box and checkmark for valid fields
    success: function(label) {
		  if (label.next().is('#txtEmail')) {
        label.prev().addClass("valid");
        label.addClass("valid");
      } else {
        label.prev().addClass("valid");
        label.addClass("valid").text("");
      }
    },
//    onfocusout: false,
//    onkeyup: false,
//    onclick: false,
    //do not use the title attribute as the error message
    ignoreTitle: true,
    //make the error text wrapped in a span
    errorElement: 'span',
    //javascript instead of class specified rules
    rules: {
      'alertChoice[]': 'required'
    },
    //messages other than the default 'X'
    messages: {
		  'alertChoice[]': '*Please select one of the options below*',
			txtEmail: '*Please enter your email address*'
		},
    // the errorPlacement has to take the h2 of radio buttons into account
		errorPlacement: function(error, element) {
		  error.appendTo(element.parent().prev());
//			if ( element.is(':checkbox') )
//		    error.appendTo( element.parent().prev() );
//		  else
//				error.prependTo( element.parent().parent().parent() );
		}
  });
}
//****Modal Control********************************************************************//
function modal(){
	//Clicking Text & Email Alerts opens modal
	$('.alert a.icon').click(function(e) {
		$('#alert-signup-modal').fadeIn('slow');
		$('#alert-signup-modal .wrap').slideDown('slow');
		e.preventDefault();
	});
	//Clicking X button closes modal
	$('#close-modal').click(function(e) {
		$('#alert-signup-modal').fadeOut('slow');
		$('#alert-signup-modal .wrap').fadeOut('slow');
		e.preventDefault();
	});
	//Clicking on the modal, but not on the form, hides the modal
	$('#alert-signup-modal').click(function(e) {
		var clicked = jQuery(e.target);
		if(clicked.is('div#alert-signup-modal')) {
			$('#alert-signup-modal').fadeOut('slow');
			$('#alert-signup-modal .wrap').fadeOut('slow');
		}
	});
	//Escape key closes modal if pressed and modal is visible
	$(document).keydown(function (event) {
		if(event.keyCode == 27 && $('#alert-signup-modal:visible').length){
			$('#alert-signup-modal').fadeOut('slow');
			$('#alert-signup-modal .wrap').fadeOut('slow');
		}
	});
}
function mapShowHide(){
	$('#slick-slidetoggle').click(function() {
		$('#map_directions').toggle();
		return false;
	});
}
//*****Load all functions**************************************************//
$(document).ready(function(){
	validate();
	mask();
	modal();
	mapShowHide();
});

