﻿/****************************************
 *                                      *
 *   author: gondo                      *
 *   email:  gondo(at)webdesigners.sk   *
 *                                      *
 ****************************************/

/* turn off error reporting */
//window.onerror = new Function("return true;");

/* constants */
var isOpera = (window.navigator.userAgent.indexOf("Opera") > -1);
var isGecko = (navigator.product == "Gecko");
var isIe = (window.navigator.userAgent.indexOf("MSIE") > -1);
var rootDir = getRootDir();



/* functions setup */
window.onresize = my_onresize;
window.onload = function()
{
    window.onload;
    my_onload();
};

/* list of functions */
/* function called when whole page is loaded */
function my_onload()
{
    my_onresize();

    if (isGecko)
        clear_blur();

    if (isIe)
        load_behavior();

    preloadImages();
    loadBackgroundImagesChanging();
    //loadZvatsiZmensi();
    
    //load lightbox
    myLightbox = new Lightbox();
}

/* return root directory of page */
function getRootDir()
{
    var src = document.getElementsByTagName("script")[0].src;
    var pos = src.lastIndexOf('js/');
    var root = src.substring(0, pos);

    return root;
}

/* function which load behavior file for IE */
function load_behavior()
{
    document.body.style.behavior = 'url("'+rootDir+'js/csshover.htc")';
}

/* function called when page is resized */
function my_onresize()
{
/*
//centrovanie
windowHa = document.body.clientHeight;
    windowHb = document.documentElement.clientHeight;

    windowH = (windowHa > windowHb)? windowHa: windowHb;
    if (windowH > 680)
    {
        var all = document.getElementById("all").style;
        all.marginTop = (windowH - 680) / 2 + "px";
    }
    else
    {
        var all = document.getElementById("all").style;
        all.marginTop = 0;
    }
*/
}

/* this function clears dotted border around <a> element which makes firefox */
function clear_blur()
{
    var array = document.getElementsByTagName('a');
    for(i=0;element=array[i];i++)
    {
        element.setAttribute("onFocus","blur();");
    };
};

/* 0 - showen; 1 - hidden */
var zvatsiZmensiStav = 0;

/* this function(s) hide / show content box */
function zmen()
{
    /* if textA or textB is not set, no text holder exist */
    if ((typeof(textA) == "undefined") || (typeof(textB) == "undefined"))
        return;

    var elementA = document.getElementById("priesvitnost");
    var elementB = document.getElementById("obsah");
    var elementC = document.getElementById("skryt");

    function zmensi()
    {
        /* because of div padding i need to add 2x padding value */
        elementA.style.width = (elementC.offsetWidth + 10) + "px";
        elementA.style.height = (elementC.offsetHeight + 10) + "px";
    
        elementB.style.width = elementC.offsetWidth + "px";
        elementB.style.height = (elementC.offsetHeight - 10) + "px";
    
        elementA.style.left = (505 - elementC.offsetWidth - 15) + "px";
        elementA.style.top = "5px";
        
        elementB.style.left = (505 - elementC.offsetWidth - 20) + "px";
    }
    
    function zvatsi()
    {
        elementA.style.width = "505px";
        elementA.style.height = "410px";
    
        elementB.style.width = "485px";
        elementB.style.height = "390px";
    
        elementA.style.left = "0px";
        elementA.style.top = "0px";
        
        elementB.style.left = "0px";
    }

    if (zvatsiZmensiStav == 0)
    {
        elementC.innerHTML = textB;
        zmensi();
        zvatsiZmensiStav = 1;
    } 
    else
    {
        elementC.innerHTML = textA;
        zvatsi();
        zvatsiZmensiStav = 0;
    }

    createCookie("zvatsiZmensi", zvatsiZmensiStav, 7);
}

function loadZvatsiZmensi()
{
    var obj = document.getElementById("skryt");
    var status = readCookie("zvatsiZmensi");
    
    if (status != zvatsiZmensiStav)
    {
        zmen();
    }
}

/* changing background images */
function loadBackgroundImagesChanging()
{
    var obj = document.getElementById("prepinanieObrazkov");
    var count = 0;

    for (var i=0;i<obj.childNodes.length;i++)
    {
        if (obj.childNodes[i].nodeName.toLowerCase() == "a")
        {
            count += 1;
            obj.childNodes[i].onclick = new Function("changeImage(" + count + "); return false;");
            obj.childNodes[i].onmouseover = new Function("showPreview(" + count + ");");
            obj.childNodes[i].onmouseout = new Function("hidePreview(" + count + ");");
        }
    }
    
    /* if exist cookie, load last viewed image */
    var No = readCookie("backgroundImageNo");
    if (No)
    {
        changeImage(No);
    }
}

function showPreview(No)
{
    var objAll = document.getElementById("all");
    var newObj = document.createElement("div");
    
    newObj.id = "newImagePreview";
    newObj.style.width = "77px";
    newObj.style.height = "52px";
    newObj.style.position = "absolute";
    newObj.style.top = "531px";
    newObj.style.left = 699 - ((No - 1) * 15) + "px";
    newObj.style.backgroundImage = "url('" + rootDir + "obrazky/pozadie-maly-obrazok-" + No + ".jpg')";
    newObj.style.zIndex = "1";

    objAll.appendChild(newObj);
}

function hidePreview(No)
{
    var objAll = document.getElementById("all");
    var newObj = document.getElementById("newImagePreview");
    
    objAll.removeChild(newObj);
}

function changeImage(No)
{
    setImageSelected(No);

    var objImage = document.getElementById("velkyObrazok");
    objImage.style.backgroundImage = "url('" + rootDir + "obrazky/pozadie-velky-obrazok-" + No + ".jpg')";
    
    createCookie("backgroundImageNo", No, 7);
}

function setImageSelected(No)
{
    var count = 0;
    var obj = document.getElementById("prepinanieObrazkov");
    for (var i=0;i<obj.childNodes.length;i++)
    {
        if (obj.childNodes[i].nodeName.toLowerCase() == "a")
        {
            count += 1;
            obj.childNodes[i].removeAttribute("class");
            if (document.all)
                obj.childNodes[i].removeAttribute("className");
            if (No == count)
            {
                obj.childNodes[i].setAttribute("class", "selected");
                if (document.all)
                    obj.childNodes[i].setAttribute("className", "selected");
            }
        }
    }
}

/* cookies functions */
function createCookie(name, value, days) 
{
    if (days)
    {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else
    {
        var expires = "";
    }
    document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name)
{
    var nameEQ = name + "=";
    var cookieArray = document.cookie.split(';');
    for(var i=0;i < cookieArray.length;i++)
    {
        var c = cookieArray[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function eraseCookie(name)
{
    createCookie(name, "", -1);
}

/* preloading all images which ll be showen later by js */
function preloadImages()
{
    var imagesArray = new Array();
    
    imagesArray[0] = "obrazky/pozadie-maly-obrazok-1.jpg";
    imagesArray[1] = "obrazky/pozadie-maly-obrazok-2.jpg";
    imagesArray[2] = "obrazky/pozadie-maly-obrazok-3.jpg";
    imagesArray[3] = "obrazky/pozadie-maly-obrazok-4.jpg";

    imagesArray[4] = "obrazky/pozadie-velky-obrazok-1.jpg";
    imagesArray[5] = "obrazky/pozadie-velky-obrazok-2.jpg";
    imagesArray[6] = "obrazky/pozadie-velky-obrazok-3.jpg";
    imagesArray[7] = "obrazky/pozadie-velky-obrazok-4.jpg";


    for (var i=0;i<imagesArray.length;i++)
    {
        code  = "var img" + i + " = new Image();";
        code += "img" + i + ".id = \"preloadedImageNo\" + i;";
        code += "img" + i + ".src = \"" + imagesArray[i] + "\";";
        code += "img" + i + ".style.width = \"0px\";";
        code += "img" + i + ".style.height = \"0px\";";
        code += "img" + i + ".style.display = \"none\";";
        code += "document.getElementById('all').appendChild(img" + i + ");";

        code += "img" + i + ".onload = new Function(\"unloadImage(" + i + ")\");";
        eval(code);
    }
}

function unloadImage(i)
{
    var img = document.getElementById("preloadedImageNo" + i);
    var objAll = document.getElementById("all");
    
    objAll.removeChild(img);
}