
var fadeid = "headerImages";
window.onload = function() {
	preloadImages();
	initRollovers();
	new Rico.Effect.FadeTo(fadeid, .0, 0, 1);
	var fadeMastHead = setTimeout('fadeIn()', 500);
	
	initRotate();
	initBios();
}

var browser = navigator.appName;
var IE = "Microsoft Internet Explorer";
var opera = "Opera";
var vendor = navigator.vendor;
var safari = "Apple Computer, Inc.";
var imagePath = "images/";

/* Begin preload images */

var overImg = new Array('nav_about_us_on.gif','nav_contact_us_on.gif','nav_home_on.gif','nav_our_process_on.gif','nav_our_products_on.gif','nav_our_services_on.gif');

var preloadFlag = false;
function preloadImages() {
	for (i=0; i<overImg.length; i++) {
		var images = new Array();
		images[i] = new Image();
		images[i].src = imagePath + overImg[i];
	}
	preloadFlag = true;
}
/* End preload images */

/* Begin image rollover funtion */
/* Function to initalize rollover */
function initRollovers(){	
	var rollovers = getElementsByClass('rollover',null,null);	//Get elements with a class of "rollover"
	
	if (rollovers.length > 0){		//If there is at least on element with a class "rollover"
		for(var i=0;i<rollovers.length;i++){	//Loop through all elements with class "rollover"
			addEvent(rollovers[i],'mouseover',rollover);	//Attach mouseover event
			addEvent(rollovers[i],'mouseout',rollover);	//Attach mouseout event
		}		
	}
}

function rollover(event) {
	var id = getTarget(event).id;
	var etype = event.type;
	var imgExt = getImgExt($(id));
	
	var img = id.split('_image')[0];
	
	if (etype == 'mouseover'){
		$(id).setAttribute('src',imagePath+img + "_on." + imgExt);
	}
	
	else if (etype == 'mouseout') {
		$(id).setAttribute('src',imagePath+img + "_off." + imgExt);
	}
}
/* End image rollover function */

/* Begin fade functions */
function fadeIn() {
	$(fadeid).style.visibility='visible';
	new Rico.Effect.FadeTo(fadeid, 1, 500, 75);
}
/* End fade functions */

/* Begin rotate image functions */
var imgArr = new Array();
var counter = 1;
if((vendor == safari) || (browser == opera)){
	var speed = "150";
	var steps = "12";
}

else {
	var speed = "450";
	var steps = "65";	
}

function initRotate(){
	if ($('imgRotate')){		//If this element exists
		
		var imgs = $('imgRotate').getElementsByTagName('img');
		
		for(var i=0;i<imgs.length;i++){	//Loop through all images
			var imgID = imgs[i].getAttribute('id');
			imgArr.push(imgID);
			new Rico.Effect.FadeTo(imgArr[i], .0, 0, 1);
		}
		$(imgArr[0]).style.visibility='visible';
		new Rico.Effect.FadeTo(imgArr[0], 1, 0, 1);
	}
}

function changeImg(){
	var foImg = counter - 1;
	if(counter > eval(imgArr.length-1)) {
		counter = 0;
		foImg = imgArr.length-1;
	}	
	
	new Rico.Effect.FadeTo(imgArr[foImg], .0, speed, steps);
	$(imgArr[counter]).style.visibility='visible';
	new Rico.Effect.FadeTo(imgArr[counter], 1, speed, steps);
	counter++; //increase the counter for the next image
}
/* End rotate image functions */

/* Begin show bio functions */
function initBios(){	
	var teamname = getElementsByClass('teamName',null,null);	//Get elements with a class of "teamName"
	
	if (teamname.length > 0){		//If there is at least on element with a class "teamName"
		for(var i=0;i<teamname.length;i++){	//Loop through all elements with class "teamName"
			addEvent(teamname[i],'mouseover',showBios);	//Attach mouseover event
			addEvent(teamname[i],'mouseout',showBios);	//Attach mouseout event
			addEvent(teamname[i],'mouseover',boldName);	//Attach mouseover event
			addEvent(teamname[i],'mouseout',boldName);	//Attach mouseout event
		}		
	}
}

function showBios(event){
	var id_bio = this.getAttribute('id') + "_bio";
	var etype = event.type;
	
	if (etype == 'mouseover'){
		$(id_bio).style.display= "block";		
	}
	
	else if (etype == 'mouseout') {
		$(id_bio).style.display= "none";
	}
	
}

function boldName(event){
	var etype = event.type;
	
	if (etype == 'mouseover'){
		this.style.fontWeight= "bold";
	}
	
	else if (etype == 'mouseout') {	
		this.style.fontWeight= "normal";	
	}
	
}
/* End show bio functions */

/* Begin helper functions */
/* Extracted from Prototype JS Library, http://prototype.conio.net/
 Written by Sam Stephenson, http://conio.net/ */
function $() {
  var elements = new Array();
  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string') element = (document.getElementById) ? document.getElementById(element) : eval("document.all."+element) ;
    if (arguments.length == 1) return element;
    elements.push(element);
  }
  return elements;
}

/* Function to grab all elements with a specific class name.
 Original written by Jonathan Snook, http://www.snook.ca/jonathan
 Add-ons by Robert Nyman, http://www.robertnyman.com 	
 Re-written by Zack Gilbert of Seen Creative, http://www.weareseencreative.com */
function getElementsByClass(className, elm, tag){
	if(elm == null) elm = document;
	if(tag == null) tag = '*';
	var elems = (tag == "*" && document.all)? document.all : elm.getElementsByTagName(tag);
	var returnElems = new Array();
	className = className.replace(/\-/g, "\\-");
	var pattern = new RegExp("(^|\\s)" + className + "(\\s|$)");
	for(var i=0; i<elems.length; i++){
		if(pattern.test(elems[i].className)) returnElems.push(elems[i]);
	}
	return returnElems
}

/* Function to return the class attribute. IE and all other standards compliant browsers have different names for the class attribute object. */
function classAttr(){
	if (browser == IE ){
		class_att = 'className';
	}
	else {
		class_att = 'class';
	}
	
	return class_att;
	
}
/* Functions to add/remove event listeners to objects
	Written by John Resig, http://ejohn.org */
function addEvent( obj, type, fn ) {
	if (obj.addEventListener) obj.addEventListener( type, fn, false );
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
}

function removeEvent( obj, type, fn ) {
	if (obj.removeEventListener) obj.removeEventListener( type, fn, false );
	else if (obj.detachEvent) {
		obj.detachEvent( "on"+type, obj[type+fn] );
		obj[type+fn] = null;
		obj["e"+type+fn] = null;
	}
}
/* Functions to handle cross-browser events.
 Written by Zack Gilbert of Seen Creative, http://www.weareseencreative.com. */
/* get the target of an event object */
function getTarget(e) {
	return (e.target) ? e.target : e.srcElement;
}
/* get the X location of an object */
function getX(obj){
	var curleft = 0;
	if (obj.offsetParent){
		while (obj.offsetParent){
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	} else if (obj.x)	curleft += obj.x;
	//alert(curleft);
	return curleft;
}
/* get the Y location of an object */
function getY(obj){
	var curtop = 0;
	if (obj.offsetParent){
		while (obj.offsetParent){
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	} else if (obj.y)	curtop += obj.y;
	//alert(curtop);
	return curtop;
}

/* Begin function to get img extension */
function getImgExt(obj){
	var src = obj.getAttribute('src');
	var imgExtPosition = src.lastIndexOf('.') + 1;	//Get the extension. Add 1 to get only the extension, not .extension
	
	var extension;
	
	if(src.match('clearpixel.gif')){	//If IE and the image is a PNG, return 'png', because the PNG transparency function causes the img src to be clearpixel.gif.
		extension = 'png';
	}
	
	else {
		var extension = src.slice(imgExtPosition);
	}
	return extension;
}
/* End function to get img extension */

/* Begin function to get img alt text */
function getImgAlt(obj){
	var alt_text = obj.getAttribute('alt');	
	return alt_text;
}
/* End function to get img alt text */

/* Begin function to get img height text */
function getImgHeight(obj){
	var img_h = obj.getAttribute('height');	
	return img_h;
}
/* End function to get img alt text */

/* Begin function to get img width text */
function getImgWidth(obj){
	var img_w = obj.getAttribute('width');	
	return img_w;
}
/* End function to get img alt text */

/* End helper functions */