$(function(){
	/**
	 *  MAIN MENU
	 */
	$("#main-nav").find(".expander").live("click", function(event){
		event.preventDefault();
		
		var index = $("#main-nav li .expander").index(this);
		var menu = $('.menu:eq(' + index + ')')
		var visible = $(".menu:visible");
		var $this = $(this);
		var $current = $("#main-nav").find(".current");

		//If the menu we want to open is currently closed
		if(menu.is(":hidden")){
			
			//If another menu is already open
			if (visible.length  > 0) {
				visible.slideUp(function(){
					$current.removeClass("current");
					$this.parent().addClass("current");
				});
				menu.slideDown();
			}
			//No menu is open
			else{
				$this.parent().addClass("current");
				menu.slideDown();
			}
		}
		//When a menu is open and you are clicking on a button to close that menu.
		else if(visible.length > 0){
			menu.slideUp(function(){
				$current.toggleClass("current");
			});
		}
	});

	
	/**
	 *  SCROLLER
	 */
	$(".scrollable").scrollable({
		keyboard: false,
		nextPage: ".next",
		prevPage: ".prev",
		next: ".none",
		prev: ".none",
		size: 5,
		speed: 600
	}).navigator({
		activeClass: "current",
		indexed: true
	});
	
	
	var chapterAPI = $(".chapters .pane").scrollable({
		keyboard: false,
		size: 3,
		api: true
	});
	// Switch to using jquery index at a later date
	var chapterList = $(".chapters .tabs li");
	for(var i = 0; i < chapterList.length; i++){
		if($(chapterList[i]).hasClass("current")){
			if(i > 2) chapterAPI.move(i);
			break;
		}
	}
	
	
	
	/**
	 * SHARE BUTTONS
	 * 
	 */
	//Open and close the facebook share pane
	$("#content-tools").find(".expander").live("click", function(event){
		event.preventDefault();
		
		var index = $("#content-tools li .expander").index(this);
		var drawer = $('.drawer:eq(' + index + ')');
		var visible = $(".drawer:visible");
		var $this = $(this);
		var $current = $("#content-tools").find(".current");

		//If the menu we want to open is currently closed
		if(drawer.is(":hidden")){
			
			//If another menu is already open
			if (visible.length  > 0) {
				visible.slideUp(200, function(){
				$current.removeClass("current");
					$this.parent().addClass("current");
					drawer.slideDown(200);
					
				});
			}
			//No menu is open
			else{
				$this.parent().addClass("current");
				drawer.slideDown(200);
			}
		}
		//When a menu is open and you are clicking on a button to close that menu.
		else if(visible.length > 0){
			drawer.slideUp(200, function(){
				$current.toggleClass("current");
			});
		}
		
	});

	/**
	 * PRINT PAGE
	 */
	$("#print").live("click", function(){
		window.print();
		return false;
	});

	/**
	 * BOOKMARK PAGE
	 */
	// add a "rel" attrib if Opera 7+
	if(window.opera) {
		if ($("#bookmark").attr("rel") != ""){ // don't overwrite the rel attrib if already set
			$("#bookmark").attr("rel","sidebar");
		}
	}

	$("#bookmark").click(function(event){
		event.preventDefault(); // prevent the anchor tag from sending the user off to the link
		
		var url = this.href;
		var title = this.title;

		if (window.sidebar) { // Mozilla Firefox Bookmark
			window.sidebar.addPanel(title, url,"");
		} else if( window.external ) { // IE Favorite
			window.external.AddFavorite( url, title);
		} else if(window.opera) { // Opera 7+
			return false; // do nothing - the rel="sidebar" should do the trick
		} else { // for Safari, Konq etc - browsers who do not support bookmarking scripts (that i could find anyway)
			 alert('This browser does not support the requested action,'
			 + ' please bookmark this page manually.');
		}

	});

	/**
	 * DEFAULT INPUT TEXT
	 */
    $('input[type=text]').focus(function(){
        if ($(this).val() == $(this).attr('defaultValue')) {
            $(this).val('');
        }
    });
    
    $('input[type=text]').blur(function(){
        if ($(this).val() == '') {
            $(this).val($(this).attr('defaultValue'));
        }
    });

    /**
     * POPULATE MSNBC FEED
     */
    /*
    $.getFeed({
		url: "js/proxy.php?url=http://www.msnbc.msn.com/id/3032091/device/rss/pid/19791151/for/partner",
		success: function(feed){
			for(var i=0; i < 5; i++){
				var item = feed.items[i];
				$("#more-msnbc ul").append("<li><a rel='nofollow' href='" + item.link + "'>" + item.title + "</a></li>");
			}
			
			$("#more-msnbc ul li:first-child").addClass("first");
		}
	}); */
    
	/**
	 * SLIDESHOW
	 * Slideshow is set to javascriptless mode when the content is being edited, so that each slide can be edited without the transitions interfering
	 */
	$("div[data-slideshow]").each(function(){
		var data = eval("(" + $(this).attr("data-slideshow") + ")");
		if(data.editMode == "false"){
			$(this).slideshow({
				url: data.url,
				duration: 7,
				autoPlay: false,
				showPreroll: data.showPreroll,
				prerollOptions: {
					objectID: "preAd",
					params: {
		                playerID : "36696707001",
		                videoID : "38885334001",
		                autoStart : true,
		                bgcolor : "#000000",
		                width : "610",
		                height : "310",
		                isVid : "true"
		            }
				},
	            prerollElement: $(".slideshow-preroll"),
	            skipElement: $(".skip-preroll"),
	            slideElement: $("#slide-container"),
				nextElement: $(".slideshow-controls .next"),
				previousElement: $(".slideshow-controls .prev"),
				pauseElement: $(".slideshow-controls .pause"),
				playElement: $(".slideshow-controls .play"),
				indexElement: $(".slideshow-controls .index"),
				titleElement: $("#slide-title"),
				descriptionElement: $("#slide-description"),
				countdownElement: $(".countdown-timer"),
				countdownText: "Next slide in {0}"
			});
		}
	});
	
	/**
	 * CHAPTER BROWSER
	 */
	$("div.chapters").collapsible({
		collapseControl: $("a.chapter-toggle"),
		hideClass: "chapter-open",
		hideText: "Hide Chapters",
		showClass: "chapter-close",
		showText: "Show Chapters",
		animationSpeed: 400
	});
	
	$("div.chapters").closest("div.list").collapsible();
	
	$("div[data-slideshow]")
		.bind("slideshowstarted", function(){
			$("div.chapters").closest("div.list").collapsible("show");
		})
		.bind("slideshowpreroll", function(){
			$("div.chapters").closest("div.list").collapsible("hide");
		})
		.bind("slideshowupdated", function(){
			$("div[data-dartad]").dartad("refresh");
			
			var currentIndex = $(this).slideshow("currentIndex");
			var length = $(this).slideshow("length");
			
			if(currentIndex == (length - 1)){
				$(".next-chapter-nav").fadeIn('slow');
			} else {
				$(".next-chapter-nav").hide()
			}
		});
	
	$("div.chapters li").click(function(){
		window.location = $(this).find("a").attr("href");
		return false;
	});
	
	
	/**
	 * DART ADS
	 */
	var i = 1;
	var random = Math.random().toString();
	random = random.substring(2, random.length);
	
	$("div[data-dartad]").each(function(){
		var data = eval("(" + $(this).attr("data-dartad") + ")");
		$(this).dartad({
			siteID: data.siteID,
			size: data.size,
			keyvalue: data.keyvalue,
			tile: i,
			ord: random
		});
		i++;
	});
	
	
	/**
	 * VIDEO
	 */
	$("div[data-video]").each(function(){
	    var data = eval("(" + $(this).attr("data-video") + ")");
	    $(this).flashembed({
    	    src: data.src,
    	    width: data.width + "px",
    	    height: data.height + "px"
	    });
	});
	
	
	/**
	 * BRIGHTCOVE
	 */
	$("div[data-brightcove]").each(function(){
	    var data = eval("(" + $(this).attr("data-brightcove") + ")");
	    var src = "http://c.brightcove.com/services/viewer/federated_f9/" + data.videoPlayer + "?isVid=1&isUI=1&publisherID=16991917";
	    var flashvars = "@videoPlayer=" + data.videoPlayer + "&playerID=" + data.playerID + "&domain=embed&";
	    var width = data.width;
	    var height = data.height;
	    
	    var params = {
    		movie: "http://c.brightcove.com/services/viewer/federated_f9/" + data.videoPlayer + "?isVid=1&isUI=1&publisherID=16991917",
	       	bgcolor: "#FFFFFF",
	       	seamlesstabbing: false,
	       	base: "http://admin.brightcove.com",
	       	allowFullScreen: true,
	       	swLiveConnect: true,
	       	allowScriptAccess: "always",
	       	flashvars: flashvars
	    }
	    
	    var object = $('<object id="flashObj" width="' + width + '" height="' + height + '" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,47,0"></object>').appendTo(this);
	    for(var i in params){
	    	$('<param name="' + i + '" value="' + params[i] + '" />').appendTo(object);
	    }
	    
	    $('<embed src="http://c.brightcove.com/services/viewer/federated_f9/' + data.videoPlayer + '?isVid=1&isUI=1&publisherID=16991917" bgcolor="#FFFFFF" flashVars="' + flashvars + '" base="http://admin.brightcove.com" name="flashObj" width="' + width + '" height="' + height + '" seamlesstabbing="false" type="application/x-shockwave-flash" allowFullScreen="true" allowScriptAccess="always" swLiveConnect="true" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed>').appendTo(object);
	});
	

	/**
	 * EMAIL VALIDATION
	 */
    function isValidEmailAddress(emailAddress){
        var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
        return (pattern.test(emailAddress) && emailAddress.indexOf("@example.com") == -1)
    }
    
	$("#from-email, #to-email").bind("keyup", function(){
		var $this = $(this);
		var email = $this.val();
		$this.toggleClass("error", (email && !isValidEmailAddress(email)));
    });
	
	//Prevent Sending of Email if Validaiton Errors exist
	$("#email-drawer .submit").click(function(){
		return (isValidEmailAddress($("#from-email").val()) && isValidEmailAddress($("#to-email").val()) );
	});
	
	/**
	 * LINK TRACKING
	 */
	$("#content-tools a").click(function(event){
		var text = "Content tools - " + ($(this).text() || $(this).attr("title"));
		s = s_gi(s_account);
	    s.prop2 = text;
	    s.t();
	});
	
	$("#sidebar-facebook-promo").click(function(event){
		var text = "Sidebar - Facebook promo";
		s = s_gi(s_account);
	    s.prop2 = text;
	    s.t();
	});
	
	/**
	 * JS-KIT SCRIPT PARALLEL LOAD
	 * JS-KIT has been failing to load occassionally, and we've moved this script to a parallel load so the rest of the page will still work
	 */
	if($(".js-kit-comments").length > 0){
		var jskitScript = document.createElement("script");
		jskitScript.type = "text/javascript";
		jskitScript.src = "http://js-kit.com/for/2010.newsweek.com/comments.js";
		$(document).append(jskitScript);
	}
});

