$(document).ready(function(){
    var hash;
    var newhash;
    if(window.location.hash){
	hash = window.location.hash;
	newhash = hash.substr(1);
	ajaxData(newhash);
    }
    window.onhashchange = function(){
	hash = window.location.hash;
	newhash = hash.substr(1);
	if(window.location.hash){
	    ajaxData(newhash);
	} else {
	    window.location = window.location;
	}
    };
       
    // Clean Memory
    hash = null;
    newhash = null;
    
    drawFooter();
    
});

function loaderdisplay(value) {
    if (value=="show") {
	
	return true;
    } else if (value=="hide") {
	
	return true;
    }
    return false;
}

function initContactForm() {
    var options = {
	success: function(data){
	    if (data.error != undefined) $("div#midcontent span#errormessage").prepend(data.message);
	    else ajaxData("successful_contact");
	}
    }
    
    if ($("form#contactform").length > 0) {
	$("form#contactform").submit(function(){
	    $("form#contactform :input").each(function(i, obj){
		if($(obj).val() == '') $(obj).addClass('invalid');
		$(obj).bind("keyup", function(){if($(obj).val() == '') $(obj).addClass('invalid'); else $(obj).removeClass('invalid');});
	    });
	    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	    if(reg.test($("input#contact_email_input").val()) == false) {
		$("input#contact_email_input").addClass('invalid');
	    }
	    if ($("form#contactform").find(".invalid").length > 0) return false;
	    else $("form#contactform").ajaxSubmit(options);
	    return false;
	});
    } else {
	$("form#contactform").unbind("submit");
    }
}

// Used for navigation
function ajaxData(value, type) {
    if (value=='home') value = 'index';
    $("nav#menu a").removeClass("selected");
    if (!$("nav#menu a#"+value).hasClass('selected')) $("a#"+value).addClass("selected"); 
    loaderdisplay('show');
    if (type == undefined || (type != "html" && type != "json")) type = "html";
    // No layout param needs to be sent
    if (value.indexOf("dir", 0) == -1) value = value + ".php";
    $.ajax({
	url: "/"+value,
	type: "GET",
	dataType: type,
	success: function(data){
	    drawFooter();
	    $("div#midcontent").fadeOut(200, function() {
		$("div#midcontent").html(data);
		var offset = $("div#midcontent").offset();
		$("footer").animate({top: $("div#midcontent").outerHeight()+offset.top+230+"px"}, 150);
		$("div#midcontent").fadeIn(200, function() {});
	    });
	    loaderdisplay('hide');
	},
	data: ({
	    ajax : 'y'
	})
    });
	
}

function drawFooter() {
    if (!$("footer").is(":visible")) {
	var offset = $("div#midcontent").offset();		
	$("footer").css("top", $("div#midcontent").outerHeight()+offset.top);
	$("footer").fadeIn();
    }
}
