var original_top;
var original_left;
$(document).ready(function(){
	$.historyInit(loadPage);
	resizeHeader();
	var l=window.location.href;
	var page="";
	if(/#/.test(l)){
		page=l.split("#")[1];
		loadPage(page);
	}
	else adjustColHeight();
	loadNav(page);
	doCensor();//make it so the censored images will show
	original_top=$("#sidebar").offset().top;
	original_left=$("#sidebar").offset().left;
	$(window).scroll(sideBarTracker);
	$(window).resize(sideBarTracker);
	//$(window).resize(resizeHeader);
});
function resizeHeader(){
	var ww=$(window).width();
	var iw=$("#top_header").width();
	if((iw/ww)>.40){
		var third=.33*ww;
		$("#top_header").width(third+"px");
		$("#bottom_header").width(third+"px");
		var ratio=third/iw;
		var tiw=$("#twitter_img").width();
		$("#twitter_img").width(ratio*tiw+"px");
		var tim=parseInt($("#twitter_img").css("margin-bottom"));
		$("#twitter_img").css("margin-bottom", tim*ratio+"px");
		var t=$("#bottom_header").offset().top;
		var l=$("#bottom_header").offset().left;
		original_top=ratio*original_top;
		var newtop=ratio*t;
		//var newleft=ratio*parseInt($("#sidebar").css("left"));
		var sbw=$("#sidebar").width();
		var newsbw=ratio*sbw;
		var newleft=(third-newsbw)/2;
		var lmarg=parseInt($("#content").css("margin-left"));
		var newlmarg=ratio*lmarg;
		$("#bottom_header").css("top",newtop+"px");
		$("#sidebar").css({"top":newtop+"px", "left":newleft+"px", "width":newsbw+"px"});
		original_left=newleft;
		$("#sidebar div").width(newsbw+"px");
		$("#content").css("margin-left",newlmarg);
	}
}
function sideBarTracker(){
	var scrolledleft=($(window).scrollLeft()>0);
	try{
		var l=-$(window).scrollLeft();
		$("#top_header").css("left",l+"px");
		$("#bottom_header").css("left",l+"px");	
		$("#sidebar").css("left",l+original_left+"px");
	}
	catch(e){}
	try{
		var sidebar=$("#sidebar");
		var sbh=sidebar.outerHeight();
		var sbt=sidebar.offset().top;
		var wst=$(window).scrollTop();
		var wh=$(window).height();
		//if(sbh+sbt-wst-wh<=0 || sbh+original_top-wst-wh<=0){
		if(scrolledleft || wh+wst>original_top+sbh){
			if(sidebar.css("position")=="fixed" && !scrolledleft)return;
			var x=sbt-wst;
			sidebar.css({'top':x+'px', 'position':'fixed'});
		}
		else{
			if(sidebar.css("position")!="fixed")return;
			sidebar.css({"top":original_top+"px", 'position':''});
		}
	}catch(e){}
}

function doCensor(){
	$("p.censored").each(
    function(){
        $(this).hover(
            function(){
                $(this).children("[censored='true']").show();},
            function(){
                $(this).children("[censored='true']").hide();});
    });
}

function loadNav(page){
	$.getJSON("http://scripts.fousheezy.com/ajax/nav.php?jsonCallBack=?",
		function(data){
			$.each(data.links, function(i,link){
			var sp=(i==0)?"":"<span> | </span>";
			var l;
			if(link.external)
				l=$(sp+"<a href='"+link.value+"'>"+link.title+"</a>");
			else{
				l=$(sp+"<a href='#"+link.value+"'>"+link.title+"</a>").click(function(ev){
					if(ev.ctrlKey || ev.shiftKey)return true;
					navLight($(this));
					$.historyLoad(link.value); //loadPage(link.value);
				});
			}
			if(link.value==page || (page=="" && i==0))
				navLight(l);
			l.appendTo("#navbar2");
			});
		});
}
function navLight(nav){
	$("#navbar2 a.current").removeClass("current");
	$(nav).addClass("current");	
}
function adjustColHeight(){
	$("object").each(function(i){this.style.display="block";});
	var sb=$("#sidebar");
	var sh=sb.height()+sb.offset().top;
	var c=$("#content");
	var ch=c.height();
	if(sh>ch)c.height(sh);
	else c.height(ch);
}
function loadPage(name){
	$("#content").height("");
	if(name=="disqus_thread" || /comment\-.+/.test(name)){
		adjustColHeight();
		return;//disquss stuff
	}
	if(name=="home" || name==""){
		$("#loadingbar").slideUp();
		$("#nonblogbar").hide();
		$("#mainbar").show();
		adjustColHeight();
		return;
	}
	//otherwise do a call
	$("#loadingbar").slideDown();
	$.getJSON("http://scripts.fousheezy.com/ajax/loadpage.php?page="+name+"&jsonCallBack=?",finishedLoadingPage);
}

function finishedLoadingPage(json){
	$("#loadingbar").slideUp();
	$("#mainbar").hide();
	$("#nonblogbar").html(json.content);
	$("#nonblogbar").show();
	//make all the links open in a new page
	$("#nonblogbar a").attr("target","_blank");
	adjustColHeight();
}
function isEmpty(s){
	if(/^\s*$/.test(s))
		return true;
	return false;
}


//contact functions
function sendEmail(){
	try{
	var name= $("#contactname");
	var email=$("#contactemail");
	var msg = $("#contactmsg");
	var sub = $("#contactsubmit");
	if(isEmpty(name.val()) || isEmpty(email.val()) || isEmpty(msg.val())){
		contactError("Please provide your name, email, and a message");
		return false;
	}
	sub.attr("disabled","true");
	sub.val("Sending...");
	$.getJSON("http://scripts.fousheezy.com/ajax/contact.php?submit=true&email="+encodeURIComponent(email.val())+"&name="+encodeURIComponent(name.val())+"&msg="+encodeURIComponent(msg.val())+"&recapChallenge="+encodeURIComponent(Recaptcha.get_challenge())+"&recapResponse="+encodeURIComponent(Recaptcha.get_response())+"&jsonCallBack=?",finishSendEmail);
	}catch(e){
		contactError(e.name+" - "+e.message);
	}
}

var debug_msg;
function finishSendEmail(json){
	//alert(m);
	var msg = $("#contactmsg");
	var sub = $("#contactsubmit");
	sub.attr("disabled","");
	sub.val("Send");
	debug_msg=json.message;
	m=(json.success)?"Your email was sent":"Your email wasn't delivered: "+json.message;
	if(json.success)
		msg.val("");
	Recaptcha.reload();
	contactError(m);
}
var contactErrorFadeout;
function contactError(msg){
	clearTimeout(contactErrorFadeout);
	$("#contacterror").html("<p>"+msg+"</p>");
	$("#contacterror").show();
	//$("#contacterror").animate({"background-color":"#FF9900"});
	contactErrorFadeout=setTimeout("contactErrorFade();",30000);//fade after 30 seconds
}

function contactErrorFade(){
	$("#contacterror").fadeOut("slow");
}