/**************************************************************************
 * The general Javascript file of Building Engines, Inc. to be used all
 * pages for general scripting functions.
 * Copyright 2004
 **************************************************************************/

/**************************************************************************
 * Use addLoadEvent to add more Javascript functions to the Window onLoad
 * handler.  Otherwise, multiple functions cannot be assigned to onLoad
 * (except in the <body> tag).
 **************************************************************************/

function BEIMsgBlock() {
	if (document.getElementById("beimsgSelect")) {
		Rico.Corner.round("beimsgSelect", {border:"#71A06D"});
		Rico.Corner.round("beimsgInner", {blend:false, compact:true, color:"transparent"});
	}
	if (document.getElementById("beialertSelect")) {
		Rico.Corner.round("beialertSelect", {border:"#AA3F3F"});
		Rico.Corner.round("beialertInner", {blend:false, compact:true, color:"transparent"});
	}
}

function BEInstructions() {
	var curleft = curtop = curright = curbottom = 0;
	var obj = document.getElementById("instLink");
	
	if (obj.offsetParent) {
		curleft = obj.offsetLeft;
		curtop = obj.offsetTop;
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		}
		var curright = curleft + document.getElementById("instLink").offsetWidth;
		var offsetRight = document.body.offsetWidth - curright;
		curtop += document.getElementById("instLink").offsetHeight;
	}
	
	var textareas = document.getElementsByTagName("textarea");
	var selects = document.getElementsByTagName("select");
	if (document.getElementById("instDiv").style.right == offsetRight+"px") {
			document.getElementById("instDiv").style.right = "4000px";
			for(var i = 0; i < textareas.length; i++) {
				if (document.getElementById("mce_editor_"+i+"_parent"))
					document.getElementById("mce_editor_"+i+"_parent").style.visibility = "visible";
				}
			for(var i = 0; i < selects.length; i++) {
				document.getElementById(selects[i].id).style.visibility = "visible";
				}
		} else {
			document.getElementById("instDiv").style.right = offsetRight+"px";
			document.getElementById("instDiv").style.top = curtop+"px";
			for(var i = 0; i < textareas.length; i++) {
				if (document.getElementById("mce_editor_"+i+"_parent"))
					document.getElementById("mce_editor_"+i+"_parent").style.visibility = "hidden";
				}
				for(var i = 0; i < selects.length; i++) {
					document.getElementById(selects[i].id).style.visibility = "hidden";
					}
		}
	
	if(document.getElementById("instShad")) {
			removeShad = document.getElementById("instShad");
			document.body.removeChild(removeShad);
		} else {
			var shadowElement = document.createElement('div');
			shadowElement.id = "instShad";
			shadowElement.className = "shadowBox";
			shadowElement.style.position = "absolute";
			shadowElement.style.top = (curtop + 7) + "px";
			shadowElement.style.right = (offsetRight - 7) + "px";
			shadowElement.style.height = document.getElementById("instDiv").offsetHeight + "px";
			shadowElement.style.width = document.getElementById("instDiv").offsetWidth + "px";
			shadowElement.style.backgroundColor = "black";
			document.body.appendChild(shadowElement);
		}
}
 
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function showHideElement( eleQuery, eleResults, button) {
	if(document.getElementById(button)) {
		if(document.getElementById(eleQuery).style.display == "none" ||
				document.getElementById(button).src.split("/")[4] == "cb_add.gif") {
			document.getElementById(eleQuery).style.display = "block";
			document.getElementById(button).src = "/icons/cb_subtract.gif";
		} else {
			document.getElementById(eleQuery).style.display = "none";
			document.getElementById(button).src = "/icons/cb_add.gif";
		}
	} else {
		if(document.getElementById(eleQuery).style.display == "none" ||
				document.getElementById(eleQuery).style.display == "") {
			document.getElementById(eleQuery).style.display = "block";
		} else {
			document.getElementById(eleQuery).style.display = "none";
		}
	}
}

function timeStamp() {
	var mydate = new Date();
	var timestamp = mydate.getTime();
	return timestamp;
	}

function showFullDetails(id) {
	switcher = document.getElementById("switch_" + id);
			
	if (switcher.innerHTML == "[show full details]") {
		document.getElementById("vis_" + id).style.display="none";
		document.getElementById("hid_" + id).style.display="inline";
		switcher.innerHTML = "[hide full details]";
	} else {	
		document.getElementById("vis_" + id).style.display="inline";
		document.getElementById("hid_" + id).style.display="none";
		switcher.innerHTML = "[show full details]";
	}
}

/* Left Menu options */
function Menu_MouseOver()
{
	if(!this.Selected) this.className = "hover";
	return false;
};

function Menu_MouseOut()
{
	if(!this.Selected) this.className = "";
	return false;	
};

function inMenu_Click(p_oEvent)
{

	var oEvent = p_oEvent ? p_oEvent : window.event;
	if(p_oEvent) oEvent.stopPropagation();
	else oEvent.cancelBubble = true;
	if(oEvent && oEvent.target && oEvent.target.parentNode && oEvent.target.parentNode.tagName == "A") window.location = oEvent.target.parentNode.href;
};

function User_Click(p_oEvent)
{
	document.Selects = document.getElementsByTagName('select');
	if(document.Selects[0])
	{
		var nSelects = document.Selects.length-1;
		for(var i=nSelects;i>=0;i--) document.Selects[i].style.visibility = 'hidden';
	}

	var oEvent = p_oEvent ? p_oEvent : window.event;
	if(p_oEvent) oEvent.stopPropagation();
	else oEvent.cancelBubble = true;
	
	HideMenu();
	
	gDc = this.getElementsByTagName('a')[0];
	var oMn = gDc.parentNode.parentNode;
	var aMn = gDc.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
	var bMn = gDc.parentNode.parentNode.parentNode.parentNode.parentNode;
	var nMn = (aMn.offsetTop+bMn.offsetTop+gDc.offsetTop+gDc.offsetHeight);
	var sMn = ((oMn.Selected) ? (nMn+2) : (nMn+1)) + "px";
	g_oMenu = document.getElementById(gDc.href.split("#")[1]);
	g_oMenu.style.top = sMn;
	g_oMenu.style.left = oMn.offsetLeft+gDc.offsetLeft+"px";
	g_oMenu.style.position = "absolute";

	g_oMenu.onclick = inMenu_Click;
	g_oMenu.style.visibility = "visible";
    
	sOb = this;
	sOb.onmouseout = null;
	sOb.className="hover";

	document.onclick = Document_Click;	

	return false;
};


function Content_Click(c_oEvent)
{
	document.Selects = document.getElementsByTagName('select');	
	if(document.Selects[0])
	{
		var nSelects = document.Selects.length-1;
		for(var i=nSelects;i>=0;i--) document.Selects[i].style.visibility = 'hidden';
	}
	var sEvent = c_oEvent ? c_oEvent : window.event;
	if(c_oEvent) sEvent.stopPropagation();
	else sEvent.cancelBubble = true;
	
	HideMenu();
	var oCn = this.getElementsByTagName('a')[0];
	var oMn = oCn.parentNode;
	var aMn = oCn.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
	var bMn = oCn.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
	//	var cMn = oCn.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
	var cMn = oCn.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
    var dMn = oCn.parentNode.parentNode;
    var eMn = oCn.parentNode.parentNode.parentNode;
    var fMn = oCn.parentNode.parentNode.parentNode.parentNode;
    var gMn = oCn.parentNode.parentNode.parentNode.parentNode.parentNode;
    var hMn = oCn.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
    var iMn = oCn.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
    var jMn = oCn.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
    var kMn = oCn.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
    var lMn = oCn.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
    var mMn = oCn.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
	//    var mMn2 = oCn.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
//    var mMn3 = oCn.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
//    var mMn4 = oCn.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
	/*var nMn = (aMn.offsetTop+bMn.offsetTop+cMn.offsetTop+oCn.offsetTop+oCn.offsetHeight + 2); */
	var nMn = (cMn.offsetTop+kMn.offsetTop+mMn.offsetTop+oCn.offsetTop+oCn.offsetHeight + 2);
    //alert("Top nMn=" + nMn + " oCn=" + oCn + " oCn.offsetTop=" + oCn.offsetTop + " oCn.Height=" + oCn.offsetHeight + " oMn =" + oMn.offsetTop + " aMn=" + aMn.offsetTop + " bMn=" + bMn.offsetTop + " cMn=" + cMn.offsetTop + " dMn=" + dMn.offsetTop + " eMn=" + eMn.offsetTop + " fMn=" + fMn.offsetTop + " gMn=" + gMn.offsetTop + " hMn=" + hMn.offsetTop + " iMn=" + iMn.offsetTop + " jMn=" + jMn.offsetTop + " kMn=" + kMn.offsetTop + " lMn=" + lMn.offsetTop + " mMn=" + mMn.offsetTop + " mMn2=" + mMn2.offsetTop + " mMn3=" + mMn3.offsetTop + " mMn4=" + mMn4.offsetTop);
    //alert("Height oCn.Height=" + oCn.offsetHeight + " oMn =" + oMn.offsetHeight + " aMn=" + aMn.offsetHeight + " bMn=" + bMn.offsetHeight + " cMn=" + cMn.offsetHeight + " dMn=" + dMn.offsetHeight + " eMn=" + eMn.offsetHeight + " fMn=" + fMn.offsetHeight + " gMn=" + gMn.offsetHeight + " hMn=" + hMn.offsetHeight + " iMn=" + iMn.offsetHeight + " jMn=" + jMn.offsetHeight + " kMn=" + kMn.offsetHeight + " lMn=" + lMn.offsetHeight + " mMn=" + mMn.offsetHeight + " mMn2=" + mMn2.offsetHeight + " mMn3=" + mMn3.offsetHeight + " mMn4=" + mMn4.offsetHeight);
	var sMn = ((oMn.Selected) ? (nMn+2) : (nMn-1)) + "px";
	g_oMenu = document.getElementById(oCn.href.split("#")[1]);
	g_oMenu.style.top = sMn;
	/*g_oMenu.style.left = aMn.offsetLeft+cMn.offsetLeft+oMn.offsetLeft+oCn.offsetLeft+"px"; */
	g_oMenu.style.left = aMn.offsetLeft+kMn.offsetLeft+mMn.offsetLeft+oMn.offsetLeft+oCn.offsetLeft+"px";
    //alert("Left total = " + g_oMenu.style.left + " oCn=" + oCn.offsetLeft + " oMn=" + oMn.offsetLeft + " aMn=" + aMn.offsetLeft + " bMn=" + bMn.offsetLeft + " cMn=" + cMn.offsetLeft + " dMn=" + dMn.offsetLeft + " eMn=" + eMn.offsetLeft + " fMn=" + fMn.offsetLeft + " gMn=" + gMn.offsetLeft + " hMn=" + hMn.offsetLeft + " iMn=" + iMn.offsetLeft + " jMn=" + jMn.offsetLeft + " kMn=" + kMn.offsetLeft + " lMn=" + lMn.offsetLeft + " mMn=" + mMn.offsetLeft );
	g_oMenu.style.position = "absolute";

	g_oMenu.onclick = inMenu_Click;
	g_oMenu.style.visibility = "visible";

	document.onclick = Document_Click;	

	return false;
};



function Global_Click(g_oEvent)
{
	document.Selects = document.getElementsByTagName('select');

	if(document.Selects[0])
	{
		var nSelects = document.Selects.length-1;
		for(var i=nSelects;i>=0;i--) document.Selects[i].style.visibility = 'hidden';
	}

	var mEvent = g_oEvent ? g_oEvent : window.event;
	if(g_oEvent) mEvent.stopPropagation();
	else mEvent.cancelBubble = true;
	
	HideMenu();
        if( this.getElementsByTagName('a')[0] ) {
	  var oCn = this.getElementsByTagName('a')[0];
	  var oMn = oCn.parentNode;
	  var aMn = oCn.parentNode.parentNode.parentNode.parentNode.parentNode;
	  var jMn = oMn.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode
	    var nMn = (aMn.offsetTop+oMn.offsetHeight);
	  var sMn = ((oMn.Selected) ? (nMn+1) : (nMn)) + "px";
	  g_oMenu = document.getElementById(oCn.href.split("#")[1]);
	  g_oMenu.style.top = sMn;
	  g_oMenu.style.left = oMn.offsetLeft+jMn.offsetLeft+"px";
	  g_oMenu.style.position = "absolute";

	  g_oMenu.onclick = inMenu_Click;
	  g_oMenu.style.visibility = "visible";

	  document.onclick = Document_Click;	
	}
	return false;
};

function ContentMenu_Init( initArray, len )
{
    var menuItem;
    var x=0; 
    for (x=0; x<len; x++) 
    {
        var elmnt = initArray[x];
        //alert("elementbyid"+elmnt);
        menuItem = document.getElementById(elmnt);
        if(menuItem) {
            //alert("menu="+menuItem);
            menuItem.onclick = Content_Click;
        }
    }
    return false;
};
/*
function ContentMenu_Init()
{
	var addRequestMenuItems = document.getElementById('addRequest');
	var searchMenuItems = document.getElementById('search');
	if(addRequestMenuItems)
	{
		addRequestMenuItems.onclick = Content_Click;
	}
	if(searchMenuItems)
	{
		searchMenuItems.onclick = Content_Click;
	}
	return false;
};
*/

function SearchRequestsMenu_Init()
{
	var searchMenuItems = document.getElementById('search');
	if(searchMenuItems)
	{
		searchMenuItems.onclick = Content_Click;
	}
	return false;
}

function GlobalMenu_Init()
{
	var goToMenuItems = document.getElementById('goTo');
	//var helpMenuItems = document.getElementById('help');
	if(goToMenuItems)
	{
	  //goToMenuItems.onclick = Global_Click;
	  goToMenuItems.onmouseover = Global_Click;
	}
	//if(helpMenuItems)
	//{
	//	helpMenuItems.onclick = Global_Click
	//}
	return false;
};


function LeftMenu_Init(strMenu)
{
	var strMenu = document.getElementById(strMenu);
	if(strMenu)
	{
		strMenu.onclick = User_Click;
		strMenu.onmouseover = Menu_MouseOver;
		strMenu.onmouseout = Menu_MouseOut;
		strMenu.Selected = (strMenu.className == 'selected' || strMenu.className == 'first selected') ? true : false;
	}
	return false;
};


/*
{
	var otherMenuItems = document.getElementById('otherMenuItems');
	if(otherMenuItems)
	{
		otherMenuItems.onclick = User_Click;
		otherMenuItems.onmouseover = Menu_MouseOver;
		otherMenuItems.onmouseout = Menu_MouseOut;
		otherMenuItems.Selected = (otherMenuItems.className == 'selected' || otherMenuItems.className == 'first selected') ? true : false;
	}
	return false;
};
*/

function HideMenu()
{
	if(typeof g_oMenu != 'undefined' && g_oMenu)
	{
		g_oMenu.style.visibility = 'hidden';
		g_oMenu = null;
		document.onclick = null;
		window.onresize = null;
	}
	if(typeof sOb != 'undefined' && sOb)
	{
		sOb.onmouseout = Menu_MouseOut;
		sOb.className = sOb.className.split("hover")[0];
	}
	else return;
};

function Document_Click()
{
	if(document.Selects)
	{
		var nSelects = document.Selects.length-1;
		for(var i=nSelects;i>=0;i--) document.Selects[i].style.visibility = 'visible';
	}

	HideMenu();
};


function LeftMenu(NavMenu){
	var menu = document.getElementById(NavMenu);
	if(menu){
		var itemList = menu.getElementsByTagName('ul');
		if(itemList[0]){
			itemList[0].onclick = LeftMenu_OnClick;
			if(document.all){
				itemList[0].onmouseover = LeftMenu_MouseOver;
			}
			if(document.all){
			 itemList[0].onmouseout = LeftMenu_MouseOut;
			 }
		}
		else return;
		if(itemList[1]){
			itemList[1].onclick = LeftMenu_OnClick;
			if(document.all){
				itemList[1].onmouseover = LeftMenu_MouseOver;
			}
			if(document.all){
			 itemList[1].onmouseout = LeftMenu_MouseOut;
			 }
		}
		if(itemList[2]){
			itemList[2].onclick = LeftMenu_OnClick;
			if(document.all){
				itemList[2].onmouseover = LeftMenu_MouseOver;
			}
			if(document.all){
			 itemList[2].onmouseout = LeftMenu_MouseOut;
			 }
		}
		if(itemList[3]){
			itemList[3].onclick = LeftMenu_OnClick;
			if(document.all){
				itemList[3].onmouseover = LeftMenu_MouseOver;
			}
			if(document.all){
			 itemList[3].onmouseout = LeftMenu_MouseOut;
			 }
		}
	}
	else return false;
}
function LeftMenu_OnClick(clickedEvent)
{
	var event1 = clickedEvent ? clickedEvent : window.event;
	var goEvent = clickedEvent ? event1.target : event1.srcElement;
	if(goEvent.tagName == 'LI' && goEvent.getElementsByTagName('a')[0]){
		document.location = goEvent.getElementsByTagName('a')[0].href;
	}
}
function LeftMenu_MouseOver(){
	var sentEvent = window.event.srcElement;
	//check to see if the element is an LI from our list
	var ListItem;
	if(sentEvent.tagName == "LI"){
		ListItem = sentEvent;
	}else if(sentEvent.parentNode.tagName == "LI"){
		ListItem = sentEvent.parentNode;
	}else if (sentEvent.parentNode.parentNode.tagName == "LI"){
		ListItem = sentEvent.parentNode.parentNode;
	}else return;
	if(ListItem.className != 'onMenu'){
		ListItem.LastName = ListItem.className;
		ListItem.className = (ListItem.LastName.length > 0 && ListItem.LastName != 'hover') ? ListItem.LastName+'hover' : 'hover';
	}
	else{ 
		if(ListItem.getElementsByTagName('a')[0]){ 
			ListItem.getElementsByTagName('a')[0].style.textDecoration ='underline'; 
		}
	}
}
function LeftMenu_MouseOut(){
	var sentEvent = window.event.srcElement;
	//check to see if the element is an LI from our list
	var ListItem;
	if(sentEvent.tagName == "LI"){
		ListItem = sentEvent;
	}else if(sentEvent.parentNode.tagName == "LI"){
		ListItem = sentEvent.parentNode;
	}else if (sentEvent.parentNode.parentNode.tagName == "LI"){
		ListItem = sentEvent.parentNode.parentNode;
	}else return;
	if(ListItem.className != 'onMenu'){
		var LastName1 = ((typeof ListItem.LastName != 'undefined') && (ListItem.LastName.length > 0)) ? true : false;
		var CurClassName = (LastName1) ? 'hover' :  ListItem.LastName+'hover';
	
		if(ListItem.className == CurClassName){
			ListItem.className = (LastName1) ? ListItem.LastName : '';
		}
	}else{	
		if(ListItem.getElementsByTagName('a')[0]){
				ListItem.getElementsByTagName('a')[0].style.textDecoration = 'none';
		}
	}
}
 
 function showHideSelects(id) {
  var visibility = "";
  if (document.getElementById(id).style.display == "none") {
    visibility = "";
  } else {
    visibility = "hidden";
  }
  
  var tags = new Array("applet", "select");
  for (var k = tags.length; k > 0; ) {
	var ar = document.getElementsByTagName(tags[--k]);
	var cc = null;
		
	for (var i = ar.length; i > 0; ) {
	  cc = ar[--i];
	  var ccParent = cc;
	  var isInPopup = false;
	  
	  while (ccParent.parentNode) {
	   ccParent = ccParent.parentNode;
	   if (ccParent.id == id) {
	    isInPopup = true;
	   }
	  }
	  
	  if (!isInPopup) {
	    cc.style.visibility = visibility;
	  }
	}
  }
}


var digits = "0123456789";
var phoneNumberDelimiters = "()-. ";
var validWorldPhoneChars = phoneNumberDelimiters + "+";
var minDigitsInIPhoneNumber = 10;

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}
function trim(s)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not a whitespace, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (c != " ") returnString += c;
    }
    return returnString;
}
function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
var bracket=3;
strPhone=trim(strPhone);
if(strPhone.indexOf("+")>1) return false;
if(strPhone.indexOf("-")!=-1)bracket=bracket+1;
if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false;
var brchr=strPhone.indexOf("(");
if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+4)!=")")return false;
if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false;
s=stripCharsInBag(strPhone,validWorldPhoneChars); 
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function beiIncJS(filename)
{
var body = document.getElementsByTagName('head')[0];
script = document.createElement('script');
script.src = filename;
script.type = 'text/javascript';
body.appendChild(script)
}


beiIncJS("/includes/bei_form.js");

