/*

*/
var bVer=parseInt(navigator.appVersion);
var bName=navigator.appName.toLowerCase();
var _agent=navigator.userAgent.toLowerCase();

_slideMenu_ie6  	= (_agent.indexOf("msie 6.0") != -1);
_slideMenu_ie7  	= (_agent.indexOf("msie 7.0") != -1);

_slideMenu_isIE = (_slideMenu_ie6 || _slideMenu_ie7);

function slideMenu(id){
	this.menu=document.getElementById(id);
	this.submenu=this.menu.getElementsByTagName("span");
	this.speed=3;
	this.delay=30;
}

slideMenu.prototype.init=function(){
	var pointer=this, a, c;
	for(var i=0; i<this.submenu.length; i++) {
		this.submenu[i].onmouseover=function(){
			pointer.collapseOther(this.parentNode);
			pointer.slide(this.parentNode);
		}
	}

}

slideMenu.prototype.slide=function(submenu){
	var pointer=this;
	var smenu=submenu.getElementsByTagName('ul')[0];
	if (typeof smenu=='undefined'){
		this.collapseAll();
	}else{
		if (smenu.className=='collapsed'){
			this.expandMenu(smenu);
		}
		if (smenu.className=='expand'){
			this.collapseMenu(smenu);
		}
	}
}

slideMenu.prototype.expandMenu=function(submenu){
	var cHeight=0;
	var cHeight_pre=cHeight;
	var li=submenu.getElementsByTagName("li");
	for (var i=0;i<li.length;i++){
		cHeight+=li[i].offsetHeight;
	}

	//cHeight=Math.min(cHeight,160);

	var slideBy=Math.round(this.speed*li.length);

	var pointer=this;
	var interval=setInterval(function() {
		var newHeight=submenu.offsetHeight+slideBy;
		if (newHeight<cHeight){
			submenu.style.height=newHeight+'px';
		}else {
			clearInterval(interval);
			submenu.style.height=cHeight+'px';
			submenu.className='expand';
			pointer.collapseOther(submenu);
//			submenu.onmouseout=setTimeout(function(){pointer.collapseAll()},3000);
			//IE6 PNG 背景問題, 試過用 relative 還他媽不行, 幹!!!!
			//submenu.style.position='static';
		}
	}, pointer.delay);
}


slideMenu.prototype.collapseMenu=function(submenu){
	var cHeight=0;
	var li=submenu.getElementsByTagName("li");


	var slideBy=Math.round(this.speed*li.length);
	var delay=Math.max(Math.round(this.delay/li.length),1);

	var pointer=this;
	var interval=setInterval(function() {
		var newHeight=submenu.offsetHeight-slideBy;
		if (newHeight>cHeight){
			submenu.style.height=newHeight+'px';
		}else {
			clearInterval(interval);
			submenu.style.height=cHeight+'px';
			submenu.className='collapsed';
			//IE6 問題, 不用 absolute 沒法改變高度而縮小, 幹!!!!
			//submenu.style.position='absolute';
		}
	}, delay);
}

slideMenu.prototype.collapseOther=function(submenu){
	var smenu,pointer=this;
	for (var i=0;i< this.submenu.length;i++){
		smenu=this.submenu[i].parentNode.getElementsByTagName('ul')[0];
		if (typeof smenu!='undefined'){
			if (smenu!=submenu && smenu.className=='expand'){
				this.collapseMenu(smenu);
			}else{
				//smenu.parentNode.onmouseout=function(){pointer.collapseAll();}
			}
		}
	}
}

slideMenu.prototype.collapseAll=function(){
	var smenu,pointer=this;
	for (var i=0;i< this.submenu.length;i++){
		smenu=this.submenu[i].parentNode.getElementsByTagName('ul')[0];
		if (typeof smenu!='undefined'){
			if (smenu.className=='expand'){
				this.collapseMenu(smenu);
			}
		}
	}
}

