﻿var $j = jQuery.noConflict();

$j(document).ready(function () {
    $j('#hidden_gameCode').changeBackGround($j('#hidden_gameCode').val());
    setPageSize(null);
    loadAccount(0);
});

function pageSum(data) {
    this.data = data;
    this.getPageSum = function () {
        return this.data;
    }
}
pageSum.getPageSum = function () {
    return this.data;
}

function pageSize(data) {
    this.data = data;
    this.getPageSize = function () {
        return this.data;
    }
}
pageSize.getPageSize = function () {
    return this.data;
}

function accountList(data) {
    this.data = data;
    this.getAccountList = function () {
        return this.data;
    }
}
accountList.getAccountList = function () {
    return this.data;
}

function sortPrice(data) {
    this.data = data;
    this.getSort = function () {
        return this.data;
    }
}

sortPrice.getSort = function () {
    return this.data;
}

function query(serverName, serverCode, className, factionName, sLevel, eLevel, sPrice, ePrice) {
    this.serverName = serverName;
    this.serverCode = serverCode
    this.className = className;
    this.factionName = factionName;
    this.sLevel = sLevel;
    this.eLevel = eLevel;
    this.sPrice = sPrice;
    this.ePrice = ePrice;

    this.getServerName = function () {
        return this.serverName;
    }
    this.getServerCode = function () {
        return this.serverCode;
    }
    this.getClassName = function () {
        return this.className;
    }
    this.getFactionName = function () {
        return this.factionName;
    }
    this.getBeginLevel = function () {
        return this.sLevel;
    }
    this.getEndLevel = function () {
        return this.eLevel;
    }
    this.getBeginPrice = function () {
        return this.sPrice;
    }
    this.getEndPrice = function () {
        return this.ePrice;
    }
}
query.getServerName = function () {
    return this.serverName;
}
query.getServerCode = function () {
    return this.serverCode;
}
query.getClassName = function () {
    return this.className;
}
query.getFactionName = function () {
    return this.factionName;
}
query.getBeginLevel = function () {
    return this.sLevel;
}
query.getEndLevel = function () {
    return this.eLevel;
}
query.getBeginPrice = function () {
    return this.sPrice;
}
query.getEndPrice = function () {
    return this.ePrice;
}

function initQuery() {
    var ddlServer = document.getElementById('ddlServer');
    query.serverName = ddlServer.options[ddlServer.selectedIndex].text;
    query.serverCode = ddlServer.value;
    query.className = document.getElementById('ddlClass').value;
    query.factionName = document.getElementById('ddlFaction').value;
    query.sLevel = document.getElementById('ddlBeginLevel').value;
    query.eLevel = document.getElementById('ddlEndLevel').value;
    query.sPrice = document.getElementById('ddlBeginPrice').value;
    query.ePrice = document.getElementById('ddlEndPrice').value;
}

function setPageSize(dom) {
    pageSize.data = 10; //parseInt(dom.value);
    var pageIndex = parseInt(document.getElementById('ddlPage1').value);
    loadAccount(pageIndex);
}

function loadAccount(pageIndex) {
    initQuery();
    var sPrice = query.getBeginPrice();
    var ePrice = query.getEndPrice();

    if (sPrice == '<100') {
        sPrice = 0;
        ePrice = 99.99;
    } else if (sPrice == '>599') {
        sPrice = 599;
        ePrice = 99999;
    }

    if (ePrice == '>599') {
        ePrice = 99999;
        sPrice = 599;
    } else if (ePrice == '<100') {
        sPrice = 0;
        ePrice = 99.99;
    }

    var ddlSPrice = document.getElementById('ddlBeginPrice');
    var ddlEPrice = document.getElementById('ddlEndPrice');

    if (ddlSPrice.value == '<100' && ddlEPrice.value == '>599') {
        sPrice = 0;
        ePrice = 0;
    }

    if (ePrice < sPrice) {
        ddlSPrice.selectedIndex = 0;
        ddlEPrice.selectedIndex = 0;
        sPrice = 0;
        ePrice = 0;
    }

    $j('.img_loadAccount').show();
    $j.ajax({
        url: '/account/AccountProduct_Aion.aspx?rd=' + Math.random(),
        type: 'get',
        data: 'operate=GetAccount&gameCode=' + $j('#hidden_gameCode').val() + '&serverCode=' + query.getServerCode() + '&className=' + query.getClassName() + '&faction=' + query.getFactionName() + '&sLevel=' + query.getBeginLevel() + '&eLevel=' + query.getEndLevel() + '&sPrice=' + sPrice + '&ePrice=' + ePrice + '&pageIndex=' + pageIndex + '&pageSize=' + pageSize.getPageSize(),
        dataType: 'json',
        success: function (data) {
            accountList.data = data;
            $j('.img_loadAccount').hide();
            if (data == null) {
                $j('#div_accountList').html('');
                return;
            }
            pageSum.data = data[0].PageCount;
            initPageControl(pageIndex);
            sortByPrice(sortPrice.getSort());
        }
    });
}

function sortByPrice(sort) {
    if (sort == 'asc') {
        $j('#img_asc').attr('src', '/images/price_up.gif');
        $j('#img_desc').attr('src', '/images/price_down2.gif');
    } else if (sort == 'desc') {
        $j('#img_desc').attr('src', '/images/price_down.gif');
        $j('#img_asc').attr('src', '/images/price_up2.gif');
    }
    var data = accountList.getAccountList();
    if (data == null) {
        return;
    }
    if (sort == 'asc') {
        sortPrice.data = 'asc';
        for (var i = 0; i < data.length; i++) {
            for (var j = 0; j < i; j++) {
                if (data[i].Price < data[j].Price) {
                    var acc = data[i];
                    data[i] = data[j];
                    data[j] = acc;
                }
            }
        }
    } else if (sort == 'desc') {
        sortPrice.data = 'desc';
        for (var i = 0; i < data.length; i++) {
            for (var j = 0; j < i; j++) {
                if (data[i].Price > data[j].Price) {
                    var acc = data[i];
                    data[i] = data[j];
                    data[j] = acc;
                }
            }
        }
    } else {
        sortPrice.data = '';
    }
    accountList.data = data;
    initAccountByJson(data);
}

function initAccountByJson(data) {
    var cssClassName = 'account_box';
    var html = '';
    for (var i = 0; i < data.length; i++) {
        if (i > 1) {
            cssClassName = 'account_box';
        }
        var hightLights = data[i].Highlights;
        if (hightLights.length > 300) {
            hightLights = hightLights.substr(0, 300) + '...';
            hightLights += '<span>\
                                        <img class=".img_more" style="cursor:pointer;" src="/images/acc_text_more.gif" onmouseover="$j(this).parent().find(\'div\').show()" onmouseout="$j(this).parent().find(\'div\').hide()" />\
                                        <div class="pl5">' + data[i].Highlights + '</div>\
                                    </span>';
        }
                   html +='<div><div class="'+cssClassName+'">\
                  <div class="dj">' +data[i].Level+ '</div>\
                  <table cellspacing="0" class="table_acc">\
                  <tbody>\
                  <tr>\
                        <th width="7%">&nbsp;</th>\
                        <th width="25%">CLASS</th>\
                        <th width="49%">Server</th>\
                        <th rowspan="3" width="19%">\
                   <a href="/account/AccountDetails.aspx?Guid='+data[i].Guid+'" target="_blank">\
                   <img border="0" src="/images/view.gif"></a>'+data[i].StrPrice2.replace("area_a2","accountareaAion")+'\
                   <input class="button8" type="button" value="Select" onclick="window.location.href=\'/account/AccountBuyOrderInfo.aspx?guid=' + data[i].Guid + '\'" /></th>\
                   </tr><tr><td>&nbsp;</td><td><div id="layer" class="pl7">Transferable Character</div>\
                   <img style="width: 40px;" src="/' + data[i].ClassImg + '" alt=""/><br/>\
                   ' + data[i].ClassName + '<br/> </td><td>' + data[i].ServerName + '\
                   </td></tr><tr><td colspan="3"  style="text-align:left">' + hightLights + '</td></tr></tbody></table></div></div>';
    }
    $j('#div_accountList').html(html);
}

function initPageControl(pageIndex) {
    var ddlPage = document.getElementById('ddlPage1');
    var ddlPage2 = document.getElementById('ddlPage2');
    ddlPage.length = 0;
    ddlPage2.length = 0;
    for (var i = 0; i < pageSum.getPageSum(); i++) {
        ddlPage.options.add(new Option((i + 1), i));
        ddlPage2.options.add(new Option((i + 1), i));
    }
    if (pageIndex >= pageSum.getPageSum()) {
        return;
    }
    if (pageIndex < 0) {
        return;
    }
    ddlPage.value = pageIndex;
    ddlPage2.value = pageIndex;
}

function goFirstPage() {
    var pageIndex = parseInt(document.getElementById('ddlPage1').value);
    if (pageIndex > 0) {
        loadAccount(0);
    }
}

function goLastPage() {
    var pageIndex = parseInt(document.getElementById('ddlPage1').value);
    if (pageIndex < pageSum.getPageSum() - 1) {
        loadAccount(pageSum.getPageSum() - 1);
    }
}

function nextPage() {
    var pageIndex = parseInt(document.getElementById('ddlPage1').value);
    if (pageIndex < pageSum.getPageSum() - 1) {
        loadAccount(pageIndex + 1);
    }
}

function prevPage() {
    var pageIndex = parseInt(document.getElementById('ddlPage1').value);
    if (pageIndex > 0) {
        loadAccount(pageIndex - 1);
    }
}

function goPage(ddlPageId) {
    var pageIndex = parseInt(document.getElementById(ddlPageId).value);
    loadAccount(pageIndex);
}
