var $doc = jQuery(document);
var $win = jQuery(window);

function boxSameHeight(element, target, extraSpacing){
	var $element = jQuery(element),
		$target = jQuery(target),
		calcHeight = $target.height() - extraSpacing;
	if (  $element.length > 0 &&  $target.length > 0 ){
		$element.height($target.height() - extraSpacing);
		for(var i=0; i<$element.length; i++){
			var $ele = jQuery($element[i]);
			if ($ele.height() !== $ele.outerHeight()){
				$ele.height(calcHeight);
			} else {
				$ele.height(calcHeight + 60);
			}
		}
	} else if ( $element.length > 0 && $target.length < 1 ) {
		$element.parents(".skLeft-Tabs").css({"width":"auto", "float": "none"});
	} else if ( $target.length > 0 && $element.length < 1 ) {
		$target.width({"width":"auto", "float": "none"});
	}
	
}

function topNavAlign(){
	var navArray = [],
		$nav = jQuery(".dnnNav"),
		$root = jQuery(".root"),
		calcWidth = 0;

	$root.css({"width":"auto"});
	if( $win.width() <= 768 ) return;

	var navWidth = parseInt($nav.width());
	var navPosition = 0;
	if (typeof $root[0] !== "undefined")
		navPosition = parseInt(jQuery($root[0]).offset().top);

	for (var i=0; i < $root.length; i++ ){
		var $this = jQuery($root[i]);
		if ( parseInt($this.offset().top) == navPosition ){
			calcWidth += $this.width();
			navArray.push($this)
			if ( $this.hasClass("last") ){
				assginWidth(navArray);
			}
		} else {
			if ( calcWidth < navWidth ){
				assginWidth(navArray);
				navArray = [];
				calcWidth = $this.width();
				navPosition = parseInt($this.offset().top);
				navArray.push($this);
			}
		}
	}

	function assginWidth(newArray){
		var gape = parseInt((navWidth - calcWidth)/newArray.length);
		var newWidth = 0;
		for (var j=0; j < newArray.length; j++){
			var $currentNav = newArray[j];
			$currentNav.width($currentNav.width() + gape);
			newWidth += $currentNav.width();
		}
		
		if(newWidth > navWidth){
			newArray[newArray.length-1].width(newArray[newArray.length-1].width() - (newWidth-navWidth));
		}
	}

}

$doc.ready( function(){

	/* Header Text ************************************/
	var $body = jQuery("#Body"),
		$head = jQuery(".skHead .head"),
		headArray = $head.text().split(" ");
	if ( $body.hasClass("Ayso-Default") === false ){
		if ( headArray.length > 1 ){
			var leftHeader = jQuery("<span class=\"left\"></span>"),
				rightHeader = jQuery("<span class=\"right\"></span>"),
				rightHeader = jQuery("<span class=\"right\"></span>"),
				arrayLength = headArray.length,
				splitAfter = $head.attr("data-split-after");

			if ( typeof splitAfter === "undefined") {
				for ( i=0; i < arrayLength; i++ ){
					if ( i < (arrayLength/2)){
						leftHeader.append(" " + headArray[i]);
					} else {
						rightHeader.append(" " + headArray[i]);
					}
				}
			} else {
				for ( i=0; i < arrayLength; i++ ){
					if ( i < parseInt(splitAfter) ){
						leftHeader.append(" " + headArray[i]);
					} else {
						rightHeader.append(" " + headArray[i]);
					}
				}
			}
			$head.text("").append(leftHeader).append(rightHeader);
			$head.show();
		} else {
			var leftHeader = jQuery("<span class=\"left\"></span>");
			leftHeader.append(" " + headArray);
			$head.text("").append(leftHeader).append(rightHeader);
			$head.show();
		}
		if ( $body.hasClass("Atlas-New-Default") )
			$head.css({"display":"table"});
	}

	/* Tabs *******************************************/
	var $cardTabs = jQuery("#skCard-Stack");
	if ( $cardTabs.length > 0 ){
		var $link = jQuery("ul.skTabs .link",$cardTabs);
		var $cnt = jQuery(".skTabsCnt",$cardTabs);
		$link.click( function(e){
			e.preventDefault();
			var $this = jQuery(this);
			$cnt.hide();
			$link.parent().removeClass("ui-state-active");
			$this.parent().addClass("ui-state-active");
			jQuery($this.attr("href")).show();
			resizeFacebookPagePlugin();
		});
		if (typeof window.defaultTab !== "undefined" && window.defaultTab === "AC1" && jQuery("[href=#csAboutUs]").length > 0){
			jQuery("[href=#csAboutUs]").trigger("click");
		} else if ( typeof window.defaultTab !== "undefined" && window.defaultTab === "GC1" && jQuery("[href=#csEvent]").length > 0){
			jQuery("[href=#csEvent]").trigger("click");
		} else if ( typeof window.defaultTab !== "undefined" && window.defaultTab === "SC1" && jQuery("[href=#csSocial]").length > 0){
			jQuery("[href=#csSocial]").trigger("click");
		} else if ( typeof window.defaultTab !== "undefined" && window.defaultTab === "EHTML1" && jQuery("[href=#csEmbed]").length > 0){
			jQuery("[href=#csEmbed]").trigger("click");
		} else {
			jQuery($link[0]).trigger("click");
		}
		var $tabs = jQuery("ul.skTabs>li.item",$cardTabs);
		$tabs.width(100/$tabs.length + "%");
	}

	/* Video *****************************************/
	var $video = jQuery("iframe, object, embed", ".skVideoHelper");
	if ( $video.length > 0 ){
		$video.each( function(){
			if (!jQuery(this).hasClass("facebook-plugin")) {
				jQuery(this).wrap("<div class=\"videoWrapper\"></div>");
			}
		});
	}
	
	/* for Facebook Iframe ****************************/
	resizeFacebookPagePlugin();
	
	/* Container **************************************/
	var $container = jQuery(".exContainer .cbContainer");
	$container.each( function(){
		var $this = jQuery(this);
		var $head = jQuery(">.head",$this);
		var $cnt = jQuery(">.content",$this);
		$head.click( function(){
			if ( $cnt.is(":animated") ) return;
			if ( $this.hasClass("expanded") ){
				$cnt.slideUp();
				$this.removeClass("expanded");
			} else {
				jQuery(".cbContainer.expanded").removeClass("expanded").find(">.content").slideUp();
				$cnt.slideDown();
				$this.addClass("expanded");
			}
		});
	});
	if ( !$body.hasClass("Ayso-Default") ){
		if ( typeof window.defaultAccordion !== "undefined" && window.defaultAccordion === "FD1" && jQuery(".skFieldStatus").length > 0){
			jQuery(".skFieldStatus .cbContainer").addClass("expanded");
		} else if ( typeof window.defaultAccordion !== "undefined" && window.defaultAccordion === "HL2" && jQuery(".skImportantDocument").length > 0){
			jQuery(".skImportantDocument .cbContainer").addClass("expanded");
		} else if ( typeof window.defaultAccordion !== "undefined" && window.defaultAccordion === "EHTML2" && jQuery(".skFeaturedSponsor").length > 0){
			jQuery(".skFeaturedSponsor .cbContainer").addClass("expanded");
		} else {
			$container.first().addClass("expanded");
		}
	} else {
		if ( typeof window.defaultAccordion !== "undefined" && window.defaultAccordion === "HL2" && jQuery(".skImportantDocument").length > 0){
			jQuery(".skImportantDocument .cbContainer").addClass("expanded");
		} else if ( typeof window.defaultAccordion !== "undefined" && window.defaultAccordion === "FD1" && jQuery(".skFieldStatus").length > 0){
			jQuery(".skFieldStatus .cbContainer").addClass("expanded");
		} else if ( typeof window.defaultAccordion !== "undefined" && window.defaultAccordion === "EHTML1" && jQuery(".skFeaturedSponsor").length > 0){
			jQuery(".skFeaturedSponsor .cbContainer").addClass("expanded");
		} else {
			$container.first().addClass("expanded");
		}
	}

	/* YouTube Embed HTML Title and Description *******/
	var $embedVideo = jQuery("#csEmbed");
	if ( $embedVideo.length > 0 ){
		$embedVideo.each (function(){
			var $url = "";
				$iframe = $embedVideo.find("iframe"),
				$object = $embedVideo.find("object");
			if ( $iframe.length < 1 || $object.length < 1) return;
			if ( $iframe.length > 0 ){
				$url = $iframe.attr("src");
			} else {
				$url = $object.find("param[name='movie']").attr("value");
			}
			if (typeof $url === "undefined" || $url === "" ||  $url.indexOf("youtu") < 0 ) return;
			var reg = new RegExp('(?:https?://)?(?:www\\.)?(?:youtu\\.be/|youtube\\.com(?:/embed/|/v/|/watch\\?v=))([\\w-]{10,12})', 'g');
			var $id = reg.exec($url)[1];
			$.ajax({
				url: "//gdata.youtube.com/feeds/api/videos/" + $id + "?v=2&alt=json&prettyprint=true",
				dataType: "json",
				success: function(data) {
					$embedVideo.append("<h2>" + data.entry.media$group.media$title.$t + "</h2>");
					$embedVideo.append(data.entry.media$group.media$description.$t);
				}
			});
		});
	}
	topNavAlign();
	jQuery(".skSocialTab li:first a.skSocialBtn").trigger("click");
	
	/* Default Social Setting */
	var $cardTabs = jQuery(".skSocialTab");
	var $links = jQuery("ul.skSocialTab .skLink",$cardTabs);	
	if( $win.width() <= 480 ) {
		jQuery(".skSocialTabLink").hide();
		jQuery(".skSocialMobTab li:first").addClass("active").show();
		jQuery(".skSocialTabLink:first").show();
		jQuery(".skSocialMobTab li").click(function() {
			jQuery(".skSocialMobTab li").removeClass("active");
			jQuery(this).addClass("active");
			jQuery(".skSocialTabLink").hide();
			var activeTab = $(this).attr("href");
			jQuery(activeTab).fadeIn();
			resizeFacebookPagePlugin();
			return false;
		});
		
		if (typeof window.defaultSocialTab !== "undefined" && window.defaultSocialTab === "FC1" && jQuery(".skFacebook").length > 0){
			jQuery(".skSocialMobTab .skFacebookLink").trigger("click");
		}else if (typeof window.defaultSocialTab !== "undefined" && window.defaultSocialTab === "TW1" && jQuery(".skTwitter").length > 0){
			jQuery(".skSocialMobTab .skTwitterLink").trigger("click");
		}else {
			jQuery($links[0]).trigger("click");
		}
	}
	
	if (typeof window.defaultSocialTab !== "undefined" && window.defaultSocialTab === "FC1" && jQuery(".skFacebook").length > 0){
		if(!(jQuery(".skFacebookLink").hasClass("active"))){
			jQuery(".skFacebookLink").trigger("click");
		}
	 }else if (typeof window.defaultSocialTab !== "undefined" && window.defaultSocialTab === "TW1" && jQuery(".skTwitter").length > 0){
		if(!(jQuery(".skTwitterLink").hasClass("active"))){
			jQuery(".skTwitterLink").trigger("click");
		}
	}else {
		jQuery($links[0]).trigger("click");
	}
	
	/* Princeton FC Mobile navigation menu */
	if ($body.hasClass('Atlas-PFC')) {
		$('#mobNav li').addClass('mobNavItem');
		$('#mobNav a').addClass('mobNavLink');
		$('#mobNav a').wrap('<div class="navWrapper"></div>');
		$('#mobNav ul ul').hide();
		$('#mobNav ul > li:has(ul)').addClass('hasSubMenu').append('<span class="arrow"><i class="fa fa-angle-down"></i></span>');
		$('#mobNav > ul > li.hasSubMenu').addClass('navFirstMenu');
		
		$('#mobNav ul > li.navFirstMenu').each(function() {
			let classCounter = 1;
			$(this).find('ul').each(function() {
				$(this).addClass(`navSubChild-${classCounter}`);
				classCounter = classCounter % 3 + 1;
			});
		});

		$('#mobNav ul > li.hasSubMenu > .arrow').click(function(e) {
			e.stopPropagation();
			$(this).siblings('ul').slideToggle();
			$(this).parent().toggleClass('open');
		});
	}
});

var currentWidth = $win.width();
$win.resize( function(){
	topNavAlign();
	if (currentWidth == $win.width()) return;
	currentWidth = $win.width();
	resizeFacebookPagePlugin();
});

$win.load( function(){
	boxSameHeight(".skLeft-Tabs .skTabsCnt:not(.skSocialWrapper)",".skRight-Tabs",122);
	boxSameHeight(".skLeft-Tabs .skTabsCnt.skSocialWrapper",".skRight-Tabs",117);
});

function toggleContent(element,link,target,hideElements){
	if (jQuery(element).hasClass("skSocialBtn active") ){
		jQuery(link).addClass("active");
		jQuery(element).removeClass("active");
		jQuery(target).removeClass("visible").slideUp();
		jQuery(hideElements).addClass("visible").slideDown(function(){
			resizeFacebookPagePlugin();
		});
	} else {
		jQuery(link).removeClass("active");
		jQuery(element).addClass("active");
		jQuery(target).addClass("visible").slideDown(function(){
			resizeFacebookPagePlugin();
		});
		jQuery(hideElements).removeClass("visible").slideUp();
	}
}

function resizeFacebookPagePlugin(){
	if ( jQuery(".facebook-plugin:visible").length > 0 ) {
	   var $iframe = jQuery(".facebook-plugin:visible"),
	   $parent = $iframe.parents(".skFBWrapper:visible"),
	   $cntWidth = $parent.width(),
	   $iframeWidth = $iframe.width(),
	   $cntHeight = $parent.height(),
	   $url = $iframe.attr('data-src'),
	   $pHeight = parseInt($cntHeight),
	   $pWidth = parseInt($cntWidth)
	   $updateUrl = $url.replace(/&width=.*&height=.*&small/g, "&width=" + $pWidth + "&height=" + $pHeight + "&small");
		if ( $pWidth > 500 ) {
			$pWidth = 500;
		}
		if ( ( $cntWidth == $iframeWidth && typeof $iframe.attr("src") !== "undefined") || 
		   ( $cntWidth >= 500 && $iframeWidth >= 500 && typeof $iframe.attr("src") !== "undefined") ) return; 
		$iframe.attr({"src": $updateUrl, "height": $pHeight, "width": $pWidth });
		$iframe.css({"height": $pHeight, "width": $pWidth });
	}
}
