var xmlHttp;
var then;
var hash;
var dots;
var url;

function insertParam(url, param)
{
    var hash = "";
    var query = [];
    var data = url.split("#"); 
    url = data[0];

    if(data.length > 1) {
       hash = data[1];
       this.hash = hash;
    }
    
    data = url.split("?");
    url = data[0];
    
    if(data.length > 1) {
       query = data[1];
       query = query.split("&");
    }
    
    query.push(param);
    
    url = url + "?" + query.join("&") + (hash.length > 0 ? ("#" + hash) : "");
    
    return url;
}

function updateProgress() {
	var dots = document.getElementById("dots").innerHTML.length;
	if(dots == 3) {
		dots = ".";
	}else if (dots == 2) {
		dots = "...";
	}else{
		dots = "..";
	}
	
	document.getElementById("dots").innerHTML = dots;
}

function updateDiv(div) {
	if (xmlHttp.readyState == 4) {		
		if (xmlHttp.responseText != "0\n" || div != "content") {
			var content = xmlHttp.responseText.split("\n");
			
			if(div == "content") {
				document.title = content[0];
				content.shift();
			}
			
			document.getElementById(div).innerHTML = content.join("\n");
			document.getElementById("refreshImage").src = "images/refresh.png";
			document.body.style.cursor = 'default';
			clearInterval(dots);
			
			var date = new Date();
			var now = date.getTime();
			
			var time = Math.round(now - then) / 1000;
			
			document.getElementById("time").innerHTML = time;
			document.getElementById("loadTime").value = Math.floor(now / 1000);
		}else{
			window.location = document.getElementById("refreshLink").href;
		}
	}
}

function loadDiv(div, url, reset) {
	var date = new Date();
	this.then = date.getTime();
	document.getElementById("refreshImage").src = "images/rotate.gif";
	document.body.style.cursor = 'wait';
	
	if(reset) {
		document.getElementById(div).innerHTML = "Laddar<span id=\"dots\">...</span> <span id=\"progress\"></span>";
	}
	
	dots = setInterval(updateProgress, 500);
			
	xmlHttp = GetXmlHttpObject();
	if (xmlHttp === null) {
		return;
	} 
	
	if(div == "content") {
		document.getElementById("refreshLink").href = url;
		window.location.hash = url;
		this.url = url;
	}
	
	url = insertParam(url, "ajax=1");
	
	xmlHttp.onreadystatechange = function() { updateDiv(div); };
	xmlHttp.open("GET", url, true);
	xmlHttp.send(null);
	
	return false;
}

function loadStuff(url, reset) {
	//include("http://pagead2.googlesyndication.com/pagead/show_ads.js");
	return loadDiv("content", url, reset);
}

function loadContent(url) {
	return loadStuff(url, true);
}

function refreshContent() {
	loadStuff(this.url, false);
}
function historyHack() {
	var hash = window.location.hash;
	hash = hash.substr(1, hash.length - 1);
	
	if(hash != this.url) {
		var result = hash.indexOf(".");
		if(result != -1) {
			loadContent(hash);
		}
	}
}

function load() {	
	var page = location.href.substring(location.href.lastIndexOf("/") + 1, location.href.length);
	if(page.lastIndexOf("#") != -1) {
		page = page.substring(0, page.indexOf("#"));
	}
	
	var hash = window.location.hash;
	hash = hash.substr(1, hash.length - 1);
	
	var result = hash.indexOf(".");
	if(result != -1 && page != hash) {
		loadContent(hash);
	}
	
	location.hash = page;
	this.url = page;
	
	setInterval(historyHack, 100);
}