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 toggleClass(elementID, originalCss, newCss)
{
    var element;
    element = document.getElementById(elementID);
    
    if(element==null)
        return;
    
    if (element.className == originalCss)
        element.className = newCss;
    else
        element.className = originalCss;
}

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 showHide(elementID)
{
    // Show or hide an element
    var element
    element = document.getElementById(elementID);
    
    if (element.style.display == "block")
    {
        element.style.display = "none";;
    }
    else
    {
        element.style.display = "block";;
    }
}

function showHide2(elementID)
{
    // Show or hide an element
    var element
    element = document.getElementById(elementID);
    
    if (element.style.display == "none")
    {
        element.style.display = "block";;
    }
    else
    {
        element.style.display = "none";;
    }
}

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 SITE")
        element.value = "";
    else if (element.value == "")
        element.value = "SEARCH SITE";
}

function positionBox(boxID,e)
{
    var box;
    box = document.getElementById(boxID);
        
    var obj2 = document.getElementById("mm");
    // 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;
    }
    
    box.style.position = "absolute";
    box.style.left = e.clientX - objLeft + 40 +"px";
    box.style.top = objTop +"px";
}


function countCharacters(elementID,charactersAllowed,e)
{
    var element;
    var keyCode;
    
    element = document.getElementById(elementID);
    
    // Look for a label that can be written to so we can show how many characters have been typed
    var lblResult;
    lblResult = document.getElementById(elementID+"_Result");
    if (lblResult != null)
    {
        var count = element.value.length;
        if (element.value == "")
            count = 0;
        lblResult.innerHTML = "("+ count +"/"+ charactersAllowed +")";
    }

    if (window.event)
        keyCode = window.event.keyCode;
    else
        keyCode = e.which; 

    if (count > charactersAllowed)
    {
        element.className = "inputError";
        return false;
    }
    
    element.className = "inputOver";

    return true;
}


function populateTitle(target,element)
{
    var element = document.getElementById(element);
    var target = document.getElementById(target);
    
    if (element == null || target == null)
        return;
        
    if (target.value != null)
    {        
        if (target.value.length > 0)
            return;
            
        target.value = element.value;
    }
    else if (target.innerHtml != null)
    {
        if (target.innerHtml.length > 0)
            return;
            
        target.innerHtml = element.value;
    }
}


function showBlock(element)
{
    var ele = document.getElementById(element);
    
    if (element == null)
        return;
        
    Effect.toggle(element, 'blind');
}


function drag(element)
{
    var ele = document.getElementById(element);
    
    if (ele == null)
        return;
    
    new Draggable(element,{snap:25,onStart:function(){ele.className="helpDrag";}});
}

function deleteElement(element)
{
    var ele = document.getElementById(element);
    
    if (ele == null)
        return;

    if (confirm('Are you sure you want to delete this link?'))
    {
        /*new Effect.Pulsate(ele,{pulses: 1, duration: 1.5, from: 0.7, afterFinish: function() { return true; }});*/
        new Effect.Fade(ele, {afterFinish: function() { return true; } });
    }
    else
    {
        return false;
    }    
}



function test(e,divbox)
{
    
   var panel = document.getElementById(divbox);

   panel.style.left = Event.pointerX(e)-100 + 'px';
   panel.style.top = Event.pointerY(e)-100 + 'px';
    
    //panel.style.left = '0px';
    //panel.style.top = '0px';
    
    Effect.Appear(divbox,{duration:0.3});
    
}


function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6.
{
   var arVersion = navigator.appVersion.split("MSIE")
   var version = parseFloat(arVersion[1])
   if ((version >= 5.5) && (document.body.filters)) 
   {
      for(var i=0; i<document.images.length; i++)
      {
         var img = document.images[i]
         var imgName = img.src.toUpperCase()
         if (imgName.substring(imgName.length-3, imgName.length) == "PNG" && imgName.indexOf("GOOGLE") < 0)
         {
            var imgID = (img.id) ? "id='" + img.id + "' " : ""
            var imgClass = (img.className) ? "class='" + img.className + "' " : ""
            var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
            var imgStyle = "display:inline-block;" + img.style.cssText 
            if (img.align == "left") imgStyle = "float:left;" + imgStyle
            if (img.align == "right") imgStyle = "float:right;" + imgStyle
            if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
            var strNewHTML = "<span " + imgID + imgClass + imgTitle
            + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
            + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
            + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
            img.outerHTML = strNewHTML
            i = i-1
         }
      }
   }

   if (version <= 6)
      alphaBackgrounds();     
}

function alphaBackgrounds(){
    if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && window.attachEvent)
    {
        var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
        var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5);
        for (i=0; i<document.all.length; i++){
            var bg = document.all[i].currentStyle.backgroundImage;
            if (itsAllGood && bg && bg.toUpperCase().indexOf("TRANSPARENTGRAD") < 0 && bg.toUpperCase().indexOf("MENU") < 0){
                if (bg.match(/\.png/i) != null){
                    var mypng = bg.substring(5,bg.length-2);
                    document.all[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mypng+"', sizingMethod='scale')";
                    document.all[i].style.backgroundImage = "url('/templates/dyersmm/images/layout/spacer.gif')";
                }
            }
        }
    }
}

if (window.addEventListener) //DOM method for binding an event
    window.addEventListener("load", correctPNG, false);
else if (window.attachEvent) //IE exclusive method for binding an event
    window.attachEvent("onload", correctPNG)
else if (window.attachEvent) //support older modern browsers
{
    //window.onload=correctPNG;
    window.attachEvent("onload", correctPNG);
    //window.attachEvent("onload", alphaBackgrounds);
}

/*******************************
Overlays
*******************************/

var popTop = 0; var theTop = 0; var old = 0; var temp = null;

function show_overlay()
{
    var overlay = document.getElementById("greyoverlay");
    overlay.style.height = f_documentHeight();
    //alert("overlay.style.height: "+overlay.style.height);
    overlay.style.display = "block";
    
    var obj = document.getElementById("overlayPanel");
    positionObject(obj);
}

function hide_overlay() {
    var obj = document.getElementById("overlayPanel");
    obj.style.display = "none";
    var objOverlay = document.getElementById("greyoverlay");
    objOverlay.style.display = "none";
}

function positionObject(obj)
{
    var winHeight = f_clientHeight();
    var scrollYPos = f_scrollTop();
    obj.style.top = (winHeight / 2) + scrollYPos + "px";
    
    var winWidth = f_clientWidth();
    var scrollXPos = f_scrollLeft();
    obj.style.left = (winWidth / 2) + scrollXPos + "px";
    
    obj.style.display = "block";
    //moveBg();
}

function moveBg()
{
    var obj = document.getElementById("overlayPanel");
    var overlay = document.getElementById("greyoverlay");
    var pos = f_scrollTop();
    if (popTop + pos != old)
    {
        overlay.style.top = pos + "px";
        overlay.style.width = f_clientWidth() + "px";
        overlay.style.height = f_clientHeight() + "px";
    } 
    old = popTop + pos;
    if (overlay.style.display == "block")
        temp = setTimeout("moveBg()",100);
}

function f_clientWidth(){
    try
    {
        if (window.innerWidth)
            return window.innerWidth;
        else if (document.documentElement && document.documentElement.clientWidth)
            return document.documentElement.clientWidth;
        else if (document.body)
            return document.body.clientWidth;
    }
    catch(e)
    {
        return 0;
    } 
}

function f_clientHeight(){
    try
    {
        if (window.innerHeight)
            return window.innerHeight;
        else if (document.documentElement && document.documentElement.clientHeight)
            return document.documentElement.clientHeight;
        else if (document.body)
            return document.body.clientHeight;
    }
    catch(e)
    {
        return 0;
    } 
}

function f_scrollTop(){
    try
    {
        if (window.pageYOffset)
            return window.pageYOffset;
        else if (document.documentElement && document.documentElement.scrollTop)
            return document.documentElement.scrollTop;
        else if (document.body)
            return document.body.scrollTop;
    }
    catch(e)
    {
        return 0;
    } 
}

function f_scrollLeft(){
    try
    {
        if (window.pageXOffset)
            return window.pageXOffset;
        else if (document.documentElement && document.documentElement.scrollLeft)
            return document.documentElement.scrollLeft;
        else if (document.body)
            return document.body.scrollLeft;
    }
    catch(e)
    {
        return 0;
    } 
}

function f_scrollHeight(){
    try
    {
        if (window.pageYOffset)
            return window.pageYOffset;
        else if (document.documentElement && document.documentElement.scrollTop)
            return document.documentElement.scrollTop;
        else if (document.body)
            return document.body.scrollTop;
    }
    catch(e)
    {
        return 0;
    } 
}

function f_documentHeight()
{
    var doc_height = document.height ? document.height : 0; // Safari uses document.height

    if (document.documentElement && document.documentElement.scrollHeight) /* Strict mode */
        return Math.max(document.documentElement.scrollHeight, doc_height) + "px";
    else /* quirks mode */
        return Math.max(document.body.scrollHeight, doc_height) + "px";
} 

function SubmitForm(url) {
    document.forms[0].action = url;
    document.forms[0].submit();
}
