var domainHost ="";
var kanHanlang="tc";
var isKanHan = false;
var kanHanDomain = "";
var engCol = "";
var tcCol = "";	
var gbCol = "";		

domainHost = window.location.toString();

if(domainHost.search('westcomzivo.com')!=-1){ //Westcomzivo		
		kanHanDomain =  "common.westcomzivo.com/gb/";			
} else { //ICAC
		kanHanDomain =  "sc.icac.org.hk/gb/";
}

if ((domainHost.search('common.westcomzivo.com')!=-1) || (domainHost.search('sc.icac.org.hk')!=-1)) { //Westcomzivo		
	isKanHan = true;
	kanHanlang =  "gb";			
}

if(domainHost.search('westcomzivo.com')!=-1){ //Westcomzivo		
	engCol = "col=1";
	tcCol = "col=3";
	gbCol = "col=2";
	enPressCol = "col=4";
	tcPressCol = "col=3";
	gbPressCol = "col=2";
} else { //ICAC
	engCol = "col=6";
	tcCol = "col=7";
	gbCol = "col=8";
	enPressCol = "col=1";
	tcPressCol = "col=3";
	gbPressCol = "col=8";
}

var Url = {

	// public method for url encoding
	encode : function (string) {
		return escape(this._utf8_encode(string));
	},

	// public method for url decoding
	decode : function (string) {
		return this._utf8_decode(unescape(string));
	},

	// private method for UTF-8 encoding
	_utf8_encode : function (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";

		for (var n = 0; n < string.length; n++) {

			var c = string.charCodeAt(n);

			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}

		}

		return utftext;
	},

	// private method for UTF-8 decoding
	_utf8_decode : function (utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;

		while ( i < utftext.length ) {

			c = utftext.charCodeAt(i);

			if (c < 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}

		}

		return string;
	}

}


var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

function getY(arg)
{
	return arg.offsetTop + (arg.offsetParent?getY(arg.offsetParent):0);
}

function getX(arg)
{
	return arg.offsetLeft + (arg.offsetParent?getX(arg.offsetParent):0);
}

//onload
$(document).ready(function() {
	$("object, embed").each(function() {
		this.outerHTML = this.outerHTML;
	});

	$(".btnSwapImg").hover(function() {
		$(this).attr("osrc", $(this).attr("src"));
		if (isKanHan) {
			$(this).attr("src", $(this).attr("oversrc").replace(/\/tc\//,'/'+kanHanlang+'/'));
		} else {
			$(this).attr("src", $(this).attr("oversrc"));
		}
	}, function() {
		$(this).attr("src", $(this).attr("osrc"));
	});
	
	$(".menu .sub").each(function() { 
		var currSub = $(this);

		$(this).parent().hover(function(){
			var mainMenu = $(this).parent(".menu");
			mainMenu.attr("active", 1)
			if (mainMenu.filter(".posBOTTOM").size() > 0)
			{
				var heightAdjust = 12;
				if (BrowserDetect.browser=="Explorer") heightAdjust = 54;
				//currSub.css({display: "block", top: getY(this) + mainMenu.height() - heightAdjust, left: getX(this)});
				currSub.css({display: "block", top: getY(this) + heightAdjust, left: getX(this)});
			}
			else //if (mainMenu.filter(".posRIGHT").size() > 0)
			{
				var iWidth = mainMenu.width();
				currSub.css({display: "block", top: getY(this), left: getX(this) + iWidth});
			}
			//currSub.width(mainMenu.width());
			currSub.show();
		}, function() {
			currSub.hide();
		});
	});
})

function switchLang(inCharsetID)
{	
	var kanHanHost = "";
	var charsetTC = 2;
	var subPath = "";
	
	if (inCharsetID == 3) { //For SC
	
		// For Search Engine Replace First
		if (domainHost.search('_en.xsl')!=-1) { //HTML mode					
			domainHost = domainHost.replace(/_en.xsl/, "_sc.xsl").replace(engCol, gbCol);			
		}
		
		if (domainHost.search('_tc.xsl')!=-1) { //HTML mode
			domainHost = domainHost.replace(/_tc.xsl/, "_sc.xsl").replace(tcCol, gbCol);
		}	
	
		// EN switch to SC
		if (domainHost.search('/en/')!=-1) { //HTML mode
			domainHost = domainHost.replace(/\/en\//i, "/tc/");
		}
	
		subPath = domainHost.replace(/http:\/\//i,"");
		subPath = subPath.replace(/lang=\d/, "lang=" + charsetTC);
		subPath = subPath.replace(/_tc.xsl/, "_sc.xsl");
				
		kanHanHost = "ht"+"tp://" + kanHanDomain +subPath;
		window.location = kanHanHost;
		
	} else { //For EN and TC
		domainHost = domainHost.replace(kanHanDomain,"");

		// For Search Engine Replace First			
		if (domainHost.search('_en.xsl')!=-1) { //HTML mode			
			window.location = domainHost.replace(/_en.xsl/, "_tc.xsl").replace(engCol, tcCol);
		}

		if (domainHost.search('_tc.xsl')!=-1) { //HTML mode
			window.location = domainHost.replace(/_tc.xsl/, "_en.xsl").replace(tcCol, engCol);
		}		
		
		if (domainHost.search('_sc.xsl')!=-1) { //HTML mode
			if (inCharsetID ==1) {
				window.location = domainHost.replace(/_sc.xsl/, "_en.xsl").replace(gbCol, engCol);
			} else {				
				window.location = domainHost.replace(/_sc.xsl/, "_tc.xsl").replace(gbCol, tcCol);;
			}	
		}
		

		// TC switch to EN
		if (domainHost.search('/en/')!=-1) { //HTML mode
			window.location = domainHost.replace(/\/en\//i, "/tc/");
		}

		// EN switch to TC
		if (window.location.toString().search('/tc/')!=-1) { //HTML mode		
			if (inCharsetID ==1) {
				window.location = domainHost.replace(/\/tc\//i, "/en/");
			} else {
				window.location = domainHost;
			}
		}
		
		if  (domainHost.search('lang=')!=-1) { //.net mode
			window.location = domainHost.replace(/lang=\d/, "lang=" + inCharsetID);		
		}
	}
}

function popup_print() {
	var URL;
	URL = location.href;
	if (URL.indexOf("?")>0) {
		URL += "&print=1";
	} else {
		URL += "?print=1";
	}
	window.open(URL);
}

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_swapImgRestore() { //v3.0
  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.01
  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 && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  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 openWindowLaw(url, target, specs){ //For Landmark Cases Only
	var tempDomain;
	var indx1;
	var indx2;

	if (isKanHan) {		
		
		tempDomain = domainHost.replace(kanHanDomain,"");
		indx1 = tempDomain.indexOf("/tc/");
		indx2 = tempDomain.indexOf("/index.aspx");
		if (indx1 > 0) { //HTML mode	
			tempDomain = tempDomain.substring(7,indx1);		
		} 
		
		if (indx2 > 0) { //.NET mode	
			tempDomain = tempDomain.substring(7,indx2);		
		} 
		
		url =  "ht"+"tp://" + kanHanDomain + tempDomain + url;
	}
		
	window.open(url, target, specs);
}

function openWindow(path) {
  window.open(path);
}

function openPopup(path,width,height) {
  window.open(path,'','height='+height+', width='+width+', toolbar=no, menubar=no, location=no, status=no, scrollbars=no, resizable=yes');
}

function submitsearch(template) {
	var query = document.getElementById('searchfield').value;
	
	if (query.length > 0) {	
			query = Url.encode(query);		
	}
	
	if (template == 'icac_en.xsl') {	//For EN
		location.href = "http://sc.icac.org.hk/gb/www.icac.hk/search/servlet/SearchServlet?" + engCol + "&query="+query+"&xsl="+template;
	} else	if (template == 'icac_tc.xsl') {	//For TC			
		location.href = "http://sc.icac.org.hk/gb/www.icac.hk/search/servlet/SearchServlet?" + tcCol + "&query="+query+"&xsl="+template;
	} else {		//For SC
		location.href = "http://sc.icac.org.hk/gb/www.icac.hk/search/servlet/SearchServlet?" + gbCol + "&query="+query+"&xsl="+template;
	}	
}

function submitpresssearch(templateid) {
	var query = document.getElementById('presssearchfield').value;
	
	if (query.length > 0) {	
			query = Url.encode(query);		
	}
	
	if (templateid == 1) {	//For EN
		location.href = "http://sc.icac.org.hk/gb/www.icac.hk/search/servlet/SearchServlet?" + enPressCol + "&query="+query+"&xsl=icac_en.xsl";
	} else	if (templateid == 2 && !isKanHan) {	//For TC			
		location.href = "http://sc.icac.org.hk/gb/www.icac.hk/search/servlet/SearchServlet?" + tcPressCol + "&query="+query+"&xsl=icac_tc.xsl";
	} else {		//For SC
		location.href = "http://sc.icac.org.hk/gb/www.icac.hk/search/servlet/SearchServlet?" + gbPressCol + "&query="+query+"&xsl=icac_sc.xsl";
	}	
}

function arrayString(source) {
	output = "";
	if (source.length==1) {
		output = source.toString().replace("'","\'");
	} else {
		for (var i=0; i<source.length; i++)
		{
			output += source[i].replace("'","\'");
			if (i<source.length-1) {
				output += "','";
			}
		}
	}
	return "'" + output + "'";
}

function rotateImage(holder, delayTime, banners, altTexts, links, lang, current)
{
	if (!document.getElementById(holder)) return
	if (!banners) return
	if (!links) return

	if (current==undefined) {
		current = 0;
	}
	if (current>=banners.length) {
		current = 0;
	}
	if (isKanHan && lang=='tc') {
		lang = 'gb';
	}
	if (banners.length==1) {
		document.getElementById(holder).innerHTML = "<a href=\""+links+"\"><img src=\"/filemanager/banners/"+lang+"/images/"+banners+"\" alt=\""+altTexts+"\" title=\""+altTexts+"\" border=\"0\" /></a>";
	} else {
		links[current] = links[current].replace(new RegExp( "\"", "gi" ),"&quot;");
		document.getElementById(holder).innerHTML = "<a href=\""+links[current]+"\"><img src=\"/filemanager/banners/"+lang+"/images/"+banners[current]+"\" alt=\""+altTexts[current]+"\" title=\""+altTexts[current]+"\" border=\"0\" /></a>";
	}
	current++;
	
	var bannerNames = arrayString(banners);
	var altTextNames = arrayString(altTexts);
	var linkNames = arrayString(links);
	setTimeout("rotateImage('" + holder + "'," + delayTime + ",new Array("+bannerNames+"),new Array("+altTextNames+"), new Array("+linkNames+"),'" +lang +"',"+current+")" , delayTime);
}

function banners_vlist(banners, altTexts, links, bannername, lang) {
	var html = "";
	var imgCount = banners.length;
	if (isKanHan && lang=='tc') {
		lang = 'gb';
	}
	for (var i = 0; i < imgCount; i++) {
		html+='<a href="'+links[i]+'"><img vspace="5" src="/filemanager/banners/'+lang+'/images/'+banners[i]+'" alt="'+altTexts[i]+'" title="'+altTexts[i]+'" border="0" /></a>';
		if (i < imgCount-1) {
			html+='<br />';
		}
	}
	if (document.getElementById('banner_'+bannername)) {
		document.getElementById('banner_'+bannername).innerHTML=html;
	}
}

function banners_hlist(banners, altTexts, links, bannername, lang) {
	var html = "";
	var imgCount = banners.length;
	if (isKanHan && lang=='tc') {
		lang = 'gb';
	}
	for (var i = 0; i < imgCount; i++) {
		html+='<a href="'+links[i]+'"><img vspace="5" src="/filemanager/banners/'+lang+'/images/'+banners[i]+'" alt="'+altTexts[i]+'" title="'+altTexts[i]+'" border="0" /></a> ';
	}
	if (document.getElementById('banner_'+bannername)) {
		document.getElementById('banner_'+bannername).innerHTML=html;
	}
}

function banners_rotate(banners, altTexts, links, bannername, lang) {
	rotateImage('banner_'+bannername, 5000, banners, altTexts, links, lang);
}

function showPress(latest_press, latest_press_links) {
	for (var i = 0; i < latest_press.length; i++) {
		document.write("<p><span class=\"press_date\">");
		document.write("<a class=\"blackoverblue\" href=\"" + latest_press_links[i] + "\">");
		document.write(latest_press[i]);
		document.writeln("</a></span> </p>");
	}
}

function showPressThumb(file, altText) {
	if (document.getElementById('pressThumb')) {
		if (file.length>0) {
			document.getElementById('pressThumb').src=file;
			document.getElementById('pressThumb').alt=altText;
			document.getElementById('pressThumb').title=altText;
		} else {
			var imageIndex = Math.round(Math.random()*(pressImage.length-1));
			document.getElementById('pressThumb').src=pressImage[imageIndex];
			document.getElementById('pressThumb').alt=pressImageAlt[imageIndex];
			document.getElementById('pressThumb').title=pressImageAlt[imageIndex];
		}
	}
}

function showActivity(latest_activity, latest_activity_links) {
	for (var i = 0; i < latest_activity.length; i++) {
		document.write("<p><span class=\"event_date\">");
		document.write("<a class=\"blackoverblue\" href=\"" + latest_activity_links[i] + "\">");
		document.writeln(latest_activity[i]);
		document.writeln("</a></span> </p>");
	}
}

