﻿fixPNG = function(el, src) {
    if (jQuery.browser.ie && jQuery.browser.version < 7) {
        var bg = el.style.backgroundImage.replace("url(", "").replace(")", "");
        el.style.backgroundImage = "";
        el.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + bg + "')";
    }
}

buttonHighlight = function(btn) {
    btn.className = btn.className + "_ovr";
}

buttonRestore = function(btn) {
    btn.className = btn.className.replace("_ovr", "");
}

function fireEvent(element, event) {
    if (document.createEventObject) {
        // dispatch for IE
        var evt = document.createEventObject();
        return element.fireEvent('on' + event, evt)
    }
    else {
        // dispatch for firefox + others
        var evt = document.createEvent("HTMLEvents");
        evt.initEvent(event, true, true); // event type,bubbling,cancelable
        return !element.dispatchEvent(evt);
    }
}

// Ajax actions:
jQuery.fn.extend({
    bindAjaxRefresher: function(srcElement, url, id, text, optLabel) {
        var el = this;
        if (el[0].options.length > 1) el.attr("disabled", false);
        else el.attr("disabled", true);

        jQuery('#' + srcElement).change(function(e) {

            el.attr("disabled", true);

            el[0].options.length = 0;
            if (optLabel) el[0].options.add(new Option(optLabel, ""));

            jQuery.get(url + "/" + jQuery(this).val(), function(data) {
                var rs = eval(data);

                if (rs.length > 1) el.attr("disabled", false);

                el[0].options.length = 0;
                if (optLabel) el[0].options.add(new Option(optLabel, ""));
                
                for (var i = 0; i < rs.length; i++) {
                    el[0].options.add(new Option(rs[i][text], rs[i][id]));
                }

                fireEvent(el[0], 'change');
            });
        })
    }
});

jQuery.fn.extend({
    bindOptionsList: function(data, textField, valueField) {
        var el = this;
        var rs = eval(data);
        el[0].options.length = 0;
        //el[0].options.add(new Option(optLabel, ""));

        for (var i = 0; i < rs.length; i++) {
            el[0].options.add(new Option(rs[i][textField], rs[i][valueField]));
        }
    }
});
