window.addEvent('domready', function(){
  nclud.formManager.initSelects();
  nclud.tabInit();
  nclud.javascript_hide();
  nclud.javascript_block();
  nclud.javascript_inline();
	nclud.flyover();
});

var nclud = (function () {
  return {
    formManager: (function() {
      return {
        initSelects: function() {
          selects = $ES('select.submit-on-change');
          for (var i = 0; i < selects.length; i++) {
            selects[i].onchange = function () {
              var myForm = this.parentNode;
              var foundIt = null;
              while (foundIt == null) {
                if (myForm.nodeName.toLowerCase() == 'form') {
                  foundIt=true;
                } else {
                  myForm = myForm.parentNode;
                }
              } /* end while */
              myForm.submit();
            }
          }
        }
      }
    })(),
    tabInit: function () {
			var tabbed_boxes = $ES('.tabbed_box');
			/*console.log(tabbed_boxes);*/
			var tabbed_box_click = function (event) {
				var event = new Event(event);
				if (event.target.nodeName.toLowerCase() != 'span') {
					eventTarget = $E('span',event.target);
				} else {
					eventTarget = event.target;
				}
				/*console.log(eventTarget);*/
				if (eventTarget && eventTarget.parentNode.parentNode.parentNode.nodeName.toLowerCase() == 'ul') {
					var tabUL = eventTarget.parentNode.parentNode.parentNode;
					/*console.log(tabUL);*/
					var tabAs = $ES('a',tabUL);
					/*console.log(tabAs);*/
					var tabSPANs = $ES('span', tabUL);
					/*console.log(tabSPANs);*/
					var potentialBox = tabUL.getNext();
					if (potentialBox.hasClass('box')) {
						var tabContents = $ES('.tabcontent',potentialBox);
					} else {
						/*console.log('error');*/
						return false;
					}
					tabSPANs.each(function (SPAN, i) {
						if (SPAN==eventTarget) {
							/*console.log('you clicked this one: ',SPAN);*/
							tabUL.removeClass('tab-position-1');
							tabUL.removeClass('tab-position-2');
							tabUL.removeClass('tab-position-3');
							tabUL.addClass('tab-position-'+(i+1));
							tabAs[i].addClass('active');
							tabContents[i].addClass('tabcontentactive');
						} else {
							/*console.log('you DIDNT clicked this one: ',SPAN);*/
							tabAs[i].removeClass('active');
							tabContents[i].removeClass('tabcontentactive');
						}
					});
					return false;
					} else {
					/*console.log('error');*/
				}
			}
			tabbed_boxes.each(function (tabbed_box) { 
				tabbed_box.onclick = tabbed_box_click.bindAsEventListener(tabbed_box);
			});
    },
    tab: function (id) {
    },
    javascript_hide: function () {
      var elements = $ES('.javascript_hide');
      elements.each(function (element) {
        element.style.display='none';
      });
    },
    javascript_block: function () {
      var elements = $ES('.javascript_block');
      elements.each(function (element) {
        element.style.display='block';
      });
    },
    javascript_inline: function () {
      var elements = $ES('.javascript_inline');
      elements.each(function (element) {
        element.style.display='inline';
      });
    },
		flyover: function () {
			var flyoverUL = $E('#flyover');
			var flyoverLIs = flyoverUL.getChildren();
			var mouseenterFunction = function () {
				var subnav = $E('ul.display-none',this);
				if (subnav) {
					subnav.style.display='block';
				}
				this.addClass('hover');
			}
			var mouseleaveFunction = function () {
				var subnav = $E('ul.hover',this);
				if (subnav) {
					subnav.style.display='none';
				}
				this.removeClass('hover');
			}
			flyoverLIs.each(function (LI) {
				LI.addEvent('mouseover', mouseenterFunction);
				LI.addEvent('mouseleave', mouseleaveFunction);
			});
	 	}
  }
})();

