(function($){
    $.fn.sc_slider = function(paramsInner){

        var obj = this;
        obj.css('overflow', 'hidden');
        
        var paramsDefault = {
            img: {
                next : {
                    active: "img/next0.gif",
                    inactive: 'img/next.gif'
                },
                prev : {
                    active: "img/prev0.gif",
                    inactive: 'img/prev.gif'
                },
                pause : {
                    active: "img/pause0.gif",
                    inactive: 'img/pause.gif'
                }
            },
            titles: {
                next: "Next",
                prev: "Back",
                pause: "Pause"
            },
            slideInterval: 3000,
            animateInterval: 1000,
            autostart: false
        };

        var params = $.extend(paramsDefault, paramsInner);

        var sldTm = null;
        var current = 1;
        var total = 0;
        var buttons = null;
        var wrp = null;

        var init = function() {
            var buttons_code = '<div id="' + obj.attr('id') + '_sc_slider_buttons"><br />'
            + '<span style="padding: 0px 0px 0px 5px;'
            + 'color: #fff"></span>&nbsp;&nbsp;'

            + '<img alt="' + params.titles.prev + '" title="'
            + params.titles.prev + '" src="' + params.img.prev.inactive
            + '" align="absmiddle" id="sc_slider_prev"/> '

            + '<img alt="' + params.titles.pause + '" title="'
            + params.titles.pause + '" src="' + params.img.pause.active
            + '" align="absmiddle" id="sc_slider_pause"/> '

            + '<img alt="' + params.titles.next + '" title="'
            + params.titles.next + '" src="' + params.img.next.inactive
            + '" align="absmiddle" id="sc_slider_next"/> '

            + '</div>'

            obj.html('<div id="' + obj.attr('id') + '_sc_slider_wrapper">'
                + obj.html() + '</div>' + buttons_code);

            buttons_wr = $('#' + obj.attr('id') + '_sc_slider_buttons');

            wrp = $('#' + obj.attr('id') + '_sc_slider_wrapper');
            wrp.css('width', '30000px');
            wrp.css('position', 'relative');
            wrp.css('left', '0px');
            buttons_wr.css('clear', 'both');
            
            if($.browser.msie){
                obj.css('position', 'relative');
            }

            buttons_wr.find('img').css('cursor', 'pointer');

            var nodes = wrp.attr('childNodes');
            for (var i in nodes) {
                if ( ('DIV' == nodes[i].nodeName) || ('div' == nodes[i].nodeName) ) {
                    total ++;
                    $(nodes[i]).css('float', 'left');
                    $(nodes[i]).css('width', obj.css('width'));
                }
            }

            buttons = {
                prev: $(buttons_wr).find('img:eq(0)'),
                pause: $(buttons_wr).find('img:eq(1)'),
                next: $(buttons_wr).find('img:eq(2)'),
                label: $(buttons_wr).find('span')
            }

            buttons.label.html(current + '/' + total);
            binds();

            if (params.autostart) {
                buttons.pause.attr('src', params.img.pause.inactive);
                buttons.next.attr('src', params.img.next.active);
                sldTm = setTimeout(slide, params.slideInterval);
            }

            return true;
        }

        var binds = function() {
            buttons.prev.bind('click', function() {
                if ( (buttons.prev.attr('src') == params.img.prev.inactive)
                    && (current > 1) ) {
                    buttons.prev.attr('src', params.img.prev.active);
                    buttons.pause.attr('src', params.img.pause.inactive);
                    buttons.next.attr('src', params.img.next.inactive);
                    slide();
                }
            });

            buttons.next.bind('click', function() {
                if ( (buttons.next.attr('src') == params.img.next.inactive)
                    && (current < total) ) {
                    buttons.prev.attr('src', params.img.prev.inactive);
                    buttons.pause.attr('src', params.img.pause.inactive);
                    buttons.next.attr('src', params.img.next.active);
                    slide();
                }
            });
            
            buttons.pause.bind('click', function() {
                if ( buttons.pause.attr('src') == params.img.pause.inactive ) {
                    buttons.prev.attr('src', params.img.prev.inactive);
                    buttons.pause.attr('src', params.img.pause.active);
                    buttons.next.attr('src', params.img.next.inactive);
                    clearTimeout(sldTm);
                }
            });
        }

         var slide = function() {
            var forward = buttons.next.attr('src') == params.img.next.active;
            var run = true;

            //            $('#trace').html($('#trace').html() + ' ' + wrp.css('left'));

            if (forward) {
                run = (++ current < total);
                wrp.animate({
                    left: ('-=' + obj.width())
                }, params.animateInterval);
            } else {
                run = (-- current > 1);
                wrp.animate({
                    left: ('+=' + obj.width())
                }, params.animateInterval);
            }

            buttons.label.html(current + '/' + total);

            if (run) {
                sldTm = setTimeout(slide, params.slideInterval);
            } else {
                buttons.pause.click();
            }
        }
			
        if (jQuery.browser.opera) {
            setTimeout(init, 10);
            return true;
        } else {
            return init();
        }
    }
})(jQuery);



(function($){
    $.fn.sc_slider2 = function(paramsInner){

        var obj = this;
        obj.css('overflow', 'hidden');
        
        var paramsDefault = {
            img: {
                next : {
                    active: "img/hid.gif",
                    inactive: 'img/hid.gif'
                },
                prev : {
                    active: "img/hid.gif",
                    inactive: 'img/hid.gif'
                },
                pause : {
                    active: "img/hid.gif",
                    inactive: 'img/hid.gif'
                }
            },
            titles: {
                next: "Next",
                prev: "Back",
                pause: "Pause"
            },
            slideInterval: 3000,
            animateInterval: 1000,
            autostart: false
        };

        var params = $.extend(paramsDefault, paramsInner);

        var sldTm = null;
        var current = 1;
        var total = 0;
        var buttons = null;
        var wrp = null;

        var init = function() {
            var buttons_code = '<div id="' + obj.attr('id') + '_sc_slider_buttons"><br />'
            + '<span style="padding: 0px 0px 0px 5px;'
            + 'color: #fff"></span>&nbsp;&nbsp;'

            + '<img alt="' + params.titles.prev + '" title="'
            + params.titles.prev + '" src="' + params.img.prev.inactive
            + '" align="absmiddle" id="sc_slider_prev"/> '

            + '<img alt="' + params.titles.pause + '" title="'
            + params.titles.pause + '" src="' + params.img.pause.active
            + '" align="absmiddle" id="sc_slider_pause"/> '

            + '<img alt="' + params.titles.next + '" title="'
            + params.titles.next + '" src="' + params.img.next.inactive
            + '" align="absmiddle" id="sc_slider_next"/> '

            + '</div>'

            obj.html('<div id="' + obj.attr('id') + '_sc_slider_wrapper">'
                + obj.html() + '</div>' + buttons_code);

            buttons_wr = $('#' + obj.attr('id') + '_sc_slider_buttons');

            wrp = $('#' + obj.attr('id') + '_sc_slider_wrapper');
            wrp.css('width', '30000px');
            wrp.css('position', 'relative');
            wrp.css('left', '0px');
            buttons_wr.css('clear', 'both');
            
            if($.browser.msie){
                obj.css('position', 'relative');
            }

            buttons_wr.find('img').css('cursor', 'pointer');

            var nodes = wrp.attr('childNodes');
            for (var i in nodes) {
                if ( ('DIV' == nodes[i].nodeName) || ('div' == nodes[i].nodeName) ) {
                    total ++;
                    $(nodes[i]).css('float', 'left');
                    $(nodes[i]).css('width', obj.css('width'));
                }
            }

            buttons = {
                prev: $(buttons_wr).find('img:eq(0)'),
                pause: $(buttons_wr).find('img:eq(1)'),
                next: $(buttons_wr).find('img:eq(2)'),
                label: $(buttons_wr).find('span')
            }

            buttons.label.html(current + '/' + total);
            binds();

            if (params.autostart) {
                buttons.pause.attr('src', params.img.pause.inactive);
                buttons.next.attr('src', params.img.next.active);
                sldTm = setTimeout(slide, params.slideInterval);
            }

            return true;
        }

        var binds = function() {
            buttons.prev.bind('click', function() {
                if ( (buttons.prev.attr('src') == params.img.prev.inactive)
                    && (current > 1) ) {
                    buttons.prev.attr('src', params.img.prev.active);
                    buttons.pause.attr('src', params.img.pause.inactive);
                    buttons.next.attr('src', params.img.next.inactive);
                    slide();
                }
            });

            buttons.next.bind('click', function() {
                if ( (buttons.next.attr('src') == params.img.next.inactive)
                    && (current < total) ) {
                    buttons.prev.attr('src', params.img.prev.inactive);
                    buttons.pause.attr('src', params.img.pause.inactive);
                    buttons.next.attr('src', params.img.next.active);
                    slide();
                }
            });
            
            buttons.pause.bind('click', function() {
                if ( buttons.pause.attr('src') == params.img.pause.inactive ) {
                    buttons.prev.attr('src', params.img.prev.inactive);
                    buttons.pause.attr('src', params.img.pause.active);
                    buttons.next.attr('src', params.img.next.inactive);
                    clearTimeout(sldTm);
                }
            });
        }

        var slide = function() {
            var forward = buttons.next.attr('src') == params.img.next.active;
            var run = true;

            //            $('#trace').html($('#trace').html() + ' ' + wrp.css('left'));

            if (forward) {
                run = (++ current < total);
                wrp.animate({
                    left: ('-=' + obj.width())
                }, params.animateInterval);
            } else {
                run = (-- current > 1);
                wrp.animate({
                    left: ('+=' + obj.width())
                }, params.animateInterval);
            }

            buttons.label.html(current + '/' + total);

            if (run) {
                sldTm = setTimeout(slide, params.slideInterval);
            } else {
                sldTm = setTimeout(slide_m, params.slideInterval);
            }
        }

		var slide_m = function() {
            var forward = buttons.prev.attr('src') == params.img.prev.active;
            var run = true;

            //            $('#trace').html($('#trace').html() + ' ' + wrp.css('left'));

            if (forward) {
                run = (-- current > 1);
                wrp.animate({
                    left: ('+=' + obj.width())
                }, params.animateInterval);
            } else {
                run = (++current < total);
                wrp.animate({
                    left: ('+=' + obj.width())
                }, params.animateInterval);
            }

            buttons.label.html(current + '/' + total);
			if (run) {
                sldTm = setTimeout(slide_m, params.slideInterval);
            } else {
                sldTm = setTimeout(slide, params.slideInterval);
            }
			
			}
			
        if (jQuery.browser.opera) {
            setTimeout(init, 10);
            return true;
        } else {
            return init();
        }
    }
})(jQuery);
