/*
WordPress 2+ Plugin by Robert Oddy <rob@oddy.net>
http://oddy.net
*/

if(typeof Array.prototype.push!="function") {
	Array.prototype.push=ArrayPush;
	function ArrayPush(_1) {
		this[this.length] = _1;
	}
}

function WSR_getElementsByClassName(node, tag_name, class_name) {
	var nodes =(tag_name=="*" && node.all) ? node.all : node.getElementsByTagName(tag_name);
	var data = new Array();
	class_name = class_name.replace(/\-/g,"\\-");
	var find_class = new RegExp("(^|\\s)" + class_name + "(\\s|$)");
	var n;
	for(var i=0;i<nodes.length;i++){
		n = nodes[i];
		if(find_class.test(n.className)) {
			data.push(n);
		}
	}
	return(data);
}

function bindBubbles(e) {
	var entries = WSR_getElementsByClassName(document.getElementById("content"), "div", "post-content");

	for(var i=0;i<entries.length;i++) {
		var nodes = entries[i].getElementsByTagName('a');

		for(var j=0;j<nodes.length;j++) {
			str = new String(nodes[j]);

			var myDomain = "http://"+document.domain;
			var flgExternal = str.search(myDomain);
			var flgFtp = str.search("ftp://");
			var flgMailto = str.search("mailto:");

			if(flgExternal==-1 && flgFtp==-1 && flgMailto==-1) {
				var flgNoFile = 1;

				if(str.substr(str.lastIndexOf(".")+1).match(/zip|exe|rar|swf|mp3|wav|mid|avi|mov|mpg|mpeg|wmv|pdf|doc|ppt|xls|jpeg|jpg|gif|png/)) flgNoFile = 0;

				if(flgNoFile) {
					addEvent(nodes[j],"mouseover",attachBubble);
					addEvent(nodes[j],"mouseout",detachBubble);
				}
			}
		}
	}
}

function addEvent(obj, evType, fn){
	if (obj.addEventListener){
		obj.addEventListener(evType, fn, false);
		return true;
	} else if (obj.attachEvent){
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		return false;
	}
}

function findPosition( oLink ) {
	var posX, posY;

	if( oLink.offsetParent ) {
		for( posX=0,posY=0; oLink.offsetParent; oLink=oLink.offsetParent ) {
			posX += oLink.offsetLeft;
			posY += oLink.offsetTop;
		}
	} else {
		posX = oLink.x;
		posY = oLink.y;
	}

	return [ posX, posY ];
}


function attachBubble(oLink, url_image) {
	var lnk;

	if(oLink["srcElement"]) {
		lnk = oLink["srcElement"];
	} else {
		lnk = oLink["target"];
	}

	var xpos = findPosition(lnk)[0]+5;
	var ypos = findPosition(lnk)[1]+17;

	var div=document.createElement("div");
	div.className="previewbubble";
	//div.setAttribute("style","text-align: left;z-index: 99999;position: absolute;top: "+ypos+"px ;left: "+xpos+"px ;background: url("+ bubbleImagePath +");width: 173px;height: 140px;padding-top: 27px;padding-left: 25px;padding-bottom: 0;padding-right: 0;margin: 0;");
	div.style.position="absolute";
	div.style.top=ypos+"px";
	div.style.zIndex=99999;
	div.style.left=xpos+"px";
	div.style.textAlign="left";
	div.style.width="173px";
	div.style.height="140px";
	div.style.paddingTop="27px";
	div.style.paddingLeft="25px";
	div.style.paddingBottom="0";
	div.style.paddingRight="0";
	div.style.marginTop="0";
	div.style.marginLeft="0";
	div.style.marginBottom="0";
	div.style.marginRight="0";
	div.style.background="url(" + bubbleImagePath + ")";
	//div.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + bubbleImagePath + "',sizingMethod='scale')"/

	var img=document.createElement("img");
	img.setAttribute("style","margin: 0;padding: 0;border: 0");
	img.style.paddingTop="0";
	img.style.paddingLeft="0";
	img.style.paddingBottom="0";
	img.style.paddingRight="0";
	img.style.marginTop="0";
	img.style.marginLeft="0";
	img.style.marginBottom="0";
	img.style.marginRight="0";
	img.style.borderTop="0";
	img.style.borderLeft="0";
	img.style.borderBottom="0";
	img.style.borderRight="0";

	var key = hex_md5("oddynet"+lnk.href).substr(16);

	var pvw = "http://scst.srv.girafa.com/srv/i?";
	pvw += "i=sc010507" + "&s="+key + "&r="+lnk.href;

	img.setAttribute("src", url_image ? url_image : pvw);
	img.setAttribute("width",160);
	img.setAttribute("height",120);
	img.setAttribute("alt","Snapshot");
	div.appendChild(img);

	document.getElementsByTagName("body")[0].appendChild(div);
}

function detachBubble(_12) {
	lbActions=WSR_getElementsByClassName(document,"div","previewbubble");
	for(i=0;i<lbActions.length;i++) {
		lbActions[i].parentNode.removeChild(lbActions[i]);
	}
}

if(window.addEventListener){
	addEventListener("load",bindBubbles,false);
} else {
	attachEvent("onload",bindBubbles);
}
