﻿var cssmenuids = ["menu"] //Enter id(s) of CSS Horizontal UL menus, separated by commas
var csssubmenuoffset = -1 //Offset of submenus from main menu. Default is 0 pixels.

function init() {
    // inicializacni funkce onLoad
    //    resizeTo(1024,768);
    //createcssmenu();
}

function createcssmenu() 
{
    for (var i = 0; i < cssmenuids.length; i++) 
    {
        var ultags = document.getElementById(cssmenuids[i]).getElementsByTagName("ul");
        for (var t = 0; t < ultags.length; t++) 
        {
            csssubmenuoffset = ultags[t].offsetHeight - 2 * ultags[t].offsetHeight
            ultags[t].style.top = csssubmenuoffset + "px"
            ultags[t].parentNode.onmouseover = function() 
            {
                this.style.zIndex = 100
                this.getElementsByTagName("ul")[0].style.visibility = "visible"
                this.getElementsByTagName("ul")[0].style.zIndex = 0
            }
            ultags[t].parentNode.onmouseout = function() 
            {
                this.style.zIndex = 0
                this.getElementsByTagName("ul")[0].style.visibility = "hidden"
                this.getElementsByTagName("ul")[0].style.zIndex = 100
            }
        }
    }
}

function imageRotatorButtonsOver(object){

}

function showImage(imageRotatorItem) {
    var url = imageRotatorItem._events._list.itemClicked.getElementsByTagName("input")[0].value;
    var pozice = imageRotatorItem.getElementsByTagName("input")[1].value;
    var popis = imageRotatorItem.getElementsByTagName("input")[2].value;
    var imageAnchors = document.getElementById("imageCell").getElementsByTagName("a");

    for (var i = 0; i < imageAnchors.length; i++) {
        if (imageAnchors[i].hasChildNodes) {
            imageAnchors[i].removeChild(imageAnchors[i].childNodes[0]);
            imageAnchors[i].style.display = "none";
            imageAnchors[i].style.visibility = "hidden";
        }
        
        if (i == pozice) {
            var image = document.createElement("img");
            image.alt = popis;
            image.src = url;

            imageAnchors[i].appendChild(image);
            imageAnchors[i].style.display = "block";
            imageAnchors[i].style.visibility = "visible";
        }
    }
}

var statusLabel;

function showStatusLabel(text, addText) {
    statusLabel = document.getElementById('statusLabel');

    if (!statusLabel) {
        statusLabel = document.createElement("p");
        statusLabel.id = "statusLabel";
        statusLabel.style.color = "#f00";
        getContentPanel().appendChild(statusLabel);
    }
    
    switch (addText)
    {
        case 0:
            statusLabel.innerText = text;
            break;
        case 1:
            statusLabel.innerText += text;
            break;
        case 2:
            statusLabel.innerHTML += ((statusLabel.innerHTML != '') ? "<br />" : "") + text;
            break;            
    }

    return statusLabel;
}

function hasChild(parent, child)
{
    for (var i = 0; i < parent.childNodes.length; i++)
    {
        if (parent.childNodes[i] == child)
            return true;
    }
    
    return false;
}

function hideStatusLabel() {
    if (statusLabel) {
        var content = getContentPanel();
        
        if (hasChild(content, statusLabel))
            content.removeChild(statusLabel);
    }    
}

function getContentPanel() {
    return document.getElementById('content');
}

function controlDayOfDate(date) {
    var day = parseInt(date.match(/^\d{1,2}/), 10);
    return  day >= 1 && day <= 31;
}

function controlMonthOfDate(date) {
    var month = parseInt(date.match(/\d{1,2}(?=.\d{4})/), 10);
    return month >= 1 && month <= 12;
}

function controlYearOfDate(date) {
    var year = parseInt(date.match(/\d{4}$/), 10);
    return year >= 1900 && year <= 2100;
}

function controlDateFormat(textBox) {
    var date = textBox.value;

    hideStatusLabel();
    
    if (date != '') {
        if (!date.match(/^(\d{1,2}).(\d{1,2}(?=.\d{4})).(\d{4})$/)) {
            showStatusLabel(getAlert(alertCodes.IncorrectDate), 0);
            textBox.focus();
        }
        else {
            if (!controlDayOfDate(date) || !controlMonthOfDate(date) || !controlYearOfDate(date)) {
                if (!controlDayOfDate(date))
                    showStatusLabel(getAlert(alertCodes.IncorrectDay), 2);

                if (!controlMonthOfDate(date))
                    showStatusLabel(getAlert(alertCodes.IncorrectMonth), 2);

                if (!controlYearOfDate(date))
                    showStatusLabel(getAlert(alertCodes.IncorrectYear), 2);

                textBox.focus();
            }
        }
    }
}

var lang;

function setUserLanguage(lang) {
    this.lang = lang;
}

function getUserLanguage() {
    if (this.lang == null)
        return this.clientInformation.browserLanguage;
    else
        return lang;
}

var alertCodes = {
IncorrectDay: "IncorrectDay",
IncorrectMonth: "IncorrectMonth",
IncorrectYear: "IncorrectYear",
IncorrectDate: "IncorrectDate",
IncorrectUCI: "IncorrectUCI"
}

var czechAlerts = new Array();
czechAlerts[alertCodes.IncorrectDay] = "Den je ve špatném rozsahu!";
czechAlerts[alertCodes.IncorrectMonth] = "Měsíc je ve špatném rozsahu!";
czechAlerts[alertCodes.IncorrectYear] = "Rok je ve špatném rozsahu!";
czechAlerts[alertCodes.IncorrectDate] = "Datum musí být ve formátu dd.mm.rrrr!";
czechAlerts[alertCodes.IncorrectUCI] = "UCI musí být zadáno v platném formátu! (Spojení kódu země a data narození)";

var englishAlerts = new Array();
englishAlerts[alertCodes.IncorrectDay] = "Day is in bad range!";
englishAlerts[alertCodes.IncorrectMonth] = "Month is in bad range!";
englishAlerts[alertCodes.IncorrectYear] = "Year is in bad range!";
englishAlerts[alertCodes.IncorrectDate] = "Date must be in format dd.mm.yyyy!";
englishAlerts[alertCodes.IncorrectUCI] = "UCI must be set in correct format! (Join of country code and date of birth)";

function getAlert(alertCode) {
    var alert;
    switch (getUserLanguage()) {
        case "cs":
            alert = czechAlerts[alertCode];
            break;
        case "en-EN":
            alert = englishAlerts[alertCode];
            break;
        default:
            alert = englishAlerts[alertCode];
            break;
    }

    return alert;
}

function controlUCIformat(uciBox) {
    var uci = uciBox.value;
    
    hideStatusLabel();
    
    if (uci == "") {
        return false;
    }
    else {
        if (!uci.match(/^(\D{3})(\d{8})$/)) {
            showStatusLabel(getAlert(alertCodes.IncorrectUCI), 0);
            uciBox.focus();
            return false;
        }
        else {
            return true;
        }
    }
}

function setValues(uciBox) {
    var uci = uciBox.value;
    if (controlUCIformat(uciBox)){
        var datumBox = document.getElementById('DatumBox');
        var ZemeDDL = document.getElementById('ZemeDDL');
        var datumNaroz = uci.slice(3);
        var zkratka = uci.slice(0, 3);
        datumBox.value = datumNaroz.slice(6, 8) + '.' + datumNaroz.slice(4, 6) + '.' + datumNaroz.slice(0, 4);

        for (var i = 0; i < ZemeDDL.options.length; i++) {
            if (ZemeDDL.options[i].countryCode == zkratka)
                ZemeDDL.options[i].selected = 'true';
        }
    }
}

function visibleSubmenu(menuItem) {
    var subMenu = getSubmenu(menuItem);
    menuItem.style.zIndex = 100
    subMenu.style.visibility = "visible"
    subMenu.style.zIndex = 0
}

function unvisibleSubmenu(menuItem) {
    var subMenu = getSubmenu(menuItem);
    menuItem.style.zIndex = 0
    subMenu.style.visibility = "hidden"
    subMenu.style.zIndex = 100
}

function getSubmenu(menuItem) {
    return menuItem.getElementsByTagName("ul")[0];
}

function uncheckBox(checkListId, listPosition) {
    var checkBoxes = document.getElementById(checkListId).getElementsByTagName("input");
    checkBoxes[listPosition].checked = false;
}

function checkAll(checkListId, object) {
    if (object.checked)
    {
        var checkBoxes = document.getElementById(checkListId).getElementsByTagName("input");
        for (var t = 0; t < checkBoxes.length; t++) {
            checkBoxes[t].checked = object.checked;
        }
    }
}

function balanceColumns() {
    var leftCol = document.getElementById("contentPanel");
    var rightCol = document.getElementById("newsPanel");

//    if (leftCol.offsetHeight < rightCol.offsetHeight)
//        leftCol.height = rightCol.offsetHeight;
//    else
//        if (leftCol.offsetHeight > rightCol.offsetHeight)
//            rightCol.height = leftCol.offsetHeight;
}