﻿// Solid cross-browser method of attaching events
function addEvent(obj, type, fn)
{
	if (obj.addEventListener)
		obj.addEventListener(type, fn, false);
	else if (obj.attachEvent)
	{
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
}
// Register a function to run when the page loads
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

// Image rollover for logo
var objLogoA;
var objLogoImg;
var preloadImg;

function initLogo() {
    if (document.getElementById&&document.getElementsByTagName&&document.images) {
        objLogoA = document.getElementById('logoLink');
        if (objLogoA) {
            objLogoImg = objLogoA.getElementsByTagName('img')[0];
            objLogoA.onmouseover = logoOn;
            objLogoA.onmouseout = logoOff;
            // Preload hover image
            preloadImg = new Image(180,85);
            preloadImg.src = '/images/common/logo-hover.png';
        }
    }
}

function logoOn() {
    objLogoImg.src = preloadImg.src;
}

function logoOff() {
    objLogoImg.src = '/images/common/logo.png';
}

addLoadEvent(initLogo);

// Shade alternate rows on tables with "stripey" class
function stripeyTables() {

    // Check for DOM support
    if (document.getElementById&&document.getElementsByTagName) {
    
        // Loop through all tables in document
        var objTables = document.getElementsByTagName('table');
        var i;
        for(i=0;i<objTables.length;i++) {
        
            // Look for tables with className = 'stripey'
            if (objTables[i].className.match(/\bstripey\b/)) {

                // Loop through all rows in the table
                var objTrs = objTables[i].getElementsByTagName('tbody')[0].getElementsByTagName('tr');
                var j;
                for (j=0;j<objTrs.length;j++) {

                    // Pick out odd numbered rows
                    if (j % 2 == 1) {
                    
                        // Is there an existing class applied to this row
                        if (objTrs[j].className == '') {
                        
                            // No - set class = 'shaded'
                            objTrs[j].className = 'shaded';
                        } else {
                        
                            // Yes - add class 'shaded' to end of class attribute
                            objTrs[j].className += ' shaded';
                        }
                    }
                }
            }
        }
    }
}

addLoadEvent(stripeyTables);




// From old misc-functions.js

// Function to open new window
function newWindow(url) {
    // make window slightly smaller than user's screen width, so it's obvious that
    // a new window has been opened
    winW = screen.availWidth - 100;
    winH = screen.availHeight - 100;
    // open the new window - if the window fails to open, the function will return
    // false and the browser will follow the original link
    return !window.open(url,'sheehans2','status=1,menubar=1,scrollbars=1,resizable=1,toolbar=0,width='+winW+',height='+winH+',screenX=50,screenY=50,left=50,top=50');
}
function ddlOther(idOfDDL,idOfTextBox,idOfLabel) {
    var objDDL = document.getElementById(idOfDDL);
    var objTextBox = document.getElementById(idOfTextBox);
    var objLabel = document.getElementById(idOfLabel);
    if (objDDL.options[objDDL.options.selectedIndex].value=='Other') {
        showOther(objLabel,objTextBox);
        fs(idOfTextBox);
    }else{
        hideOther(objLabel,objTextBox);
    }
}
function showIfNotEmpty(idOfTextBox,idOfLabel) {
    var objTextBox = document.getElementById(idOfTextBox);
    var objLabel = document.getElementById(idOfLabel);
    if (objTextBox.value!='') {
        showOther(objLabel,objTextBox);
    }
}
function showOther(objLabel,objTextBox) {
    objLabel.style.display='inline';
	objTextBox.style.display='inline';
}
function hideOther(objLabel,objTextBox) {
    objLabel.style.display='none';
	objTextBox.style.display='none';
}
function showElement(elementID) {
    var obj = document.getElementById(elementID)
    obj.style.display='block';
}
function hideElement(elementID) {
    var obj = document.getElementById(elementID)
    obj.style.display='none';
}
function showHelp(linkContainerID, helpTextID) {
    var objContainer = document.getElementById(linkContainerID);
    removeChildren(objContainer);
    var objA = document.createElement('a');
    var objText = document.createTextNode('[-] Hide Help');
    objA.setAttribute('href','#');
    objA.onclick = new Function('javascript:hideHelp(\''+linkContainerID+'\',\''+helpTextID+'\');return false');
    objA.appendChild(objText);
    objContainer.appendChild(objA);
    showElement(helpTextID);
}
function hideHelp(linkContainerID, helpTextID) {
    var objContainer = document.getElementById(linkContainerID);
    removeChildren(objContainer);
    var objA = document.createElement('a');
    var objText = document.createTextNode('[+] Show Help');
    objA.setAttribute('href','#');
    objA.onclick = new Function('javascript:showHelp(\''+linkContainerID+'\',\''+helpTextID+'\');return false');
    objA.appendChild(objText);
    objContainer.appendChild(objA);
    hideElement(helpTextID);
}
function showOtherMulti(textBoxID, linkContainerID, boxContainerID) {
    var objContainer = document.getElementById(linkContainerID);
    removeChildren(objContainer);
    var objText = document.createTextNode('Other... ');
    objContainer.appendChild(objText);
    var objSmall = document.createElement('small');
    var objA = document.createElement('a');
    var objAText = document.createTextNode('(Remove)');
    objA.setAttribute('href','#');
    objA.onclick = new Function('javascript:hideOtherMulti(\''+textBoxID+'\',\''+linkContainerID+'\',\''+boxContainerID+'\');return false');
    objA.appendChild(objAText);
    objSmall.appendChild(objA)
    objContainer.appendChild(objSmall);
    showElement(boxContainerID);
}
function hideOtherMulti(textBoxID, linkContainerID, boxContainerID) {
    var objTextBox = document.getElementById(textBoxID);
    objTextBox.value = '';
    var objContainer = document.getElementById(linkContainerID);
    removeChildren(objContainer);
    var objA = document.createElement('a');
    var objAText = document.createTextNode('[+] Add other(s)...');
    objA.setAttribute('href','#');
    objA.onclick = new Function('javascript:showOtherMulti(\''+textBoxID+'\',\''+linkContainerID+'\',\''+boxContainerID+'\');return false');
    objA.appendChild(objAText);
    objContainer.appendChild(objA);
    hideElement(boxContainerID);
}
function showIfNotEmptyMulti(textBoxID, linkContainerID, boxContainerID) {
	var objTextBox = document.getElementById(textBoxID);
	if (objTextBox.value!='') {
		showOtherMulti(textBoxID, linkContainerID, boxContainerID);
	}else{
	    hideOtherMulti(textBoxID, linkContainerID, boxContainerID);
	}
}
function removeChildren(obj) {
    while (obj.hasChildNodes()) {
        obj.removeChild(obj.childNodes[0]);
    }
}
// trigger a click event on the correct submit button when Enter key is pressed in a
// form field.  This stops problems with default submit button being activated when
// form validation code detects errors.  Add to the onkeypress event of text fields
// etc
function doEnterKey(e, buttonId) {
    if (document.getElementById){
        var code;
        if (!e) {var e = window.event}
        if (e.keyCode) {code = e.keyCode}
        else if (e.which) {code = e.which}
        if (code==13) {
            e.returnValue = false;
            e.cancel = true;
            var objBtn = document.getElementById(buttonId);
            objBtn.click();
        } 
        return (code!=13);
    }
}