/*
 * @namespace Space4Web
 *
 * @copyright 2008, 2009 Sunfox.cz
 * All Rights Reserved.
 */

var Space4Web = {};

// -----------------------------------------------------------------------------

Space4Web.debug = false;

// -----------------------------------------------------------------------------

// Localization
Space4Web.Localization = SZN.ClassMaker.makeClass({
    NAME: "Space4Web.Localization",
    VERSION: "0.1",
    CLASS: "class"
});

/*
 * Constructor
 */
Space4Web.Localization.prototype.$constructor = function(canvas, locales)
{
    this.canvasId = canvas;
    this.canvas = null;

    this.allLocales = [ 'de', 'com', 'net', 'cat', 'nl', 'it', 'fr', 'pl', 'pt',
        '', '', '', '', '', '', '', '', '', '', 'cs', 'sk', '', '', '', '', '',
        '', '', '', '', '', '', 'us', 'en', '', '', '', '', '', '', '', '', '',
        '', '', '', '', '', '', '', '', '', '', '', '', '' ]
    this.availableLocales = locales;
}

Space4Web.Localization.prototype.init = function()
{
    this.canvas = SZN.gEl(this.canvasId);

    for (var i = 0; i < this.availableLocales.length; i++)
    {
        for (var j = 0; j < this.allLocales.length; j++)
        {
            if (this.allLocales[j] == this.availableLocales[i])
            {
                var newFlag = this.createFlag(j);
                this.canvas.appendChild(newFlag);
            } else continue;
        }
    }
}

Space4Web.Localization.prototype.createFlag = function(number)
{
    var dirFlag = SZN.cEl('dir', null, 'flag', null, document);
    var aFlag   = SZN.cEl('a',   null, 'flag', null, document);

    aFlag.href = '/account/locales/' + this.allLocales[number];
    dirFlag.style.backgroundPosition = "-" + (number * 21) + "px 0";

    if (SZN.Browser.client == "ie")
    {
        dirFlag.style.width = "23px";
//        dirFlag.style.height = "6px";
    }

    SZN.Events.addListener(dirFlag, 'mouseover', this,
        'changeOpacity', false, false);
    SZN.Events.addListener(dirFlag, 'mouseout', this,
        'changeOpacity', false, false);

    aFlag.appendChild(dirFlag);

    return aFlag;
}

Space4Web.Localization.prototype.changeOpacity = function(e, elm)
{
    if (e.type == "mouseover" && !SZN.Dom.hasClass(elm, 'hover'))
    {
        SZN.Dom.addClass(elm, 'hover');
    }
    else if (e.type == "mouseout" && SZN.Dom.hasClass(elm, 'hover'))
    {
        SZN.Dom.removeClass(elm, 'hover');
    }
}

// -----------------------------------------------------------------------------
