
$.validator.messages.required = '';
$.validator.messages.email = '';

var defaultFastContactText = 'Type your message here...',

ddmenu = {
	timeout: 350,
	closetimer: 0,
	ddmenuitem: 0,

	open: function() {
		ddmenu.canceltimer();
		ddmenu.close();
		ddmenu.ddmenuitem = $(this).find('ul').css('visibility', 'visible');
	},

	close: function() {
		if (ddmenu.ddmenuitem) ddmenu.ddmenuitem.css('visibility', 'hidden');
	},

	timer: function() {
		ddmenu.closetimer = window.setTimeout(ddmenu.close, ddmenu.timeout);
	},

	canceltimer: function() {
		if (ddmenu.closetimer){
			window.clearTimeout(ddmenu.closetimer);
			ddmenu.closetimer = null;
		}
	}
},

fcontact_options = {
	errorContainer: "div.fcontact_validationErrorMsg",
	rules: {
		'fcontact_name': { required: true },
		'fcontact_email': { required: true, email: true },
		'fcontact_subject': { required: true },
		'fcontact_message': { required: true }
	}
},

comment_options = {
	errorContainer: "div.comment_validationErrorMsg",
	rules: {
		'author': { required: true },
		'email': { required: true, email: true },
		'comment': { required: true }
	}
},

labelRequest_options = {
	errorContainer: "div.requestForm_validationErrorMsg",
	rules: {
		'lr_firstname': { required: true },
		'lr_lastname': { required: true },
		'lr_title': { required: true },
		'lr_email': { required: true, email: true },
		'lr_phone': { required: true },
		'lr_company': { required: true },
		'lr_address1': { required: true },
		'lr_city': { required: true },
		'lr_state': { required: true },
		'lr_zip': { required: true }
	}
},

invoiceReduction_options = {
	errorContainer: "div.invredForm_validationErrorMsg",
	rules: {
		'ir_firstname': { required: true },
		'ir_lastname': { required: true },
		'ir_title': { required: true },
		'ir_email': { required: true, email: true },
		'ir_company': { required: true },
		'ir_account': { required: true },
		'ir_option': { required: true }
	}
},

// poll options
pollsL10n = {
	ajax_url: "http://green.honblue.com/wp/wp-content/plugins/wp-polls/wp-polls.php",
	text_wait: "Your last request is still being processed. Please wait a while ...",
	text_valid: "Please choose a valid poll answer.",
	text_multiple: "Maximum number of choices allowed: ",
	show_loading: "0",
	show_fading: "1"
};

// remove poll fading in IE due to opacity issues
if (typeof pollsL10n != 'undefined' && !$.support.opacity)
	pollsL10n.show_fading = '0';


function clearFastContact() {
	$("#fcontact_name, #fcontact_email, #fcontact_subject").val('');
	$("#fcontact_message").addClass('lighttext').val(defaultFastContactText);
}

$(function() {
	// calendar modifications
	$(".kjo-link, .calnk br").remove(); // remove <br>'s from event popup box
	// add line-spacing to calendar description
	$(".calnk span").contents().filter(function() {
		return this.nodeType == 3;
	}).wrap('<div></div>');
	$(".calnk > a > span").each(function() {
		var $div = $(this).find("div");
		$div.css({'display':'inline'});
		$div.last().wrap('<pre class="event-desc"></pre>');
	});
	$(".calnk a").attr('target', '_blank');

	// fancybox
	$("#biobox").fancybox();

	// submenus
	$("#menu_1, #menu_4").hover(ddmenu.open, ddmenu.timer);
	document.onclick = ddmenu.close;

	// fast contact form - comment box
	$("#fcontact_message")
		.bind("focus", function() {
			if ($.trim($(this).val()) === defaultFastContactText)
				$(this).val('').removeClass('lighttext');
		})
		.bind("blur", function() {
			var currentVal = $.trim($(this).val());
			if (currentVal === '' || currentVal === defaultFastContactText)
				$(this).addClass('lighttext').val(defaultFastContactText);
		});

	if ($.trim($("#fcontact_message").val()) !== defaultFastContactText)
		$("#fcontact_message").removeClass('lighttext');

	// fast contact form validation and submission
	$("#fast_contact_form").bind("submit", function() {
		if ($.trim($("#fcontact_message").val()) === defaultFastContactText)
			$("#fcontact_message").val('').removeClass('lighttext');
		$(this).validate(fcontact_options);
		var valid = $(this).valid(),
			$this = $(this);
		if (valid) {
			$.ajax({
				url: $this.attr('action'),
				type: 'POST',
				data: $this.serialize()+'&ajax=1',
				success: function(data) {
					if (data == '1') {
						clearFastContact();
						var $success = $("#fast_contact_success");
						$success.show();
						window.setTimeout(function() { $success.fadeOut();}, 3000);
					}
					else alert('Error: There was a problem sending your message. Please try again.');
				},
				error: function() {
					alert('Error: There was a problem sending your message. Please try again.');
				}
			});
		}
		return false;
	});

	// blog comment form validation
	$("#blog_comment_form").bind("submit", function() {
		$(this).validate(comment_options);
		var valid = $(this).valid();
		return valid;
	});

	// label request form validation
	$("#request_form").bind("submit", function() {
		var $form = $(this);
		$form.validate(labelRequest_options);
		if ( $form.valid() ) {
			$.ajax({
				url: $form.attr('action'),
				type: 'POST',
				dataType: 'json',
				data: $form.serialize()+'&ajax=1',
				success: function(data) {
					$form.animate({height:'toggle'}, 1000, 'swing', function() {
						$("#request_success").fadeIn();
					});
				},
				error: function() {
					alert('Error: the form could not be processed. Please try submitting again.');
				}
			});
		}
		return false;
	});

	// invoice reduction form validation
	$("#invred_form").bind("submit", function() {
		var $form = $(this);
		$form.validate(invoiceReduction_options);
		if ( $form.valid() ) {
			$.ajax({
				url: $form.attr('action'),
				type: 'POST',
				dataType: 'json',
				data: $form.serialize()+'&ajax=1',
				success: function(data) {
					$form.animate({height:'toggle'}, 1000, 'swing', function() {
						$("#invred_success").fadeIn();
					});
				},
				error: function() {
					alert('Error: the form could not be processed. Please try submitting again.');
				}
			});
		}
		return false;
	});

	// faq show/hide entries
	var $faq_list = $("#faq_list");
	if ($faq_list.length) {
		$faq_list.find(".answer").hide();
		$faq_list.find(".question").hover(
			function() { $(this).addClass("over"); },
			function() { $(this).removeClass("over"); }
		);
		$faq_list.find(".question").bind("click", function() {
			$(this).next(".answer").slideToggle();
		});
	}

	// makeup - remove margins from <p> with <a name="">
	$("a[name]").parent("p").css("margin", "0");


	// add-on restrictions on poll selection
	if ($("#polls_form_1").length) {
		var $options = $("#poll-answer-1, #poll-answer-2, #poll-answer-3, #poll-answer-4, #poll-answer-5"),
			$none = $("#poll-answer-6");
		$options.bind("click", function() {
			if ($options.is(':checked')) $none.removeAttr('checked');
		});
		$none.bind("click", function() {
			if ($(this).is(':checked')) $options.removeAttr('checked');
		});
	}
});
