var SBI_SID = 'IDT';
var SBI_Instock_Limit = 12;
var SBI_Query_Prefix = 'http://www.shopbloc.com/instock/query.js';

function SBI_PA(data) {
    if (data != undefined && window.items != undefined) {
        for (var k in data) {
            for (var i = 0; i < window.items.length; i++) {
                if (window.items[i].code == k) {
                    window.items[i].instock = data[k];
                }
            }
        }
    }
    ResetInstocks();
}

function SBI_PS(data) {
    if (data != undefined) {
        if (data['outofstocks'] != undefined) {
            var outofstocks = data['outofstocks'];
            if (outofstocks.length > 0) {
                var tr = document.createElement('tr');
                    var th = document.createElement('th');
                        th.innerHTML = 'Out of Stock:';
                    tr.appendChild(th);
                    var td = document.createElement('td');
                        td.setAttribute('class', 'instock');
                        var span = document.createElement('span');
                            span.setAttribute('class', 'instock-no');
                            span.innerHTML = outofstocks.join('<br />');;
                        td.appendChild(span);
                    tr.appendChild(td);
                $('tr.quantity').after(tr);
                var selects = document.getElementsByTagName('select');
                for (var s = 0; s < selects.length; s++) {
                    var options = selects[s].getElementsByTagName('option');
                    var flag = true;
                    for (var o = 0; o < options.length; o++) {
                        if (outofstocks.indexOf(options[o].innerHTML) > -1) {
                            $(options[o]).attr('disabled', 'disabled');
                        }
                        else if (flag) {
                            selects[s].selectedIndex = o;
                            flag = false;
                        }
                    }
                    if (flag && options.length > 0) {
                        var option = document.createElement('option');
                            option.setAttribute('value', '--');
                            option.innerHTML = '--';
                        selects[s].insertBefore(option, options[0]);
                        selects[s].selectedIndex = 0;
                    }
                }
            }
        }
        else if (data['instock'] === 0 || data['instock'] === 1) {
            var instock = (data['instock'] === 1);
            var tr = document.createElement('tr');
                var th = document.createElement('th');
                    th.innerHTML = 'In Stock:';
                tr.appendChild(th);
                var td = document.createElement('td');
                    td.setAttribute('class', 'instock');
                    var span = document.createElement('span');
                        span.setAttribute('class', 'instock-' + (instock ? 'yes' : 'no'));
                        span.innerHTML = (instock ? 'Yes' : 'No');
                    td.appendChild(span);
                tr.appendChild(td);
            $('tr.quantity').after(tr);
        }
    }
}

function ResetInstocks() {
    if (window.items != undefined) {
        var item_offset = Math.max(0, (globalPageNum - 1) * numPerPage);
        for (var i = 0; i < Math.min(Math.max(0, window.items.length - item_offset), globalViewallthistime ? window.items.length : numPerPage); i++) {
            if (window.items[item_offset + i].instock != undefined) {
                var vcell = document.getElementById('vcell' + i);
                if (vcell != undefined) {
                    if ($(vcell).children('.instock').length == 0) {
                        var instock = (window.items[item_offset + i].instock == 1);
                        var div = document.createElement('div');
                            div.setAttribute('class', 'instock');
                            div.innerHTML = 'In Stock: <span class="instock-' + (instock ? 'yes' : 'no') + '">' + (instock ? 'Yes' : 'No') + '</span>';
                        vcell.appendChild(div);
                        //break;
                    }
                }
            }
        }
    }
    HookControls();
}

function HookControls() {
    var ctrls = document.getElementById('ctrls');
    if (ctrls != undefined)
    {
        var anchors = ctrls.getElementsByTagName('a');
        for (var a = 0; a < anchors.length; a++) {
            var onclick = anchors[a].getAttribute('onclick');
            if (onclick.indexOf('ResetInstocks();') == -1)
                anchors[a].setAttribute('onclick', onclick + ';ResetInstocks();');
        }
    }
    var ctrls2 = document.getElementById('ctrls2');
    if (ctrls2 != undefined)
    {
        var anchors = ctrls2.getElementsByTagName('a');
        for (var a = 0; a < anchors.length; a++) {
            var onclick = anchors[a].getAttribute('onclick');
            if (onclick.indexOf('ResetInstocks();') == -1)
                anchors[a].setAttribute('onclick', onclick + ';ResetInstocks();');
        }
    }
}

function GetInstocks() {
    if (window.items != undefined) {
        HookControls();
        var skus = new Array();
	    for (var i = 0; i < window.items.length; i++) {
            skus.push(window.items[i].code);
            if (skus.length >= SBI_Instock_Limit || i == window.items.length - 1) {
                var url = SBI_Query_Prefix
                        + '?ts=' + (new Date()).getTime().toString()
                        + '&sid=' + SBI_SID
                        + '&t=' + 0
                        + '&skus=' + skus.join('|');
                skus = new Array();
                var script = document.createElement('script');
                    script.setAttribute('type', 'text/javascript');
                    script.setAttribute('language', 'javascript');
                    script.setAttribute('src', url);
                document.getElementsByTagName('head')[0].appendChild(script);
            }
        }
    }
    else if (SBI_ItemCode != undefined) {
        if (SBI_ItemCode != '') {
            var url = SBI_Query_Prefix
                    + '?ts=' + (new Date()).getTime().toString()
                    + '&sid=' + SBI_SID
                    + '&t=' + 1
                    + '&skus=' + SBI_ItemCode;
            var script = document.createElement('script');
                script.setAttribute('type', 'text/javascript');
                script.setAttribute('language', 'javascript');
                script.setAttribute('src', url);
            document.getElementsByTagName('head')[0].appendChild(script);
        }
    }
}

$(document).ready(function(){
    GetInstocks();
});

