jQuery(document).ready(function(){
								
		jQuery('.post_preview').toggle(
			function(){
				var element = jQuery(this);
				showPostPreview(element);									   
			},
			function(){
				var element = jQuery(this);
				hidePostPreview(element);									   
			}
		);
		jQuery('#GetInsForm').live('submit',function(e){
			var elemID = jQuery(this).attr('id');
			zipForm('#'+elemID);
			e.preventDefault();
		});
		init_basic_form_binding();
});

function showPostPreview(passedElement){
	var parentElementSiblings = passedElement.parent().siblings('.entry-content');
	passedElement.addClass('active');
	parentElementSiblings.children('p').fadeIn(200);
	
}

function hidePostPreview(passedElement){
	var parentElementSiblings = passedElement.parent().siblings('.entry-content');
	passedElement.removeClass('active');
	parentElementSiblings.children('p').fadeOut(200);
	
}

function init_basic_form_binding() {
	//fake radio button behvaior
	jQuery('.faux_radio').click(function(e){
		e.stopPropagation();
		var siblingRadios = jQuery(this).parents('label').find('.faux_radio');
		var checkedVal = jQuery(this).attr('title');
		jQuery(siblingRadios).removeClass("checked");
		jQuery(this).addClass("checked");
		jQuery(this).parent().siblings('.hidden').attr('value',checkedVal);
		if(jQuery(this).parent().parent().hasClass('errorField')){
			jQuery(this).parent().parent().removeClass('errorField').addClass('errorFixed');
		}
	});
	jQuery('input[type="radio"]').customInput();
	//give the submit button a hover state
	jQuery('#quick_submit, #form_submit_step2').hover(
		function(){
			jQuery(this).addClass('submit_over');
		},
		function(){
			jQuery(this).removeClass('submit_over');
		}
	);
	
	// prevent event propogation up to the form click
	jQuery('input, .faux_radio').not('.hidden').click(function(e){
		e.stopPropagation();
		jQuery('.faux_dropdown').each(function(){
			if(jQuery(this).hasClass('clicked')){
				jQuery(this).trigger('click');
			}
		});
	});
}

var formSubmitted = false;
// !!!WARNING!!! HEY YOU! READ THIS!
// !!!WARNING!!! HEY YOU! READ THIS!
// !!!WARNING!!! HEY YOU! READ THIS!
// function is mirrored in /wordpress/themes/news_and_articles/scripts/functions.js AND
// function is mirrored in /includes/FreeQuoteBody.php
function zipForm(formID){
	var isSenior = 0;
	
	switch(formID){
		case '#GetInsForm':
			var processing_container = '#quick-processing';
			var error_container = '#error_validate';
		break;
		case '#freeQuote_GetInsForm':
			var processing_container = '#freeQuote_quick-processing';
			var error_container = '#freeQuote_error_validate';
		break;
	}
	
	// this is step 1
	var isValid = jQuery(formID).validate({
		errorPlacement: function(error,element) { 
			return true; 
		},
		rules: {
			older_than_65: { required: true },
			zip: { required: true, minlength: 5, maxlength: 5, number: true }
		},
		highlight: function(element){
			var elemName = jQuery(element).attr('name');
			if(elemName == 'older_than_65') var elemParent = jQuery(element).parent().parent();
			else var elemParent = jQuery(element).parent();
			if(elemParent.hasClass('errorFixed')){
				elemParent.removeClass('errorFixed');
			}
			elemParent.addClass('errorField');
		},
		unhighlight: function(element){
			var elemName = jQuery(element).attr('name');
			if(elemName == 'older_than_65') var elemParent = jQuery(element).parent().parent();
			else var elemParent = jQuery(element).parent();
			if(elemParent.hasClass('errorField')){
				elemParent.removeClass('errorField');
			}
			elemParent.addClass('errorFixed');
		}
	}).form();
	
	if(isValid && !formSubmitted){
		formSubmitted = true;
		
		jQuery(processing_container).show();
		var data = 'ajax=1&step=0&'+jQuery(formID).serialize();
		var hioId = 0;
		var state = '';
		var qs = '';
		var resp = '';
	  	jQuery.ajax({
	  		async: false,
	  		type: "post",
	  		url: "index.php",
	  		dataType: "text",
	  		data: data,
	  		success: function(msg){
	  			resp = jQuery.evalJSON(msg);
	  			qs = 'zip='+resp.zip+'&state='+resp.state+'&senior='+resp.seniorLead;
	  			if(resp.error){
	  				isValid = false;
					jQuery(processing_container).hide();
	  				jQuery(error_container).html(resp.errormsg).show();
					if(resp.highlight != ""){
						if(resp.highlight == 'zip'){
							var elemParent = jQuery("input[name='zip']").parent();
							elemParent.addClass('errorField');	
							elemParent.removeClass('errorFixed');
						}
					}
	  			} else {
		  			hioId = resp.hio_id;
		  			isSenior = resp.seniorLead;
		  			state = resp.state;
		  			hn_state = resp.hn_state;
		  			if(resp.showListings>0){
//	  					isValid = false;
//	  					if(window.location.pathname.indexOf('/seniors/') >= 0){
//		  					window.location.href = '/seniors/listings.php?'+qs;
//	  					} else if(window.location.pathname.indexOf('/freequotes/') >= 0){
//		  					window.location.href = '/freequotes/listings.php?'+qs;
//	  					} else {
//		  					window.location.href = '/listings.php?'+qs;
//	  					}
	  					isValid = false;
	  					window.location.href=listingsPage+'?'+qs;
	  				} else if(resp.step2>0){
	  					jQuery(formID).attr("action",step1action);
	  				} else if(resp.thank_you){
	  					isValid = false;
	  					qs = 'Subreferrer='+resp.Subreferrer+'&HN_State='+hn_state+'&state='+state+'&senior='+resp.senior+'&hio_id='+resp.hio_id;
	  					window.location.href = step3action+'?'+qs;
	  				}
	  			}
	  		}
	  	});
	  	if(isValid){
	  		/*if(resp.iframe){
	  			//if(resp.track) jQuery.get(resp.track);
	  			formSubmitted = false; 
	  			jQuery.get('/includes/form_processing/insert_thirdparty_form.php', function(data){
					// jQuery for showing the third party form
		  				jQuery('#logo').after(data);
			  			if(resp.track) {
			  				//console.log(resp.track);
			  				jQuery('#third_party_iframe iframe').attr('src',resp.track).load(function(){zipForm_setIframe(resp.iframe, formID);});
			  			} else {
			  				zipForm_setIframe(resp.iframe, formID);
			  			}
		  			},"html");
		  	}*/
	  		//else {
	  			//if we are in the /seniors/ or /freequotes/ don't show the abandonment
	  			if(window.location.pathname.indexOf('/seniors/') == -1 && window.location.pathname.indexOf('/freequotes/') ==-1){
	  				if(resp.state != 'AZ' && resp.state != 'FL') {
	  		  			var popURL = step1action+'?'+qs;
	  		  			var popListings = window.open(popURL,'new_window','fullscreen=yes,toolbar=yes,location=yes, menubar=yes,status=yes,scrollbars=yes,resizable=yes');
	  				}
	  				//append query string if set
				  	if(qs){ window.location.href = '/listings_ab.php?'+qs; }
				  	else { window.location.href = '/listings_ab.php?'+qs; }
	  			}else {
	  				if(qs){ window.location.href = step1action+'?'+qs; }
				  	else { window.location.href = step1action+'?'+qs; }
	  			}
		  		
	  		//}
	  	} else {
	  		formSubmitted = false;
	  	}

	} else { //isValid = false;
		var inputSelectFields = jQuery('.errorField').children().children().filter('input,select');	
		if(inputSelectFields.length != 0) { inputSelectFields.first().focus(); }
	}
	return false;
}
/*-------------------------------------------------------------------------------------------------------------- */
jQuery.fn.customInput = function(){
	jQuery(this).each(function(i){	
		if(jQuery(this).is('[type=checkbox],[type=radio]')){
			var input = jQuery(this);
			
			// get the associated label using the input's id
			var label = jQuery('label[for='+input.attr('id')+']');
			
			//get type, for classname suffix 
			var inputType = (input.is('[type=checkbox]')) ? 'checkbox' : 'radio';
			
			// wrap the input + label in a div 
			jQuery('<div class="custom-'+ inputType +'"></div>').insertBefore(input).append(input, label);
			
			// find all inputs in this set using the shared name attribute
			var allInputs = jQuery('input[name='+input.attr('name')+']');
			
			// necessary for browsers that don't support the :hover pseudo class on labels
			label.hover(
				function(){ 
					jQuery(this).addClass('hover'); 
					if(inputType == 'checkbox' && input.is(':checked')){ 
						jQuery(this).addClass('checkedHover'); 
					} 
				},
				function(){ jQuery(this).removeClass('hover checkedHover'); }
			);
			
			//bind custom event, trigger it, bind click,focus,blur events					
			input.bind('updateState', function(){	
				if (input.is(':checked')) {
					if (input.is(':radio')) {				
						allInputs.each(function(){
							jQuery('label[for='+jQuery(this).attr('id')+']').removeClass('checked');
						});		
					};
					label.addClass('checked');
				}
				else { label.removeClass('checked checkedHover checkedFocus'); }
										
			})
			.trigger('updateState')
			.click(function(){ 
				jQuery(this).trigger('updateState'); 
			})
			.focus(function(){ 
				label.addClass('focus'); 
				if(inputType == 'checkbox' && input.is(':checked')){ 
					jQuery(this).addClass('checkedFocus'); 
				} 
			})
			.blur(function(){ label.removeClass('focus checkedFocus'); });
		}
	});
};
