﻿
var currentLoopName = "";
var clickFromPlayer = false;
function clickToClosePlayer() {
    if (!clickFromPlayer) closeLoopPlayer();
    clickFromPlayer = false;
}
function clickToClosePlayer2() {
    clickFromPlayer = true;
}

// open the loop player div, try to center it.
function openLoopPlayer(loopName, keycode, currency) {
    var container = document.getElementById("lpContainer");
    var data = document.getElementById("lpData");
    document.body.onclick = clickToClosePlayer;
    container.onclick = clickToClosePlayer2;

    var left;
    var top;

    // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
    if (typeof window.innerWidth != 'undefined') {
        left = window.innerWidth;
        top = window.innerHeight;
    }
    // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)  
    else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0) {
        left = document.documentElement.clientWidth;
        top = document.documentElement.clientHeight;
    }
    // older versions of IE   
    else {
        left = document.getElementsByTagName('body')[0].clientWidth;
        top = document.getElementsByTagName('body')[0].clientHeight;
    }

    // adjust based on popup size
    left -= 590;
    left = Math.floor(left / 2);
    if (left <= 100) left = 100;
    top -= 470;
    top = Math.floor(top / 2);
    if (top <= 100) top = 100;

    container.style.left = left + "px";
    container.style.top = top + "px";
    container.style.visibility = "visible";

    if (currentLoopName != loopName)
    {
        data.innerHTML = "loading...";
        // connect for details about a loop
        var xmlHttp = null;
        if (window.XMLHttpRequest) {
            /* if we have a native object, use it */
            xmlHttp = new XMLHttpRequest();
        } else {
            if (window.ActiveXObject) {
                /* ie 5 & 6 try for ActiveX */
                xmlHttp = new ActiveXObject('MSXML2.XMLHTTP.3.0');
            }
        }

        var respText = "";
        if (xmlHttp != null) {
            xmlHttp.open('GET', "/api/loopdetails.aspx?loopname=" + loopName + "&keycode=" + keycode + "&currency=" + currency, false);
            xmlHttp.send();
            respText = xmlHttp.responseText;
        }
        else {
            respText = "Unable to open requested information Url.  Please close and try again.";
        }

        data.innerHTML = respText;
    }
}

// close the loop player
function closeLoopPlayer() {
    document.body.onclick = "";
    var container = document.getElementById("lpContainer");
    container.style.visibility = "hidden";
}

// sort the pagedata by something
var items = [];
function sortby(sort) {
    if (items.length == 0) {
        var datas = document.getElementsByName("jsdata");
        for (var i = 0; i < datas.length; i++) {
            items[i] = eval("(" + datas[i].innerHTML + ")");
        }
    }

    var currentsort;
    var sortdate = document.getElementById("datesort");
    if (sortdate.className.indexOf("plainhighlight") >= 0) currentsort = sortdate;
    var sorttitle = document.getElementById("titlesort");
    if (sorttitle.className.indexOf("plainhighlight") >= 0) currentsort = sorttitle;
    var sortrating = document.getElementById("ratingsort");
    if (sortrating.className.indexOf("plainhighlight") >= 0) currentsort = sortrating;
    var sortsold = document.getElementById("soldsort");
    if (sortsold.className.indexOf("plainhighlight") >= 0) currentsort = sortsold;

    if (currentsort != sort && items.length > 0) {
        switch (sort) {
            case "date":
                currentsort.className = "plain";
                sortdate.className = "plainhighlight";
                items.sort(function (a, b) {
                    if (a.date < b.date) return -1;
                    if (a.date > b.date) return 1;
                    return 0;
                });
                items.reverse();
                break;
            case "title":
                currentsort.className = "plain";
                sorttitle.className = "plainhighlight";
                items.sort(function (a, b) {
                    var aname = a.name.toLowerCase();
                    var bname = b.name.toLowerCase();
                    if (aname < bname) return -1;
                    if (aname > bname) return 1;
                    return 0;
                });
                break;
            case "rating":
                currentsort.className = "plain";
                sortrating.className = "plainhighlight";
                items.sort(function (a, b) {
                    var aflt = parseFloat(a.rating);
                    var bflt = parseFloat(b.rating);
                    if (aflt < bflt) return -1;
                    if (aflt > bflt) return 1;
                    return 0;
                });
                items.reverse();
                break;
            case "sold":
                currentsort.className = "plain";
                sortsold.className = "plainhighlight";
                items.sort(function (a, b) {
                    var aint = parseInt(a.sold);
                    var bint = parseInt(b.sold);
                    if (aint < bint) return -1;
                    if (aint > bint) return 1;
                    return 0;
                });
                items.reverse();
                break;
        }

        var newlist = "";
        for (var i = 0; i < items.length; i++) {
            newlist += "<div class=\"copynormal col1of3\">\n";
            newlist += "<div id=\"" + items[i].mnemonic + "\">\n";
            newlist += document.getElementById(items[i].mnemonic).innerHTML;
            newlist += "</div></div>\n";
            if ((i + 1) % 3 == 0)
                newlist += "<div class=\"clear\"></div><div class=\"h40\"></div>";
        }

        var list = document.getElementById("listsection");
        list.innerHTML = newlist;

        document.cookie = "loopsort=" + sort + ";path=/;";
    }
}

function popFilter(name) {
    hideFilter('collect');
    hideFilter('genre');
    hideFilter('artist');
    showFilter(name);
}

function showFilter(name) {
    filter = document.getElementById(name);
    filter.style.visibility = "visible";
}

function hideFilter(name) {
    filter = document.getElementById(name);
    filter.style.visibility = "hidden";
}
