
$(document).ready(function(){
	if(self.innerHeight){
		this.defaults = {
			scroller: {
				interval:  0,
				refresh:   4000,
				direction: "up",
				step:     157,
				id:        "#scroller",
				cont_id:   "#scroller_container"
			}
		}
	}else{
		this.defaults = {
			scroller: {
				interval:  0,
				refresh:   4000,
				direction: "up",
				step:     155,
				id:        "#scroller",
				cont_id:   "#scroller_container"
			}
		}
	}

	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});
		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 > div").each(
		function(ind){
			if($(this).children("div").html() == null){
				$(this).remove();
			}
		}
		);

		$("#scroller a").click(function(){
			window.open(this.href);
			return false;
		});

		$("#scroller_container div").mouseover(function(){
			jscroller_stopScroll();
		});

		$("#scroller_container div").mouseout(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() {
		if (scroller_dom = jscroller_getElem(jscroller_scroller.attr("id"))) {
			var
			p_top= Number((/[0-9-,.]+/.exec(jscroller_scroller.css('top'))||0)),
			p_left=Number((/[0-9-,.]+/.exec(jscroller_scroller.css('left'))||0)),
			min_height=jscroller_scroller_cont.height(),
			min_width=jscroller_scroller_cont.width(),
			step=jscroller_config.scroller.step,
			p_height=scroller_dom.offsetHeight,
			p_width=scroller_dom.offsetWidth,
			direction=jscroller_config.scroller.direction,
			jscroller=jscroller_scroller;

			switch(direction) {
				case 'up':
				jscroller_stopScroll();
				if (p_top <= -1*p_height+(step*2)) {
					p_top=min_height+2;
					jscroller.css('top',p_top+'px');

				}

				jscroller.animate({top:p_top-step-2+'px'},999, 'easeInOutCubic');
				jscroller_startScroll();
				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;
			}
		}
	}
});