// JavaScript Document
$.fn.preloader = function(options){
    
    var defaults = {
                     delay:200,
                     preload_parent:"a",
                     check_timer:300,
                     ondone:function(){ },
                     oneachload:function(image){  },
                     fadein:500 
                    };
    
    // variables declaration and precaching images and parent container
     var options = $.extend(defaults, options),
     root = $(this) , images = root.find("img").css({"visibility":"hidden",opacity:0}) ,  timer ,  counter = 0, i=0 , checkFlag = [] , delaySum = options.delay ,
     
     init = function(){
        
        timer = setInterval(function(){
            
            if(counter>=checkFlag.length)
            {
            clearInterval(timer);
            options.ondone();
            return;
            }
        
            for(i=0;i<images.length;i++)
            {
                if(images[i].complete==true)
                {
                    if(checkFlag[i]==false)
                    {
                        checkFlag[i] = true;
                        options.oneachload(images[i]);
                        counter++;
                        
                        delaySum = delaySum + options.delay;
                    }
                    
                    $(images[i]).css("visibility","visible").delay(delaySum).animate({opacity:1},options.fadein,
                    function(){ $(this).parent().removeClass("preloader");   });
                    
                    
                    
                 
                }
            }
        
            },options.check_timer) 
         
         
         } ;
    
    images.each(function(){
        
        if($(this).parent(options.preload_parent).length==0)
        $(this).wrap("<a class='preloader' />");
        else
        $(this).parent().addClass("preloader");
        
        checkFlag[i++] = false;
        
        
        }); 
    images = $.makeArray(images); 
    
    
    var icon = jQuery("<img />",{
        
        id : 'loadingicon' ,
        src : 'css/i/89.gif'
        
        }).hide().appendTo("body");
    
    
    
    timer = setInterval(function(){
        
        if(icon[0].complete==true)
        {
            clearInterval(timer);
            init();
             icon.remove();
            return;
        }
        
        },100);
    
    }
