// Rotate Images
var interval = 4; // In Seconds
var random_display = 0; // 0 = no, 1 = yes
interval *= 1000;
var image_index = 0;
var t;
var image_index;
var prev_index = '-1';

function imageItem(image_location) {
	this.image_item = new Image();
	var image_arr = image_location.split("+");
	
	this.image_item.src = image_arr[0];
	this.image_item.alt = image_location;
}

function get_ImageItemLocation(imageObj) {
	return(imageObj.image_item.alt);
}

function generate(x, y) {
	var range = y - x + 1;
	return Math.floor(Math.random() * range) + x;
}

function getNextImage(index) {
	if(index >= 0) { image_index = index; }
	else {
		if (random_display) { image_index = generate(0, number_of_image-1); }
		else { image_index = (image_index+1) % number_of_image; }
	}

	var new_image = get_ImageItemLocation(image_list[image_index]);
	return(new_image);
}

function rotateImage(place,index) {
	if(index >= 0) { var new_image = getNextImage(index); }
	else { var new_image = getNextImage(); }

	var image_arr = new_image.split("|||");

	document[place].src = image_arr[0];
	document.getElementById('photo_rotator_'+image_index).className = "on";
	if(prev_index != '-1') { 
		document.getElementById('photo_rotator_'+prev_index).className = "";	
	}
	
	document.getElementById('rotate-gallery').innerHTML = unescape(image_arr[1]);
	document.getElementById('rotate-byline').innerHTML = unescape(image_arr[2]);
	document.getElementById('rotate-gallery').href = "/galleries/index.php?id="+unescape(image_arr[3]);
	document.getElementById('rotate-gallery-image').href = "/galleries/index.php?id="+unescape(image_arr[3]);
	if(image_arr[5] == 'we') {
		if(image_arr[4] == '') {
			document.getElementById('rotate-byline').href = "/staff/";
		}
		else {
			document.getElementById('rotate-byline').href = "/staff/"+image_arr[4]+"/";
		}
	}
	else {
		document.getElementById('rotate-byline').href = "/users/"+image_arr[4]+"/";
	}
	var recur_call = "rotateImage('"+place+"')";
	clearTimeout(t);
	prev_index = image_index;
	t = setTimeout(recur_call, interval);
}

/* Show the selected tab */
function show_tab(tab_id) {

	if(tab_id > 0) {
		eraseCookie('nav_bar');
		createCookie('nav_bar',tab_id,'');
	}
	else {
		var cookie_tab = '';
		cookie_tab = readCookie('nav_bar');
		if(cookie_tab != '') {
			tab_id = cookie_tab;
		}
	}

	tab_id = (tab_id) ? tab_id : 1; // sets a default tab ID to show

	var tab_count = 1;
	while (tab_count) {
		if (document.getElementById("tcontent" + tab_count)) {
			if (tab_count == tab_id) {
				document.getElementById("tab-li-" + tab_count).className		= "selected";
				document.getElementById("tcontent" + tab_count).style.display	= "block";
			} else {
				document.getElementById("tab-li-" + tab_count).className		= "";
				document.getElementById("tcontent" + tab_count).style.display 	= "none";
			}

			tab_count ++;
		}
		else { tab_count = 0; }
	}
}

/* Dropdown nav */
/*******************************************************************************
* Dropdown nav
*
* These functions control the behavior of the main drop down menu. The
* init_dropdowns() functions find any li elements that contain nested ul's and
* attaches mouseover and mouseout events in the form of functions.
*
* The functions dropdown_on() and dropdown_off() set the display style of the
* desired ul element to "display" or "none". It's up to the developer to set
* the CSS correctly for the menus to drop down or to the side.
*
*******************************************************************************/
/* This function has been deprecated. -TH 070112 function toggle_dropdown() {
	for (var i = 0; i < this.childNodes.length; i ++) {
		if (this.childNodes.item(i).nodeName == "UL") {
			this.childNodes.item(i).style.display =
				(this.childNodes.item(i).style.display != "block")
				? "block"
				: "none";
			break;
        }
    }
}
*/
function dropdown_on() {
	for (var i = 0; i < this.childNodes.length; i ++) {
		if (this.childNodes.item(i).nodeName == "UL") {
			this.childNodes.item(i).style.display = "block";
			break;
        }
    }
}
function dropdown_off() {
	for (var i = 0; i < this.childNodes.length; i ++) {
		if (this.childNodes.item(i).nodeName == "UL") {
			this.childNodes.item(i).style.display = "none";
			break;
        }
    }
}
function init_dropdowns() {
	var list_collection = document.getElementById("main-body").getElementsByTagName("li");

	for (var i = 0; i < list_collection.length; i ++) {
		for (var j = 0; j < list_collection[i].childNodes.length; j ++) {
			if (list_collection[i].childNodes.item(j).nodeName == "UL") {
				list_collection[i].onmouseover	= dropdown_on;
				list_collection[i].onmouseout	= dropdown_off;            }
        }
    }
}

// Edit Popup
var thumb_boxes = new Object();

function show_extra(box_node,box_id) {
	// make a backup of the thumbnail box.
	thumb_boxes[box_node] = document.getElementById(box_node).innerHTML;

	//document.getElementById(box_node).style.positon = "relative";

	// Find the first div container child node and set the ID to something unique,
	// in this case box_id + box_node
	for (var i = 0; i < document.getElementById(box_id).childNodes.length; i ++) {
		if (document.getElementById(box_id).childNodes.item(i).nodeName == "DIV") {
			document.getElementById(box_id).childNodes.item(i).id = box_id + box_node;
			break;
	       }
	   }

	// Add the specified content to the current thumbnail box
	document.getElementById(box_node).innerHTML =
		"<div class=\"popup-position\">" +
		document.getElementById(box_node).innerHTML +
		"</div>" +
		document.getElementById(box_id).innerHTML;

	// Change The ID in the nav links
	replaceValues(edit_info,box_node,box_id);

	// show the DHTML popup box that we just added
	document.getElementById(box_id + box_node).style.display = "block";
}

function hide_extra(arg) {
	// Restore the thumbnail box to it's original state from our backup
	arg.parentNode.parentNode.parentNode.innerHTML = thumb_boxes[arg.parentNode.parentNode.parentNode.id];
	return false;
}

/*******************************************************************************
* nav_expand(arg)
*
* Added Sept. 11, 2006 by Tobby
*
* This function controls the left-rail main navigation. If called without an
* argument, it opens the default portion of the nav (based on the global
* variable "food_group" set in page.tpl.php). If a valid food group is passed
* as an argument, the nav expands that section.
*
* The variable "partial_expand" is set at the top of this file, and tells this
* function whether or not to partially expand all sections of the nav.
*******************************************************************************/
function nav_expand(arg,type) {
	if (!document.getElementById("user-nav")) return;

	var partial_expand = false;

	var nav_user_nav_menu 		= (arg) ? arg : user_nav_menu;
	if(type == 'admin') {
		var nav_user_nav_menus 	= new Array("ads","cache","content","featured","hires","html","layout","mail","reports","rss","settings","skins");
		if(site_i18n == 1) { nav_user_nav_menus.push("translations"); }
	}
	else {
		var nav_user_nav_menus 	= new Array("profile","mail","galleries","favorites","friends","photos");
		if(site_has_video == 1) { nav_user_nav_menus.push("videos"); }
		if(site_internal_reg == 1) { nav_user_nav_menus.push("account"); }
	}

	for (i = 0; i < nav_user_nav_menus.length; i ++) {

		if (nav_user_nav_menu != nav_user_nav_menus[i]) {

			document.getElementById("nav-block-main-" + nav_user_nav_menus[i]).style.display 	= "none";
			document.getElementById("nav-block-minor-" + nav_user_nav_menus[i]).style.display 	= "none";
			document.getElementById("nav-block-more-" + nav_user_nav_menus[i]).style.display 	= "none";
			if (document.getElementById("nav-open-link-" + nav_user_nav_menus[i]))
				document.getElementById("nav-open-link-" + nav_user_nav_menus[i]).innerHTML		= ln_nav_open;

			if (partial_expand) {
				document.getElementById("nav-block-main-" + nav_user_nav_menus[i]).style.display 	= "block";
				document.getElementById("nav-block-more-" + nav_user_nav_menus[i]).style.display 	= "block";
			}
		} else {
			// Hides the sub navs based on the partial expanding preference.
			if (document.getElementById("nav-block-minor-" + nav_user_nav_menu).style.display == "block") {
				if (partial_expand) {
					document.getElementById("nav-block-main-" + nav_user_nav_menu).style.display	= "block";
					document.getElementById("nav-block-more-" + nav_user_nav_menu).style.display	= "block";
					document.getElementById("nav-block-minor-" + nav_user_nav_menu).style.display	= "none";
					if (document.getElementById("nav-open-link-" + nav_user_nav_menu))
						document.getElementById("nav-open-link-" + nav_user_nav_menu).innerHTML	= ln_nav_close;


				} else {
					document.getElementById("nav-block-main-" + nav_user_nav_menu).style.display	= "none";
					document.getElementById("nav-block-more-" + nav_user_nav_menu).style.display	= "block";
					document.getElementById("nav-block-minor-" + nav_user_nav_menu).style.display	= "none";
					if (document.getElementById("nav-open-link-" + nav_user_nav_menu))
						document.getElementById("nav-open-link-" + nav_user_nav_menu).innerHTML	= ln_nav_open;
				}

			// Shows the sub nav
			} else {
				document.getElementById("nav-block-main-" + nav_user_nav_menu).style.display	= "block"
				document.getElementById("nav-block-more-" + nav_user_nav_menu).style.display	= "none"
				document.getElementById("nav-block-minor-" + nav_user_nav_menu).style.display	= "block"
				if (document.getElementById("nav-open-link-" + nav_user_nav_menu))
					document.getElementById("nav-open-link-" + nav_user_nav_menu).innerHTML	= ln_nav_close;
			}
		}
	}
}

/****************** NAV BAR ***********************/
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

/************************************************************
prototypes
************************************************************/

Array.prototype.inArray = function(value) {
    var i;
    for(i = 0; i < this.length; i++) {
        if(this[i] === value) {
            return true;
        }
    }
    return false;
};

