/* ########################################
  TOSHIBA GLOBAL GATEWAY GENERATOR
  v. 20080321
######################################## */



// ********** Site Name Format **********

// Character before language name in English
var LangEhead = "&nbsp;-&nbsp;";

// Character after language name in English
var LangEend = "";

// Character between English and Local
var LangSeparator = "&nbsp;/&nbsp;";

// Character before language name in local language
var LangLhead = "&nbsp;-&nbsp;";

// Character after language name in local language
var LangLend = "";


// ********** Region Codes and Names **********

function regCodeToRegName(regCode) {

	switch(regCode) {
		case 0: 
			return "All";
		case 1: 
			return "Africa";
		case 2: 
			return "Asia-Pacific";
		case 3: 
			return "Europe";
		case 4: 
			return "Middle East";
		case 5: 
			return "North &amp; South America";
		case 6: 
			return "";
		case 7: 
			return "";
		case 8: 
			return "";
		case 9: 
			return "";
		default: 
			//window.alert("NO REGION SPECIFIED.");
			return "";
	}
}


// ********** JSON Path **********
var jsonUrl  = "/gwmodule/intl-sites-json.txt";


// ********** Program Source **********

if (!this.JSON) {
JSON = function () {
function f(n) {
return n < 10 ? '0' + n : n;
}
Date.prototype.toJSON = function () {
return this.getUTCFullYear()   + '-' +
f(this.getUTCMonth() + 1) + '-' +
f(this.getUTCDate())      + 'T' +
f(this.getUTCHours())     + ':' +
f(this.getUTCMinutes())   + ':' +
f(this.getUTCSeconds())   + 'Z';
};
var m = {
'\b': '\\b',
'\t': '\\t',
'\n': '\\n',
'\f': '\\f',
'\r': '\\r',
'"' : '\\"',
'\\': '\\\\'
};
function stringify(value, whitelist) {
var a,
i,
k,
l,
r = /["\\\x00-\x1f\x7f-\x9f]/g,
v;
switch (typeof value) {
case 'string':
return r.test(value) ?
'"' + value.replace(r, function (a) {
var c = m[a];
if (c) {
return c;
}
c = a.charCodeAt();
return '\\u00' + Math.floor(c / 16).toString(16) +
(c % 16).toString(16);
}) + '"' :
'"' + value + '"';
case 'number':
return isFinite(value) ? String(value) : 'null';
case 'boolean':
case 'null':
return String(value);
case 'object':
if (!value) {
return 'null';
}
if (typeof value.toJSON === 'function') {
return stringify(value.toJSON());
}
a = [];
if (typeof value.length === 'number' &&
!(value.propertyIsEnumerable('length'))) {
l = value.length;
for (i = 0; i < l; i += 1) {
a.push(stringify(value[i], whitelist) || 'null');
}
return '[' + a.join(',') + ']';
}
if (whitelist) {
l = whitelist.length;
for (i = 0; i < l; i += 1) {
k = whitelist[i];
if (typeof k === 'string') {
v = stringify(value[k], whitelist);
if (v) {
a.push(stringify(k) + ':' + v);
}
}
}
} else {
for (k in value) {
if (typeof k === 'string') {
v = stringify(value[k], whitelist);
if (v) {
a.push(stringify(k) + ':' + v);
}
}
}
}
return '{' + a.join(',') + '}';
}
}
return {
stringify: stringify,
parse: function (text, filter) {
var j;
function walk(k, v) {
var i, n;
if (v && typeof v === 'object') {
for (i in v) {
if (Object.prototype.hasOwnProperty.apply(v, [i])) {
n = walk(i, v[i]);
if (n !== undefined) {
v[i] = n;
}
}
}
}
return filter(k, v);
}
if (/^[\],:{}\s]*$/.test(text.replace(/\\./g, '@').
replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').
replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
j = eval('(' + text + ')');
return typeof filter === 'function' ? walk('', j) : j;
}
throw new SyntaxError('formOutput');
}
};
}();
}
var regionOrderArray = new Array();
var wWregionNumber;
function generateGWPopup(regionOrderString){
regionOrderArray = regionOrderString.split('-');
generateGW(jsonUrl, 0);
}
function generateGWwW(regionNumber){
wWregionNumber=regionNumber;
generateGW(jsonUrl, 1);
}
function makeHTMLParts(theFormat){
switch(theFormat) {
case 0:
var theHTML = "<style type=\"text\/css\">#gatewaybutton {margin: 0;padding: 0;color:#003399;text-decoration: underline;vertical-align: top;}#globalgateway {width: 710px;border: 1px solid #666;background: #F9F9F9;font-family: Arial,Helvetica,verdana,sans-serif;font-size: 100%;position: absolute;right: 5px;top: 22px;z-index:999;}#globalgateway div#close {font-size: 68%;text-align: right;position: absolute;right: 5px;top: 2px;}#globalgateway div#close a {color: #FFF;}#globalgateway p {font-weight: bold;font-size: 82%;color: #FFF;text-align: left;line-height: 100%;padding: 3px 50px 5px 5px;margin: 0;background: #5F737F;border-bottom: 2px solid #B3BDC3;z-index: 50;}#globalgateway p#towwsite {text-align: right; padding: 0; margin: 3px 0 8px; font-size: 68%; font-weight: normal; background: none; border: none;}#globalgateway table {width: 700px;margin: 3px 0 0 5px;border-collapse: separate;}#globalgateway table td {width: 25%;vertical-align: top;background: transparent;}#globalgateway table td.regiontitle {empty-cells: hide;line-height: 95%;font-size: 82%;font-weight: bold; color: #333; background: none; border: none; padding: 2px 4px 0; margin: 0; border-top: 1px solid #CCC; border-left: 5px solid #F00;}#globalgateway ul {padding: 2px 0 8px 5px;margin: 0;list-style-image: none;list-style-type: none;}#globalgateway ul li {font-size: 76%;line-height: 135%;padding: 0;margin: 0 0 5px 5px;list-style-image: none;list-style-type: none;border-left: 3px solid #B3BDC3;padding: 0 10px 0 5px;}#globalgateway ul li.chld {margin-top: -5px;}#globalgateway ul li a {text-decoration: none;color: #039;border-bottom: 1px solid #039;}#globalgateway ul li a:hover {color: #F63;border-bottom: 1px solid #F63;}#globalgateway ul li span {font-size: 90%;}#globalgateway ul li.chld a span {color: #039;}#globalgateway ul li.chld a:hover span {color: #F63;}#iehackiframe {width: 710px; position: absolute; right: 5px;top: 22px; border: none;}<\/style>";
theHTML += "<iframe id=\"iehackiframe\" style=\"display: none; \"><\/iframe>";
theHTML += "<div id=\"globalgateway\" style=\"display: none; \" onclick=\"flag=1; \"><p>Select a Country or Area<\/p><table>";
theHTML += "<tr><td colspan=\"4\" id=\"heading1\" class=\"regiontitle\"><\/td><\/tr>";
theHTML += "<tr><td id=\"sitechunk1-1\"><\/td><td id=\"sitechunk1-2\"><\/td><td id=\"sitechunk1-3\"><\/td><td id=\"sitechunk1-4\"><\/td><\/tr>";
theHTML += "<tr><td colspan=\"4\" id=\"heading2\" class=\"regiontitle\"><\/td><\/tr>";
theHTML += "<tr><td id=\"sitechunk2-1\"><\/td><td id=\"sitechunk2-2\"><\/td><td id=\"sitechunk2-3\"><\/td><td id=\"sitechunk2-4\"><\/td><\/tr>";
theHTML += "<tr><td colspan=\"4\" id=\"heading3\" class=\"regiontitle\"><\/td><\/tr>";
theHTML += "<tr><td id=\"sitechunk3-1\"><\/td><td id=\"sitechunk3-2\"><\/td><td id=\"sitechunk3-3\"><\/td><td id=\"sitechunk3-4\"><\/td><\/tr>";
theHTML += "<tr><td colspan=\"4\" id=\"heading4\" class=\"regiontitle\"><\/td><\/tr>";
theHTML += "<tr><td id=\"sitechunk4-1\"><\/td><td id=\"sitechunk4-2\"><\/td><td id=\"sitechunk4-3\"><\/td><td id=\"sitechunk4-4\"><\/td><\/tr>";
theHTML += "<tr><td colspan=\"4\" id=\"heading5\" class=\"regiontitle\"><\/td><\/tr>";
theHTML += "<tr><td id=\"sitechunk5-1\"><\/td><td id=\"sitechunk5-2\"><\/td><td id=\"sitechunk5-3\"><\/td><td id=\"sitechunk5-4\"><\/td><\/tr>";
theHTML += "<tr><td colspan=\"4\"><p id=\"towwsite\"><a href=\"http:\/\/www.toshiba.co.jp\/worldwide\/\">More country\/area sites...<\/a><\/p><\/td><\/tr><\/table><div id=\"close\"><a href=\"javascript:void(0); \" onclick=\"document.getElementById('globalgateway').style.display='none'; return false\" onblur=\"document.getElementById('globalgateway').style.display='none'; document.getElementById('iehackiframe').style.display='none'; document.getElementById('gatewaybutton').focus(); return false\">Close<\/a><\/div><\/div>";
return theHTML;
break;
case 1:
var theHTML = "";
}
}
function generateGW(jsFile, theFormat){
switch(theFormat) {
case 0:
document.write(makeHTMLParts(theFormat));
httpObj = makeXMLHttpRequest(showGenGw);
background_click();
break;
case 1:
httpObj = makeXMLHttpRequest(showWwGw);
break;
}
if (httpObj){
httpObj.open("GET",jsFile,true);
httpObj.send(null);
}
}
function makeXMLHttpRequest(thisisIt){
var theXMLHR = null;
try{	theXMLHR = new XMLHttpRequest();
}catch(e){
try{
theXMLHR = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
theXMLHR = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
return null;
}
}
}
if (theXMLHR) theXMLHR.onreadystatechange = thisisIt;
return theXMLHR;
}
function $(theTargetId){
return document.getElementById(theTargetId);
}
function makeTempArray(jsonData, listType, regionName, alphabetFilter, sortBy){
var sName;
var sLang;
var sNamel;
var sLangl;
var sURL;
var sRegion;
var sType;
var isInGenGW;
var displayOrder;
var theJsonArray = JSON.parse(jsonData);
var itemArray = new Array();
var ii = 0;
var itemLine;
for(var i=0; i<theJsonArray.item.length; i++){
sName = theJsonArray.item[i].siteName;
sLang = theJsonArray.item[i].siteLang;
sNamel = theJsonArray.item[i].siteNamel;
sLangl = theJsonArray.item[i].siteLangl;
sURL = theJsonArray.item[i].siteURL;
sRegion = theJsonArray.item[i].siteRegion;
sRegion = regCodeToRegName(sRegion);
sType = theJsonArray.item[i].siteType
isInGenGW = theJsonArray.item[i].displayInGeneralGateway;
displayOrder = theJsonArray.item[i].displayOrder;
if(displayOrder>-1&&displayOrder<10){
displayOrder += "";
displayOrder = "0"+displayOrder;
} else {
displayOrder += "";
}
var displayName = sName+" - "+sLangl;
var thePrefix
switch(sortBy) {
case 0:
thePrefix = sName;
break;
case 1:
thePrefix = sRegion;
break;
default:
thePrefix = sName;
}
switch(listType) {
case 0:
if(sType==1){
if(regionName=="All" || regionName==sRegion){
if(alphabetFilter=="All" || itemLine.charAt(0)==alphabetFilter){
if((sName == sNamel || sNamel == "") && sLang == sLangl){
itemLine = thePrefix+"!_dlmt1_!"+displayOrder+sLangl+"!_dlmt2_!<li class=\"prnt\"><a href="+sURL+">"+sName+LangEhead+"<span>"+sLang+"<\/span>"+LangEend+"<\/a></li>";
}else if(sNamel == "" && sLang != sLangl){
itemLine = thePrefix+"!_dlmt1_!"+displayOrder+sLangl+"!_dlmt2_!<li class=\"prnt\"><a href="+sURL+">"+sName+LangEhead+"<span>"+sLang+"<\/span>"+LangEend+LangSeparator+sName+LangLhead+"<span>"+sLangl+"<\/span>"+LangLend+"<\/a></li>";
}else{
itemLine = thePrefix+"!_dlmt1_!"+displayOrder+sLangl+"!_dlmt2_!<li class=\"prnt\"><a href="+sURL+">"+sName+LangEhead+"<span>"+sLang+"<\/span>"+LangEend+LangSeparator+sNamel+LangLhead+"<span>"+sLangl+"<\/span>"+LangLend+"<\/a></li>";
}
itemArray[ii] = itemLine;
ii += 1;
}
}
}
break;
case 1:
if(sType==0){
if(regionName=="All" || regionName==sRegion){
if(alphabetFilter=="All" || itemLine.charAt(0)==alphabetFilter){
if((sName == sNamel || sNamel == "") && sLang == sLangl){
itemLine = thePrefix+"!_dlmt1_!"+displayOrder+sLangl+"!_dlmt2_!<li class=\"prnt\"><a href="+sURL+">"+sName+LangEhead+"<span>"+sLang+"<\/span>"+LangEend+"<\/a></li>";
}else if(sNamel == "" && sLang != sLangl){
itemLine = thePrefix+"!_dlmt1_!"+displayOrder+sLangl+"!_dlmt2_!<li class=\"prnt\"><a href="+sURL+">"+sName+LangEhead+"<span>"+sLang+"<\/span>"+LangEend+LangSeparator+sName+LangLhead+"<span>"+sLangl+"<\/span>"+LangLend+"<\/a></li>";
}else{
itemLine = thePrefix+"!_dlmt1_!"+displayOrder+sLangl+"!_dlmt2_!<li class=\"prnt\"><a href="+sURL+">"+sName+LangEhead+"<span>"+sLang+"<\/span>"+LangEend+LangSeparator+sNamel+LangLhead+"<span>"+sLangl+"<\/span>"+LangLend+"<\/a></li>";
}
itemArray[ii] = itemLine;
ii += 1;
}
}
}
break;
case 2:
if(isInGenGW==1){
if(regionName=="All" || regionName==sRegion){
itemLine = thePrefix+"!_dlmt1_!"+displayOrder+sLangl+"!_dlmt2_!<li class=\"prnt\"><a href=\""+sURL+"\">"+sName+LangLhead+"<span>"+sLangl+"<\/span>"+LangLend+"<\/a></\li>";
itemArray[ii] = itemLine;
ii += 1;
}
}
break;
default:
break;
}
}
itemArray.sort();
var prevSiteName="";
for(var itemNo=0; itemNo<itemArray.length; itemNo++){
var theLine=itemArray[itemNo];
var siteName=theLine.substring(0, theLine.lastIndexOf("!_dlmt1_!"));
if(siteName==prevSiteName){
itemArray[itemNo]=itemArray[itemNo]+"X";
itemArray[itemNo]=itemArray[itemNo].replace("prnt", "chld");
}else{
itemArray[itemNo]=itemArray[itemNo]+"Y";
}
prevSiteName=siteName;
}
return itemArray;
}
function makeMappingArray(tempArray){
var tempAndMappingArray = new Array(0);
for(var i=0; i<tempArray.length; i++){
var theString = tempArray[i];
var lastLetter = theString.charAt(theString.length-1);
if(lastLetter == "Y"){
tempAndMappingArray[tempAndMappingArray.length]= i
}
}
return tempAndMappingArray;
}
function getFirstItemNumbers(mappingArray, numberOfColumns){
var finArray = new Array(1);
var theSurplus = mappingArray.length % numberOfColumns;
var minNumberOfItemsInOneColumn = (mappingArray.length - theSurplus)/numberOfColumns;
var itemCount = 0;
finArray[0] = 0;
for(var i=1; i<numberOfColumns; i++){
if(theSurplus>0){
itemCount += (minNumberOfItemsInOneColumn+1);
theSurplus = theSurplus-1;
} else {
itemCount += minNumberOfItemsInOneColumn;
}
if(itemCount<=mappingArray[itemCount]){
finArray[i] = mappingArray[itemCount];
}
}
return finArray;
}
function formOutput(tempArray, finArray, listType, regionName, columnNumber){
switch(listType) {
case 0:
var beginTag = "<ul>";
var endTag = "</ul>";
break;
case 1:
var beginTag = "<ul>";
var endTag = "</ul>";
break;
case 2:
var beginTag = "<ul>";
var endTag = "</ul>";
break;
default:
var beginTag = "<ul>";
var endTag = "</ul>";
}
var outputLine = beginTag;
if(columnNumber == finArray.length) {
var finishPoint = tempArray.length;
} else if(columnNumber < finArray.length) {
var finishPoint = finArray[columnNumber];
} else {
var finishPoint = tempArray.length;
}
for(var i=finArray[columnNumber-1]; i<finishPoint; i++){
var shavedItem = tempArray[i];
shavedItem = shavedItem.substring(shavedItem.lastIndexOf("!_dlmt2_!")+9, shavedItem.length);
shavedItem = shavedItem.substring(0, shavedItem.length-1);
outputLine += shavedItem;
}
outputLine += endTag;
return outputLine;
}
var flag=0;
function button_click(){
var theContainer = document.getElementById('globalgateway');
var theIeHackIframe = document.getElementById('iehackiframe');
theContainer.style.display= theContainer.style.display=='block'?'none':'block';
theIeHackIframe.style.display= theIeHackIframe.style.display=='block'?'none':'block';
flag=1;
theIeHackIframe.style.height = theContainer.clientHeight;
var aS = theContainer.getElementsByTagName('A');
if(aS.length > 0 && theContainer.style.display == 'block') {
aS[0].focus();
}
}
function background_click(){
document.getElementsByTagName('body')[0].onclick = function (){
if(flag!=1){
document.getElementById('globalgateway').style.display='none';
document.getElementById('iehackiframe').style.display='none';
}
flag=0;
}
}
function showGenGw(){
var listType = 2
var alphabetFilter = "All";
var sortBy = 0;
var noc = 4;
for(var i=0; i<regionOrderArray.length; i++){
var regionName = regCodeToRegName(eval(regionOrderArray[i]));
if ((httpObj.readyState == 4) && (httpObj.status == 200)){
var tempArray = makeTempArray(httpObj.responseText, listType, regionName, alphabetFilter, sortBy);
var finArray = getFirstItemNumbers(makeMappingArray(tempArray), noc);
$("heading"+(i+1)).innerHTML = regionName;
for(var nnn=0; nnn<noc; nnn++){
$("sitechunk"+(i+1)+"-"+(nnn+1)).innerHTML = formOutput(tempArray, finArray, listType, regionName, nnn+1);
}
} else {
}
}
}
function showWwGw(){
var sortBy = 0
var noc = 2
var regionName = regCodeToRegName(wWregionNumber);
if ((httpObj.readyState == 4) && (httpObj.status == 200)){
var tempArray = makeTempArray(httpObj.responseText, 0, regionName, "All", sortBy);
var finArray = getFirstItemNumbers(makeMappingArray(tempArray), noc);
for(var nnn=0; nnn<noc; nnn++){
$("regionchunk"+(nnn+1)).innerHTML = formOutput(tempArray, finArray, 0, regionName, nnn+1);
}
var tempArray = makeTempArray(httpObj.responseText, 1, regionName, "All", sortBy);
var finArray = getFirstItemNumbers(makeMappingArray(tempArray), noc);
for(var nnn=0; nnn<noc; nnn++){
$("sitechunk"+(nnn+1)).innerHTML = formOutput(tempArray, finArray, 1, regionName, nnn+1);
}
} else {
}
}