function vB_Popup_Handler(){this.open_steps=10;this.open_fade=true;this.active=false;this.menus=new Array();this.activemenu=null;this.hidden_selects=new Array()};vB_Popup_Handler.prototype.activate=function(active){this.active=active};vB_Popup_Handler.prototype.register=function(controlkey,noimage){this.menus[controlkey]=new vB_Popup_Menu(controlkey,noimage);return this.menus[controlkey]};vB_Popup_Handler.prototype.hide=function(){if(this.activemenu!=null){this.menus[this.activemenu].hide()}};vBmenu=new vB_Popup_Handler();function vbmenu_hide(e){if(e&&e.button&&e.button!=1&&e.type=='click'){return true}else{vBmenu.hide()}};function vB_Popup_Menu(controlkey,noimage){this.yOffset=1;this.xOffset=0;this.controlkey=controlkey;this.menuname=this.controlkey.split('.')[0]+'_menu';this.init_control(noimage);if(elementById(this.menuname)){this.init_menu()}this.slide_open=(is_opera?false:true);this.open_steps=vBmenu.open_steps};vB_Popup_Menu.prototype.init_control=function(noimage){this.controlobj=elementById(this.controlkey);this.controlobj.state=false;if(this.controlobj.firstChild&&(this.controlobj.firstChild.tagName=='TEXTAREA'||this.controlobj.firstChild.tagName=='INPUT')){alert('cannot add menu on textarea or input tags !\r\nPlease check your code')}else{if(!noimage&&!(is_mac&&is_ie)){var space=document.createTextNode(' ');this.controlobj.appendChild(space);var img=document.createElement('img');img.src=IMGDIR_MISC+'/menu_open.gif';img.border=0;img.title='';img.alt='';this.controlobj.appendChild(img)}this.controlobj.unselectable=true;if(!noimage){this.controlobj.style.cursor=pointer_cursor}this.controlobj.onclick=vB_Popup_Events.prototype.controlobj_onclick;this.controlobj.onmouseover=vB_Popup_Events.prototype.controlobj_onmouseover}};vB_Popup_Menu.prototype.init_menu=function(){this.menuobj=elementById(this.menuname);if(this.menuobj&&!this.menuobj.initialized){this.menuobj.initialized=true;this.menuobj.onclick=e_by_gum;this.menuobj.style.position='absolute';this.menuobj.style.zIndex=50;if(is_ie&&!is_mac){this.menuobj.style.filter+="progid:DXImageTransform.Microsoft.alpha(enabled=1,opacity=100)"}this.init_menu_contents()}};vB_Popup_Menu.prototype.init_menu_contents=function(){var tds=elementsByTagName(this.menuobj,'td');for(var i=0;i<tds.length;i++){if(tds[i].className=='vbmenu_option'){if(tds[i].title&&tds[i].title=='nohilite'){tds[i].title=''}else{tds[i].controlkey=this.controlkey;tds[i].onmouseover=vB_Popup_Events.prototype.menuoption_onmouseover;tds[i].onmouseout=vB_Popup_Events.prototype.menuoption_onmouseout;if(typeof tds[i].onclick=='function'){tds[i].ofunc=tds[i].onclick;tds[i].onclick=vB_Popup_Events.prototype.menuoption_onclick_function}else{tds[i].onclick=vB_Popup_Events.prototype.menuoption_onclick_link}if(!is_saf&&!is_kon){try{links=elementsByTagName(tds[i],'a');for(var j=0;j<links.length;j++){if(typeof links[j].onclick=='undefined'){links[j].onclick=e_by_gum}}}catch(e){}}}}}var tds=elementsByTagName(this.menuobj,'th');for(var i=0;i<tds.length;i++){if(tds[i].className=='vbmenu_option'){if(tds[i].title&&tds[i].title=='nohilite'){tds[i].title=''}else{tds[i].controlkey=this.controlkey;tds[i].onmouseover=vB_Popup_Events.prototype.menuoption_onmouseover;tds[i].onmouseout=vB_Popup_Events.prototype.menuoption_onmouseout;if(typeof tds[i].onclick=='function'){tds[i].ofunc=tds[i].onclick;tds[i].onclick=vB_Popup_Events.prototype.menuoption_onclick_function}else{tds[i].onclick=vB_Popup_Events.prototype.menuoption_onclick_link}if(!is_saf&&!is_kon){try{links=elementsByTagName(tds[i],'a');for(var j=0;j<links.length;j++){if(typeof links[j].onclick=='undefined'){links[j].onclick=e_by_gum}}}catch(e){}}}}}};vB_Popup_Menu.prototype.show=function(obj,instant){if(!vBmenu.active){return false}else if(!this.menuobj){this.init_menu()}if(!this.menuobj){return false}if(vBmenu.activemenu!=null){vBmenu.menus[vBmenu.activemenu].hide()}vBmenu.activemenu=this.controlkey;this.menuobj.style.display='';if(vBmenu.slide_open){this.menuobj.style.clip='rect(auto, auto, auto, auto)'}this.pos=this.fetch_offset(obj);this.leftpx=this.pos['left'];this.toppx=this.pos['top']+obj.offsetHeight;if((this.leftpx+this.menuobj.offsetWidth)>=document.body.clientWidth&&(this.leftpx+obj.offsetWidth-this.menuobj.offsetWidth)>0){this.leftpx=this.leftpx+obj.offsetWidth-this.menuobj.offsetWidth;this.direction='right'}else{this.direction='left'}this.menuobj.style.left=(this.leftpx+this.xOffset)+'px';this.menuobj.style.top=(this.toppx+this.yOffset)+'px';if(!instant&&this.slide_open){this.intervalX=Math.ceil(this.menuobj.offsetWidth/this.open_steps);this.intervalY=Math.ceil(this.menuobj.offsetHeight/this.open_steps);this.slide((this.direction=='left'?0:this.menuobj.offsetWidth),0,0)}else if(this.menuobj.style.clip&&vBmenu.slide_open){this.menuobj.style.clip='rect(auto, auto, auto, auto)'}this.handle_overlaps(true);if(this.controlobj.editorid){this.controlobj.state=true;this.controlobj.editor.menu_context(this.controlobj,'mousedown')}};vB_Popup_Menu.prototype.hide=function(e){if(e&&e.button&&e.button!=1){return true}this.stop_slide();this.menuobj.style.display='none';this.handle_overlaps(false);if(this.controlobj.editorid){this.controlobj.state=false;this.controlobj.editor.menu_context(this.controlobj,'mouseout')}vBmenu.activemenu=null};vB_Popup_Menu.prototype.hover=function(obj){if(vBmenu.activemenu!=null){if(vBmenu.menus[vBmenu.activemenu].controlkey!=this.id){this.show(obj,true)}}};vB_Popup_Menu.prototype.choose=function(e,obj){var links=elementsByTagName(obj,'a');if(links[0]){if(is_ie){links[0].click();window.event.cancelBubble=true}else{if(e.shiftKey){window.open(links[0].href);e.stopPropagation();e.preventDefault()}else{window.location=links[0].href;e.stopPropagation();e.preventDefault()}}this.hide()}};vB_Popup_Menu.prototype.slide=function(clipX,clipY,opacity){if(this.direction=='left'&&(clipX<this.menuobj.offsetWidth||clipY<this.menuobj.offsetHeight)){if(vBmenu.open_fade){opacity+=10;setOpacity(this.menuobj,opacity)}clipX+=this.intervalX;clipY+=this.intervalY;this.menuobj.style.clip="rect(auto, "+clipX+"px, "+clipY+"px, auto)";this.slidetimer=setTimeout("vBmenu.menus[vBmenu.activemenu].slide("+clipX+", "+clipY+", "+opacity+");",0)}else if(this.direction=='right'&&(clipX>0||clipY<this.menuobj.offsetHeight)){if(vBmenu.open_fade){opacity+=10;setOpacity(this.menuobj,opacity)}clipX-=this.intervalX;clipY+=this.intervalY;this.menuobj.style.clip="rect(auto, "+this.menuobj.offsetWidth+"px, "+clipY+"px, "+clipX+"px)";this.slidetimer=setTimeout("vBmenu.menus[vBmenu.activemenu].slide("+clipX+", "+clipY+", "+opacity+");",0)}else{this.stop_slide()}};vB_Popup_Menu.prototype.stop_slide=function(){clearTimeout(this.slidetimer);this.menuobj.style.clip='rect(auto, auto, auto, auto)';if(vBmenu.open_fade){setOpacity(this.menuobj,100)}};vB_Popup_Menu.prototype.fetch_offset=function(obj){var left_offset=obj.offsetLeft;var top_offset=obj.offsetTop;while((obj=obj.offsetParent)!=null){left_offset+=obj.offsetLeft;top_offset+=obj.offsetTop}return{'left':left_offset,'top':top_offset}};vB_Popup_Menu.prototype.overlaps=function(obj,m){var s=new Array();var pos=this.fetch_offset(obj);s['L']=pos['left'];s['T']=pos['top'];s['R']=s['L']+obj.offsetWidth;s['B']=s['T']+obj.offsetHeight;if(s['L']>m['R']||s['R']<m['L']||s['T']>m['B']||s['B']<m['T']){return false}return true};vB_Popup_Menu.prototype.handle_overlaps=function(dohide){if(is_ie){var selects=elementsByTagName(document,'select');if(dohide){var menuarea=new Array();menuarea={'L':this.leftpx,'R':this.leftpx+this.menuobj.offsetWidth,'T':this.toppx,'B':this.toppx+this.menuobj.offsetHeight};for(var i=0;i<selects.length;i++){if(this.overlaps(selects[i],menuarea)){var hide=true;var s=selects[i];while(s=s.parentNode){if(s.className=='vbmenu_popup'){hide=false;break}}if(hide){selects[i].style.visibility='hidden';array_push(vBmenu.hidden_selects,i)}}}}else{while(true){var i=array_pop(vBmenu.hidden_selects);if(typeof i=='undefined'||i==null){break}else{selects[i].style.visibility='visible'}}}}};function vB_Popup_Events(){};vB_Popup_Events.prototype.controlobj_onclick=function(e){do_an_e(e);if(vBmenu.activemenu==null||vBmenu.menus[vBmenu.activemenu].controlkey!=this.id){vBmenu.menus[this.id].show(this)}else{vBmenu.menus[this.id].hide()}};vB_Popup_Events.prototype.controlobj_onmouseover=function(e){do_an_e(e);vBmenu.menus[this.id].hover(this)};vB_Popup_Events.prototype.menuoption_onclick_function=function(e){this.ofunc(e);vBmenu.menus[this.controlkey].hide()};vB_Popup_Events.prototype.menuoption_onclick_link=function(e){vBmenu.menus[this.controlkey].choose(e,this)};vB_Popup_Events.prototype.menuoption_onmouseover=function(e){this.className='vbmenu_hilite'};vB_Popup_Events.prototype.menuoption_onmouseout=function(e){this.className='vbmenu_option'};var userAgent=navigator.userAgent.toLowerCase();var is_opera=(userAgent.indexOf('opera')!=-1);var is_saf=((userAgent.indexOf('applewebkit')!=-1)||(navigator.vendor=='Apple Computer, Inc.'));var is_webtv=(userAgent.indexOf('webtv')!=-1);var is_ie=((userAgent.indexOf('msie')!=-1)&&(!is_opera)&&(!is_saf)&&(!is_webtv));var is_ie4=((is_ie)&&(userAgent.indexOf('msie 4.')!=-1));var is_moz=((navigator.product=='Gecko')&&(!is_saf));var is_kon=(userAgent.indexOf('konqueror')!=-1);var is_ns=((userAgent.indexOf('compatible')==-1)&&(userAgent.indexOf('mozilla')!=-1)&&(!is_opera)&&(!is_webtv)&&(!is_saf));var is_ns4=((is_ns)&&(parseInt(navigator.appVersion)==4));var is_mac=(userAgent.indexOf('mac')!=-1);var pointer_cursor=(is_ie?'hand':'pointer');function setOpacity(el,opacity){if(el){if(!opacity){var op=100}else{var op=opacity}el.style.filter='alpha(opacity:'+op+')';el.style.KHTMLOpacity=op/100;el.style.MozOpacity=op/100;el.style.opacity=op/100}};function elementsByTagName(parentobj,tag){if(typeof parentobj.getElementsByTagName!='undefined'){return parentobj.getElementsByTagName(tag)}else if(parentobj.all&&parentobj.all.tags){return parentobj.all.tags(tag)}else{return null}};function elementById(oid){if(document.getElementById){return document.getElementById(oid)}else if(document.all){return document.all[oid]}else if(document.layers){return document.layers[oid]}else{return null}};function array_push(a,value){a[a.length]=value;return a.length};function array_pop(a){if(typeof a!='object'||!a.length){return null}else{var r=a[a.length-1];a.length--;return r}};function do_an_e(eo){if(!eo||is_ie){window.event.returnValue=false;window.event.cancelBubble=true;return window.event}else{eo.stopPropagation();eo.preventDefault();return eo}};function e_by_gum(eo){if(!eo||is_ie){window.event.cancelBubble=true;return window.event}else{if(eo.target.type=='submit'){eo.target.form.submit()}eo.stopPropagation();return eo}};