//initalize vars
var testing    = false;
var ie4        = false;
var ie5        = false;
var ns4        = false;
var ns6        = false;
var mac        = false;
var running    = false;
var timerId    = null;
var currentId  = null;
var previousId = null;
var menuloaded = false;
var menuTop    = 25;
var bgContent  = '';

//initialize rollovers, menus
function Init(id){
  pageId = id;
  SetBrowser();
  PreloadImages();
  LoadMenus();
  
  //set menuloaded flag
  menuloaded = true; if (testing){ alert("menuloaded = " + menuloaded); }
  }

function SetLoaded() {
  alert('image loaded');
  }
  
//preload images
function PreloadImages(){
  //var ffffff = new Image();
  //ffffff.onLoad = "SetLoaded";
  //ffffff.src = "images/ffffff.gif";
  if (document.images){
    var numimages = 7;
		onImages = new Array(numimages);
		for (var i=0; i<numimages; i++){ onImages[i] = new Image(); }
		onImages[0].src = "images/builders_story_b.gif";
		onImages[1].src = "images/portfolio_b.gif";
    onImages[2].src = "images/lots_spechomes_b.gif";
		onImages[4].src = "images/custom_process_b.gif";
		onImages[5].src = "images/partners_b.gif";
		onImages[6].src = "images/contact_b.gif";		

    offImages = new Array(numimages);
		for (var i=0; i<numimages; i++){ offImages[i] = new Image(); }
		offImages[0].src = "images/builders_story_a.gif";
		offImages[1].src = "images/portfolio_a.gif";
    offImages[2].src = "images/lots_spechomes_a.gif";
		offImages[4].src = "images/custom_process_a.gif";
		offImages[5].src = "images/partners_a.gif";
		offImages[6].src = "images/contact_a.gif";	

    iconImages = new Array(7);
		for (var i=0; i<7; i++){ iconImages[i] = new Image(); }
		iconImages[0].src = "images/icon_home.jpg";
		iconImages[1].src = "images/icon_portfolio.jpg";
		iconImages[2].src = "images/icon_homesavailable.jpg";
		/* iconImages[3].src = "images/icon_modelhome.jpg"; */
		iconImages[4].src = "images/icon_customhome.jpg";
		iconImages[5].src = "images/icon_partners.jpg";	
		iconImages[6].src = "images/icon_contact.jpg";	
    }
  }

//set browser type
function SetBrowser(){
  ie4 = (document.all && !document.getElementById) ? true : false;
  ie5 = (document.all && document.getElementById) ? true : false;
  ns4 = (document.layers) ? true : false;
  ns6 = (document.getElementById && !document.all) ? true : false;
  var UA = String(navigator.userAgent).toLowerCase();
  mac = (UA.indexOf("mac") != -1) ? true : false;
  }

//handle resize
if(document.layers){origWidth=innerWidth;origHeight=innerHeight;onresize=function(){if(innerWidth!=origWidth||innerHeight!=origHeight)location.reload()}}

//image rollovers
function ImageOn(imageName,index){
  if (document.images){
    document.images[imageName].src = onImages[index].src;
    }
  }
function ImageOff(imageName,index){
  if (document.images){
    document.images[imageName].src = offImages[index].src;
    }
  }

//image rollovers
function IconOn(index){
  if (document.images){
    document.images['iconImg'].src = iconImages[index].src;
    }
  }

//set focus to chosen field
function SetFocus(fieldname){
  if (document.form.elements[fieldname].value == ''){ document.form.elements[fieldname].focus(); }
  }

//layer writing
function layerWrite(id,text){
  if (ie4 || ie5){
    document.all[id].innerHTML = text;
    }
	if (ns4){
		var lyr = document.layers[id].document;
		lyr.open();
		lyr.write(text);
		lyr.close();
	  }
  else if (ns6){
    rng = document.createRange();
    el = document.getElementById(id);
    rng.setStartBefore(el);
    htmlFrag = rng.createContextualFragment(text);
    while (el.hasChildNodes()) el.removeChild(el.lastChild);
    el.appendChild(htmlFrag);
    }
  }

//get elements width
function getElementWidth(elementId){
  if (ie4){
    return eval("document.all.menu" + elementId + "Div.offsetWidth");
    }
  else if (ie5){
    return eval('document.getElementById("menu' + elementId + 'Div").offsetWidth');
    }
  else if (ns4){
    return eval('document.menu' + elementId + 'Div.clip.width');
    }
  else if (ns6){
    return eval('document.getElementById("menu' + elementId + 'Div").offsetWidth') - 10;
    }
  }

//get elements height
function getElementHeight(elementId){
  if (ie4){
    return eval("document.all.menu" + elementId + "Div.offsetHeight");
    }
  else if (ie5){
    return eval('document.getElementById("menu' + elementId + 'Div").offsetHeight');
    }
  else if (ns4){
    return eval('document.menu' + elementId + 'Div.clip.height');
    }
  else if (ns6){
    return eval('document.getElementById("menu' + elementId + 'Div").offsetHeight');
    }
  }

//get image width
function getImgWidth(elementId){
  if (ie4){
    return eval("document.all.menuAnchor" + elementId + ".style.pixelWidth");
    }
  else if (ie5){
    return eval('document.getElementById("menuAnchor' + elementId + '").offsetWidth');
    }
  else if (ns4){
    return eval('document.menuAnchor' + elementId + '.width');
    }
  else if (ns6){
    return eval('document.getElementById("menuAnchor' + elementId + '").offsetWidth');
    }
  }

//recursively finds actual left value (IE)
function getRealLeft(myObj){
  xPos = eval(myObj).offsetLeft;
  tempObj = eval(myObj).offsetParent;
  while (tempObj != null){
    xPos += tempObj.offsetLeft;
    tempObj = tempObj.offsetParent;
    }
  return xPos;
  }

//get objects left value
function getObjLeft(myObj){
  if (ie4){
    return getRealLeft(myObj);
    }
  else if (ie5){
    return getRealLeft(myObj);
    }
  else if (ns4){
    return eval(myObj).x;
    }
  else if (ns6){
    return parseInt(myObj.offsetLeft);
    }
  }

//set top and left positions
function SetPosition(elementId,top,left){
  if (ie4 || ie5){
    eval('document.all.menu' + elementId + 'Div.style.top = '+ top);
    eval('document.all.menu' + elementId + 'Div.style.left = '+ left);
    
    eval('document.all.bg' + elementId + 'Div.style.top = '+ top);
    eval('document.all.bg' + elementId + 'Div.style.left = '+ left);
    }
  else if (ns4){
    eval('document.menu' + elementId + 'Div.top = '+ top);
    eval('document.menu' + elementId + 'Div.left = '+ left);
    
    eval('document.bg' + elementId + 'Div.top = '+ top);
    eval('document.bg' + elementId + 'Div.left = '+ left)
    }
  else if (ns6){
    eval('document.getElementById("menu' + elementId + 'Div").style.top = ' + top);
    eval('document.getElementById("menu' + elementId + 'Div").style.left = ' + left);
    
    eval('document.getElementById("bg' + elementId + 'Div").style.top = ' + top);
    eval('document.getElementById("bg' + elementId + 'Div").style.left = ' + left);
    }
  }

//load menus
function LoadMenus(){
  testing = false;
  for (var i=0; i<7; i++){
    if (i != 2 && i != 3) {
      if (testing){ alert("elementId = " + i); }
      if (ns6){ anchorObj = eval('document.getElementById("menuAnchor' + i + '")'); }
        else  { anchorObj = eval('document.images["menuAnchor' + i + '"]'); }
      
      //anchorLeft  = getObjLeft(anchorObj);               if (testing){ alert("anchorLeft = " + anchorLeft); }
      //anchorWidth = getImgWidth(i);                      if (testing){ alert("anchorWidth = " + anchorWidth); }
      menuWidth   = getElementWidth(i);                  if (testing){ alert("menuWidth = " + menuWidth); }
      //workaround for bug in Netscape 6 that is fixed in Mozilla
      if (ns6) {
        //var ua = new String(navigator.userAgent.toLowerCase());
        //if (ua.indexOf('netscape6') != -1){
          menuWidth += 10;
          //}
        }
      menuHeight = getElementHeight(i);                  if (testing){ alert("menuHeight = " + menuHeight); }
      
      //write bg if menu is being used
      if (menuWidth > 0){
        
        //determine number of links by height of menu
        numLinks = Math.ceil(menuHeight / 26) - 1; if (testing){ alert("number of links = " + numLinks); }
        bgContent = '';
        for (var j=0; j<numLinks; j++){
          bgContent = bgContent + '<img src="images/ffffff.gif" width="' + menuWidth + '" height="25" alt="" border="0" class="transparent"><br>';
          }
        bgContent = bgContent + '<img src="images/ffffff.gif" width="' + menuWidth + '" height="26" alt="" border="0" class="transparent">'; if (testing){ alert("bgContent = " + bgContent); }
        layerWrite('bg' + i + 'Div',bgContent);
        
        }
      }
    }
  testing = false;
  }

//show referenced element
function Show(elementId){
  //we're active so stop timer
  if (running){ StopTimer(); }
  
  //set current value
  currentId = elementId;
  
  //hide previous
  if (currentId != previousId && previousId != null){
    Hide(previousId);
    }
  
  //show current
  if (ie4 || ie5){
    //menu and background
    eval('document.all.bg' + currentId + 'Div.style.visibility = "visible"');
    eval('document.all.menu' + currentId + 'Div.style.visibility = "visible"');
    
    //rollover
    if (currentId != 3) { eval('document.images["menuAnchor' + currentId + '"].src = onImages[currentId].src'); }
    }
  else if (ns4){
    //menu and background
    eval('document.bg' + currentId + 'Div.visibility = "show"');
    eval('document.menu' + currentId + 'Div.visibility = "show"');
    
    //rollover
    if (currentId != 3) { eval('document.images["menuAnchor' + currentId + '"].src = onImages[currentId].src'); }
    }
  else if (ns6){
    //menu and background
    eval('document.getElementById("bg' + currentId + 'Div").style.visibility = "visible"');
    eval('document.getElementById("menu' + currentId + 'Div").style.visibility = "visible"');
    
    //rollover
    if (currentId != 3) { eval('document.getElementById("menuAnchor' + currentId + '").src = onImages[currentId].src'); }
    }
  
  //track in order to turn off later
  previousId = currentId;
  }

//hide referenced element
function Hide(elementId){
//alert(pageId);
    if (ie4 || ie5){
      //menu and background
      eval('document.all.bg' + elementId + 'Div.style.visibility = "hidden"');
      eval('document.all.menu' + elementId + 'Div.style.visibility = "hidden"');
      
      //rollover
      if (pageId != elementId) { 
       if (elementId != 3) { eval('document.images["menuAnchor' + elementId + '"].src = offImages[elementId].src'); }
      }
    }
    else if (ns4){
      //menu and background
      eval('document.bg' + elementId + 'Div.visibility = "hide"');
      eval('document.menu' + elementId + 'Div.visibility = "hide"');
      
      //rollover
      if (pageId != elementId) { 
        if (elementId != 3) { eval('document.images["menuAnchor' + elementId + '"].src = offImages[elementId].src'); }
      }
    }
    else if (ns6){
      //menu and background
      eval('document.getElementById("bg' + elementId + 'Div").style.visibility = "hidden"');
      eval('document.getElementById("menu' + elementId + 'Div").style.visibility = "hidden"');
      
      //rollover
      if (pageId != elementId) {
        if (elementId != 3) { eval('document.getElementById("menuAnchor' + elementId + '").src = offImages[elementId].src'); }
      }
    }
  
}


//hide after a few seconds


function StartTimer(activeID){ 
    running = true;
	  timerId = setTimeout('Hide(currentId)', 750);
}

//kill timer
function StopTimer(){
  running = false;
  clearTimeout(timerId);
  }

// popup window
function PopUp(url,mywidth,myheight){
  newone=window.open(url,'popup', 'left=50,top=50,toolbar=no,directories=no,titlebar=no,location=no,status=no,scrollbars=yes,resizable=yes,menubar=no,width=' + mywidth + ',height=' + myheight);
  }

// set focus to field
function set_focus(which){
	if (document.form.elements[which].value == ''){ document.form.elements[which].focus(); }
	}
  
function safemail(name,domain,display,this_class) {displayed = (typeof(display) == "undefined") ? name+"@"+domain : display;displayed_class = (typeof(this_class) == "undefined") ? '' : ' class="'+this_class+'"';document.write('<a href=mailto:'+name+'@'+domain+displayed_class+'>'+displayed+'</a>');}
