﻿
//  TITLE:  Image Swap
//  Task:   Handles preloading of any images and swaping information on pages
//  Author: Adam Smith
//  Date:   Oct 24, 2008
//  Resource:   macromedia dreamweaver image swap


/********************** page communication **********************/

/****** useage ********
<body  onload="preloadImages('images/cigars1.jpg')">

<a href="#" onmouseout="swapImgRestore()" onmouseover="swapImage('Image1','','images/cigars1.jpg',1)">
    <img src="startupimg.jpg" name="Image1" width="997" height="911" border="0" id="Image1" />
</a>



<a href="#" onmouseout="swapParaRestore()" onmouseover="swapParagraph('test','','Here is <table><tr><td>blue</td></tr></table>some text with a <b>list</b> <u>thank</u> you', 1)">
put mouse over here to change</a>

<p id="test">This is the original text </p>


/********************** functions **********************/

// JScript File

function TransitionPicture(pictureName, imageFile)
{
  var picture = document.getElementById(pictureName);
  if (picture.filters)
  {
    picture.style.filter="blendTrans(duration=.8)";
    picture.filters.blendTrans.Apply();
  }
  picture.src = imageFile;
  if (picture.filters)
  {
    picture.filters.blendTrans.Play();
  }
}



function swapImgRestore() 
{
    var index;  //i
    var imageToRestore;  //x
    var _imgSrcArray = document.imgSrcArray;  //a

    for(index = 0; 
      _imgSrcArray && 
      index < _imgSrcArray.length && 
      (imageToRestore = _imgSrcArray[index]) && 
      imageToRestore.oldSrc; 
      index++) 
        imageToRestore.src = imageToRestore.oldSrc;
}

function preloadImages() 
{
    var doc = document;  //d
    
    if(doc.images)
    { 
        if(!doc.imgArray) 
            doc.imgArray = new Array();  //doc.p
        
        var index;  //i
        var arrayLength = doc.imgArray.length;  //j
        var preLoadArgs = preloadImages.arguments;   //a
        
        for(index = 0; index < preLoadArgs.length; index++)
            if (preLoadArgs[index].indexOf("#") != 0)
            {
                doc.imgArray[arrayLength] = new Image; 
                doc.imgArray[arrayLength++].src = preLoadArgs[index];
            }
    }
}

function findObj(objToFind, doc)  //objToFind=n, doc=d
{
    var indexOfParentName;  //p
    var index;  //i
    var foundObj;  //x
    
    if(!doc) 
        doc = document; 
        
    if((indexOfParentName = objToFind.indexOf("?")) > 0 && parent.frames.length) 
    {
        doc = parent.frames[objToFind.substring(indexOfParentName + 1)].document; 
        objToFind = objToFind.substring(0, indexOfParentName);
    }
    
    if(!(foundObj = doc[objToFind]) && doc.all) 
        foundObj = doc.all[objToFind]; 
    
    for (index = 0; !foundObj && index < doc.forms.length; index++) 
        foundObj = doc.forms[index][objToFind];
        
    for(index = 0; !foundObj && doc.layers && index < doc.layers.length; index++) 
        foundObj = findObj(objToFind, doc.layers[index].document);
        
    if(!foundObj && doc.getElementById) 
        foundObj = doc.getElementById(objToFind); 
        
    return foundObj;
}

function swapImage() 
{ 

    var index;  //i
    var arrIndex = 0;  //j
    var currentImg;  //x
    var swapArgs = swapImage.arguments;  //a
    
    document.imgSrcArray = new Array;  //document.sr
    
    for(index = 0; index < (swapArgs.length - 2); index += 3)
        if ((currentImg = findObj(swapArgs[index])) != null)
        {
            document.imgSrcArray[arrIndex++] = currentImg; 
            
            if(!currentImg.oldSrc) 
                currentImg.oldSrc = currentImg.src; 
        
            currentImg.src = swapArgs[index + 2];
        }
}

function swapParaRestore() 
{
    var index;  //i
    var paraToRestore;  //x
    var _paraSrcArray = document.paraSrcArray;  //a

    for(index = 0; 
      _paraSrcArray && 
      index < _paraSrcArray.length && 
      (paraToRestore = _paraSrcArray[index]) && 
      paraToRestore.oldinnerHTML; 
      index++) 
        paraToRestore.innerHTML = paraToRestore.oldinnerHTML;
}

function swapParagraph() 
{ 
    var index;  //i
    var arrIndex = 0;  //j
    var currentParagraph;  //x
    var swapArgs = swapParagraph.arguments;  //a
    
    document.paraSrcArray = new Array;  //document.sr
    
    for(index = 0; index < (swapArgs.length - 2); index += 3)
        if ((currentParagraph = findObj(swapArgs[index])) != null)
        {
            document.paraSrcArray[arrIndex++] = currentParagraph; 
            
            if(!currentParagraph.oldinnerHTML) 
                currentParagraph.oldinnerHTML = currentParagraph.innerHTML; 
        
            currentParagraph.innerHTML = swapArgs[index + 2];
        }
}
