/**
 * <p>Title: utils.js</p>
 * <p>Description: JavaScript utility functions.</p>
 * <p>Copyright: Copyright (c) 2006, Marc Dorsa.</p>
 */

// constants
var showHeaderTypeHome      = 0;
var showHeaderTypeNonHome   = 1;
var showHeaderTypeMarc      = 2;
var showHeaderTypeChrista   = 3;
var showHeaderTypeMoon      = 4;

var buttonTypeCD            = 1;
var buttonTypeSongbook      = 2;
var buttonTypeItunes        = 3;

/**
 * Displays a GIF image by replacing the source reference.
 * 
 * @param   imageId     Image tag id.
 * @param   isHilight   True=show hilight image.
 * @return  None.
 */
function jsShowImageGif(imageId, isHilight) {
    document.images[imageId].src = "images/" + imageId + (isHilight ? "1":"") + ".gif";
}

/**
 * Displays a JPG image by replacing the source reference.
 * 
 * @param   imageId     Image tag id.
 * @param   isHilight   True=show hilight image.
 * @return  None.
 */
function jsShowImageJpg(imageId, isHilight) {
    document.images[imageId].src = "images/" + imageId + (isHilight ? "1":"") + ".jpg";
}

/**
 * Displays a static image by replacing the source reference.
 * 
 * @param   imageId     Image tag id.
 * @param   imageFile   Image file.
 * @return  None.
 */
function jsShowImageStatic(imageId, imageFile) {
    document.images[imageId].src = "images/" + imageFile;
}

/**
 * Displays the page header.
 * 
 * @param   headerType  Type of header to display, showHeaderTypeXXX.
 * @return  None.
 */
function jsShowHeader(headerType) {
    var headerImage = "header.gif";
    var titleText   = "Home";
    var href        = "index.html";
    var coords      = "0,0,200,38";

    // determine header image to display
    if(headerType == showHeaderTypeMarc) {
        headerImage = "header_marc.gif";
        coords      = "79,12,266,36";
    }
    else if(headerType == showHeaderTypeChrista) {
        headerImage = "header_christa.gif";
        coords      = "79,12,266,36";
    }
    else if(headerType == showHeaderTypeMoon) {
        headerImage = "header_moon.gif";
        coords      = "79,12,266,36";
    }

    // display header
    document.write('<table class="PageWidth" border="0" cellspacing="0" cellpadding="0">');
    document.write('  <tbody>');
    document.write('  <tr>');
    document.write('    <td>');
    document.write('      <img src="images/' + headerImage + '" align="top" border="0" usemap="#map_header" alt="">');
    document.write('      <map name="map_header">');
    document.write('        <area shape="rect" alt="" title="Send us an email!" coords="648,42,795,51" href="mailto:music@inrwrldmusic.com">');
    if(headerType != showHeaderTypeHome) {
        // only display home link for a non-home page
        document.write('        <area shape="rect" title="' + titleText + '" coords=' + coords + '" href="index.html">');
    }
    document.write('      </map>');
    document.write('    </td>');
    document.write('  </tr>');
    document.write('  </tbody>');
    document.write('</table>');
}

/**
 * Displays the page footer.
 * 
 * @param   isHomePage      True=this is for the Home page, false if not.
 * @param   displayTable    True=display footer in a table, false=don't display table.
 * @return  None.
 */
function jsShowFooter(isHomePage, displayTable) {
    var titleText;
    var href;
    var footerImage     = "footer";
    var jsFooterImage   = "'footer'";

    // determine image title text and href
    if(isHomePage) {
        titleText   = "'About Marc and Christa.'";
        href        = "'twins_bio.html'";
    }
    else {
        titleText   = "'Home'";
        href        = "'index.html'";
    }

    // display start of footer table
    if(displayTable) {
        document.write('<table width="100%" border="0" cellspacing="0" cellpadding="0">');
        document.write('  <tbody>');
        document.write('  <tr>');
        document.write('    <td align="center">');
    }

    // display the footer image with image map
    document.write('<img src="images/' + footerImage + '.gif" align="top" border="0" name="' + footerImage + '" usemap="#map_footer" alt="">');
    document.write('<map name="map_footer">');
    document.write('<area shape="rect" title=' + titleText +
                   'coords="36,19,135,46" href=' + href +
                   'onMouseOver="javascript:jsShowImageGif(' + jsFooterImage + ', true); return true;"' +
                   'onMouseOut="javascript:jsShowImageGif(' + jsFooterImage + ', false); return true;">');
    document.write('</map>');

    // display end of footer table
    if(displayTable) {
        document.write('    </td>');
        document.write('  </tr>');
        document.write('  </tbody>');
        document.write('</table>');
    }
}

/**
 * Displays a button image with a rollover.
 * 
 * @param   image   Name of image sans extension.
 * @param   type    Type of button, buttonTypexxx.
 * @return  None.
 */
function jsShowButton(image, buttonType) {
    var jsImage = "'" + image + "'";

    // get alt/title text based upon button type
    var alt = "";
    if(buttonType == buttonTypeCD) {
        alt = "Buy CD from CD Baby.";
    }
    else if(buttonType == buttonTypeSongbook) {
        alt = "Buy songbook using PayPal.";
    }
    else if(buttonType == buttonTypeItunes) {
        alt = "Download from iTunes store.";
    }

    // display the image with a rollover
    document.write('<img src="images/' + image + '.gif" align="top" border="0" name="' + image +
                   '" alt="' + alt + '"' +
                   '" title="' + alt + '" ' +
                   'onMouseOver="javascript:jsShowImageGif(' + jsImage + ', true); return true;"' +
                   'onMouseOut="javascript:jsShowImageGif(' + jsImage + ', false); return true;">');
}

