var siteRoot = '/';

///////////////////////////// EqualHeight function

function equalHeight(group) {
	var tallest = 0;
	group.each(function() {
		$(this).height('');
		var thisHeight = $(this).height();
		if(thisHeight > tallest) {
			tallest = thisHeight;
		}
	});
	group.delay(500).height(tallest);
}


///////////////////////////// Add new slider content entries here.

var sliders = [
//	siteRoot+'sliders/todd.php',
//	siteRoot+'sliders/glenn.php',
//	siteRoot+'sliders/chris.php',
//	siteRoot+'sliders/charlie.php',
	siteRoot+'sliders/saker.php'
	];
var randSlide = Math.floor(Math.random()*sliders.length);
var sliderPos = randSlide;
var sliderDiv = 'div#slider1';
var sliderOld = 'div#slider2';

/****************************
		Add new blurbs + content entries here.
		Even blurbs not using the Prev/Next link system
			($paged var passed in the php function 'blurb' in index.php)
		need to be entered into this 'blurbs' object.
*/

var blurbs = {
	'store' : blurbSet = [
		siteRoot+"blurbs/store-tshirt-quiet-please.php",
		siteRoot+"blurbs/store-tshirt-game-changer.php",
		siteRoot+"blurbs/store-tshirt-rock-paper-scissors-shoot.php",
		siteRoot+"blurbs/store-patches.php"
		],
	'facts' : blurbSet = [
		siteRoot+"blurbs/facts-legal.php",
		siteRoot+"blurbs/facts-medical.php"
		],
	'blog' : blurbSet = [
//		siteRoot+"blurbs/blog-dark-earth.php",
		siteRoot+"blurbs/blog-cool-stuff.php"
		],
	'faq' : blurbSet = [
		siteRoot+"blurbs/faq-contact.php"
		],
	'testimonial' : blurbSet = [
		siteRoot+"blurbs/testimonial-lewis-rogers.php",
		siteRoot+"blurbs/testimonial-no-name.php"
		],
	'dealer' : blurbSet = [
		siteRoot+"blurbs/dealer-map.php",
		siteRoot+"blurbs/dealer-signup.php"
		],
	'dealer-map' : blurbSet = [
		siteRoot+"blurbs/dealer-map.php"
		],
	'dealer-signup' : blurbSet = [
		siteRoot+"blurbs/dealer-signup.php"
		],
	'video' : blurbSet = [
		siteRoot+"blurbs/video-500.php"
		],
	'photo' : blurbSet = [
		siteRoot+"blurbs/photo-100.php"
		],
	'rep' : blurblurbSetbset = [
		siteRoot+"blurbs/contact-rep.php"
		],
	'senator' : blurbSet = [
		siteRoot+"blurbs/contact-senator.php"
		],
	'offer' : blurbSet = [
		siteRoot+"blurbs/offer-22Sparrow.php"
		],
	'benefits' : blurbSet = [
		siteRoot+"blurbs/benefits-hearing.php"
		],
	'contact' : blurbSet = [
		siteRoot+"blurbs/contact-prefer-email.php"
		],
	'ownership' : blurbSet = [
		siteRoot+"blurbs/ownership-info.php",
		siteRoot+"blurbs/ownership-map.php"
		],
	'ownership-info' : blurbSet = [
		siteRoot+"blurbs/ownership-info.php"
		],
	'ownership-map' : blurbSet = [
		siteRoot+"blurbs/ownership-map.php"
		],
	'laws' : blurbSet = [
		siteRoot+"blurbs/laws-faq.php"
		],
	'silencerlab' : blurbSet = [
		siteRoot+"blurbs/silencerlab-logo.php"
		],
	'youtube' : blurbSet = [
		siteRoot+"blurbs/youtube.php"
		],
	'facebook' : blurbSet = [
		siteRoot+"blurbs/facebook.php"
		],
	'twitter' : blurbSet = [
		siteRoot+"blurbs/twitter.php"
		],
	'articles' : blurbSet = [
		siteRoot+"blurbs/articles-covers.php"
		],
	'product-sheets' : blurbSet = [
		siteRoot+"blurbs/product-sheets.php"
		],
	'maintenance' : blurbSet = [
		siteRoot+"blurbs/maintenance-mpc.php"
		],
	'product-registration' : blurbSet = [
		siteRoot+"blurbs/product-registration.php"
		],
	'dealer-signup' : blurbSet = [
		siteRoot+"blurbs/dealer-signup.php"
		],
	'legal-brochure' : blurbSet = [
		siteRoot+"blurbs/legal-brochure.php"
		],
	'patch-survey' : blurbSet = [
		siteRoot+"blurbs/patch-survey.php"
		],
	'contest-weekend' : blurbSet = [
		siteRoot+"blurbs/contest-weekend.php"
		],
	'legal-shoot' : blurbSet = [
		siteRoot+"blurbs/legal-shoot.php"
		]
};
var blurbsPos = {};
for (var key in blurbs) {
	blurbsPos[key] = Math.floor(Math.random()*blurbs[key].length);
};


///////////////////////////// Get browser for css

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

// Browser name: BrowserDetect.browser
// Browser version: BrowserDetect.version
// OS name: BrowserDetect.OS


var map;

(function($) {

	$(function() {

		var arrowMargL = 0;
		$("li.drop").hover(function(){
			$(this).addClass("hover").children('ol').css('visibility', 'visible');
			$("div#blackBar div.overlay").show();
			arrowMargL = ( $(this).width() - $(this).children('ol').children("img").width() ) / 2 ;
			$(this).children('ol').children("img").css({ marginLeft: arrowMargL });
		}, function(){
			$(this).removeClass("hover").children('ol').css('visibility', 'hidden');
			$("div#blackBar div.overlay").hide();
		});

		$('div#mapZip form').submit(function(){
			var radius = parseInt($(this).children('select').val());
			var geo = new google.maps.Geocoder();
			geo.geocode({ 'address': $(this).children('input[type=text]').val() },function(results, status) {
				if (status == google.maps.GeocoderStatus.OK) {
					var circle = new google.maps.Circle({ radius: radius, center: results[0].geometry.location });
					map.fitBounds(circle.getBounds());
				}
			});
			return false;
		});

		if (
			( ($.browser.mozilla) && ($.browser.version < '1.9.2') )
			||
			( ($.browser.webkit) && ($.browser.version < '500') )
			||
			( (BrowserDetect.OS == 'Windows') && (BrowserDetect.browser == 'Firefox') )
		)
		{
			$('head').append('<link rel="stylesheet" href="'+siteRoot+'css/patches/no-font-face.css" media="all" />');
		}
		if($('#blackBar.home').length){
			$.ajax({
				url: sliders[randSlide],
				success: function(data) {
					$(sliderDiv).html(data);
				}
			});
		}


		$('.blurb').each(function(){
			var thisID = $(this).children().children().attr('id');
			$.ajax({
				url: blurbs[thisID][blurbsPos[thisID]],
				success: function(data) {
					$('div.blurb div#'+thisID).html(data);
					var imgUrl = $('div.blurb div#'+thisID+' img.main').attr('src');
					$('div.blurb div#'+thisID+' img.main').hide();
					$('div.blurb div#'+thisID).parent().attr('style','background:url('+imgUrl+') top right no-repeat;height:160px');
				},
				async: false
			});
		});

		$('div.blurb div.links a').click(function(){
			for ( var key in blurbs ){
				if (key == $(this).parent().prev().attr('id')) {
					if ( $(this).attr('class') == 'next' ) {
						blurbsPos[key]++;
						if ( blurbsPos[key] > ( blurbs[key].length - 1 ) ) { blurbsPos[key] = 0; }
					}
					else if ( $(this).attr('class') == 'prev' ) {
						blurbsPos[key]--;
						if ( blurbsPos[key] < 0 ) { blurbsPos[key] = ( blurbs[key].length - 1 ); }
					}
					$.ajax({
						url: blurbs[key][blurbsPos[key]],
						success: function(data) {
							$('div.blurb div#'+key).parent().fadeOut(300,function(){
								$('div.blurb div#'+key).html(data);
								var imgUrl = $('div.blurb div#'+key+' img.main').attr('src');
								$('div.blurb div#'+key+' img.main').hide();
								$('div.blurb div#'+key).parent().fadeIn(300).attr('style','background:url('+imgUrl+') top right no-repeat;height:160px');
							});
						}
					});
					var prevBlurb = prevBlurb < 0 ? blurbs[key].length - 1 : blurbsPos[key] - 1;
					var nextBlurb = nextBlurb > ( blurbs[key].length - 1 ) ? 0 : blurbsPos[key] + 1;
					$('div.blurb div.links a.prev').attr('id',prevBlurb);
					$('div.blurb div.links a.next').attr('id',nextBlurb);
					break;
				}
			}
		});


		$('div#blackBar div.right a').click(function(){
			if ( sliderDiv == 'div#slider1' ) {
				sliderDiv = 'div#slider2';
				sliderOld = 'div#slider1';
			}
			else {
				sliderDiv = 'div#slider1';
				sliderOld = 'div#slider2';
			}
			sliderPos++;
			if ( sliderPos > ( sliders.length - 1 ) ) { sliderPos = 0; }
			$.ajax({
				url: sliders[sliderPos],
				success: function(data) {
					$(sliderDiv).hide().html(data).fadeIn(500);
					$(sliderOld).fadeOut(500);
				}
			});
			var prevSlider = prevSlider < 0 ? sliders.length - 1 : sliderPos - 1;
			var nextSlider = nextSlider > ( sliders.length - 1 ) ? 0 : sliderPos + 1;
			$('div#blackBar div.left a').attr('id',prevSlider);
			$('div#blackBar div.right a').attr('id',nextSlider);
		});
		$('div#blackBar div.left a').click(function(){
			if ( sliderDiv == 'div#slider1' ) {
				sliderDiv = 'div#slider2';
				sliderOld = 'div#slider1';
			}
			else {
				sliderDiv = 'div#slider1';
				sliderOld = 'div#slider2';
			}
			sliderPos--;
			if ( sliderPos < 0 ) { sliderPos = sliders.length - 1; }
			$.ajax({
				url: sliders[sliderPos],
				success: function(data) {
					$(sliderDiv).hide().html(data).fadeIn(500);
					$(sliderOld).fadeOut(500);
				}
			});
			var prevSlider = prevSlider < 0 ? sliders.length - 1 : sliderPos - 1;
			var nextSlider = nextSlider > ( sliders.length - 1 ) ? 0 : sliderPos + 1;
			$('div#blackBar div.left a').attr('id',prevSlider);
			$('div#blackBar div.right a').attr('id',nextSlider);
		});

		$('div#videos.thumbs a img').css({ opacity: .33 });
		$('div#videos.thumbs a.On img').css({ opacity: 1 });
		$('div#videos.thumbs a img').hover(function(){
			$(this).stop().animate({ opacity: 1 },300);
		},function(){
			if (!$(this).parent('a').hasClass("On")) {
				$(this).stop().animate({ opacity: .33 },300);
			}
		});
		$('div#videos.thumbs a').click(function(e){
			var href = $(this).attr('href');
			$('div#videos.thumbs a').removeClass("On");
			$(this).addClass("On").parent().prev('.gallery').children('div.video-js-box').hide(0,function(){
				$('.gallery').children('div'+ href).show(0,function(){
					VideoJS.setupAllWhenReady();
				});
			});
			$('div#videos.thumbs a').each(function(){
				if (!$(this).hasClass("On")) {
					$(this).children('img').animate({ opacity: .33 },300);
				}
			});
			e.preventDefault();
		});

/*		$('.productMediaNav a').click(function(e){
			$('.productMediaNav a').removeClass('selected');
			$(this).addClass('selected');
			var section = $(this).attr('name');
			if (section == "photos") {
				$('.featureVideo,div[name=thumbsVideos]').hide();
				$('.featurePhoto,div[name=thumbsPhotos]').show();
			}
			if (section == "videos") {
				$('.featurePhoto,div[name=thumbsPhotos]').hide();
				$('.featureVideo,div[name=thumbsVideos]').show();
			}
		});*/

		$('.productInfoNav a').click(function(e){
			$('.productInfoNav a').removeClass('selected');
			$(this).addClass('selected');
			var section = $(this).attr('name');
			$('.productInfo > div').hide();
			$('.productInfo > div#'+section).show();
		});

		$('img.arrow')
			.mouseover(function() { 
				var src = $(this).attr('src').match(/[^\.]+/) + '-o.png';
				$(this).attr('src', src);
			})
			.mouseout(function() {
				var src = $(this).attr('src').replace('-o', '');
				$(this).attr('src', src);
			});

		$("a.PDF,p#legalMap a,a.fancybox").fancybox({
			overlayColor: '#000',
			overlayOpacity: 0.7,
			autoScale: false,
			padding: 0,
			scrolling: 'no'
		});
		$("a.prodVid").fancybox({
			overlayColor: '#000',
			overlayOpacity: 0.7,
			autoScale: false,
			padding: 0,
			scrolling: 'no',
			onComplete: function(){
				$('div.video-js-box').prepend('<script src="js/video.js"></script>');
				VideoJS.setupAllWhenReady();
			}
		});

		$('div#feedback').show();
		$('div#feedback div.tab').click(function(){
			if ($(this).hasClass("open")) {
				$(this).removeClass("open").parent().animate({ left: '-200px' },500,function(){
					$(this).children('div.content').hide();
				});
			}
			else {
				$(this).addClass("open").parent().animate({ left: '0px' },500).children('div.content').show();
			}
		});

		$('div#feedback form').submit(function(){
			var allowSubmit = true;
			$('#feed_back_submit').show();
			$('#feed_back_indicator').hide();
			$('div#feedback form textarea.defaultValue').each(function(){
				var hasClass = $(this).hasClass("noSub");
				if (hasClass) {
					allowSubmit = false;
				}
			});
			if (allowSubmit) {
				$('#feed_back_submit').hide();
				$('#feed_back_indicator').show();
				$.post("actions.php",{
					action: 'feedback',
					fURL: $('div#feedback input[name=fURL]').val(),
					fComment: $('div#feedback textarea[name=fComment]').val()
				},function(data){
					$('#feed_back_indicator').hide();
					$('div#feedback div.content').html(data);
				});
			}
			return false;
		});

		$('.defaultValue').each(function(){
			var default_value = this.value;
			$(this).focus(function() {
				if (this.value == default_value) {
					$(this).val('').css({ color: '#fff', fontStyle: 'normal' });
				}
			});
			$(this).blur(function() {
				if (this.value == '') {
					$(this).addClass("noSub").val(default_value).css({ color: '#666', fontStyle: 'italic' });
				}
				else {
					$(this).removeClass("noSub");
				}
			});
		});

		$('p#legalMapSelect a').click(function(e){
			var newSrc = $(this).attr('href');
			var newHref = newSrc.match(/[^\.]+/) + "-zoom.png";
			$('p#legalMapSelect a').removeClass('On');
			$(this).addClass('On').parent('p#legalMapSelect').next().next('p#legalMap').children('a').attr('href',newHref).children('img').attr('src',newSrc);
			e.preventDefault();
		});

		$('div.slider div.slideCopy').hide();
		$('div.slider div.allDown').click(function(){
			$('div.slider h2').addClass('Open').next('div.slideCopy').slideDown('fast');
			$('div.slider h2').children('div.arrow').children('img').attr('src','img/arrow-up.gif');
		});
		$('div.slider div.allUp').click(function(){
			$('div.slider h2').removeClass('Open').next('div.slideCopy').slideUp('fast');
			$('div.slider h2').children('div.arrow').children('img').attr('src','img/arrow-down.gif');
		});
		$('div.slider h2').click(function(){
			if ($(this).hasClass('Open')) {
				$(this).removeClass('Open').next('div.slideCopy').slideUp('fast');
				$(this).children('div.arrow').children('img').attr('src','img/arrow-down.gif');
			}
			else {
				$(this).addClass('Open').next('div.slideCopy').slideDown('fast');
				$(this).children('div.arrow').children('img').attr('src','img/arrow-up.gif');
			}
		});

		$('form#contact').submit(function(){
			var allowSubmit = true;
			$('#contact-indicator').hide();
			$('#contact_submit').show();
			$('form#contact .defaultValue').each(function(){
				var hasClass = $(this).hasClass("noSub");
				if (hasClass) {
					allowSubmit = false;
					$('h3.content').html('Both fields are required.<br />We will not give or sell this info to anyone.');
				}
			});
			emailRegex = /[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?/;
			if (emailRegex.test($('form#contact input[name="cEmail"]').val())){ }
			else {
				allowSubmit = false;
				$('h3.content').html('Invalid email address.');
			}
			if (allowSubmit) {
				$('#contact_submit').hide();
				$('#contact-indicator').show();
				$.post("actions.php",{
					action: 'contact',
					cEmail: $('form#contact input[name=cEmail]').val(),
					cMessage: $('form#contact textarea[name=cMessage]').val()
				},function(data){
					$('#contact-indicator').hide();
					$('h2.content').html(data).nextAll().slideUp('fast');
				
					$('h3.content').html(data);
				});
			}
			return false;
		});

		$('form#catalog').submit(function(){
			var allowSubmit = true;
			$('#catalog-indicator').hide();
			$('#catalog_submit').show();
			$('form#catalog .defaultValue').each(function(){
				var hasClass = $(this).hasClass("noSub");
				if (hasClass) {
					allowSubmit = false;
					$('h3.content').html('All fields are required.<br />We will not give or sell this info to anyone.');
				}
			});
			emailRegex = /[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?/;
			if (emailRegex.test($('form#catalog input[name="catEmail"]').val())){ }
			else {
				allowSubmit = false;
				$('h3.content').html('Invalid email address.');
			}
			if (allowSubmit) {
				$('#catalog_submit').hide();
				$('#catalog-indicator').show();
				$.post("actions.php",{
					action: 'catalog',
					catEmail: $('form#catalog input[name=catEmail]').val(),
					catFname: $('form#catalog input[name=catFname]').val(),
					catLname: $('form#catalog input[name=catLname]').val(),
					catStreet: $('form#catalog input[name=catStreet]').val(),
					catCity: $('form#catalog input[name=catCity]').val(),
					catState: $('form#catalog input[name=catState]').val(),
					catZip: $('form#catalog input[name=catZip]').val()
				},function(data){
					$('#catalog-indicator').hide();
					$('h2.content').html(data).nextAll().slideUp('fast');
				
					$('h3.content').html(data);
				});
			}
			return false;
		});

		$('form#silencerlab').submit(function(){
			var allowSubmit = true;
			$('#silencerlab-indicator').hide();
			$('#silencerlab_submit').show();
			$('form#silencerlab .defaultValue').each(function(){
				var hasClass = $(this).hasClass("noSub");
				if (hasClass) {
					allowSubmit = false;
					$('h3.content').html('All fields are required.<br />We will not give or sell this info to anyone.');
				}
			});
			emailRegex = /[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?/;
			if (emailRegex.test($('form#silencerlab input[name="EMAIL"]').val())){ }
			else {
				allowSubmit = false;
				$('h3.content').html('Invalid email address.');
			}
			if (allowSubmit) {
				$('#silencerlab_submit').hide();
				$('#silencerlab-indicator').show();
				$.post("actions.php",{
					action: 'silencerlab',
					EMAIL: $('form#silencerlab input[name=EMAIL]').val(),
					FNAME: $('form#silencerlab input[name=FNAME]').val(),
					LNAME: $('form#silencerlab input[name=LNAME]').val()
				},function(data){
					$('#silencerlab-indicator').hide();
					$('h2.content').html(data).nextAll().slideUp('fast');
					$('h3.content').html(data);
				});
			}
			return false;
		});

		$('form#productRegistrationForm').submit(function(){
			$('#product-registration-indicator').show();
			
			var allowSubmit = true;
			$('form#productRegistrationForm .defaultValue').each(function(key, val){
				var hasClass = $(this).hasClass("noSub");
				if (hasClass) {
					allowSubmit = false;
					//alert(val.name);
					$('#product-registration-indicator').hide();
					$('form#productRegistrationForm h2').html('All fields are required.<br />We will not give or sell this info to anyone.');
				}
			});
			if (allowSubmit) {
				$.post("cake_inventory/product_registrations/product_registration",
				//{
					 $("form#productRegistrationForm").serialize()
					// prFname: $('form#productRegistrationForm input[name=prFname]').val(),
					// prLname: $('form#productRegistrationForm input[name=prLname]').val(),
					// prStreet: $('form#productRegistrationForm input[name=prStreet]').val(),
					// prCity: $('form#productRegistrationForm input[name=prCity]').val(),
					// prState: $('form#productRegistrationForm input[name=prState]').val(),
					// prZip: $('form#productRegistrationForm input[name=prZip]').val(),
					// prPhone: $('form#productRegistrationForm input[name=prPhone]').val(),
					// prSerial: $('form#productRegistrationForm input[name=prSerial]').val()
				//}
				,function(data){
					$('#product-registration-indicator').hide();
					$('form#productRegistrationForm h2').html(data).nextAll().slideUp('fast');
				});
			}
			return false;
		});

		$('form#dealerSignupForm').submit(function(){
			$('#dealer-signup-indicator').show();
			$('#dealer_submit').hide();
			
			var allowSubmit = true;
			$('form#dealerSignupForm .defaultValue').each(function(key, val){
				var hasClass = $(this).hasClass("noSub");
				
				// Validate Presence of every thing but the stuff below
				if (hasClass && val.name == "dsDName") {
					allowSubmit = false;
					$('form#dealerSignupForm h2').html('All fields * are required.<br />We will not give or sell this info to anyone.');
					$('#dealer-signup-indicator').hide();
					$('#dealer_submit').show();
				}
			});
			
			emailRegex = /[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?/;
			if (emailRegex.test($('form#dealerSignupForm input[name="dsEmail"]').val())){ }
			else {
				allowSubmit = false;
				$('form#dealerSignupForm h2').html('Invalid email address.');
				$('#dealer-signup-indicator').hide();
				$('#dealer_submit').show();
			}

			// validate the ffl
			var ffl_org = $('form#dealerSignupForm input[name=ffl]').val();
			ffl = ffl_org.replace(/-/gi, '');
			ffl = ffl.replace(/ /gi, '');
			ffl = ffl.toUpperCase();
			if (!ffl.match(/\d{9}[a-zA-Z]\d{5}\b/)) {
				//alert(ffl_org + " Is NOT a valid FFL #")
				$('form#dealerSignupForm h2').html(ffl_org + " Is NOT a valid FFL #");
				$('form#dealerSignupForm input[name=ffl]').css('background-color','#9C0000'); 
				
				$('#dealer-signup-indicator').hide();
				$('#dealer_submit').show();
				allowSubmit = false
			}
			//alert($('form#dealerSignupForm').attr("action"));
			//$('dealer-signup-indicator').style.visibility = 'visible';
			if (allowSubmit) {
			
				$.post("cake_inventory/dealers/dealer_signup",{
					action: 'dealerSignup',
					dsDname: $('form#dealerSignupForm input[name=dsDname]').val(),
					dsAgent: $('form#dealerSignupForm input[name=dsAgent]').val(),
					dsStreet: $('form#dealerSignupForm input[name=dsStreet]').val(),
					dsCity: $('form#dealerSignupForm input[name=dsCity]').val(),
					dsState: $('form#dealerSignupForm input[name=dsState]').val(),
					dsZip: $('form#dealerSignupForm input[name=dsZip]').val(),
					dsPhone: $('form#dealerSignupForm input[name=dsPhone]').val(),
					dsFax: $('form#dealerSignupForm input[name=dsFax]').val(),
					dsEmail: $('form#dealerSignupForm input[name=dsEmail]').val(),
					dsWebsite: $('form#dealerSignupForm input[name=dsWebsite]').val(),
					dsComment: $('form#dealerSignupForm textarea[name=dsComment]').val(),
					ffl: ffl
				},function(data){
					$('#dealer-signup-indicator').hide();
					$('#dealer_submit').show();
					$('form#dealerSignupForm h2').html(data).nextAll().slideUp('fast');
					//$.fancybox(data)
					//$('form#dealerSignupForm h2').html(data);
				});
			}
			return false;
		});

		if (window.location.hash == '#viewMap') {
			$('h2#viewMap').click();
		}

		$('div.specialOffer').height($('div#homeFeature').height());


	});

})(jQuery);
