var intervalSpeed = 3;
var easing = 5;

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

// add a class, useful for css
function addClass(element,value) 
{
	if (!element.className) 
	{
		element.className = value;
	}
	else 
	{
		newClassName = element.className;
		newClassName+= " ";
		newClassName+= value;
		element.className = newClassName;
	}
}

// plug html markup into document
function insertAfter(newElement, targetElement)
{
	var parent = targetElement.parentNode;
	if(parent.lastChild == targetElement)
	{
		parent.appendChild(newElement);
	}
	else
	{
		parent.insertBefore(newElement,targetElement.nextSibling);
	}
}

// simulates IE's native mousenter and mouseleave
// thanks to http://www.dynamic-tools.net/ for this one
function isMouseLeaveOrEnter(evt, handler)
{		
	if (evt.type != 'mouseout' && evt.type != 'mouseover') return false;
	var relTrgt = evt.relatedTarget ? evt.relatedTarget :
	event.type == 'mouseout' ? evt.toElement : evt.fromElement;
	while (relTrgt && relTrgt != handler) relTrgt = relTrgt.parentNode;
	return (relTrgt != handler);
}

function changeHeight(elementID, final_y, interval)
{
	if(!document.getElementById) return false;
	if(!document.getElementById(elementID)) return false;
	
	var elem = document.getElementById(elementID);
	if (elem.movement)
	{
		clearTimeout(elem.movement);
	}
	if (!elem.style.height)
	{
		elem.style.height = final_y + "px";
	}
	var ypos = parseInt(elem.style.height);
	if (ypos == final_y)
	{
		return true;
	}
	if (ypos < final_y)
	{
		var dist = Math.ceil((final_y - ypos)/easing)
		ypos += dist;
	}
	if (ypos > final_y)
	{
		var dist = Math.ceil((ypos - final_y)/easing)
		ypos -= dist;
	}
	elem.style.height = ypos + "px";
	var repeat = "changeHeight('"+elementID+"', "+final_y+", "+interval+")";
	elem.movement = setTimeout(repeat,interval);
}

// ie doesnt recognize the method indexOf()
function checkIndexOf()
{
	if (!Array.indexOf) 
	{
		Array.prototype.indexOf = function (obj, start) 
		{
			for (var i = (start || 0); i < this.length; i++) 
			{
				if (this[i] == obj)
				{
					return i;
				}	
			}
		}
	}
}

// non-semantic divs
function divs() {
	if (!document.getElementById) return false;
	if (!document.getElementById("bodyTop")) return false;
	var bodyTop = document.getElementById("bodyTop");
		
	var symbol = document.createElement("div");
	symbol.setAttribute("id", "symbol");
	insertAfter(symbol, bodyTop);
}

// animate dropdown menu
function styleSwitch() 
{
	if (!document.getElementById) return false;
	if (!document.getElementById("styleSwitcher")) return false;
	
	var styleSwitcher = document.getElementById("styleSwitcher");
	
	var trigger = styleSwitcher.getElementsByTagName("li")[0];
	var dropDownContainer = styleSwitcher.getElementsByTagName("div")[0];
	var dropDownUl = styleSwitcher.getElementsByTagName("ul")[1];
	dropDownUl.style.display = "block";
	
	dropDownContainer.setAttribute("id", "styleContainer");
	
	var menuHeight = dropDownContainer.offsetHeight - trigger.offsetHeight;
	changeHeight('styleContainer', 0, intervalSpeed);
	
	trigger.onmouseover = function()
	{
		changeHeight('styleContainer', menuHeight + trigger.offsetHeight, intervalSpeed);
	}
	
	trigger.onmouseout = function(e)
	{
		if (isMouseLeaveOrEnter(e, trigger))
		{ changeHeight('styleContainer', 0, intervalSpeed); }
	}
}

function resize(page,width,height)
{	
	window.close();
	popup(page, width, height)
}

function popup(page, width, height)
{
	var screenHeight = screen.availHeight;
	var screenWidth = screen.availWidth;	
	var x = (screen.availWidth / 2) - (width / 2);
	var y = (screen.availHeight/ 2) - (height / 2);	
	var location = "no";
	var menubar = "no";
	var resizable = "no";
	var scrollbars = "no";
	var status = "no";
	var titlebar = "yes";
	var toolbar = "no";
	var params = "width=" + width + ",height=" + height + ",left=" + x + ",top="+y + ", location=" + location + ", menubar=" + menubar + ", resizable=" + resizable + ", scrollbars=" + scrollbars + ", status=" + status + ", titlebar=" + titlebar + ", toolbar=" + toolbar;
	var popupWindow = window.open(page, 'popupWindow' + width + '_' + height, params);
	popupWindow.focus();
}

addLoadEvent(divs);
addLoadEvent(checkIndexOf);
//addLoadEvent(styleSwitch);