/*
Title: Utility Javascript
Author: designkitchen, inc.
*/




// This is used to open links in external windows. The HTML syntax is as follows:
// <a href="document.html" rel="external">external link</a>
function externalLinks() {
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("href") &&
       anchor.getAttribute("rel") == "external")
     anchor.target = "_blank";
 }
}

// sIFR
document.observe("dom:loaded", function() {
	if(typeof sIFR == "function"){
		sIFR.replaceElement(named({sSelector:"#side_nav dt", sFlashSrc:"/_javascripts/sifr/BlissMedium.swf", sColor:"#FFFFFF", sLinkColor:"#FFFFFF", sBgColor:"#F43021", sHoverColor:"#FFFFFF", sWmode:"opaque", nPaddingTop:10, nPaddingBottom:2, nPaddingLeft:18}));
		sIFR.replaceElement(named({sSelector:"#event_calendar dt", sFlashSrc:"/_javascripts/sifr/BlissMedium.swf", sColor:"#000000", sLinkColor:"#000000", sBgColor:"#FFFFFF", sHoverColor:"#000000", sWmode:"opaque"}));
		sIFR.replaceElement(named({sSelector:".related_pages dt", sFlashSrc:"/_javascripts/sifr/BlissMedium.swf", sColor:"#000000", sLinkColor:"#000000", sBgColor:"#FFFFFF", sHoverColor:"#000000", sWmode:"opaque"}));
		sIFR.replaceElement(named({sSelector:".spiff_layout_1 h3", sFlashSrc:"/_javascripts/sifr/BlissMedium.swf", sColor:"#000000", sLinkColor:"#000000", sBgColor:"#FFFFFF", sHoverColor:"#000000", sWmode:"transparent"}));
		sIFR.replaceElement(named({sSelector:".spiff_layout_2 dt", sFlashSrc:"/_javascripts/sifr/BlissMedium.swf", sColor:"#FFFFFF", sLinkColor:"#FFFFFF", sBgColor:"#5D6659", sHoverColor:"#FFFFFF", sWmode:"opaque", nPaddingTop:3, nPaddingRight:14, nPaddingBottom:3, nPaddingLeft:14}));
		sIFR.replaceElement(named({sSelector:"#main_content .block_layout_1b .module_layout_1 h3", sFlashSrc:"/_javascripts/sifr/BlissMedium.swf", sColor:"#000000", sLinkColor:"#000000", sBgColor:"#FFFFFF", sHoverColor:"#000000", sWmode:"opaque"}));
		sIFR.replaceElement(named({sSelector:"#main_content .block_layout_2b .module_layout_1 h3", sFlashSrc:"/_javascripts/sifr/BlissMedium.swf", sColor:"#000000", sLinkColor:"#000000", sBgColor:"#FFFFFF", sHoverColor:"#000000", sWmode:"opaque"}));
		sIFR.replaceElement(named({sSelector:"#main_content .block_layout_2a .module_layout_1 h1", sFlashSrc:"/_javascripts/sifr/BlissMedium.swf", sColor:"#000000", sLinkColor:"#000000", sBgColor:"#FFFFFF", sHoverColor:"#000000", sWmode:"opaque"}));
		sIFR.replaceElement(named({sSelector:"#main_content .block_layout_2a .module_layout_1 h2", sFlashSrc:"/_javascripts/sifr/BlissLight.swf", sColor:"#000000", sLinkColor:"#000000", sBgColor:"#FFFFFF", sHoverColor:"#000000", sWmode:"opaque"}));
		sIFR.replaceElement(named({sSelector:"#main_content .block_layout_2c .module_layout_1 h2", sFlashSrc:"/_javascripts/sifr/BlissLight.swf", sColor:"#000000", sLinkColor:"#000000", sBgColor:"#FFFFFF", sHoverColor:"#000000", sWmode:"opaque"}));
	};
});

// This function looks for inputs with a class of 'default_value' and clears or
// resets the default value on focus/blur.
document.observe("dom:loaded", function() {
	$$('input.default_value', 'textarea.default_value')
	.invoke('observe', 'focus', function(e) {
		if (this.hasClassName('default_value')) {
			this.value='';
			this.removeClassName('default_value');
		}
	})
	.invoke('observe', 'blur', function(e) {
		if (this.value=='') {
			this.addClassName('default_value');
			this.value=this.defaultValue;
		}
	})
});

// This powers the home page banner transitions.
var homeBanner = Class.create({
	initialize: function(targetId) {
		this.target = $(targetId);
		this.spanArray = this.target.select('span');
		this.spanArray.each(function(span, i) {
			span.setStyle({ zIndex: 1000 - i });
		});
		this.fadeOut(0);
	},
	fadeOut: function(i) {
		var that = this;
		var j = i;
		setTimeout(
			function() {
				new Effect.Opacity(that.spanArray[j], { duration: 2.0, from: 1.0, to: 0.0 });
				if (i < (that.spanArray.length - 2)) { that.fadeOut(i + 1) }
			}, 3000
		);
	}
});

// This class powers the 'Tip of the Day' scrolling ticker on the home page.
var tipTicker = Class.create({
	initialize: function(targetId, options) {
		this.target = $(targetId);
		this.options = Object.extend({
			rate: 0.7
		}, arguments[1] || {});

		var targetWidth = 0;
		var tickerInner = this.target.wrap('div', { 'class': 'ticker_inner', 'style': 'position: relative; overflow: hidden;' });
		var tickerOuter = this.target.up().wrap('div', { 'class': 'ticker_outer', 'style': 'position: relative; overflow: hidden;' });
		var innerWidth = this.target.up().getWidth();
		
		this.target.select('li').each(function(li) { targetWidth += li.getWidth() });
		this.target.setStyle({ width: targetWidth + 'px', position: 'relative', left: innerWidth + 'px' });
		this.startScroll();

		this.target.observe('mouseover', this.stopScroll.bind(this))
		this.target.observe('mouseout', this.startScroll.bind(this));
	},
	stopScroll: function() {
		this.scrollEffect.cancel();
	},
	startScroll: function() {
		var scrollWidth = this.target.positionedOffset().left + this.target.getWidth();
		var scrollDuration = ((scrollWidth/this.options.rate)/100);
		this.scrollEffect = new Effect.Move(this.target, {
			x: '-' + scrollWidth,
			y: 0,
			mode: 'relative',
			transition: Effect.Transitions.linear,
			duration: scrollDuration,
			afterFinish: this.loopScroll.bind(this)
		});
	},
	loopScroll: function() {
		this.target.setStyle({ left: this.target.up().getWidth() + 'px' });
		this.startScroll();
	}
});

/* Careers Page */
document.observe("dom:loaded", function() {
    /* Make the jobs collapsible */
    $$('dl.toggle').each(function(dl) {
        dl.select('dd').invoke('hide');
        dl.observe('click', function(e) {
    
            if (($(e.target).nodeName.toUpperCase() === 'DT') && ($(e.target).nextSiblings()[0].nodeName.toUpperCase() === 'DD') && ($(e.target).up() === dl)) {
                $(e.target).toggleClassName('open');
                $(e.target).nextSiblings()[0].toggle();
            }
        });
           
       if ((dl.className.indexOf('job') == -1)&&(dl.className.indexOf('docs') == -1)) {
           dl.select('dt')[0].toggleClassName('open');
           dl.select('dt')[0].nextSiblings()[0].toggle();
       }
    });
});

// The event calendar
var eventCalendar = Class.create({
	initialize: function(targetId) {
		this.target = $(targetId);
		this.target.observe('click', this.handleClick.bind(this));
	},
	handleClick: function(event) {
		var target = $(event.target);
		if ((target.nodeName.toUpperCase() === 'A') && (target.hasClassName('EventLink'))) {
			Event.stop(event);
			this.updateUpcoming(target.href);
		}
	},
	updateUpcoming: function(href) {
		var upcoming = $('upcoming').show();
		var ajaxUpdater = new Ajax.Updater(upcoming, href, {
			method: 'get',
			parameters: {
				text: href
			}
		});
	}
});

function showInquiryForm(formId) {
	$$('div.InquiryForm').invoke('hide');
	$(formId).show();
	var allInputs = $(formId).getElementsByTagName('input');
	for(var i=0; i<allInputs.length; i++){
	    if(allInputs[i].type == 'image'){
	        var thisInput = allInputs[i];
	        break;
	    }
	}
	//$(thisInput).observe('click', function(){
	  //  alert('hi')
	//});
	return false;
}
/*
// Google Analytics
document.observe('dom:loaded', function() {
	try {
		var pageTracker = _gat._getTracker("UA-7246817-1");
		pageTracker._trackPageview();
	} catch(err) {}
});*/

