var dw_fontSizerDX={
sizeUnit: "px",
defaultSize: 14,
maxSize: 17,
minSize: 10,
queryName: "dw_fsz",
queryNum: true,
adjustList: [],
setDefaults: function(unit,dflt,mn,mx,sels){
this.sizeUnit=unit;this.defaultSize=dflt
this.maxSize=mx;this.minSize=mn
if(sels)this.set(dflt,mn,mx,sels)
},
set: function(dflt,mn,mx,sels){
var ln=this.adjustList.length
for(var i=0;sels[i];i++){
this.adjustList[ln+i]=[]
this.adjustList[ln+i]["sel"]=sels[i]
this.adjustList[ln+i]["dflt"]=dflt
this.adjustList[ln+i]["min"]=mn || this.minSize
this.adjustList[ln+i]["max"]=mx || this.maxSize
this.adjustList[ln+i]["ratio"]=this.adjustList[ln+i]["dflt"]/this.defaultSize}
},
init: function(){
if(!document.getElementById || !document.getElementsByTagName)return
var size,sizerEl,i
size=getValueFromQueryString(this.queryName,this.queryNum)
if(isNaN(parseFloat(size))|| size>this.maxSize || size<this.minSize){
size=getCookie("fontSize")
if(isNaN(parseFloat(size))|| size>this.maxSize || size<this.minSize){
size=this.defaultSize}}
this.curSize=this.defaultSize
sizerEl=document.getElementById('sizer')
if(sizerEl)sizerEl.style.display="block"
if(this.adjustList.length==0){
this.setDefaults(this.sizeUnit,this.defaultSize,this.minSize,this.maxSize,['body','td'])}
if(size !=this.defaultSize)this.adjust(size-this.defaultSize)
},
adjust: function(n){
if(!this.curSize)return
var alist,size,list,i,j
if(n>0){
if(this.curSize+n>this.maxSize)n=this.maxSize-this.curSize
}else if(n<0){
if(this.curSize+n<this.minSize)n=this.minSize-this.curSize}
if(n==0)return
this.curSize+=n
alist=this.adjustList
for(i=0;alist[i];i++){
size=this.curSize*alist[i]['ratio']
size=Math.max(alist[i]['min'],size);size=Math.min(alist[i]['max'],size)
list=dw_getElementsBySelector(alist[i]['sel'])
for(j=0;list[j];j++){list[j].style.fontSize=size+this.sizeUnit;}}
setCookie("fontSize",this.curSize,180,"/")
},
reset: function(){
if(!this.curSize)return
var alist=this.adjustList,list,i,j
for(i=0;alist[i];i++){
list=dw_getElementsBySelector(alist[i]['sel'])
for(j=0;list[j];j++){
list[j].style.fontSize=''}}
this.curSize=this.defaultSize
deleteCookie("fontSize","/")}}
function dw_getElementsBySelector(selector){
if(!document.getElementsByTagName)return []
var nodeList=[document],tokens,bits,list,col,els,i,j,k
selector=selector.normalize()
tokens=selector.split(' ')
for(i=0;tokens[i];i++){
if(tokens[i].indexOf('#')!=-1){
bits=tokens[i].split('#')
var el=document.getElementById(bits[1])
if(!el)return []
if(bits[0]){
if(el.tagName.toLowerCase()!=bits[0].toLowerCase())return []}
for(j=0;nodeList[j];j++){
if(nodeList[j]==document || dw_contained(el,nodeList[j]))
nodeList=[el]
else return []}
}else if(tokens[i].indexOf('.')!=-1){
bits=tokens[i].split('.');col=[]
for(j=0;nodeList[j];j++){
els=dw_getElementsByClassName(bits[1],bits[0],nodeList[j])
for(k=0;els[k];k++){col[col.length]=els[k];}}
nodeList=[]
for(j=0;col[j];j++){nodeList.push(col[j]);}
}else{
els=[]
for(j=0;nodeList[j];j++){
list=nodeList[j].getElementsByTagName(tokens[i])
for(k=0;list[k];k++){els.push(list[k]);}}
nodeList=els}}
return nodeList}
function dw_getElementsByClassName(sClass,sTag,oCont){
var result=[],list,i
var re=new RegExp("\\b"+sClass+"\\b","i")
oCont=oCont? oCont: document
if(document.getElementsByTagName){
if(!sTag || sTag=="*"){
list=oCont.all? oCont.all: oCont.getElementsByTagName("*")
}else{
list=oCont.getElementsByTagName(sTag)}
for(i=0;list[i];i++)
if(re.test(list[i].className))result.push(list[i])}
return result}
function getValueFromQueryString(varName,bReturn){
var val=""
if(window.location.search){
var qStr=window.location.search.slice(1)
var ar=qStr.split("&")
var get=[],ar2
for(var i=0;ar[i];i++){
if(ar[i].indexOf("=")!=-1){
ar2=ar[i].split("=")
get[ ar2[0] ]=ar2[1]}}
val=get[varName]
if(!val&&bReturn){
val=qStr}}
return val}
function dw_contained(oNode,oCont){
if(!oNode)return
while(oNode=oNode.parentNode)if(oNode==oCont)return true
return false}
if(!Array.prototype.push){
Array.prototype.push=function(){
for(var i=0;arguments[i];i++)this[this.length]=arguments[i]
return this[this.length-1]}}
String.prototype.normalize=function(){
var re=/\s\s+/g
return this.trim().replace(re," ")}
String.prototype.trim=function(){
var re=/^\s+|\s+$/g
return this.replace(re,"")}
