if($('.article_text').length > 0) {
	$('.article_text').addClass("hidden");
}

$('html').addClass('js');


$(document).ready(function() {
	if( ($('div.dl').length > 0) && (typeof($.fn.dynamiclead) != "undefined") ) {
		$('div.dl h3').addClass('hidden');
		$('div.dl .credit').removeClass('hidden');
		
		$('div.dl ul').dynamiclead({
			slideArray: ((typeof(DLslides)!="undefined")?DLslides:[{url:'',link:'',headline:'',caption:''}])   
        });
        		
	}
	
	if($("#newsletter input").length > 0) { 
		$("#newsletter input").labelify({ text: "label" });
	}
	
	if($('div.carousel').length > 0) {
		$('div.carousel .fact_slides').jcarousel({
	   		scroll: 1,
	   		visible: 1,
	   		initCallback: fact_slides_initCallback, 
	   		itemFirstInCallback: fact_slides_itemFirstInCallback
		});
		if($('div.fact_slides .jcarousel_prev').length > 0) {
			$('div.fact_slides .jcarousel_prev').after()
		}
		$('div.carousel .three').jcarousel({
			scroll: 3,
			visible: 3
		});
	
		$('div.carousel .seven').jcarousel({
			scroll: 7,
			visible: 7
		});
	
	    $('div.carousel .four').jcarousel({
			scroll: 4,
			visible: 4
	    });
    	
		$('div.carousel .magazine').jcarousel({
			scroll: 5
		});
	
		$('ul.magazine li:nth-child(5n), ul.magazine li:last').css('border', 'none');
	
		if ($('ul.magazine li').length == 5) {
		    $('.magazine div.jcarousel-prev, .magazine div.jcarousel-next').hide();
	    }else{
	        $('.magazine div.jcarousel-prev, .magazine div.jcarousel-next').show();
		};
	}
	if($('.columns ol, .columns ul').length > 0) {
		$(' .columns ol, .columns ul').each(function() {
	    	if (!($(this).parent().parent().hasClass('full_width'))) {
	        	$(this).columns({
	            	cols:2
	        	});
	    	}else {
	        	$(this).columns({
	            	cols:3
	        	});
	    	}
		});
	}
	if($('body.home #share, body.level_2 #share').length > 0) {
		$('body.home #share, body.level_2 #share').addClass('collapsed');
	}
	if($('#nav_share').length > 0) {
		$('#nav_share li a').addClass('hiddenText');
		$('#nav_share li').slice(4).addClass('hidden');
		$('#nav_share').append('<li class="more_link"><a href="">More</a></li>');
		var moreLink = $('#nav_share .more_link');
		moreLink.click(function () { 
			$('#share').toggleClass('collapsed');
			$('#nav_share li').slice(4, -1).toggleClass('hidden');
			if (moreLink.text() =='More'){
				moreLink.html('<a href="">Collapse</a>');				
			} else {
				moreLink.html('<a href="">More</a>');
			}
			return false;
		});
	}

	if($('#share_email').length > 0) {
		$('#share_email').addClass('hidden');
	}

	if($('#article_rating').length > 0) {
		$('#article_rating').before('<div id="print_link"><a href="#" onclick="ngsprint();return false;">Printer Friendly</a></div>');
	}

	if($('div.tabbed_box').length > 0) {
		$('div.tabbed_box').each(function() {

			var sections = $('.popularity_type', this);
			sections.hide();
			$(sections[0]).show();
	
			var ul = $('<ul class="nav nav_tabbed">');
			sections.each(function(index) {
				var section_obj = $(this);
				var heading = $('h4', this).html();
				var li = $('<li class="nav_0'+(index+1)+'">');
				$('h4', this).remove();
				li.append(
					$('<h4><a href="#">'+heading+'</a></h4>').click(function() {

						sections.hide();
						section_obj.show();
				
						tabs.removeClass('selected');
						li.addClass('selected');
						return false;					
				}));
				ul.append(li);
			})
		
			$('div.wrap', this).before(ul);
	
			var tabs = $('li', ul);
			$(tabs[0]).addClass('selected');
		});
	}
	if($('table.striped').length > 0) {
		$('table.striped tr:odd').css('background-color','#f4f4f4');
	}

    if($('.video').length > 0) {
		$('.video').each(function(){
        	var vid_thumb_width = $('img', this).attr('width');
	        if (vid_thumb_width == 160) {
	            var overlay_position = 10;
	        } else {
	            var overlay_position = 5;
	        };
	        var vid_link = $('a', this).attr('href');
                        
	        if (vid_thumb_width == 160 || vid_thumb_width == 100) {    
	           	$('img', this).after('<img src="'+((typeof(staticURL)!="undefined")?staticURL:'/')+'sites/common/i/presentation/video_overlay.png" class="overlay" alt="Video Icon Overlay" style="left: '+ overlay_position +'px; bottom: '+ overlay_position +'px;"/>');
	        };
	    });
	}
	

	if(typeof pageSet != "undefined" && $('.article_text').length > 0) {
		articlePages = new pageSet({
			oPageContainer:((typeof($)!="undefined")?$(".article_text")[0]:document.getElementsByClassName('article_text')[0]),
			oMatchRE:new RegExp("page_*break"),
			strMatchTagName: "comment",
			activePageIndex:jss.current_page(),
			pageItemClass: "article-page-item",
			callback: function(delaySecs) { 
				delaySecs=((delaySecs&&!isNaN(parseInt(delaySecs)))?parseInt(delaySecs):.5);
				if(typeof(ngsPageView)!="undefined") {
					if(typeof(callTmr)!="undefined"){ 
						clearTimeout(callTmr); 
					};
					callTmr = setTimeout("ngsPageView();",(delaySecs*1000));
				}
			}
		});

		if(articlePages.pages.length>1) {
			$($(".article_text").get(0)).append('<div class="nav-article-pages pagination"></div>');
			$(".nav-article-pages").pagination(Math.ceil(articlePages.pages.length), {
				items_per_page:1,
				num_display_entries: 14,
				current_page: jss.current_page(),
				callback:articlePages.viewPage,
				link_to: "#"+articlePages.hashVar+"=__id__",
				prev_text: "&laquo; Previous",
				next_text: "Next &raquo;"
			});
			articlePages.viewPage(articlePages.activePageIndex);
			articlePages.readyState = "4:COMPLETED";
		}
		$('.article_text').removeClass("hidden");
	}
	
	getLoadTimes();
});


function ngsprint() {
	window.print();
}

jQuery.expr[':'].regex = function(elem, index, match) {
  	var matchParams = match[3].split(','),
	validLabels = /^(data|css):/,
	attr = {
		method: matchParams[0].match(validLabels) ? matchParams[0].split(':')[0] : 'attr',
		property: matchParams.shift().replace(validLabels,'')
	},
	regexFlags = 'ig',
	regex = new RegExp(matchParams.join('').replace(/^\s+|\s+$/g,''), regexFlags);
	return regex.test(jQuery(elem)[attr.method](attr.property));
}

getLeadingZeros  = function(opts) {
	var n = ((typeof(opts['n'])!="undefined"&&!isNaN(parseInt(opts['n'])))?opts['n']:0);
	var digits = ((typeof(opts['digits'])!="undefined"&&!isNaN(parseInt(opts['digits'])))?opts['digits']:3);
	return ((n.toString().length>=digits)?n:( (n + 1) * parseFloat( parseFloat('0').toFixed( digits - 1 ) + 1 ) ).toFixed(digits).toString().split('.')[1]);
}


wrapByRegEx = function(opts) {
	var parentSelectorText = ((typeof(opts["parentSelectorText"])!="undefined")?opts["parentSelectorText"]:null);
	if(parentSelectorText==null) {
		return false;
	}
	var idDigits = ((typeof(opts["idDigits"])!="undefined"&&!isNaN(parseInt(opts["idDigits"])))?parseInt(opts["idDigits"]):-1);
	var matchRegEx = ((typeof(opts["matchRegEx"])!="undefined")?((typeof(opts["matchRegEx"])!="string"&&typeof(opts["matchRegEx"].length)!="undefined")?opts["matchRegEx"]:[opts["matchRegEx"]]):null);
	var wrapHTML = ((typeof(opts["wrapHTML"])!="undefined")?((typeof(opts["wrapHTML"])!="string"&&typeof(opts["wrapHTML"].length)!="undefined")?opts["wrapHTML"]:[opts["wrapHTML"]]):null);
	var s_regExCombined = "";
	var is_ignoreCase = false;
	$(matchRegEx).each(function(i){
		s_regExCombined += "("+this.source + ")"+((i==matchRegEx.length-1)?"":"|");
		is_ignoreCase = ((this.ignoreCase)?true:is_ignoreCase);
	});
	var combinedMatchRegEx = new RegExp(s_regExCombined,((is_ignoreCase)?"i":""));
	var n = 1;
	var a_allNodes = $(parentSelectorText)
	.contents()
	.filter( function() {
		if((this.nodeType == Node.TEXT_NODE) && (this.data+'').match(combinedMatchRegEx)!=null) {
			var s_nodeData = (this.data+'');
			var o_textNode = this;
			$(matchRegEx).each(function(i){
				if(s_nodeData.match(this)) {
					var s_matchFlags = ( (this.ignoreCase) ? "i":"" ) + ( (this.global) ? "g":"" ) + ( ( this.multiline)?"m":"" );
					var matchRE = ( ( (this.source+'').match(/(^|[^\\])\(|[^\\]\)/) ? this : new RegExp( "(" + this.source + ")" , s_matchFlags ) ) );
					var is_useMatchText = (wrapHTML[i].match(/\[\[matchText\]\]/) != null);
					var s_wrapped = ( (idDigits) ? 
						wrapHTML[i].replace( /\[\[id\]\]/g, getLeadingZeros({n:n,digits:idDigits}) ) :
					 	wrapHTML[i] );
					var s_wrapped = ( (is_useMatchText) ? s_wrapped.replace(/\[\[matchText\]\]/gi,"\$1") : s_wrapped);
						var s_replaceText = s_nodeData.replace( matchRE , s_wrapped );
						$(o_textNode).replaceWith(s_replaceText);
					n++;
				}
			});
		} 
	});
}

parseXML = function(xml) {
	if( window.ActiveXObject && window.GetObject ) {
		var dom = new ActiveXObject( 'Microsoft.XMLDOM' );
		dom.loadXML( xml );
		return dom;
    }
    if( window.DOMParser ) {
		return new DOMParser().parseFromString( xml, 'text/xml' );
	}
    throw new Error( 'No XML parser available' );
}





loadFlashApps = function(){
	var totApps = FlashApps.length;
	for(var i=0;i<totApps;i++){
		createFlashObject(FlashApps[i]);
	}
}
createFlashObject = function(dataObj){
	$(dataObj.div).css("visibility","visible");
	if(dataObj.customXML){
		loadSWF();
	} else {
		var richMediaXML;
		parseRichMediaXML();
	}
	function parseRichMediaXML(){
		try {
			richMediaXML = parseXML(dataObj.currentXML);
		} catch(err) {
			$(dataObj.div).append("<p><strong>ERROR PARSING XML</strong></p>");
		}
		loadSWF();
	}
	function loadSWF(){
	
		var params = {};
		params.allowscriptaccess = "always";
		params.wmode = (dataObj.type == "Quiz") ? "transparent" : "opaque";
		params.menu = "false";
		params.quality = "best";
		params.bgcolor = "#FFFFFF";
		params.base = dataObj.filePath;
		
		var tempSite = window.location.host;
		var siteDomain = "http://" + tempSite;
		
		var flashvars = {};
		flashvars.css = dataObj.css;
		flashvars.siteDomain = siteDomain;
		
		flashvars.width = dataObj.width;
		flashvars.height = dataObj.height;
	
		if(dataObj.type == "Quiz"){
			flashvars.cssFile = flashvars.css;
			flashvars.imagePath = dataObj.filePath;
			flashvars.parentDiv = dataObj.parentDiv;
		}
	
		if(dataObj.customXML){
			flashvars.xml = dataObj.xmlURL;
			flashvars.xmlfile = dataObj.xmlURL;
			flashvars.xmlFile = dataObj.xmlURL;
		} else {
			if(dataObj.xml != ""){
				flashvars.xml = dataObj.xml;
				flashvars.xmlfile = flashvars.xml;
				flashvars.xmlFile = flashvars.xml;
			}
			$(richMediaXML).find("richmedia").children().each(function(){
				flashvars[this.tagName] = $(this).text();
			});
		};
	
		var attributes = {};
		attributes.id = dataObj.slug;
		
		if(dataObj.width == undefined||dataObj.width == ""||dataObj.height == ""||dataObj.height == undefined||dataObj.version == ""||dataObj.version == undefined){
			$(dataObj.div).append("<p><strong>ERROR IN RICH MEDIA TYPE: Please check your settings</strong></p>");
			return;
		} else {
			swfobject.embedSWF(dataObj.flashURL, dataObj.slug, dataObj.width, dataObj.height, dataObj.version, false, flashvars, params, attributes);
		}
	}
}

loadVideo = function(div,slug,siteid){
	var params = {allowfullscreen:true,allowscriptaccess:"always",wmode:"opaque",menu:"false",quality:"best",bgcolor:"#FFFFFF"};
	var flashvars = {vid:slug,siteid:siteid};
	var attributes = {id:slug};
	swfobject.embedSWF("title-player.swf", div, "400", "334", "8", false, flashvars, params, attributes);
}

var VEMaps = [];
addMapToPage = function(mapObj){
	VEMaps.push(mapObj);
}

loadVEMaps = function(){
	for(var i=0;i<VEMaps.length;i++){
		renderVEMap(VEMaps[i]);
	}
}

renderVEMap = function(mapObj){
	var bingMap = null;
	bingMap = new VEMap(mapObj.div);
	bingMap.LoadMap(new VELatLong(mapObj.latitude,mapObj.longitude), mapObj.zoom, mapObj.viewType, mapObj.lockMap);
	if(mapObj.showMini)bingMap.ShowMiniMap(mapObj.miniXposition, 5);
	if(!mapObj.showTools)bingMap.HideDashboard();
}


function fact_slides_initCallback(carousel) {
    var count = $('ul.fact_slides li').length;
    $('div.fact_slides .jcarousel-prev').after('<p class="count"><span class="current"></span> of '+count+'</p>');
};


function fact_slides_itemFirstInCallback(carousel, idx, item) {
   $('div.fact_slides span.current').html(item);

};

var loadTimes = {}
timerCount = function(prop){
	var curTime = new Date().getTime();
	var elapsedTime = curTime - startTime;
	loadTimes[prop] = elapsedTime;
}

getLoadTimes = function(){
	for(var timeStamp in loadTimes){
		$('#test_comments').append('<p>'+timeStamp+' = '+loadTimes[timeStamp]+' ms</p>')
	}
}


