//----------------------------------------------------------------------------------------------------
//  javascript functions - submenu
//----------------------------------------------------------------------------------------------------

var closeTimeout;
var openElement = '';

function showSubmenu(id)
{
    clearTimeout(closeTimeout);

    // close other elements first
    if (openElement != id && openElement != '') {
        document.getElementById(openElement).style.display = 'none';
        openElement = '';
    }

    // show current element
    if (openElement != id) {
        document.getElementById(id).style.display = 'block';
    }

    openElement = id;
}

function hideSubmenu()
{
    // wait 500ms before closing
    closeTimeout = setTimeout("closeSubmenu()", 100);
}

function closeSubmenu()
{
    if (openElement == '') {
        return true;
    }

    document.getElementById(openElement).style.display = 'none';
    openElement = '';
}

function loadMap()
{
    if (GBrowserIsCompatible()) {

        // load google maps
        var map = new GMap2(document.getElementById("googleMap"));
        map.setCenter(new GLatLng(47.90052, 16.90605), 15);

        // map settings
        map.enableScrollWheelZoom();
        map.enableContinuousZoom();

        // define icon settings
        var markerIcon         = new GIcon();
        markerIcon.iconSize    = new GSize(240, 24);
        markerIcon.iconAnchor  = new GPoint(10, 24);
        markerIcon.image       = root + 'img/' + site + '/google_marker.png';

        // add overlay
        var markerOptions  = {
            icon: markerIcon,
            clickable: false
        }; //icon: markerIcon,
        var marker         = new GMarker(new GLatLng(47.90052, 16.90323), markerOptions);
        map.addOverlay(marker);
    }
}

function changeSize(size)
{
    document.getElementById('css_small').disabled = true;
    document.getElementById('css_large').disabled = true;

    if (size == 'switch') {
        fontsize = eatCookie('fontsize');
        size = (fontsize == 'large') ? 'small' : 'large';
    }

    document.getElementById('css_' + size).disabled = false;

    setcookie('fontsize', size, 60*60*24*30, '/');

    return false;
}


function setSize()
{
    fontsize = eatCookie('fontsize');
    if (fontsize != 'large') {
        fontsize = 'small';
    }

    changeSize(fontsize);
}

setSize();

function setcookie(name, value, expires, path, domain, secure) {

    expires instanceof Date ? expires = expires.toGMTString() : typeof(expires) == 'number' && (expires = (new Date(+(new Date) + expires * 1e3)).toGMTString());
    var r = [name + "=" + escape(value)], s, i;
    for(i in s = {
        expires: expires,
        path: path,
        domain: domain
    }){
        s[i] && r.push(i + "=" + s[i]);
    }
    return secure && r.push("secure"), document.cookie = r.join(";"), true;
}


function eatCookie(name)
{
    var arg=name+"=";
    var alen=arg.length;
    var clen=document.cookie.length;
    var i=0;

    while (i<clen)
    {
        var j=i+alen;
        if(document.cookie.substring(i,j) == arg)
            return EatCookieVal(j);

        i=document.cookie.indexOf(" ",i) + 1;
        if (i === 0) {
            break;
        }
    }
    return '';
}


function EatCookieVal(offset)
{
    var endstr=document.cookie.indexOf(";",offset);
    if (endstr == -1) {
        endstr=document.cookie.length;
    }
    return unescape(document.cookie.substring(offset,endstr));
}


function feedback(vote, contentId)
{
    // show loader
    $('#loader').show();

    // ajax request
    $.ajax({
        url: root + 'votes/vote/' + vote + '/' + contentId,
        type: 'GET',
        cache: false,
        success: function(data)
        {
            // hide loader
            $('#loader').hide();

            // show thank you message
            $('#buttons').hide();
            $('#thankyou').show();
        }
    });

    return false;
}
