
function loadViewlet(url, target, manager, viewlet, page, index) {
	//$(target+" *").hide("slow");
    
    if(!index) {	
    	$.get(url+'/@@loadViewlet?managername='+manager+'&name='+viewlet+'&page='+page, {}, function(data) {
    		$(target).html(data).show("slow");
            initNav("", target);
    	});
    } else {
    	$.get(url+'/@@loadViewlet?index='+index+'&managername='+manager+'&name='+viewlet+'&page='+page, {}, function(data) {
    		$(target).html(data).show("slow");
            initNav("", target);
    	});
    }
}

var currentindex = false;
var categoryindex = false;
var initindex = "";
var baseurl = "";
var active=null;
var analytics_enabled = false;

initall = function() {
    //disable links
    $("#subjectnavi a").click( function() {
        var index = this.id.replace("subjectlink-","").replace("-",".");
        donavigate(index, "javascript");        
        return false;
    });
    $("#subjectnavi a").attr("href", "javascript:;");
    $("#subjectnavi a").mouseover(function() {                   
        var index = this.id.replace("subjectlink-","").replace("-",".");
        highlight(index, "javascript");        
    });
    $("#subjectnavi a").mouseout(function() {                   
        var index = this.id.replace("subjectlink-","").replace("-",".");
        unhighlight(index, "javascript");        
    });
    
    jQuery("#nav-language-menu").change(function() {
		location.href=this.value;	
        //location.href=this.value+"/redirect?index="+currentindex;
    })
    
    $("#print a").click( function() {
        var index = currentindex;
        window.open("@@printversion.pdf?index="+index)        
        return false;
    });    
    
    initNav();
    $.historyInit(pageload);
    
    if(initindex != "") {
        flashproxy.call("navigate", currentindex);
    }
}

initNav = function(some, tgt) {

    if(!tgt)
        tgt = ""
    else
        tgt += " "
    //page navigation
    $(tgt + ".gotopage").click(function() {
        var page = this.id.replace("gotopage-", ""); 
        if(currentindex!=false) {
            loadViewlet(baseurl, "#mainloader", "MainContent", "main.page", page, currentindex)
            callUrchinTracker("/"+categoryindex+"/"+currentindex, page);                
        } else {
            loadViewlet(baseurl, "#mainloader", "MainContent", "main.page", page)
            callUrchinTracker("/"+categoryindex, page);                
        }
        return false;
    });
    $(tgt + ".gotopage").attr("href", "javascript:;");

    $(tgt + ".closepage").click(function() {
        navigatecategory(categoryindex, "javascript")
        return false;
    });
    $(tgt + ".closepage").attr("href", "javascript:;");
    
   $(tgt + ".extra-head a.extrabutton").click(function(){
      var targetid = this.id.replace("_button", "");
      var hidden = $(".extra-body:visible").slideUp("slow");
      callUrchinTracker("/"+categoryindex+"/"+currentindex, targetid);    
      $("#"+targetid+":hidden").slideDown("slow"); //XXX The not does not work
      return false;
   });
   $(tgt + ".extra-head a.extrabutton").attr("href", "javascript:;");

}

$(document).ready(initall)

highlight = function(index, js) {
    var id = "#subject-"+index.replace(".", "-");
    $("#nav-subjects li").removeClass("hover");
    $(id).addClass("hover");
    
    if(active!=null && active!=index) {
        unhighlight(index);
    }
    if(active!=index) {
        active = index;
    }
    //console.log("high" + index + " " + js);
    flashproxy.call("dohighlight", index);            
}

unhighlight = function(index, js) {
    var id = "#subject-"+index.replace(".", "-");
    $(id).removeClass("hover");                        
    //console.log("unhigh" + index + " " + js);
    flashproxy.call("dounhighlight", index);            
}

donavigate = function(index, js) {
    currentindex = index;
	$.historyLoad(index);
}

loadcontent = function(index, js) {
    var id = "#subject-"+index.replace(".", "-");
    $("#nav-subjects li").removeClass("selected");
    $(id).addClass("selected");                        
    flashproxy.call("navigate", index);   
    loadViewlet(baseurl, "#mainloader", "MainContent", "main.page", 1, index);
    loadViewlet(baseurl, "#extraloader", "MainContent", "xtralist", 0, index);
    callUrchinTracker("/"+categoryindex+"/"+index);    
}

navigatecategory = function(index, js) {
    index = categoryindex;
    currentindex = index;    
	$.historyLoad(index);
}

loadcategory = function(index, js) {
    //var id = "#subject-"+index.replace(".", "-");
    $("#nav-subjects li").removeClass("selected");
    flashproxy.call("navigatecategory", index);
    loadViewlet(baseurl, "#mainloader", "MainContent", "main.default", 0)
    callUrchinTracker("/"+categoryindex);
}

function pageload(hash) {
	// hash doesn't contain the first # character.
	if(hash) {
        
		// restore ajax loaded state
        //alert(hash.substr(2,1));
        if(hash.substr(2,1)=='0') {
            loadcategory(hash)
        }else{
            loadcontent(hash)
            }
		//$("#load").load(hash + ".html");
	} else {
		// start page
		//$("#load").empty();
	}
}

function callUrchinTracker(url, page) {
    if(analytics_enabled) { 
       if(!url) {
           url = "/"+currentindex;
       }
       if(page) {
           url += "/page"+page;
       }
       urchinTracker(url);
   }
}