/* The following two functions are from http://www.quirksmode.org */
function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}


function between(num,min,max,inclusive) {
	if ( min > max ) {
		temp = min; min = max; max = temp;
	}
	if ( inclusive )
		return ( num >= min && num <= max );
	else
		return ( num > min && num < max );
}

if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && window.attachEvent) {
	addLoadEvent(fnLoadPngs);
}
var rule = "#menu a";
var imagePath = "images/"
var blank =  "styles/blank.gif";

function fnLoadPngs() {
	var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
	var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5);
	if ( !itsAllGood ) { return; }
	var rules_to_match = new RegExp('(' + rule.split(/ +/).join('.*?') + ')[^\\{]*?\\{([^\\}]*?png[^\\}]*?)\\}', 'gi' );
	var cssText = "";
	for ( var h = 0; h < document.styleSheets.length; h++ ) {
		var matches = new Array();
		curIndex = 0;
		RegExp.lastIndex = 0;
		while ((m = rules_to_match.exec(document.styleSheets[h].cssText)) != null) {
			matches[curIndex] = new Array();
			for ( var i = 0; i < m.length; i++ ) {
				matches[curIndex].push ( m[i] );
			}
		}
		for ( var i = 0; i < matches.length; i++ ) {
			var nodes = document.getElementsBySelector(rule);
			var curRule = matches[i][2];
			if ( !nodes || nodes.length == 0 ) break;
			var pngImagePath = (curRule.match("url\\((.*?)\\)"))[1];
			var img = document.createElement("img");
			var baseUrl = (document.styleSheets[h].href.match(/(.*?\/)[^\/]*$/))[1]
			img.src =  baseUrl + pngImagePath;
			img.style.position = "absolute";
			img.style.width = img.width;
			img.style.height = img.height;
			img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + baseUrl + pngImagePath + "', sizingMethod='crop')";
			var positions = curRule.match (/(?:url\(.*?\)).*?(\d+\w*)\s+(\d+\w*)/,i)
			img.style.left = positions[1];
			img.style.top = positions[2];
			img.__dynamic__ = true;
			
			
			for ( var j = 0; j < nodes.length; j++ ) {
				var node = nodes[j];
				node.onmouseover = function () {
					var self = this;
					for ( var i = 0; i < self.childNodes.length; i++ ) {
						if ( self.childNodes[i].__dynamic__ )
							return;
					}
					text = self.innerHTML;
					var s = document.createElement("span");
					s.innerHTML = text;
					s.style.position = "relative";
					img.onmouseout = function () {
						if ( self.parentNode.onmouseout )
							self.parentNode.onmouseout();
					}
					self.innerHTML = "";
					img.style.border = "none";
					img.style.top = "-" + self.currentStyle.marginTop;
					// alert ( this.onmouseout );
					img.src = (window.location.pathname.match(/(.*?\/)[^\/]*$/))[1] + blank;
					self.appendChild(img);
					self.appendChild(s);
					self.style.position = "relative";
					self.hasLayout = true;
				}
				node.onmouseout = function () {
					var self = this;
					nodeToRemove = self.childNodes;
					for ( var k = 0; k < nodeToRemove.length; k++ ) {
						if ( nodeToRemove[k].__dynamic__ ) {
							nodeToRemove = nodeToRemove[k]; break;
						}
					}
					//alert ( window.event.clientX + ":" + findPosX(this) + ":" + (findPosX(this)+this.offsetWidth) );
					/*&&					
						!between(window.event.clientX,findPosX(this),findPosX(this)+this.offsetWidth,true) &&
						!between(window.event.clientY,findPosY(this),findPosY(this)+this.offsetHeight,true)
					*/
					if ( nodeToRemove.__dynamic__ && !window.event.toElement.__dynamic__  )
						self.removeChild(nodeToRemove);
				}
			}
		}
	}

	var nodes = document.getElementById('menu').getElementsByTagName('ul');
	for ( var i = 0; i < nodes.length; i++ ) {
		var tNodes = nodes[i].getElementsByTagName('a');
		for ( var j = 0; j < tNodes.length; j++ ) {
			tNodes[j].onmouseover = null;
			tNodes[j].onmouseout = null;

		}
	}
	
	/*var nodes = document.getElementById('menu').getElementsByTagName('a');
	for (var i = nodes.length - 1, obj = null; (obj = nodes[i]); i--) {
		if (itsAllGood) {
			// this.fnFixPng(obj);
			// obj.attachEvent("onpropertychange", this.fnPropertyChanged);
			obj.onmouseover = function () { this.className += " over"; fnFixPng(this); }
			obj.onmouseout = function () { this.className = this.className.replace(" over",""); }
		}
	}*/
}
	
function fnPropertyChanged() {
	if (window.event.propertyName == "style.backgroundImage") {
		var el = window.event.srcElement;
		if (!el.currentStyle.backgroundImage.match(/blank\.gif/i)) {
			var bg	= el.currentStyle.backgroundImage;
			var src = bg.substring(5,bg.length-2);
			el.filters.item(0).src = src;
			el.style.backgroundImage = "url(blank.gif)";
		}
	}
}
	
function fnFixPng(obj) {
	var bg	= obj.currentStyle.backgroundImage;
	//alert ( obj.currentStyle.backgroundImage );
	var src = bg.substring(5,bg.length-2);
	obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='crop')";
	obj.style.backgroundImage = "url(blank.gif)";
}