/*  martyj.js
* Jan 19th 2008
* v.1.0
*/
var images = ['Home','Expertise','Services','Standards','Development','Terms','Contact'];
var sideImageIdx = 0;

window.onload=function()
	{
		var oListItems = document.getElementsByTagName('li');
		for(i=0;i<oListItems.length;i++)
		{
			if(oListItems[i].className=='list_item')
			{
				attachEventListener(oListItems[i], "mouseover", highlight, false);
				attachEventListener(oListItems[i], "mouseover", show_sidebar, false);
				attachEventListener(oListItems[i], "mouseout", no_highlight, false);
				attachEventListener(oListItems[i], "mouseout", hide_sidebar, false);
				attachEventListener(oListItems[i], "click", show_sidebar, false);
			}
		}
		document.getElementById('home_img').src='../images/'+images[sideImageIdx]+'.png';
		setInterval('changeSideImg()',2000);
	}

function changeSideImg()
{	
		sideImageIdx++;
		var imgIdx = sideImageIdx%7;
		document.getElementById('home_img').src='../images/'+images[imgIdx]+'.png';
}

function attachEventListener(target, eventType, functionRef, capture)
{
  if (typeof target.addEventListener != "undefined")
  {
    target.addEventListener(eventType, functionRef, capture);
  }
  else if (typeof target.attachEvent != "undefined")
  {
    target.attachEvent("on" + eventType, functionRef);
  }
  else
  {
    eventType = "on" + eventType;

    if (typeof target[eventType] == "function")
    {
      var oldListener = target[eventType];

      target[eventType] = function()
      {
        oldListener();

        return functionRef();
      }
    }
    else
    {
      target[eventType] = functionRef;
    }
  }

  return true; 
}


function highlight(e)
{
//	var evt=(e != null)?e:window.event;
	if (!e) e=window.event;
//alert(typeof e);
	var elem = (e.target)?e.target:e.srcElement;

	elem.className='list_item_hover';
}

function no_highlight(evt)
{
	var evt=(evt != null)?evt:window.event;
	var elem = (evt.target)?evt.target:evt.srcElement;

	elem.className='list_item';
}

function show_sidebar(evt)
{
	var evt=(evt != null)?evt:window.event;
	var elem = (evt.target)?evt.target:evt.srcElement;
	var elemID = elem.id;
//alert(elemID);
//alert(elemID.indexOf('_'));
	var startPos = elemID.indexOf('_')+1;
	var thisID = elemID.substring(startPos,elemID.length);
//	alert(thisID);

	var oDivs = document.getElementsByTagName('div');
	for(d=0;d<oDivs.length;d++)
	{
		var thisDiv = oDivs[d];
		if(thisDiv.className=='sidebar_div') thisDiv.style.display='none';
	}

	var showSidebar = document.getElementById('sidebar_'+thisID);
	showSidebar.style.display='block';
}

function hide_sidebar()
{
	var oDivs = document.getElementsByTagName('div');
	for(d=0;d<oDivs.length;d++)
	{
		var thisDiv = oDivs[d];
		if(thisDiv.className=='sidebar_div') thisDiv.style.display='none';
	}

}
var currentlyActiveInputRef = false;
var currentlyActiveInputClassName = false;

function highlightActiveInput()
{
	if(currentlyActiveInputRef){
		currentlyActiveInputRef.className = currentlyActiveInputClassName;
	}
	currentlyActiveInputClassName = this.className;
	this.className = 'inputHighlighted';
	currentlyActiveInputRef = this;
	
	
}

function blurActiveInput()
{
	this.className = currentlyActiveInputClassName;
}


function initInputHighlightScript()
{
	var tags = ['INPUT','TEXTAREA'];
	
	for(tagCounter=0;tagCounter<tags.length;tagCounter++){
		var inputs = document.getElementsByTagName(tags[tagCounter]);
		for(var no=0;no<inputs.length;no++){
			if(inputs[no].className && inputs[no].className=='doNotHighlightThisInput')continue;
			
			if(inputs[no].tagName.toLowerCase()=='textarea' || (inputs[no].tagName.toLowerCase()=='input' && inputs[no].type.toLowerCase()=='text')){
				inputs[no].onfocus = highlightActiveInput;
				inputs[no].onblur = blurActiveInput;
			}
		}
	}
}

function validateForm(form)
{
	if(isNotEmpty(form.contact_name))
	{
		if(isNotEmpty(form.contact_email))
		{
			if(isEmailAddr(form.contact_email))
			{
				if(isNotEmpty(form.comment_text))
				{
					return true;
				}
			}
		}
	}
	return false;
}

function isNotEmpty(elem)
{
	var str = elem.value;
	if(str == null || str.length == 0)
	{
		alert("Please fill in the "+elem.prompt+" field.");
		return false;
	}
	else
	{
		return true;
	}
}

function isEmailAddr(elem)
{
	var str = elem.value;
	str=str.toLowerCase();
	if(str.indexOf('@') > 1)
	{
		var addr = str.substring(0,str.indexOf('@'));
		var domain = str.substring(str.indexOf('@')+1,str.length);
		if(domain.indexOf('.') == -1)
		{
			alert('Please verify the domain part of the email address');
			return false;
		}
	
		for (var i=0; i < addr.length;i++)
		{
			oneChar = addr.charAt(i).charCodeAt(0);
			if((i==0 && (oneChar == 45 || oneChar == 46)) ||
					(i==addr.length-1 && oneChar==46))
			{
				alert('Please verify the user name part of the email address');
				return false;
			}
			if(oneChar==45 || oneChar==46 || oneChar==95 || (oneChar > 47 && oneChar < 58) || (oneChar > 96 && oneChar < 123))
			{
				continue;
			}
			else
			{
				alert('Please verify the user name part of the email address');
				return false;
			} 
		}

		for (var i=0; i < domain.length;i++)
		{
			oneChar = domain.charAt(i).charCodeAt(0);
			if((i==0 && (oneChar == 45 || oneChar == 46)) ||
					((i==domain.length-1 || i==domain.length-2)  && oneChar==46))
			{
				alert('Please verify the domain part of the email address');
				return false;
			}
			if(oneChar==45 || oneChar==46 || oneChar==95 || (oneChar > 47 && oneChar < 58) || (oneChar > 96 && oneChar < 123))
			{
				continue;
			}
			else
			{
				alert('Please verify the domain part of the email address');
				return false;
			} 
		}
		return true;
	}
	alert('The email address may not be formatted correctly');
	return false;
}