﻿//Block slider
var timerlen = 3;
var slideAniLen = 900;
var scrollWrap = true;

var timerID = new Array();
var startTime = new Array();
var startPos = new Array();
var obj = new Array();
var endPos = new Array();
var moving = new Array();
var dir = new Array();
var scrollHeight = new Array();
var lastPos = new Array();
var lastElapsed = new Array();
var testvar = "";
image1 = new Image();
image1.src = '/_images/nfp/scrollbarani.gif';

function scrollDown(objname, blnAuto){
  try{
    document.getElementById('scrollbargif').src = '/_images/nfp/scrollbarani.gif';
    document.getElementById('scrolldowngif').src = '/_images/nfp/scrolldownover.gif';
  }
  catch(err){}
  var crossfader;
  try{
    crossfader = cr.IsFading;
  }catch(err){
    crossfader = false;
  } 
  if(moving[objname] || crossfader)
    return;
  moving[objname] = true;
  dir[objname] = "down";
  startScroll(objname);
  if(!blnAuto){
    stopScroll();
    setPause(objname);
  }
}

function scrollUp(objname){
//alert(cf.IsFading);
  var crossfader;
  try{
    crossfader = cr.IsFading;
  }catch(err){
    crossfader = false;
  } 
  if(moving[objname] || crossfader)
    return;
  if(document.getElementById(objname).scrollTop  <= parseInt(document.getElementById(objname).style.height)){
    document.getElementById(objname).scrollTop = document.getElementById(objname).scrollHeight - parseInt(document.getElementById(objname).style.height);
    scrollUp(objname);
    return; // do not scroll up since it is blank
  }
  moving[objname] = true;
  dir[objname] = "up";
  startScroll(objname);
  stopScroll();
  setPause(objname);
}

function startScroll(objname){
  obj[objname] = document.getElementById(objname);
  scrollHeight[objname] = parseInt(obj[objname].style.height);
  startPos[objname] = obj[objname].scrollTop;
  if(dir[objname] == "down"){
    endPos[objname] = startPos[objname] + scrollHeight[objname];
  }else{
    endPos[objname] = startPos[objname] - scrollHeight[objname];
  }
  startTime[objname] = (new Date()).getTime();
  timerID[objname] = setInterval('scrollTick(\'' + objname + '\');',timerlen);
}

function scrollTick1(objname){
  var elapsed = (new Date()).getTime() - startTime[objname];
  if (elapsed > slideAniLen){
    endScroll(objname);
  }else{
    var d =Math.round(elapsed / slideAniLen * scrollHeight[objname] + startPos[objname]);
    if(dir[objname] == "up"){
      var d =Math.round((slideAniLen -elapsed) / slideAniLen * scrollHeight[objname] );
      //d = -20;
      d = endPos[objname] + d;
    }
    obj[objname].scrollTop = d;
    if(obj[objname].scrollTop == lastPos[objname] || obj[objname].scrollTop >= (obj[objname].scrollHeight - 1.5*scrollHeight[objname]) && scrollWrap && dir[objname] == "down"){  
      endScroll(objname);
    }else{
      lastPos[objname] = obj[objname].scrollTop;
    }
  }
  return;
}

function scrollTick(objname){
  var elapsed = (new Date()).getTime() - startTime[objname];
  if (elapsed > slideAniLen){
    endScroll(objname);
  }else{
    var d =Math.round(elapsed / slideAniLen * scrollHeight[objname] + startPos[objname]);
    //d = 20;
    if(dir[objname] == "up"){
      var d =Math.round((slideAniLen -elapsed) / slideAniLen * scrollHeight[objname] );
      //d = -20;
      d = endPos[objname] + d;
    }
    obj[objname].scrollTop = d;
    testvar += elapsed + "****" + obj[objname].scrollTop + "||||||" + endPos[objname] + "\n";    
    if((obj[objname].scrollTop == lastPos[objname] || obj[objname].scrollTop >= (obj[objname].scrollHeight - scrollHeight[objname])) && scrollWrap && dir[objname] == "down" && elapsed != lastElapsed[objname]){  
      endScroll(objname);
      
    }else{
      lastPos[objname] = obj[objname].scrollTop;
      lastElapsed[objname] = elapsed;
    }
  }
  return;
}

function endScroll(objname){
//alert(testvar);
  testvar="";
  clearInterval(timerID[objname]); 
  obj[objname].scrollTop = endPos[objname];
  blnautoscroll = false; 
  
// alert(obj[objname].scrollHeight - scrollHeight[objname] + "," + obj[objname].scrollTop);
  
  if(obj[objname].scrollTop < endPos[objname] ||  obj[objname].scrollTop >= (obj[objname].scrollHeight - scrollHeight[objname]) && scrollWrap && dir[objname] == "down"){ 
    //alert('in the sepcial');
    obj[objname].scrollTop = 0;
    blnautoscroll = true; 
  }
  //alert(obj[objname].scrollTop);
   // alert(obj[objname].offsetHeight + ' ' + obj[objname].scrollTop);
  try
  {
    document.getElementById('scrollbargif').src = '/_images/nfp/scrollbarblip.gif';
    document.getElementById('scrolldowngif').src = '/_images/nfp/scrolldownani.gif';
  }
  catch(err){}
  delete(moving[objname]);
  delete(timerID[objname]);
  delete(startTime[objname]);
  delete(endPos[objname]);
  delete(obj[objname]);
  delete(dir[objname]);
  if(blnautoscroll)
    scrollDown(objname);  
  return;

}
function autoScroll(objname){
  t1 = setInterval('scrollDown(\'' + objname + '\',true);',10000);
}
function setPause(objname){
  clearInterval(t1)
  t1=setTimeout("autoScroll(\'" + objname + "\')",10000);  
}
function stopScroll(){
  clearTimeout(t1);
}
autoScroll('announdiv');