/**
 * Drop Shadow Plugin jQuery
 * http://sarfraznawaz.wordpress.com/
 * Author: Sarfraz Ahmed (sarfraznawaz2005@gmail.com)
 */

(function($){

    $.fn.dropshadow = function(settings){
        // Extend default settings
        var opts = $.extend({}, $.fn.dropshadow.defaults, settings);

        // Check if CSS3 is supported
        var style = $('div')[0].style;
        nav = navigator.appName;
        if( nav == "Microsoft Internet Explorer"){
          var isCSS3 = (style.MozBoxShadow !== undefined || style.WebkitBoxShadow !== undefined || style.BoxShadow !== undefined);
        }else{
          var isCSS3 = (style.MozBoxShadow !== undefined || style.WebkitBoxShadow !== undefined || style.BoxShadow !== undefined) ||  (style.box-shadow !== undefined);
        }
        return this.each(function(settings){
           var options = $.extend({}, opts, $(this).data());
           var $this = $(this);

            if (!isCSS3){
                if (navigator.appName=="Microsoft Internet Explorer"){
                  mytop = parseInt($this.position().top + parseInt(options.distanceY, 10)-(parseInt(options.blur)/2)) + 'px';
                  myleft = parseInt($this.position().left + parseInt(options.distanceX, 10)-(parseInt(options.blur)/2)) + 'px';
                }else{
                  mytop =  $this.position().top + parseInt(options.distanceY, 10) + 'px';
                  myleft = $this.position().left + parseInt(options.distanceX, 10) + 'px';
                }
                var styles = {
                    position: 'absolute',
                    width: $this.width() + 'px',
                    height: $this.height() + 'px',
                    backgroundColor: options.shadowColor,
                    opacity: options.shadowAlpha,
                    zIndex: parseInt($this.css('z-index')) + options.shadowLayer,
                    top: mytop,
                    left: myleft,
                    margin: $this.css('margin-top') + ' ' + $this.css('margin-right') + ' ' + $this.css('margin-bottom') + ' ' + $this.css('margin-left'),
                    filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity="+(options.shadowAlpha*100)+") "+'progid:DXImageTransform.Microsoft.Blur(pixelradius='+parseInt(options.blur)/2+') '
                };
            }
            else{
                var boxshadow = options.distanceX + ' ' + options.distanceY + ' ' + options.blur + ' ' + options.shadowColor;

                if (navigator.appName=="Microsoft Internet Explorer"){
                  mytop = parseInt($this.position().top-(parseInt(options.blur)/2)) + 'px';
                  myleft = parseInt($this.position().left-(parseInt(options.blur)/2)) + 'px';
                }else{
                  mytop =  $this.position().top + 'px';
                  myleft = $this.position().left + 'px';
                }

                var styles = {
                    position: 'absolute',
                    width: $this.width() + 'px',
                    height: $this.height() + 'px',
                    backgroundColor: options.shadowColor,
                    opacity: options.shadowAlpha,
                    zIndex: parseInt($this.css('z-index')) + options.shadowLayer,
                    top: mytop,
                    left: myleft,
                    margin: $this.css('margin-top') + ' ' + $this.css('margin-right') + ' ' + $this.css('margin-bottom') + ' ' + $this.css('margin-left'),
                    MozBoxShadow:boxshadow,
                    WebkitBoxShadow:boxshadow,
                    BoxShadow:boxshadow
                    //filter:'progid:DXImageTransform.Microsoft.Blur(pixelradius='+parseInt(options.blur)/2+')'
                };

            }

            $('<div class="drop_shadow_layer">').appendTo($this.parent()).css(styles);

        });
    }

   // set default option values
  $.fn.dropshadow.defaults = {
    shadowColor: '#DFDFDF',
    shadowLayer: -1,
    shadowAlpha: 0.2,
    distanceX:'5px',
    distanceY:'5px',
    blur:'3px'
  }


})(jQuery);

