(function($) {
    $.fn.alertSelect = function(settings) {
        settings = jQuery.extend({ _baseData: null, _sonData: null, _showbase: true, _saveData: '', _viewResult: '', _isMultiSelect: false, _defaultSaveData: '', _defaultViewResult: '', _colcount: 2, _areaWidth: 360, _headTitle: '', _maxSelectItem: 5, _selectedItemClass: "", _callbackFunction: null, _imageTopLeft: '/images/select-topleft.gif', _imageTopMiddle: '/images/select-topmiddle.gif', _imageTopRight: '/images/select-topright.gif', _imageBorderLeft: '/images/select-borderlineleft.gif', _imageBorderRight: '/images/select-borderlineright.gif', _imageBottomLeft: '/images/select-bottomleft.gif', _imageBottomMiddle: '/images/select-bottommiddle.gif', _imageBottomRight: '/images/select-bottomright.gif', _imageTopHeader: '/images/select-itemicon.gif', _imageGroupLine: '/images/select-groupline.gif', _imageBackGround: '#E6FAD9', _imageBtnOK: '/images/select-btnok.gif', _imageBtnCnacel: '/images/select-btncancel.gif', _imageBtnDefault: '/images/select-btnmoren.gif' }, settings); var jQueryMatchedObj = this; function _initialize() { _start(this, jQueryMatchedObj); return false; }
        function _start(objClicked, jQueryMatchedObj) { _set_interface(); _set_command(); _set_basedataarrary(); _set_sondataarrary(); }
        function _set_basedataarrary() {
            if (settings._showbase) {
                var baseData_id = 0; if (!settings._isMultiSelect) {
                    $('#data_vArea').append('<div style="padding:12px 0px;"><select id="basedata_selList"></select><a href="#" id="basedata_selectall"><font color="blue">.全部.</font></a></div>'); if ($('#' + settings._saveData).val().length != 0) {
                        var selectedBaseID = $('#' + settings._saveData).val(); for (var t = 0; t < settings._sonData.length; t++) {
                            if (settings._sonData[t][1] == selectedBaseID)
                            { baseData_id = settings._sonData[t][0]; break; } 
                        } 
                    } 
                }
                else
                { $('#data_vArea').append('<div style="padding:12px 0px;"><select id="basedata_selList"></select></div>'); }
                for (var r = 0; r < settings._baseData.length; r++) {
                    if (settings._baseData[r][0] == baseData_id)
                    { $('#basedata_selList').append('<option value="' + settings._baseData[r][0] + '" selected>' + settings._baseData[r][1] + '</option>'); }
                    else { $('#basedata_selList').append('<option value="' + settings._baseData[r][0] + '">' + settings._baseData[r][1] + '</option>'); } 
                }
                $('#basedata_selectall').click(function() { $('#' + settings._viewResult).text($('#basedata_selList').get(0).options[$('#basedata_selList').get(0).selectedIndex].text); $('#' + settings._saveData).val($('#basedata_selList').val()); $('#' + settings._viewResult).addClass(settings._selectedItemClass); _finish(); if (settings._callbackFunction != null) settings._callbackFunction(); return false; }); $('#basedata_selList').change(_set_sondataarrary); $('#basedata_selList').css('margin', '0 10px 0 10px'); $('#basedata_selectall').css({ color: '#FFFFFF', 'text-decoration': 'none', 'font-size': '12px' });
            }
            if (settings._isMultiSelect && settings._saveData != '') {
                var _selectitem = $('#' + settings._saveData).val().split(','); for (var r = 0; r < settings._sonData.length; r++) {
                    for (var t = 0; t < _selectitem.length; t++) {
                        if (settings._sonData[r][1] == _selectitem[t]) {
                            $('#multilelectitem').append('<li><input type="checkbox" id="selectItem' + settings._sonData[r][1] + '" value="' + settings._sonData[r][2] + '" class="mulitieSelected" checked></input><label for="selectItem' + settings._sonData[r][1] + '" >' + settings._sonData[r][2] + '</label></li>'); $('.mulitieSelected').click(function() {
                                if ($('#chkItem' + $(this).attr('id').substring(10)).length > 0)
                                    $('#chkItem' + $(this).attr('id').substring(10))[0].checked = false; $(this).parent("li").remove();
                            }); $('#multilelectitem li').css({ width: (settings._areaWidth - 16 - 10) / settings._colcount + 'px', height: '20px', float: 'left', 'font-size': '12px', color: 'blue', overflow: 'hidden' });
                        } 
                    } 
                } 
            } 
        }
        function _set_sondataarrary() {
            var selectParentid = 0; if (settings._showbase) {
                if ($('#basedata_selList').length > 0)
                { selectParentid = $('#basedata_selList').val(); } 
            }
            else
            { selectParentid = settings._baseData[0][0]; }
            if ($('#alertselect_dataarea').length > 0) { $('#alertselect_dataarea').remove(); }
            $('#data_vArea').append('<div id="alertselect_dataarea"><ul id="alertselect_sondatalist"></ul><div style="clear:both; height:5px;"></div></div>'); for (var r = 0; r < settings._sonData.length; r++) {
                if (settings._sonData[r][0] == selectParentid) {
                    if (!settings._isMultiSelect)
                    { $('#alertselect_sondatalist').append('<li><a class="baseselect_itemselect" id="' + settings._sonData[r][1] + '" href="#">' + settings._sonData[r][2] + '</a></li>'); }
                    else
                    { var checkedval = ''; if ($('#selectItem' + settings._sonData[r][1]).length > 0) checkedval = 'checked'; $('#alertselect_sondatalist').append('<li><input type="checkbox" id="chkItem' + settings._sonData[r][1] + '" value="' + settings._sonData[r][2] + '" class="mulitieItem" ' + checkedval + '></input><label for="chkItem' + settings._sonData[r][1] + '" >' + settings._sonData[r][2] + '</label></li>'); } 
                } 
            }
            $('#alertselect_dataarea').css({ margin: '0 0 0 10px', padding: '5px 0 0 0', 'font-size': '12px' })
            $('#alertselect_sondatalist').css({ margin: '0px', padding: '0px', 'list-style-type': 'none' }); if (settings._isMultiSelect) {
                $('.mulitieItem').click(function() {
                    if ($('#selectItem' + $(this).attr('id').substring(7)).length > 0)
                    { $('#selectItem' + $(this).attr('id').substring(7)).parent('li').remove(); _set_ie6_iframe(); return true; }
                    if ($('#multilelectitem li').length >= settings._maxSelectItem)
                    { alert('抱歉，您最多只能选择' + settings._maxSelectItem + '个选项！'); return false; }
                    $('#multilelectitem').append('<li><input type="checkbox" id="selectItem' + $(this).attr('id').substring(7) + '" value="' + $(this).attr('value') + '" class="mulitieSelected" checked></input><label for="selectItem' + $(this).attr('id').substring(7) + '" >' + $(this).attr('value') + '</label></li>'); $('.mulitieSelected').click(function() {
                        if ($('#chkItem' + $(this).attr('id').substring(10)).length > 0)
                            $('#chkItem' + $(this).attr('id').substring(10))[0].checked = false; $(this).parent("li").remove(); _set_ie6_iframe(); return true;
                    }); $('#multilelectitem li').css({ width: (settings._areaWidth - 16 - 10) / settings._colcount + 'px', height: '20px', float: 'left', 'font-size': '12px', color: 'blue', overflow: 'hidden' }); _set_ie6_iframe(); return true;
                });
            }
            else
            { $('.baseselect_itemselect').click(function() { $('#' + settings._viewResult).text($(this).text()); $('#' + settings._saveData).val($(this).attr('id')); $('#' + settings._viewResult).addClass(settings._selectedItemClass); _finish(); if (settings._callbackFunction != null) settings._callbackFunction(); return false; }); }
            $('#alertselect_sondatalist li').css({ width: (settings._areaWidth - 16 - 10) / settings._colcount + 'px', height: 'auto', float: 'left', overflow: 'hidden', margin: '3px 0' }); $('#alertselect_sondatalist a').css({ color: 'Black', 'font-size': '12px', 'text-decoration': 'none' }); _set_ie6_iframe();
        }
        function _set_interface() {
            if ($('#view_sArea').length > 0) $("#view_sArea").remove(); $('body').append('<div style="z-index:9999; color:#333333; position: absolute; width:' + settings._areaWidth + 'px;text-align:left;" class="divShow" id="view_sArea"></div>'); $('#view_sArea').append('<div style="overflow: hidden;height:8px; width:' + settings._areaWidth + 'px; background:url(' + settings._imageTopLeft + ') no-repeat left top;"><div style="height:8px; width:' + (settings._areaWidth - 8) + 'px; background:url(' + settings._imageTopRight + ') no-repeat right top; margin-left:8px;"><div style="height:8px; width:' + (settings._areaWidth - 16) + 'px; background:url(' + settings._imageTopMiddle + ') repeat-x top; background-color:' + settings._imageBackGround + ';"></div></div></div>'); $('#view_sArea').append('<div style="width:' + settings._areaWidth + 'px; background:url(' + settings._imageBorderLeft + ') repeat-y left; background-color:' + settings._imageBackGround + '"><div style="width:' + (settings._areaWidth - 8) + 'px; background:url(' + settings._imageBorderRight + ') repeat-y right; margin-left:8px;"><div style="width:' + (settings._areaWidth - 16) + 'px;"><img src="' + settings._imageTopHeader + '" style="clear:both; margin-left:10px;"/><span style="font-size:13px; font-weight:bold; padding-left:6px; margin-left:10px;">' + settings._headTitle + '</span></div></div></div>'); $('#view_sArea').append('<div style="width:' + settings._areaWidth + 'px; background:url(' + settings._imageBorderLeft + ') repeat-y left; background-color:#FFFFFF;"><div style="width:' + (settings._areaWidth - 8) + 'px; background:url(' + settings._imageBorderRight + ') repeat-y right; margin-left:8px;"><div style="width:' + (settings._areaWidth - 16) + 'px;" id="data_vArea"></div></div></div>'); $('#view_sArea').append('<div style="width:' + settings._areaWidth + 'px; background:url(' + settings._imageBorderLeft + ') repeat-y left; background-color:#FFFFFF;"><div style="width:' + (settings._areaWidth - 8) + 'px; background:url(' + settings._imageBorderRight + ') repeat-y right; margin-left:8px;"><div style="width:' + (settings._areaWidth - 16) + 'px; background:url(' + settings._imageGroupLine + ') repeat-x top; padding-top:10px;" id="command_vArea"></div></div></div>'); $('#view_sArea').append('<div style="height:8px; width:' + settings._areaWidth + 'px; background:url(' + settings._imageBottomLeft + ') no-repeat left top;"><div style="height:8px; width:' + (settings._areaWidth - 8) + 'px; background:url(' + settings._imageBottomRight + ') no-repeat right top; margin-left:8px;"><div style="height:8px; width:' + (settings._areaWidth - 16) + 'px; background:url(' + settings._imageBottomMiddle + ') repeat-x top; background-color:#FFFFFF;"></div></div></div>'); var viewPageX; var viewPageY; if (settings._isMultiSelect)
            { viewPageX = getPageX(jQueryMatchedObj[0]); viewPageY = getPageY(jQueryMatchedObj[0]); }
            else
            { viewPageX = getPageX($('#' + settings._viewResult)[0]); viewPageY = getPageY($('#' + settings._viewResult)[0]); }
            $('#view_sArea').css('left', viewPageX); $('#view_sArea').css('top', viewPageY + 23); if ($.browser.msie && /6.0/.test(navigator.userAgent))
            { $('#view_sArea').append('<iframe id="overInIE6" href="javascript:false;" frameborder="0"></iframe>'); $('#overInIE6').css({ filter: 'progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)', display: 'block', 'z-index': '-1', position: 'absolute', opacity: true, top: '0px', left: '0px', width: $('#view_sArea').width() }); } 
        }
        function _set_command() {
            if (!settings._isMultiSelect)
            { $('#command_vArea').append('<div style="width:152px; margin:0 auto;"><input type="button" value="" id="alertSelect_btn_Cancle"/><input type="button" value="" id="alertSelect_btn_Default"/></div>'); $('#alertSelect_btn_Cancle').css({ 'background-image': 'url(' + settings._imageBtnCnacel + ')', border: '0 none', cursor: 'pointer', height: '21px', width: '61px' }); $('#alertSelect_btn_Default').css({ 'background-image': 'url(' + settings._imageBtnDefault + ')', border: '0 none', cursor: 'pointer', height: '21px', width: '61px', 'margin-left': '30px' }); $('#alertSelect_btn_Cancle').click(_finish); $('#alertSelect_btn_Default').click(_set_default); }
            else
            { $('#command_vArea').append('<div style="padding-top:5px; margin-left:10px;"><ul id="multilelectitem"></ul><div style="clear:both; height:5px;"></div></div>'); $('#multilelectitem').css({ margin: '0px', padding: '0px', 'list-style-type': 'none' }); $('#command_vArea').append('<div style="width:243px; margin:0 auto;"><input type="button" value="" id="alertSelect_btn_OK"/><input type="button" value="" id="alertSelect_btn_Cancle"/><input type="button" value="" id="alertSelect_btn_Default"/></div>'); $('#alertSelect_btn_OK').css({ 'background-image': 'url(' + settings._imageBtnOK + ')', border: '0 none', cursor: 'pointer', height: '21px', width: '61px' }); $('#alertSelect_btn_Cancle').css({ 'background-image': 'url(' + settings._imageBtnCnacel + ')', border: '0 none', cursor: 'pointer', height: '21px', width: '61px', 'margin-left': '30px' }); $('#alertSelect_btn_Default').css({ 'background-image': 'url(' + settings._imageBtnDefault + ')', border: '0 none', cursor: 'pointer', height: '21px', width: '61px', 'margin-left': '30px' }); $('#alertSelect_btn_OK').click(_set_multiselect); $('#alertSelect_btn_Cancle').click(_finish); $('#alertSelect_btn_Default').click(_set_default); } 
        }
        function _set_multiselect()
        { var viewResult = ''; var dataResult = ''; $('.mulitieSelected').each(function() { if (viewResult != '') viewResult += ' <span style="color:blue;">+</span> '; if (dataResult != '') dataResult += ','; viewResult += $(this).attr('value'); dataResult += $(this).attr('id').substring(10); }); $('#' + settings._viewResult).html(viewResult); $('#' + settings._saveData).val(dataResult); $('#' + settings._viewResult).addClass(settings._selectedItemClass); _finish(); if (settings._callbackFunction != null) settings._callbackFunction(); return false; }
        function _set_ie6_iframe()
        { $('#overInIE6').css('height', $('#view_sArea').height()); }
        function _set_default()
        { $('#' + settings._viewResult).text(settings._defaultViewResult); $('#' + settings._saveData).val(settings._defaultSaveData); $('#' + settings._viewResult).removeClass(settings._selectedItemClass); _finish(); if (settings._callbackFunction != null) settings._callbackFunction(); return false; }
        function _finish() { $("#view_sArea").remove(); }
        return this.unbind('click').click(_initialize);
    };
})(jQuery); function getPageX(elem) { return elem.offsetParent ? (elem.offsetLeft + getPageX(elem.offsetParent)) : elem.offsetLeft; }
function getPageY(elem) { return elem.offsetParent ? (elem.offsetTop + getPageY(elem.offsetParent)) : elem.offsetTop; }
