  /**
  *   jsinclude.js by travis cline travis.cline@gmail.com
  *
  *
  */


  var W3CDOM = (document.createElement && document.getElementsByTagName);
  var mouseOvers = new Array();
  var mouseOuts = new Array();
  var mouseClicks = new Array();
  var imgSelected = '';
  var strPrefix = 'images/';
  var strSuffix = '.gif';
  var useSelected = false;
  var imgsBuilt = false;
  
  var strStates = new Array();
  strStates["norm"] = "";
  strStates["over"] = "-over";
  strStates["down"] = "-on";


function setUseSelected(useselected)
{
  useSelected = useselected;
}

function getUseSelected()
{
  return useSelected;
}

//window.onload = function(){addImgStates()};

function addImgStates(classToMatch, useMouseDown, mOver, mOut, mClick)
{
  // set default values
  if (classToMatch == null) { classToMatch = "imgrep" };
  if (useMouseDown == null) { useMouseDown = false };
  if (mOver == null) { mOver = strStates["over"]; }
  if (mOut == null) { mOut = strStates["norm"]; }
  if (mClick == null) { mClick = strStates["down"] }

	if (!W3CDOM) return;
	var imgs = document.getElementsByTagName('img');
	var inputs = document.getElementsByTagName('input');
	var objects = new Array();
	
	for (var k=0;k<imgs.length;k++)
	{
    objects.push(imgs[k]);
  }
	for (var j=0;j<inputs.length;j++)
	{
    objects.push(inputs[j]);
  }
  
	for (var i=0;i<objects.length;i++)
	{
	  if (objects[i].className != classToMatch) { continue; }
		objects[i].onmouseover = emouseOver;
		objects[i].onmouseout = emouseOut;
		if (useMouseDown) { objects[i].onclick = emouseClick; }

		var suffix = objects[i].src.substring(objects[i].src.lastIndexOf('.'));
		mouseOuts[i] = new Image();
		mouseOuts[i].src = objects[i].src;
		mouseOvers[i] = new Image();
		mouseOvers[i].src = objects[i].src.substring(0,objects[i].src.lastIndexOf('.')) + mOver + suffix;
		if (useMouseDown) {
	  	mouseClicks[i] = new Image();
  		mouseClicks[i].src = objects[i].src.substring(0,objects[i].src.lastIndexOf('.')) + mClick + suffix;
		}
		objects[i].number = i;
	}
	imgsBuilt = true;
}

function emouseOver()
{
	this.src = mouseOvers[this.number].src;
}

function emouseOut()
{
  this.src = mouseOuts[this.number].src;
  if (getUseSelected() && this.id == imgSelected)
  {
	  this.src = mouseClicks[this.number].src;
  }
}

function emouseClick()
{
	this.src = mouseClicks[this.number].src;
  if (this.id != imgSelected) {
    var oldSelected = imgSelected;
    imgSelected = this.id;
    changeImgState(oldSelected, 'norm', true);
  }
}

// first arg is img object id, second is state, third is to store/move the selected image state
// acceptable for second arg:
// norm, hover, down
function changeImgState(id, state, modifyselected)
{
  if (imgsBuilt == false) { return; }
  if (modifyselected == null) { modifyselected = false; }
  if (id == "") { return; }
  var img = new getObj(id);
  if (typeof img != 'object') { alert(typeof obj + '    aaaaiii!'); return; }
  if (!img) {       alert('is NOT ok  :' + id); }
    if (img) {
      // mod here
      if (imgSelected != id){
        if (modifyselected) {
          if (state == 'down'){
            var oldSelected = imgSelected;
            imgSelected = id;
            changeImgState(oldSelected, 'norm', true);
          }
        }
      }
      else
      {
        if (state == 'norm'){
          state = 'down';
        }
      }
      switch (state){
        case 'norm' :
          if (typeof mouseOuts[img.obj.number].src != 'string') {
            break;
          }
          img.obj.src = mouseOuts[img.obj.number].src;
          break;
        case 'over' :
          if (typeof mouseOvers[img.obj.number].src != 'string') {
            break;
          }
          img.obj.src = mouseOvers[img.obj.number].src;
          break;
        case 'down' :
          if (typeof mouseClicks[img.obj.number].src != 'string') {
            break;
          }
          img.obj.src = mouseClicks[img.obj.number].src;
          break;
      }
    }
}

function prodPop(url)
{
  newwin = window.open(url,'prodpop',"width=660,height=500,top=100,left=100,resizable=yes,scrollbars=no,menubar=no,toolbar=no,status=no,location=no")
	if (window.focus) {newwin.focus();}
	return false;
}

function clearleftnav()
{
  if (parent.sidenav){
    if (parent.sidenav.clearSelected){
      parent.sidenav.clearSelected();
    }
  }
}

function clearSelected(){
  var oldSelected = imgSelected;
  imgSelected = "";
  changeImgState(oldSelected, "norm", true);
}

function doComboNav(combo_id)
{
  var box = new getObj(combo_id);
  if (box)
  {
  	var destination = box.obj.options[box.obj.selectedIndex].value;
    if (parent.store){
    	if (destination) parent.store.location.href = destination;
   	}
    else{
    	if (destination) location.href = destination;
   	}
	}
}

function newImage(arg) {
  if (document.images) {
    var rslt = new Image();
    rslt.src = arg;
    return rslt;
  }
}

function getObj(name)
{
  if (document.getElementById)
  {
  	this.obj = document.getElementById(name);
  	this.style = document.getElementById(name).style;
  }
  else if (document.all)
  {
	this.obj = document.all[name];
	this.style = document.all[name].style;
  }
  else if (document.layers)
  {
	this.obj = getObjNN4(document,name);
	this.style = this.obj;
  }
}

function getObjNN4(obj,name)
{
	var x = obj.layers;
	var foundLayer;
	for (var i=0;i<x.length;i++)
	{
		if (x[i].id == name)
		 	foundLayer = x[i];
		else if (x[i].layers.length)
			var tmp = getObjNN4(x[i],name);
		if (tmp) foundLayer = tmp;
	}
	return foundLayer;
}


function thisImgOver()
{
  alert(this.name);
  changeImageState(this.name, 'over');
  return true;
}

function thisImgNorm()
{
  changeImageState(this.name, 'norm');
  return true;
}


 function addEvent(obj, eventType, afunction, isCapture) {
    if (typeof eventType == 'undefined') { return false; }
    // W3C DOM
    if (obj.addEventListener) {
       obj.addEventListener(eventType, afunction, isCapture);
       return true;
    }
    // Internet Explorer
    else if (obj.attachEvent) {
       return obj.attachEvent("on"+eventType, afunction);
    }
    else
    {
      switch(eventType){
        case 'click' : obj.onclick = afunction;
          break;
        case 'mouseover' : obj.onmouseover = afunction;
          break;
        case 'mouseout' : obj.onmouseout = afunciton;
          break;
      }
    }
    return false;
 }


