/* Medica.com Javascript */
/* Medica IT, Software Development Team  */
/* M.Sandoval*/
/* This is the js library needed to load all js and jquery. */

jQuery(document).ready(function($){
	
	//Google Analytics Document Tracking
	$("a[href$='.pdf']")
	   .each(function()
	   {
		  $(this).attr("onclick", "_gaq.push(['_trackPageview', '" + $(this).attr('href') + "']);")
	   });
	$("a[href$='.doc']")
	   .each(function()
	   {
		  $(this).attr("onclick", "_gaq.push(['_trackPageview', '" + $(this).attr('href') + "']);")
	   });
	$("a[href$='.xls']")
	   .each(function()
	   {
		  $(this).attr("onclick", "_gaq.push(['_trackPageview', '" + $(this).attr('href') + "']);")
	   });
	
	// CSR Links off by default - Check later if Logged in to render.
	$('#ulAcctMgmt').hide();
	$('#ulLogOut').hide();
	
	//Checks if leftNav exists on internal. full Width if not.
	if ($('.internalPage').length >= 1) {
		if ($('#leftNav div').length == 0) {
			$('#main').addClass('pageWide');
			$('#leftNav').remove();
		}
	};
	
	//Sitemap
	//Load Sitemap from External File
	loadSitemap(window.location.hostname);
	
	// Set Sitemap toggle
	$('#sitemapToggle a').click(function() {
		if ($(this).hasClass('isClosed')) {
			$(this).removeClass('isClosed');
			$(this).html('close navigation');
		} else {
			$(this).addClass('isClosed');
			$(this).html('open navigation');
		}
		$('#sitemap').slideToggle('fast', function() {
		    //nothing
		 });
		return false;
	});
	
	//Feedback 
	if ($('#isFeedback').length) {
		$('#isFeedback').css('display','inline');
		$('#isFeedback a').attr('href','//portal.medica.com/Common/Feedback');
	}
	
	//Change Market Dropdown
	$('#subSegment a.goTrigger').click(function() {
		var triggerURL = $('#marketSelect option:selected').val();
		if (triggerURL != 'none') {
			location.href=triggerURL;
			return false;
		} else {
			return false;
		};
	});
	
	//Logo Link 
		$('#logo h1').click(function(){
			location.href='//www.medica.com?ref=Logo'
		});
	
	//update errors /* fix */
	$('div[style~="red"] p').attr('style','color:red');
	
	//Global Search
	if ($.browser.msie) {
		//placeholder Replacement
		$('#medicaSearchTerm').val('search');
		$('#medicaSearchTerm').css('color','#888');
		$('#medicaSearchTerm').focus(function() {
		  if ($(this).val() == 'search') {
				$(this).val('');
				$(this).css('color','#000');
			}
		});
		$('#medicaSearchTerm').blur(function() {
		  if ($(this).val() == '') {
				$(this).val('search');
				$(this).css('color','#888');
			}
		});
	};
	//search on return
	$('#medicaSearchTerm').keyup(function(event) {
		var searchTerm = $('#medicaSearchTerm').val();
	  if (event.keyCode == '13') {
	     event.preventDefault();
		 if (searchTerm != '' && searchTerm != 'search') {
			location.href= '//www.medica.com/search.aspx?searchwidget=key&k=' + searchTerm;
			return false;
		} else {
			return false;
		}
	   }
	});
	//search on click
	$('#widgetSearch a.goTrigger').click(function() {
		var searchTerm = $('#medicaSearchTerm').val();
		if (searchTerm != '' && searchTerm != 'search') {
			location.href= '//www.medica.com/search.aspx?searchwidget=click&k=' + searchTerm;
			return false;
		} else {
			return false;
		}
	});
	
	//Content width with sidebar, force on IE by adding class
	if ($('#sidebar').length) {
		$('#content').addClass('withSidebar');
	};
	
	//pageSegmentTitle
	setLocalNav(window.location.hostname);
	
	//Fix h1 to move to top
	setHeaderFromStandardTitle();
	
	/* Homepage Random Banner */
	if ($('#homeBanner').length) {
		var homeBannerImg = ['homepageHeading.1.jpg','homepageHeading.2.jpg']; //image array. Files only.
		//Set bg.
		$('#homeBanner').css({'background-image': 'url(/_medicaLayouts/1033/i/' + homeBannerImg[Math.floor(Math.random() * homeBannerImg.length)] + ')'});
	}
	
	/* Rotator Stuff (jQuery.cycle)*/
	/* Checks if #rotator exists */
	if ($('#rotator').length) {
		$('#rotator').cycle({ 
				fx:'fade', 
				speed:1200, 
				fastOnEvent:200,
				timeout:8000,
			    autostop: 1,
			    /*autostopCount: 4,*/
				random: 0,
				pager:  '#rotatorSlides'
		});
		$('#rotatorSlides a').click(function() {
			$('#rotator').cycle('pause');
		})
		$('#pauseRotator').click(function() {
			$('#rotator').cycle('toggle');
		});
		
		if ($('#wrapper.internalPage').length) {
			$('#wrapper').removeClass('internalPage');
		}
	};
	
	//CSR Links on Utility Area
	if ($('#csrLinks div a').length >= 1) {
		getcsrLinkValues();
	};
	
	/*Lightbox for GetStarted */
	$('.gsTrigger').click(function() {
		var gsCoverageGateways = $('#getCoverageGateways ul').html();
		$('#gsOptions h3').after('<ul>' + gsCoverageGateways + '</ul>');
		$('#gsOptions').lightbox_me({
			centered:true,
			overlayCSS:{background:'black',opacity:.7},
			onClose: function() {$('#gsOptions ul').remove();}
		});
		return false;
	});
	
	/*Dialog jQueryUI for GetStarted */
	$('.modalTrigger').click(function() {
		var gsCoverageGateways = $('#getCoverageGateways ul').html();
		$('#optionsDialog').append('<ul>' + gsCoverageGateways + '</ul>');
		$('#optionsDialog').dialog({
			modal:true,width:'auto',minWidth:200,maxWidth:640,minHeight:120,maxHeight:480,resizable:false,
			close:function(){$('#optionsDialog ul').remove();}
		});
		return false;
	});
	
	//fix brokerlink 100% height
	$('.brokerLink iframe').attr('height','99.9%');
	
	//fix search page labels 
	$('.searchPage td.ms-WPBorder td td[align="right"] span').attr('style','width:80px; display:block;');
	
	//fix for Eligibility Inquiry
	$('#ctl00_contentView_EIResultsPanel').attr('style', '');
	
	//Equalize heights of tables within two-col layout.
	$.each($('.twoColumnWrapper'), function() {
		var max=0;
		headHeight = $('.productGrid thead tr').height();
		$.each($(this).children('div').children('table'), function(i,obj) {
			$(this).children('div').children('table').children
			thisHeight=$(obj).height();
			if (thisHeight>max) {
				max=thisHeight;
			}
		});
		$(this).children('div').children('table').height(max);
		$('.productGrid thead tr').height(headHeight);
	});
	
	//Toggle function
	var toggleContainers = $(".toggleDiv");
	var toggleTriggers = $(".toggleDiv .trigger");
	$(toggleTriggers).click(function() {
		if ($(this).siblings("div").is(":hidden")) {
			$(this).siblings("div").show();
			$(this).addClass("triggered");
		} else {
			$(this).siblings("div").hide();
			$(this).removeClass("triggered");
		}
	});
	
	//jQuery Twitter Feed Call, Structure, Render
	if ($('#newsEvents').length) {
		if ($('#newsEvents h3').html() === "Twitter Updates") {
			$('#newsEvents h3').after('<div id="liveTweets"><ul></ul></div>');
			$('#liveTweets ul').liveTwitter('from:Medica4Me', {mode:'search',replies:false,retweets:true,limit:4,rate:4000000,refresh:false,timeLinks:true,forceHTTPS:true,errorLine:'Our Twitter feed is currently unavailable.'});
		} else {
			$('#newsEvents h3').after('<!-- feeds will be here -->');
		};
	};
	
	//Add Social badges
	if ($('#legal').length) {
		$('#legal ul').remove();
		loadFooter(window.location.hostname);
	}

	//For QA Only... Convert Links to QA Links.
	convertLinksToQA(window.location.hostname);
});

function getcsrLinkValues() {
	$('#ulAcctMgmt a').attr('href', $('#csrLinks div:first a').attr('href')); //gets href
	$('#ulAcctMgmt a').html($('#csrLinks div:first a').html()); //gets label
	$('#ulAcctMgmt').show(); //displays
	$('#ulLogOut a').attr('href', $('#csrLinks div:last a').attr('href')); //gets href
	//$('#ulLogOut a').html($('#csrLinks div:last a').html()); //gets label
	$('#ulLogOut').show(); //displays
}

function setHeaderFromStandardTitle() {
	if ($('.StandardTitle').length >= 1) {
		$('#main').prepend('<h1>' + $(".StandardTitle").html() + '</h1>');
		$(".StandardTitle").remove();
	}
	if ($('#contentWrapper h1').length >= 1) {
		$('#main').prepend('<h1>' + $("#contentWrapper h1").html() + '</h1>');
		$("#contentWrapper h1").remove();
	}
}

function brokerNavigation(currentPath) {
	var urlClass = '';
	var urlPath = '';
	var urlFound = false;
	$.ajax({
		type: "GET",
		url: "/_medicaLayouts/1033/nav/brokerPages.xml?updated=20110823-001",
		dataType: "xml",
		success: function(xml) {
			$(xml).find('url').each(function(){
				urlClass = $(this).attr('class');
				urlPath = $(this).text();
				if (currentPath.toLowerCase() == urlPath.toLowerCase()) {
					$('.isBroker'+urlClass+'').show();
					$('#subSegment').show();
					setSegmentTitle(urlClass + " Brokers");
					urlFound = true;
				}
			});
		},
		complete: function() {
			if(!urlFound) {
				$('.isBrokerCommercial').show();
				$('#subSegment').show();
				setSegmentTitle("Commercial Brokers");
			}
		}
	});
}


function visitorNavigation(currentPath) {
	var urlClass = '';
	var urlPath = '';
	var urlFound = false;
	$.ajax({
		type: "GET",
		url: "/_medicaLayouts/1033/nav/visitorPages.xml?updated=20110912-001",
		dataType: "xml",
		success: function(xml) {
			$(xml).find('url').each(function(){
				urlClass = $(this).attr('class');
				urlPath = $(this).text();
				if (currentPath.toLowerCase() == urlPath.toLowerCase()) {
					if (urlClass == 'csr') {
						$('#leftNav').remove();
						$('#main').addClass('pageWide');
					} else {
					$('#leftNav .isVisitor'+urlClass+'').show();
					}
					urlFound = true;
				}
			});
		},
		complete: function() {
			if (!urlFound) {
				$('#leftNav .isVisitorShared').show();
			}
		}
	});
}


function memberNavigation(currentPath) {
	var urlClass = '';
	var urlPath = '';
	var urlFound = false;
	$.ajax({
		type: "GET",
		url: "/_medicaLayouts/1033/nav/memberPages.xml?updated=20110905-001",
		dataType: "xml",
		success: function(xml) {
			$(xml).find('url').each(function(){
				urlClass = $(this).attr('class');
				urlPath = $(this).text();
				if (currentPath.toLowerCase() == urlPath.toLowerCase()) {
					$('#leftNav .isMember'+urlClass+'').show();
					urlFound = true;
				}
			});
		},
		complete: function() {
			if (!urlFound) {
				$('#leftNav .isMemberShared').show();
			}
		}
	});
}

function loadSitemap(thisHost) {
	switch(thisHost)
	{
		case 'portal.medica.com':
			$('#sitemap').load('/Content/nav/sitemap.html');
			break;
		case 'portalqa.medica.com':
			$('#sitemap').load('/Content/nav/sitemap.html');
			break;
		case 'medica2.medica.com':
			$('#sitemap').load('/js/nav/sitemap.html');
			break;
		case 'medica2qa.medica.com':
			$('#sitemap').load('/js/nav/sitemap.html');
			break;
		default:
			$('#sitemap').load('/_medicaLayouts/1033/nav/sitemap.html');
			break;
	}
}

function loadFooter(thisHost) {
	//$('#legal').load('/_medicaLayouts/1033/nav/footer.html');
	switch(thisHost)
	{
		case 'portal.medica.com':
			$('#legal').load('/Content/nav/footer.html');
			break;
		case 'portalqa.medica.com':
			$('#legal').load('/Content/nav/footer.html');
			break;
		case 'medica2.medica.com':
			$('#legal').load('/js/nav/footer.html');
			break;
		case 'medica2qa.medica.com':
			$('#legal').load('/js/nav/footer.html');
			break;
		default:
			$('#legal').load('/_medicaLayouts/1033/nav/footer.html');
			break;
	}
}

function setLocalNav(thisHost) {
	var segmentNameH = $('#segmentName h2');
	var currentPathName = location.pathname;
	$('#leftNav .portalWide').hide();
	switch (thisHost)
	{
	case 'provider.medica.com':
		setSegmentTitle("Providers");
		$('#leftNav .isProvider').show();
		$('#utilityLinks .noProvider').hide();
		break;
	case 'providerqa.medica.com':
		setSegmentTitle("Providers");
		$('#leftNav .isProvider').show();
		$('#utilityLinks .noProvider').hide();
		break;
	case 'employer.medica.com':
		setSegmentTitle("Employers");
		$('#leftNav .isEmployer').show();
		$('#utilityLinks .noEmployer').hide();
		break;
	case 'employerqa.medica.com':
		setSegmentTitle("Employers");
		$('#leftNav .isEmployer').show();
		$('#utilityLinks .noEmployer').hide();
		break;
	case 'broker.medica.com':
		if (location.pathname == '/default.aspx') {
			segmentNameH.html("Brokers");
		}
		brokerNavigation(currentPathName);
		$('#utilityLinks .noBroker').hide();
		break;
	case 'brokerqa.medica.com':
		if (location.pathname == '/default.aspx') {
			segmentNameH.html("Brokers");
		}
		brokerNavigation(currentPathName);
		$('#utilityLinks .noBroker').hide();
		break;
	case 'member.medica.com':
		setSegmentTitle("Members");
		memberNavigation(currentPathName);
		$('#utilityLinks .noMember').hide();
		break;
	case 'memberqa.medica.com':
		setSegmentTitle("Members");
		memberNavigation(currentPathName);
		$('#utilityLinks .noMember').hide();
		break;
	case 'www.medica.com':
 		setSegmentTitle("&nbsp;");
		visitorNavigation(currentPathName);
		$('#utilityLinks .noVisitor').hide();
		break;
	case 'wwwqa.medica.com':
 		setSegmentTitle("&nbsp;");
		visitorNavigation(currentPathName);
		$('#utilityLinks .noVisitor').hide();
		break;
	default:
		setSegmentTitle("&nbsp;");
		$('#leftNav .isVisitorShared').show();
		$('#utilityLinks .noVisitor').hide();
	}
}

function setSegmentTitle(titleName) {
	$('#segmentName h2').html(titleName);
}


function convertLinksToQA(hostName){
	if (hostName.indexOf("qa.medica") >=1 ) {
		$("a[href*='www.medica.com']")
		   .each(function()
		   { 
		      this.href = this.href.replace('www.', 
		         'wwwqa.');
		   });
		$("a[href*='provider.medica.com']")
		   .each(function()
		   { 
		      this.href = this.href.replace('provider.', 
		         'providerqa.');
		   });
		$("a[href*='member.medica.com']")
		   .each(function()
		   { 
		      this.href = this.href.replace('member.', 
		         'memberqa.');
		   });
		$("a[href*='employer.medica.com']")
		   .each(function()
		   { 
		      this.href = this.href.replace('employer.', 
		         'employerqa.');
		   });
		$("a[href*='broker.medica.com']")
		   .each(function()
		   { 
		      this.href = this.href.replace('broker.', 
		         'brokerqa.');
		   });
		$("a[href*='medica2.medica.com']")
		   .each(function()
		   { 
		      this.href = this.href.replace('medica2.', 
		         'medica2qa.');
		   });
		$("a[href*='portal.medica.com']")
		   .each(function()
		   { 
		      this.href = this.href.replace('portal.', 
		         'portalqa.');
		   });
	};
}

/*

//Checks how many children under csrLinks
$('#csrLinks').children().length;

//Checks to see whether there are <a> elements in div
$('#csrLinks div a').length

//Grabs href from first (accountMgmt) CSR link
$('#csrLinks div:first a').attr('href');

//Grabs href from last (logoff) CSR link
$('#csrLinks div:last a').attr('href');

*/


