﻿$(function () {
	// IE content box rounding
	if ($.browser.msie) {
		$(".content-box")
			.addClass("content-box-js")
			.before("<div class='content-box-top'></div>")
			.after("<div class='content-box-bot'></div>");
	}

	// Google Anayltics Page Tracking
	(function () {
		var config = {
			baseUrl: "www.google-analytics.com/urchin.js"
		};
		$.getScript(document.location.protocol + "//" + config.baseUrl, function () {
			_uacct = "UA-3263907-3";
			urchinTracker();
		});
	})();

	// Flash video Initialization
	(function () {
		var config = {
			instances: [
				{
					container: "landing-swf-1",
					filepath: "/images/meridian/banners/5374_2greatOptions_Home_523x260.swf",
					width: 423,
					height: 260
				},
				{
					container: "mortgage-swf",
					filepath: "/images/meridian/banners/5374_2greatOptions_595x209.swf",
					width: 595,
					height: 209
				},
				{
					container: "oasa-swf",
					filepath: "/images/meridian/banners/5374_SWEEP_595x255.swf",
					width: 595,
					height: 255
				}
			]
		};
		$(config.instances).each(function () {
			if ($("#" + this.container).length > 0) {
				swfobject.embedSWF(this.filepath, this.container, this.width, this.height, "9.0.0", "expressInstall.swf", null, { wmode: "opaque" });
			}
		});
	})();

	// Modal Anchors
	(function () {
		$(".modal-activator").click(function (e) {
			e.preventDefault();
			window.open($(this).attr("href"), 'modal', 'width=1024,height=700,resizable=no,scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no');
		});
	})();

	// Mortgage Glossary
	(function () {
		var config = {
			glossarySelector: "#glossary",
			activatorSelector: "#glossary-top a",
			definitionsSelector: "#glossary-mid .definitions",
			activeClass: "active"
		};
		var glossary = $(config.glossarySelector);
		if ($(glossary).length > 0) {
			$(config.activatorSelector, $(glossary)).click(function (e) {
				var letter = $(this).html().toLowerCase();
				e.preventDefault();
				$(config.definitionsSelector, $(glossary)).removeClass(config.activeClass);
				$(config.definitionsSelector + "." + letter, $(glossary)).addClass(config.activeClass);
			});
		}
	})();

	// Round Corners
	(function () {
		var config = {
			containerSelector: ".rounded",
			topClass: "top-rounded",
			bottomClass: "bot-rounded",
			ieClass: "ie"
		};
		var isIE = $.browser.msie;
		var containers = $(config.containerSelector);
		if ($(containers).length > 0) {
			if (isIE) {
				$(containers).before("<img src='/images/meridian/full-width-border-top.gif' width='565' height='8' alt='' class='faq-round-ie' />");
				$(containers).after("<img src='/images/meridian/full-width-border-bottom.gif' width='565' height='8' alt='' class='faq-round-ie' />");
				$(containers).addClass(config.ieClass);
			} else {
				$(containers).addClass(config.topClass);
				$(containers).addClass(config.bottomClass);
			}
		}
	})();

	meridian.general.faq.init();
	meridian.general.banners.init();
});
meridian = {};
meridian.general = {};
meridian.general.faq = function () {
	var isIE = $.browser.msie;
	var config = {
		listSelector: ".collapsible-list",
		questionSelector: ".faq-q",
		answerSelector: ".faq-a",
		ieTopClass: "faq-q-top",
		ieBottomClass: "faq-bot-ie",
		topClass: "top-rounded",
		bottomClass: "bot-rounded",
		expandedClass: "faq-q-expanded"
	};
	init = function () {
		$(config.listSelector).each(function () {
			var $firstQuestion = $(config.questionSelector + ":first", $(this));
			var $lastQuestion = $(config.questionSelector + ":last", $(this));
			var $lastAnswer = $(config.answerSelector + ":last", $(this));

			// hide all answers (so they still show up without js turned on
			$(config.answerSelector, $(this)).hide();

			// add rounding to 1st and last question			
			if (isIE) {
				$(this).css("padding-top", "8px");
				if ($(this).closest("#content-full").length === 1 || $(this).closest("#content-full-width-cont").length === 1 || $(this).hasClass("full")) {
					$firstQuestion.addClass(config.ieTopClass).before("<img src='/images/meridian/full-width-border-top.gif' width='565' height='8' alt='' class='faq-round-ie' />");
					$lastAnswer.after("<img src='/images/meridian/full-width-border-bottom.gif' width='565' height='8' alt='' class='faq-round-ie' />");
				}
				else {
					$firstQuestion.addClass(config.ieTopClass).before("<img src='/images/meridian/faq_top.gif' width='359' height='8' alt='' class='faq-round-ie' />");
					$lastAnswer.after("<img src='/images/meridian/faq_bot.gif' width='359' height='8' alt='' class='faq-round-ie' />");
				}
			} else {
				$firstQuestion.addClass(config.topClass);
				$lastQuestion.addClass(config.bottomClass);
			}
		});

		// toggle
		$(config.questionSelector).click(function () {
			var $parent = $(this).closest(config.listSelector);
			var $lastQuestion = $(config.questionSelector + ":last", $parent);
			var $lastAnswer = $(config.answerSelector + ":last", $parent);

			$(this).toggleClass(config.expandedClass).next(config.answerSelector).toggle();
			// round last question or answer
			if (isIE) {
				if ($lastAnswer.is(":visible")) {
					$lastQuestion.removeClass(config.ieBottomClass);
					$lastAnswer.addClass(config.ieBottomClass);
				} else {
					$lastQuestion.addClass(config.ieBottomClass);
					$lastAnswer.removeClass(config.ieBottomClass);
				}
			} else {
				if ($lastAnswer.is(":visible")) {
					$lastQuestion.removeClass(config.bottomClass);
					$lastAnswer.addClass(config.bottomClass);
				} else {
					$lastQuestion.addClass(config.bottomClass);
					$lastAnswer.removeClass(config.bottomClass);
				}
			}
			return false;
		});
	};
	return { config: config, init: init };
} ();

meridian.general.banners = function () {
	var current_banner_index = 0;
	var banner_count = 0;
	var rotation_index = 1;
	var timer_id = null;
	var config = {
		interval: 6000,
		fade_duration: 600,
		show_skip_buttons: true,
		max_rotations: 20
	};
	init = function () {
		banner_count = $("#banners > *").length;

		if (banner_count > 1) {
			var lastClass = $("#banners").attr('class').split(' ').slice(-1);
			if (!isNaN(lastClass)) {
				config.interval = lastClass * 1;
			}

			var starting_index = 0;
			current_banner_index = starting_index;
			loadBanners();

			$("#banner-cont")
				.append("<div class=\"button-cont\"><a href=\"#\" class=\"prev\"><span>Previous<\/span><\/a><a href=\"#\" class=\"next\"><span>Next<\/span><\/a><\/div>");

			$(".prev").click(function () { prev(); });
			$(".next").click(function () { next(); });
		}
	};
	prev = function () {
		loadBanners();
		decrement_index();
	};
	next = function () {
		increment_index();
		loadBanners();
	};
	increment_index = function () {
		++current_banner_index;
		if (current_banner_index >= banner_count) {
			current_banner_index = 0;
		}
	};
	decrement_index = function () {
		--current_banner_index;
		if (current_banner_index < 0) {
			current_banner_index = banner_count - 1;
		}
	};
	check_max_rotations = function () {
		var is_active = rotation_index < config.max_rotations;
		if (!is_active) { clearInterval(timer_id); }
		return is_active;
	};
	loadBanners = function () {
		if (timer_id !== null) {
			clearInterval(timer_id);
			$("#banner").animate({ opacity: 0.0 }, config.fade_duration, function () {
				loadBanner(current_banner_index, true);
			});
		}
		timer_id = setInterval(function () {
			if (!check_max_rotations()) { return false; }
			$("#banner").animate({ opacity: 0.0 }, config.fade_duration, function () {
				increment_index();
				++rotation_index;
				loadBanner(current_banner_index, true);
			});

		}, meridian.general.banners.config.interval);
	};
	loadBanner = function (bannerIndex, animate) {
		$("#banner").html($("#banners > *:eq(" + (bannerIndex) + ")").clone());
		if (animate === true) {
			$("#banner").animate({ opacity: 1.0 }, config.fade_duration);
		}
	};
	return { config: config, init: init };
} ();

