/*
 * Copyright (C) 2007 - 2011 MagicWeb.org. All rights reserved.
 *
 * @name    popup
 * @author   vativa
 * @version  1.1
 */

(function($) {

    $.fn.skinFormElements = function(options) {
    	
        /**
		 * Default configuration properties
		 */
        var defaults = {
            theme: 'white'
        };

        /**
		 * Override defaults with options
		 */
        var opt = $.extend(defaults, options);
        
        /**
         * Return the set of matched elements to maintain chainablilty
         */
        return this.each(function(ind) {
            
            // Not working properly!!!
            var version = getInternetExplorerVersion();
            if (version > 0 && version < 9) {
                // Not supported IE versions
                return;
            }
            
            var $form = $(this);
            var wrapperClass = 'form-element-skin-wrapper';
            
            // ----------------------------------------------------------------------------------------
            // 
            // Handle file inputs
            // 
            // ----------------------------------------------------------------------------------------
            
            var fileInputWrapper = 'file-input-wrapper';
            if (0 == $form.find('.' + fileInputWrapper).length) {
                // Iterate through all file controls
                $form.find('input[type=file]:visible:not(:disabled)').each(function(fileInd) {
                    var $file = $(this);
                    // Keep size before going to resize it
                    var fileElementWidth = $file.outerWidth();
                    var fileControlSpace = 10;
                    // HTML markup
                    //<div class="file-input-wrapper">
                    //<input type="text" />
                    //<div class="file-button-wrapper">
                    //<input type="file"/>
                    //</div>
                    //</div>
                    //<div class="clr"></div>
                    $file.wrap('<div class="' + wrapperClass + ' ' + fileInputWrapper + '"><div class="file-button-wrapper"></div></div>');
                    var $fileInputWrapper = $file.parent().parent();
                    var $fileButtonWrapper = $file.parent();
                    var $fileTxt = $('<input class="file-txt" type="text" readonly="readonly"/>');
                    $fileInputWrapper.prepend($fileTxt);

                    // Apply styles
                    $fileInputWrapper.css({
                        position: 'relative'
                    });
                    $fileTxt.css({
                        width: fileElementWidth
                    });
                    $fileButtonWrapper.css({
                        position: 'absolute',
                        top: 0,
                        left: $fileTxt.outerWidth() + fileControlSpace,
                        bottom: 0,
                        width: 70,
                        background: 'transparent url(/templates/system/css/images/skins/forms/white/btn_select_file_grey.png) 50% 50% no-repeat',
                        overflow: 'hidden'
                    });
                    $file.css({
                        position: 'absolute',
                        top: -5,
                        right: -5,
                        margin: 0,
                        padding: 0,
                        'font-size': '100pt',
                        opacity: 0,
                        cursor: 'pointer'
                    });

                    // Listen for events
                    $file.change(function() {
                        $fileTxt.val(this.value);
                    });
                    $fileTxt.click(function(e){
                        $file.click();
                    });
                    
                });
            }
            
            // ----------------------------------------------------------------------------------------
            // 
            // Plugin library
            // 
            // ----------------------------------------------------------------------------------------
            
            function getInternetExplorerVersion()
            {
                var rv = -1; // Return value assumes failure.
                if (navigator.appName == 'Microsoft Internet Explorer') {
                    var ua = navigator.userAgent;
                    var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
                    if (re.exec(ua) != null) {
                        rv = parseFloat(RegExp.$1);
                    }
                }
                return rv;
            }

        });
        
    };

})(jQuery);
