/*

	WP-PopIn for Wordpress
	(C) 2005 Roel Meurders - GNU General Public License

	more info on: http://roel.meurders.nl/wordpress-plugins/wp-popin-dynamic-popin-images/

*/

var piReq = false;
var wpPopin = "";

function piOnload() {
	if (typeof(window.onload) != 'function') {
		window.onload = piInit;
	} else {
		var oldOnload = window.onload;
		window.onload = function () { oldOnload(); piInit(); }
	}
}

function piInit(){
	if (document.getElementById && document.createElement){
		if (!document.getElementById('wpPopin')){
			var theBody = document.body;
			wpPopin = document.createElement('div');
			wpPopin.style.display = "none";
			wpPopin.style.position = "absolute";
			wpPopin.style.zIndex = 100000;
			wpPopin.id = 'wpPopin';
			theBody.appendChild(wpPopin);
			//theBody.insertBefore(wpPopin,theBody.firstChild);
		}
		var links = document.getElementsByTagName('a');
		piClasses = piClasses.split(",");
		for (var i=0; i<links.length; i++){
			for (var j=0; j<piClasses.length; j++){
				if (links[i].className == piClasses[j]){
					links[i].onclick = function () { piOpen(this); return false }
				}
			}
		}
	}
}

function piOpen(obj){
	if(typeof(obj) == "string"){
		url = piWpDir + '/wp-content/plugins/wp-popin/wp-popin-requests.php?do=xml&p=' + obj;
	} else {
		url = piWpDir + '/wp-content/plugins/wp-popin/wp-popin-requests.php?do=xml&p=' + obj.href;
		if (obj.rel) url += '&rel=' + obj.rel;
		if (obj.rel) url += '&title=' + obj.title;
	}
	piXMLreq(url);
	return false;
}

function piXMLreq(url) {
	if (window.XMLHttpRequest) {
		piReq = new XMLHttpRequest();
		piReq.onreadystatechange = piProcReq;
		piReq.open("GET", url, true);
		piReq.send(null);
	} else if (window.ActiveXObject) {
		piReq = new ActiveXObject("Microsoft.XMLHTTP");
		if (piReq) {
			piReq.onreadystatechange = piProcReq;
			piReq.open("GET", url, true);
			piReq.send();
		}
	}
}

function piProcReq(){
	if (piReq.readyState == 4) {
		if (piReq.status == 200) {
			piWin();
		} else {
			alert("There was a problem retrieving the XML data:\n" + piReq.statusText);
		}
	}
}

function piWin(){
   var response = piReq.responseXML.documentElement;

   if (response.getElementsByTagName('link')[0]){
   	window.location.href = response.getElementsByTagName('link')[0].firstChild.data;
   	return;
   }

	var picH = (response.getElementsByTagName('height')[0].firstChild.data * 1);
	var picW = (response.getElementsByTagName('width')[0].firstChild.data * 1);

	var dims = piGetDims();
	var lc = ((dims['w'] - (picW * 1)) / 2);
	var tc = (dims['sy'] * 1) + ((dims['h'] - (picH * 1)) / 3);

	if (lc < 0) { lc = 0; }
	if (tc < 0) { tc = 0; }

	wpPopin.style.width = picW + 'px';
	wpPopin.style.left = lc+'px';
	wpPopin.style.top = tc+'px';
	wpPopin.innerHTML = response.getElementsByTagName('popin')[0].firstChild.data;
	wpPopin.style.display = '';
}

function piGetDims(){
	var dims = new Array();
	if (self.innerHeight) {
		dims['w'] = self.innerWidth;
		dims['h'] = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) {
		dims['w'] = document.documentElement.clientWidth;
		dims['h'] = document.documentElement.clientHeight;
	} else if (document.body) {
		dims['w'] = document.body.clientWidth;
		dims['h'] = document.body.clientHeight;
	}
	if (self.pageYOffset) {
		dims['sx'] = self.pageXOffset;
		dims['sy'] = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop) {
		dims['sx'] = document.documentElement.scrollLeft;
		dims['sy'] = document.documentElement.scrollTop;
	} else if (document.body) {
		dims['sx'] = document.body.scrollLeft;
		dims['sy'] = document.body.scrollTop;
	}
	return dims;
}

function piClose(){
	wpPopin.innerHTML = '';
	wpPopin.style.display = 'none';
}
