function createElement(tagName, text, properties) {
	var el = document.createElement(tagName);
	
	el.appendChild(document.createTextNode(text));
	
	if(properties){
		Object.extend(el, properties);
	}
	return el;
};

function addSwf(element, fUrl, fwidth, fheight) {
	var menu_flash = '<object id="bbb" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0" width="'+ fwidth +'" height="'+ fheight +'"><param name="movie" value="'+ fUrl +'"><param name="wmode" value="window"><embed name="bbb" wmode="window" src="'+ fUrl +'" type="application/x-shockwave-flash" width="'+ fwidth +'" height="'+ fheight +'" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" quality="best" play="true"></object>';
	//var menu_flash = '<object id="bbb" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0" width="'+ fwidth +'" height="'+ fheight +'"><param name="movie" value="'+ fUrl +'"><param name="wmode" value="transparent"><embed id="flash_embed" name="bbb" wmode="transparent" src="'+ fUrl +'" type="application/x-shockwave-flash" width="'+ fwidth +'" height="109" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" quality="best" play="true"></object>';
	//alert(element);
	var flash_p = document.createElement("p");
	flash_p.className = "hidden";
	
	var flash_text = $$("#swf p")[0].firstChild.nodeValue;
	var text = document.createTextNode(flash_text);
		
	flash_p.appendChild(text);
	
	//alert(flash_text);
	
	var el =$(element);
	el.update(menu_flash);
	el.appendChild(flash_p);
}

function insertAfter(newElement , targetElememt) {
	var parent = targetElememt.parentNode;
	
	if(parent.lastChild == targetElememt){
		parent.appendChild(newElement);
	}else{
		parent.insertBefore(newElement, targetElement.nextSibling);
	}
}

var TabButton = function(id, activeImg, inActiveImg) {
	var el = $(id);
	el.activeImg = activeImg;
	el.inActiveImg = inActiveImg;
	el.img = el.getElementsByTagName("img")[0];
	
	return el;
}

var TabControl = Class.create( {
	
	initialize : function(tabButtons, callback) {
		this.tabButtons = tabButtons;
		this.callback = callback;
		this.objActive = null;
	},
	
	init : function() {
		
		for(var i = 0; i < this.tabButtons.length; i++) {
			if(this.tabButtons[i].activeImg == this.tabButtons[i].img.src) {
				this.objActive = this.tabButtons[i];
				break;
			}
			
			this.tabButtons[i].onclick = this.clickHandler.bindAsEventListener(this, this.tabButtons[i]);
		}
		
		if(this.objActive == null) {
			this.objActive = this.tabButtons[0];
			this.objActive.img.src = this.objActive.activeImg;
		}
	},

	clickHandler : function(evt, tabButton) {
		this.objActive.img.src = this.objActive.inActiveImg;
		tabButton.img.src = tabButton.activeImg;
		
		this.objActive = tabButton;
		
		var result = true;
		
		if(this.callback != null) {
			result = this.callback.bindAsEventListener(this, tabButton);
		}
		
		return result;
	}
});

var MainMenuControl = Class.create( {
	
	initialize : function() {
		this.visibleSubMenu = null;
		this.activeButton = null;
	},
	
	init : function(menus) {
		var size = menus.length;
		for(var i = 0; i < size; i++) {
			
			var btnList = menus[i].getElementsByTagName("a");
			if(btnList.length > 0) {
				var button = btnList[0];
				
				button.onmouseover = this.overHandler.bindAsEventListener(this, button);
				button.onfocus = this.overHandler.bindAsEventListener(this, button);
				
				this.subMenuInit(button);
			}
		}
	},
	
	subMenuInit : function(button) {
		
		var sub = button.parentNode.getElementsByTagName("ul");
		
		if(sub.length > 0) {
			var subMenu = sub[0];
			
			var menuList = subMenu.getElementsByTagName("a");
			var size = menuList.length;
			for(var i = 0; i < size; i++) {
				RollOverButton(menuList[i]);
			}
		}
	},

	overHandler: function(evt, button){
		var img = button.getElementsByTagName("img")[0];
		img.src = img.src.replace("off.gif", "on.gif");
		
		if(this.activeButton && this.activeButton != button) {
			
			img = this.activeButton.getElementsByTagName("img")[0];
			img.src = img.src.replace("on.gif", "off.gif");
			
			if(this.visibleSubMenu){
				this.visibleSubMenu.style.visibility = "hidden";
			}
		}

		var subMenu = button.parentNode.getElementsByTagName("ul")[0];
		if(subMenu) {
			subMenu.style.visibility = "visible";
			this.visibleSubMenu = subMenu;
		}
		
		this.activeButton = button;
	}
});

var RollOverButton = function(button) {
	Object.extend(button, {
		init : function(overCallBack, outCallBack) {
			this.img = this.getElementsByTagName("img")[0];
		
			this.overCallBack = overCallBack;
			this.outCallBack = outCallBack;
			this.onmouseover = this.overHandler.bindAsEventListener(this);
			this.onmouseout = this.outHandler.bindAsEventListener(this);
			this.onfocus = this.overHandler.bindAsEventListener(this);
			this.onblur = this.outHandler.bindAsEventListener(this);
		},
		
		overHandler: function(evt){
			this.img.src = this.img.src.replace("off.gif", "on.gif");
			if(this.overCallBack) {
				this.overCallBack.bindAsEventListener(this);
			}
		},
		
		outHandler: function(evt){
			this.img.src = this.img.src.replace("on.gif", "off.gif");
			if(this.outCallBack) {
				this.outCallBack.bindAsEventListener(this);
			}
		}
	});
	
	button.init();
	
	return button;
}

function popupInit() {
	var linkList = document.getElementsByTagName("a");
	
	for(var i = 0; i < linkList.length; i++) {
		var winNm = linkList[i].getAttribute("winnm");
		
		if(winNm != null) {
			linkList[i].onclick = popupOpen.bindAsEventListener(linkList[i], linkList[i].href, winNm, linkList[i].getAttribute("popup"));
		}
	}
	
}

function popupOpen(evt, href, winNm, popup) {
	window.open(href, winNm, popup);
	return false;
}
 
function loadSwf(plnFlash, flashSrc, imgSrc) {
	if(FlashDetect.installed) {
		if(navigator.appName == 'Netscape'){
			addSwf(plnFlash, flashSrc, '724', '135');
		}else{
			addSwf(plnFlash, flashSrc, '724', '135');
		}
	}else{
		var el = $(plnFlash);
		el.update("<img src=\"" + imgSrc + "\" alt=\"\" />");
	}
}

Event.observe(window, 'load', popupInit, false);
