﻿// JScript File
//START BUTTON ROLLOVER FUNCTIONS
function doHovers() {
    //This function takes care of preloading and setting mouse events
    if (document.getElementsByTagName) {
        var images = document.getElementsByTagName('img');
        var preload_images = Array();
        for (var i=0; i< images.length; i++) {
            if (images[i].className == 'rollover') {
                cur_src = images[i].src;
                images[i].off_src = cur_src;
                images[i].over_src = cur_src.replace(/_inactive/g, '_active');
                //images[i].press_src = cur_src.replace(/_inactive/g, '_press');
                //alert(images[i].over_src);
                preload_images[i] = images[i].over_src;
                preload_images[i] = images[i].press_src;
                images[i].onmouseover = function() { 
                    this.src = this.over_src; 
                };
                images[i].onmouseout = function() { 
                    this.src = this.off_src; 
                };
                //images[i].onmousedown = function() { this.src = this.press_src; };
            }
        }
        //preload the images
        document.preloaded_images = Array();
        for (var i=0; i<preload_images.length; i++) {
            document.preloaded_images[i] = new Image;
            document.preloaded_images[i].src = preload_images[i];
        }
    }
}
//assign banner properties ('section name(not used)', 'image ID', 'banner path') 
var bannerArray = new Array();
    bannerArray[0] = new Array('supportParts', 'rolloverMain_0', 'images/banners/support_parts.jpg');
    bannerArray[1] = new Array('techSolutions', 'rolloverMain_1', 'images/banners/tech_solutions.jpg');
    bannerArray[2] = new Array('eventSupport', 'rolloverMain_2', 'images/banners/event_support.jpg');
    
function doMainHovers() {
    //This function takes care of preloading and setting mouse events for the main buttons
    var preload_images = Array();
    var banner;
    
    for (var i=0; i< bannerArray.length; i++) {
        banner = document.getElementById(bannerArray[i][1]);
        cur_src = banner.src;
        banner.off_src = cur_src;
        banner.over_src = cur_src.replace(/_inactive/g, '_active');
        preload_images[i] = banner.over_src;
        banner.onmouseover = function() {
            //this.style.display = '';
            this.className = 'rolloverMainOver';
            mouseOutButtons();
            loadBanner();
            this.src = this.over_src;
        };
    }
    //preload the images
    document.preloaded_images = Array();
    for (var i=0; i<preload_images.length; i++) {
        document.preloaded_images[i] = new Image;
        document.preloaded_images[i].src = preload_images[i];
    }
}
function loadBanner(){
    var images = document.getElementsByTagName('img');
    for (var i=0; i< images.length; i++) {
        if (images[i].className == 'rolloverMainOver') {
            var splitParts = images[i].id.split("_");
            document.getElementById('bannerHome').src = bannerArray[splitParts[1]][2];       
        }
        images[i].className = '';
    }
}
function mouseOutButtons(){
    var banner;
    for (var i=0; i< bannerArray.length; i++) {
        banner = document.getElementById(bannerArray[i][1]);
        if (banner.className != 'rolloverMainOver'){
            over_src = banner.src;
            banner.cur_src = over_src.replace(/_active/g, '_inactive');
            banner.src = banner.cur_src
            //hide menus
            //document.getElementById('menuRenderTarget_' + i).style.visibility = 'hidden';
            //document.getElementById('menuRenderTarget_' + i).style.display = 'none';
        }
    }
}
//END BUTTON ROLLOVER FUNCTIONS
// main function to process the fade request //
function colorFade(id,element,start,end,steps,speed) {
  var startrgb,endrgb,er,eg,eb,step,rint,gint,bint,step;
  var target = document.getElementById(id);
  steps = steps || 20;
  speed = speed || 20;
  clearInterval(target.timer);
  endrgb = colorConv(end);
  er = endrgb[0];
  eg = endrgb[1];
  eb = endrgb[2];
  if(!target.r) {
    startrgb = colorConv(start);
    r = startrgb[0];
    g = startrgb[1];
    b = startrgb[2];
    target.r = r;
    target.g = g;
    target.b = b;
  }
  rint = Math.round(Math.abs(target.r-er)/steps);
  gint = Math.round(Math.abs(target.g-eg)/steps);
  bint = Math.round(Math.abs(target.b-eb)/steps);
  if(rint == 0) { rint = 1 }
  if(gint == 0) { gint = 1 }
  if(bint == 0) { bint = 1 }
  target.step = 1;
  target.timer = setInterval( function() { animateColor(id,element,steps,er,eg,eb,rint,gint,bint) }, speed);
}

// incrementally close the gap between the two colors //
function animateColor(id,element,steps,er,eg,eb,rint,gint,bint) {
  var target = document.getElementById(id);
  var color;
  if(target.step <= steps) {
    var r = target.r;
    var g = target.g;
    var b = target.b;
    if(r >= er) {
      r = r - rint;
    } else {
      r = parseInt(r) + parseInt(rint);
    }
    if(g >= eg) {
      g = g - gint;
    } else {
      g = parseInt(g) + parseInt(gint);
    }
    if(b >= eb) {
      b = b - bint;
    } else {
      b = parseInt(b) + parseInt(bint);
    }
    color = 'rgb(' + r + ',' + g + ',' + b + ')';
    if(element == 'background') {
      target.style.backgroundColor = color;
    } else if(element == 'border') {
      target.style.borderColor = color;
    } else {
      target.style.color = color;
    }
    target.r = r;
    target.g = g;
    target.b = b;
    target.step = target.step + 1;
  } else {
    clearInterval(target.timer);
    color = 'rgb(' + er + ',' + eg + ',' + eb + ')';
    if(element == 'background') {
      target.style.backgroundColor = color;
    } else if(element == 'border') {
      target.style.borderColor = color;
    } else {
      target.style.color = color;
    }
  }
}
// convert the color to rgb from hex //
function colorConv(color) {
  var rgb = [parseInt(color.substring(0,2),16), 
    parseInt(color.substring(2,4),16), 
    parseInt(color.substring(4,6),16)];
  return rgb;
}
