﻿document.domain = "gpotato.eu";
document.write("<link rel=\"shortcut icon\" href=\"http://simg.gpotato.eu/common/favicon.ico\" />");

function AddImagePath()
{
    for (var i = 0; i < arguments.length; i++)
    {
        var table = arguments[i];
        for (var j = 0; j < table.length; j++)
        {
            table[j] = S_BASE_IMG + table[j];
        }
    }
}

function FnGetObjById(sID, obj)
{
    if (!obj) obj = document;

    return document.getElementById(sID);
}

function FnGetObjByClassName(element, tagname, classname)
{
    var alldescendants = (element || document.body).getElementsByTagName(tagname);
    for (var i = 0; i < alldescendants.length; i++)
    {
        if (classname == null || alldescendants[i].className.indexOf(classname) > -1)
        {
            return alldescendants[i];
        }
    }
    return null;
}

function FnGetArrByClassName(element, tagname, classname)
{
    var descendants = new Array();
    var alldescendants = (element || document.body).getElementsByTagName(tagname);
    for (var i = 0; i < alldescendants.length; i++)
    {
        if (classname == null || alldescendants[i].className.indexOf(classname) > -1)
        {
            descendants.push(alldescendants[i]);
        }
    }
    return descendants;
}

/*=============================================================================
use : flash write
@Param : string Object URL, int Width, int Height[, string Variable, string Background Color, string Window Mode]
=============================================================================*/
function ObFlashString(sObjURL, nWidth, nHeight, sVars, sBgColor, sWinMod, sObjId)
{
    if (sObjId == null || sObjId == "") sObjId = sObjURL.split("/")[sObjURL.split("/").length - 1].split(".")[0];
    if (sVars == null) sVars = '';
    if (sBgColor == null) sBgColor = '#FFFFFF';
    if (sWinMod == null) sWinMod = 'transparent';

    // flash code definition
    var flashStr = "	<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000'";
    flashStr += "			codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0'";
    flashStr += "			width='" + nWidth + "'";
    flashStr += "			height='" + nHeight + "'";
    flashStr += "			id='" + sObjId + "'";
    flashStr += "			align='middle'>";

    flashStr += "		<param name='allowScriptAccess' value='always' />";
    flashStr += "		<param name='transparent' value='true' />";
    flashStr += "		<param name='movie' value='" + sObjURL + "' />";
    flashStr += "		<param name='FlashVars' value='" + sVars + "' />";
    flashStr += "		<param name='wmode' value='" + sWinMod + "' />";
    flashStr += "		<param name='menu' value='false' />";
    flashStr += "		<param name='quality' value='high' />";
    flashStr += "		<param name='bgcolor' value='" + sBgColor + "' />";


    flashStr += "		<embed src='" + sObjURL + "'";
    flashStr += "		       flashVars='" + sVars + "'";
    flashStr += "		       wmode='" + sWinMod + "'";
    flashStr += "		       menu='false'";
    flashStr += "		       quality='high'";
    flashStr += "		       bgcolor='" + sBgColor + "'";
    flashStr += "		       width='" + nWidth + "'";
    flashStr += "		       height='" + nHeight + "'";
    flashStr += "		       name='" + sObjId + "'";
    flashStr += "		       align='middle'";
    flashStr += "		       allowScriptAccess='always'";
    flashStr += "		       type='application/x-shockwave-flash'";
    flashStr += "		       pluginspage='http://www.macromedia.com/go/getflashplayer' />";
    flashStr += " </object>";

    // flash code print
    return flashStr;
}


/*=============================================================================
use : flash write
@Param : string Object URL, int Width, int Height[, string Variable, string Background Color, string Window Mode]
=============================================================================*/
function ObFlashWrite(sObjURL, nWidth, nHeight, sVars, sBgColor, sWinMod, sObjId)
{
    document.write(ObFlashString(sObjURL, nWidth, nHeight, sVars, sBgColor, sWinMod, sObjId));
}

function FnOpenViewer(sUrl, nW, nH)
{
    try
    {
        var w = window.open(sUrl, "VIEWER", "modal=1, width=" + nW + ", height=" + nH);
    }
    catch (e)
    {
        var w = window.open(sUrl, "VIEWER", "modal=1, width=" + nW + ", height=" + nH);
        w.focus();
    }
}

function FnShowStatus(sType)
{
    FnGetObjById("DivLayout").style.display = "block";
}

function FnGetObjXMLHttpRequest()
{

    var objReq = false;
    if (window.XMLHttpRequest)
    {
        objReq = new XMLHttpRequest();
    } else if (window.ActiveXObject)
    {
        try
        {
            objReq = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e1)
        {
            try
            {
                objReq = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e2)
            {
                return null;
            }
        }
    }
    return objReq;
}

function FnGetCommonHtml(sUrl)
{
    var objReq = FnGetObjXMLHttpRequest();
    objReq.open("GET", sUrl, false);
    objReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    objReq.setRequestHeader("Cache-Control", "no-cache, must-revalidate");
    objReq.setRequestHeader("Pragma", "no-cache");
    objReq.send("");

    document.write(objReq.responseText);
}


jQuery.fn.center = function()
{
    return this.each(function()
    {
        var thisElement = jQuery(this),
            left = ($(window).width() / 2 - thisElement.width() / 2),
            top = ($(window).height() / 2 - thisElement.height() / 2)
            thisElement.
                css(
                {
                    left: left > 0 ? left : 0,
                    top: top > 0 ? top : 0
                });
    });
}

function addHandler(id, eventName, handler)
{    
    var elem = document.getElementById(id);
    
    if( id == "window") elem = window;
    
    if( null == elem || typeof( elem ) == 'undefined' )
        return;    
    
    if (elem.addEventListener)
    {
        elem.addEventListener(eventName, handler, false);
    }
    else if (elem.attachEvent)
    {
        elem.attachEvent("on" + eventName, handler);
    }
    else
    {
        var origHandler = elem["on" + eventName];
        if (origHandler)
        {
            var h = new object();
            h.origHandler = origHandler;
            h.newHandler = handler;
            h.both = new function(e) { this.origHandler(e); this.handler(e); };
            elem["on" + eventName] = h.both;
        }
        else
        {
            elem["on" + eventName] = handler;
        }
    }
}

function PrecacheImages(a)
{
    $(a).each(function()
    {
        var img = $(this).attr("src"),
            replacer = (img.match(/_on\./) != null ? "_on" : "_off"),
            cachedImage = new Image();
        img = img.replace(replacer, (replacer == "_on" ? "_off" : "_on"));
        cachedImage.src = img;
    });
}

$(function()
{
    if ($("#guide.sidemenu").length==1)
    {
        InstallNavigationMenu();    
    }
    
    if ($("#support.sidemenu").length==1)
    {
        InstallNavigationMenu();    
    }
    
    PrecacheImages("#Submenu img");
    
    $("a[href]").click(function()
    {
        $(this).blur();
    });
});

function InstallNavigationMenu()
{
    var leftMenus=[".sidemenu .menu  li.child"];
    for (var i = 0; i<leftMenus.length; i++)
    {
        InstallLeftMenu(leftMenus[i]);
    }
    
    InstallMainContentSubMenu();
    
    $(".menu .depth1 li>a").click(function()
    {
        var elem=$(this),
            siblings=elem.siblings(),
            url = elem.attr("href");
            
        if (elem.hasClass("selected"))
        {
            return false;
        }
        
        $(".menu .selected").removeClass("selected");
        
        if (siblings.length==1)
        {
            siblings.eq(0).find("li>a").eq(0).addClass("selected");
        }
        else
        {
            elem.addClass("selected");
        }
        
        LoadViaAjax(url,"#content");
        return false;
    });
    
    $(".menu > li > a").click(function()
    {
        var elem=$(this),
            siblings=elem.siblings(),
            url = elem.attr("href");
            
        if (elem.parent().hasClass("visible"))
        {
            return false;
        }
        
        $(".menu > li").removeClass("visible");
        $(".menu .selected").removeClass("selected");
        
        elem.parent().addClass("visible");
        
        if (siblings.length==1)
        {
            siblings.eq(0).find("li>a").eq(0).addClass("selected");
        }
        
        LoadViaAjax(url,"#content");
        return false;
    });
    
    var ajaxManager={
        events:{BeforeLoading:"BeforeLoading", 
                OnLoading:"OnLoading", 
                OnLoaded:"OnLoaded"
                },
        request:null,
        cache:{},
        settings:{},
        load:function(options)
        {
           var ajaxManager=this,
               isCached=ajaxManager.cache[options.url]!=null;
           $.extend(ajaxManager.settings,options);
           //$(ajaxManager).trigger(ajaxManager.events.BeforeLoading);
           if (//options.autoScroll===true && 
           isCached===false)
           {
            $(options.contentHolder).fadeTo("fast",0)[0].scrollIntoView();
           }
           
           if (isCached)
           {
            ajaxManager._initLoad(ajaxManager.cache[options.url]);
           }
           else
           {
             ajaxManager._getUrl(options);
           }
            
        },
        _getUrl:function(options)
        {
            var ajaxManager=this;
            try
            {
                if (this.request!=null && this.request.abort)
                {
                    this.request.abort();
                }
            }
            catch (e){}
            this.request=$.ajax(
            {
                url:options.url+(options.url.match(/\?/)!=null?"&":"?")+"ajax=true",
                success:function(data)
                {
                    ajaxManager.cache[options.url]=data;
                    ajaxManager._initLoad(data);
                }
            }); 
        },
        _initLoad:function(data)
        {
            $(this.settings.contentHolder).html(data).stop(true,true).fadeTo("fast",1);
            InstallMainContentSubMenu();
        }
    };
    
    function LoadViaAjax(url, contentHolder, autoScroll)
    {
       ajaxManager.load({url:url,contentHolder:contentHolder, autoScroll:autoScroll!=null?autoScroll:true});
    }
    
    function InstallMainContentSubMenu()
    {
        $(".entry .tab").each(function()
        {
            var name=$(this).attr("id");
            $(this).find("li a").click(function()
            {
                var url=$(this).attr("href");
                $(".menu .depth1 .selected").removeClass("selected");
                $(".sidemenu #left_menu_"+name+" .depth1 a, .sidemenu #left_menu_"+name+" .depth2 a").each(function()
                {
                    if ($(this).attr("href").toLowerCase()==url.toLowerCase())
                    {
                        $(this).addClass("selected");
                    }
                });
                LoadViaAjax($(this).attr("href"),"#content", false);
                return false;
            });
        });
    }
        
    function InstallLeftMenu(menuPath)
    {
        $(menuPath).each(function()
        {
            $(this).children("a").click(function()
            {
                if ($(this).siblings().length==1)
                {
                    $(menuPath).removeClass("visible");
                    $(this).parent().addClass("visible");
                    return false;
                }
            });
        });
    }
}

var initialized = false;

function ShowNewsIframe(){
    $("#DvNews").css("visibility","visible");
}
function HideNewsIframe(){
    $("#DvNews").css("visibility","hidden");
}

$(function()
{
    $("<div id=\"overlay\" class=\"game_overlay\" style=\"display:none\" onclick=\"javascript:popupLoginClose();\" />").appendTo("body");
    $("<div id=\"gameloginframe\" style=\"visibility:hidden;\"><img id=\"gameloginframe_closebtn\" onclick=\"javascript:popupLoginClose();\" src=\"http://simg.gpotato.eu/common/blank.gif\" /><iframe id=\"gameloginiframe\" src=\"http://fr.heroes.gpotato.eu/Login/Index.aspx\" frameborder=\"no\"></iframe></div>").appendTo("body");
});

function popupLogin(){
    $("#overlay.game_overlay").css("display", "block");    
    $("#gameloginframe").css("visibility", "visible");
    $('#gameloginiframe').focus();
    if($('#gameloginiframe').contents().find('#tbAccount').val() === "")
        $('#gameloginiframe').contents().find('#tbAccount').focus();
    else 
        $('#gameloginiframe').contents().find('#tbPassword').focus();
}
function popupLoginClose(){
    $("#gameloginframe").css("visibility", "hidden");
    $("#overlay.game_overlay").css("display", "none");  
}