$.fn.imgRotation = function(){

    var images = arguments;
    var imagesLength = images.length;
    var style;
    var currentImgIndex = 0;
    var config = {
        imgRotationInterval: ''
    };

    for(var i = 0; i < imagesLength; i++){

        if(i > 0){
            style = " style=\"display: none;\"";

        }
        else {
            style = "";
        }

        $(this).append("<div class=\"bigImage\"><img src=\"" + images[ i ] + "\" alt=\"\""+style+"/></div>");
    }

    arrowsMoveIn = function(){
        $("#nextImage").animate({
            right: '5px'
        }, 100);
        $("#prevImage").animate({
            left: '5px'
        }, 100);
    }
    arrowsMoveOut = function(){
        $("#nextImage").animate({
            right: '-30px'
        }, 100);
        $("#prevImage").animate({
            left: '-30px'
        }, 100);
    }

    _nextImage = function() {
        //next images does not exist or is last
        if( ( currentImgIndex + 1 ) >= imagesLength){
            $(".bigImage :eq("+ currentImgIndex +")").fadeOut(1000);
            $(".bigImage :eq(0)").fadeIn();
            currentImgIndex = 0;
        }
        else {
            $(".bigImage :eq("+ currentImgIndex +")").fadeOut(1000);
            currentImgIndex++;
            $(".bigImage :eq("+ currentImgIndex +")").fadeIn(1000);
        }
    }

    _prevImage = function() {

        //prev images does not exist or is first
        if( ( currentImgIndex - 1 ) < 0){
            $(".bigImage :eq("+ currentImgIndex +")").fadeOut(1000);
            currentImgIndex = imagesLength-1;
            $(".bigImage :eq("+currentImgIndex+")").fadeIn();
        }
        else {
            $(".bigImage :eq("+ currentImgIndex +")").fadeOut(1000);
            currentImgIndex--;
            $(".bigImage :eq("+ currentImgIndex +")").fadeIn(1000);
        }
    }
    clearImgInterval = function(){

        try {
            window.clearInterval(config.imgRotationInterval);
        }
        catch (e){
        }
    }
    startImgInterval = function(){

        try {
            window.clearInterval(config.imgRotationInterval);
        }
        catch (e){
        }
        config.imgRotationInterval = window.setInterval("_nextImage()", 4000);
    }
    

    if(imagesLength > 1){
        $(this).bind("mouseenter", function(){
            arrowsMoveIn();
        });
        $(this).bind("mouseleave", function(){
            arrowsMoveOut();
            startImgInterval();
        });
        $("#nextImage").bind("click", function(){
            clearImgInterval();
            _nextImage();
        });
        $("#prevImage").bind("click", function(){
            clearImgInterval();
            _prevImage();
        });

        startImgInterval();
    }

}


