﻿// Mitch Leung @ Ion Global dot com
// 20060309
// common javascript library
window.onerror = function(){ return true;};
function hasOpener(){
	var hasOpenerFlag = (window.opener) ? true : false;
	if (hasOpenerFlag){
		var op = window.opener;
		try {
			if (op.location.href=="" || op.location.href==undefined){
				hasOpenerFlag = false;
			}
		} catch(e){
			hasOpenerFlag = false;
		}
	}
	return hasOpenerFlag;
}
function inputEnter(evt) {
	evt = (evt) ? evt : event;
	var charCode = (evt.charCode) ? evt.charCode : ((evt.which) ? evt.which : evt.keyCode);
	if (charCode == 13 || charCode == 3) {
		var refId = this.id+"Btn";
		if (refId){
			inputSubmit(this.value, refId);
		}
		return false;
	} else {
		return true;
	}
}
function inputSubmit(__val, __id){
	var path;
	var query;
	// via enter or return
	var e = document.getElementById(__id);
	path = (e) ? e.getAttribute("href") : "";
	query = (__val!="") ? __val : "";
	if (path!="" && query!="" && query!="Search" && query!="検索"){
		var submitUrl = path+"?query="+URLencode(query);
		if (hasOpener()){
			window.opener.location = submitUrl;
			window.opener.focus();
			window.close();
		}else{
			window.location = submitUrl;
		}
	}
	return false;
}
function clickSubmit(){
	var path;
	var query;
	// via click
	path = this.getAttribute("href");
	var e = document.getElementById(this.id.substr(0,this.id.indexOf("Btn")));
	query = (e) ? e.value : "";
	if (path!="" && query!="" && query!="Search" && query!="検索"){
		var submitUrl = path+"?query="+URLencode(query);
		if (hasOpener()){
			window.opener.location = submitUrl;
			window.opener.focus();
			window.close();
		}else{
			window.location = submitUrl;
		}
	}
	return false;
}
function URLencode(sStr) {
    return escape(sStr).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27').replace(/\//g,'%2F');
}
// search input
function clearField(){
	this.value = "";
	this.onclick = function(){return true;};
};
function isDigit(str) {
	var pos=str.search(/^[0-9]+$/);
	if ((str!="") && (pos != 0))
		return false;
 	else
		return  true;
}
function isNum(str) {
	var pos=str.search(/^[0-9\.]+$/);
	if ((str!="") && (pos!=0))
		return false;
 	else
		return  true;
}
function isBlank(str){
	return (str=="") ? false : true;
}
function isEmail(str){
	if(str=="")
	{
 		return false;
	}else {
		var pos=str.search(/^\w+([\-\_\.\w+])*@\w+([\-\_\.\w+])+\.\w+$/);
		if (pos != 0) {
			return false;
    	}
	}
	return true;
}
function closewin(){
	if (hasOpener()){
		window.opener.focus();
	}
	window.close();
}
function opwin(__url, __w, __h,__r,__sb,__s,__align,__mb,__loc){
	__r = (__r==null) ? 'yes' : __r;
	__sb = (__sb==null) ? 'yes' : __sb;
	__s = (__s==null) ? '1' : __s;
	__mb = (__mb==null) ? 'yes' : __mb;
	__loc = (__loc==null) ? 'yes' : __loc;
	cw = 0;
	ch = 0;
	if (window.screen) {
	    w = Math.floor(screen.availWidth/3);
	    h = Math.floor(screen.availHeight/3);
		if (__align=="TR"){
		    cw = Math.floor(screen.availWidth-__w-8);
		    ch = Math.floor((screen.availHeight-__h)/2);
		}else if (__align=="LR"){
		    cw = Math.floor(screen.availWidth-__w-8);
		    ch = Math.floor(screen.availHeight-__h-35);
		}else if (__align=="UL"){
		    cw = 0;
		    ch = 0;
		}else if (__align=="UC"){
		    cw = Math.floor((screen.availWidth-__w)/2);
		    ch = 0;
		}else{
		    cw = Math.floor((screen.availWidth-__w)/2);
		    ch = Math.floor((screen.availHeight-__h)/2);
		}
	}
	var param = 'resizable='+__r+',scrollbars='+__sb+',status='+__s+',left='+cw+',top='+ch;
	param += (__w==null) ? param : ",width="+__w;
	param += (__h==null) ? param : ",height="+__h;
	var winName = "myxfnpopupwin";
	if (__url.indexOf("webcastmedia.tv")!=-1){
		winName = "myxfnwcm";
	}else if (__url.indexOf("flvpath")!=-1){
		winName = "myxfnvideo";
	}else if (__url.indexOf("/product-portfolio/")!=-1){
		winName = "myxfnpp";
	}
	var mywin = window.open(__url,winName,param);
	mywin.opener = this;
	if (mywin.focus){
		mywin.focus();
	}
}
function openergo(url){
	if (hasOpener()){
		window.opener.location = url;
		window.opener.focus();
		window.close();
	}else{
		opwin(url);
	}
}
function printpage(){
	window.print();
}
function toggleViewChartLink(id){
	if (id.length>0){
		var parentId = id.substr(0,id.indexOf("Container"));
		var e = document.getElementById(id);
		var p = document.getElementById(parentId);
		if (e && p){
			var ul = p.getElementsByTagName("ul");
			for (var i=0; i<ul.length; i++){
				if (ul[i].className.indexOf("woso")!=-1){
					ul[i].className = ul[i].className.substr(0,ul[i].className.indexOf("woso"));
				}
			}
		}
	}
}
function linkModifier(ahrefs){
	var extPatt = "tp://";
	var nopop = "currwin";
	var noOverride = "withScript";
	for (i=0;i<ahrefs.length;i++){
		var link = ahrefs[i].getAttribute("href");
		if (link){
			link = link.toLowerCase();
			var posPdf = link.indexOf(".pdf");
			var posDoc = link.indexOf(".doc");
			var posPpt = link.indexOf(".ppt");
			var posMov = link.indexOf(".mov");
			var posWmv = link.indexOf(".wmv");
			var posMpg = link.indexOf(".mpg");
			var posMp3 = link.indexOf(".mp3");
			var posMp4 = link.indexOf(".mp4");
			var posDownload = Math.max(Math.max(Math.max(posPdf,Math.max(posDoc,Math.max(posPpt,Math.max(posMov,Math.max(posMov,Math.max(posWmv,posMpg)))))),posMp3),posMp4);
			var extUrl = false;
			var intUrl = false;
			var atarget = ((ahrefs[i].getAttribute("target")!=null) && (ahrefs[i].getAttribute("target")!=""));
			// for IE
			var domain = window.location.href.substr(link.indexOf(extPatt)+extPatt.length, link.length);
			var posDomain = domain.indexOf("/")
			if (posDomain!=-1){
				domain = domain.substr(0, posDomain);
			}
			if (link.indexOf(domain)!=-1 && link.lastIndexOf("/")!=-1) {
				link = link.substr(link.indexOf(domain)+domain.length, link.length);
			}
			// internal links check
			if (link.indexOf("#")==-1 && link.indexOf("javascript")==-1 && !atarget && posDownload==-1){
			 	intUrl = true;
			}
			// external links check
			if ((link.indexOf("/")==0 || link.indexOf(extPatt)==-1 || link.indexOf(domain)!=-1) && !atarget && posDownload==-1){
				extUrl = false;
			}else if (link.indexOf(extPatt)!=-1){
				extUrl = true;
				intUrl = false;
			}
			if (!intUrl && ( extUrl || posDownload!=-1 ) || ahrefs[i].getAttribute("target")=="_blank"){
				ahrefs[i].setAttribute("target", "xfn_ext");
			}else if (typeof(ahrefs[i].onclick)!="function" && !extUrl && intUrl && ahrefs[i].className.indexOf(nopop)==-1 && ahrefs[i].className.indexOf(noOverride)==-1){
				if (hasOpener()){
					ahrefs[i].onclick = __openergo;
				}else{
					if (link.indexOf("/details/?id=")!=-1 && typeof(ahrefs[i].onclick)!="function"){
						ahrefs[i].onclick = __opwin;
					}else if (link.indexOf("/products-and-services/product-portfolio/")!=-1 && typeof(ahrefs[i].onclick)!="function"){
						var e = document.getElementById("lnkPortfolio");
						ahrefs[i].onclick = e.onclick;
					}
				}
			}
		}
	}
}
// prototype functions
function __openergo(){
	var e = this;
	var link = e.getAttribute("href");
	openergo(link);
	return false;
}
function __opwin(){
	var e = this;
	var link = e.getAttribute("href");
	opwin(link,590,700,'no','yes','no','UC');
	return false;
}
function ratingLogin(){
	var f = document.getElementsByTagName("form");
	if (f){
		var myform = f[0];
		myform.action = "http://rating.xfn.info/login.asp";
		myform.target = "_blank";
		myform.submit();
		return false;
	}
}
function inputEnterLogin(evt) {
	evt = (evt) ? evt : event;
	var charCode = (evt.charCode) ? evt.charCode : ((evt.which) ? evt.which : evt.keyCode);
	if (charCode == 13 || charCode == 3) {
		var login = document.getElementById("loginBtn");
		if (login){
			ratingLogin();
		};
		return false;
	} else {
		return true;
	}
}
var gDomain = "";
function initFormInput(){
	// textfield + submit button
	var arr = new Array();
	arr = ["searchQuery","searchQuery2","advSearchQuery","registerEmail","eventCalendarEmail"];
	for (i=0; i<arr.length; i++){
		var tf = document.getElementById(arr[i]);
		if (tf){
			tf.onclick = clearField;
			tf.onkeypress = inputEnter;
			var btn = document.getElementById(arr[i] + "Btn");
			if (btn){
				btn.onclick = clickSubmit;
			}
		}
	}
	var login = document.getElementById("loginBtn");
	if (login){
		var tfUser = document.getElementById("username");
		var tfPass = document.getElementById("password");
		login.onclick = ratingLogin;
		tfPass.onkeypress = inputEnterLogin;
	}
	var ahrefs = document.getElementsByTagName("a");
	var imagemaps = document.getElementsByTagName("area");
	linkModifier(ahrefs);
	linkModifier(imagemaps);
	var csn = document.getElementById("contentSubNav");
	if (csn){
		var ahrefs = csn.getElementsByTagName("a");
		var currUrl = "" + window.location;
		var hiEl = (ahrefs[0]) ? ahrefs[0] : null;
		for (i=0; i<ahrefs.length; i++){
			var link = ahrefs[i].getAttribute("href");
			if (link.indexOf("./")==0){
				link = link.substr(2,link.length);
			}
			if (currUrl.indexOf(link)!=-1){
				ahrefs[i].className += " current";
				hiEl = ahrefs[i]
				break;
			}
		}
		if (hiEl!=null) hiEl.className += " current";
	}
	langSwitchInit();
	if (typeof(followupFormInput)=="function"){
		followupFormInput();
	}
}
var supportedArr = ["en","jp","tc","sc"];
function langSwitch(__id){
	var lang= "";
	var url = window.location+"";
	for (var i=0; i<supportedArr.length; i++){
		if (url.indexOf('/'+supportedArr[i]+'/')!=-1){
			lang = '/'+supportedArr[i]+'/';
		}
	}
	if (lang==""){lang='/'+supportedArr[supportedArr.length-1]+'/';}
	if (url.indexOf('/for-retail-investors/')!=-1){
		url = url.substr(0, url.indexOf('/for-retail-investors/'));
	}
	var rExp = new RegExp(lang);
	var nextLang = '/'+__id+'/';
	url = url.replace(rExp, nextLang);
	if (url.indexOf("/faq/")!=-1){
	}else if (url.indexOf("/error/")!=-1){
		url = '/'+__id +'/';
	}else{
		if (url.indexOf("?")!=-1 && url.indexOf("/news-and-events/")!=-1){
			url = url.substr(0,url.indexOf("?"));
		}
	}
	window.location = url;
}
function langSwitchInit(){
	for (var i=0; i<supportedArr.length; i++){
		var otherLang = document.getElementById(supportedArr[i]);
		if (otherLang){
			otherLang.onclick = function(){
				langSwitch(this.id);
				return false;
			}
		}
	}
}
function addCss(css,media){
	var c = document.createElement("link");
	c.setAttribute("type","text/css");
	c.setAttribute("rel","stylesheet");
	c.setAttribute("href",css);
	c.setAttribute("media",media);
	var head = document.getElementsByTagName("head");
	if (head){
		head[0].appendChild(c);
	}
}
var followupFormInput;
if (typeof(window.onload)=="function"){
	followupFormInput = window.onload;
}
window.onload = initFormInput;

var browser = '';

if (browser == ''){
	if (navigator.userAgent.indexOf('Safari') != -1){
		browser = 'Safari';
		var ver = navigator.appVersion;
		var idx = ver.indexOf('Safari/');
		var str = navigator.appVersion.substring(idx+7, ver.length);
		ver = parseFloat(str);
		//document.write('<link rel="stylesheet" type="text/css" href="/include/css/safari.css" media="all">');
		addCss("/include/css/safari.css", "all");
	}else if (navigator.appName.indexOf('Microsoft') != -1){
		browser = 'IE';
	}else if (navigator.appName.indexOf('Netscape') != -1){
		browser = 'Netscape';
	}else{
		browser = 'IE';
	}
}
// browser detection
var agt = navigator.userAgent.toLowerCase();
var appVer = navigator.appVersion.toLowerCase();
var is_mac = (agt.indexOf("mac")!=-1);
var is_minor = parseFloat(appVer);
var is_major = parseInt(is_minor);
var is_opera = (agt.indexOf("opera") != -1);
var iePos  = appVer.indexOf('msie');
var is_mac_ie = false;
if (iePos !=-1) {
   is_minor = parseFloat(appVer.substring(iePos+5,appVer.indexOf(';',iePos)));
   is_major = parseInt(is_minor);
}
var is_ie = ((iePos!=-1) && (!is_opera));
if (is_mac && is_ie) {
	is_mac_ie = true;
}
var is_ie5up = (is_ie && is_minor >= 5);
var is_ie5_5up =(is_ie && is_minor >= 5.5);
var is_safari = ((agt.indexOf('safari')!=-1)&&(agt.indexOf('mac')!=-1))?true:false;
var nn4 = false;
if (document.layers) {
	nn4 = true;
}
