var w = this, DAVISDIRECT = {};

DAVISDIRECT.Font = function () {
	var element = w.$('body').append('<span style="font-family:arial;font-size:72px">mmmmmmmmmml</span>').children(':last'),
		width = element.width(),
		height = element.height();
	
	element.remove();
	
	function detect(font) {
		var result;
		
		element = w.$('body').append(element).children(':last').css('font-family', font + ',arial');
		result = element.width() !== width || element.height() !== height;
		element.remove();
		
		return result;
	}
	
	return {detect: detect};
}();

DAVISDIRECT.Heading = function () {
	function init() {
		var heading = w.$('#content .hentry .entry-title a'),
			maxWidth = 380, maxHeight = 72, paddingRight = 16,
			width = heading.width();
		
		if (DAVISDIRECT.Font.detect('DavisDirect') || DAVISDIRECT.Font.detect('ITC Franklin Gothic Std')) {
			heading.css('background-image', 'url(http://davisdirect.net/wp-content/themes/davisdirect/images/header-condensed.png)').hover(
				function() {
					$(this).css('background-image', 'url(http://davisdirect.net/wp-content/themes/davisdirect/images/header-condensed-hover.png)');
				},
				function() {
					$(this).css('background-image', 'url(http://davisdirect.net/wp-content/themes/davisdirect/images/header-condensed.png)');
				}
			);
		}
		
		if (width < maxWidth && heading.height() < maxHeight) {
			heading.css('padding-right', (paddingRight + width > maxWidth ? maxWidth - width : paddingRight) + 'px');
		}
	}
	
	return {init: init};
}();

DAVISDIRECT.HireDavis = function () {
	function init() {
		var hire_davis = 
			"\n" +
			"\t" +	'<hr />' + "\n" +
			"\n" +
			"\t" +	'<div id="promotion">' + "\n" +
			"\t\t" +	'<p><a href="/distribution/fulfillment/" title="Hire Davis! Direct Fulfillment."><img src="http://davisdirect.net/wp-content/themes/davisdirect/images/hire-davis-quick.png" alt="Hire Davis" /><\/a><\/p>' + "\n" +
			"\t" + 	'<\/div><!-- #promotion -->' + "\n" +
			 "\n";
		if (w.location.pathname !== '/') {
			w.$('#header').after(hire_davis);
		}
	}
	
	return {init: init};
}();

DAVISDIRECT.Menu = function () {
	function init(menu) {
		w.$('#menu').html('<ul><li class="page_item page-item-4"><a href="http://davisdirect.net/company/" title="Company">Company<\/a><ul><li class="page_item page-item-203"><a href="http://davisdirect.net/company/fsc/" title="FSC®">FSC®<\/a><\/li><li class="page_item page-item-6"><a href="http://davisdirect.net/company/contact/" title="Contact Us">Contact Us<\/a><\/li><li class="page_item page-item-9"><a href="http://davisdirect.net/company/request-information/" title="Request Information">Request Information<\/a><\/li><li class="page_item page-item-57 current_page_parent"><a href="http://davisdirect.net/company/news/" title="News">News<\/a><\/li><\/ul><\/li><li class="page_item page-item-27"><a href="http://davisdirect.net/print/" title="Print">Print<\/a><ul><li class="page_item page-item-10"><a href="http://davisdirect.net/print/prepress/" title="Prepress">Prepress<\/a><ul><li class="page_item page-item-13"><a href="http://davisdirect.net/print/prepress/proofing/" title="Proofing">Proofing<\/a><ul><li class="page_item page-item-256"><a href="http://davisdirect.net/print/prepress/proofing/insite/" title="Insite">Insite<\/a><\/li><\/ul><\/li><li class="page_item page-item-15"><a href="http://davisdirect.net/print/prepress/stacatto/" title="Stacatto">Stacatto<\/a><\/li><li class="page_item page-item-18"><a href="http://davisdirect.net/print/prepress/guidelines/" title="Submission Guidelines">Submission Guidelines<\/a><\/li><\/ul><\/li><li class="page_item page-item-28"><a href="http://davisdirect.net/print/press/" title="Press">Press<\/a><\/li><li class="page_item page-item-31"><a href="http://davisdirect.net/print/bindery/" title="Bindery">Bindery<\/a><\/li><\/ul><\/li><li class="page_item page-item-35"><a href="http://davisdirect.net/mail/" title="Mail">Mail<\/a><\/li><li class="page_item page-item-37"><a href="http://davisdirect.net/fulfillment/" title="Fulfillment">Fulfillment<\/a><ul><li class="page_item page-item-38"><a href="http://davisdirect.net/fulfillment/schedule-web-presentation/" title="Schedule Presentation">Schedule Presentation<\/a><\/li><\/ul><\/li><\/ul>');
	}
	
	return {init: init};
}();

DAVISDIRECT.SWF = function () {
	function init() {
		var swf, id, ids = {
			 '4': 'company',
			'10': 'prepress',
			'27': 'print',
			'31': 'print-bindery',
			'28': 'print-press',
			'33': 'distribution',
			'37': 'distribution-fulfillment',
			'35': 'distribution-mailing'
		};
		
		if (!w.swfobject) {
			return false;
		}
		
		for (id in ids) {
			if (w.$('.pageid-' + id + ',.parent-pageid-' + id).length) {
				swf = ids[id] + '.swf';
			}
		}
		
		if (swf) {
			w.swfobject.embedSWF(
				'http://davisdirect.net/wp-content/themes/davisdirect/swf/' + swf, 'flash-slideshow', '270', '275', '9.0.0', "http://davisdirect.net/wp-content/themes/davisdirect/swf/express-install.swf",
				{}, {quality: 'best', wmode: 'transparent', loop: false}, {id: 'flash-slideshow'}
			);
		}
	}
	
	return {init: init};
}();

DAVISDIRECT.FormValidation = function () {
	var forms = [
			[ 'request-information', '/contact.cgi', 'Name', 'Email', 'Phone' ],
			[ 'schedule-web-presentation', '/contact.cgi', 'Name', 'Phone' ]
		], i;
	
	function validate(id) {
		var form = w.$('#' + forms[id][0]),
			validated;
		
		function validateField (name) {
			var field = form.find("input[name='" + name + "']"),
				validated = field.val();
			
			if (!validated) {
				w.alert("Please enter a value for the '" + name + "' field.");
				field.focus();
			};
			
			return validated;
		}
		
		for (i = 2; i < forms[id].length; i += 1) {
			if (!validateField(forms[id][i])) {
				return false;
			}
		}
		
		// Basic SPAM Protection
		form.attr(
			{
				action: forms[id][1],
				method: 'post'
			}
		);
		
		return true;
	}
	
	function submit(form, id) {
		form.submit(
			function () {
				return DAVISDIRECT.FormValidation.validate(id);
			}
		);
	}
	
	function init() {
		for (i = 0; i < forms.length; i += 1) {
			submit(w.$('#' + forms[i][0]), i);
		}
	}
	
	return {init: init, validate: validate};
}();

w.$(w.document).ready(
	function () {
		DAVISDIRECT.Heading.init();
		DAVISDIRECT.HireDavis.init();
		DAVISDIRECT.Menu.init();
		DAVISDIRECT.SWF.init();
		DAVISDIRECT.FormValidation.init();
		
		$('#menu > ul').superfish();
	}
);
