function get_event(e) {
	try {
		if (typeof window.event != "undefined") { 
			return window.event; 
		}
		return e;
	} catch(ex) {
		//alert('Error 1 occurred.'); // DEBUG
		return e;
	}
}

function get_event_target(e) {
	return e.target ? e.target : e.srcElement;
}

function show_gdialog(title, content) {
	if (typeof goog != 'undefined') {
		//if (typeof window.gDialog == "object") { window.gDialog.setVisible(false); }
		$$('.modal-dialog').each(function(md) {
			md.remove();
		});
		window.gDialog = new goog.ui.Dialog(null, false);
		window.gDialog.setTitle(title);
		window.gDialog.setButtonSet(null);
		window.gDialog.setDraggable(false);
		window.gDialog.setContent(content);
		window.gDialog.setVisible(true);
		window.gDialog.reposition();
	}
}

function hpvid(vid) {
	var mediaID;
	var dialog_title;
	switch (vid) {
		case 2:
			mediaID = '943a14d45063493294bf168239dc3327';
			dialog_title = 'Our Recruiters';
			break;
		case 3:
			mediaID = '13faff302a2349fc9c4042f440955acf';
			dialog_title = 'Our Clients';
			break;
		case 4:
			mediaID = '6b07a58e9ff549da80a46e953658837e';
			dialog_title = 'Our Candidates';
			break;
		case 1:
		default:
			mediaID = '29bcb1cdf1944f81b28fd71b216ad97d';
			dialog_title = 'Our Leadership';
	}
	//var template = "<object width=\"480\" height=\"411\" id=\"delve_player524644o\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"><param name=\"movie\" value=\"http://assets.delvenetworks.com/player/loader.swf\"/><param name=\"wmode\" value=\"window\"/><param name=\"allowScriptAccess\" value=\"always\"/><param name=\"allowFullScreen\" value=\"true\"/><param name=\"flashvars\" value=\"mediaId=" + mediaID + "&amp;playerForm=DelvePlayer&amp;autoplay=true\"/><embed src=\"http://assets.delvenetworks.com/player/loader.swf\" name=\"delve_player524644e\" wmode=\"window\" width=\"480\" height=\"411\" allowScriptAccess=\"always\" allowFullScreen=\"true\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.adobe.com/go/getflashplayer\" flashvars=\"mediaId=" + mediaID + "&amp;playerForm=DelvePlayer&amp;autoplay=true\"></embed></object>";
var template = "<span class=\"LimelightEmbeddedPlayer\"><script src=\"http://assets.delvenetworks.com/player/embed.js\"></script><object type=\"application/x-shockwave-flash\" id=\"limelight_player\" name=\"limelight_player\" class=\"LimelightEmbeddedPlayerFlash\" width=\"480\" height=\"411\" data=\"http://assets.delvenetworks.com/player/loader.swf\"><param name=\"movie\" value=\"http://assets.delvenetworks.com/player/loader.swf\"/><param name=\"wmode\" value=\"window\"/><param name=\"allowScriptAccess\" value=\"always\"/><param name=\"allowFullScreen\" value=\"true\"/><param name=\"flashVars\" value=\"mediaId=" + mediaID + "&amp;playerForm=DelvePlayer&amp;autoplay=true\"/></object><script>LimelightPlayerUtil.initEmbed('limelight_player');</script></span>";

Modalbox.show(template, {title: dialog_title});

//show_gdialog('Video: ' + dialog_title, template);
	
	$$('.modal-dialog-title-close').each(function(cl) {
		cl.observe('click', function(){ 
			$$('.modal-dialog').each(function(md) {
				md.remove();
			});
		});
	});

}

function find_sn_parent(el) {
	try {
		if (typeof el.hasClassName == "function") {	
			if (el.hasClassName('snlink')) { return el; }
		}
	} catch (ex) {
		//alert("Error 2a occurred.");
	}
	try {
		var found = false;
		if (typeof el.ancestors == "function") {
			el.ancestors().each(function(anc) {
				if (found !== false) { return found; }
				if (anc.hasClassName('snlink')) {
					found = anc;
					return found;
				}
				return found;
			});
		}
		return found;
	} catch (ex) {
		//alert('Error 2b occurred.');
		return false;
	}
}

function sn_menu(menutype, action) {
	if (action != 'show' && action != 'hide') { return false; }
	var pop = $('snpop_' + menutype);
	var menulink = $('sn_' + menutype);
	if (pop) {
		if (action == 'show') {
			// Hide all other popups.
			$$('.snpop').each(function(spop) {
				if (spop.id != pop.id) { spop.setStyle('display: none;'); }
			});
			$$('.popped').each(function(slink) {
				if (slink.id != menulink.id) { slink.removeClassName('popped'); }
			});
			
			// Show the selected popup.
			pop.setStyle('display: block; top: ' + menulink.positionedOffset()[1] + 'px;');
			menulink.addClassName('popped');
			return true;
		} else {
			pop.setStyle('display: none;');
			menulink.removeClassName('popped');
			return true;
		}
	}
	return false;
}

function bullpage(pn) {
	// Display the right group of table rows, and hide the others.
	$$('.bullbody').each(function(bb) {
		if (bb.id != ('bullbody_' + (pn - 1))) {
			bb.setStyle('display: none');
		} else {
			bb.setStyle('display: table-row-group');
		}
	});
	// Update pagination link colors.
	$$('.bullpaglink').each(function(bpl) {
		if (bpl.id != ('bullpaglink_' + pn)) {
			bpl.removeClassName('active');
		} else {
			bpl.addClassName('active');
		}
	});
	$('alljobs').removeClassName('active');
}

function bullpages_all() {
	$$('.bullbody').each(function(bb) {
		bb.setStyle('display: table-row-group');
	});
	$$('.bullpaglink').each(function(bpl) {
		bpl.removeClassName('active');
	});
	$('alljobs').addClassName('active');
}

function validateJobForm() {
	var required_fields = ['firstName', 'lastName', 'phone', 'email', 'companyName'];
	var missing = false;
	required_fields.each(function(rf) {
		if ($(rf) && $(rf).value.empty()) {
			missing = true;
		}
	});
	if (missing === true) { 
		alert('One or more required fields are blank. Please fill out all required fields.');
		return false; 
	}
	return true;
}

function showvid(v) {
	var thumbs = $$('.vidthumb');
	var tabs = $$('.vidtab');
	thumbs.each(function(th) {
		if (th.id == 'vidthumb_'+v) {
			th.setStyle('display: block;');
		} else {
			th.setStyle('display: none;');
		}
	});
	tabs.each(function(tab) {
		if (tab.id == 'vidtab_'+v) {
			tab.addClassName('active');
		} else {
			tab.removeClassName('active');
		}
	});
}

function validate_talent_form(tf) {
	var title = $F('findtalent_title');
	var exp = $F('findtalent_experience');
	var ind = $F('findtalent_industry');
	var fullname = $F('fullname');
	var email = $F('findtalent_email');
	if (
		(title.blank() || title == window.init_page.text_prompts.findtalent_title) 
		|| (exp.blank() || exp == window.init_page.text_prompts.findtalent_experience) 
		|| (ind.blank() || ind == window.init_page.text_prompts.findtalent_industry) 
		|| (fullname.blank() || fullname == window.init_page.text_prompts.fullname) 
		|| (email.blank() || email == window.init_page.text_prompts.findtalent_email)
		) {
			alert('Please fill out all of the fields before submitting the form.');
			return false;
	}
	return true;
}

function validate_contact_form(cf) {
	var name = $F('name_field');
	var addr = $F('address_field');
	var city = $F('city_field');
	var state = $F('state_field');
	var zip = $F('zip_field');
	var phone = $F('phone_field');
	var email = $F('email_field');
	if (
		(name.blank() || name == window.init_page.text_prompts.name_field) 
		|| (addr.blank() || addr == window.init_page.text_prompts.address_field) 
		|| (city.blank() || city == window.init_page.text_prompts.city_field) 
		|| (state.blank() || state == window.init_page.text_prompts.state_field) 
		|| (zip.blank() || zip == window.init_page.text_prompts.zip_field) 
		|| (phone.blank() || phone == window.init_page.text_prompts.phone_field) 
		|| (email.blank() || email == window.init_page.text_prompts.email_field)
		) {
			alert('One or more required fields were not filled out. Please fill out all required fields before submitting the form.');
			return false;			
	}
	return true;
}

function check_prompt(fld) {
	if (fld.value == window.init_page.text_prompts[fld.id]) {
		fld.removeClassName('filled_field');
		fld.addClassName('unfilled_field');
	} else {
		fld.removeClassName('unfilled_field');
		fld.addClassName('filled_field');
	}
}

function has_ancestor(el, ancID) {
	var ancs = el.ancestors();
	var ancFound = false;
	ancs.each(function(a) {
		if (a.id == ancID) { ancFound = true; }
	});
	return ancFound;
}

window.init_page = function() {
	// Image preloading.
	this.preloadImages = function() {
	    var i = 0;
	    var ims = ['images/sn_notch.png'];
	    var imCount = ims.size();
	    var imageObj = new Image();
	    for (i=0; i<imCount; i++) {
	         imageObj.src = ims[i];
	    }
	}
	this.preloadImages(); // Do it now.

	// Initalize the search field and other text-prompt fields.
	window.init_page.text_prompts = {
		findtalent_title : 'Type of Talent (Title)', 
		findtalent_experience : 'Years of Experience', 
		findtalent_industry : 'Type of Industry', 
		fullname : 'Your Name', 
		findtalent_email : 'Your Email Address',
		
		searches_title : 'Position Title', 
		searches_category : 'Job Category', 
		searches_location : 'Job Location', 
		searches_keyword : 'Keyword Search',
		
		name_field : 'Name', 
		company_field : 'Company', 
		title_field : 'Title', 
		address_field : 'Address', 
		city_field: 'City', 
		state_field: 'State', 
		zip_field: 'Zip', 
		phone_field: 'Phone Number (include area code)', 
		fax_field: 'Fax Number (include area code)', 
		email_field: 'Email', 
		comments: 'Comments'
	};
	this.search_focused = function(e) {
		if (e.target.value == 'SEARCH') { e.target.value = ''; }
	};
	this.search_blur = function(e) {
		if (e.target.value.blank() === true) { e.target.value = 'SEARCH'; }
	};
	this.prompt_focused = function(e) {
		if (e.target.value == window.init_page.text_prompts[e.target.id]) { e.target.value = ''; }
		check_prompt(e.target);
	};
	this.prompt_blur = function(e) {
		if (e.target.value.blank() === true) { e.target.value = window.init_page.text_prompts[e.target.id]; }
		check_prompt(e.target);
	};
	$('search_field').observe('focus', this.search_focused);
	$('search_field').observe('blur', this.search_blur);
	var ftt = $('findtalent_title');
	var ftex = $('findtalent_experience');
	var fti = $('findtalent_industry');
	var ftfn = $('fullname');
	var ftem = $('findtalent_email');
	var fst = $('searches_title');
	var fsc = $('searches_category');
	var fsl = $('searches_location');
	var fsk = $('searches_keyword');
	var namefield = $('name_field');
	var companyfield = $('company_field');
	var titlefield = $('title_field');
	var addressfield = $('address_field');
	var cityfield = $('city_field');
	var statefield = $('state_field');
	var zipfield = $('zip_field');
	var phonefield = $('phone_field');
	var faxfield = $('fax_field');
	var emailfield = $('email_field');
	var commentsfield = $('comments');
	var fieldsToWatch = [
		ftt, ftex, fti, ftfn, ftem, fst, fsc, fsl, fsk ,
		namefield, companyfield, titlefield, addressfield, cityfield, statefield, zipfield, 
		phonefield, faxfield, emailfield, commentsfield
	];
	fieldsToWatch.each(function(field) {
		// Don't do this for the Contact form anymore. Disabled by request.
		if (field && (has_ancestor(field, 'contact_form') !== true)) { 
			field.observe('focus', this.prompt_focused); 
			field.observe('blur', this.prompt_blur); 
			check_prompt(field); // Turn it gray if unfilled, blue if filled.
		}
	});
	
	// Initialize industry selector dropdown, if present.
	this.ind_toggle = function(e) {
		var tog = new Effect.toggle('industry_dropdown', 'slide', { duration: 0.5 });
	};
	var indButton = $('industry_button');
	var indDrop = $('industry_dropdown');
	if (indButton && indDrop) {
		indButton.observe('click', this.ind_toggle);
	}
	
	// Initialize news filter dropdown, if present.
	this.nf_toggle = function(e) {
		var tog = new Effect.toggle('newsyears_dropdown', 'slide', { duration: 0.5 });
	}
	var newsfilterButton = $('news_filter_butn');
	var newsfilterDrop = $('newsyears_dropdown');
	if (newsfilterButton && newsfilterDrop) {
		newsfilterButton.observe('click', this.nf_toggle);
	}
	
	// Add hover states to the side_nav menu.
	this.addHoverClass = function(e) {
		try {
			var et = e.findElement();
			var snlink = find_sn_parent(et);
			if (snlink.hasClassName('hovered') === false) {
				snlink.addClassName('hovered');
			}
		} catch (ex) {
			//alert('Error in this-addHoverClass function.');			
		}
	};
	this.removeHoverClass = function(e) {
		try {
			var et = e.findElement();
			var snlink = find_sn_parent(et);
			if (snlink.hasClassName('hovered')) {
				snlink.removeClassName('hovered');
			}
		} catch (ex) {
			//alert("Error in this-removeHoverClass function.");
		}
	};
	this.toggleNavMenu = function(e) {
		try {
			var et = e.findElement();
			var snlink = find_sn_parent(et);
			var sntype = snlink.id.split('_')[1];
			var snpop = $('snpop_' + sntype);
			if (snpop) {
				if (snpop.getStyle('display') != 'block') {
					sn_menu(sntype, 'show');
				} else {
					sn_menu(sntype, 'hide');
				}
			}
			
		} catch (ex) {
			//alert("Error in this-toggleNavMenu function.");
		}
	}
	if ($('side_nav')) {
		$$('#side_nav .snlink').each(function(snl) {
			snl.observe('mouseover', this.addHoverClass);
			snl.observe('mouseout', this.removeHoverClass);
			snl.observe('click', this.toggleNavMenu);
		});
	}
	
	// Fix position of #postdeco region, if needed.
	var decopic = $('decopic');
	var postdeco = $('postdeco');
	if (decopic && postdeco) {
		var decoH = decopic.getHeight();
		if (decoH > 315) {
			postdeco.setStyle('top: ' + (decoH + 20) + 'px;');
		}
	}
	
	// Fix element heights if needed
	var lower_page = $('lower_page');
	var talent_right = $('talent_right');
	var talent_matrix = $('talent_matrix');
	var lower_page_right = $('lower_page_right');
	if (lower_page && (talent_right || talent_matrix)) {
		var trh = talent_right ? talent_right.getHeight() : 0;
		var tmh = talent_matrix ? talent_matrix.getHeight() : 0;
		var rightmax = Math.max(trh, tmh);
		var lph = lower_page.getHeight();
		if (rightmax > lph) {
			lower_page.setStyle('height: ' + rightmax + 'px;');
		}
	} else if (lower_page && lower_page_right) {
		// Homepage
		var lph = lower_page.getHeight();
		var lprh = lower_page_right.getHeight();
		if (lph > lprh) {
			lower_page_right.setStyle('height: ' + (lph - 16) + 'px;');
		}
	} else {
		var rrs = $('recruiter_right_sb');
		var mcm = $('maincol_midpage');
		var cq = $('clients_quotes');
		if (mcm && (rrs || cq)) {
			var rrsTop = rrs ? rrs.cumulativeOffset()[1] : 0;
			var rrsHt = rrs ? rrs.getHeight() : 0;
			var mcmTop = mcm.cumulativeOffset()[1];
			var mcmHt = mcm.getHeight();
			var cqTop = cq ? cq.cumulativeOffset()[1] : 0;
			var cqHt = cq ? cq.getHeight() : 0;
			var rrsTotal = rrs ? (rrsTop + rrsHt) : 0;
			var cqTotal = cq ? (cqTop + cqHt) : 0;
			var sidemax = Math.max(rrsTotal, cqTotal);
			if (sidemax > (mcmTop + mcmHt)) {				
				mcm.setStyle('height: ' + (sidemax - mcmTop) + 'px;');
			}
		}
	}
}

Event.observe(window, 'load', window.init_page);
//Event.observe(window.document, "dom:loaded", window.init_page);
