addLoadListener(paging);
addLoadListener(buttonHovers);

function paging(){
	var promoID = document.getElementById('promos');
	if (!promoID) { return };
	var promos = promoID.getElementsByTagName('div');

	 if (promos.length > 1) {
	 	var prev = document.getElementById('previous');
		var next = document.getElementById('next');
		attachEventListener(prev, "click", scrollLeft, false);
		attachEventListener(next, "click", scrollRight, false);
	}

	attachEventListener(prev, "mouseover", hiliteArrow, false);
	attachEventListener(prev, "mouseout", resetArrow, false);
	attachEventListener(next, "mouseover", hiliteArrow, false);
	attachEventListener(next, "mouseout", resetArrow, false);
}

if (!i) {
	var i = 0;
	var j = 0;
}

function scrollLeft() {
	var promoID = document.getElementById('promos');
	var promos = promoID.getElementsByTagName('div');

	var current = promos[i];
	current.style.display = "none";

	if(j == 0) {
		j = promos.length - (i + 1);
	} else {
		j = j - 1;
	}

	var next = promos[j];
	next.style.display = "block";

	if(i == 0) {
		i = promos.length - 1;
	} else {
		i = i - 1;
	}
}


function scrollRight() {
	var promoID = document.getElementById('promos');
	var promos = promoID.getElementsByTagName('div');

	// i have to reset this value for ie, not sure why it's happenning
	if(i == promos.length) {
		i = 0;
	}
	var current = promos[i];
	current.style.display = "none";

	if(j == promos.length - 1) {
		j = 0;
	} else {
		j = i + 1;
	}
	var next = promos[j];
	next.style.display = "block";

	if(i == promos.length-1) {
		i = 0;
	} else {
		i = i + 1;
	}
}

/* arrow hovers */
function hiliteArrow(event) {
	if (typeof event == "undefined") {
		event = window.event;
	}
	var element = getEventTarget(event);
	if(element.parentNode.id == "previous") {
		var picture = "images/arrow_left_on.gif";
	} else if (element.parentNode.id == "next") {
		var picture = "images/arrow_right_on.gif";
	}
	element.src = picture;
}

function resetArrow(event) {
	if (typeof event == "undefined") {
		event = window.event;
	}
	var element = getEventTarget(event);
	if(element.parentNode.id == "previous") {
		var picture = "images/arrow_left.gif";
	} else if (element.parentNode.id == "next") {
		var picture = "images/arrow_right.gif";
	}
	element.src = picture;
}


/* go button hovers */
function buttonHovers() {
	var buttons = getElementsByAttribute("class", "button");

	for(var counter = 0; counter < buttons.length; counter++) {
		attachEventListener(buttons[counter], "mouseover", hiliteButton, false);
		attachEventListener(buttons[counter], "mouseout", resetButton, false);
	}
	return true;
}

function hiliteButton(event) {
	if (typeof event == "undefined") {
		event = window.event;
	}
	var element = getEventTarget(event);
	if(element.src.indexOf("go2.gif") != -1) {
		var picture = "images/go2_on.gif";
	} else if (element.src.indexOf("click_appoint.gif") != -1) {
		var picture = "images/click_appoint_on.gif";
	} else {
		var picture = "images/go_on.gif";
	}
	element.src = picture;
}

function resetButton(event) {
	if (typeof event == "undefined") {
		event = window.event;
	}
	var element = getEventTarget(event);
	if(element.src.indexOf("go2_on.gif") != -1) {
		var picture = "images/go2.gif";
	} else if (element.src.indexOf("click_appoint_on.gif") != -1) {
		var picture = "images/click_appoint.gif";
	} else {
		var picture = "images/go.gif";
	}
	element.src = picture;
}



/* utility functions -- no need to edit */

function nextSiblingElement(elem) {
	do {
	elem = elem.nextSibling;
	} while (elem && elem.nodeType != 3);
	return elem;
}

function addLoadListener(fn)
{
  if (typeof window.addEventListener != 'undefined')
  {
    window.addEventListener('load', fn, false);
  }
  else if (typeof document.addEventListener != 'undefined')
  {
    document.addEventListener('load', fn, false);
  }
  else if (typeof window.attachEvent != 'undefined')
  {
    window.attachEvent('onload', fn);
  }
  else
  {
    var oldfn = window.onload;
    if (typeof window.onload != 'function')
    {
      window.onload = fn;
    }
    else
    {
      window.onload = function()
      {
        oldfn();
        fn();
      };
    }
  }
}

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 getElementsByAttribute(attribute, attributeValue)
{
  var elementArray = new Array();
  var matchedArray = new Array();

  if (document.all)
  {
    elementArray = document.all;
  }
  else
  {
    elementArray = document.getElementsByTagName("*");
  }

  for (var i = 0; i < elementArray.length; i++)
  {
    if (attribute == "class")
    {
      var pattern = new RegExp("(^| )" + attributeValue + "( |$)");

      if (elementArray[i].className.match(pattern))
      {
        matchedArray[matchedArray.length] = elementArray[i];
      }
    }
    else if (attribute == "for")
    {
      if (elementArray[i].getAttribute("htmlFor") || elementArray[i].getAttribute("for"))
      {
        if (elementArray[i].htmlFor == attributeValue)
        {
          matchedArray[matchedArray.length] = elementArray[i];
        }
      }
    }
    else if (elementArray[i].getAttribute(attribute) == attributeValue)
    {
      matchedArray[matchedArray.length] = elementArray[i];
    }
  }

  return matchedArray;
}

function getEventTarget(event) {
	var targetElement = null;

	if (typeof event.target != "undefined") {
		targetElement = event.target;
	} else {
		targetElement = event.srcElement;
	}

	while (targetElement.nodeType == 3 && targetElement.parentNode != null) {
		targetElement = targetElement.parentNode;
	}

	return targetElement;
}

    function load(lat, lon) {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        var latlng = new GLatLng(lat, lon);

        map.setCenter(latlng, 13);
        map.addOverlay(new GMarker(latlng));

      }
    }

function clearOnFocus(field) {
	var clear_field = document.getElementById(field);
	if (clear_field.value == "Enter Your Zip Code") {
		clear_field.value = "";
	}
}