/*
 * Search.js
 * 5337 - Multiproduct Landing Page
 *
 * CONTENTS:
 * - DHTML content switching
 * - Insurance quote lightbox
 * - Quote form validation rules + initialization
 * - Online quote form show/hide
 * - Online quote form validation
 * - Omniture click tracking (throughout)
 *
 * BEHAVIOR DEPENDENCIES (see resources/jslib):
 *      ncnu-jquery.js
 * PRESENTATION DEPENDENCIES:
 *      CSS (see resources/css/ncnu-global-national.css):
 *           Alerts, Error Messages, Lightbox - TQS
 *
 * Created: 2009-05-01
 * Created By: Dave Wolfe
 * Last Updated: 2009-07-30
 * Last Updated By: Dave Wolfe
 */


/* *** Validation script configuration *** */
jQuery.validator.setDefaults({
   	errorElement: "li",
	focusCleanup: false
});


/* *** Initialize/execute on pageload *** */
jQuery(document).ready(function(){

	// **************************
	// | BEGIN DHTML CONTENT LOAD

	var $mplpNavigationLinks = jQuery('#mplp-navigation li a');
	var $mplpContentDivs = jQuery('div.mplp-content');
	var selectedLink;
	var selectedContent;
	$mplpNavigationLinks.click(function(){

		selectedLink = jQuery(this).parent().attr('id');
		selectedContent = selectedLink.replace(/navigation/,'content');
		$mplpNavigationLinks.removeClass('current');
		jQuery('#' + selectedLink + ' a').addClass('current');
		jQuery('#mplp-feature div.current').fadeOut('normal',
			function(){
				$mplpContentDivs.removeClass('current');
				jQuery('#' + selectedContent).fadeIn();
				jQuery('#' + selectedContent).addClass('current');
			}
		);

/* OMNTR TRACKING | mplp l-btns onClick | -PV | 6/2/2009 | *** begin ***/

      if (selectedLink == "mplp-navigation-insurance") {
	    var s_csaa=s_gi(s_account);
		s_csaa.templtv=s_csaa.linkTrackVars;
		s_csaa.templte=s_csaa.linkTrackEvents;
		s_csaa.linkTrackEvents='event10';
		s_csaa.tl(this,'o','mclpgetmore_GetCovered_but');
		if(s_csaa.templtv)s_csaa.linkTrackVars=s_csaa.templtv;
		if(s_csaa.templte)s_csaa.linkTrackEvents=s_csaa.templte;
	  } else if (selectedLink == "mplp-navigation-membership") {
        var s_csaa=s_gi(s_account);
		s_csaa.templtv=s_csaa.linkTrackVars;
		s_csaa.templte=s_csaa.linkTrackEvents;
		s_csaa.linkTrackEvents='event10';
		s_csaa.tl(this,'o','mclpgetmore_JoinAAA_but');
		if(s_csaa.templtv)s_csaa.linkTrackVars=s_csaa.templtv;
		if(s_csaa.templte)s_csaa.linkTrackEvents=s_csaa.templte;
      } else if (selectedLink == "mplp-navigation-travel") {
		var s_csaa=s_gi(s_account);
		s_csaa.templtv=s_csaa.linkTrackVars;
		s_csaa.templte=s_csaa.linkTrackEvents;
		s_csaa.linkTrackEvents='event10';
		s_csaa.tl(this,'o','mclpgetmore_PlanATrip_but');
		if(s_csaa.templtv)s_csaa.linkTrackVars=s_csaa.templtv;
		if(s_csaa.templte)s_csaa.linkTrackEvents=s_csaa.templte;
	  }

/* OMNTR TRACKING | mplp l-btns onClick | *** end ***/

		return false;

	});

	// | END DHTML CONTENT LOAD
	// ************************

	// ********************************
	// | BEGIN INSURANCE QUOTE LIGHTBOX

/* OMNTR TRACKING | "Get a Quote" btn onClick/onLoad | -PV | 6/3/2009 | *** begin ***/
/*** Defect: onClick and onLoad as events are not captured separately ***/

    jQuery('#mplp-content-insurance a.mplp-ctaLink').click(function(){
      // ------------ onClick vars submit ------------
	  var s_csaa=s_gi(s_account);
	  s_csaa.templte=s_csaa.linkTrackEvents;
	  s_csaa.linkTrackEvents='event10';
	  s_csaa.linkTrackVars='events,products';
	  s_csaa.tl(this,'o','mclpgetmore_GetAQuote_but');
	  if(s_csaa.templtv)s_csaa.linkTrackVars=s_csaa.templtv;
	  if(s_csaa.templte)s_csaa.linkTrackEvents=s_csaa.templte;
	  // ------------ onLoad vars submit ------------
	  OTRvariables["pageName"] = "Campaign:Insurance:multi-channel-lp-getmore-leadform";
	  OTRvariables["channel"] = "Campaign";
	  send_omniture_tags();
    });

/* OMNTR TRACKING | "Get a Quote" btn onClick/onLoad | *** end ***/

    jQuery('#mplp-content-insurance a.mplp-ctaLink').attr({
		href: "#TB_inline?width=535&amp;height=550&amp;inlineId=mplp-GetAQuote&amp;modal=false"
	}).addClass('thickbox');
    tb_init('#mplp-content-insurance a.mplp-ctaLink');
	
	// | END INSURANCE QUOTE LIGHTBOX
	// ******************************


	// ****************************
	// | BEGIN MAIN FORM VALIDATION

/* Example of AJAX submit

		// show a simple loading indicator
		var loader = jQuery('<div id="loader"><img src="images/loading.gif" alt="loading..." /></div>')
			.css({position: "relative", top: "1em", left: "25em"})
			.appendTo("body")
			.hide();
		jQuery().ajaxStart(function() {
			loader.show();
		}).ajaxStop(function() {
			loader.hide();
		}).ajaxError(function(a, b, e) {
			throw e;
		});
		
		var v = jQuery("#form").validate({
			submitHandler: function(form) {
				jQuery(form).ajaxSubmit({
					target: "#result"
				});
			}
		});

 */

	// Add a container for the error summary
	jQuery('#form-ScheduleACall h4').after('<div class="ncnu-error-summary" id="form-ScheduleACall-errorContainer"><p class="ncnu-error-inline">Please correct the following errors:</p><ul id="form-ScheduleACall-errorLabelContainer"></ul></div>');

	// Show a simple loading indicator during AJAX submit
	var loader = jQuery('<div id="loader" style="border: solid green 3px;"><img src="images/loading.gif" alt="loading..." /></div>')
		.css({position: "relative", top: "1em", left: "25em"})
		.appendTo("body")
		.hide();
	jQuery().ajaxStart(function() {
		loader.show();
	}).ajaxStop(function() {
		loader.hide();
	}).ajaxError(function(a, b, e) {
		throw e;
	});

	// Configure validation
	jQuery('#form-ScheduleACall').validate({
		errorClass: 'ncnu-error-inline',
		errorContainer: jQuery("div#form-ScheduleACall-errorContainer"),
		errorLabelContainer: jQuery("ul#form-ScheduleACall-errorLabelContainer"),
		// Need highlight/unhighlight functions to add error class to labels
		highlight: function(element, errorClass) {
			jQuery(element).addClass(errorClass);
			jQuery(element.form).find("label[for=" + element.id + "]").addClass(errorClass);
		},
		unhighlight: function(element, errorClass) {
			jQuery(element).removeClass(errorClass);
			jQuery(element.form).find("label[for=" + element.id + "]").removeClass(errorClass);
		},
		messages: {
			'00NR0000000Hw5Z': "Product of Interest is required",
			'first_name': "First Name is required",
			'last_name': "Last Name is required",
			'street': "Address is required",
			'state': "State/Province is required",
			'zip': {
				digits: "Please use only numbers for the ZIP code",
				maxlength: "Length of ZIP code should not be greater than 5 digits",
				minlength: "Length of ZIP code should not be less than 5 digits",
				required: "Zip Code is required",
				ZipcodeInFootprint: "Did you enter your Zip Code correctly? If so, it appears that you are outside our club\'s Northern California, Nevada & Utah territory. Please <a href=\"http://www.aaa.com?ZipCodeEdit=\">visit your local AAA club</a> to discover what benefits AAA has to offer in your area."
			},
			'phone': {
				required: "Phone is required",
				phone: "Please enter a valid phone number, ex. 415-555-1212"
			},
			'email': {
				required: "Email is required",
				email: "Email must be in the format of name@domain.com"
			},
			'00N40000001rFWI': "Best Time to Call is required"
		},
		rules: {
			'00NR0000000Hw5Z': "required",
			'first_name': "required",
			'last_name': "required",
			'street': "required",
			'state': "required",
			'zip': {
				digits: true,
				maxlength: 5,
				minlength: 5,
				required: true,
				ZipcodeInFootprint: true
			},
			'phone': { required: true, phone: true },
			'email': { required: true, email: true },
			'00N40000001rFWI': "required"
		},
		submitHandler: function(form) {
/* OMNTR TRACKING | "Schedule It" onClick | -PV | 6/2/2009 | *** begin ***/
              var s_csaa=s_gi(s_account);
              s_csaa.templtv=s_csaa.linkTrackVars;
              s_csaa.events='event10';
              s_csaa.products='c3_insurance_mclp-getmore-form-submit';
              s_csaa.templte=s_csaa.linkTrackEvents;
              s_csaa.linkTrackEvents='event10';
              s_csaa.linkTrackVars='events,products';
              s_csaa.tl(this,'o','mcform_ScheduleIt_but');
              if(s_csaa.templtv)s_csaa.linkTrackVars=s_csaa.templtv;
              if(s_csaa.templte)s_csaa.linkTrackEvents=s_csaa.templte;
/* OMNTR TRACKING | "Schedule It" onClick | *** end ***/							
			jQuery(form).ajaxSubmit({
				target: "#actions-GetAQuote"
			});
		}
	});

	// | END MAIN FORM VALIDATION
	// **************************

	// ***********************************
	// | BEGIN ONLINE QUOTE FORM SHOW/HIDE

	// Hide the online quote form by default
	$onlineQuote = jQuery('#onlineQuote');
	$onlineQuote.hide();

	// Add links to expand the form
	jQuery('div#onlineQuote-toggle').wrapInner('<a class="onlineQuote-toggle"></a>');
	jQuery('div#onlineQuote-toggle').prepend('<a class="onlineQuote-toggle"><img alt="[Expand Form]" height="11" id="onlineQuote-toggle-icon" src="../resources/images/icons/ico_Expand.gif" width="11" /></a>');

	// Enable the links to toggle the form open/closed on click
	jQuery('a.onlineQuote-toggle').hover(
		function(){
			jQuery('body').css({ cursor: "pointer" });
		},
		function(){
			jQuery('body').css({ cursor: "default" });
		}
	).click(function(){
		if ($onlineQuote.is(':visible')) {
			jQuery('#onlineQuote-toggle-icon').attr({ src: "../resources/images/icons/ico_Expand.gif" });
			$onlineQuote.hide();
		} else {
			jQuery('#onlineQuote-toggle-icon').attr({ src: "../resources/images/icons/ico_Collapse.gif" });
			$onlineQuote.show();
			jQuery('input#onlineZipCode').blur();
		}
	});
	// | END ONLINE QUOTE FORM SHOW/HIDE
	// *********************************




	// ************************************
	// | BEGIN ONLINE QUOTE FORM VALIDATION

	jQuery('#form-OnlineQuote').submit(function(){

		if (tqs_validateZipcode('onlineZipCode')) {
			var submitZipCode = jQuery('#onlineZipCode').val();
			// CA is the default form action
			if (parseInt(submitZipCode) > 84000 && parseInt(submitZipCode) < 84792) { // UT
				jQuery(this).attr({ action: 'https://www.aaa4insurance.com/quote/default.aspx?clubcode=204036' });
			} else if (parseInt(submitZipCode) > 88900 && parseInt(submitZipCode) < 89884) { // NV
				jQuery(this).attr({ action: 'https://www.aaa4insurance.com/quote/default.aspx?clubcode=204720' });
			}
			return true;
		} else {
			return false;
		}

	});

	// | END ONLINE QUOTE FORM VALIDATION
	// **********************************




	// **********************************
	// | BEGIN OMNITURE OUTBOUND TRACKING

	jQuery('#btn_JoinNow').click(function(){
		var s_csaa=s_gi(s_account);
		s_csaa.templtv=s_csaa.linkTrackVars;
		s_csaa.templte=s_csaa.linkTrackEvents;
		s_csaa.linkTrackEvents='event10';
		s_csaa.linkTrackVars='events,products';
		s_csaa.tl(this,'o','mclpgetmore_JoinNow_but');
		if(s_csaa.templtv)s_csaa.linkTrackVars=s_csaa.templtv;
		if(s_csaa.templte)s_csaa.linkTrackEvents=s_csaa.templte;
/*
window.location='https://www.csaa.com/portal/site/CSAA/menuitem.8e981a33b0fbf0ae785f5a7092278a0c?vgnextoid=519eecbfcb82a010VgnVCM1000002872a8c0RCRD;'
		return false;
*/
	});

	jQuery('#btn_BookNow').click(function(){
		var s_csaa=s_gi(s_account);
		s_csaa.templtv=s_csaa.linkTrackVars;
		s_csaa.templte=s_csaa.linkTrackEvents;
		s_csaa.linkTrackEvents='event10';
		s_csaa.linkTrackVars='events,products';
		s_csaa.tl(this,'o','mclpgetmore_BookNow_but');
		if(s_csaa.templtv)s_csaa.linkTrackVars=s_csaa.templtv;
		if(s_csaa.templte)s_csaa.linkTrackEvents=s_csaa.templte;
/*	window.location='http://www.csaa.com/portal/site/CSAA/menuitem.42335b4f7ceefaeebd111e1692278a0c/?vgnextoid=4bf01325073b7010VgnVCM1000002872a8c0RCRD;'"
		return false;
*/
	});

	// | END OMNITURE OUTBOUND TRACKING
	// ********************************

});
