var sCurrentIPCURL;
var sDefinitionURL = '';
var sIlluURL = '';
var sCatchURL = '';
var sCompilURL = '';
var sRCLURL = '';
var bDefinitionURL = false;
var bIlluURL = false;
var aCache = new Array();
/*var sBaseURI = '../../work/';
var sBaseURL = './render.php?xml=../work/';
 */
var iMenuMode = 1;
var bFrameLoading = false;
var bIE = navigator.userAgent.toLowerCase().indexOf('msie') != -1;
var sBaseURI = '../';
var sBaseURL = './render.php?xml=';
var gsMenuLang = 'EN';

var aParams = [
    ['notes', 'yes'],
    ['priorityorder', 'no'],
    ['indexes', 'no'],
    ['headings', 'yes'],
    ['pagers', 'no'],
    ['edition', gsDefaultEdition],
    ['view', ''],
    ['viewmode', 'f'],
    ['pagesize', '50'],
    ['level', 'a'],
    ['symbol', ''],
    ['lang', 'es'],
    ['clang', 'es'],
    ['clevel', 'a'],
    ['rlevel', 'a'],
    ['showdeleted', 'yes'],
    ['printheader', 'yes']
];
var iCurrentTab = 0;
var aLinks = [
    '#1',
    '#2',
    '#3',
    '#4',
    '#5',
    '#6',
    '#7',
    '#8',
    ''
];


// messages
/*var sMsgInvalidClassSubclass="This is an invalid symbol!\nInvalid class/subclass.";
var sMsgInvalidFormat="This is an invalid symbol!\nInvalid IPC format.";
*/
function showLink(sURL) {
    if (!bFrameLoading) {
        bFrameLoading = true;

        if (sURL.indexOf('?') == -1)
            sURL += '?tabindex=' +iCurrentTab;
        else
            sURL = sURL.replace(/[?]/g,'?tabindex=' +iCurrentTab+'&');

        window.frames['idFrame'].location.href = sURL;
    }
}

function loadFromCache(sFileName) {
    var oXML = null;
    for (var i = 0; i < aCache.length; i++) {
        var aRow = aCache[i];
        if (aRow[0] == sFileName)
            oXML = aRow[1];
    }
    if (oXML == null) {
        try {
            oXML = new ActiveXObject('MSXML2.FreeThreadedDOMDocument');
            oXML.async = false;
            oXML.load(sFileName);
        } catch(e) { // Try Mozilla
            try {
                var oHTTPRequest = new XMLHttpRequest();
                oHTTPRequest.open('GET', sFileName, false);
                oHTTPRequest.send(null);
                oXML = oHTTPRequest.responseXML;
            } catch(e) {

            }
        }

        if (oXML != null)
            aCache.push(new Array(sFileName, oXML));
    } /*else
        alert('Cache hit!');*/
    return oXML;
}

function getBrowserPostfix() {
    if (bIE)
        return '';
    else
        return '8';
}

function switchTab(iId, bActive) {
    var iIndex = Number(bActive) +1;
    document.getElementById('idL' +iId).src = 'images/' +iIndex +'l.png';
    document.getElementById('idR' +iId).src = 'images/' +iIndex +'r.png';
    document.getElementById('idB' +iId).style.backgroundImage = 'url(images/' +iIndex +'b.png)';
    document.getElementById('idD' +iId).className = (bActive ? 'active' : 'inactive');
}

function jumpTab(iIndex, bNoJump) {
    if (iCurrentTab != iIndex) {
        var oPrint = document.getElementById('idPrint');

        switchTab(iCurrentTab, false);
        switchTab(iIndex, true);
        iCurrentTab = iIndex;

        var sLink = aLinks[iIndex];
        if (sLink.charAt(0) == '#')
            switch (sLink.charAt(1)) {
                case '1':
                    sLink = sCurrentIPCURL;
                    oPrint.disabled = false;
                    break;
                    
                case '2':
                    sLink = sDefinitionURL;
                    oPrint.disabled = !bDefinitionURL;
                    bIPCMode = true;
                    break;
                    
                case '3':
                    sLink = sIlluURL;
                    oPrint.disabled = !bIlluURL;
                    break;
                    
                case '4':
                    iMenuMode = 2;
                    updateFromTo();
                    searchRCL();
                    oPrint.disabled = true;
                    break;
                    
                case '5':
                    iMenuMode = 3;
                    searchWord();
                    bNoJump = true;
                    oPrint.disabled = true;
                    break;
                    
                case '6':
                    iMenuMode = 4;
                    sLink = 'help_' + gsMenuLang +'.htm';
                    break;
                    
                case '7':
                    sLink = 'options.php?menulang=' + gsMenuLang;
                    break;
                    
                case '8':
					iMenuMode = 5;
                    searchCompil();
                    bNoJump = true;
                    oPrint.disabled = true;
                    break;
            }
        else {
            oPrint.disabled = true;
//            sLink += '&menumode=' +iMenuMode;
        }

        updateMenu();

        if (!bNoJump)
            showLink(sLink);
//            document.getElementById('idFrame').src = sLink;
    }
}

function updateMenu() {
    switch (iCurrentTab) {
        case 3:
            iMenuMode = 2;
            break;
        case 4:
            iMenuMode = 3;
            break;
        case 5:
            iMenuMode = 4;
            break;
        case 7:
            iMenuMode = 5;
            break;
        default:
            iMenuMode = 1;
    }

    document.getElementById('idIPCDiv').style.display = (iMenuMode == 1 ? 'inline' : 'none');
    document.getElementById('idRCLDiv').style.display = (iMenuMode == 2 ? 'inline' : 'none');
    document.getElementById('idCatDiv').style.display = (iMenuMode == 3 ? 'inline' : 'none');
    document.getElementById('idHelpDiv').style.display = (iMenuMode == 4 ? 'inline' : 'none');
    document.getElementById('idVersionDiv').style.display = (iMenuMode != 4 ? 'inline' : 'none');
    document.getElementById('idCompilDiv').style.display = (iMenuMode == 5 ? 'inline' : 'none');
}

function getAppParam(sName) {
    for (var i = 0; i < aParams.length; i++)
        if (aParams[i][0] == sName)
            return aParams[i][1];
    return '';
}

function setAppParam(sName, sValue) {

    for (var i = 0; i < aParams.length; i++)
        if (aParams[i][0] == sName)
            aParams[i][1] = sValue;
}

/*
function onChangeSymbolDef(oThis) {
    var bDisabled = oThis.checked;
    document.getElementById('idLang1').disabled = bDisabled;
    document.getElementById('idLang2').disabled = bDisabled;
}
*/
function onChangeSymbolDef(oThis) {
    if (oThis.checked)
        document.getElementById('idSymbol').value = '';
}

function onChangeSymbol(oThis) {
    document.getElementById('idSymbolDef').checked = false;
    if (window.event.keyCode == 13)
        goToSymbol();
}

function goToDef(sSymbol, sLang, sHash) {
//    var sTempSymbol = getParam('symbol', window.frames['idFrame'].location.href);
//    setValue('idLevel', 'a');

    bDefinitionURL = true;
    jumpTab(1, true);

    var sEdition = getEditionByLevel('a');
    setEdition(sEdition);

    document.getElementById('idEditionText').innerHTML = sEdition.substr(0, 4) +'.' +sEdition.substr(4, 2);

    // Add lang
    if (gsSecondLang == '')
        sLang = gsDefaultLang;
    if (sLang == null) {
        sLang = '';
        if (document.getElementById('idLang1').checked)
            sLang += gsDefaultLang;
        if (document.getElementById('idLang2').checked)
            sLang += (sLang == '' ? '' : ',') +gsSecondLang;
    }
    if (sLang == '')
        sLang += 'en';

    if (sSymbol == '')
        sSymbol = 'global';

    var sURL = sBaseURL +sEdition +'/definitions/' +sLang.toLowerCase() +'/' +sSymbol +'.xml&xsl=xslt/print-definition.xsl&cxsl=xslt/show-definition' +getBrowserPostfix() +'.xsl&symbol=' +sSymbol;
    if (sHash != null){
        sThisXml = getURLVariable(window.frames['idFrame'].location.href,"xml");
        sNextXml = getURLVariable(sURL,"xml");
        if(sThisXml==sNextXml){

             if (window.frames['idFrame'].document.getElementsByName(sHash).length != 0) {

                window.frames['idFrame'].document.getElementById('idDiv_GLOSSARYOFTERMS').style.display = 'inline';
                window.frames['idFrame'].document.getElementById('idImg_GLOSSARYOFTERMS').src = 'images/minus.png';
                var iOffset = window.frames['idFrame'].getObjectTop(sHash);
                window.frames['idFrame'].showArrow(iOffset);
                window.frames['idFrame'].window.scrollTo(0, iOffset);
                }
            return;
        } else {
            sURL += '&hash=' +encodeURI(sHash);
        }
    }

    showLink(sURL);
    sDefinitionURL = sURL;
}

function getURLVariable( sURL,sVar )
/*****************************************************************
    `description`
                                                            8/2/2005 11:31AM
*****************************************************************/
{
    var iP= sURL.indexOf(sVar+'=');
    if( iP < 0 ){
        return '';
    }
    var sV = sURL.substring(iP+sVar.length+1);
    iP = sV.indexOf("&");
    if( iP > 0 ){
        sV = sV.substring(0,iP);
    }
    return sV;
}  // getURLVariable

function goToIllu(sSymbol, iCount, iEdition) {
    bIlluURL = true;
    jumpTab(2, true);

	var sEdition = getEditionByLevel('a');
	setEdition(iEdition);

	document.getElementById('idEditionText').innerHTML = sEdition.substr(0, 4) +'.' +iEdition.substr(4, 2);

    // HACK!!!
    var sVisibleSymbol = decodeSymbol(sSymbol.toUpperCase());
    setValue('idSymbol', sVisibleSymbol);

    sCurrentIPCURL = removeParam(removeParam(sCurrentIPCURL, 'symbol'), 'hash') +'&hash=ipc' +sSymbol +'&symbol=' +sSymbol;

    var sURL = 'illustration.php?symbol=' +sSymbol +'&count=' +iCount +'&edition=' +iEdition;
    showLink(sURL);
    sIlluURL = sURL;
}

function goToPDF(sSymbol, iEdition) {
    var sEdition = getValue('idEdition') +'/'
    var sLang = '';
    if (gsSecondLang != '') {
        if (document.getElementById('idLang1').checked)
        sLang += gsDefaultLang;
        if (document.getElementById('idLang2').checked)
        sLang += (sLang == '' ? '' : ',') +gsSecondLang;
    }
    else 
        sLang = gsDefaultLang;
    sURL = sEdition +'pdf/' +sLang +'/' +sSymbol +'.pdf';
//    prompt('', sURL);
    showLink(sURL);
}

function goToSymbol(sSymbol, sEndSymbol, sDisplayeMode, sMode, sLang, sLevel, bBack, sEdition) {
    jumpTab(0, true);
    var bError = false;
    var sSecondLang = '';

/*
    var sTemp = window.location.href;
    var iPos = sTemp.lastIndexOf('/');
    var sBaseURI = sTemp.substr(0, iPos +1)
    prompt('', sBaseURI);
*/

    // Add edition
    if (sEdition == null)
        sEdition = getValue('idEdition');
    else {
        var sLevels = '';
        for (var i = 0; i < aEditions.length; i++)
            if (aEditions[i][0] == sEdition)
                sLevels = aEditions[i][3];
        if (sLevels.indexOf(sLevel) == -1)
            sEdition = aEditions[0][0];

        setValue('idEdition', sEdition);
        //editionChanged();
    }

    // Add level
    if (sLevel == null)
        sLevel = getValue('idLevel');
    else
        setValue('idLevel', sLevel);
    var j=0;
    for (var i = 0; i < aEditions.length; i++)
        if (aEditions[i][0] == sEdition)
            sLevels = aEditions[i][3];
            j=i-1;
    if (sLevels.indexOf(sLevel) == -1) {
        sEdition = aEditions[j][2];
        setValue('idEdition', sEdition);
    }
    
    sEdition += '/';
    
    var sOrigSymbol=sSymbol;
    // Add symbol
    if (sSymbol == null) {
        try {
            sSymbol = encodeSymbol(getValue('idSymbol'));
        //alert(sSymbol);
            if (sSymbol != '' && !mayBeValid(sSymbol.toLowerCase(),sLevel=='c')) {
                bError = true;
                sSymbol='';
                alert(sMsgInvalidClassSubclass);
            }
        } catch(e) {
            sSymbol = '';
            bError = true;
//                        alert('here'+"["+e.message+"]");
            alert(e.message);
        }
    }

    if (gsSecondLang == '')
        sLang = gsDefaultLang;
    
    if (!bError) {
        var sURLSymbol = sSymbol.replace(/\*/g, '');

        if (sMode == null)
            sMode = getValue('idViewMode');
        else
            setValue('idViewMode', sMode);

//        alert(sLevel);
        var sLevelChar = (sLevel == 'c' ? 'core' : 'advanced');

        // Add lang
        if (gsSecondLang != '') {
        if (sLang == null) {
            sLang = '';
            if (document.getElementById('idLang1').checked)
                sLang += gsDefaultLang;
            if (document.getElementById('idLang2').checked)
                sLang += (sLang == '' ? '' : ',') +gsSecondLang;
            } 
            else {
            document.getElementById('idLang1').checked = sLang.indexOf(gsDefaultLang) != -1;
            document.getElementById('idLang2').checked = sLang.indexOf(gsSecondLang) != -1;
        }
        if (sLang == '')
            sLang += 'en';
        else {
            aLangs = sLang.split(',');
            sLang = aLangs[0];
            if (aLangs.length > 1)
                sSecondLang = aLangs[1];
            }
        }

        if (sURLSymbol == '') { // Index
            sURL = sBaseURL +sEdition +'index/' +sLang +'/index.xml&xsl=xslt/cleanup.xsl&cxsl=xslt/ipcentry' +getBrowserPostfix() +'.xsl&fulltext=yes&index=yes&level=' +sLevel;
            sURL += '&menulang=' +gsMenuLang;

            if (sMode == 'h')
                sURL += '&siblings=yes';

            setValue('idSymbol', '');
            showLink(sURL);
            sCurrentIPCURL = sURL;
            document.getElementById('idEditionText').innerHTML = sEdition.substr(0, 4) +'.' +sEdition.substr(4, 2);

        } else { // Normal symbol (not an index)
            if (sMode == 'h' && sSymbol.length < 5)

                if( sOrigSymbol!=null || sSymbol.length==1){
                    sSymbol = sURLSymbol +'*';
                }



            var sURL = sBaseURL +sEdition +'subclass/' +sLevelChar +'/' +sLang +'/xml/';

            sTemp = sURLSymbol.toUpperCase();
            var sVisibleSymbol = decodeSymbol(sTemp);
            setValue('idSymbol', sVisibleSymbol);

//               alert(sURLSymbol);

            if (sMode == 'h'){
                if( sOrigSymbol != null && sOrigSymbol.indexOf('*') > 0 ){
                sURL += sTemp.substr(0, 4) +'.xml';
                    }else{
                switch (sURLSymbol.length) {
                    case 3:
                        sURL += sTemp.substr(0, 1) +'.xml';
                        break;
                    case 4:
                        sURL += sTemp.substr(0, 3) +'.xml';
                        break;
                    default:
                        sURL += sTemp.substr(0, 4) +'.xml';
                        break;
                }
                }
            }else{
                sURL += sTemp.substr(0, 4) +'.xml';
            }
            if (getValue('idPriority') == 'yes')
                sURL += '&xsl4=xslt/standseq.xsl';

            if (sMode == 'f' && getAppParam('pagers') == 'yes')
                sURL += '&dir=to&pagesize=' +getAppParam('pagesize') +'&xsl6=xslt/pager.xsl';

            sURL += '&xsl2=xslt/cleanup.xsl&level=' +sLevel; // '&myurl=' +encodeURI(sURI)

            if (sSecondLang != '') {
                var sURI = sBaseURI +sEdition +'subclass/' +sLevelChar +'/' +sSecondLang +'/xml/';
                sURL += '&xsl3=xslt/couplekey.xsl&otherlang=' +sSecondLang +'&myurl=' +encodeURI(sURI);
            }

            var sHash = sTemp;
            sURL += '&symbol=' +sSymbol.toUpperCase()/*.substr(0, 4)*/ +'&cxsl=xslt/ipcentry' +getBrowserPostfix() +'.xsl&indexes=' +getAppParam('indexes') +'&printheader=' +getAppParam('printheader');

            if (document.getElementById('idShowDeleted').checked)
                sURL += '&deleted=yes';

            // Add display and filter settings
        /*    sTemp = getValue('idNotes');
            if (sTemp == 'def')*/
            sTemp = getAppParam('notes');
            sURL += '&notes=' +sTemp;

            sTemp = getAppParam('headings');
            sURL += '&headings=' +sTemp;

            switch(sMode) {
                case 'f':
                    sTemp = '&fulltext=yes';
                    break;
                case 'a':
                    sTemp = '&parents=yes&children=yes';
                    break;
                case 'h':
                    sTemp = '&parents=yes&siblings=yes';
                    break;
                default:
                    sTemp = '';
                    break;
            }

            sURL += sTemp +'&hash=ipc' +sHash;
            if (bBack)
                sURL += '&back=yes';

            sURL += '&menulang=' +gsMenuLang;

            document.getElementById('idEditionText').innerHTML = sEdition.substr(0, 4) +'.' +sEdition.substr(4, 2);

            showLink(sURL);
            sCurrentIPCURL = sURL;
        }
    }
}

function searchWord(sWord, sLevel, sId) {
    try {
        if (sWord == null)
            sWord = document.getElementById('idWord').value.toUpperCase();
        else
            setValue('idWord', sWord);

        if (sLevel == null)
            sLevel = getValue('idCLevel');
        else
            setValue('idCLevel', sLevel.charAt(0));

        var sEdition = getValue('idEdition');
        var sLang = getValue('idCLang');
        var sURL;

        switch (sLevel) {
            case 'a':
                sLevel = 'advanced';
                break;
            case 'c':
                sLevel = 'core';
                break;
        }

        sWord = sWord.replace(/[��]/g, 'E')
            .replace(/[��]/g, 'A')
            .replace(/[��]/g, 'I')
            .replace(/[����]/g, 'O')
            .replace(/[����]/g, 'U');

        if (sWord.length > 0)
            sURL = sBaseURL +sEdition +'/catchword/' +sLevel +'/' +sLang.toLowerCase() +'/' +sWord.charAt(0) +'.xml&xsl=xslt/cwpager.xsl&pos=1&cxsl=xslt/cwentry' +getBrowserPostfix() +'.xsl&whash=' +sWord +'&menulang=' +gsMenuLang +'&level=' +sLevel;
        else
            sURL = sBaseURL +sEdition +'/catchword/' +sLevel +'/' +sLang.toLowerCase() +'/index.xml&xsl=xslt/cwpager.xsl&cxsl=xslt/cwindex' +getBrowserPostfix() +'.xsl&pagesize=' +getAppParam('pagesize') +'&menulang=' +gsMenuLang +'&level=' +sLevel;

        if (sId != null)
            sURL += '&wordid=' +sId

//        prompt('', sURL);

        showLink(sURL);
        sCatchURL = sURL;
    } catch(e) {
        alert(e.message);
    }
}

function searchCompil() {
    try {
        var sEdition = getValue('idEdition');
        document.getElementById('idEditionText').innerHTML = sEdition.substr(0, 4) +'.' +sEdition.substr(4, 2);

        var sLang = getValue('idComLang');
        var sLevel = getValue('idLevel');
        if(document.getElementById('idCLevelC').disabled==true){
        document.getElementById('idCLevelA').checked=true;
        sLevel='a';
        }
        
        var prevEdition = getPrevEdition(sEdition,sLevel);
        switch (sLevel) {
            case 'a':
                sLevel = 'Advanced';
                break;
            case 'c':
                    sLevel='Core';
                break;
        }
		
        sURL = sEdition +'/compilation/wwwpub_' +sLang.toUpperCase() +'_ipcr_'+sLevel+'_compilation_'+prevEdition+'_'+sEdition+'.htm';
        showLink(sURL);
        //sCompilURL = sURL;
    } catch(e) {
        alert(e.message);
    }
}

var bInInit = false;

function getInitParam(sName) {
    var sTemp = getParam(sName);
    if (sTemp == '')
        sTemp = getAppParam(sName);
    return sTemp;
}

function copyParam(sName) {
    var sTemp = getParam(sName);
    if (sTemp != '')
        setAppParam(sName, sTemp);
}

function init() {
    if (!bInInit) {
        bInInit = true;

        gsMenuLang = getParam('menulang');
        if (gsMenuLang == '')
            gsMenuLang = 'EN';

        sDefinitionURL = 'definitions.php?menulang=' +gsMenuLang;
        sIlluURL = 'formulae.php?menulang=' +gsMenuLang;

        setValue('idViewMode', getInitParam('viewmode'));
        setValue('idLevel', getInitParam('level'));
        setValue('idSymbol', getInitParam('symbol'));
        setValue('idPriority', getInitParam('priorityorder'));
        setValue('idEdition', getInitParam('edition'));
        setValue('idCLang', getInitParam('lang'));
        setValue('idComLang', getInitParam('lang'));
        setValue('idCLevel', getInitParam('level'));
        setValue('idRLevel', getInitParam('level'));

        copyParam('notes');
        copyParam('headings');
        copyParam('indexes');
        copyParam('pagesize');
//        copyParam('level');
        copyParam('lang');
        copyParam('showdeleted');
        copyParam('printheader');

        document.getElementById('idShowDeleted').checked = getAppParam('showdeleted') == 'yes';

        if (gsSecondLang != '') {
        var sLang = getAppParam('lang');
            document.getElementById('idLang1').checked = sLang.indexOf(gsDefaultLang) != -1;
            document.getElementById('idLang2').checked = sLang.indexOf(gsSecondLang) != -1;
        }
        setTimeout("goToSymbol()", 100);

        editionChanged();
        var sEdition = getValue('idEdition');
	    /*if (sEdition == 20090101){
	        document.getElementById('idLevelC').disabled=true;
	     }
	    else{
	     	document.getElementById('idLevelC').disabled=false;
	     }*/
        bInInit = false;

//        showSecondEdition();
    }
}

function onKeyDown(oThis, oEvent) {
//    if (event.keyCode == 13) // event.which
    if (oEvent.which) {
        if (oEvent.which == 13) // event.which
            goToSymbol();
    } else
        if (oEvent.keyCode == 13) // event.which
            goToSymbol();
}

function onCatKeyDown(oThis, oEvent) {
//    if (event.keyCode == 13) // event.which
    if (oEvent.which) {
        if (oEvent.which == 13) // event.which
            searchWord();
    } else
        if (oEvent.keyCode == 13) // event.which
            searchWord();
}

function onRCLKeyDown(oThis, oEvent) {
//    if (event.keyCode == 13) // event.which
    if (oEvent.which) {
        if (oEvent.which == 13) // event.which
            searchRCL();
    } else
        if (oEvent.keyCode == 13) // event.which
            searchRCL();
}

function goPrint() {
    var sURL = window.frames['idFrame'].location.href;
/*    iPos = sURL.indexOf('#');
    if (iPos != -1)
        sURL = sURL.substr(0, iPos);*/
    sURL += '&hidebuttons=yes';
    window.open(sURL, '_blank', 'statusbar=no,toolbar=no,menubar=yes,location=no,scrollbars=yes,resize=yes');
}

function setEdition(sEdition) {
    if (sEdition == null)
        var sEdition = getValue('idEdition')
    else {
        setAppParam('edition', sEdition);
        setValue('idEdition', sEdition);
    }
    var sLevel = getLevelByEdition(sEdition);
//    alert(sLevel);
    setAppParam('clevel', sLevel);
    setValue('idCLevel', sLevel);
    setAppParam('level', sLevel);
    setValue('idLevel', sLevel);
    setAppParam('rlevel', sLevel);
    setValue('idRLevel', sLevel);
}

function setLevel(sLevel, sSource) {
    if (sSource != 'cat') {
        setAppParam('clevel', sLevel);
        setValue('idCLevel', sLevel);
        if (sSource != 'rcl') {
        var sEdition = getEditionByLevel(sLevel);
        setAppParam('edition', sEdition);
        setValue('idEdition', sEdition);
    }
    }

    if (sSource != 'def') {
        setAppParam('level', sLevel);
        setValue('idLevel', sLevel);
    }

    if (sSource != 'rcl') {
        setAppParam('rlevel', sLevel);
        setValue('idRLevel', sLevel);
    }
}

function setLang(sLang, sSource) {
    if (sSource != 'cat') {
        setAppParam('clang', sLang);
        setValue('idCLang', sLang);
    }
    if (sSource != 'def') {
        setAppParam('lang', sLang);
        if (gsSecondLang != '') {
            document.getElementById('idLang1').checked = sLang == gsDefaultLang;
            document.getElementById('idLang2').checked = sLang == gsSecondLang;
        }
    }
        if (sSource == 'com') {
        setValue('idComLang', sLang);
    }
}

function getEditionByLevel(cLevel) {
    if (cLevel == 'a')
        for (var i = aEditions.length -1; i >= 0 ; i--) {
            if (aEditions[i][3].indexOf('a') >= 0)
                return aEditions[i][0];
        }
    else
        for (var i = 0; i < aEditions.length; i++) {
            if (aEditions[i][3].indexOf('c') >= 0)
                return aEditions[i][0];
        }
    return '';
}

function getLevelByEdition(sEdition) {
    for (var i = 0; i < aEditions.length; i++) {
        if (aEditions[i][0] == sEdition)
            return aEditions[i][3];
    }
    return '-';
}

function getPrevEdition(sEdition,cLevel) {
    for (var i = 0; i < aEditions.length; i++) {
        if (aEditions[i][0] == sEdition) {
            if (cLevel == 'a') 
                return aEditions[i][1];
            else
                return aEditions[i][2];
        }
    }
    return '';
}

function searchRCL(sEdition1, sEdition2, sLevel, sSymbol, sView, bAll) {
    try {
        var sEdition;
        var sEdition = document.getElementById('idEdition').value;
        document.getElementById('idEditionText').innerHTML = sEdition.substr(0, 4) +'.' +sEdition.substr(4, 2);

        if (sEdition1 == null) {
            var oFrom = document.getElementById('idFrom');
            var oTo = document.getElementById('idTo');

            sEdition1 = oFrom.innerHTML;
            sEdition2 = oTo.innerHTML;

            if (sEdition1 < sEdition2) {
                sOld = sEdition1;
                sEdition = sEdition2;
            } else {
                sOld = sEdition2;
                sEdition = sEdition1;
            }
        } else {
            if (sEdition1 < sEdition2) {
                sOld = sEdition1;
                sEdition = sEdition2;
            } else {
                sOld = sEdition2;
                sEdition = sEdition1;
            }
        }
/*
        alert(sEdition1);
        alert(sEdition2);
*/
        if (sLevel == null)
            sLevel = getValue('idRLevel');
        else
            setValue('idRLevel', sLevel.charAt(0));
        switch (sLevel) {
            case 'a':
                sLevel = 'advanced';
                break;
            case 'c':
                sLevel = 'core';
                break;
        }

        if (sView == null) {
            var oTemp = document.getElementById('idViewA');
            if (oTemp.disabled)
                sView = 1;
            else
                sView = (oTemp.checked ? '1' : '0');
        }
        sView = (sLevel=='core' && sEdition1 < sEdition2)?1:0;

        if (sSymbol == null) {
            try {
                sSymbol = encodeSymbol(getValue('idSymbol2'));
                if (sSymbol != '' && !mayBeValid(sSymbol.toLowerCase(),sLevel=='core')) {
                    bError = true;
                    sSymbol='';
                    alert(sMsgInvalidClassSubclass);
                }
            } catch(e) {
                sSymbol = '';
                bError = true;
                alert(e.message);
            }
        }

        var sURL;
        if (sSymbol != '') {
            sTemp = sSymbol.toUpperCase();
            var sVisibleSymbol = decodeSymbol(sTemp);
            setValue('idSymbol2', sVisibleSymbol);

            sURL = sBaseURL +sEdition +'/rcl/rcl_' +sLevel +'_' +sEdition1 +sEdition2 +'.xml&xsl1=xslt/rcl-filter.xsl&xsl2=xslt/rcl-addmaingroups.xsl&cxsl=xslt/rcl-view' +getBrowserPostfix() +'.xsl&filter=' +sSymbol.substr(0, 4) +'&viewA=' +sView +'&old=' +sOld +'&hash=' +sSymbol;
        } else if (bAll){
                sURL = sBaseURL +sEdition +'/rcl/rcl_' +sLevel +'_' +sEdition1 +sEdition2 +'.xml&xsl1=xslt/rcl-filter.xsl&xsl2=xslt/rcl-addmaingroups.xsl&cxsl=xslt/rcl-view' +getBrowserPostfix() +'.xsl&viewA='+sView+'&old=' +sOld;
//                var sURL = sBaseURL +sEdition +'/rcl/rcl_' +sLevel +'_' +sEdition1 +sEdition2 +'.xml&cxsl=xslt/rcl_content.xsl&old=' +sOld;
        }    else{
                sURL = sBaseURL +sEdition +'/rcl/rcl_' +sLevel +'_' +sEdition1 +sEdition2 +'.xml&xsl1=xslt/rcl-filterindex.xsl&viewA='+sView+'&cxsl=xslt/rcl_index' +getBrowserPostfix() +'.xsl';
        }

        showLink(sURL);
        sRCLURL = sURL;
    } catch(e) {
        alert(e.message);
    }
}

function updateRCL() {
    updateFromTo();
}

function updateFromTo(oThis) {
    if (oThis == null || oThis.name == "idRLevel")
        var bSwap = getValue('idNewToOld') == 'Y';
    else
        var bSwap = oThis.value == 'Y';

//    alert(bSwap);

    var oFrom = document.getElementById('idFrom');
    var oTo = document.getElementById('idTo');
    var sEdition = document.getElementById('idEdition').value;
    var sLevel = getValue('idRLevel');
    var sSecond = '';
    for (var i = 0; i < aEditions.length; i++)
        if (aEditions[i][0] == sEdition) {
            if (sLevel == 'a') {
                sSecond = aEditions[i][1];
            } else {
                sSecond = aEditions[i][2];
            }
            break;
        }
    if (bSwap) {
        oFrom.innerHTML = sSecond;
        oTo.innerHTML = sEdition;
    } else {
        oFrom.innerHTML = sEdition;
        oTo.innerHTML = sSecond;
    }

    grayAdv2Core(bSwap, getValue('idRLevel') == 'c');
}

function checkBack() {
//    alert(window.frames['idFrame'].location.href);
    bFrameLoading = false;

    var sIndex = getParam('tabindex', window.frames['idFrame'].location.href);

    if (sIndex != '') {
        var iIndex = Number(sIndex);

        if (iIndex != iCurrentTab) {
            switchTab(iCurrentTab, false);
            switchTab(iIndex, true);
            iCurrentTab = iIndex;
            updateMenu();
        }
    }
}

function showdiv( divname ) {
    window.frames['idFrame'].showdiv( divname );
}

function showalldiv( ) {
    window.frames['idFrame'].showalldiv( );
}

function updateLevel()    
{
    var sEdition = document.getElementById('idEdition').value;
    var sLevel = getLevelByEdition(sEdition);
    if ((sEdition) < 20060101){
        setValue('idLevel', sLevel);
        document.getElementById('table12').style.display ='none';
     }
     else{        
        document.getElementById('table12').style.display ='';
        setValue('idLevel', sLevel);
        
     }
}

function updateRCLCheck(oThis) {
    if (oThis == null)
        var bTemp = getValue('idRLevel') == 'c';
    else
        var bTemp = oThis.value == 'c';
    grayAdv2Core(getValue('idNewToOld') == 'Y', bTemp);
}

function grayAdv2Core(bOld, bCore) {
    var oCheck = document.getElementById('idViewA');
    oCheck.disabled = !(bOld && bCore);
}

function changeCWURL(sWord) {
    setValue('idWord', sWord);
    sCatchURL = removeParam(sCatchURL, 'whash') +'&whash=' +sWord;
}

function editionChanged() {
    var sEdition = document.getElementById('idEdition').value;
    var sLevels = '';
    for (var i = 0; i < aEditions.length; i++) {
        if (aEditions[i][0] == sEdition) {
            sLevels = aEditions[i][3];
            var showtabs = aEditions[i][4];
            showtabs = showtabs.split("");
            for (var j = 0; j < 8; j++) {
                var display = "";
                if (showtabs[j] == "0") {
                    display = "none";
                };
                document.getElementById("idT" + j).style.display = display;
            };
        };
    };
    updateLevels(sLevels);
    jumpTab(0);
    goToSymbol();
}

function updateLevels(sLevels) {
    document.getElementById('idRLevelA').disabled = sLevels.indexOf('a') == -1;
    document.getElementById('idRLevelC').disabled = sLevels.indexOf('c') == -1;
    document.getElementById('idCLevelA').disabled = sLevels.indexOf('a') == -1;
    document.getElementById('idCLevelC').disabled = sLevels.indexOf('c') == -1;
}

