/*
 * 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 $
 */

$(document).ready(function(){
   this.defaults = {
     scroller: {
       interval:  0,    // Dont touch !
       refresh:   150,  // Refresh Time in ms
       direction: "up", // down,right,left,up
       speed:     5,    // Set the Scroller Speed
       id:        "#scroller-nds",
       cont_id:   "#scroller_container-nds"
     }
   }

   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() {
    if ($("#scroller-nds").height() > ($("#scroller_container-nds").height() )) jscroller_startScroll();
    $("#scroller-nds").css("top",0);
	$("#scroller-nds").hover(
		function () { jscroller_stopScroll();},
		function (){
				document.defaults.scroller.speed=document.defaults.scroller.defspeed;
								
				if ($("#scroller-nds").height() > ($("#scroller_container-nds").height() )) jscroller_startScroll();
		 }
	 );
		
	$("#scroller_container-nds").mousewheel(
			function (objEvent, intDelta) {
				speedsave=document.defaults.scroller.speed;
				document.defaults.scroller.speed=15;
				document.defaults.scroller.direction="up";
				if (intDelta > 0) {
					document.defaults.scroller.direction="down";
				 }
				 
				jscroller_doScroll();
				return false;
			 }
			);
		 
	$("span.ferme").click(
			function() {
				$("#scroller-nds").css("top",0);
				$("div.une #scroller-nds").html(unesave);
				$("div.une").unbind("click");
				return false;
				
			 }
	 );
	
	if ($("#scroller-nds").height() > ($("#scroller_container-nds").height() )) {
	
		$("span.monte").show();$("span.descend").show();
	 }
	$("span.monte").hover( 
			function () {		
				if ($("#scroller-nds").height() > ($("#scroller_container-nds").height() )) {
					document.defaults.scroller.speed=5;
					document.defaults.scroller.direction="up";
					jscroller_startScroll();
				 }
				else {jscroller_stopScroll();} },

				function () {jscroller_stopScroll(); } );
	$("span.descend").hover( 
			function () {
				topscroller=Number((/[0-9-,.]+/.exec(jscroller_scroller.css('top'))||0));
				if ( topscroller < -20 ) {
					document.defaults.scroller.speed=5;
					document.defaults.scroller.direction="down";
					jscroller_startScroll();
				 }
				else {jscroller_stopScroll();} },

				function () {jscroller_stopScroll(); } );
			
		
    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 (jscroller_config.scroller.direction=="up") {
		if (scroller_dom = jscroller_getElem(jscroller_scroller.attr("id"))) {
			if(scroller_dom.offsetHeight+Number((/[0-9-,.]+/.exec(jscroller_scroller.css('top'))||0))<$("#scroller_container-nds").height()) {
				var flag=true;
			 }
		 }
	 }	
    if (jscroller_config.scroller.direction=="down" && Number((/[0-9-,.]+/.exec(jscroller_scroller.css('top'))||0))>-20	) {
		var flag=true;
	 }
	if(flag) {
		if (jscroller_config.scroller.direction=="down") {
			jscroller_config.scroller.direction="up";
		 } else {
			if (jscroller_config.scroller.direction=="up") {
				jscroller_config.scroller.direction="down";
			 }
		}
	 }
	
	
    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(),
      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=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;
     }
    }
   }
});