/*
 *
 * navigate.js
 *
 * Collection of navigation functions
 *
 */

//called only at top frame level
function enaTrans(thisLink) {
    var letterFrameObj = contentFrame.letterFrame;
    var termFrameObj = contentFrame.termFrame;
    var frameObj = contentFrame.langFrame;
    var transFrameObj = contentFrame.transFrame;
    
    var subPaths = thisLink.split("/");
    var len = subPaths.length;
    var mainLang;
    var checkFrame = -1;
    
    if (termFrameObj && letterFrameObj) {
        mainLang = letterFrameObj.document.getElementById("indLang");
        if (mainLang) {
            try {
                termFrameObj.location.href = "../".concat(mainLang.value).concat("/").concat(thisLink);
            } catch (e) {
                termFrameObj.location.href = "../".concat(mainLang.value).concat("/errorPage.html");
            }
            //no error if trafo successful
            checkFrame = 0;
        }
    }
    if (frameObj && transFrameObj) {
        var langTitleObj = frameObj.document.getElementById("langTitle");
        var selBoxObj = frameObj.document.getElementById("langSelBox");
        var selLang = "";
        if (langTitleObj && selBoxObj) {
            if (langTitleObj.style.display == "none" || selBoxObj.style.display == "none") {
                // hidden, need to display and set selected to none
                langTitleObj.style.display = "";
                selBoxObj.style.display = "";
                if (selBoxObj) {
                    selBoxObj.selectedIndex = 0;
                }
            } else {
                // already displayed, need to update translation content based on selected language
                if (selBoxObj) {
                    selLang = selBoxObj[selBoxObj.selectedIndex].value;
                    if (selLang != "" && thisLink) {
                        var newHref = "../".concat(selLang).concat("/").concat(thisLink);
                        //var newHref = selLang.concat("/").concat(thisLink);
                        try {
                            transFrameObj.location.href = newHref;
                        } catch (e) {
                            //if (selLang) {
                            	//try {
                            	//	transFrameObj.location.href = "../".concat(selLang).concat("/errorPage.html");
                            	//} catch (e) {
                            		if (mainLang) {
                            			transFrameObj.location.href = "../".concat(mainLang.value).concat("/errorPage.html");
                            		}
                            	//}
                            //}
                        }
                         //error if translation does not exist
                        if (mainLang) {
                        	checkFrame += 2;
                        }
                    }
                }
            }
        }
    }
    window.setTimeout("checkNewPages('" + subPaths[len-1] + "', '" + mainLang.value + "', '" + selLang + "', " + checkFrame + ")", 200);
}

//called only at top frame level
function follTrans(thisLink) {
		letterFrameObj = contentFrame.letterFrame;
    termFrameObj = contentFrame.termFrame;
    frameObj = contentFrame.langFrame;
    transFrameObj = contentFrame.transFrame;
    
    var checkFrame = -1;
    
    if (letterFrameObj && termFrameObj && frameObj && transFrameObj) {
        var langTitleObj = frameObj.document.getElementById("langTitle");
        var selBoxObj = frameObj.document.getElementById("langSelBox");
        var selLang = "";
        if (langTitleObj && selBoxObj) {
            // already displayed, need to update both translation content and term content based on selected / main language
            if (selBoxObj) {
                //selLang = selBoxObj[selBoxObj.selectedIndex].value;
                //if (selLang != "" && thisLink) {
                if (thisLink) {
                    var subPaths = thisLink.split("/");
                    var len = subPaths.length;
                    var prefix = "";
                    var suffix = "";
                    for (i = 0; i < (len-4); i++) {
                        prefix += subPaths[i].concat("/");
                    }
                    for (i = (len - 2); i < len; i++) {
                        suffix += "/".concat(subPaths[i]);
                    }
                    var mainLang;
                    //update term window content:
                    mainLang = letterFrameObj.document.getElementById("indLang");
                    if (mainLang) {
                        var newTermHref = prefix.concat(mainLang.value).concat(suffix);
                        try {
                            termFrameObj.location.href = "../../" + newTermHref;
                            //termFrameObj.location.href = newTermHref;
                        } catch (e) {
                            //termFrameObj.location.href = "../".concat(mainLang.value).concat("/errorPage.html");
                            termFrameObj.location.href = "../".concat("/errorPage.html");
                         }
                        checkFrame = 0;
                    }
                    //update translation window content:
                    selLang = selBoxObj[selBoxObj.selectedIndex].value;
                    //var newHref = "../".concat(selLang).concat("/").concat(thisLink);
                    if (selLang != "") {
                        var newHref = prefix.concat(selLang).concat(suffix);
                        try {
                            transFrameObj.location.href = "../../" + newHref;
                            //transFrameObj.location.href = newHref;
                        } catch (e) {
                        		//if (mainLang) {
                            	//transFrameObj.location.href = "../".concat(mainLang.value).concat("/errorPage.html");
                            	transFrameObj.location.href = "../".concat("/errorPage.html");
                          	//}
                        }
                        checkFrame += 2;
                    }
                    
                    if (mainLang || selLang) {
                    	window.setTimeout("checkNewPages('" + subPaths[len-1] + "', '" + mainLang.value + "', '" + selLang + "', " + checkFrame + ")", 200);
                    }
                    
										//error if translation does not exist
                }
            }
        }
    }
}

//called only at top frame level
function chanTrans(thisBox) {
		letterFrameObj = contentFrame.letterFrame;
    transFrameObj = contentFrame.transFrame;
    termFrameObj = contentFrame.termFrame;
    if (letterFrameObj && transFrameObj && termFrameObj && thisBox) {
    		var mainLang = letterFrameObj.document.getElementById("indLang");
        var selLang = thisBox[thisBox.selectedIndex].value;
        if (selLang != "") {
            var termHref = termFrameObj.location.href;
            var subPaths = termHref.split("/");
            var len = subPaths.length;
            var prefix = "";
            var suffix = "";
            for (i = 0; i < (len-3); i++) {
                prefix += subPaths[i].concat("/");
            }
            for (i = (len - 2); i < len; i++) {
                suffix += "/".concat(subPaths[i]);
            }
            var newHref = prefix.concat(selLang).concat(suffix);
            //var newHref = selLang.concat(suffix);
            
            try {
                //transFrameObj.location.href = "../".concat(newHref);
                transFrameObj.location.href = newHref;
            } catch (e) {
              	//try {
              	//	transFrameObj.location.href = "../".concat(selLang).concat("/errorPage.html");
              	//} catch (e) {
              		if (mainLang) {
              			transFrameObj.location.href = "../".concat(mainLang.value).concat("/errorPage.html");
              		}
              	//}
            }
						//error if translation does not exist
            if (mainLang) {
            	window.setTimeout("top.checkNewPages('" + subPaths[len-1] + "', '" + mainLang.value + "', '" + selLang + "', 1)", 200);
          	}
           
            //change layout of langframe depending on language - 4.4.2006
            langFrameObj = contentFrame.langFrame;
            if (langFrameObj) {
                langBodyObj = langFrameObj.document.getElementById("langBody");
                if (langBodyObj) {
                    if (selLang == "ar") {
                        langBodyObj.dir = "rtl";
                    } else {
                        langBodyObj.dir = "ltr";
                    }
                }
            }
        }
    }
}

//called only at top frame level
function checkLayout(thisFrame) {
    // check styles when frame == termFrame or frame == transFrame
    if (thisFrame == contentFrame.termFrame) {
        // default saved format is ok
    }
    if (thisFrame == contentFrame.transFrame) {
        // change styles for body background, hide header //and links
        //note: links commented out since they have to appear in both window - 20.1.2006
        var thisBody = thisFrame.document.getElementById("termBody");
        var thisHeader = thisFrame.document.getElementById("termHeader");
        //var thisLinks = document.getElementById("termLinks");

        if (thisBody) {
            thisBody.style.background = "#FFFFFF";
        }
        if (thisHeader) {
            thisHeader.style.display = "none";
        }
        //if (thisLinks) {
        //    thisLinks.style.display = "none";
        //}
    }
}

//called only thru top frame
//function checkNewPages(sExpectedPage, nLevel, sLang, nFrameNo){
function checkNewPages(sExpectedPage, sLang, sTransLang, nFrameNo){
    targetId= sExpectedPage.replace(/.html/, '');
    targetId=targetId.replace(/ /, '');
    
    if (!sTransLang || sTransLang == "") {
    	sTransLang = sLang;
    }
 
    //check trans or term window, display translation error if page not found
    switch(nFrameNo) {
    	case 0:		frameTermId = contentFrame.termFrame.document.title.replace(/Thesaurus -/, '');
						    frameTermId = frameTermId.replace(/ /, '');
						    //if ((frameTermId != '') && (frameTermId != targetId)){
						    if (frameTermId != targetId){
						        contentFrame.termFrame.location.href = sLang + "/errorPage.html";
						    }
    						break;
    	case 1:		frameTermId = contentFrame.transFrame.document.title.replace(/Thesaurus -/, '');
						    frameTermId = frameTermId.replace(/ /, '');
						    //if ((frameTermId != '') && (frameTermId != targetId)){
						    if (frameTermId != targetId){
						        //contentFrame.transFrame.location.href = sTransLang + "/errorPage.html";
						        contentFrame.transFrame.location.href = sLang + "/errorPage.html";
						    }
						    break;
			case 2:		frameTermId = contentFrame.termFrame.document.title.replace(/Thesaurus -/, '');
						    frameTermId = frameTermId.replace(/ /, '');
						    //if ((frameTermId != '') && (frameTermId != targetId)){
						    if (frameTermId != targetId){
						        contentFrame.termFrame.location.href = sLang + "/errorPage.html";
						    }
    						if (sTransLang && sTransLang != "") {
									frameTermId = contentFrame.transFrame.document.title.replace(/Thesaurus -/, '');
							    frameTermId = frameTermId.replace(/ /, '');
							    //if ((frameTermId != '') && (frameTermId != targetId)){
							    if (frameTermId != targetId){
							        //contentFrame.transFrame.location.href = sTransLang + "/errorPage.html";
							        contentFrame.transFrame.location.href = sLang + "/errorPage.html";
							    }
    						}
    	default:	break;
    }
}
