/* javascript for mouseovers */

//globals
capable = (document.getElementById && document.getElementsByTagName);
flippedImages = new Array();
flippedImageSrc = new Array();
flippedIndex = 0;
img_path = get_root_path();

// get the path backreference
function get_root_path()
{
    var path = "";
    var parts = document.location.href.split('/');
    var num = (parts.length -3);

    // if this dir has more than one component, then calculate backreferences
    if(num > 1) {
        for(a=1; a<num; a++) {
            path+= "../";
        }
    } else {
        path = "./";
    } 
    return path;
}

// flip side images of the currently selected menu item
function changeOuterImages() {
    if(capable) {
        var menuObj = document.getElementById("lev2-menu");
        var objImages = menuObj.getElementsByTagName("img");
        var theCenter = parseInt(getMenuOver(objImages));
        if(theCenter) 
        {
            flipSideImage(objImages[theCenter-1], theCenter, 1);
            flipSideImage(objImages[theCenter+1], theCenter, 2);
        }
    }
}

// flip images back
function changeBackOuterImages() {
    
    for(var i in flippedImages) {
        flippedImages[i].src = flippedImageSrc[i];
    }

    flippedImages = Array();
    flippedImageSrc = Array();
    flippedIndex = 0;
}

// flip a side image
function flipSideImage(theImg, menuItem, position) {
    imgName = basename(theImg.src);
//    alert(menuItem);
    if(imgName == 'menu_wedge1.gif' || imgName == 'menu_wedge2.gif')
    {
        flippedImages[flippedIndex] = theImg;
        flippedImageSrc[flippedIndex] = theImg.src;
        flippedIndex++;
        theImg.src = img_path+'images/navigation/menu_wedge4.gif';
    }
    else if((imgName == 'menu_wedge5.gif' || imgName == 'menu_wedge3.gif') && position == 1) 
    {
        flippedImages[flippedIndex] = theImg;
        flippedImageSrc[flippedIndex] = theImg.src;
        flippedIndex++;
        theImg.src = img_path+'images/navigation/menu_wedge2.gif';
    }
    else if((imgName == 'menu_wedge5.gif' || imgName == 'menu_wedge3.gif') && position == 2 && menuItem != 9) 
    {
        flippedImages[flippedIndex] = theImg;
        flippedImageSrc[flippedIndex] = theImg.src;
        flippedIndex++;
        theImg.src = img_path+'images/navigation/menu_wedge1.gif'; 
    }
    else if(imgName == 'menu_wedge5.gif' && menuItem == 9) 
    {
        // special case for 'happenings' on the NA section
        flippedImages[flippedIndex] = theImg;
        flippedImageSrc[flippedIndex] = theImg.src;
        flippedIndex++;
        theImg.src = img_path+'images/navigation/menu_wedge4.gif'; 
    }


}

// return the image which is the currently selected menu item
function getMenuOver(objImages) {
    var center;

    for(var i = 0; i < objImages.length; i++) {
        if(objImages[i].src.indexOf('-over') != -1) {
            center = i;
        }
    }
    return center;
}

// load the Menu Images
// MenuImage(image_id, normal_image, mouseover_image, image_swapped)
var MImages = new Array();

// why expedia
MImages[10] = new MenuImage("mnu_why","menu_why.gif","menu_why-over.gif",0); 
// students & grads
MImages[20] = new MenuImage("mnu_students","menu_students.gif","menu_students-over.gif",0); 
// job hub
MImages[30] = new MenuImage("mnu_jobhub","menu_jobhub.gif","menu_jobhub-over.gif",0); 
// look inside
MImages[40] = new MenuImage("mnu_look","menu_look.gif","menu_look-over.gif",0); 
// happenings
MImages[50] = new MenuImage("mnu_happenings","menu_happenings.gif","menu_happenings-over.gif",0); 
// values
MImages[60] = new MenuImage("mnu_values","menu_values.gif","menu_values-over.gif",0); 
// home
MImages[80] = new MenuImage("mnu_home","home.gif","home-over.gif",0); 

// jobs
MImages[6] = new MenuImage("home_jobs","but_jobs.gif","but_jobs-over.gif",0); 
MImages[7] = new MenuImage("home_jobs","but_jobs-odd.gif","but_jobs-odd-over.gif",0); 

// news
MImages[8] = new MenuImage("home_news","but_news.gif","but_news-over.gif",0);
MImages[9] = new MenuImage("home_news","but_news-odd.gif","but_news-odd-over.gif",0);

// tech event
MImages[10] = new MenuImage("home_tech","but_tech.gif","but_tech-over.gif",0);
MImages[11] = new MenuImage("home_tech","but_tech-odd.gif","but_tech-odd-over.gif",0);


// preload wedges
wedge1 = new Image();
wedge1.src = img_path+'images/navigation/menu_wedge1.gif';
wedge2 = new Image();
wedge2.src = img_path+'images/navigation/menu_wedge2.gif';
wedge3 = new Image();
wedge3.src = img_path+'images/navigation/menu_wedge3.gif';
wedge4 = new Image();
wedge4.src = img_path+'images/navigation/menu_wedge4.gif';
wedge5 = new Image();
wedge5.src = img_path+'images/navigation/menu_wedge5.gif';


// MenuImage constructor
function MenuImage(img_id, img_out, img_in, swapped) {
    this.img_id = img_id;           // the image id
    this.img_out = new Image();     // the image to use when mouseout
    this.img_out.src = img_path+'images/navigation/'+img_out;
    this.img_in = new Image();      // the image to use when mouseover
    this.img_in.src = img_path+'images/navigation/'+img_in;
    this.swapped = swapped;         // register if the image is swapped
    this.over = 0;                  // register if the image is 'over'
}

// take a full or partial path, and return it's last part
function basename(path) {
    var parts = path.split('/');
    return parts[parts.length-1];
}

// swap in the image
function imgIn(imgId) {
    if(capable) {
        var theObj = MImages[imgId];
        var theImg = document.getElementById(theObj.img_id);
        var filename = basename(theImg.src);
        /*
        var newname = basename(theObj.img_in.src);
        // if this is an 'over' image, make the replacement 'over'
        if(MImages[imgId].over == 0 && filename.indexOf('-over') != -1) {
            newname = newname.replace('-', '-over-');
            //  alert('filename: '+filename+'\nnewname: '+newname);
            MImages[imgId].img_in.src = img_path+'images/navigation/'+newname;
            MImages[imgId].img_out.src = img_path+'images/navigation/'+filename; 
            MImages[imgId].over = 1;
        } 
        // don't swap if image is 'down' 
        if(filename != newname) {
        */

        // don't swap if image is 'down' 
        if(filename.indexOf('-sel') == -1) {
            theImg.src = MImages[imgId].img_in.src;
            MImages[imgId].swapped = 1;
        }
    }
}

// swap out the image
function imgOut(imgId) {
    if(capable) {
        theImg = document.getElementById(MImages[imgId].img_id);
        // only revert if "swapped" is true
        if(MImages[imgId].swapped) {
            theImg.src = MImages[imgId].img_out.src;
            MImages[imgId].swapped = 0;
        }
    }
}

