$(document).ready(function() {
    jQuery.extend(

        jQuery.expr[':'].insContains = function(a, i, m) {
            return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase()) >= 0
        });
    var str = $('#refinearray').html();
    $('#refine').html(str);
    $('#refinearray').remove();
});


function resSort(_iType, _sData, isDelete) {
    //$(".res").hide();
    switch (_iType) {
        case 1:
            $('.pos').each(function() {
                var _pid = this.id;
                var _div = _pid.replace('pos', 'md');
                if ($("#" + _pid).html() != _sData && $("#" + _div + ":visible").length == 1) {
                    $("#" + _div).hide();
                }
            });
            if (!isDelete) {
                addFilter("refineActivePosition", _sData, "refinePosition", 1);
            }
            break;
        case 2:
            $('.bnd').each(function() {
                var _pid = this.id;
                var _div = _pid.replace('bnd', 'md');
                if ($("#" + _pid).html() != _sData && $("#" + _div + ":visible").length == 1) {
                    $("#" + _div).hide();
                }
            });
            if (!isDelete) {
                addFilter("refineActiveBrand", _sData, "refineBrand", 2);
            }
            break;
        case 3:
            $('.qua').each(function() {
                var _pid = this.id;
                var _div = _pid.replace('qua', 'md');
                if ($("#" + _pid).html() != _sData && $("#" + _div + ":visible").length == 1) {
                    $("#" + _div).hide();
                }
            });
            if (!isDelete) {
                addFilter("refineActiveQuality", _sData, "refieQuality", 3);
            }
            break;

    }
    if ($('.res:visible').length <= 0) {
        $("#page").prepend('<div id="dialog" title="No Result Found"><p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>No Result Found! Please remove one or more filter(s) to generalize your result.</p></div>');
        $("#dialog").dialog({
            bgiframe: true,
            modal: true,
            autoOpen: true,
            height: 180,
            width: 600,
            buttons: {
                'close': function() {
                    $(this).dialog('destroy').remove();
                }
            }
        });
    }
}
function clearSort(_iType) {
    var _arr = $('#refineActive').attr("rel").toString();
    if (_arr.length <= 1) {
        _arr = _arr + ",";
    }
    if (!$.isArray(_arr)) {
        _arr = _arr.split(',');
    }
    for(i = 0; i < _arr.length; i++) {
        if (_iType == _arr[i]) {
            _arr.splice(i, 1);
        }
    }
    removeFilter(_iType);
    $(".res").show();
    if (_arr.length > 0) {
        $('#refineActive').attr("rel", _arr.toString());
        for (i = 0; i < _arr.length; i++) {
            switch (_arr[i]) {
                case '1':
                    resSort(parseFloat(_arr[i]), $('#refineActivePosition').attr('title'), true);
                    break;
                case '2':
                    resSort(parseFloat(_arr[i]), $('#refineActiveBrand').attr('title'), true);
                    break;
                case '3':
                    resSort(parseFloat(_arr[i]), $('#refineActiveQuality').attr('title'), true);
                    break;
            }


        }

    }
    else {
        $('#refineActive').attr("rel", "");
    }
}
function addFilter(_filterid, _filtervalue, _hideid, iType) {
    $('#refineActive').append('<div id="' + _filterid + '" class="ui-state-default ui-corner-all refineActiveI" onclick="javascript:clearSort(' + iType + ')" title="' + _filtervalue + '"><span class="ui-icon ui-icon-close" title="Remove Filter"></span>' + _filtervalue + '</div>');
    $('#' + _hideid).hide('normal');
    var tmpS = $('#refineActive').attr("rel");
    if (tmpS != "") {
        $('#refineActive').attr("rel", tmpS + ',' + iType);
    }
    else {
        $('#refineActive').attr("rel", iType);
    }
}
function removeFilter(_iType) {
    switch (_iType) {
        case 1:
            $('#refineActivePosition').remove();
            $('#refinePosition').show('normal');
            break;
        case 2:
            $('#refineActiveBrand').remove();
            $('#refineBrand').show('normal');
            break;
        case 3:
            $('#refineActiveQuality').remove();
            $('#refieQuality').show('normal');
            break;
    }

}