var urlSite = window.location.protocol + "//" + window.location.hostname + "/";
var defaultList = ["News", "Last20Jokes"];
var activeList = defaultList;
var activeTag;
var	ratingSkale = ["", "-3", "00", "02", "4", "7", "10", "12"];
var currentList = "Last20Jokes";
var boxes = ["News", "Contact", "ListByTag", "ListNew", "ListBest", "ListWorst", "ListAll", "Last20Jokes", "Joke", "Search"];
var specielBoxes = ["Joke"];

function linkExchange(){
	document.getElementById("contactForm").contactType[2].click();
	boxShowHide('Contact');
}

function contact(){
	document.getElementById("contactForm").contactType[0].click();
	boxShowHide('Contact');
}

function contactTypeCheck(value){
	var _n1;
	_n1 = document.getElementById("contactType");
	_n1.value = value;
}

function contactSend(data, state){
	var _n1;
	if(state == 1){
		var _n1;
		_n1 = document.getElementById("contactForm");
		boxShowHide();
		getServerData("cmd=ContactSend&type=" + document.getElementById("contactType").value + "&name=" + encodeText(_n1.contactName.value) + "&email=" + encodeText(_n1.contactEmail.value) + "&text=" + escape((_n1.contactText.value).replace(/\n/g, "\n")), contactSend, 2);
	} else {
		if(data.responseText == "ok"){
			document.getElementById("contactForm").reset();
		} else {
			alert("Der opstod en fejl under\nafsendelsen af din besked!");
		}
	}
}

function CreateBookmarkLink(title, url){
	if (window.sidebar) {
		window.sidebar.addPanel(title, url, "");
	} else if(window.external){
		window.external.AddFavorite(url, title);
	}	else if(window.opera && window.print){
		var mbm = document.createElement('a');
		mbm.setAttribute('rel', 'sidebar');
		mbm.setAttribute('href', url);
		mbm.setAttribute('title', title);
		mbm.click();
	}
}
function selectTag(data, state, title){
	var _n1;
	if(state == 1){
		var _n1;
		_n1 = document.getElementById("boxListByTagHeader");
		_n1.innerHTML = title + ":";
		_n1 = document.getElementById("boxListByTagContent");
		_n1.innerHTML = '<div align="center"><br />Henter listen...</div><br />';
		boxShowHide("ListByTag");
		getServerData("cmd=ListByTag&tagId=" + data, selectTag, "2");
		activeTag = [data, title];
	} else {
		_n1 = document.getElementById("boxListByTagContent");
		_n1.innerHTML = data.responseText;
	}
}

function frameSize(size){
	var _n1;
	_n1 = document.getElementById("frame");
	_n1.style.width = size;
}


function getList(type){
	var _n1;
	_n1 = document.getElementById("box" + type + "Content");
	_n1.innerHTML = '<div align="center"><br />Henter listen...</div><br />';
	(type == "Last20Jokes")? boxShowHide("News", "Last20Jokes") : boxShowHide(type);
	getServerData("cmd=" + type, showList, type);
}

function showList(data, type){
	var _n1;
	_n1 = document.getElementById("box" + type + "Content");
	_n1.innerHTML = data.responseText;
	if(_n1.clientHeight >= 400){
		_n1.style.height = "400px";
		_n1.style.overflow = "auto";
	}
}

function getJoke(id, title, list){
	var _n1;
	currentList = list;
	_n1 = document.getElementById("boxJokeHeader");
	_n1.innerHTML = title + ":";
	_n1 = document.getElementById("boxJokeContent");
	_n1.innerHTML = '<div align="center"><br />Henter joke...</div><br />';
	boxShowHide("Joke", "Last20Jokes");
	getServerData("cmd=Joke&id=" + id + "&list=" + list, showJoke, id);
}

function showJoke(data, id){
	var _n1;
	_n1 = document.getElementById("boxJokeContent");
	_n1.innerHTML = data.responseText;
	if(getCookie("joke" + id)){
		_n1 = document.getElementById("jokeRated");
		_n1.innerHTML = "Din karakter for denne joke: " + ratingSkale[getCookie("joke" + id)];
		_n1.style.display = "block";
		document.getElementById("jokeRating").style.display = "none";
	} else {
		document.getElementById("jokeRating").style.display = "block";
		document.getElementById("jokeRated").style.display = "none";
	}
}

function rateJoke(id, rating){
	document.getElementById("jokeRated").innerHTML = "Din karakter for denne joke: " + ratingSkale[rating];
	document.getElementById("jokeRating").style.display = "none";
	document.getElementById("jokeRated").style.display = "block";
	setCookie("joke" + id, rating, 336);
	getServerData("cmd=Rate&id=" + id + "&rate=" + rating);
}

function search(data, state){
	var _n1;
	if(state == 1){
		_n1 = document.getElementById("searchText");
		if(_n1.value) getServerData("cmd=Search&text=" + escape(_n1.value), search, 2);
	} else if(state == 2){
		document.getElementById("boxSearchContent").innerHTML = data.responseText;
		boxShowHide("Search");
	}
}

function backToList(id, type){
	if(type == "Search"){
		boxShowHide("Search");
	} else if(type == "ListByTag"){
		selectTag(activeTag[0], "1", activeTag[1])
	} else {
		getList(type);
	}
}

function boxShowHide(){
	var _n1, _a1;
	(arguments.length)? _a1 = arguments : _a1 = activeList;
	if(!hasArrayValue(_a1[0], specielBoxes)) activeList = [];
	for(_v1 in boxes){
		_n1 = document.getElementById("box" + boxes[_v1]);
		if(hasArrayValue(boxes[_v1], _a1)){
			_n1.style.display = "block";
			if(!hasArrayValue(boxes[_v1], specielBoxes)){
				activeList.push(boxes[_v1]);
			}
		} else {
			_n1.style.display = "none";
		}
	}
	//rotateAds(null, 1);
}

function getServerData(data, returnfunction, args){
	var _o1;
	if (window.XMLHttpRequest) _o1 = new XMLHttpRequest();
	else if (window.ActiveXObject) _o1 = new ActiveXObject("Microsoft.XMLHTTP");
	_o1.onreadystatechange = function(){
		if (_o1.readyState == 4){
			if (_o1.status == 200 || _o1.status == 0){
				if(returnfunction){
					if (args) returnfunction(_o1, args);
					else returnfunction(_o1);
				}
			} else {
				alert("An error occurred:\n" + _o1.status + ", " + _o1.statusText + "\nUrl: " + url);
			}
		}
	}
	_o1.open("POST", urlSite + "php/data.php?ts=" + timeStamp(), true);
	_o1.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	_o1.send(data);
}

function setCookie(name, value, hours){
  var _v1 = "";
  if(hours != null)
  {
    _v1 = new Date((new Date()).getTime() + hours * 3600000);
    _v1 = "; expires=" + _v1.toGMTString();
  }
  document.cookie = name + "=" + escape(value) + _v1;
}

function getCookie(name){
  var cookieValue = "";
  var search = name + "=";
  if(document.cookie.length > 0)
  { 
    offset = document.cookie.indexOf(search);
    if (offset != -1)
    { 
      offset += search.length;
      end = document.cookie.indexOf(";", offset);
      if (end == -1) end = document.cookie.length;
      cookieValue = unescape(document.cookie.substring(offset, end))
    }
  }
  return cookieValue;
}

function hasArrayValue(needle, haystack){
	var _c1
	for (_c1 = 0; _c1 < haystack.length; _c1++){
		if (haystack[_c1] == needle){
			return true;
		}
	}
	return false;
}

function hasObjectValue(needle, haystack){
	var _v1
	for (_v1 in haystack){
		if (haystack[_v1] == needle){
			return true;
		}
	}
	return false;
}

function timeStamp(){
	return new Date().getTime();
}

function encodeText(text){
	text = text.replace(/&/g, "&amp;");
	text = text.replace(/"/g, "&quot;");
	text = text.replace(/\n/g, "<br />");
	text = text.replace(/“/g, "&ldquo;");
	text = text.replace(/”/g, "&rdquo;");
	text = text.replace(/…/g, "&hellip;");
	return escape(text);
}

function rotateAds(data, state){
	var _n1;
	if(state == 1){
		getServerData("cmd=getAd&type=header", rotateAds, 2);
	} else if(state == 2){
		document.getElementById("bannerHeader").innerHTML = "";
		_n1 = document.createElement("DIV");
		_n1.innerHTML = data.responseText;
		document.getElementById("bannerHeader").appendChild(_n1);
		getServerData("cmd=getAd&type=side", rotateAds, 3);
	} else if(state == 3){
		document.getElementById("bannerSide").innerHTML = data.responseText;
	}
}