/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

(function($){
    $.fn.preloadImages = function(callback){
        var loadImages = function(imagePaths, callback){
            var img;
            var images = new Array();
            for(var i in imagePaths){
                img = new Image();
                img.src = imagePaths[i]
                images[i] = img;
            }
            var loaded = 0;
            var failed = 0;
            for(i in images){
                if(images[i].complete){
                    loaded ++;
                }else{
                    $(images[i]).load(function(){
                        loaded ++ ;
                        if((loaded + failed) == images.length){
                            callback(failed, loaded);
                        }
                    });
                    $(images[i]).error(function(){
                        failed++;
                        if((loaded + failed) == images.length){
                            callback(failed, loaded);
                        }
                    });
                }
            }
            if((loaded + failed) == images.length){
                callback(failed, loaded);
            }
        };

        var imgArray = new Array();
        var counter = 0;
        this.each(function(){
            var src = $(this).attr('src');
            if(src != undefined && src != null){
                imgArray[counter++] = src;
            }
        });
        loadImages(imgArray, callback);
    }
})(jQuery);


var initSlideShow=function(contextObj){
    contextObj.width(slideShowObj.width+"px");
    contextObj.height(slideShowObj.height+"px").css("position","relative");

    var CreateHtml=function(){
        var ul=$(document.createElement("ul")).attr("class","innerfade");
        var div=$(document.createElement("div")).attr("class","nav");
        var images=slideShowObj.images;
        var links=slideShowObj.links;
        div.append("<span class='leftArrow'>&nbsp;</span>");
        for(var i=0;i<images.length;i++){
            ul.append('<li><img src="'+images[i]+'" alt="'+links[i]+'" style="cursor:'+(($.trim(links[i]).length!=0)?"pointer":"default")+'" /></li>');
            div.append("<span>&nbsp;</span>");
        }
        div.append("<span class='rightArrow'>&nbsp;</span>");
        contextObj.append(ul);
        contextObj.append(div);
        ul.find("li:first").css("display","block");
        $(div.find("span").get(1)).addClass("sel");
    };

    var initAnimation=function(){
        var lastSlide=0;
        var moveToSlide = function(index){
            $(".nav",contextObj).find("span.sel").removeClass("sel");
            $(".nav",contextObj).find("span:eq("+(index)+")").addClass("sel");
            $(".innerfade",contextObj).find("li:eq("+(lastSlide-1)+")").fadeOut(500);
            $(".innerfade",contextObj).find("li:eq("+(index-1)+")").fadeIn(1000);
            lastSlide=index;
        };
       
        $(".nav",contextObj).find("span").click(function(){
            var $this = $(this);
            var spanIndex=$this.parent().find("span.sel").index();
            if($this.hasClass("leftArrow")){
                if(lastSlide -1 > 0){
                    moveToSlide(spanIndex-1);
                }
            } else if($this.hasClass("rightArrow")){
                if((lastSlide+1) <= $(".innerfade li",contextObj).length){
                    moveToSlide(spanIndex+1);
                }
            }else{
                moveToSlide($this.index());
            }
        });
        
        $(".nav",contextObj).css("margin-left",-($(".nav").width()/2)-5);

        contextObj.find("li img").click(function(){
            var curObj=$(this);
            if($.trim(curObj.attr("alt")).length!=0){
                window.location=curObj.attr("alt");
            }
        });
    }

    CreateHtml();
    $("img",contextObj).preloadImages(function(){
        initAnimation();
    });
};




