/**
 * @author Andrew Welch, Aurora Public Library
 * global.js
 */

// Browser sniffing...	
var isIE = (!$.support.opacity);
var isIE6 = (isIE && !window.XMLHttpRequest);

// Store the current URL as a string for later parsing;
var loc = document.location.href;

// Get the window's height & width;
var winht = $(window).height();
var winwd = $(window).width();

// Establish some sizing variables for the navigation menu;
var div = 1.5;
var sub_w = "585px";
if (winwd < 800) { sub_w = "440px"; }
//var isIE6 = !$.support.opacity && !window.XMLHttpRequest;


/**
 * Determines whether the current page is a Spanish-language page
 * by looking for "*spi" or "_spi.html" in the URL.
 */
var isSpanish = false;
if (loc.indexOf("*spi") != -1 || loc.indexOf("_spi.html") != -1) {	isSpanish = true; }


/**
 * Test for presence of non- or partly-customizable page and
 * set Boolean accordingly.
 */
var isBriefcit = false;
var isBrowse = false;
var isFtlist = false;
if ($("#briefcit_table").length) { isBriefcit == true; }
if ($("#index_browse_table").length) { isBrowse == true; }
if ($(".ftlistHeader").length) { isFtlist == true; }

/**
 * The following need to happen as soon as the DOM is loaded
 */
$(function(){

/**
 * Position and prepare the navigation menu/submenus
 */
//var winht = $(window).height();
//var winwd = $(window).width();
//var size = "normal";
//var div = 1.5;
//var sub_w = "585px";
//if (winwd < 800) { sub_w = "440px"; }
//var isIE6 = !$.support.opacity && !window.XMLHttpRequest;
$(".nav-expand")
	.before('<div class="nav-main-bg ui-corner-tl ui-corner-tr"></div>')
	.find('a:first').attr('title','')
	.append('<span class="nav-expand-icon ui-icon ui-icon-triangle-1-s"></span>');
if (isIE6) {$(".nav-submenu").before('<div class="nav-erase"></div><iframe src="" class="nav-submenu-bg ui-corner-all" name="bgiframe" frameborder="0"></iframe>');}
else {$(".nav-submenu").before('<div class="nav-erase"></div>');}
// Create a delay when hovering over navigation menu items
$(".nav-expand").hoverIntent({
	sensitivity: 1,
	interval: 50,
	over: show_subnav,
	timeout: 300,
	out: hide_subnav
});

/**
 * Replace nav button text spaces with '&nbsp' to prevent wrapping;
 */
if ($(".but-img-text").length > 0){
	$(".but-img-text").html().replace(/\s/g,'&nbsp');
}

/**
 * Handle the toplogo search form depending on whether the user
 * wants to search the catalog or search the site.
 */
$(".toplogo-radios").show();
$(".toplogo-radios input[type='radio']").change(function(){check_searchform()});
$("form [name='toplogo-searchform']").submit(function(){check_searchform()});
$(".single-searchfield")
	.focus(function(){ $(this).select(); $(this).css('color','#000'); })
	.blur(function(){ $(this).css('color','#999'); });
check_searchform();

/**
 * Moves the 'New Search' button, which is hidden in the toplogo, to
 * the first button position in the navigation row.
 */
if ($("#startoverBtn").length) {
	var newbtn = $("#startoverBtn").html();
	$(".navigationRow").children("form").prepend(newbtn);
	if (loc.indexOf('/public&') != -1) {
		$(".navigationRow").prepend(newbtn);
	}
}

/**
 * Fix .png support in IE6 (requires the pngFix() function in the
 * jquery.plugins.js file).
 */
$(document).pngFix();

/**
 * If this is a Topic Guide page, load the databases and topics panels via AJAX.
 */
if (loc.indexOf('topic_guides/') != -1) {
	$("#dbList").load('/screens/research/dbList.html #dbSection');
	$("#topicLinks").load('/screens/research/topic_guides/topics.html');
}

/**
 * Create the container that will hold the navigation breadcrumb (breadcrumb
 * is created using the breadcrumb() function).
 */
$("#content-top").before("<div class=\"crumb grid-10\"></div>");
breadcrumb();

adjWidth();
$(window, document).resize(adjWidth());

/**
 * Set up the My Account button to open a modal window (unless it's IE6)
 */
if (!isIE6){
	$(".plogin").colorbox({'href':'/screens/plogin.html','width':'400px','height':'200px'},function(){
		$("#cboxTitle").css({'font-weight':'bold','color':'#555'});
		// insert an object to force III server to open an OPAC session (see http://innovativeusers.org/list/archives/2006/msg06421.html);
		$("#ploginWrap").append('<object data="/screens/opacmenu.html" type="text/html" width="1" height="1"></object>')
		$("#patform :input").tooltip({position:'top center',effect:'fade',opacity:'0.8',tip:'.tooltip'});
	});
}	

});
// end DOM load;

/**
 * These are global functions.
 */

// Adjust the grid layout width based on the user's screen size;
function adjWidth(){
	var resizeTime = new Date() - 5000;
	var wrap = $(".pageWrapper");
	if (new Date() - resizeTime > 100) { resizeTime = new Date(); }
	else { return false; }
	if(winwd>=1280) { $(wrap).removeClass().addClass(".pageWrapper container-16_1248"); }
	else if (winwd<=950) { $(wrap).removeClass().addClass(".pageWrapper container-16_768"); }
	else {}
}

// Navigation menu functions (show/hide submenus)
function show_subnav() {
	var bg_w = $(this).innerWidth() + 8;
	var mpos = $(this).position();
	if (mpos.left > winwd/2) {
		div = 1.8;
	}
	$(this).addClass('nav-menu-hover');
	$(this).prev('.nav-main-bg').css({'left':mpos.left - 6, 'width':bg_w + 'px'}).show();
	$(this).children('.nav-submenu').css({'width':sub_w, 'left':'-' + mpos.left / div + 'px', 'top':mpos.top + 26}).show("fast");
	if (isIE6) {$(this).children('.nav-submenu-bg').css({'width':sub_w, 'left':'-' + mpos.left / div + 'px', 'top':mpos.top + 26}).show("fast");}
	$(this).find('.nav-erase').css('width',bg_w + 'px').show();
	$(this).find('.nav-expand-icon').hide();
}
function hide_subnav() {
	$(this).removeClass('nav-menu-hover');
	$(this).prev('.nav-main-bg').hide();
	$(this).children('.nav-submenu').fadeOut("fast");
	if (isIE6) {$(this).children('.nav-submenu-bg').hide();}
	$(this).find('.nav-erase').hide();
	$(this).find('.nav-expand-icon').show();
}

// Toplogo search form action toggle
function check_searchform(){
	// Apply Google Custom Search fields if 'Search site' is checked;
	if ($("#toplogo-gcs:checked").length) {
		$(".toplogo-searchform").attr({'action':'http://www.google.com/search','id':'searchbox_010569766283522384953:zoycacyd2y0'});
		$(".toplogo-searchfield").attr({'name':'q'});
		$(".toplogo-scope").attr({'name':'cx','value':'010569766283522384953:zoycacyd2y0'});
		$(".toplogo-sort").attr({'name':'cof','value':'FORID:0'});
	}
	// Apply opac search fields if 'Search catalog' is checked;
	else{
		$(".toplogo-searchform").attr({'action':'/search/X','id':''});
		$(".toplogo-searchfield").attr({'name':'SEARCH'});
		$(".toplogo-scope").attr({'name':'searchscope','value':'2'});
		$(".toplogo-sort").attr({'name':'SORT','value':'R'});
	}
}

function langSwitch(theLink,toLang) {
// Takes the current URL and toggles it between English & Spanish.
// Needs work - 10-9-09
var accI = unescape('%ED');
var accA = unescape('%E1');
	if (isSpanish) { // we're on a Spanish page;
	alert("spanish")
		if (toLang == "Spanish") {}
		else if (toLang == "English") {
			if (loc.indexOf('*spi') != -1 || loc.indexOf('_spi.html') != -1) {
			theLink.href = loc.replace(/[\*_]spi(.*)/,"$1");
			}
		}
	}
	else { // we're not on a Spanish page;
		var urlKey = loc.indexOf('.html');
		var spiURL;
		if (isSpanish) {
			if (loc.indexOf('/help_') != -1) {
				spiURL = loc.replace(/\/help_(.*)\.html/,"/help_$1_spi\.html");
			}
			else if (loc.indexOf('/search') != -1 || urlStr.indexOf('/selfreg') != -1 || urlStr.indexOf('/acquire') != -1 || urlStr.indexOf('patroninfo') != -1) {
				spiURL = loc.replace(/\/(search|selfreg|acquire|patroninfo)(.*)/,"/$1*spi$2");
			}
			else {
				spiURL = loc.substr(0,urlKey) + "_spi.html";
			}
			$.get(spiURL,function(){
				$.ajaxError(function(event, request, settings){
					alert("Nos sentimos, todav" + accI + "a no hemos traducido esta p" + accA + "gina.");
					theLink.href = "#";
 				});
				$.ajaxError(function(event, request, settings){
					theLink.href = spiURL;
				});
			});
		}
	}
	return false;
}

/**
 * breadcrumb() - Creates the navigation breadcrumb
 * Dynamic Javascript Breadcrumb Navigation by Adam DuVander
 * duvinci-dot-com/projects/javascript/crumbs/
 * 
 * Released under Creative Commons License:
 * creativecommons-dot-org/licenses/by/2.5/
 * 
 * Modified 6/4/07 by Andrew Welch, Aurora Public Library
 */
function breadcrumb() {
var objurl, pageurl, protocol, rooturl, adjurl, page_ar, currenturl, allbread, i;
var crumbsep = " > ";
var sectionsep = "/";
var rootpath = "/screens"; // Use "/" for root of domain.
var rootname = "Home";
var ucfirst = 1; // if set to 1, makes "directory" default to "Directory"

objurl = new Object; // translate how the filename (in braces) displays in the breadcrumb;
objurl['programs'] = 'Programs &amp; Events';
objurl['reading_programs'] = 'Reading&nbsp;Programs';
objurl['locations'] = 'Locations &amp; Hours';
objurl['topic_guides'] = 'Subjects&nbsp;A-Z';
objurl['research'] = 'Research&nbsp;Tools';
objurl['support'] = 'Support&nbsp;the&nbsp;Library';
objurl['about'] = 'About&nbsp;Us';
objurl['downloads'] = 'Free&nbsp;Downloads';
objurl['home'] = 'Home&nbsp;&amp;&nbsp;Garden';

// Grab the page's url and break it up into directory pieces
pageurl = (new String(document.location));
protocol = pageurl.substring(0, pageurl.indexOf("//") + 2);
pageurl = pageurl.replace(protocol, ""); // remove protocol from pageurl
rooturl = pageurl.substring(0, pageurl.indexOf(rootpath) + rootpath.length); // find rooturl
adjurl = pageurl.substring(0, pageurl.indexOf(rootpath) + rootpath.length - 7);
adjurl = protocol + adjurl; // removes "/screens" from home url

if (rooturl.charAt(rooturl.length - 1) == "/") //remove trailing slash
{
  rooturl = rooturl.substring(0, rooturl.length - 1);
}
pageurl = pageurl.replace(rooturl, ""); // remove rooturl from pageurl
if (pageurl.charAt(0) == '/') // remove beginning slash
{
  pageurl = pageurl.substring(1, pageurl.length);
}

page_ar = pageurl.split(sectionsep);
currenturl = protocol + rooturl;
allbread = "<a href=\"" + adjurl + "\">" + rootname + "</a>"; // start with root

for (i=0; i < page_ar.length-1; i++)
{
  var displayname = "";
  currenturl += "/" + page_ar[i];
  if (objurl[page_ar[i]]) { displayname = objurl[page_ar[i]]; }
  else
  {
    if (ucfirst == 1) { displayname = page_ar[i].charAt(0).toUpperCase() + page_ar[i].substring(1); }
    else { displayname = page_ar[i]; }
  }
  allbread += crumbsep + "<a href=\"" + currenturl + ".html\">" + displayname + "</a>";
}

$(".crumb").html(allbread);	
} // end breadcrumb();