var pageid="{{page}}";
var submenu="{{submenuname}}";
var nFlag="";     // Not highlighted or selected
var sFlag="-hs";   // Selected menu option
var hFlag="-hs";   // Highlighted menu option
var hsFlag="-hs"; // Highlighted and Selected


function initpage() {
	var i,img,itd,tdarray;

	if (submenu!="") { pageid=submenu.toLowerCase(); }
	else { pageid=pageid.toLowerCase(); }
	selectmnu();

	// PRELOAD ALL ROLLUNDER <TD> TAGS
	tdarray=document.getElementsByTagName('TD');
	for(i=0;i<tdarray.length;i++) {
	   itd=tdarray[i];
	   if(itd.id.substring(0,4).toLowerCase()=="btn_") {
		if (! itd.getAttribute("robase")) {getro(itd);}
		preloadimgs(itd.getAttribute("robase") + nFlag + itd.getAttribute("rosfx"), 
			itd.getAttribute("robase") + sFlag + itd.getAttribute("rosfx"),
			itd.getAttribute("robase") + hFlag + itd.getAttribute("rosfx"), 
			itd.getAttribute("robase") + hsFlag + itd.getAttribute("rosfx"));
	   }
	}

	// PRELOAD ALL ROLLOVER IMAGES
	for(i=0;i<document.images.length;i++) {
	   img=document.images[i];
	   if(img.id.substring(0,4).toLowerCase()=="btn_") {
		if (! img.getAttribute("robase")) {getro(img);}
		preloadimgs(img.getAttribute("robase") + nFlag + img.getAttribute("rosfx"), 
			img.getAttribute("robase") + sFlag + img.getAttribute("rosfx"),
			img.getAttribute("robase") + hFlag + img.getAttribute("rosfx"), 
			img.getAttribute("robase") + hsFlag + img.getAttribute("rosfx"));
	   }
	}

	selectmnu();
	searchinit();
	MenuTimerSCR(WaitA); //*** (FORCPR) Initiate scrolling
}

function preloadimgs() {
  var doc=document,j; 
  if(doc.images){
    if(!doc.imgss) doc.imgss=new Array();
    var i,ln=doc.imgss.length,k=preloadimgs.arguments; 
    for(i=0; i<k.length; i++) {
      doc.imgss[ln]=new Image; doc.imgss[ln++].src=k[i];}
  }
}

function selectmnu() {
   var sbtn;
   sbtn=document.getElementById("btn_" + pageid);
   if (sbtn) { rolloff(sbtn); }
}

function rollon(nthis) {
   var nsrc;
   if (! nthis.getAttribute("robase")) {getro(nthis);}
   if (nthis.getAttribute("roname")==pageid) {
	  nsrc=nthis.getAttribute("robase") + hsFlag + nthis.getAttribute("rosfx"); }
   else { nsrc=nthis.getAttribute("robase") + hFlag + nthis.getAttribute("rosfx"); }
   if (nthis.tagName=="IMG") { nthis.src=nsrc; }
   else { nthis.style.backgroundImage=nsrc; nthis.className="roll";}
   //*** Flyouts...
   k=rollon.arguments;
   if (k.length>=2) { if (k[1].length>=1) {drawmenu(nthis,k[1]);}}
}

function rolloff(nthis) {
   var nsrc;
   if (! nthis.getAttribute("robase")) {getro(nthis);};
   if (nthis.getAttribute("roname")==pageid) {
	  nsrc=nthis.getAttribute("robase") + sFlag + nthis.getAttribute("rosfx"); }
   else { nsrc=nthis.getAttribute("robase") + nFlag + nthis.getAttribute("rosfx"); nthis.className=""; }
   if (nthis.tagName=="IMG") { nthis.src=nsrc; }
   else { nthis.style.backgroundImage=nsrc; }
   //*** Flyouts...
   MenuTimer();
}

function SubRollOn(nthis) {
   //*** Flyouts...
   var k;
   k=SubRollOn.arguments;
   if (k.length>=2) { if (k[1].length>=1) {drawmenu(nthis,k[1]);}}
}
function SubRollOff(nthis) {
   //*** Flyouts...
   MenuTimer();
}


function getro(nthis) {
   var p1,p2,p3,nm,flaglen,tid;
   if (nthis.tagName=="IMG") { nm=nthis.src + ""; }
   else { nm=nthis.style.backgroundImage + ""; }
   p1=nm.lastIndexOf("/");
   p2=nm.lastIndexOf(".");

   flaglen=-1;
   if (p1>0) { if (p2<p1) {p2=-1;} }
   if (p2>=0) {
	nthis.setAttribute("rosfx", nm.substring(p2));
	nm=nm.substring(0,p2);
	}
   else { nthis.setAttribute("rosfx", ""); }

   nm=rmflag(nm,nFlag); 
   nm=rmflag(nm,sFlag); 
   nm=rmflag(nm,hFlag); 
   nm=rmflag(nm,hsFlag);

   tid=nthis.id;
   if (tid.substring(0,4).toLowerCase()=="btn_") {tid=tid.substring(4);}
   nthis.setAttribute("roname", tid.toLowerCase());
   
   nthis.setAttribute("robase", nm);
}

function rmflag(rostring,roflag) {
	var s,l1,l2;

	s=rostring;
	if (s="") {return rostring;}
	l1=s.length;
	l2=roflag.length;
	if (l1<l2) {return rostring;}
	
	if (rostring.substring(l1-l2)==roflag) {return rostring.substring(0,l1-l2);}
	return rostring;
}

   // *** Swap main image - use SRC of thumbnail image, but
   // *** replace the _T with _F (just before the .gif or .jpg suffix)
   // !!! MODIFY-HERE - Unique/special coding for Webb Building Group website. !!!
   function changenow(tImg) {
	var eChg,sSrc,sNew,p,l,l2;
	eChg=document.getElementById("changeimg");
	sSrc=tImg.src + "";
	l=sSrc.length;
	p=sSrc.lastIndexOf(".");
	if(p>=0) {
		sNew=sSrc.substring(0,p-2) + sSrc.substring(p);
		}
	else { sNew=sSrc; }
	eChg.src=sNew;
   }

// function unchange(tLnk) {
// 	var eChg;
// 	rolloff(tLnk);
// 	eChg=document.getElementById("changeimg");
// 	eChg.src=eChg.getAttribute("src2");
// }

function preload_changenow() {
	var i,lnk;

	// PRELOAD ALL ROLLOVER IMAGES
	for(i=0;i<document.images.length;i++) {
	   lnk=document.images[i];
	   if(lnk.id.substring(0,7).toLowerCase()=="btn_chg") {
		preloadimgs(lnk.getAttribute("src2"));
	   }
	}
}


function GotoPage(sURL) {
	var k;
	k=GotoPage.arguments;
	if(k.length>1) { if(k[1]=='b') { window.open(sURL,'_blank'); }}
	else { window.location.href=sURL; }
	return false;
}


var foto1;

function pfoto(img){
  foto1= new Image();
  foto1.src=(img);
  Controlla(img);
}
function Controlla(img){
  if((foto1.width!=0)&&(foto1.height!=0)){
    ppup(img,foto1.width+20,foto1.height+20);
  }
  else{
    funzione="Controlla('"+img+"')";
    intervallo=setTimeout(funzione,20);
  }
}

// ppup(url[,width[,height]])
function ppup(url){
	var pp, k, x1, x2, t;
	k=ppup.arguments;
	x1=500;
	x2=550;
	if(k.length>1) {x1=k[1];}
	if(k.length>2) {x2=k[2];}
	pp=window.open(url,'ppupwindow',
	  'menubar=no,status=no,width='+x1+',height='+x2+',toolbar=no,scrollbars=yes,location=no,directories=no,resizable=yes');
	pp.moveTo((screen.width-x1)/2,(screen.height-x2)/2);
	pp.focus();
}

//************************************** FLYOUT MENUS
var ddWidth=155,ddOverlap=10;
window.onload=drawmenu;

function drawmenu(dmenu,id) {
var d,repo,vpos,vleft,safety;
var dsmenu,cnt,idx,lng1,zNodes;
var dpar=null;
var mnu="";

ResetMenuTimer();

// *** Find ID of item.
dpar=dmenu;
safety=99;
while (dpar) {
	if (dpar.id) {mnu=dpar.id + 'here!';break;}
	else {dpar=dpar.parentNode;}
	safety--;
	if (safety<=0) {mnu='SAFETY!';break;}
	}
dpar=null;

repo=true;
vpos=0;
vleft=0;
dpar=dmenu;
safety=99;

if (dmenu) {
  while (dpar) {
	vpos=vpos+dpar.offsetTop;
	vleft=vleft+dpar.offsetLeft;
	dpar=dpar.offsetParent;
	safety--;
	if (safety<=0) {break;}
	}

  if (id.indexOf(".")>0) {  // *** this is a sub-menu item
    vleft=vleft+ddWidth-ddOverlap;
    }
  else {  // *** this is a main-menu item
	vpos=vpos+dmenu.offsetHeight;
    }

  // Don't reposition yourself   
  if (dmenu.id==id) {repo=false;}
  }

lng1=String(id).length;

dsmenu = document.getElementById("smenus");
if (dsmenu) {
	zNodes=dsmenu.childNodes;
	cnt=zNodes.length;
	for(idx=0;idx<cnt;idx++) {
	  d=zNodes[idx];
	  if (d.tagName) {  // *** filter out non-elements
		if (d.id) {
		 if (d.id == id) {
			d.style.display='block';
			if (repo==true) {
				d.style.top=vpos + 'px';
				d.style.left=vleft + 'px';
				d.style.width=ddWidth + 'px';
				}
			} // *** if (d.id == id)
		 else {
		  match=false;
		  if (lng1>0) {
		    var s1,s2;
		    //*** Check if this menu is a parent *or child* (left part matches) - if so, don't make it dissappear
		    lng=d.id.length;
		    if (lng1<lng) {lng=lng1;}
		    if (lng>0) {
			s1="" + String(id).substring(0,lng);
			s2="" + String(d.id).substring(0,lng);
			// *** If the first part of the strings do not match make menu dissapear.
		  	if (s1 != s2) { d.style.display='none'; }
			//else {alert('for(' + id + '),substr(' + id.substring(0,lng) + ')=id(' + d.id + ')');}
			} // *** if (lng>0) 
		     } // *** if (lng1>0)

		  } // else (d.id == id)

		  

		 } //*** if(d.id)
	  } //*** if (d.tagName)
	} //*** for (idx)
} // *** if (dsmenu)

function sdrawmenu(id,smenu,ditem) {
	var mnu=document.getElementByID(smenu);
	if (mnu) {drawmenu(id,mnu,ditem);}
	else {drawmenu(id,nothing,ditem);}
	}
}

var TimerID=-1;

function MenuTimer() {
	// Set timer to check the filter value every .5 seconds ...
	ResetMenuTimer();
	TimerID = setInterval("CloseMenus();",500);
   }

   function ResetMenuTimer() {
	// Reset timer
	if (TimerID != -1) {
		// Clear Timer
		clearInterval(TimerID);
	}
   }

   function CloseMenus() {
	var dsmenu,zNodes,cnt,d;

	ResetMenuTimer();

	dsmenu = document.getElementById("smenus");
	if (dsmenu) {
	  zNodes=dsmenu.childNodes;
	  cnt=zNodes.length;
	  for(idx=0;idx<cnt;idx++) {
	    d=zNodes[idx];
	    if (d.tagName) {  // *** filter out non-elements
		d.style.display='none';
		} //*** if (d.tagName)
	    } //*** for (idx)
	  } // *** if (dsmenu)

	}
	
	// ********************** SCROLL MENU (FORCPR)
var TimerSCR=-1;
var ModeSCR="A";
var WaitA=4500;
var WaitV=1000;
var scrPct=1;
var scrStep=1;
var scrStart=80;
var scrStop=0;
var prCount=-1;
var prNext=1;
var prPrefix="bnr";

function MenuTimerSCR(Duration) {
	// Set timer to check the filter value every .5 seconds ...
	ResetMenuTimerSCR();
	TimerSCR = setInterval("TimerEventSCR();",Duration);
   }

   function ResetMenuTimerSCR() {
	// Reset timer
	if (TimerSCR != -1) {
		// Clear Timer
		clearInterval(TimerSCR);
	}
   }
   
   function TimerEventSCR() {
     var blkdiv1,prObj,prObj2,prParent,prCurr,pTmp;
	 if (prCount<0) { // Count the number of cprpr blocks...
	    prCount=1;
	    do {
		  prObj=document.getElementById(prPrefix + prCount);
		  if (!(prObj)) { break; }
		  prCount++;
		  if (prCount>9999) {break;}  //Safety net
		  } while(1);
		prCount=prCount-1;
		prNext=prCount;
		}
     if (ModeSCR=="A") { // We just completed the sit-still duration (A)... time to start scrolling
	     // Move last prBlock to front...
		 prCurr=prNext+1;
		 if (prCurr>prCount) {prCurr=1;}
		 prObj=null;
		 prObj=document.getElementById(prPrefix + prNext);
		 prObj2=document.getElementById(prPrefix + prCurr);
		 pTmp=prObj2.offsetTop;
		 if ((prObj) && (prObj2)) {
		   prParent=prObj.parentNode;
		   if (prParent) { prParent.insertBefore(prObj,prObj2); }
		   }
		 prNext=prNext-1;
		 if (prNext<1) {prNext=prCount;}
		 //alert("offset=" + prObj2.offsetTop);
		 scrStart=prObj2.offsetTop - pTmp;
		 
		 // Start the scroll process
	     WaitV=300;
		 ModeSCR="B";
		 scrPct=.5;
		 scrStep=.5;
		 //blkdiv1=document.getElementById("cprpr1");
		 //if (blkdiv1) { scrStart = blkdiv1.style.height; alert('height=' + scrStart);}
		 ScrollTo(-scrStart+((scrStart-scrStop)*scrPct/100));
		 MenuTimerSCR(WaitV);
		 return;
		 }
	 if	(ModeSCR=="B") { // We are speeding up in the downward motion...
	    if (scrPct>=35) {ModeSCR="C";} // Time to start slowing down.
		WaitV=WaitV-15; if (WaitV<100) {WaitV=100;}
		scrPct=scrPct+scrStep;
		scrStep=scrStep * 1.2;
		ScrollTo(-scrStart+((scrStart-scrStop)*scrPct/100));
		MenuTimerSCR(WaitV);
		if	(ModeSCR=="B") {return;}
	    }
	 if (ModeSCR=="C") { // We are still scrolling downward, but slowing down...
	    if (scrPct>=100) {ModeSCR="A"; MenuTimerSCR(WaitA); return;}
		if (scrPct>=80) {WaitV=WaitV+15; if (WaitV>300) {WaitV=300;}}
		scrPct=scrPct+scrStep; if (scrPct>=100) {scrPct=100;}
		scrStep=scrStep * .85 ; if (scrStep<.5) {scrStep=.5;}
		ScrollTo(-scrStart+((scrStart-scrStop)*scrPct/100));
		MenuTimerSCR(WaitV);
		}
   }
   
   function ScrollTo(scrTop) {
     var scrBlock;
	scrBlock=document.getElementById("bnrScroll");
	if (scrBlock) {
		scrBlock.style.top=Math.round(scrTop) + "px";
		}
   }
   
   var searchtimer=-1;
   
   function searchfocus(itm){
	if(itm.value=="Search\u2026") {
		itm.value="";
		itm.setAttribute("class","search2");
		itm.className="search2";
	}
}

function searchblur(itm){
	if(itm.value=="") { searchinit(); }
}

function searchinit() {
	var itm;
	itm=document.getElementById("srchbox");
	if(itm) {itm.setAttribute("class","search1");
		itm.className="search1";
		itm.value="Search\u2026";
		}
}

function searchkey(itm) {
  var k;
  try {if(event.charCode) k = event.charCode;} catch(err) {}
  try {if(event.keyCode) k = event.keyCode;} catch(err) {} //IE
  try {if(event.which) k = event.which;} catch(err) {} //firefox
  if (k == 13) { dosearch(5); return false; } //Disable Enter key
  if (itm.value.length>1) {dosearch(1000);}
  return true;
}

function searchclick() {
  dosearch(5); return false;
}

function resetsearch() {
	if (searchtimer != -1) {
		clearInterval(searchtimer);
		searchtimer=-1;
	}
}

function dosearch(dur) {
  	resetsearch();
	searchtimer = setInterval("searchnow();",dur);
}

function searchnow() {
  var srchbox,url;
  resetsearch();

  srchbox=document.getElementById("srchbox");
  if (!srchbox) { return false; }
  url="/news/searchr.ashx?contentonly=true&search=" + srchbox.value;
  getContents(url);
    }
	
function getContents(getURL) {
  var httpRequest;

        if (window.XMLHttpRequest) { // Mozilla, Safari, ...
            httpRequest = new XMLHttpRequest();
            if (httpRequest.overrideMimeType) {
                httpRequest.overrideMimeType('text/xml');
                // See note below about this line
            }
        } 
        else if (window.ActiveXObject) { // IE
            try {
                httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
                } 
                catch (e) {
                           try {
                                httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
                               } 
                             catch (e) {}
                          }
                                       }

        if (!httpRequest) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        httpRequest.onreadystatechange = function() { showContents(httpRequest); };
        httpRequest.open('GET', getURL, true);
        httpRequest.send(null);

    }

    function showContents(httpRequest) {
		var contentarea;
		contentarea=document.getElementById("content_area");
		
        if (httpRequest.readyState == 4) {
            if (httpRequest.status == 200) {
                if(contentarea) { contentarea.innerHTML=httpRequest.responseText; }
            } else {
				// Problem with search.
				if(contentarea) { contentarea.innerHTML="<br><br>A problem occured with the search function. We apologize for the inconvenience.<br><br><br>"; }
				}
        }

    }
	
function showarticle(sArticle) {
  var url;

  url="/news/ad.ashx?contentonly=true&article=" + sArticle;
  getContents(url);
    }

