//function $(element) {
//	return document.getElementById(element)
//}
heroSWFs=[];
clickTags=[];
swfLoadCounter = -1;
Browser = {
	IE:     !!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1),
	Opera:  navigator.userAgent.indexOf('Opera') > -1,
	WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
	Gecko:  navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') === -1,
	MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
		return [curleft,curtop];
	}
}

/*

IE6 HELPERS

*/
helpIE6 = {
	isIE6: false /*@cc_on || @_jscript_version < 5.7 @*/,
	
	hide_selects: function(pEl) {
		if( document.getElementById && document.getElementsByTagName ){
			var tempEl = document.getElementsByTagName("SELECT");
			for( var i=0; i < tempEl.length; i++ ){
				tempEl[i].style.visibility="hidden";
			}
		}
	},
	show_selects: function() {
		if( document.getElementById && document.getElementsByTagName ){
			var tempEl = document.getElementsByTagName("SELECT");
			for( var i=0; i < tempEl.length; i++ ){
				tempEl[i].style.visibility="visible";
			}
		}
	}
}

traverse = {
	next: function(pNode){
		var nextSib = pNode.nextSibling;
		while (nextSib.nodeType != 1) {
			nextSib = nextSib.nextSibling;
		}
		return nextSib;
	},
	previous: function(pNode){
		var prevSib = pNode.previousSibling;
		while (prevSib.nodeType != 1) {
			prevSib = prevSib.previousSibling;
		}	
		return prevSib;
	},
	down: function(pNode, strTagName){
		x = pNode.getElementsByTagName(strTagName);
		for(i=0; i < x.length; i++){
			child = x[i];
		}
		return child;
	},
	get_parent:function(pNode,strTagName){
		var groupParent = pNode.parentNode;
		while (groupParent.tagName != strTagName.toUpperCase()) {
			groupParent = groupParent.parentNode;
		}
		return groupParent;
	}
}

/*

default_textbox_val: reset text boxes with a default value (like search in global header), script looks for a non-empty alt attribute in the input tag

*/
default_textbox_val = {
	prep: function(){
		if( document.getElementById && document.getElementsByTagName ){
			var textboxes = document.getElementsByTagName("input");
			for( var i=0; i < textboxes.length; i++ ){
				if (textboxes[i].type=="text") {
					if (textboxes[i].alt != "") {
						textboxes[i].onfocus = function(){
						return default_textbox_val.clear(this); 
						};
					}
					if (textboxes[i].alt != "") {
						textboxes[i].onblur = function(){
						return default_textbox_val.reset(this);
						};
					}
				}
			}
		}
	},
	clear: function(pEl){
		if (pEl.value == pEl.alt) {
			pEl.value = "";
		}
	},
	reset: function(pEl){
		if (pEl.value == "") {
			pEl.value = pEl.alt;
		}
	}
}

/* suckerfish script to allow hover/rollover on non-anchor elements for IE */
function suckerfish(type, tag, parentId, theHoverClass) {
	if (window.attachEvent) {
		window.attachEvent("onload", function() {
			var sfEls = (parentId==null)?document.getElementsByTagName(tag):$(parentId).getElementsByTagName(tag);
			type(sfEls, theHoverClass);
		});
	}
}

pseudoHover = function(sfEls, theHoverClass) {
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" "+theHoverClass;
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" "+theHoverClass+"\\b"), "");
		}
	}
}
/* end suckerfish */

/*----------------------------------------------------
   Code to trigger and hide the flash modal element
------------------------------------------------------*/
var newSlideXML;
var newStartIndex;
function launchFlashModal(slideXML, startIndex, language) {
	newSlideXML = slideXML;
	newStartIndex = startIndex;
	document.getElementsByTagName('html')[0].style.overflow = "hidden";
	var fm = document.getElementById("flash-modal");
	if(!fm) {
		//// Create modal container if it doesn't exist yet
		fm = document.createElement("div");
		fm.setAttribute("id", "flash-modal");
		document.getElementsByTagName("body")[0].appendChild(fm);
		////---
		//// Embed flash object the first time
		if (AC_FL_RunContent == 0) {
			alert("This page requires AC_RunActiveContent.js.");
		} else {
			AC_FL_RunContent(
				'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0',
				'width', '100%',
				'height', '100%',
				'src', 'common/flash/modal',
				'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
				'play', 'false',
				'loop', 'false',
				'wmode', 'transparent',
				'id', 'modal_fla',
				'bgcolor', '#ffffff',
				'name', 'modal_fla',
				'menu', 'false',
				'allowScriptAccess','always',
				'movie', 'common/flash/modal',
				'htmlID', 'flash-modal',
				'FlashVars', 'lang=' + language
				);
		}
		////---
	} else if(navigator.appName.indexOf("Microsoft") != -1) {
		/* IE needs to re-embed the flash object every time, since it destroys the object anytime the modal is closed. */
		if (AC_FL_RunContent == 0) {
			alert("This page requires AC_RunActiveContent.js.");
		} else {
			AC_FL_RunContent(
				'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0',
				'width', '100%',
				'height', '100%',
				'src', 'common/flash/modal',
				'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
				'play', 'false',
				'loop', 'false',
				'wmode', 'transparent',
				'id', 'modal_fla',
				'bgcolor', '#ffffff',
				'name', 'modal_fla',
				'menu', 'false',
				'allowScriptAccess','always',
				'movie', 'common/flash/modal',
				'htmlID', 'flash-modal',
				'FlashVars', 'lang=' + language
				);
		}
	}
	sch = ((document.documentElement.scrollTop != 0)? document.documentElement.scrollTop : document.body.scrollTop )
	fm.style.display = "block";
	fm.style.height = fm.offsetHeight + "px"; // IE6 needs this initially. Don't ask why.
	fm.style.top = sch + "px";
	setTimeout("createSlides()", 250); // The flash object needs a brief moment to initialize.
}

function createSlides() {
	var flashObject = (navigator.appName.indexOf("Microsoft") != -1) ? window["modal_fla"] : document["modal_fla"];
	if(!(flashObject.startSlides)) {
		setTimeout("createSlides()", 250); // The flash object needs more time to initialize.
		return;
	}
	flashObject.startSlides(newSlideXML, newStartIndex);
	document.getElementById("flash-modal").style.height = "100%"; // Reapply 100% height so the modal resizes with the browser height
}

function closeModal() {
	document.getElementById("flash-modal").style.display = "none";
	document.getElementsByTagName('html')[0].style.overflow = "auto";
}
/*-------------------
   end flash modal
---------------------*/

/* resizeFlashWrapper is used by various flash elements to dynamically resize their wrappers as the content changes size */
function resizeFlashWrapper(id, h) {
	document.getElementById(id).style.height = h + "px";
}

var recipients = 1;
function addRecipient() {
	if(recipients == 3) { return; }
	recipients++;
	var btn = $("add_recipient");
	var pA = document.createElement("fieldset");
	pA.setAttribute("class", "clearfix");
	pA.setAttribute("id", "r" + recipients + "a");
	pA.innerHTML = "<div class='col prompt'><label for='' class='required'>Recipient " + recipients + "'s first name</label></div><div class='col'><input type='text' name='' id='' value='' class='text-full' /></div>"
	btn.parentNode.insertBefore(pA, btn);
	var pB = document.createElement("fieldset");
	pB.setAttribute("class", "clearfix");
	pB.setAttribute("id", "r" + recipients + "b");
	pB.innerHTML = "<div class='col prompt'><label for='' class='required'>Recipient " + recipients + "'s e-mail address</label></div><div class='col'><input type='text' name='' id='' value='' class='text-full' /></div>"
	btn.parentNode.insertBefore(pB, btn);
	$("remove_recipient").style.display = "block";
	if(recipients == 3) { btn.style.display = "none"; }
}
function removeRecipient() {
	if(recipients == 1) { return; }
	var btn = $("remove_recipient");
	var rf = $("r" + recipients + "a");
	rf.parentNode.removeChild(rf);
	rf = $("r" + recipients + "b");
	rf.parentNode.removeChild(rf);
	recipients--;
	$("add_recipient").style.display = "block";
	if(recipients == 1) { btn.style.display = "none"; }
}
function validateForm() {
	$("field_empty").style.display = "none";
	$("invalid_email").style.display = "none";
	var fields = ["sa", "sb", "r1a", "r1b", "r2a", "r2b", "r3a", "r3b"];
	var errors = false;
	var fs;
	var fsVal;
	for(var i = 0; i < fields.length; i++) {
		fs = $(fields[i]);
		if(fs) {
			fsVal = fs.getElementsByTagName("input")[0].value;
			if(fsVal == "") {
				fs.className = "clearfix error";
				$("field_empty").style.display = "list-item";
				errors = true;
			} else {
				fs.className = "clearfix";
			}
			if(i % 2 == 1) {
				if(fsVal.match(/^[a-zA-Z0-9][\w\-\|+!#$%&'*\/=?^`{}~.]*[\w\-\|+!#$%&'*\/=?^`{}~]+@[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,4}$/) && !fsVal.match(/\.\./)) {
					fs.className = "clearfix";
				} else {
					fs.className = "clearfix error";
					$("invalid_email").style.display = "list-item";
					errors = true;
				}
			}
		}
	}
	if(errors) { 
		$("form_err").style.display = "block";
	} else {
		document.create_msg.submit();
	}
}

/* --------------------------------------- */
/* HELPERS */

function isMatch(pEl,pMatch){
	if ((pEl.match(pMatch))==pMatch) {
		return true;
	} else {
		return false
	}
}

/* On window load, initialize various functions */
//window.onload=function(){
//	/* call for suckerfish elements, fsm_common.js */
//	suckerfish(pseudoHover, "LI", "nav-global", "sfhover");
	
	/* Clear text box on focus and reset to default if user doesn't enter anything */
//	default_textbox_val.prep();
//}

function setFontSize(sSize) {
	jQuery("body").removeClass("font_size_1");
	jQuery("body").removeClass("font_size_2");
	jQuery("body").removeClass("font_size_3");
	jQuery("body").addClass(sSize);

	jQuery("#font_size_1").removeClass("curr-size");
	jQuery("#font_size_2").removeClass("curr-size");
	jQuery("#font_size_3").removeClass("curr-size");
	jQuery("#"+sSize).addClass("curr-size");
}

jQuery(document).ready(function(){
	setTimeout("loadSWFs()", 500);
	//setTimeout("playHeroSWF('" + heroSWFs[0] + "')", 1000);
});

function loadSWFs() {
	swfLoadCounter++;
	if (swfLoadCounter <= heroSWFs.length) {
		if (heroSWFs[swfLoadCounter]!="" && heroSWFs[swfLoadCounter]!=undefined){
			var tempflashvars = {clickTag:clickTags[swfLoadCounter], autoplayPauseDuration:4000};
			var params = {wmode:'transparent',scale:'exactFit',allowScriptAccess:'always',id:heroSWFs[swfLoadCounter]};
			var attributes = {name:heroSWFs[swfLoadCounter],id:heroSWFs[swfLoadCounter], allowScriptAccess:'always'};
			swfobject.embedSWF("/assets/templates/default/flash/" + heroSWFs[swfLoadCounter] + ".swf", heroSWFs[swfLoadCounter], "990", "300", "9.0.0", "expressInstall.swf", tempflashvars, params, attributes);
		}
		setTimeout("loadSWFs()", 100);
	} else {
		setTimeout("playHeroSWF('" + heroSWFs[0] + "')", 100);
	}
}


function playHeroSWF(sName) {
	if(sName=="" || sName==undefined) sName = heroSWFs[0];
	 
	objTemp = document.getElementById(sName);
	if (!objTemp.startAnimation) {
		setTimeout("playHeroSWF('" + sName + "')", 1000);
	} else {
		try {
			objTemp.startAnimation();
		} catch (err) {
			//
		}
	}
}


function animationComplete() {
	
	if (carouselAutoplay!=1) return;
	
	var activeButton = jQuery(".jcarousel-control a.active");
	var numBags = (heroSWFs.length);

	if (Number(activeButton.text()) == Number(numBags)) {
		var nextBag = 1;
	} else {
		var nextBag = Number(activeButton.text()) + 1;
	}

	document.jcarousel.scroll(nextBag);
	jQuery('.jcarousel-control a').removeClass('active');
	jQuery('#carouselControl' + nextBag).toggleClass("active");
	setTimeout("playHeroSWF('" + heroSWFs[nextBag-1] + "')", 500);
	return false;
}