﻿function swapImage(imageToChangeID, imageSRC)
{
    //  Swap image
    var imageToSwap
    imageToSwap = document.getElementById(imageToChangeID);
    
    imageToSwap.src = imageSRC;
}

function swapInnerHTML(elementID, newText)
{
    //  Swap inner HTML
    var element
    element = document.getElementById(elementID);
    
    element.innerHTML = newText;
}

function swapHref(elementID,newHref)
{
    var element
    element = document.getElementById(elementID);
    element.href = newHref;
}


function inputStyle(inputID)
{
    //  Change style
    var inputBox
    inputBox = document.getElementById(inputID);

    if (inputBox.className == "inputOver")
    {
        inputBox.className = "inputOut";
    }
    else
    {
        inputBox.className = "inputOver";
    }
}  


function changeStyle(elementID,cssClass)
{
    //  Change style
    var element
    element = document.getElementById(elementID);

    element.className = cssClass;
}  
 
function changeStyle2(topElementID,elementID,cssClass)
{
    //  Change style
    var topElement
    topElement = document.getElementById(topElementID);
    var element
    element = document.getElementById(elementID);
    
    for(var i=0;i<topElement.childNodes.length;i++)
    {
        var link
        link = topElement.childNodes[i];
        if (link.childNodes.length>0)
            link.childNodes[0].className = "";
    }

    element.className = cssClass;
}   

function confirmMsg(message)
{
    // Show a confirmation message
    
    if (confirm(message))
        return true;
    else
        return false;
}

function onClickMenu(elementID)
{
    var justChanged = true;
    var menu;
    menu = document.getElementById(elementID);
    
    if (menu.style.display == "block")
    {
        menu.style.display = "none";
    }
    else
    {
        menu.style.display = "block";
    }
    
    menu.offclick = function(e)
    {
      if (!justChanged)
      {
        // Hide dropdown                                                                       
        menu.style.display = "none";
        
        removeEventBase(document, 'click', this.offclick, menu.id);
      }
      else
      {                               
        justChanged = false;
      }
    }.bind(menu);

    addEventBase(document, 'click', menu.offclick, menu.id);
}

function addEventBase(obj, type, fn, name_hash)
{
	if (obj.addEventListener)
		obj.addEventListener( type, fn, false );
	else if (obj.attachEvent)
	{
                obj["e"+type+fn+name_hash] = fn;
		obj[type+fn+name_hash] = function() { obj["e"+type+fn+name_hash]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn+name_hash] );
          
	}
}

function search(elementID)
{
    var element
    element = document.getElementById(elementID);
    
    if (element.value == "Search")
        element.value = "";
    else if (element.value == "")
        element.value = "Search";
}

function positionBox(boxID,e)
{
    var box;
    box = document.getElementById(boxID);
        
    var obj2 = document.getElementById("box");
    // Find the content offsetTop and offsetLeft relative to the BODY tag.
    var objLeft   = obj2.offsetLeft;
    var objTop    = obj2.offsetTop;
    var objParent = obj2.offsetParent;
    while(objParent.tagName.toUpperCase() != 'BODY') {
        objLeft  += objParent.offsetLeft;
        objTop -= objParent.offsetTop;
        objParent = objParent.offsetParent;
    }    
    
    var leftX;
    var topY;
    leftX = e.clientX - objLeft + 40;
    topY = e.clientY - objTop;
    
    if (leftX > 500)
        leftX = leftX - 500;
    
    box.style.position = "absolute";
    box.style.left = leftX +"px";
    box.style.top = topY +"px";
    
    var top;
    top = document.getElementById("top");
    var left;
    left = document.getElementById("left");
    
    top.value = topY;
    left.value = leftX;
}

// Limit text size in TextArea controls
function textAreaLimit(src, length){
    var taObj = src;
    if (navigator.appName == 'Netscape')
        return; // Ignore
    else
    {
        if (taObj.value.length == length * 1) 
            return false;
    }
}
// TextArea character counetrs
function textAreaCount(src, counter, length) { 
    var oTextArea = src;
    var oCounter = getObject(counter);
    if (oTextArea.value.length > length * 1)
        oTextArea.value = oTextArea.value.substring(0, length * 1);
    if (oCounter) 
        oCounter.innerHTML = length - oTextArea.value.length;
}
// Generic get object function
function getObject(obj) {
  var theObj;
  if(document.all) {
    if(typeof obj=="string") {
      return document.all(obj);
    } else {
      return obj.style;
    }
  }
  if(document.getElementById) {
    if(typeof obj=="string") {
      return document.getElementById(obj);
    } else {
      return obj.style;
    }
  }
  return null;
}