//declare var
//code name switch
var switchout = true
var switchtimeoutID = 1

var ns6=document.getElementById&&!document.all
var ie5=document.all
var __win=null;


function SetCookie (name, value) {
   var argv = SetCookie.arguments;
   var argc = SetCookie.arguments.length;
   var expires = (argc > 2) ? argv[2] : null;
   var path = "/";
   var domain = (argc > 4) ? argv[4] : null;
   var secure = (argc > 5) ? argv[5] : false;
   document.cookie = name + "=" + escape (value) +
   ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
   ((path == null) ? "" : ("; path=" + path)) +
   ((domain == null) ? "" : ("; domain=" + domain)) +
   ((secure == true) ? "; secure" : "");
}

// Get Cookie function
function GetCookie(name) {
   var arg = name+"=";
   var alen = arg.length;
   var clen = document.cookie.length;
   var i = 0;
   while (i < clen) {
      var j = i + alen;
      if (document.cookie.substring(i, j) == arg) return getCookieVal(j);
      i = document.cookie.indexOf(" ", i) + 1;
      if (i == 0) break;
   }
   return null;
}

function getCookieVal(offset) {
   var endstr = document.cookie.indexOf (";", offset);
   if (endstr == -1) endstr = document.cookie.length;
   return unescape (document.cookie.substring(offset, endstr));
}

function getQueryVariable(variable) {  
	 var query = window.location.search.substring(1);  
	 var vars = query.split("&");  
	 for (var i=0;i<vars.length;i++) {    
	 	 var pair = vars[i].split("=");    
	 	 if (pair[0] == variable) {      
	 	 	 return pair[1];    
	 	 }  
	 } 
}
function MM_reloadPage(init) {  //Updated by PVII. Reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

//Dreamweaver Function
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}

function MM_showHideLayers() { //v3.0A Modified by Al Sparber and Massimo Foti for NN6 Compatibility
  var i,p,v,obj,args=MM_showHideLayers.arguments;if(document.getElementById){
   for (i=0; i<(args.length-2); i+=3){ obj=tmt_findObj(args[i]);v=args[i+2];
   v=(v=='show')?'visible':(v='hide')?'hidden':v;
   if(obj)obj.style.visibility=v;}} else{
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }}
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("##")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImage() { //v3.0C
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_swapImgRestore() { //v3.0C
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.0
  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=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function tmt_findObj(n){
	var x,t; if((n.indexOf("?"))>0&&parent.frames.length){t=n.split("?");
	x=eval("parent.frames['"+t[1]+"'].document.getElementById('"+t[0]+"')");
	}else{x=document.getElementById(n)}return x;
}

function popupWin(url,w,h,wname,x,y) {
	// %25 = "%".  revert the over-encoded url for netscape
	//window.location = location;
	parent.scrollTo(0, 0);
	url = url.replace(/%25/g, "%");
	w = w || 540
	h = h || 455
	x = x || 0
	y = y || 250
	__win=window.open(url,wname,'toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,screenX='+x+',screenY='+y+',top='+y+',left='+x+',resizable=1,width='+w+',height='+h)
	setTimeout('__win.focus()', 300)
}

function print_popupWin(url,w,h,wname,x,y) {
	//window.location = location;
	parent.scrollTo(0, 0);
	url = url.replace(/%25/g, "%");
	w = w || 601
	h = h || 295
	x = x || 0
	y = y || 250
	__win=window.open(url,wname,'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,screenX='+x+',screenY='+y+',top='+y+',left='+x+',resizable=1,width='+w+',height='+h)
	setTimeout('__win.focus()', 300)
}

function ir_popupWin(url,w,h,wname,x,y) {
	// %25 = "%".  revert the over-encoded url for netscape
	//window.location = location;
	parent.scrollTo(0, 0);
	url = url.replace(/%25/g, "%");
	w = w || 540
	h = h || 455
	x = x || 0
	y = y || 250
	__win=window.open(url,wname,'toolbar=1,location=1,directories=0,status=1,menubar=1,scrollbars=1,screenX='+x+',screenY='+y+',top='+y+',left='+x+',resizable=1,width='+w+',height='+h)
	setTimeout('__win.focus()', 300)
}

//script for new menu
function switch_over() {
switchout = false ;
clearTimeout(switchtimeoutID);
}

function switch_out() {
switchout = true ;
switchtimeoutID = setTimeout("autohide_menu()","500");
}

function autohide_menu() {
if (switchout == true) {
	hideLayer('personal');
	hideLayer('corporate');
	hideLayer('investment');
	hideLayer('market');
	hideLayer('mainland');
	hideLayer('about');
	hideLayer('tools');
	hideLayer('loginPer');
	hideLayer('loginCorp');
  //MM_showHideLayers('bochk_help','','show');
  MM_showHideLayers('divHelp','','hide');
  MM_showHideLayers('divRelatedCompanies','','hide');
  MM_showHideLayers('divOnlineServices','','hide');
}
}

function hideLayer(sec) {
  MM_showHideLayers('dropdown_' + sec,'','hide');
  imageOff("imgTab_" + sec);
  //currentSectionTabOn();
}

function hideother(layername) {
if (layername != 'dropdown_personal') MM_showHideLayers('dropdown_personal','','hide');
if (layername != 'dropdown_corporate') MM_showHideLayers('dropdown_corporate','','hide');
if (layername != 'dropdown_investment') MM_showHideLayers('dropdown_investment','','hide');
if (layername != 'dropdown_market') MM_showHideLayers('dropdown_market','','hide');
if (layername != 'dropdown_mainland') MM_showHideLayers('dropdown_mainland','','hide');
if (layername != 'dropdown_about'){
MM_showHideLayers('dropdown_about','','hide');
//MM_showHideLayers('bochk_help','','show');
}
//else MM_showHideLayers('bochk_help','','hide');
if (layername != 'dropdown_tools') MM_showHideLayers('dropdown_tools','','hide');
if (layername != 'divRelatedCompanies') MM_showHideLayers('divRelatedCompanies','','hide');
if (layername != 'divOnlineServices') MM_showHideLayers('divOnlineServices','','hide');
}

// stock array object for BOCHK's Homepage Stock Info. See also "data.js"
var stock = []
stock[0] = new Object();
stock[1] = new Object();


function ToString(str) {
	if(str == null) return "";
	else return str.toString();
}

function lib_url() {
	var l = new String(window.location);
	this.full = l;

	re = new RegExp("#.*");
	this.anchor = ToString(l.match(re));
	l = l.replace(this.anchor, "");
	this.anchor = this.anchor.replace("#", "");

	this.queryString = ToString(l.match(/\?.*$/));
	l = l.replace(this.queryString, "");
	this.queryString = this.queryString.replace("?", "");

	re = new RegExp("^.*//");
	this.protocol = ToString(l.match(re));
	l = l.replace(this.protocol, "");
	this.protocol = this.protocol.replace("://", "");

	re = new RegExp("/.*");
	this.path = ToString(l.match(re));
	l = l.replace(this.path, "");

	re = new RegExp(":\d+");
	this.port = ToString(l.match(re));
	l = l.replace(this.port, "");
	this.port = this.port.replace(":", "");

	this.domain = l;

	// path components
	re = new RegExp("[^/]*$");
	this.file = ToString(this.path.match(re));

	re = new RegExp("[^.]*$");
	this.extension = ToString(this.file.match(re));

	this.directory = this.path.replace(this.file, "");
	this.directory = this.directory.substring(0, this.directory.length-1);
/*
	//query components
	this.queries = {};
	var q = this.queryString.split("&");

	for(var i=0; i<q.length; i++) {
		var pair = q[i].split("=");
		this.queries[pair[0]] = pair[1];
	}
	// alert(url.full +"\n"+ url.protocol +"\n"+ url.domain +"\n"+ url.path +"\n"+ url.queryString +"\n"+ url.anchor +"\n"+ url.file +"\n"+ url.extension +"\n"+ url.directory)
*/
}

var url = new lib_url();

function switchLang(lang){
	var ll = location + ""

	if (ll.indexOf("/en/index") != -1 ||
		ll.indexOf("/tw/index") != -1 ||
		ll.indexOf("/cn/index") != -1 )
	{
		//alert(GetCookie("lang"))
		SetCookie("lang",lang);	
		//var pagelang=GetCookie("lang");

		//alert(pagelang)
		location = "/" + lang + "/index.html";
		//location = "/boc.htm?lang=" + lang;
		return;
	}

	// pages which do not allow language switching
	var NO_SWITCH_PAGES = [
		"/about/careers/job.xml",
		"/common/thankyou.xml",
		"/common/view_tailor_result.xml"
	];

	var START_PAGE = {};	// page to redirect to for different sections
	START_PAGE['AIP'] = "/personal/mortgage/private_property_step1.xml?RESET=Y&section=personal&level_2=mortgage&fldr_id=415&pfid=145";
	START_PAGE['HOS'] = "/personal/mortgage/hos_step1.xml?RESET=Y&section=personal&level_2=mortgage&fldr_id=415&pfid=145";
	START_PAGE['E_CARD'] = "/tools/e_cards/e_cards.xml";

	var REDIRECT = {};	// define pages which should be redirected to START_PAGE
	// Online Application: Private Property
	REDIRECT["/personal/mortgage/private_property_step1.xml"] = START_PAGE['AIP'];
	REDIRECT["/personal/mortgage/private_property_step2.xml"] = START_PAGE['AIP'];
	REDIRECT["/personal/mortgage/private_property_step3.xml"] = START_PAGE['AIP'];
	REDIRECT["/personal/mortgage/private_property_step4.xml"] = START_PAGE['AIP'];

	// Online Application: HOS
	REDIRECT["/personal/mortgage/hos_step1.xml"] = START_PAGE['HOS'];
	REDIRECT["/personal/mortgage/hos_step2.xml"] = START_PAGE['HOS'];
	REDIRECT["/personal/mortgage/hos_step3.xml"] = START_PAGE['HOS'];
	REDIRECT["/personal/mortgage/hos_step4.xml"] = START_PAGE['HOS'];

	// Free Property Valuation
	REDIRECT["/about/contact_us/online_enquiry.xml"] = "";

	// E-Card Step 2 & 3
	REDIRECT["/tools/e_cards/ecards_step2.xml"] = START_PAGE['E_CARD'];
	REDIRECT["/tools/e_cards/ecards_step3.xml"] = START_PAGE['E_CARD'];

	// all calculators
	REDIRECT["/tools/calculators/_club_deposit_principal.xml"] = "";
	REDIRECT["/tools/calculators/_club_deposit_monthly.xml"] = "";
	REDIRECT["/tools/calculators/_fixed_deposit.xml"] = "";
	REDIRECT["/tools/calculators/_currency_converter.xml"] = "";
	REDIRECT["/tools/calculators/_regular_instalment.xml"] = "";
	REDIRECT["/tools/calculators/_max_loan.xml"] = "";
	REDIRECT["/tools/calculators/_mortgage_insurance.xml"] = "";
	REDIRECT["/tools/calculators/_personal_loan.xml"] = "";
	REDIRECT["/tools/calculators/_tax_loan.xml"] = "";
	REDIRECT["/tools/calculators/_flat_rate_vs_apr.xml"] = "";
	REDIRECT["/tools/calculators/_dream_property.xml"] = "";
	REDIRECT["/tools/calculators/_dream_marriage.xml"] = "";
	REDIRECT["/tools/calculators/_dream_vehicle.xml"] = "";
	REDIRECT["/tools/calculators/_dream_children_education.xml"] = "";
	REDIRECT["/tools/calculators/_dream_retirement.xml"] = "";
	REDIRECT["/tools/calculators/_dream_education.xml"] = "";
	REDIRECT["/tools/calculators/_travel_insurance.xml"] = "";
	REDIRECT["/tools/calculators/_option_linked_deposit.xml"] = "";
	REDIRECT["/tools/calculators/_premium_deposit.xml"] = "";
	
	// Easy Appointment - Account Opening for Hong Kong
	REDIRECT["/about/contact_us/openAclMain.xml"] = "";
	
	// Easy Appointment : Loan Application
	REDIRECT["/personal/mortgage/loanApp.xml"] = "";
	
	// Easy Appointment - Account Opening for mainland
	REDIRECT["/about/contact_us/openCnAcctMain.xml"] = "";
	

	var l = url.full;

	var path = url.path.replace(/^\/web/, "");	// special treatment to remove "/web"

	for(i=0; i<NO_SWITCH_PAGES.length; i++) {
		if(path==NO_SWITCH_PAGES[i]) {
			alert(MESSAGE_MAP['LANGUAGE_SWITCH_NOT_ALLOWED']);
			return;
		}
	}

	if(REDIRECT[path] != null) {
		if(!confirm(MESSAGE_MAP["LANGUAGE_SWITCH_NOT_RECOMMENDED"])) return;

		if(REDIRECT[path] != "") {	// redirect to another page
			newPath = (url.path.match(/^\/web/)) ? "/web" + REDIRECT[path]: REDIRECT[path];

			if(REDIRECT[path].indexOf("?") < 0) 
				l = url.full.replace(url.path, newPath);
			else {	// if redirect path has query, then replace from path to query
				re = new RegExp(url.path + ".*");
				l = url.full.replace(re, newPath);
			}
		}
	}

	var j = l.indexOf("#")
	if (j>0) l = l.substring(0,j)

  l = l.replace(/\?lang=..\&/gi, "?");
  l = l.replace(/\&lang=..\&/gi, "&");

  l = l.replace(/\?lang=../gi, "");
  l = l.replace(/\&lang=../gi, "");

  if(l.indexOf("?") == -1) lang = "?lang=" + lang;
  else                     lang = "&lang=" + lang;

	location = l + lang
	return;
}

function getRefById(id) {
	return document.getElementById ? document.getElementById(id) : document.all ? document.all[id] : null;
}

//////// main nav on and off
function imageOn(imgName) {
	img = MM_findObj(imgName);
	if (img) img.src = img.src.replace("_off.", "_on.");
}

function imageOff(imgName) {
	img = MM_findObj(imgName);
	if (img) img.src = img.src.replace("_on.", "_off.");
}

function layerOn(layerName) {
	MM_showHideLayers(layerName,'','show');
	switch_over();
	hideother(layerName);
}

function menuOn(sec) {
	autohide_menu();
	imageOn("imgTab_" + sec)

	layerName = "dropdown_" + sec;
	layerOn(layerName);
}

function menuOff(sec) {
	switch_out();

	//if(sec == "$section") return;
	//imgName = "imgTab_" + sec;
	//imageOff(imgName);
}

function MM_loadLink() { //v3.0

	var d=document;
	d.MM_link=new Image;
	d.MM_link.src="/counter?linkto=" + MM_loadLink.arguments[0];

}

