/*jquery.select_skin.js */
/*
 * jQuery select element skinning
 * version: 1.0.1 (19/12/2008)
 * @requires: jQuery v1.2 or later
 * adapted from Derek Harvey code
 *   http://www.lotsofcode.com/javascript-and-ajax/jquery-select-box-skin.htm
 * Licensed under the GPL license:
 *   http://www.gnu.org/licenses/gpl.html
 *
 * Copyright 2008 Colin Verot
 */

(function ($) {
    $.fn.select_skin = function (w) {
        return $(this).each(function(i) {
            selectObject = $(this);
            selectObject.wrap('<div class="cmf-skinned-select"></div>');
            selectContainer = selectObject.parent();
            selectContainer.width(selectObject.outerWidth()-2);
            selectContainer.height(selectObject.outerHeight()-2);
            selectContainer.css('color', selectObject.css('color'));
            //selectContainer.css('font-size', selectObject.css('font-size'));
            selectContainer.css('border', selectObject.css('border'));
            selectContainer.css('background-color', selectObject.css('background-color'));
            selectContainer.css( { 'position': 'relative' } );
            selectObject.css( { 'opacity': 0,  'position': 'relative', 'z-index': 100 } );
            //selectObject.css("display:-moz-inline-stack; display:inline-block; zoom:1; *display:inline;");
            selectContainer.children().before('<div class="cmf-skinned-text">&nbsp;</div>').each(function() {
                if (this.selectedIndex >= 0) $(this).prev().text(this.options[this.selectedIndex].innerHTML)
            });
            var parentTextObj = selectContainer.children().prev();
            parentTextObj.height(selectContainer.innerHeight()-selectObject.css('padding-top').replace(/px,*\)*/g,"")-selectObject.css('padding-bottom').replace(/px,*\)*/g,""));
            parentTextObj.width(selectContainer.innerWidth()-selectObject.css('padding-right').replace(/px,*\)*/g,"")-selectObject.css('padding-left').replace(/px,*\)*/g,"")-parentTextObj.height()-1);
            parentTextObj.css('padding-top', selectObject.css('padding-top'));
            parentTextObj.css('padding-right', selectObject.css('padding-right'));
            parentTextObj.css('padding-bottom', selectObject.css('padding-bottom'));
            parentTextObj.css('padding-left', selectObject.css('padding-left'));
            parentTextObj.css( { 'overflow': 'hidden', 'position': 'absolute', 'text-indent': '3px', 'z-index': 1, 'top': 1, 'left': 1 } );
            selectContainer.children().click(function() {
                parentTextObj.text(this.options[this.selectedIndex].innerHTML);
            });
            selectContainer.children().change(function() {
                parentTextObj.text(this.options[this.selectedIndex].innerHTML);
            });
        });
    }
}(jQuery));
