function enableLightbox(id) {
	Cufon.replace($(":header[class!='noCufon']", $("#"+id)));
    $("#CurtainLayer").height($(document).height()).show();
    $("#"+ id).show(200);
}

function killLightbox(id) {
    $("#CurtainLayer").hide();
    $("#"+ id).hide()	
}

var caseTemplate = null;
var newsTemplate = null;
var preloadedImages = new Array();
$(function(){
	Cufon.replace($(":header[class!='noCufon']"));
		   
   	$(".lightboxLayer").centerScreen();
    $(".lightboxLayer .close").live("click", function() {
		var layer = $(this).closest(".lightboxLayer");											  
	    killLightbox(layer.attr("id"));

		switch(layer.attr("id")){
			case "NewsLayer":
				$("#NewsLayer").html(newsTemplate);
				break;
			case "CaseLayer":
				$("#CaseLayer").html(caseTemplate);
				break;
		}

        return false;
    });
	
	 if (location.hash) {
		 if(location.hash.indexOf("News-") > -1){
			loadNewsItem(location.hash.substring(6));			 
		 } else if(location.hash.indexOf("Case-") > -1){
			loadCaseItem(location.hash.substring(6));			 			 
		 }
	 }
	 
	$("#contactlist table").tablesorter({
		// sort on the first column and third column, order asc
		sortList: [[0,0],[0,0]]
	}).find("tr:odd").addClass("odd");
	$("#contactlist table").bind("sortEnd",function() {
		$("#contactlist table tr").removeClass("odd").filter(":odd").addClass("odd");
	});
	
	$(":input.example").focus(function(){
	   $(this).val("").removeClass("example");
   });
	
	$("A.newsItem").click(function(){
		loadNewsItem($(this).attr("href").substring(6));
		
		return false;
   });
	
	$("#.email a").live("click", function(){
		$(this).next().slideToggle(200);
		return false;
	});
	
	$(".email button").live("click", function(){
		var socialContainer = $(this).closest(".social");
		var id = $(".email .id", socialContainer).val();
		var youremail  = $(".email .youremail", socialContainer).val();
		var hisemail = $(".email .hisemail", socialContainer).val();
		var url = setupUrl("", id, "News");
		$.post("ajax.php", { action: "tipFriend", id : id, youremail: youremail, hisemail: hisemail, url : url}, function(data) {
			if(data){
				$(".email span",socialContainer).hide();
				$(".email .success",socialContainer).show();
			} else {
				$(".email span",socialContainer).hide();
				$(".email .failed",socialContainer).show();
			}
		}, "json");
		return false;
	});
	
	$("A.caseItem").click(function(){
		loadCaseItem($(this).attr("href").substring(6));
		
		return false;
   });
	
	$("#CaseLayer ul.media a").live("click", function(){
		var width = 400; 
		var height = 242;
		switch($(this).attr("class")){
			case "image":
				$("#CaseLayer .mediaItem").html("");
				$("#CaseLayer .mediaItem").html("<img src=\""+ $(this).attr("href") +"\" alt=\"\"/>");			
				break;
			case "audio":
				width = 400;
				height = 18;
			case "video":
			case "other":
				$("#CaseLayer .mediaItem").html("").flash({
					 swf: "assets/mediaplayer/player.swf",
					 width: width,
					 height: height,
					 attrs: {
						id: "mediaPlayer",
						name: "mediaPlayer",
						bgcolor: "#FFFFFF"
					 },
					 params: {
						 allowscriptaccess: "true",
						 allowfullscreen:"true", 
						 wmode: "transparent",
						 flashvars: {
							file: $(this).attr("href"),
							autostart:true,
							controlbar: "bottom",
							screencolor: "FFFFFF",
							backcolor: "000000",
							frontcolor: "FFFFFF",
							lightcolor: "FFFFFF",
							logo: "none"
						 }
					 }
				});
				break;
		}

		return false;
    });
	
	$(".tabs a:not(.rss)").click(function(){
		$(".tabs li").removeClass("active");
		$(this).parent().addClass("active");
		$(".tabContainer").hide();
		$($(this).attr("href")).show();
		
		return false;
	});
	
	$("#newsarchive .prev").click(function(){
		var list = $("#newsarchive ul");
		if($("li.hidden", list).length > 0 && $("li:first", list).is(".hidden")){
			var lastVisible = $("li:not(.hidden):last", list);
			var firstVisible = $("li:not(.hidden):first", list);
			lastVisible.addClass("hidden");
			firstVisible.prev().removeClass("hidden");
		}
		return false;
	});
	
	$("#newsarchive .next").click(function(){
		var list = $("#newsarchive ul");
		if($("li.hidden", list).length > 0 && $("li:last", list).is(".hidden")){
			var lastVisible = $("li:not(.hidden):last", list);
			var firstVisible = $("li:not(.hidden):first", list);
			firstVisible.addClass("hidden");
			lastVisible.next().removeClass("hidden");
		}
		return false;
	});	
});

var loadNewsItem = function(id){
	if(newsTemplate == null){
		newsTemplate = $("#NewsLayer").html();	
	}
	
	$.post("ajax.php", {action: "getNews", id: id }, function(data){
			var newsLayer = $("#NewsLayer");
			if(data.video != ""){
				$(".video", newsLayer).html("").flash({
					 swf: "assets/mediaplayer/player.swf",
					 width: 570,
					 height: 294,
					 attrs: {
						id: "newsPlayer",
						name: "newsPlayer",
						bgcolor: "#FFFFFF"
					 },
					 params: {
						 allowscriptaccess: "true",
						 allowfullscreen:"true", 
						 wmode: "transparent",
						 flashvars: {
							file: data.video,
							autostart:true,
							controlbar: "bottom",
							screencolor: "FFFFFF",
							backcolor: "000000",
							frontcolor: "FFFFFF",
							lightcolor: "FFFFFF",
							logo: "none"
						 }
					 }
				});	
			} else {
				newsLayer.find("img.image").attr("src", data.image);			
			}
			
			newsLayer.find("h2.title").text(data.title);
			newsLayer.find("p.date span").text(data.date);
			newsLayer.find("div.body").html(data.body);
			newsLayer.find(".id").val(id);

			newsLayer.find(".facebook").attr("href", setupUrl("http://www.facebook.com/share.php?u=", id, "News") +"&title="+ escape(data.title));
			newsLayer.find(".linkedin").attr("href", setupUrl("http://www.linkedin.com/shareArticle?mini=true&url=", id, "News") +"&title="+ escape(data.title));
			setupUrl("http://twitter.com/home?status=Looking%20at%20",id, "News",newsLayer.find(".twitter"));
			enableLightbox("NewsLayer");
		}, "json");
}

var loadCaseItem = function(id){
	if(caseTemplate == null){
		caseTemplate = $("#CaseLayer").html();
	}

	$.post("ajax.php", {action: "getCase", id: id }, function(data){
			var caseLayer = $("#CaseLayer");
			caseLayer.find("h2.title").text(data.title);
			caseLayer.find("div.body").html(data.body);
			if(data.media.length > 0){
				var html = "";
				$.each(data.media, function(i){
					html += "<li"+ (i % 3 == 0 ? " class=\"first\"" : "" )+"><a href=\""+ this.file +"\" class=\""+ this.type +"\"><img src=\""+ this.thumbnail +"\" alt=\"\"/></a></li>";
				});
				caseLayer.find("ul.media").html(html);
				caseLayer.find("ul.media li:first a").click();
			} else {
				caseLayer.find("ul.media").html("<li></li>");
				caseLayer.find(".mediaItem").html("");
			}
			
			pageTracker._trackEvent("Cases", "Open", data.title);
			enableLightbox("CaseLayer");
		}, "json");
}

var setupUrl = function(prefix, id, type, bitlyElement) {
	if(prefix.indexOf("#") > -1) {
		prefix = prefix.substring(0,prefix.indexOf("#"));	
	}
	
	if(bitlyElement) {
		BitlyCB.callback = function(data){
			var result;
			for (var r in data.results) {
				result = data.results[r];
				result['longUrl'] = r;
				break;
			}		
			bitlyElement.attr("href", bitlyElement.attr("href") + prefix + escape(result['shortUrl']));				
		}
		
		BitlyClient.shorten(document.location +"#"+ type +"-" +id, "BitlyCB.callback");
	} else {
		return 	prefix + escape(document.location) +"#"+ type +"-"+ id;
	}
}

jQuery.fn.centerScreen = function(loaded) {
	var obj = this;
    if(!loaded) {
    	obj.css('top', 20 + $(window).scrollTop());//$(window).height() / 3 - this.height() / 2 + $(window).scrollTop());
        obj.css('left', $(window).width() / 2 - this.width() / 2);
        $(window).bind("resize scroll", function() { 
			obj.centerScreen(!loaded); 
		})
	} else {
		obj.stop();
		obj.animate({ 
			top: 20 + $(window).scrollTop(), //$(window).height() / 3 - this.height() / 2 + $(window).scrollTop(), 
			left: $(window).width() / 2 - this.width() / 2},
			200, 'linear');
	} 
}

