var xmlhttp=false;
var CONTAINER_CHILDPAGE="childPage";
var childPageOnLoad;
var crumbNavArray = new Array();
var strCrumbNav = "";
var navTopSelected = null;
var newWin;
var repeatingImageDisplay="";
var repeatingImagePath="";
var principalPage="http://www.unit5.org/brigham/schoonover.htm"; 
var principalImagePath="../images/schoonoverImage.jpg";
var brighamMapUrl="http://maps.google.com/maps?f=q&hl=en&geocode=&q=brigham+elementary+school+bloomington,+IL&jsv=138f&sll=37.0625,-95.677068&sspn=32.114675,78.75&ie=UTF8&ei=Cek5Sa_-C4-INq2V5PoH&sig2=0FAWixezf7X8vthzKppxmw&cd=1&cid=40441609,-88991115,14345651047164835249&li=lmd&z=14&t=m";
var current_boxdiv = null;
var SYNCH = 0;
var ASYNCH = 1;
//overidding settings for overlib script
FGCOLOR="";
TEXTSIZE="";
document.onkeydown = keyDownFired;

//override overdiv functions
function overlib(){
return(false);
}
function nd(){
return(false);
}

/*@cc_on @*/
/*@if (@_jscript_version >= 5)
// JScript gives us Conditional compilation, we can cope with old IE versions.
// and security blocked creation of the objects.
try {
 xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
 try {
  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 } catch (E) {
  xmlhttp = false;
 }
}
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
try {
	xmlhttp = new XMLHttpRequest();
} catch (e) {
	xmlhttp=false;
}
}
if (!xmlhttp && window.createRequest) {
try {
	xmlhttp = window.createRequest();
} catch (f) {
	xmlhttp=false;
}
}

function loadDynamicContent(){
    buildQuickLinks();
    buildNavCalendar();
    navigateTo(startPage);
}

function buildQuickLinks(){
  var i;
  var quickLinksContainer=document.getElementById('selQuickLinks');
  var optionTag;
  var optionText;
  optionTag=document.createElement("OPTION");
  optionText=document.createTextNode("QUICK LINKS");
  optionTag.appendChild(optionText);
  quickLinksContainer.appendChild(optionTag);

  for (i=0;i<pageArray.length-1;i++){
    if(pageArray[i].getQuickLink()){
       optionTag=null;
       optionText=null;
       optionTag=document.createElement("OPTION");
       optionTag.value=pageArray[i].getShortName().toLowerCase();
       optionText=document.createTextNode(pageArray[i].getDisplayName().toUpperCase());
       optionTag.appendChild(optionText);
       quickLinksContainer.appendChild(optionTag);
     } 
    }
}

function buildNavCalendar(){
  var calUrl = "http://" + document.location.hostname + "/calendar/brigham/minical.php";
  loadContainer(calUrl, "navCalendar", SYNCH);
}

function buildLeftNav(page){
  var navContainer=document.getElementById('navleft');
  var navMarkUp;
  var navItemArray = getPageData(page,"navitems").split("!");
  navMarkUp = "<ul id=\"navitems\">";
  navMarkUp += "<li class=\"whitebutton\" onmouseout=\"navRolloff(this);\" onmouseover=\"navRollover(this);\" onclick=\"navButtonClick('left', this,'main');\">Home</li>";
  for (j=0;j<navItemArray.length-1;j++){
    if(getPageData(navItemArray[j].toLowerCase(),"launch")=="i"){
       navMarkUp += "<li class=\"whitebutton\" onmouseout=\"navRolloff(this);\" onmouseover=\"navRollover(this);\" onclick=\"navButtonClick('left', this,'";
       navMarkUp += getPageData(navItemArray[j].toLowerCase(),"shortname");
       navMarkUp += "')\">";
      }
    else {
       navMarkUp += "<li class=\"whitebutton\" onmouseout=\"navRolloff(this);\" onmouseover=\"navRollover(this);\" onclick=\"navButtonClick('left', this,'";
       navMarkUp += getPageData(navItemArray[j].toLowerCase(),"path");
       navMarkUp += "',true)\">";
       }      
    navMarkUp += getPageData(navItemArray[j].toLowerCase(),"displayname");
    navMarkUp += "</li>";
  }
  navMarkUp += "</ul>";
  navContainer.innerHTML=navMarkUp;

}


function navigateToExternal(url) {
  var urlToLaunch = getPageData(url,"path");

   //check for open popupbox before navigating
   forcePopUpBoxClose();

   //lookup url
   if (urlToLaunch==null) urlToLaunch=url;   

   newWin=window.open("",'brigham');
   if (newWin!==null && !newWin.closed) {newWin.close();}

   newWin=window.open(urlToLaunch,'brigham');
   if (window.focus && newWin!==null) {newWin.focus();}
   return newWin;

}

function navigateTo(page){
      var url=getPageData(page,"path"); 

      if ((page.toLowerCase()=="main") && (navTopSelected !== null)){
           navTopSelected.className="whitebutton";
           navTopSelected=null;
       }
     //check for open popupbox before navigating
      forcePopUpBoxClose();
      buildLeftNav(page);
      buildCrumbNav(page);
      getNewImage();
      buildCrumbMarkup();
      if (url!==null)
         loadContainer(url,CONTAINER_CHILDPAGE, ASYNCH);   
      else
         alert("Page not found...");

}


function getPageData(page,dataIn){
  for (k=0;k<(pageArray.length);k++){
   if (pageArray[k].shortname.toLowerCase()==page.toLowerCase()){
     switch (dataIn.toLowerCase())
       {
       case "path":
         return (pageArray[k].getPath());
         break;    
      case "shortname":
         return (pageArray[k].getShortName());
         break;    
      case "displayname":
         return (pageArray[k].getDisplayName());
         break;    
      case "launch":
         return (pageArray[k].getLaunch());
         break;    
      case "navitems":
         return (pageArray[k].getNavItems());
         break;    

       default: break;
      } 
   }
 } 
 return(null);
}

function buildCrumbNav(page){

  var mainNavPage=false;
  var pageFoundElement=0;
  var crumbCnt;
  if (page.toLowerCase()=="main"){
      crumbNavArray=new Array("main");
      return(null);
  }

  if (page.toLowerCase()=="students" || page.toLowerCase()=="parents" || page.toLowerCase()=="school" || page.toLowerCase()=="contacts"){
     mainNavPage=true;
   }

  //if main navigation page chosen, reset crumb trail to home > "main nav page".
  if (mainNavPage){
      crumbNavArray=new Array("main",page);
      return(null);
   }

  for (crumbCnt=0;crumbCnt<crumbNavArray.length;crumbCnt++){
    if (crumbNavArray[crumbCnt].toLowerCase()==page.toLowerCase()) {
       pageFoundElement=crumbCnt;
       crumbCnt=crumbNavArray.length;
    }
  }
   //page aleady exists in crumb trail
  if (pageFoundElement>0){
     var tmpArray=new Array();
     for(crumbCnt=0;crumbCnt<=pageFoundElement;crumbCnt++){
       tmpArray[crumbCnt]=crumbNavArray[crumbCnt];
     }
     crumbNavArray=tmpArray;
   }
   //add another crumb to the trail
   else {
     crumbNavArray[crumbNavArray.length]=page;
   }
}

function buildCrumbMarkup(){
    strCrumbNav="";
    if (crumbNavArray.length>0){
      strCrumbNav="<ul>";
      for (crumbCnt=0;crumbCnt<crumbNavArray.length;crumbCnt++){
           if (crumbCnt==(crumbNavArray.length-1))
                strCrumbNav+="<li><a href=\"javascript:navigateTo(\'" + crumbNavArray[crumbCnt] + "\')\">" + getPageData(crumbNavArray[crumbCnt],'displayname') + "</a> </li>";
           else strCrumbNav+="<li><a href=\"javascript:navigateTo(\'" + crumbNavArray[crumbCnt] + "\')\">" + getPageData(crumbNavArray[crumbCnt],'displayname') + "</a>&nbsp; > </li>";
        } 
      strCrumbNav+="</ul>";
     } 
}


function loadContainer(url, containerID, callMode, queryString) {
   var element = document.getElementById(containerID);

   if (queryString==null || queryString=="") queryString="";
   element.innerHTML = "<img src='../images/bobcat_loading_tracks.gif'></img>";
   xmlhttp.open("GET", url + queryString, callMode);

   if(callMode) {
      xmlhttp.onreadystatechange = function () {  
         if (xmlhttp.readyState == 4) {  
            if(xmlhttp.status == 200) {
               element.innerHTML = xmlhttp.responseText;
               evalScriptFromXMLHttpResponse(xmlhttp.responseText);
               document.getElementById("crumbTrailTop").innerHTML = strCrumbNav;  
               document.getElementById("crumbTrailBottom").innerHTML = strCrumbNav; 
               checkContainerHeights();
            }
            else  
               dump("Error loading page\n");  
         }  
      }
      xmlhttp.send(null);
   }
   else {
      xmlhttp.send(null);
      if(xmlhttp.status == 200) {
           element.innerHTML = xmlhttp.responseText;
           evalScriptFromXMLHttpResponse(xmlhttp.responseText);
           document.getElementById("crumbTrailTop").innerHTML = strCrumbNav;  
           document.getElementById("crumbTrailBottom").innerHTML = strCrumbNav; 
           checkContainerHeights();
          }
   }

}   

function postContent(url, containerID, queryString) {
  var objHTTP, strResult;
  objHTTP = new ActiveXObject('Microsoft.XMLHTTP');
  objHTTP.open('POST',"OtherPage.asp",false);
  objHTTP.setRequestHeader('Content-Type',
'application/x-www-form-urlencoded');

  objHTTP.send("id=1&user="+txtUser.value+"&password="+txtPassword.value);

  strResult=objHTTP.responseText;
}

function checkContainerHeights() {
   var minScreenHeight = 585;
   var objContentMiddle = document.getElementById('contentmiddle');
   var objContentLeft = document.getElementById('contentleft');
   var objThorax = document.getElementById('thorax');
   var objMainContainer = document.getElementById('maincontainer');
   var a = document.getElementById('page');
   var baseHeight;
   
   if (objContentMiddle.offsetHeight > objContentLeft.offsetHeight) baseHeight=objContentMiddle.offsetHeight;
   else baseHeight=objContentLeft.offsetHeight-30;

   if (minScreenHeight>baseHeight) objThorax.style.height=minScreenHeight + "px";
   else objThorax.style.height= (baseHeight + 20) + "px";
   objMainContainer.style.height= (objThorax.offsetHeight + 155) + "px";
   
  
}

function buildOptionTag(optName, optValue, optSelected){
  var strOption="";
  
  if(optName==null) optName="";
  if(optValue==null) optValue="";
  if(optSelected==null) optSelected=false;

  strOption="<option ";
  if (optValue!="") strOption+= "id='opt" + optValue + "'";
  strOption+= " value='" + optValue + "' ";
  if (optSelected) strOption+= "selected ";
  strOption+=">" + optName + "</option>";
  return(strOption);
}

function getSelectedValue(selTagId){
   if (selTagId!=null){
      var element = document.getElementById(selTagId);
      return (element.options[element.selectedIndex].value);
   }
   else alert("Select tag not found");
   return("");

}

function chkLaunchMethod(page){
  var launchMethod = getPageData(page,"launch");
  if (launchMethod==null) launchMethod="";
  switch (launchMethod.toLowerCase()) 
  { 
     case "i" : 
        navigateTo(page);
        break; 
     case "m" : 
        navigateToExternal(brighamMapUrl);
        break; 
     case "e": 
        navigateToExternal(page);
        break; 
     default : 
        break; 
  } 
}

function evalScriptFromXMLHttpResponse (txtXMLHttpResponse){
   var scriptToExecute;
   var parseCnt; 
   var scriptLanguage="javaScript";
   var responseLength=txtXMLHttpResponse.length;
   var upperCaseResponse=txtXMLHttpResponse.toUpperCase();
   var startScriptTagIndex=0;
   var scriptStart=0;
   var scriptEnd=0;
 
   //loop through xmlHttpResponse to look for embedded script
     for (parseCnt=0;parseCnt<responseLength;parseCnt++){
       startScriptTagIndex = upperCaseResponse.indexOf("<SCRIPT",parseCnt);
       
       //No more script to execute
       if (startScriptTagIndex < 0) parseCnt = responseLength;
       else {
           scriptStart=upperCaseResponse.indexOf(">",startScriptTagIndex);
           scriptEnd=upperCaseResponse.indexOf("</SCRIPT>",scriptStart);
           scriptToExecute=txtXMLHttpResponse.substring(scriptStart + 1, scriptEnd);
           if (scriptToExecute.length>1){
             //IE only
             if (window.execScript) window.execScript(scriptToExecute);
             //All other superior browsers
             else {
              var script = document.createElement("script"); 
              var content = document.createTextNode(scriptToExecute); 
              script.appendChild(content); 
              script.type = "text/javascript"; 
              script.defer = false; 
              var head = document.getElementsByTagName("head").item(0); 
              head.appendChild(script);
              }

           }
           parseCnt=scriptEnd; 
          }
     }
}

function getNewImage(){

   if (crumbNavArray.length==1){
      repeatingImagePath=principalImagePath;
      repeatingImageDisplay=principalPage;
    }
   else {
      if (currentImageIndex + 1 >= imageArray.length){currentImageIndex = 0;}
      else {currentImageIndex++;}

      repeatingImagePath=imageArray[currentImageIndex];
      repeatingImageDisplay=imageArray[currentImageIndex];
     
     } 
  
     document.getElementById("navImage").src=repeatingImagePath;     
}

function keyDownFired(eventWindow){
   if (eventWindow==null)eventWindow=window;
   try {
   if(eventWindow.event!==null && eventWindow.event.keyCode!==null){ 
     var keyPressed = String.fromCharCode(eventWindow.event.keyCode).toLowerCase();
     if (eventWindow.event.altKey && eventWindow.event.ctrlKey){
         if(keyPressed=="1") alert(document.getElementById('contenttop').innerHTML);
     }
     if (eventWindow.event.altKey && eventWindow.event.ctrlKey){
         if(keyPressed=="2") alert(document.getElementById('contentmiddle').innerHTML);
     }
     if (eventWindow.event.altKey && eventWindow.event.ctrlKey){
         if(keyPressed=="3") alert(document.getElementById('thorax').innerHTML);
     }
     if (eventWindow.event.altKey && eventWindow.event.ctrlKey){
         if(keyPressed=="v") alert(document.getElementById('childPage').innerHTML);
     }
     if (eventWindow.event.altKey && eventWindow.event.ctrlKey){
         if(keyPressed=="n") alert(document.getElementById('contentleft').innerHTML);
     }
    }
   } catch (e) {}

   return (null);
}


function navButtonClick(navType, navItem, itemToLaunch, launchExternal) {
  var compareString1;
  var compareString2;

  if (launchExternal==null) launchExternal=false;
  
  if (navType.toLowerCase()=="top"){
      navItem.className='orangebutton';
      if (navTopSelected != null) {

       // Fix for FireFox.  It doesn't support the innerText property.
       if (navItem.innerText) compareString1=navItem.innerText.toUpperCase();
       else compareString1=navItem.textContent.toUpperCase();

       if (navTopSelected.innerText) compareString2=navTopSelected.innerText.toUpperCase();
       else compareString2=navTopSelected.textContent.toUpperCase();
         if (compareString1 != compareString2){
             navTopSelected.className='whitebutton';
          } 
       } 
      navTopSelected=navItem;
   }

  if (!launchExternal) navigateTo(itemToLaunch);
  else navigateToExternal(itemToLaunch);
}


function navRollover(navItem){
  navItem.style.cursor='pointer';
  navItem.className='orangebutton';
}

function navRolloff(navItem){
  var compareString1;
  var compareString2;


  if (navTopSelected!=null) {

       // Fix for FireFox.  It doesn't support the innerText property.
       if (navItem.innerText) compareString1=navItem.innerText.toUpperCase();
       else compareString1=navItem.textContent.toUpperCase();

       if (navTopSelected.innerText) compareString2=navTopSelected.innerText.toUpperCase();
       else compareString2=navTopSelected.textContent.toUpperCase();

       if (compareString1 != compareString2){
           navItem.className='whitebutton';
        }
     } 
  else {
      navItem.className='whitebutton';
    }
}

function launchNavImage(){
   if (crumbNavArray.length==1){
      navigateToExternal(repeatingImageDisplay)
    }

   else {
      var tmpMarkup = "<p/><div><img class=\'floatleft\' src=\'" + repeatingImageDisplay + "\'></img></div>";
      var objNavImage = document.getElementById("navImage");
      var boxHeight = objNavImage.offsetHeight + 70;
      var boxWidth = objNavImage.offsetWidth + 50;
      return show_hide_box(objNavImage, boxWidth, boxHeight, tmpMarkup);

    }
 

}

function hideShowDiv (divID, twistyID){
   var objDiv = document.getElementById(divID);
   var objTwisty;
   //optional
   if (twistyID!=null && twistyID!="") objTwisty = document.getElementById(twistyID);
 
   if(objDiv.style.display=='block'){
     objDiv.style.display='none';
     if (objTwisty) objTwisty.innerText="u";
   }
   else {
      objDiv.style.display='block';
      if (objTwisty) objTwisty.innerText="q";
   }
   checkContainerHeights();
}

function copyToClipBoard(txtToCopy, resultTag){
     var range;
     resultTag.value=txtToCopy;
     //IE only
     if (resultTag.createTextRange){
        range = resultTag.createTextRange();
        resultTag.focus();
        resultTag.select();
        range.execCommand("Copy");
        alert('The result content has automatically been copied to your clipboard');
      }
}


//*******************************************************************************************************
// open source code for popup box
//*******************************************************************************************************

/* Script by: www.jtricks.com
 * Version: 20070301
 * Latest version:
 * www.jtricks.com/javascript/window/box_alone.html
 */
// Moves the box object to be directly beneath an object.
function move_box(an, box)
{
    var cleft = 0;
    var ctop = 0;
    var obj = an;

    while (obj.offsetParent)
    {
        cleft += obj.offsetLeft;
        ctop += obj.offsetTop;
        obj = obj.offsetParent;
    }

    box.style.left = cleft + 'px';
    ctop += an.offsetHeight + 8;
    box.style.top = ctop + 'px';
}

// Hides other alone popup boxes that might be displayed
function hide_other_alone(obj)
{
    if (!document.getElementsByTagName)
        return;

    var all_divs = document.body.getElementsByTagName("DIV");

    for (i = 0; i < all_divs.length; i++)
    {
        if (all_divs.item(i).style.position != 'absolute' ||
            all_divs.item(i) == obj ||
            !all_divs.item(i).alonePopupBox)
        {
            continue;
        }

        all_divs.item(i).style.display = 'none';
    }
    return;
}

// Shows a box if it wasn't shown yet or is hidden
// or hides it if it is currently shown
function show_hide_box(an, width, height, divMarkup)
{
    var borderStyle="";

    // width and height are added to make the id unique.
    var divId = "popupBoxDiv" + width + height;
    var boxdiv = document.getElementById(divId);
    if (boxdiv != null)
    {
        if (boxdiv.style.display=='none')
        {

            hide_other_alone(boxdiv);
            // Show existing box, move it
            // if document changed layout
            move_box(an, boxdiv);
            boxdiv.style.display='block'; 
            boxdiv.contents.innerHTML = divMarkup;
            current_boxdiv = boxdiv;
          
        }
        else 
            // Hide currently shown box.
            boxdiv.style.display='none';
     return false;
    }

    hide_other_alone(null);

    // Create box object through DOM
    boxdiv = document.createElement('div');

    // Assign id equalling to the document it will show
    boxdiv.setAttribute('id', divId);

    // Add object identification variable
    boxdiv.alonePopupBox = 1;
    boxdiv.style.display = 'block';
    boxdiv.style.border='none';
    boxdiv.style.position = 'absolute';
    boxdiv.style.width = width + 'px';
    boxdiv.style.height = height + 'px';
    boxdiv.style.textAlign = 'right';
    boxdiv.style.background = 'white';

    document.body.appendChild(boxdiv);
    current_boxdiv = document.getElementById("popupBoxDiv" + width + height);

    var offset = 0;

    // Remove the following code if 'Close' hyperlink
    // is not needed.
    var topDiv = document.createElement('div')
    var close_href = document.createElement('a');
    var contents = document.createElement('div');
 
    topDiv.setAttribute('id', 'popupHeadDiv'  + width + height);
    close_href.href = 'javascript:void(0);';
    close_href.onclick = function()
        { show_hide_box(an, width, height, borderStyle); }
    var close_x = document.createElement('img');
    close_x.src = '../images/closeIt.png';
    close_href.appendChild(close_x);
    topDiv.appendChild(close_href);
    boxdiv.appendChild(topDiv);
    // End of 'Close' hyperlink code.

      contents.overflowX = 'hidden';
      contents.overflowY = 'scroll';
      contents.style.background = 'white';
      contents.style.width = (width-6) + 'px';
      contents.style.height = (height + 2) + 'px';
      contents.style.textAlign = 'left';
      contents.style.paddingLeft = '4px';
      contents.style.borderLeft = '1px solid rgb(255,213,165)';
      contents.style.borderRight = '1px solid rgb(255,213,165)';
      contents.style.borderBottom = '1px solid rgb(255,213,165)';


      boxdiv.contents=contents;
      boxdiv.appendChild(contents);


    move_box(an, boxdiv);
    contents.innerHTML = divMarkup;
	
    AddTop(boxdiv,"white","rgb(255,213,165)");

       document.getElementById('popupHeadDiv'  + width + height).className='popupHead';   

    // The script has successfully shown the box,
    // prevent hyperlink navigation.
    return false;
}

function forcePopUpBoxClose(){
    //check for open popupbox and close it

    if (current_boxdiv){

       if (!(current_boxdiv.style.display=='none')) {

            current_boxdiv.style.display='none';

        }
     }
}


//******end popup box*************************************************************************************************

function AddTop(el,bk,color,size){
var i;
var d=document.createElement("b");
var cn="r";
var lim=4;
if(size && size=="small"){ cn="rs"; lim=2}
d.className="rtop";
d.style.backgroundColor=bk;
for(i=1;i<=lim;i++){
    var x=document.createElement("b");
    x.className=cn + i;
    x.style.backgroundColor=color;
    d.appendChild(x);
    }
el.insertBefore(d,el.firstChild);
}

function AddBottom(el,bk,color,size){
var i;
var d=document.createElement("b");
var cn="r";
var lim=4;
if(size && size=="small"){ cn="rs"; lim=2}
d.className="rbottom";
d.style.backgroundColor=bk;
for(i=lim;i>0;i--){
    var x=document.createElement("b");
    x.className=cn + i;
    x.style.backgroundColor=color;
    d.appendChild(x);
    }
el.appendChild(d,el.firstChild);
}


