var tabBody = 'table-row';
if (document.all) {
  tabBody = 'block';
}
function showTab(rowname, tabClass) { 
  var tabs = document.getElementsBySelector('li.'+tabClass);
  if (tabs) {
	  for(var i = 0; i < tabs.length; i++) {
	    var tab = tabs[i];
	    var row = document.getElementById(tab.id + 'Contents');
	
	    row.style.display = 'none';
	    tab.className = tabClass;
	  }
  }
  
  var row = document.getElementById(rowname + 'Contents');
  var tab = document.getElementById(rowname);
  row.style.display = tabBody;
  tab.className = tabClass + ' selected' + tabClass;
  if (tab.getAttribute("url") != null) {
  	loadPage(tab.getAttribute("url"), rowname+'InnerContents'); 
  } else {
    repositionFooter();
  }
}

function showDynamicTab(rowname) { 
  showTab(rowname, "dynamictab");
  var tab = document.getElementById(rowname);
  var url = tab.getAttribute("baseUrl")+"/"+rowname;
  if (tab.pageid) url = url + "/" + tab.pageid;
  loadPage(url, rowname+"Contents");
}

function forceLoadPage(url, destinationElementId, showProgress) {
  $(destinationElementId).setAttribute("loaded", false);
  loadPage(url, destinationElementId, showProgress);
}

function loadPage(url, destinationElementId, showProgress) {
    urchinTracker(url);
	var loaded = $(destinationElementId).getAttribute("loaded");
	if (loaded == 'true') return;
	if (showProgress) {
	  $(destinationElementId).innerHTML = '<img src="/i/tj/images/progress_black.gif"/>';
	  repositionFooter();
	}
	if (url.indexOf("?") <= 0) url += "?"; else url += "&";
	url += "async=true";
    new Ajax.Updater(
    	destinationElementId, 
    	url, 
    	{
    		onComplete:function(){
    			$(destinationElementId).setAttribute("loaded", 'true');
    			repositionFooter();
    		},
		    asynchronous:true, 
		    evalScripts:true
		}
	);
}

function showAccordion(rowname, tabClass) { 
  var tabs = document.getElementsBySelector('h2.'+tabClass);
  if (tabs) {
	  for(var i = 0; i < tabs.length; i++) {
	    var tab = tabs[i];
	    var row = document.getElementById(tab.id + 'Contents');
	
	    row.style.display = 'none';
	    tab.className = tabClass;
	  }
  }
  
  var row = document.getElementById(rowname + 'Contents');
  var tab = document.getElementById(rowname);
  row.style.display = tabBody;
  tab.className = tabClass + ' selected' + tabClass;
}

function requiredInputField(el) {
    doRequiredValue(el.value, el.name + 'RequiredImage');
    el.onkeyup = function() {
      doRequiredValue(el.value, el.name + 'RequiredImage');
    }
}

function mouseOverImage(el) {
    el.onmouseover = function() {
      if(el.src.indexOf('_over') > 0) return;
      el.src = el.src.substring(0, el.src.length - 4) + '_over' + '.' + el.src.substring(el.src.length - 3);
    },
    el.onmouseout = function() {
      if(el.src.indexOf('_over') < 0) return;
      el.src = el.src.substring(0, el.src.length - 9) + '.' + el.src.substring(el.src.length - 3);
    }
}
  
function doRequiredValue(value, imageId) {
  var image = document.getElementById(imageId);
  if (value == null || value == '') {
    image.src = '/i/question.gif';
  } else {
    image.src = '/i/checked.gif';
  }
}

function underlineBox(el) {
    var oldFocus = el.onfocus;
    el.onfocus = function() {
      el.className = 'underlineHover';
      if (oldFocus) oldFocus();
    };
    var oldBlur = el.onblur;
    el.onblur = function() {
      el.className = 'underline';
      if (oldBlur) oldBlur();
    }
}

var tabRules = {
  'li.tab' : function(el) {
    el.onclick = function() {
      showTab(el.id, el.className);
    }
  }
};

var dynamicTabRules = {
  'li.dynamictab' : function(el) {
    el.onclick = function() {
      showDynamicTab(el.id);
    }
  }
};
  
var accordionRules = {  
  'h2.accordion' : function(el) {
    el.onclick = function() {
      showAccordion(el.id, el.className);
    }
  }
};

var requiredRules = {
  'input.required' : requiredInputField,
  'textarea.required' : requiredInputField
};

var mouseOverRules = {
  'input.mouseOver' : mouseOverImage,
  'img.mouseOver' : mouseOverImage
};

var underlineBoxRules = {
  'input.underline' : underlineBox
};

Behaviour.register(tabRules);
Behaviour.register(dynamicTabRules);
Behaviour.register(accordionRules);
Behaviour.register(mouseOverRules);
Behaviour.register(requiredRules);
Behaviour.register(underlineBoxRules);
    