// _ is reserved in all file names
// image files like: chinesegb.gif, chinesebig5.gif, english.gif

// constants, all strings should in lower case,
// and should use slash instead of backslash

var lang = new Array(),   langCode = new Array();
lang[1]  = "chinese",     langCode[1] = 2; // multiple code should be at first
lang[2]  = "english"; // the last is English

var code1 = new Array(), code2 = new Array();
code1[1]  = "gb",  code1[2]  = "big5";

// should modify this function after add or remove a code
function getCode(il,ic) {
if ( il==1 )return code1[ic];
else return ""
}

var nameOfHost = "http://www.ivu.org";
//var nameOfHost = "d:/work/websites/ivu"; // for local host

var imgURL = "http://www.ivu.org/chinese/";
//var imgURL = "d:/work/websites/ivu/chinese/"; // for local test

var fileExt = "html";
var showIcon = 1; // if = 1 display image icons,  = 0 display English text
var delimiter = " - "; // use if not show icon image
var codeDelimiter = "-"; // use if not show icon image

// do not modify below!
var currentLang = "", currentCode = "";
var indexOfLang = -1, indexOfCode = -1;
var pathBeforeLang = "", pathOfLang = "", pathAfterLang = "", fileName = "", nakedFileName = "";
var indexOfLine = -1, indexOfDot = -1;
var url = "";

doInitial();

function doInitial() {
url=getOriginalURL(); url = url.toLowerCase();
fileName = getCurrentFullFileName();
if(fileName=="")return
indexOfLang = getIndexOfCurrentLang();
if(indexOfLang==lang.length-1) pathOfLang=""
else pathOfLang = "/"+lang[indexOfLang]
pathBeforeLang = url.substring(0,url.indexOf(nameOfHost)+nameOfHost.length);
pathAfterLang = url.substring(pathBeforeLang.length+pathOfLang.length, url.indexOf(fileName));
if(indexOfLang<langCode.length)indexOfCode = getIndexOfCurrentCode();
}
if(fileName=="")document.write('<p align=center>Language Script Error: URL error!</p>')
else if(nakedFileName=="")document.write('<p align=center>Language Script Error: file name error!</p>')
else writeHTML()

function writeHTML() {
document.write('<p align=center>'); if(showIcon==0)document.write(delimiter);
for(var i=1;i<lang.length;i++) {
  if(i<langCode.length) {
    for(var j=1;j<=langCode[i];j++) {

      if(i==indexOfLang&&j==indexOfCode)continue
      document.write('<a href="javascript:goToLang('+i+', '+j+')">');
      if(showIcon==1)document.write('<IMG SRC="'+imgURL+lang[i]+getCode(i,j)+'.gif" border=0></a>')
      else document.write(lang[i].toUpperCase()+codeDelimiter+getCode(i,j).toUpperCase()+'</a>'+delimiter)
    }
  }
  else {
    if(indexOfLang!=i){
      document.write('<a href="javascript:goToLang('+i+', '+0+')">');
      if(showIcon==1)document.write('<IMG SRC="'+imgURL+lang[i]+getCode(i,j)+'.gif" border=0></a>')
      else document.write(lang[i].toUpperCase()+'</a>'+delimiter)
      }
    }
  }
document.write('</p>');
}

function getLocation(l,c) {
var lpath = "";
if(l!=lang.length-1) lpath = "/"+lang[l]
var fname = nakedFileName;
if(l>=langCode.length) fname = fname + "." + fileExt
else fname = fname + "_" + getCode(l,c) + "." + fileExt
return pathBeforeLang+lpath+pathAfterLang+fname;
}
function getIndexOfCurrentCode() {
while(indexOfLine!=-1) {
  var keyword=fileName.substring(indexOfLine+1,indexOfDot);
  for(var i=1;i<=langCode[indexOfLang];i++) {
    if(getCode(indexOfLang,i)==keyword)return i
    else continue
    }
  break;
  }
return -1;
}
function getIndexOfCurrentLang() {
for(var i=1;i<lang.length-1;i++) {
   var keyword=nameOfHost+"/"+lang[i];
   var ind=url.indexOf(keyword);
   if(ind==-1)continue
   else return i
   }
return lang.length-1
}
function getCurrentFullFileName() {
var iwell = -1, islash = -1, nm = "";
islash = url.lastIndexOf("/");
while(islash!=-1) {
  nm = url.substring(islash+1);
  indexOfDot = nm.lastIndexOf("."+fileExt);
  if(indexOfDot==-1)break
  iwell = nm.indexOf("#", indexOfDot+fileExt.length);
  if(iwell!=-1) nm = nm.substring(0,iwell);
  indexOfLine = nm.lastIndexOf("_", indexOfDot);
  if(indexOfLine!=-1) nakedFileName = nm.substring(0,indexOfLine)
  else nakedFileName = nm.substring(0,indexOfDot);
  break
  }
return nm
}
function goToLang(lidx, cidx){goToLangLocation(getLocation(lidx, cidx))}
function goToLangLocation(loc){document.location=loc}
function getOriginalURL() {return document.location.href}
function initArray() {this.length=initArray.arguments.length; for(var i=0;i<this.length;i++) this[i+1]=initArray.arguments[i]}
