/* 
* Shows document in specified language, via Javascript 
* For use with phpwcms language extensions 
* 
* Remembers user preferred language via cookies. Language cookie expires at end of session (browser close) 
*/ 
var strCurrentLanguage = 'DE'; // language to start with (default language) 
var aAvailableLanguages = new Array('DE','EN'); // array pf available languages in the document 
var strLanguageCookieName = 'currentLanguage'; // name of the cookie where selected language is stored 
var strInvisibleOnLoadClass = 'invisibleonload'; // name of the class wick marks elements invisible on page load (this script makes them visible) 
var bLanguageDebug = false; // if set to true show alerts during transoformation steps 


// ---------------------------------------------------------------------- 
// Do not edit below this line 
// ---------------------------------------------------------------------- 
function addEventFunction(strEvent, fFunction, oObject) 
{ 
if (!oObject) oObject = window; 
if (oObject.addEventListener) { 
oObject.addEventListener(strEvent, fFunction, true); 
return true; 
} else if (oObject.attachEvent) { 
return oObject.attachEvent('on'+strEvent, fFunction); 
} else { 
return false; 
} 
} 
function setLanguageCookie() 
{ 
document.cookie = strLanguageCookieName+"="+strCurrentLanguage; 
} 
function getLanguageCookie() { 
var strCookie=""+document.cookie; 
var iPos=strCookie.indexOf(strLanguageCookieName); 
if (iPos==-1) return ""; 
var iPos2=strCookie.indexOf(';',iPos); 
if (iPos2==-1) iPos2=strCookie.length; 
return unescape(strCookie.substring(iPos+strLanguageCookieName.length+1,iPos2)); 
} 
function langTagOpen(strLanguage) 
{ 
return '{'+strLanguage+'}'; 
} 
function langTagClose(strLanguage) 
{ 
return '{/'+strLanguage+'}'; 
} 
function stripLanguage(strText,strLanguage) 
{ 
var aSplittedText = strText.split(langTagOpen(strLanguage)); 
var strLanguageText = aSplittedText[0]; 
for (var i = 1; i < aSplittedText.length; i++) { 
var aSplittedText2 = aSplittedText[i].split(langTagClose(strLanguage)); 
strLanguageText += aSplittedText2[1]; 
} 
return strLanguageText; 
} 
function parseTextLanguage(strText) 
{ 
var strLanguageText = strText; 
for (var i = 0; i < aAvailableLanguages.length; i++) { 
if (aAvailableLanguages[i] != strCurrentLanguage) { 
strLanguageText = stripLanguage(strLanguageText,aAvailableLanguages[i]); 
} 
} 
strLanguageText = strLanguageText.replace(new RegExp(langTagOpen(strCurrentLanguage),"g"),''); 
strLanguageText = strLanguageText.replace(new RegExp(langTagClose(strCurrentLanguage),"g"),''); 
return strLanguageText; 
} 
function parseLanguageDocument() 
{ 
if (bLanguageDebug) alert('languages.js: Starting...'); 
var prefLanguage = getLanguageCookie(); 
var prefOk = false; 
for (var i = 0; i < aAvailableLanguages.length; i++) { 
if (aAvailableLanguages[i] == prefLanguage) prefOk = true; 
} 
if (!prefOk) 
setLanguageCookie(); 
else { 
strCurrentLanguage = prefLanguage; 
setLanguageCookie(); 
} 
parseLanguageElements(); 
if (bLanguageDebug) alert('languages.js: Translation done.'); 
} 
function parseLanguageElements(oNode) 
{ 
if (!oNode) oNode = document.body; 
if (strInvisibleOnLoadClass=="") return; 
if (oNode.className == strInvisibleOnLoadClass) { 
if (!oNode.innerHTML) return; 
if (!oNode.originalHTML) oNode.originalHTML = oNode.innerHTML; 
oNode.innerHTML = parseTextLanguage(oNode.originalHTML); 
if (bLanguageDebug) alert('languages.js: Translated block.'); 
oNode.style.visibility = 'visible'; 
if (bLanguageDebug) alert('languages.js: Block made visible.'); 
} 
if (!oNode.childNodes) return; 
for (var i = 0; i < oNode.childNodes.length; i++) 
parseLanguageElements(oNode.childNodes[i]); 
} 
function changeLanguage(strLanguage) 
{ 
if (strLanguage == strCurrentLanguage) return; 
for (var i = 0; i < aAvailableLanguages.length; i++) { 
if (aAvailableLanguages[i] == strLanguage) { 
strCurrentLanguage = strLanguage; 
setLanguageCookie(); 
parseLanguageElements(); 
} 
} 
} 
addEventFunction('load',parseLanguageDocument);
