var currentTimeout;
var LIs_To_Hover = new Array();
var MapTimeout;
var Interval;


function imageReplaceHeaders()
{
	replaceLotTitlesInList(document.getElementsByTagAndClassName('div','replace_title'));
	replaceLotTitlesInList(document.getElementsByTagName('h1'));
	replaceFirstLevelAInList(document.getElementsByTagAndClassName('a','first_level_a'));
	replaceSecondLevelAInList(document.getElementsByTagAndClassName('a','second_level_a'));
	replaceSecondLevelAInList(document.getElementsByTagAndClassName('li','on_the_board_title'));
}

//this this will assign the proper profiles to the top level navigation and also set up the mouseover and mouseout's for all of the images.  The if statement around the img.src = img.img[on/off]].src is to make sure it's only doing the replacement when you're hovered over that single images sourounding li.
function enableMenuImageRollovers()
{
	var container = document.getElementById('first_level_nav');
	if (!container)
	{
	    return;
    }
	var lis = container.getElementsByTagName('li');
	for(x=0; x< lis.length; x++)
	{
		var li=lis[x];

		if(li.className.indexOf("top_li",0)!=-1)
		{
			LIs_To_Hover.push(li.id);
			li.onmouseover=function() 
			{
				RollOver(this);
				var imgs = this.getElementsByTagName('img');
				for(i=0; i < imgs.length; i++)
				{
					var img=imgs[i];
					if(img.parentNode.parentNode == this)
					{
						img.src=img.imgOn.src;
					}
				}
			}
			li.onmouseout=function() 
			{
				RollOff(this);
				var imgs = this.getElementsByTagName('img');
				for(i=0; i < imgs.length; i++)
				{
					var img=imgs[i];
					if(img.parentNode.parentNode == this)
					{
						img.src=img.imgOff.src;
					}
				}
			}
		}
		else
		{
			li.onmouseover=function() 
			{
				var imgs = this.getElementsByTagName('img');
				for(i=0; i < imgs.length; i++)
				{
					var img=imgs[i];
					if(img.parentNode.parentNode == this)
					{
						img.src=img.imgOn.src;
					}
				}
			}
			li.onmouseout=function() 
			{
				var imgs = this.getElementsByTagName('img');
				for(i=0; i < imgs.length; i++)
				{
					var img=imgs[i];
					if(img.parentNode.parentNode == this)
					{
						img.src=img.imgOff.src;
					}
				}
			}
		}

		var imgs = lis[x].getElementsByTagName('img');
		for(i=0; i < imgs.length; i++)
		{
			var img=imgs[i];
			var txt=img.src;
			if(img.parentNode.parentNode.className.indexOf("selected") < 0)
			{
				var imgOn = new Image();
				var imgOff = new Image();
				imgOn.src=img.src.replace("p=1","p=3");
				imgOff.src=img.src.replace("p=3","p=1");
				
				img.imgOn = imgOn;
				img.imgOff = imgOff;
			}
		}
	}
}


function enableMenu2ImageRollovers()
{
	var uls = document.getElementsByTagAndClassName('ul','second_level_nav');
	for(var y=0; y < uls.length; y++)
	{
		var container = uls[y];
		if (!container)
		{
			return;
		}
		var lis = container.getElementsByTagName('li');
		for(x=0; x< lis.length; x++)
		{
			var imgs = lis[x].getElementsByTagName('img');
			for(i=0; i < imgs.length; i++)
			{
				var img=imgs[i];
				var txt=img.src;
				if(img.parentNode.parentNode.className.indexOf("selected") < 0)
				{
					var imgOn = new Image();
					var imgOff = new Image();
					imgOn.src=img.src.replace("p=2","p=4");
					imgOff.src=img.src.replace("p=4","p=2");
					
					img.imgOn = imgOn;
					img.imgOff = imgOff;
				}
			}
		}
	}
}



function replaceSecondLevelAInList(headings)
{
	if(headings)
	{
		for(var i=0; i < headings.length; i++)
		{
			var heading = headings[i];
			var tgt=heading;
			var profile=2;
			
			
			while(tgt.firstChild)
			{
				tgt=tgt.firstChild;
			}
			var txt=tgt.nodeValue.split(" ");

			//If the same element gets replaced twice, you get issues because the element won't have any inner text the second time around.
			if(txt)
			{

				var count=0;
				var output='';
				while(txt[count])
				{
					output += '<img border="0" src="/imreplace.php?text=' + txt[count] + '&p=' + profile + '">';

					count= count+1;
				}
				tgt.parentNode.innerHTML = output;

			}
		}
	}
}


function replaceFirstLevelAInList(headings)
{
	if(headings)
	{
		for(var i=0; i < headings.length; i++)
		{
			var heading = headings[i];
			var tgt=heading;
			var profile=1;
			
			
			while(tgt.firstChild)
			{
				tgt=tgt.firstChild;
			}
			var txt=tgt.nodeValue.split(" ");

			//If the same element gets replaced twice, you get issues because the element won't have any inner text the second time around.
			if(txt)
			{

				var count=0;
				var output='';
				while(txt[count])
				{
					output += '<img border="0" src="/imreplace.php?text=' + txt[count] + '&p=' + profile + '">';

					count= count+1;
				}
				tgt.parentNode.innerHTML = output;

			}
		}
	}
}

function replaceLotTitlesInList(headings)
{
	if(headings)
	{
		for(var i=0; i < headings.length; i++)
		{
			var heading = headings[i];
			var tgt=heading;
			var profile=0;
			
			
			while(tgt.firstChild)
			{
				tgt=tgt.firstChild;
			}
			var txt=tgt.nodeValue.split(" ");

			//If the same element gets replaced twice, you get issues because the element won't have any inner text the second time around.
			if(txt)
			{

				var count=0;
				var output='';
				while(txt[count])
				{
					output += '<img border="0" src="/imreplace.php?text=' + txt[count] + '&p=' + profile + '">';

					count= count+1;
				}
				tgt.parentNode.innerHTML = output;

			}
		}
	}
}


function enableImageRolloverByID(id)
{
	var container = document.getElementById(id);
	if (!container)
	{
	    return;
    }
	var imgs = container.getElementsByTagName('img');
	for(i=0; i < imgs.length; i++)
	{
		var img=imgs[i];
		var txt=img.src;
			var imgOn = new Image();
			var imgOff = new Image();
			imgOn.src=img.src.replace("_off","_on");
			imgOff.src=img.src.replace("_on","_off");
			
			img.imgOn = imgOn;
			img.imgOff = imgOff;
			
			img.onmouseover=function() {
				this.src=this.imgOn.src;
			}
			img.onmouseout=function() {
				this.src=this.imgOff.src;
			}
	}
}


function enableSubmitButtonRolloverByID(id)
{
	var container = document.getElementById(id);
	if (!container)
	{
	    return;
    }
	var imgs = container.getElementsByTagName('input');
	for(i=0; i < imgs.length; i++)
	{
		var img=imgs[i];
		var txt=img.src;
			var imgOn = new Image();
			var imgOff = new Image();
			imgOn.src=img.src.replace("_off","_on");
			imgOff.src=img.src.replace("_on","_off");
			
			img.imgOn = imgOn;
			img.imgOff = imgOff;
			
			img.onmouseover=function() {
				this.src=this.imgOn.src;
			}
			img.onmouseout=function() {
				this.src=this.imgOff.src;
			}
	}

}

function EnableTableRowHoverByClass(Class)
{
	var Containers = document.getElementsByTagAndClassName('table',Class);
	if(!Containers)
	{
		return;
	}

	for(var x=0; x < Containers.length; x++)
	{
		var Container = Containers[x];
		var Rows = Container.getElementsByTagName('tr')
		for(i=0; i < Rows.length; i++)
		{
			Row = Rows[i];
			Row.onmouseover=function() 
			{
			/*	if (this.mapx && this.mapy)
				{
					platmap.zoomToPoint(this.mapx, this.mapy)
				}
				*/
			}
			
			Row.onmouseout=function() 
			{
				TableRowRolloff(this);
			}

		}
	}

}


document.getElementsByTagAndClassName=function(tagName, className, parentElement)
{
	var items = new Array();
	var elems = (document.getElementById(parentElement) || document.body).getElementsByTagName(tagName);
	for(var i = 0; i < elems.length; i++)
	{
		var elem = elems[i];
		var classNames = elem.className.split(" ");
		for (var j = 0; j < classNames.length; j++)
		{
			if(classNames[j] == className)
			{
				items.push(elem);
			}
		}
	}
	return items;
};

function TableRowRollover(Tr)
{
	Tr.className=Tr.className.replace("hover_off","hover_on");
}
function TableRowRolloff(Tr)
{
	Tr.className=Tr.className.replace("hover_on","hover_off");
}

function RollOver(li)
{
	TurnOffAll();
	clearTimeout(currentTimeout);
	li.className=li.className.replace("hover_off","hover_on");
}

function RollOff(li)
{
	currentTimeout = setTimeout("RemoveSynHover('" + li.id + "')",1500);
}

function RemoveSynHover(LI_Id)
{
	var li = document.getElementById(LI_Id);
	li.className=li.className.replace("hover_on","hover_off");
}

function TurnOffAll()
{
	for(var i = 0; i < LIs_To_Hover.length; i++)
	{
		RemoveSynHover(LIs_To_Hover[i]);
	}
}


function EnableContentClear()
{
	var Content = document.getElementById('content');

	Content.onmouseover=function()
	{
		//alert('Testing: This is a test, if you see this, there is no reason to FREAK OUT!......unless you just feel like freaking out.  Then go for it!');
		ClearMapTimeout();
	}
}

function SetupPlatMap(x,y,evt)
{
	//onmouseover=platmap.zoomToPoint({$node.data_map.plat_map_location.content.x},{$node.data_map.plat_map_location.content.y})
  
   if(window.event)
   {
		evt=window.event;
	   if(evt.srcElement.tagName == 'TD')
	   {
		TableRowRollover(evt.srcElement.parentNode);
	   }
	   if(evt.srcElement.tagName == 'A')
	   {
		TableRowRollover(evt.srcElement.parentNode.parentNode);
	   }
   }
   else
	{
	   if(evt.target.tagName == 'TD')
	   {
		TableRowRollover(evt.target.parentNode);
	   }
	   if(evt.target.tagName == 'A')
	   {
		TableRowRollover(evt.target.parentNode.parentNode);
	   }
	}
   ClearMapTimeout();
	MapTimeout= setTimeout("ZoomPlatMap("+x+","+y+")",200);
   evt.cancelBubble=true;
   if(evt.stopPropagation)
   {
		   evt.stopPropagation();
   }
}

function RemoveRowColor(evt)
{
	if (!evt || !evt.target)
	{
		return;
	}
	if(evt.target==null)
	{		
	   if(evt.srcElement.tagName == 'TD')
	   {
		TableRowRolloff(evt.srcElement.parentNode);
	   }
	   if(evt.srcElement.tagName == 'A')
	   {
		TableRowRolloff(evt.srcElement.parentNode.parentNode);
	   }
	}
	else
	{
	   if(evt.target.tagName == 'TD')
	   {
		TableRowRolloff(evt.target.parentNode);
	   }
	   if(evt.target.tagName == 'A')
	   {
		TableRowRolloff(evt.target.parentNode.parentNode);
	   }
	}
}

function ZoomPlatMap(XPos,YPos)
{
	var PlatMap = document.getElementById('devmap_devel');

	PlatMap.zoomToPoint(XPos,YPos);
}

function ClearMapTimeout()
{
	clearTimeout(MapTimeout);
}

function bindBehaviors()
{
  // quit if this function has already been called
  if (arguments.callee.done) return;

  // flag this function so we don't do the same thing twice
  arguments.callee.done = true;

  imageReplaceHeaders();
  EnableContentClear();
  enableMenuImageRollovers();
  enableMenu2ImageRollovers();
  enableSubmitButtonRolloverByID("submit_button");
  enableImageRolloverByID("back_button");
  EnableTableRowHoverByClass("lot_table");
}


if (window.addEventListener)
{
  window.addEventListener('load', bindBehaviors, false);

}
else if (window.attachEvent)
{
  window.attachEvent('onload',bindBehaviors);

}

