function DropDownMenu1(id){this.type="horizontal";this.delay={"show": 0,
"hide": 100
}
this.position={"top": 0,
"left": 0
}
this.zIndex={"visible": 1,
"hidden": -1
};this.browser={"ie": Boolean(document.body.currentStyle),
"ie5": (navigator.appVersion.indexOf("MSIE 5.5") !=-1 || navigator.appVersion.indexOf("MSIE 5.0") !=-1)
};if (!this.browser.ie){this.browser.ie5=false;}
this.init=function(){if (!document.getElementById(this.id)){return alert("DropDownMenu1.init() failed. Element '"+this.id+"' does not exist.");}
if (this.type !="horizontal" && this.type !="vertical"){return alert("DropDownMenu1.init() failed. Unknown menu type:'"+this.type+"'");}
if (this.browser.ie && this.browser.ie5){fixWrap();}
fixSections();parse(document.getElementById(this.id).childNodes, this.tree, this.id);}
function fixSections(){var arr=document.getElementById(self.id).getElementsByTagName("div");var sections=new Array();var widths=new Array();for (var i=0; i < arr.length; i++){if (arr[i].className=="section"){sections.push(arr[i]);}}
for (var i=0; i < sections.length; i++){widths.push(getMaxWidth(sections[i].childNodes));}
for (var i=0; i < sections.length; i++){sections[i].style.width=(widths[i])+"px";}
if (self.browser.ie){for (var i=0; i < sections.length; i++){setMaxWidth(sections[i].childNodes, widths[i]);}}}
function fixWrap(){var elements=document.getElementById(self.id).getElementsByTagName("a");for (var i=0; i < elements.length; i++){if (/item2/.test(elements[i].className)){elements[i].innerHTML='<div nowrap="nowrap">'+elements[i].innerHTML+'</div>';}}}
function getMaxWidth(nodes){var maxWidth=0;for (var i=0; i < nodes.length; i++){if (nodes[i].nodeType !=1){continue;}
if (nodes[i].offsetWidth > maxWidth){maxWidth=nodes[i].offsetWidth;}}
return maxWidth;}
function setMaxWidth(nodes, maxWidth){for (var i=0; i < nodes.length; i++){if (nodes[i].nodeType==1 && /item2/.test(nodes[i].className) && nodes[i].currentStyle){if (self.browser.ie5){nodes[i].style.width=(maxWidth)+"px";}else{nodes[i].style.width=(maxWidth - parseInt(nodes[i].currentStyle.paddingLeft) - parseInt(nodes[i].currentStyle.paddingRight))+"px";}}}}
function parse(nodes, tree, id){for (var i=0; i < nodes.length; i++){if (1 !=nodes[i].nodeType){continue;}
switch (true){case /\bitem1\b/.test(nodes[i].className):
nodes[i].id=id+"-"+tree.length;tree.push(new Array());nodes[i].onmouseover=item1over;nodes[i].onmouseout=item1out;break;case /\bitem2\b/.test(nodes[i].className):
nodes[i].id=id+"-"+tree.length;tree.push(new Array());break;case /\bsection\b/.test(nodes[i].className):
nodes[i].id=id+"-"+(tree.length - 1)+"-section";nodes[i].onmouseover=sectionOver;nodes[i].onmouseout=sectionOut;var box1=document.getElementById(id+"-"+(tree.length - 1));var box2=document.getElementById(nodes[i].id);if ("horizontal"==self.type){box2.style.top=box1.offsetTop+box1.offsetHeight+self.position.top+"px";if (self.browser.ie5){box2.style.left=self.position.left+"px";}else{box2.style.left=box1.offsetLeft+self.position.left+"px";}}else if ("vertical"==self.type){box2.style.top=box1.offsetTop+self.position.top+"px";if (self.browser.ie5){box2.style.left=box1.offsetWidth+self.position.left+"px";}else{box2.style.left=box1.offsetLeft+box1.offsetWidth+self.position.left+"px";}}
self.sections.push(nodes[i].id);self.sectionsShowCnt.push(0);self.sectionsHideCnt.push(0);break;}
if (nodes[i].childNodes){if (/\bsection\b/.test(nodes[i].className)){parse(nodes[i].childNodes, tree[tree.length - 1], id+"-"+(tree.length - 1));}else{parse(nodes[i].childNodes, tree, id);}}}}
function item1over(){var id_section=this.id+"-section";if (self.visible){var el=new Element(self.visible);el=document.getElementById(el.getParent().id);if (/item1-active/.test(el.className)){el.className=el.className.replace(/item1-active/, "item1");}}
if (self.sections.contains(id_section)){self.sectionsHideCnt[self.sections.indexOf(id_section)]++;var cnt=self.sectionsShowCnt[self.sections.indexOf(id_section)];setTimeout(function(a, b){return function(){self.showSection(a, b);}}(id_section, cnt), self.delay.show);}else{if (self.visible){var cnt=self.sectionsHideCnt[self.sections.indexOf(self.visible)];setTimeout(function(a, b){return function(){self.hideSection(a, b);}}(self.visible, cnt), self.delay.show);}}}
function item1out(){var id_section=this.id+"-section";if (self.sections.contains(id_section)){self.sectionsShowCnt[self.sections.indexOf(id_section)]++;if (id_section==self.visible){var cnt=self.sectionsHideCnt[self.sections.indexOf(id_section)];setTimeout(function(a, b){return function(){self.hideSection(a, b);}}(id_section, cnt), self.delay.hide);}}}
function sectionOver(){self.sectionsHideCnt[self.sections.indexOf(this.id)]++;var el=new Element(this.id);el=document.getElementById(el.getParent().id);if (!/item1-active/.test(el.className)){el.className=el.className.replace(/item1/, "item1-active");}}
function sectionOut(){self.sectionsShowCnt[self.sections.indexOf(this.id)]++;var cnt=self.sectionsHideCnt[self.sections.indexOf(this.id)];setTimeout(function(a, b){return function(){self.hideSection(a, b);}}(this.id, cnt), self.delay.hide);}
this.showSection=function(id, cnt){if (typeof cnt !="undefined"){if (cnt !=this.sectionsShowCnt[this.sections.indexOf(id)]){return;}}
this.sectionsShowCnt[this.sections.indexOf(id)]++;var el=new Element(id);var parent=document.getElementById(el.getParent().id);if (!/item1-active/.test(parent.className)){parent.className=parent.className.replace(/item1/, "item1-active");}
if (this.visible){if (id==this.visible){return;}
this.hideSection(this.visible);}
document.getElementById(id).style.visibility="visible";document.getElementById(id).style.zIndex=this.zIndex.visible;this.visible=id;}
this.hideSection=function(id, cnt){if (typeof cnt !="undefined"){if (cnt !=this.sectionsHideCnt[this.sections.indexOf(id)]){return;}}
var el=new Element(id);var parent=document.getElementById(el.getParent().id);parent.className=parent.className.replace(/item1-active/, "item1");document.getElementById(id).style.zIndex=this.zIndex.hidden;document.getElementById(id).style.visibility="hidden";if (id==this.visible){this.visible="";}
else{return;}
this.sectionsHideCnt[this.sections.indexOf(id)]++;}
this.hideSelf=function(cnt){if (this.visible && cnt==this.sectionsHideCnt[this.sections.indexOf(this.visible)]){this.hideSection(this.visible);}}
function Element(id){this.getParent=function(){var s=this.id.substr(this.menu.id.length);var a=s.split("-");a.pop();return new Element(this.menu.id+a.join("-"));}
this.menu=self;this.id=id;}
var self=this;this.id=id;this.tree=[];this.sections=[];this.sectionsShowCnt=[];this.sectionsHideCnt=[];this.visible="";}
if (typeof Array.prototype.indexOf=="undefined"){Array.prototype.indexOf=function(item){for (var i=0; i < this.length; i++){if ((typeof this[i]==typeof item) && (this[i]==item)){return i;}}
return -1;}}
if (typeof Array.prototype.contains=="undefined"){Array.prototype.contains=function(s){for (var i=0; i < this.length; i++){if (this[i]===s){return true;}}
return false;}}

