﻿// JScript File

/* The number of images of each type through which to rotate */
var birdNum = 7;
var fishNum = 23;
var herpNum = 6;
var inveNum = 3;
var mammNum = 6;
var paleNum = 1;

function captionArray (imgName, imgNumber) {
    var captAry = new Array();
    switch (imgName) {
    case 'bird': {
        /* Bird image captions */
        captAry[1] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[2] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[3] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[4] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[5] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry [6] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[7] = 'Photo Credit: Julie Dermansky <br><br>';   
        /*captAry[8] = ''; */     /*  To add more images and names, add a "captAry[]" and a description */
        /*captAry[9] = ''; */     /*  The ones in comments are examples, just remove the comments to use */
        } break;
    case 'fish': {
        /* Fish image captions */
        captAry[1] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[2] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[3] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[4] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[5] = '';
        captAry[6] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[7] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[8] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[9] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[10] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[11] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[12] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[13] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[14] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[15] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[16] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[17] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[18] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[19] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[20] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[21] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[22] = 'Photo Credit: Julie Dermansky <br><br>';
        captAry[23] = 'Photo Credit: Julie Dermansky <br><br>';
        /* captAry[23] = ''; */
        } break;
    case 'herp': {
        /* Reptile and Amphibian image captions */
        captAry [1] = 'Photo Credit: Julie Dermansky <br><br>'
        captAry [2] = 'Photo Credit: Julie Dermansky <br><br>'
        captAry [3] = 'Photo Credit: Julie Dermansky <br><br>'
        captAry [4] = 'Photo Credit: Julie Dermansky <br><br>'
        captAry [5] = 'Photo Credit: Julie Dermansky <br><br>'
        /* captAry [6] = '' */
        } break;
    case 'invert': {
        /* Invertebrate image captions */
        captAry [1] = 'Photo Credit: Julie Dermansky <br><br>'
        captAry [2] = 'Photo Credit: Julie Dermansky <br><br>'
        captAry [3] = 'Photo Credit: Julie Dermansky <br><br>'
        captAry [4] = 'Photo Credit: Julie Dermansky <br><br>'
        /* captAry [5] = '' */
        } break;
    case 'mammal': {
        /* Mammal image captions */
        captAry [1] = 'Photo Credit: Julie Dermansky <br><br>'
        captAry [2] = 'Photo Credit: Julie Dermansky <br><br>'
        captAry [3] = 'Photo Credit: Julie Dermansky <br><br>'
        captAry [4] = 'Photo Credit: Julie Dermansky <br><br>'
        captAry [5] = 'Photo Credit: Julie Dermansky <br><br>'
        captAry [6] = 'Photo Credit: Julie Dermansky <br><br>'
        /* captAry [7] = ''
         captAry [8] = '' */
        } break;
    case 'paleo': {
        /* Paleolotih image captions */
        captAry [1] = 'Photo Credit: Julie Dermansky <br><br>'
        /* captAry [2] = '' */
        } break;
    default: captAry [1] = 'Images from the collection'; break;
    }
    return captAry[imgNumber];
}

function getObj(name)
{
  if (document.getElementById)
  {
  	this.obj = document.getElementById(name);
  }
  else if (document.all)
  {
	this.obj = document.all[name];
  }
  else if (document.layers)
  {
   	this.obj = document.layers[name];
  }
  return this;
}


function addEventX (obj, evt, fun) {
    if ( obj.addEventListener ) { obj.addEventListener(evt, function (e) {obj[fun] (e);}, false); }
    else if ( obj.attachEvent ) { obj.attachEvent ("on"+evt, function (e) {obj[fun] (e);} ); }
    else {
        var oldEvt = obj["on" + evt];
        if (oldEvt) {obj['on'+evt]=function(e) {oldEvt(e); obj[fun] (e); }; }
        else { obj['on'+evt]=obj[fun]; }
    }
}

var eventCt = 0;

function addEvent (obj, fun, evt) {
    if ( obj[fun+evt] ) { return; }
    obj['addEvent' + eventCt] = window[fun];
    obj[fun+evt] = true;
    addEventX (obj, evt, 'addEvent'+ eventCt);
    eventCt++;
}


function removeEventX (obj, evt, fun) {
    if ( obj.addEventListener ) { obj.removeEventListener(evt, function (e) {obj[fun] (e);}, false); }
    else if ( obj.attachEvent ) { obj.detachEvent ("on"+evt, function (e) {obj[fun] (e);} ); }
    else {
        var oldEvt = obj["on" + evt];
        if (oldEvt) {obj['on'+evt]=function(e) {oldEvt(e); obj[fun] (e); }; }
        else { obj['on'+evt]=obj[fun]; }
    }
}

var eventCt = 0;

function removeEvent (obj, fun, evt) {
    if ( obj[fun+evt] ) { return; }
    obj['addEvent' + eventCt] = window[fun];
    obj[fun+evt] = true;
    addEventX (obj, evt, 'addEvent'+ eventCt);
    eventCt++;
}

function setDescription (imgTyp2, imgNum2) {
    /* setDescription accepts the image type and the randomly generated number from imgRotate */
    var imgPar = getObj ('descPar').obj;
    var desc = captionArray (imgTyp2, imgNum2);
    desc = 'Photo Credit: Julie Dermansky <br><br>'
    /* switch (imgTyp2) {
        case 'bird': desc = birdAry [imgNum2]; break;
        case 'fish': desc = fishAry [imgNum2]; break;
        case 'herp': desc = herpAry [imgNum2]; break;
        case 'invert': desc = inveAry [imgNum2]; break;
        case 'mammal': desc = mammAry [imgNum2]; break;
        case 'paleo': desc = paleAry [imgNum2]; break;
        default: desc = 'Images from the collection'; break;
    } */
    imgPar.innerHTML = "<em>" + desc + "</em>";
}

function imgRotate (error) {
    var imgObj = getObj ('hdrImg');
    if (imgObj.obj) {imgObj = imgObj.obj} else { return } ; /* stop running the script if there is no 'hdrImg' on the page */
    var imgType = imgObj.className;
    var imgNum;
    var imgPath = "/../collections/" + imgType;
    if (error) { imgNum = 1 } /* create a default for when the returned image does not exist */
    else switch (imgType) {
    /* if more images are added to the collections directory, increase these numbers to reflect the new amount */
        case 'bird': imgNum = birdNum; break;    /* the maximum number of bird images */
        case 'fish': imgNum = fishNum; break;  /* or fish images. All images must be named */
        case 'paleo': imgNum = paleNum; break;   /* as to the left with a number, and be placed in the collections directory */
        case 'invert': imgNum = inveNum; break;  /* for this script */
        case 'mammal': imgNum = mammNum; break;  /* For example, "../collections/fish1.jpg" */
        case 'herp': imgNum = herpNum; break;
        default: imgNum = 1; break;
    }
    var randNum = 1 + Math.floor(Math.random()*imgNum);
    var imgPathX = imgPath + randNum + ".jpg";
    imgObj.src = imgPathX;
    setDescription (imgType, randNum);
/*    var i = 0;
    do { 
    randNum = 1 + Math.floor(Math.random()*imgnum);
    imgPathX = imgPath + randNum + ".jpg";
    imgObj.src = imgPathX;
    var imgTest = "http://192.168.13.114:8080" + imgPathX;
    testImage (imgTest);
    i++; }
    while ( (!imgTest.onerror) && (i==3) ) */
}

window.onload=function() {
    if (document.all) {window.event.cancelBubble=true;}
    if (navigator.appVersion.indexOf('MSIE')!=-1) IEMenu();
    imgRotate(); /* initially always run imgRotate */
} 
