﻿function Loading(imgServer) {
    var innerHTML = "";
    innerHTML += "   <div align=\"center\">";
    innerHTML += "      <object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0\" width=\"57\" height=\"58\" id=\"Object8\" align=\"center\">";
    innerHTML += "          <param name=\"wmode\" value=\"transparent\" />";
    innerHTML += "          <param name=\"menu\" value=\"false\" />";
    innerHTML += "          <param name=\"movie\" value=\"" + imgServer + "/loading_ani.swf\" />";
    innerHTML += "          <param name=\"quality\" value=\"high\" />";
    innerHTML += "          <param name=\"bgcolor\" value=\"#FFFFFF\" />";
    innerHTML += "          <embed src=\"" + imgServer + "/loading_ani.swf\" quality=\"high\" width=\"58\" name=\"top1\" align=\"\" type=\"application/x-shockwave-flash\" pluginpage=\"http://www.macromedia.com/go/getflashplayer\" wmode=\"transparent\" bgcolor=\"#FFFFFF\" menu=\"false\">";
    innerHTML += "          </embed>";
    innerHTML += "          </object>";
    innerHTML += "      </div>";

    return innerHTML;
}

function InitCardSwitcher(imgServer) {

    var oIndexScript = new IndexScript();
    oIndexScript.GetCardList(1, "CT", function(result) {
        var url = "/WCGZone/javascript/template/tmpl_CardSwitcher.html";
        $.get(url, function(html) {
            var tmpl = parseTemplate(html, { ImgServer: imgServer,
                oCardSwitcherEntities: result.oCardSwitcherEntities
            });
            $("#yui-main").html(tmpl);

            ActTimer();
        });
    });
}

function InitAdvertisement(imgServer) {
    var innerHTML = "";
    innerHTML += "  <a href='http://tm.wcgzone.com' target='_blank'>";
    innerHTML += "      <img src='" + imgServer + "/banner/tm_banner.gif' alt='WCGZONE Trackmania Challenge' />";
    innerHTML += "  </a>";
    
    document.getElementById("advertisement").innerHTML = innerHTML;
}

function InitNotice(imgServer, TimeZone1, TimeZone2, TimeZone3) {

    var oIndexScript = new IndexScript();
    oIndexScript.GetNoticeList(0, 0, 1, 5, TimeZone1, TimeZone2, TimeZone3, function(result) {

        var oNotice = result;

        var innerHTML = "";
        innerHTML += "    <ul>";

        for (var i = 0; i < oNotice.oNoticeEntities.length; i++) {
            var oNoticeEntity = oNotice.oNoticeEntities[i];

            innerHTML += "        <li>";
            innerHTML += "            <a href=\"javascript:OpenDialogByMainNew2('0', '0', '1', '" + oNoticeEntity.NoticeNo + "', '" + oNoticeEntity.RegDate + "', '" + imgServer + "');\">";
            innerHTML += oNoticeEntity.Subject;
            innerHTML += "            </a>";
            innerHTML += "        </li>";
        }

        innerHTML += "    </ul>";

        document.getElementById("Notice").innerHTML = innerHTML;
    });
}

function InitMploger(imgServer, timeZone1, timeZone2, timeZone3, siteRoot, isAuthenticated, identityName, fileServer) {

    var oIndexScript = new IndexScript();
    oIndexScript.GetMplogRandomMain(timeZone1, timeZone2, timeZone3, function(result) {
        var url = siteRoot + "/JavaScript/Template/tmpl_Mploger.html";
        $.get(url, function(html) {
            var tmpl = parseTemplate(html, {
                ImgServer: imgServer,
                SiteRoot: siteRoot,
                FileServer: fileServer,
                IsAuthenticated: isAuthenticated,
                IdentityName: identityName,
                oMploger: result
            });

            $("#Mploger").html(tmpl);
        });
    });
}

function MakeMemberPhoto(Folder, Photo, fileServer, imgServer) {
    var returnValue = "";

    if (Folder == "" || Photo == "")
        returnValue = imgServer + "/no_image46.gif";
    else
        returnValue = fileServer + "/member/" + Folder + "/small_" + Photo.replace(".JPEG", "").replace(".jpeg", "").replace(".GIF", "").replace(".gif", "").replace(".JPG", "").replace(".jpg", "").replace(".bmp", "").replace(".bmp", "") + ".jpg";

    return returnValue;
}

function MakeMemberPhotoAlt(FirstName, LastName, ID) {
    var returnValue = "";

    if (FirstName == "" || LastName == "" || ID == "")
        returnValue = "No Image";
    else
        returnValue = FirstName + " " + LastName + " ( " + ID + " ) ";

    return returnValue;
}

function CutString(Value, CutLenght) {
    if (Value.length > CutLenght)
        Value = Value.substring(0, CutLenght) + "..";

    return Value;
}

function InitAdministrator(imgServer, timeZone1, timeZone2, timeZone3, siteRoot, isAuthenticated, identityName, fileServer, multi, langCode, multi2) {

    document.getElementById("Administrators").innerHTML = Loading(imgServer);

    var oIndexScript = new IndexScript();

    oIndexScript.GetAdministratorMain(document.getElementById("AdministratorsPageSize").value * 1, document.getElementById("AdministratorsPageNo").value * 1, timeZone1, timeZone2, timeZone3, langCode, function(result) {
        var url = siteRoot + "/javascript/template/tmpl_Administrator.html";
        $.get(url, function(html) {
            var tmpl = parseTemplate(html, {
                ImgServer: imgServer,
                SiteRoot: siteRoot,
                FileServer: fileServer,
                TimeZone1: timeZone1,
                TimeZone2: timeZone2,
                TimeZone3: timeZone3,
                IsAuthenticated: isAuthenticated,
                IdentityName: identityName,
                Multi: multi,
                oAdministrator: result
            });
            
            $("#Administrators").html(tmpl);
        });
    });

    oIndexScript.GetAdministratorMainCount(function(result) {
        GetAdministrator(imgServer, timeZone1, timeZone2, timeZone3, siteRoot, isAuthenticated, identityName, fileServer, multi, langCode, multi2, result, 3, "InitAdministrator2", document.getElementById("AdministratorsPageSize").value * 1, document.getElementById("AdministratorsPageNo").value * 1);
    });
}

function InitAdministrator2(imgServer, TimeZone1, TimeZone2, TimeZone3, siteRoot, IsAuthenticated, IdentityName, fileServer, Multi, LangCode, Multi2, PageNo) {
    document.getElementById("AdministratorsPageNo").value = PageNo;
    
    InitAdministrator(imgServer, TimeZone1, TimeZone2, TimeZone3, siteRoot, IsAuthenticated, IdentityName, fileServer, Multi, LangCode, Multi2);
}

function GetAdministrator(imgServer, timeZone1, timeZone2, timeZone3, siteRoot, isAuthenticated, identityName, fileServer, multi, langCode, multi2, totalCount, progressBarRow, scriptName, pageRow, pageNo) {
    
    var url = siteRoot + "/javascript/template/tmpl_AdministratorPaging.html";

    $.get(url, function(html) {
        var p = PagingCalc(pageNo, pageRow, progressBarRow, totalCount);
        var tmpl = parseTemplate(html, {
            ImgServer: imgServer,
            SiteRoot: siteRoot,
            FileServer: fileServer,
            TimeZone1: timeZone1,
            TimeZone2: timeZone2,
            TimeZone3: timeZone3,
            IsAuthenticated: isAuthenticated,
            IdentityName: identityName,
            Multi: multi,
            Multi2: multi2,
            LangCode: langCode,
            TotalCount: totalCount,
            PageNo: pageNo,
            PageStart: p.PageStart,
            PageEnd: p.PageEnd,
            ScriptName: scriptName
        });
        
        $("#AdministratorsProgressbar").html(tmpl);
    });
}

function InitCurrentContents(imgServer, timeZone1, timeZone2, timeZone3, siteRoot, isAuthenticated, identityName, fileServer) {
    var oIndexScript = new IndexScript();

    oIndexScript.GetContentListNew(1, 3, 1, 0, true, timeZone1, timeZone2, timeZone3, function(result) {
        var url = "/WCGZone/javascript/template/tmpl_ContentListNew.html";

        $.get(url, function(html) {
            var tmpl = parseTemplate(html, { ImgServer: imgServer,
                SiteRoot: siteRoot,
                FileServer: fileServer,
                IsAuthenticated: isAuthenticated,
                IdentityName: identityName,
                oIndexContent: result
            });
            
            $("#CurrentContents").html(tmpl);

        });
    });
}

function InitCurrentReplay(imgServer, timeZone1, timeZone2, timeZone3, siteRoot, isAuthenticated, identityName, fileServer, multi1, multi2) {
    var oIndexScript = new IndexScript();

    oIndexScript.GetReployListMainTopNew(4, 5, timeZone1, timeZone2, timeZone3, function(result) {

        var url = "/WCGZone/javascript/template/tmpl_CurrentReplay.html";

        $.get(url, function(html) {
            var tmpl = parseTemplate(html, {
                ImgServer: imgServer,
                SiteRoot: siteRoot,
                FileServer: fileServer,
                IsAuthenticated: isAuthenticated,
                IdentityName: identityName,
                Multi1: multi1,
                Multi2: multi2,
                oReplayCurrent: result
            });

            $("#CurrentReplay").html(tmpl);

        });
    });
}

function ValidateGameNo(GameNo) {
    var returnValue = "";
    
    GameNo = GameNo + "";

    if (GameNo.length == 1)
        returnValue = "0" + GameNo;
    else
        returnValue = GameNo;

    return returnValue;
}

function InitPlayOfTheOne(imgServer, timeZone1, timeZone2, timeZone3, siteRoot, isAuthenticated, identityName, fileServer, multi) {

    $("#PlayerOfTheDay").html(Loading(imgServer));
    
    var oIndexScript = new IndexScript();
    
    oIndexScript.GetMemberRandomMain(timeZone1, timeZone2, timeZone3, function(result) {
        var url = "/WCGZone/javascript/template/tmpl_PlayOfTheOne.html";

        $.get(url, function(html) {
            var tmpl = parseTemplate(html, {
                ImgServer: imgServer,
                SiteRoot: siteRoot,
                FileServer: fileServer,
                IsAuthenticated: isAuthenticated,
                IdentityName: identityName,
                Multi: multi,
                oMploger: result
            });

            $("#PlayerOfTheDay").html(tmpl);

        });
    });
}

function InitSponsored(imgServer) {
    var innerHTML = "";
    innerHTML += "  <div class=\"slide\">";
    innerHTML += "      <div class=\"slide_left\">";
    innerHTML += "          <div class=\"slidecontent\">";
    innerHTML += "              <p class=\"spon\">";
    innerHTML += "                  <a href=\"http://tm.wcgzone.com\" target=\"_blank\">";
    innerHTML += "                      <span class=\"Tips3\" title=\"WCGZONE Trackmania Challenge\">";
    innerHTML += "                          <img src=\"" + imgServer + "/thumb/trackmania_img.gif\" alt=\"WCGZONE Trackmania Challenge\"/>";
    innerHTML += "                      </span>";
    innerHTML += "                  </a>";
    innerHTML += "              </p>";
    innerHTML += "          </div>";
    innerHTML += "      </div>";
    innerHTML += "  </div>";
    
    document.getElementById("SponLeague").innerHTML = innerHTML;
}

function InitLastMatches(imgServer, siteRoot, isAuthenticated, identityName, fileServer) {
    var oIndexScript = new IndexScript();

    oIndexScript.GetMatchLogMainPageSeries(function(result) {
        var url = siteRoot + "/javascript/template/tmpl_MainLastMatches.html";

        $.get(url, function(html) {
            var tmpl = parseTemplate(html, {
                ImgServer: imgServer,
                SiteRoot: siteRoot,
                FileServer: fileServer,
                IsAuthenticated: isAuthenticated,
                IdentityName: identityName,
                oMatchLog: result
            });

            $("#LastMatch").html(tmpl);

        });
    });
}

function InitCurrentLeagueList(imgServer, timeZone1, timeZone2, timeZone3, fileServer, siteRoot) {
    var oIndexScript = new IndexScript();

    oIndexScript.GetCurrentLeague(timeZone1, timeZone2, timeZone3, function(result) {

        if (result.CurrentLeagueEntities.length > 0) {
            var url = siteRoot + "/javascript/template/tmpl_CurrentLeagueList.html";

            $.get(url, function(html) {
                var tmpl = parseTemplate(html, {
                    ImgServer: imgServer,
                    SiteRoot: siteRoot,
                    FileServer: fileServer,
                    oCurrentEvent: result
                });

                $("#CurrentLeagueList").html(tmpl);

            });
        }
        else {
            $("#CurrentLeagueList").css("display", "none");
        }
    });
}

function InitBanner2(imgServer, siteRoot) {
    var innerHTML = "";
    innerHTML += "  <a href=\"" + "http://www.wcgzone.com" + "/casual/PH_Index.wcz\" target=\"_blank\">";
    innerHTML += "      <img src=\""+imgServer+"/banner/rbbanner.gif\" alt=\"Enjoy a game of Texas Hold'em Poker: WCGZONE Style\"/>";
    innerHTML += "  </a>";

    document.getElementById("Banner2").innerHTML = innerHTML;
}

Common = function() {}

Common.prototype = {
    ValidateNumber: function(Number) {
        var returnValue = "";

        if (Number.length == 1) returnValue = "0" + Number;
        else returnValue = Number;

        return returnValue;
    },

    ShowTermsOfUse: function(siteRoot) {
        fnc_ajaxUpdate("blankDiv", "/wcgzone/Terms_div.html");

        setTimeout('OpenDiv("blankDiv")', 300);
    },

    ClearTermsOfUse: function() {
        CloseDiv();
    }
}

///<param name=div>업데이트할 div
///<param name=url>html코드를 가져올 url
function fnc_ajaxUpdate(div, url) {
    $("#" + div).load(url);
}


function KillHtml(Value) {
    var RegExpTag = /<[^<|>]*>/gim;
    return Value.replace(RegExpTag, "");
}

function CutLength(Value) {
    if (Value.length > 300)
        Value = Value.substring(0, 300) + ".....";

    return Value;
}

function CreateTimeLog(Time)
    {
        var returnValue = "";

        var Seconds = 60;
        var Minutes = 60;
        var Hours = 24;
        var Day = 30;
        var Month = 12;
        var Year = 365;

        if (Time < Seconds)
            returnValue = Time + " seconds ago";
        else if (Time >= Seconds && Time < Seconds * Minutes)
            returnValue = Math.floor(Time / Seconds) + " minutes ago";
        else if (Time >= Seconds * Minutes && Time < Seconds * Minutes * Hours)
            returnValue = Math.floor(Time / (Seconds * Minutes)) + " hours ago";
        else if (Time >= Seconds * Minutes * Hours && Time < Seconds * Minutes * Hours * Day)
            returnValue = Math.floor(Time / (Seconds * Minutes * Hours)) + " day ago";
        else if (Time >= Seconds * Minutes * Hours && Time < Seconds * Minutes * Hours * Day * Month)
            returnValue = Math.floor(Time / (Seconds * Minutes * Hours * Day)) + " month ago";
        else
            returnValue = Math.floor(Time / (Seconds * Minutes * Hours * Day * Month)) + " year ago";
        return returnValue;
    }

    var oLayerModalPopUp = null;
    //메시지 창을 부름.
    function CallMsg(err) {
        oLayerModalPopUp = new LayerModalPopUp();
        oLayerModalPopUp.initialize(err);
        oLayerModalPopUp.show();

    }       

    //메시지 창을 사라지게 함.
    function clearMsg() {
        if(oLayerModalPopUp)
            oLayerModalPopUp.hide();
    }

    //메시지 창을 부름.
    function CallMsgMove(err, url) {
        oLayerModalPopUp = new LayerModalPopUp();
        oLayerModalPopUp.initialize(err, url);
        oLayerModalPopUp.show();
    }

    function clearMsgMove(url) {
        var lnk = $('#lnkMove');
        
        if (!lnk[0]) {
            lnk = $("<a />");
            lnk.attr("id", "lnkMove");
            lnk.css("display", "none");
        }

        lnk.attr("href", url);
        
        document.body.appendChild(lnk[0]);

        if (oLayerModalPopUp)
            oLayerModalPopUp.hide();
            
        try{
            lnk[0].click();
        }
        catch (ex) {
            location.href = url;
        }        
    }

    //// 로그인 창 시작 /////////////////////////////////////////////////////////////////////////////
    function CallSignIn() {
        oLayerModalPopUp = new LayerModalPopUp();
        oLayerModalPopUp.set_PopupControlID('divSignIn');
        oLayerModalPopUp.initialize();
        oLayerModalPopUp.show();
    }
    
    //창을 닫는다.
    function clearSignIn() {
        if (oLayerModalPopUp)
            oLayerModalPopUp.hide();
    }
    
    //// 로그인 창 끝 ///////////////////////////////////////////////////////////////////////////////

    function MM_swapImgRestore() { //v3.0
        var i, x, a = document.MM_sr; for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++) x.src = x.oSrc;
    }
    
    function MM_preloadImages() { //v3.0
        var d = document; if (d.images) {
            if (!d.MM_p) d.MM_p = new Array();
            var i, j = d.MM_p.length, a = MM_preloadImages.arguments; for (i = 0; i < a.length; i++)
                if (a[i].indexOf("#") != 0) { d.MM_p[j] = new Image; d.MM_p[j++].src = a[i]; } 
        }
    }
    
    function MM_findObj(n, d) { //v4.01
        var p, i, x; if (!d) d = document; if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
            d = parent.frames[n.substring(p + 1)].document; n = n.substring(0, p);
        }
        if (!(x = d[n]) && d.all) x = d.all[n]; for (i = 0; !x && i < d.forms.length; i++) x = d.forms[i][n];
        for (i = 0; !x && d.layers && i < d.layers.length; i++) x = MM_findObj(n, d.layers[i].document);
        if (!x && d.getElementById) x = d.getElementById(n); return x;
    }

    function MM_swapImage() { //v3.0
        var i, j = 0, x, a = MM_swapImage.arguments; document.MM_sr = new Array; for (i = 0; i < (a.length - 2); i += 3)
            if ((x = MM_findObj(a[i])) != null) { document.MM_sr[j++] = x; if (!x.oSrc) x.oSrc = x.src; x.src = a[i + 2];}
    }
    
    /////Talk Start//////////////////////////////////////////////////////////////////////////////////////////////////////
    function GetTalkReply(talkNo)
    {
        $("#ctl00_MasterHolder_lstTalk_hdnTalkReply").val(talkNo);
        
        __doPostBack('ctl00$MasterHolder$lstTalk$btnGetTalkReply','');
    }
    /////Talk End//////////////////////////////////////////////////////////////////////////////////////////////////////
        
    function GetXMLDocument(DataSet, RootNodeName) {
        var XMLDom = null;
    
        try {
            XMLDom = new ActiveXObject("Microsoft.XMLDom");
        }
        catch (Ex) {
            XMLDom = document.implementation.createDocument("", "", null);
        }

        try {
            XMLDom.loadXML(DataSet);
        }
        catch (Ex) {
            var oParser = new DOMParser();
            XMLDom = oParser.parseFromString(DataSet, "text/xml");
        }

        //return XMLDom.getElementsByTagName(RootNodeName);
        return XMLDom.documentElement;
    }
    
    ///// 로그인 안됐으면 로그인하라는 메세지 출력 ////////////////////////////////////////////////
    function IsLoginMove(memberNo, url) {
        if (memberNo != "" && memberNo != null && memberNo != 0 && memberNo != "0") {
            location.href = url;
        }
        else {
            getMultiLang("JS_10001_161", MLCallMsg);
            //CallMsg("Sign In please!");                
        }
    }

    function OpenDiv(divName) {
        if (oLayerModalPopUp != null) {
            CloseDiv();
        }
        
        oLayerModalPopUp = new LayerModalPopUp();
        oLayerModalPopUp.set_PopupControlID(divName);            
        oLayerModalPopUp.initialize();
        oLayerModalPopUp.show();
    }

    function CloseDiv() {
        if (oLayerModalPopUp)
            oLayerModalPopUp.hide();
    }

    function Close() {
        if (oLayerModalPopUp)
            oLayerModalPopUp.hide();
    }


    function LocationUrlReferrer(url) {
        var lnk = $("<a />");
        lnk.attr("id", "UrlReferrer");
        lnk.attr("href", url);
        lnk.css("display", "none");

        document.body.appendChild(lnk[0]);

        try {
            $('#UrlReferrer')[0].click();
        }
        catch (ex) {
            location.href = url;
        }
    }

    // 페이징 계산
    // currentPage : 현재페이지번호
    // pageRow :  한 페이지내에 보여줄 갯수
    // limitPageCount : 보여줄 페이지의 갯수,
    // totalCount : 목록의 총 갯수
    function PagingCalc(currentPage, pageRow, limitPageCount, totalCount) {
        var pageGroupCount = 0;
        var numPageGroup = 0;
        var pageStart = 1;
        var pageEnd = 1;
        var totalPage = 0;
        var prevPageYN = false;
        var nextPageYN = false;
        
        //Calculate Total Page
        if (totalCount % pageRow > 0)
            totalPage = Math.floor(totalCount / pageRow) + 1;
        else
            totalPage = Math.floor(totalCount / pageRow);

        if (totalCount > 0) {
            pageGroupCount = Math.floor(totalCount / ((pageRow * limitPageCount)) + ((totalCount % (pageRow * limitPageCount)) == 0 ? 0 : 1));
            pageGroupCount = Math.ceil(pageGroupCount);

            numPageGroup = Math.ceil(currentPage / limitPageCount);

            pageStart = (numPageGroup - 1) * limitPageCount + 1;
            pageEnd = pageStart + limitPageCount - 1;

            if (pageEnd >= totalPage)
                pageEnd = totalPage;
        }

        if (numPageGroup > 1) 
            prevPageYN = true;

        if (numPageGroup < pageGroupCount)
            nextPageYN = true;
             
        return {
            PageStart: pageStart,
            PageEnd: pageEnd,
            PrevPageNo: ((pageStart * 1) - 1),
            NextPageNo: ((pageEnd * 1) + 1),
            PrevPageYN: prevPageYN,
            NextPageYN: nextPageYN
        };
    }