
/**
 * CMenu (Classic Menu)
 *
 * Modified version for the BonusThemes.com template Corez
 * http://www.bonusthemes.com
 *
 * @version 1.0
 * @copyright Creative Pulse 2008
 * @link http://www.creativepulse.eu/goto/cmenu
 */

function CMenu(aa){if(typeof aa.iname!='string'){alert('CMenu initialization error: Instance name is missing');return;}
this.iname=aa.iname;var ba=navigator.userAgent.toLowerCase().match(/msie (\d(.\d*)?)/);var ca=ba&&ba[1]&&ba[1]<7;this.hide_timeout=typeof aa.hide_timeout!='number'?500:aa.hide_timeout;this.mi_empty_normal_class=typeof aa.mi_empty_normal_class!='string'?'':aa.mi_empty_normal_class;this.mi_empty_hover_class=typeof aa.mi_empty_hover_class!='string'?'':aa.mi_empty_hover_class;this.mi_full_normal_class=typeof aa.mi_full_normal_class!='string'?'':aa.mi_full_normal_class;this.mi_full_hover_class=typeof aa.mi_full_hover_class!='string'?'':aa.mi_full_hover_class;this.rounded_corners=typeof aa.rounded_corners!='boolean'?true:aa.rounded_corners;if(this.rounded_corners&&ca)this.rounded_corners=false;this.transparency=typeof aa.transparency!='boolean'?true:aa.transparency;if(this.transparency){this.transparency_ie6=typeof aa.transparency_ie6!='boolean'?false:aa.transparency_ie6;if(!this.transparency_ie6&&ca)this.transparency=false;}
if(this.transparency){this.min_opacity=typeof aa.min_opacity!='number'?0:aa.min_opacity;if(this.min_opacity<0)this.min_opacity=0;else if(this.min_opacity>100)this.min_opacity=100;this.max_opacity=typeof aa.max_opacity!='number'?0:aa.max_opacity;if(this.max_opacity<0)this.max_opacity=0;else if(this.max_opacity>100)this.max_opacity=100;}
this.panel_offset1_x=typeof aa.panel_offset1_x!='number'?0:aa.panel_offset1_x;this.panel_offset1_y=typeof aa.panel_offset1_y!='number'?0:aa.panel_offset1_y;this.panel_offset2_x=typeof aa.panel_offset2_x!='number'?0:aa.panel_offset2_x;this.panel_offset2_y=typeof aa.panel_offset2_y!='number'?0:aa.panel_offset2_y;if(!this.rounded_corners){this.panel_offset2_x=0;this.panel_offset2_y=0;}
this.separator_class=typeof aa.separator_class!='string'?'':aa.separator_class;this.panel_class=typeof aa.panel_class!='string'?'':aa.panel_class;this.panel_tl_class=typeof aa.panel_tl_class!='string'?'':aa.panel_tl_class;this.panel_tc_class=typeof aa.panel_tc_class!='string'?'':aa.panel_tc_class;this.panel_tr_class=typeof aa.panel_tr_class!='string'?'':aa.panel_tr_class;this.panel_ml_class=typeof aa.panel_ml_class!='string'?'':aa.panel_ml_class;this.panel_mr_class=typeof aa.panel_mr_class!='string'?'':aa.panel_mr_class;this.panel_bl_class=typeof aa.panel_bl_class!='string'?'':aa.panel_bl_class;this.panel_bc_class=typeof aa.panel_bc_class!='string'?'':aa.panel_bc_class;this.panel_br_class=typeof aa.panel_br_class!='string'?'':aa.panel_br_class;this.animate=typeof aa.animate!='undefined'||typeof aa.anim_step!='undefined'||typeof aa.anim_interval!='undefined';if(typeof aa.animate=='boolean'&&!aa.animate)this.animate=false;if(this.animate){this.anim_step=typeof aa.anim_step!='number'?30:aa.anim_step;if(this.anim_step<=0||this.anim_step>100)this.anim_step=1;this.anim_interval=typeof aa.anim_interval!='number'?100:aa.anim_interval;}
this.side=typeof aa.side!='string'?'':aa.side.replace(/^\s+|\s+$/g,'').toLowerCase();if(this.side!='left'&&this.side!='right'&&this.side!='up'&&this.side!='down')this.side='right';this.orientation=typeof aa.orientation!='string'?'':aa.orientation.replace(/^\s+|\s+$/g,'').toLowerCase();if((this.side=='left'||this.side=='right')&&this.orientation!='up'&&this.orientation!='down')this.orientation='down';else if((this.side=='up'||this.side=='down')&&this.orientation!='left'&&this.orientation!='right')this.orientation='right';this.direction=this.side.charAt(0)+this.orientation.charAt(0);this.last_inst_id=0;this.menuitems=new Array();this.registry=new Array();this.timer_hide=0;this.vis_mi=null;this.wdg_base=document.getElementsByTagName('body')[0];}
CMenu.prototype.registry_add=function(mi){this.registry.push(mi);return this.registry.length-1;}
CMenu.prototype.add_item=function(da){da.base=this;da.parent=this;da.iname=typeof da.id!='string'?'':da.id;var mi=new CMenuItem(da);this.menuitems.push(mi);return mi;}
CMenu.prototype.run=function(){for(var i=0,len=this.menuitems.length;i<len;i++)this.menuitems[i].run();}
CMenu.prototype.handle_mouseover=function(ea,e){if(this.timer_hide>0){clearTimeout(this.timer_hide);this.timer_hide=0;}
var mi=this.registry[ea];if(this.vis_mi){var fa=new Array();mi.query_panels(fa,true);var ga=new Array();this.vis_mi.query_panels(ga,false);while(true){var ha=ga.shift();var ia=fa.shift();if(!ha)break;if(!ia||ha!=ia){ha.hide_now();while(ha=ga.shift())ha.hide_now();break;}}}
this.vis_mi=mi;mi.handle_mouseover(e);}
CMenu.prototype.handle_mouseout=function(ja,e){if(this.timer_hide==0)this.timer_hide=setTimeout('document["'+this.iname+'"].hide_process('+ja+')',this.hide_timeout);var mi=this.registry[ja];mi.handle_mouseout(e);}
CMenu.prototype.handle_click=function(ka){var mi=this.registry[ka];mi.handle_click();}
CMenu.prototype.hide_process=function(la){var mi=this.registry[la];mi.hide_process();}
function CMenuItem(ma){this.base=ma.base;this.parent=ma.parent;this.iname=typeof ma.iname!='string'?'':ma.iname;this.link=typeof ma.link!='string'?'':ma.link;this.caption=typeof ma.caption!='string'?'':ma.caption;this.type=typeof ma.caption!='string'?'':ma.type;if(this.type!='text'&&this.type!='link'&&this.type!='link_new'&&this.type!='link_popup'&&this.type!='separator'){if(this.link!=''&&this.caption!='')this.type='link';else if(this.caption!='')this.type='text';else this.type='separator';}
this.panel_inner=null;this.panel_outer=null;this.panel_x=0;this.panel_y=0;this.panel_w=0;this.panel_h=0;this.anim_progress=0;this.anim_speed=0;this.anim_timer=0;this.menuitems=new Array();this.state_mouseover=false;this.state_panelopen=false;if(this.iname==''){this.wdg=document.createElement('div');if(typeof ma.id!='undefined')this.wdg.id=ma.id;if(this.type=='separator'){if(this.base.separator_class!='')this.wdg.className=this.base.separator_class;}
else{if(this.caption!='')this.wdg.innerHTML=this.caption;if(this.type=='link'||this.type=='link_new'||this.type=='link_popup')this.wdg.style.cursor='pointer';this.h_state_change();}}
else{this.wdg=document.getElementById(this.iname);}
this.reg_id=this.base.registry_add(this);this.wdg.setAttribute('base_iname',this.base.iname);this.wdg.setAttribute('reg_id',this.reg_id);this.wdg.onmouseover=function(e){document[this.getAttribute('base_iname')].handle_mouseover(this.getAttribute('reg_id'),e);}
this.wdg.onmouseout=function(e){document[this.getAttribute('base_iname')].handle_mouseout(this.getAttribute('reg_id'),e);}
this.wdg.onclick=function(){document[this.getAttribute('base_iname')].handle_click(this.getAttribute('reg_id'));}}
CMenuItem.prototype.isMouseEnterOrLeave=function(na,e){if(e.type!='mouseout'&&e.type!='mouseover')return false;var oa=e.relatedTarget||(e.type=='mouseout'?e.toElement:e.fromElement);while(oa&&oa!=na)oa=oa.parentNode;return oa!=na;}
CMenuItem.prototype.add_item=function(pa){if(!this.panel_outer){this.panel_outer=document.createElement('div');this.base.wdg_base.appendChild(this.panel_outer);this.panel_outer.style.overflow='hidden';if(this.base.rounded_corners){var qa=document.createElement('table');this.panel_outer.appendChild(qa);qa.setAttribute('cellSpacing',0);qa.setAttribute('cellPadding',0);var ra=document.createElement('tbody');qa.appendChild(ra);var tr=document.createElement('tr');ra.appendChild(tr);var sa=document.createElement('td');tr.appendChild(sa);if(this.base.panel_tl_class!='')sa.className=this.base.panel_tl_class;var ta=document.createElement('td');tr.appendChild(ta);if(this.base.panel_tc_class!='')ta.className=this.base.panel_tc_class;var ua=document.createElement('td');tr.appendChild(ua);if(this.base.panel_tr_class!='')ua.className=this.base.panel_tr_class;var tr=document.createElement('tr');ra.appendChild(tr);var va=document.createElement('td');tr.appendChild(va);if(this.base.panel_ml_class!='')va.className=this.base.panel_ml_class;var wa=document.createElement('td');tr.appendChild(wa);var xa=document.createElement('td');tr.appendChild(xa);if(this.base.panel_mr_class!='')xa.className=this.base.panel_mr_class;var tr=document.createElement('tr');ra.appendChild(tr);var ya=document.createElement('td');tr.appendChild(ya);if(this.base.panel_bl_class!='')ya.className=this.base.panel_bl_class;var za=document.createElement('td');tr.appendChild(za);if(this.base.panel_bc_class!='')za.className=this.base.panel_bc_class;var Aa=document.createElement('td');tr.appendChild(Aa);if(this.base.panel_br_class!='')Aa.className=this.base.panel_br_class;this.panel_inner=document.createElement('div');wa.appendChild(this.panel_inner);}
else{this.panel_inner=document.createElement('div');this.panel_outer.appendChild(this.panel_inner);}
if(this.base.panel_class!='')this.panel_inner.className=this.base.panel_class;}
pa.base=this.base;pa.parent=this;var mi=new CMenuItem(pa);this.menuitems.push(mi);this.panel_inner.appendChild(mi.wdg);this.h_state_change();return mi;}
CMenuItem.prototype.run=function(){if(this.panel_outer){this.panel_outer.style.position='absolute';this.panel_outer.style.visibility='hidden';this.panel_outer.style.left='0px';this.panel_outer.style.top='0px';this.panel_outer.style.display='block';this.panel_w=this.panel_outer.offsetWidth;this.panel_h=this.panel_outer.offsetHeight;this.panel_outer.style.display='none';this.panel_outer.style.visibility='visible';}
for(var i=0,len=this.menuitems.length;i<len;i++)this.menuitems[i].run();}
CMenuItem.prototype.query_panels=function(ar,Ba){if(Ba&&this.anim_speed<0)this.anim_speed=this.base.anim_step;if(this.panel_outer)ar.unshift(this);if(this.iname=='')this.parent.query_panels(ar,Ba);}
CMenuItem.prototype.handle_timer=function(){this.anim_timer=0;this.anim_progress+=this.anim_speed;var Ca=this.anim_speed>0?Math.ceil(this.anim_progress):Math.floor(this.anim_progress);if(Ca<=0){this.panel_hide();this.anim_speed=0;}
else{this.panel_show();if(Ca>100)Ca=100;this.animateit(Ca);if(Ca<100)this.anim_timer=setTimeout('document["'+this.base.iname+'"].registry['+this.reg_id+'].handle_timer()',this.base.anim_interval);else this.anim_speed=0;}}
CMenuItem.prototype.animateit=function(Da){if(this.base.transparency){var Ea=Math.round((Da/100)*(this.base.max_opacity-this.base.min_opacity)+this.base.min_opacity);this.panel_outer.style.opacity=Ea/100;this.panel_outer.style.filter='alpha(opacity='+Ea+')';}
var h=Math.round(this.panel_h*Da/100);switch(this.base.direction){case 'dl':case 'dr':case 'ld':case 'rd':this.panel_outer.style.height=h+'px';break;case 'ul':case 'ur':case 'lu':case 'ru':this.panel_outer.style.top=(this.panel_y+this.panel_h-h)+'px';this.panel_outer.style.height=h+'px';this.panel_outer.scrollTop=this.panel_h-h;break;}}
CMenuItem.prototype.hide_process=function(){if(this.panel_outer){if(this.base.animate&&this.anim_progress>1){if(this.anim_speed==0)this.anim_progress=100-this.base.anim_step;this.anim_speed=-this.base.anim_step;if(this.anim_timer==0)this.anim_timer=setTimeout('document["'+this.base.iname+'"].registry['+this.reg_id+'].handle_timer()',this.base.anim_interval);}
else{this.panel_hide();}}
if(this.iname=='')this.parent.hide_process();}
CMenuItem.prototype.hide_now=function(){if(this.anim_timer>0){clearTimeout(this.anim_timer);this.anim_timer=0;}
this.anim_speed=0;this.anim_progress=0;if(this.panel_outer)this.panel_hide();}
CMenuItem.prototype.handle_mouseover=function(e){if(!this.isMouseEnterOrLeave(this.wdg,e||window.event))return;if(this.panel_outer){var x=0,y=0,obj=this.wdg;while(obj){x+=obj.offsetLeft;y+=obj.offsetTop;obj=obj.offsetParent;}
switch(this.base.direction){case 'ul':if(this.iname==''){x-=this.panel_w;y+=this.wdg.offsetHeight-this.panel_h;}
else{x+=this.wdg.offsetWidth-this.panel_w;y-=this.panel_h;}
break;case 'ur':if(this.iname==''){x+=this.wdg.offsetWidth;y+=this.wdg.offsetHeight-this.panel_h;}
else{y-=this.panel_h;}
break;case 'dl':if(this.iname==''){x-=this.panel_w;}
else{x+=this.wdg.offsetWidth-this.panel_w;y+=this.wdg.offsetHeight;}
break;case 'dr':if(this.iname=='')x+=this.wdg.offsetWidth;else y+=this.wdg.offsetHeight;break;case 'lu':x-=this.panel_w;y+=this.wdg.offsetHeight-this.panel_h;break;case 'ld':x-=this.panel_w;break;case 'ru':x+=this.wdg.offsetWidth;y+=this.wdg.offsetHeight-this.panel_h;break;case 'rd':x+=this.wdg.offsetWidth;break;}
this.panel_x=x;this.panel_y=y;if(this.iname!=''){this.panel_x+=this.base.panel_offset1_x;this.panel_y+=this.base.panel_offset1_y;}
else{this.panel_x+=this.base.panel_offset2_x;this.panel_y+=this.base.panel_offset2_y;}
this.panel_outer.style.left=this.panel_x+'px';this.panel_outer.style.top=this.panel_y+'px';this.panel_show();if(this.base.animate&&this.anim_progress<100){if(this.anim_speed==0){this.anim_progress=1;this.animateit(1);}
this.anim_speed=this.base.anim_step;if(this.anim_timer==0)this.anim_timer=setTimeout('document["'+this.base.iname+'"].registry['+this.reg_id+'].handle_timer()',this.base.anim_interval);}}
this.state_mouseover=true;this.h_state_change();}
CMenuItem.prototype.handle_mouseout=function(e){if(!this.isMouseEnterOrLeave(this.wdg,e||window.event))return;this.state_mouseover=false;this.h_state_change();}
CMenuItem.prototype.handle_click=function(){if(this.link!=''){switch(this.type){case 'link':window.location=this.link;break;case 'link_new':window.open(this.link,'_blank');break;case 'link_popup':window.open(this.link,'','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=550');break;}}}
CMenuItem.prototype.panel_show=function(){if(this.panel_outer.style.display!='block'){this.panel_outer.style.height='1px';this.panel_outer.style.display='block';this.state_panelopen=true;this.h_state_change();}}
CMenuItem.prototype.panel_hide=function(){if(this.panel_outer.style.display!='none'){this.panel_outer.style.display='none';this.state_panelopen=false;this.h_state_change();}}
CMenuItem.prototype.h_state_change=function(){if(this.iname==''){if(this.type!='separator'){var Fa='mi'+(this.panel_outer?'_full':'_empty')+(this.state_mouseover||this.state_panelopen?'_hover':'_normal')+'_class';this.wdg.className=this.base[Fa];}}}