/*
 * 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 $
 */
jQuery.noConflict();

var jscroller_config;
var jscroller_scroller;
var jscroller_scroller_cont;

var cont_width = 960;

jQuery(document).ready(function($){
   this.defaults = {
     scroller: {
       interval:  0,    // Dont touch !
       refresh:   25,  // Refresh Time in ms
       direction: "left", // down,right,left,up
       speed:     1,    // Set the Scroller Speed
       id:        "#scroller",
       cont_id:   "#scroller_container"
     }
   }

   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) {
      if ( jscroller_scroller.width() < cont_width ) {
		jscroller_scroller.css({position: 'absolute', left: 0, top: 0});
	  }
	  else {
		  jscroller_scroller.css({position: 'absolute', left: 900, 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 a").click(function(){
      window.open(this.href);
      return false;
    });
    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()
   {
      // don't scroll if odds are not wider than container
     if ( scroller_dom = jscroller_getElem(jscroller_scroller.attr("id")) && jscroller_scroller.width() > cont_width ) {
       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(),
         speed      = jscroller_config.scroller.speed,
         p_height   = scroller_dom.offsetHeight,
         p_width    = scroller_dom.offsetWidth,
         direction  = jscroller_config.scroller.direction,
         jscroller  = jscroller_scroller;

     switch(direction) {
       case 'up':
         if (p_top <= -1*p_height) {p_top=min_height;}
         jscroller.css('top',p_top-speed+'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 = document.getElementById("scroller_cont").offsetWidth;
		 }
         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;
     }
    }
	else {
		//$("#tabs .title").text( Math.random() );
		var p_left = cont_width/2 - jscroller_scroller.width()/2
	   jscroller_scroller.css('left', p_left+'px');
	}
   }
});
