/*
 * jScroller 0.3 - Scroller Script
 *
 * Copyright (c) 2007 Markus Bordihn (http://markusbordihn.de)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * $Date: 2007-11-15 13:00:00 +0100 (Thu, 15 Nov 2007) $
 * $Rev: 0.3 $
 */

var ScrollerSpeed;

$(document).ready(function() {
    this.defaults = {
        scroller: {
            interval: 0,    // Dont touch !
            refresh: 25,  // Refresh Time in ms
            direction: "up", // down,right,left,up
            speed: ScrollerSpeed,    // Set the Scroller Speed
            id: "#scroller",
            cont_id: "#scroller_container",
            copyspeed: ScrollerSpeed
        }
    }

    var jscroller_config = $.extend(this.defaults), jscroller_scroller = $(jscroller_config.scroller.id), jscroller_scroller_cont = $(jscroller_config.scroller.cont_id);

    if (jscroller_scroller && jscroller_scroller_cont) {
        jscroller_scroller.css({ position: 'absolute', left: 0, top: 0 });
        setTimeout(function() { jscroller_init(); }, 1000);
        //jscroller_init();
    }

    function jscroller_startScroll() {
        if (!jscroller_config.scroller.interval) {
            jscroller_config.scroller.interval = window.setInterval(jscroller_doScroll, jscroller_config.scroller.refresh);
        }
    }

    function jscroller_stopScroll() {
        if (jscroller_config.scroller.interval) {
            window.clearInterval(jscroller_config.scroller.interval);
            jscroller_config.scroller.interval = 0;
        }
    }

    function jscroller_init() {
        $("#scroller a").click(function() {
            window.open(this.href);
            return false;
        });
        $("#scroller").hover(function() {
            jscroller_stopScroll();
        }, function() {
            jscroller_startScroll()
        });
        jscroller_scroller_cont.css('overflow', 'hidden');
        if (!jscroller_config.scroller.interval) {
            //            if (window.attachEvent) {
            //                window.attachEvent("onfocus", jscroller_startScroll);
            //                window.attachEvent("onblur", jscroller_stopScroll);
            //                window.attachEvent("onresize", jscroller_startScroll);
            //                window.attachEvent("onscroll", jscroller_startScroll);
            //            }
            //            else if (window.addEventListener) {
            //                window.addEventListener("focus", jscroller_startScroll, false);
            //                window.addEventListener("blur", jscroller_stopScroll, false);
            //                window.addEventListener("resize", jscroller_startScroll, false);
            //                window.addEventListener("scroll", jscroller_startScroll, false);
            //            }

            jscroller_startScroll();
           // if ($.browser.msie) { window.focus() }

        }
    }

    function jscroller_getElem(Elem) {
        return (typeof Elem == "string" && document.getElementById) ? document.getElementById(Elem) : Elem;
    }
    function jscroller_doScroll() {
        var browser = navigator.userAgent;
        if (scroller_dom = jscroller_getElem(jscroller_scroller.attr("id"))) {
            var p_top = Number((/[0-9-,.]+/.exec(jscroller_scroller.css('top')) || 0));
            var p_left = Number((/[0-9-,.]+/.exec(jscroller_scroller.css('left')) || 0));
            var min_height = jscroller_scroller_cont.height();
            var min_width = jscroller_scroller_cont.width();
            //speed = jscroller_config.scroller.speed,
            var p_height = scroller_dom.offsetHeight;
            var p_width = scroller_dom.offsetWidth;
            var direction = jscroller_config.scroller.direction;
            var jscroller = jscroller_scroller;

            switch (direction) {
                case 'up':
                    if (p_top <= -1 * p_height) {
                        //p_top = min_height;
                        jscroller.css('top', 0 + 'px');
                        jscroller_config.scroller.copyspeed = 0
                        setTimeout(function() { eval(jscroller_config.scroller.copyspeed = ScrollerSpeed); }, 2000);
                    }
                    else
                        jscroller.css('top', p_top - jscroller_config.scroller.copyspeed + 'px');

                    break;
                case 'right':
                    if (p_left >= min_width) { p_left = -1 * p_width; }
                    jscroller.css('left', p_left + speed + 'px');
                    break;
                case 'left':
                    if (p_left <= -1 * p_width) { p_left = min_width; }
                    jscroller.css('left', p_left - speed + 'px');
                    break;
                case 'down':
                    if (p_top >= min_height) { p_top = -1 * p_height; }
                    jscroller.css('top', p_top + speed + 'px');
                    break;
            }
        }
    }
});