function get_form( element )
{
    while( element )
    {
        element = element.parentNode
        if( element.tagName.toLowerCase() == "form" )
        {
            return element
        }
    }
    return 0; //error: no form found in ancestors
}
var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])
function fixPNG(myImage)
{
    if ((version >= 5.5) && (version < 7) && (document.body.filters))
    {
       var imgID = (myImage.id) ? "id='" + myImage.id + "' " : ""
	   var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : ""
	   var imgTitle = (myImage.title) ?
		             "title='" + myImage.title  + "' " : "title='" + myImage.alt + "' "
	   var imgStyle = "display:inline-block;" + myImage.style.cssText
	   var strNewHTML = "<span " + imgID + imgClass + imgTitle
                  + " style=\"" + "width:" + myImage.width
                  + "px; height:" + myImage.height
                  + "px;" + imgStyle + ";"
                  + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
                  + "(src=\'" + myImage.src + "\', sizingMethod='scale');\"></span>"
	   myImage.outerHTML = strNewHTML
    }
}
function changeOpac(opacity, id) {
	var object = id.style; 
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
}
function blendimage(divid, imagefile) {
	var speed = 33;
	var timer = 0;
	imageid = divid.firstChild;
	var currentOpac = 100;
	if(imageid.style.opacity < 100 && imageid.style.opacity != '') {
		currentOpac = imageid.style.opacity * 100;
	}
	divid.style.backgroundImage  = "url(" + imageid.src + ")";
	changeOpac(100-currentOpac, imageid);
	imageid.src = imagefile;
	var srcCheck = imageid.src;
	var i;
	for(i = Math.round((100-currentOpac)/10); i <= 10; i++) {
		var f = function(s,imgid,srcChk) {return function() {if(imgid.src == srcChk) changeOpac(s*10, imgid);};}(i,imageid,srcCheck);
		setTimeout(f,(timer* speed));
		timer++;
	}
}
function parseColorValue(c)
{
	var rgb = new Array();
	if(c.substring(0,1) == '#')
	{
		for (var u = 0; u < 3; u++)
			rgb[u] = parseInt(c.substring(u*2+1, u*2+3), 16);
	}
	else
	{
		splitter = c.split(",");
		rgb[0] = parseInt(splitter[0].substring(4, splitter[0].length));
		rgb[1] = parseInt(splitter[1]);
		rgb[2] = parseInt(splitter[2].substring(0, splitter[2].length-1));
	}
	return rgb;	
}
function GetStyle(t)
{
	if(typeof t.currentStyle != 'undefined')
		return t.currentStyle;
	else
		return document.defaultView.getComputedStyle(t,'');
}
function LinkSetColor(t,startColor,diff,step)
{
	t.style.color = 'rgb('+
			(startColor[0] + diff[0] * step)+','+
			(startColor[1] + diff[1] * step)+','+
			(startColor[2] + diff[2] * step)+')';
}
function LinkOnMouseOver(t)
{
	if(typeof t.hoverColor == 'undefined')
		return;
	if(!t.hoverColor)
		return;
	var defColor = parseColorValue(t.defColor);
	var hoverColor = parseColorValue(t.hoverColor);
	
	var diff = new Array();
	for(i = 0; i < 3; i++)
		diff[i] = parseInt((hoverColor[i] - defColor[i])/10);
	t.directionGlow = 1;
	var curColor = parseColorValue(GetStyle(t).color);
	i = parseInt((curColor[0]-defColor[0])/diff[0]) + 1;
	for(; i <= 10; i++)
	{
		var f = function(_i,_t,_diff,_defColor) {return function() { if(_t.directionGlow == 1) LinkSetColor(_t,_defColor,_diff,_i)};}(i,t,diff,defColor);
		setTimeout(f,((i+1)*28));
	}
}
function LinkOnMouseOut(t)
{
	if(typeof t.hoverColor == 'undefined')
		return;
	if(!t.hoverColor)
		return;
	var defColor = parseColorValue(t.defColor);
	var hoverColor = parseColorValue(t.hoverColor);
	var diff = new Array();
	var i;
	for(i = 0; i < 3; i++)
		diff[i] = parseInt((defColor[i] - hoverColor[i])/10);
	t.directionGlow = 2;
	var curColor = parseColorValue(GetStyle(t).color);
	i = parseInt((curColor[0]-hoverColor[0])/diff[0]) + 1;
	for(; i <= 10; i++)
	{
		var f = function(_i,_t,_diff,_defColor) {return function() { if(_t.directionGlow == 2) LinkSetColor(_t,_defColor,_diff,_i)};}(i,t,diff,hoverColor);
		setTimeout(f,((i+1)* 28));
	}
}
function LinksOnLoad()
{
	var links = document.getElementsByTagName('a');
	var i = 0;
	var num = links.length;
	var stylesToMod = new Array();
	var stylesToSet = new Array();
	var SelectorsIndex = new Array();
	for(i = 0; i < num; i++)
	{
		s = GetStyle(links[i]);
		links[i].defColor = s.color;
		var fOver = function f(l) { return function(){LinkOnMouseOver(l);} } (links[i]);
		var fOut = function f(l) { return function(){LinkOnMouseOut(l);} } (links[i]);
		
		s=document.styleSheets;
		var selector = '';
		var parent = links[i].parentNode;
		while(parent.tagName != 'BODY')
		{
			sel = parent.tagName;
			if(parent.className)
			sel += '.' + parent.className;
			if(parent.id)
			sel += '#' + parent.id;
			selector = sel + ' ' + selector;
			parent = parent.parentNode;
		}
		selector += links[i].tagName;
		if(links[i].className)
		selector += '.' + links[i].className;
		if(links[i].id)
		selector += '#' + links[i].id;
		selector = selector.toLowerCase();
		if(s[0].cssRules)
			rules = s[0].cssRules;
		else
			rules = s[0].rules;
		if(typeof SelectorsIndex[selector] == 'undefined')
		{
			
			for(j=rules.length-1;j >= 0;j--)
			{
				csel = rules[j].selectorText;
				if(csel.indexOf(':hover') != -1)
				{
					csel = csel.replace(/\:hover/gi,'');
					csel = csel.replace(/[\.|\#|\ ]/gi,'(.*)');
					csel = '(.*)' + csel + '(.*)';
					var re = new RegExp(csel.toLowerCase());
					if(selector.match(re))
					{
						SelectorsIndex[selector] = j;
						links[i].hoverColor = rules[j].style.color;
						links[i].style.color = links[i].defColor;
						stylesToMod[stylesToMod.length] = j;
						stylesToSet[stylesToSet.length] = i;
						break;
					}
				}
			}
		}
		else
		{
			links[i].hoverColor = rules[SelectorsIndex[selector]].style.color;
			links[i].style.color = links[i].defColor;
		}
		if(selector.indexOf('textdescription') != -1)
		{
			var ps = links[i].getElementsByTagName('p');
			for(j = 0; j < ps.length; j++)
			{
				var pOver = function f(l) { return function(){LinkOnMouseOver(l);} } (ps[j]);
				var pOut = function f(l) { return function(){LinkOnMouseOut(l);} } (ps[j]);
				ps[j].defColor = links[i].defColor;
				ps[j].hoverColor = links[i].hoverColor;
				ps[j].style.color = links[i].defColor;
				if(typeof links[i].addEventListener != 'undefined')
				{
					links[i].addEventListener('mouseover',pOver,false);
					links[i].addEventListener('mouseout',pOut,false);
				}
				else
				{
					links[i].attachEvent('onmouseover',pOver);
					links[i].attachEvent('onmouseout',pOut);
				}
			}
		}
		if(typeof links[i].addEventListener != 'undefined')
		{
			links[i].addEventListener('mouseover',fOver,false);
			links[i].addEventListener('mouseout',fOut,false);
		}
		else
		{
			links[i].attachEvent('onmouseover',fOver);
			links[i].attachEvent('onmouseout',fOut);
		}
	}
	for(i = 0; i < stylesToSet.length; i++)
	{
		rules[stylesToMod[i]].style.color = links[stylesToSet[i]].style.color;
	}
}
var curvyCornersVerbose = false;
var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])
function pngFixFunction()
{
	var imgSrc;
	var imgHeight;
	var imgWidth;
	var img;
	var imgName;
	if ((version >= 5.5) && (document.body.filters))
	{
		for(var i=0; i<document.images.length; i++)
		{
			img = document.images[i]
			imgName = img.src.toUpperCase();
			if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
			{
					imgSrc = img.src;
				imgHeight = img.height;
				imgWidth = img.width;
				img.src = "/img/transparentpixel.gif";
				img.height = imgHeight;
				img.width = imgWidth;
				img.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader"
				+ "(src=\'" + imgSrc + "\', sizingMethod='scale');";
			}
		}
	}
}
var preloadNow = 0;
var preloadImageObj = new Array();
function PreloadImages(im)
{
	if(document.images && preloadNow < preload.length)
	{
		preloadImageObj[im].src = preload[preloadNow];
		preloadNow ++ ;
	}
}
function onPreloadImage(im)
{
	setTimeout('PreloadImages('+ im + ')',10);
}
window.onload = function() {
	pngFixFunction();
	LinksOnLoad();	
	var i;
	for(i = 0; i < 8; i++)
	{
		preloadImageObj[i] = new Image();
		var onl = function f(l) { return function(){onPreloadImage(l);} } (i);
		if(typeof preloadImageObj[i].addEventListener != 'undefined')
		{
			preloadImageObj[i].addEventListener('load',onl,false);
		}
		else
		{
			preloadImageObj[i].attachEvent('onload',onl);
		}
		PreloadImages(i);
	}
}
