// window.onload = prepareLinks;

//<![CDATA[
/*
 *
 * DOMComplete - Load Event
 *
 * Author: Diego Perini (diego.perini@gmail.com)
 * Updated: 26/08/2007
 * Version: 0.99.8-mini
 *
 */

function onDOMComplete(w, f) {
	var d = w.document, done = false;
	wait();

	if ((/WebKit|KHTML|MSIE/i).test(navigator.userAgent)) {
		poll();
	}

	function load(e) {
		if (!done) {
			done = true; stop(); f(e);
		}
	}

	function has(p) { return typeof d[p] != 'undefined'; }

	function poll() {
		if (d.body !== null && d.getElementsByTagName) {
			// please see http://javascript.nwbox.com/IEContentLoaded/ for the IE improvement part of DOMComplete
			if (has('fileSize')) { try { d.documentElement.doScroll('left'); load('documentready'); } catch (e) { } }
			if (has('readyState') && (/loaded|complete/).test(d.readyState)) { load('readyState'); }
		}
		if (!done) { setTimeout(poll, 10); }
	}

	function stop() {
		if (typeof d.removeEventListener == 'function') {
			d.removeEventListener('DOMContentLoaded', load, false);
		}
	}

	function wait() {
		if (typeof d.addEventListener == 'function') {
			d.addEventListener('DOMContentLoaded', load, false);
		}
		var oldonload = w.onload;
		w.onload = function (e) {
			if (typeof oldonload == 'function') {
				oldonload();
			}
			load(e || w.event);
		};
	}
}

onDOMComplete(this, prepareLinks);
onDOMComplete(this, prepareHeadLinks);

//]]>

function prepareLinks() {
	if (!document.getElementById || !document.getElementsByTagName) {
		return;
	}
	if (!document.getElementById("portfolio")) {
		return;
	}
	var list = document.getElementById("portfolio");
	var links = list.getElementsByTagName("a");
	for (var i=0; i<links.length; i++) {
		links[i].onclick = function() {
			var query = this.getAttribute("href").split("?")[1];
			var url = "sites.php?"+query;
			return !grabFile(url);
		};
	}
}

function prepareHeadLinks() {
	if (!document.getElementById || !document.getElementsByTagName) {
		return;
	}
	if (!document.getElementById("topnav")) {
		return;
	}
	var list = document.getElementById("topnav");
	var links = list.getElementsByTagName("a");
	for (var i=0; i<links.length; i++) {
		links[i].onclick = function() {
			var query = this.getAttribute("href").split("?")[1];
			var url = "sites.php?"+query;
			return !grabFile(url);
		};
	}
}

function grabFile(file) {
	var request = getHTTPObject();
	if (request) {
		displayLoading(document.getElementById("details"));
		request.onreadystatechange = function() {
		parseResponse(request);
    };
		request.open("GET", file, true);
		request.send(null);
		return true;
	} else {
		return false;
  }
}

function parseResponse(request) {
	if (request.readyState == 4) {
		if (request.status == 200 || request.status == 304) {
		var details = document.getElementById("details");
		details.innerHTML = request.responseText;

		// subtle fade
		fadeUp(details,255,255,153);	
		}
	}
}
function getHTTPObject() {
  var xhr = false;
  if (window.XMLHttpRequest) {
    xhr = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    try {
      xhr = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
      try {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
      } catch(e) {
        xhr = false;
      }
    }
  }
  return xhr;
}
function displayLoading(element) {
	while (element.hasChildNodes()) {
		element.removeChild(element.lastChild);
	}
	var image = document.createElement("img");
	image.setAttribute("src", "loading.gif");
	image.setAttribute("alt", "Loading...");
	element.appendChild(image);
}

function fadeUp(element,red,green,blue) {
	if (element.fade) {
		clearTimeout(element.fade);
	}
	element.style.backgroundColor = "rgb("+red+","+green+","+blue+")";
	if (red == 255 && green == 255 && blue == 255) {
		return;
	}
	var newred = red + Math.ceil((255 - red)/10);
	var newgreen = green  + Math.ceil((255 - green)/10);
	var newblue = blue  + Math.ceil((255 - blue)/10);
	var repeat = function () {
		fadeUp(element,newred,newgreen,newblue)
	};
	element.fade = setTimeout(repeat,100);
}


			