/* requires modernizr.js
	jquery-min.js,
	jquery.backstretch.js,
	jquery.fancybox.js     */

if (typeof kalkomey === 'undefined') { kalkomey = {}; }

jQuery(document).ready(function() {
	landing.go();
});

var landing = (function($) {

    return {

		go: function() {
			for (var i in landing.init) {
				landing.init[i]();
			}
		},

		init: {

			applyFullBackground: function() {
				// make sure the backstrech plugin exists and this page is one we want it on
				if (typeof $.backstretch === 'function' && $('html').hasClass('cover') && $(window).width() >= 720) {
					var theStateName = window.location.href.substring(window.location.href.indexOf("/",7)+1, window.location.href.indexOf("/",window.location.href.indexOf("/",7)+1)).toLowerCase();
					$.backstretch('/css/i/bg_boat_cover_'+theStateName+'.jpg', {speed: 'fast'});
				}
			}, // end applyFullBackground

			createStateLists: function() {
				// object detection to exclude IE7 and below, also exclude smaller screens
				if (document.querySelector && $(window).width() >= 720) {
					var stateSelect = $('<li class="states">Select your State<ul></ul></li>'),
						headerNav = $('header nav > ul');

					if ($('html#home').length) { // Home page gets list locally
						var states = $('#main ul.states li');

						if (states.length) {
							stateSelect.find('ul').append(states.clone());
							landing.misc.formatStateSelect(stateSelect);
							headerNav.append(stateSelect);
						}
					}
					else { // Other pages get the home page list thru Ajax
						if (headerNav.length) {
							stateSelect.find('ul').load('/index.html #main ul.states li', function(response, status, xhr) {
								if (status === "success") {
									landing.misc.formatStateSelect(stateSelect);
									headerNav.append(stateSelect);
								}
							});
						}
					}
				}
			}, // end createStateLists

			setStateListsClasses: function() {
				$('#main ul.states li a').each(function() {
					var span = $('<span class="logo"></span>');

					span.addClass($(this).text().toLowerCase().replace(/ /g,''));
					$(this).addClass('agency').append(span);
				});
			}, // end setListsClasses

			setPhotoListsClasses: function() {
				$('.secondary ul.photos li').each(function() {
					$(this).addClass($(this).text().toLowerCase().replace(/ /g,'')).append('<span></span>');
				});
			}, // end setListsClasses

			createEmailLink: function() {
				$('.emailobf').each(function() {
					var phrase = $(this);

					phrase.find('.ins').remove();

					var link = phrase.find('.link').text();
					var user = phrase.find('.user').text();
					var domain = phrase.find('.domain');
					var subject = link.replace(/ /g,'%20');

					phrase.html('<a href="mailto:' + user + '@' + domain.text() + '?subject=' + subject + '%20Inquiry">' + link + '</a>');
				});
			}, // end createEmailLink

			attachFancybox: function() {
				if (typeof $.fancybox === 'function' && $(window).width() >= 720) {
					// add fancybox modal windows to answer links on the landing pages
					$('.questions li a').fancybox({
						autoDimensions		: false,
						'maxwidth'			: '600',
						'type'				: 'ajax',
						'ajax'				: {
												dataFilter: function(data) {
													var pageContent = $(data); // pageContent is the context

													pageContent = $('#main', pageContent); // extract only main content
													pageContent.find('.questions').remove();
													return(pageContent);
												}
											},
						'overlayColor'		: 'rgb(0,0,0)',
						'overlayOpacity'	: 0.5,
						'padding'			: 0
					});
				}
			}, // end attachFancybox

			insertRandomTestimonial: function() {
				var quotes = $('<ul>'),
					testimonialWrap = $('.info.group p.testimonials');

				if (testimonialWrap.length) {
					quotes.load('/testimonials.html #main .primary ul.quotes li', function(response, status, xhr) {
						if (status === "success") {
							// Pick one random number out of number of testimonials found
							var i = Math.floor(Math.random() * quotes.find('li').length);
							var quote = quotes.find('li').slice(i, i+1).html();

							quote = $('<div class="quote group">' + quote + '</div>');
							testimonialWrap.before(quote).find('a').text('Read more testimonials');
						}
					});
				}
			} // end insertTestimonial

		},

		misc: {

			formatStateSelect: function(stateSelect) {
				var statesListItems = stateSelect.find('ul li');
				var statesLength = statesListItems.length;
				var topMarginVal;

				if (statesLength > 8) { // >8 states gets a 3-column menu
					var lengthMod = statesLength % 3;
					var colLength = lengthMod ? (statesLength-lengthMod)/3+1 : ((statesLength-lengthMod)/3);

					statesListItems.parent('ul').addClass('wide');
					for (var i = 0; i < 3; i++) {
						for (var j = 0; j < colLength; j++) {
							var k = i*colLength + j;

							if (statesListItems.get(k)) {
								switch (i) {
									case 1: statesListItems.get(k).className = 'center'; break;
									case 2: statesListItems.get(k).className = 'right'; break;
									default: statesListItems.get(k).className = 'left';
								}
							}

							if (i > 0 && j === 0) {
								// adjust for IE7's improper margin setting
								if ( $('html#home').hasClass('ie7') ) {
									topMarginVal = (colLength * 2) + 3.4;
								} else {
									topMarginVal = (colLength * 2);
								}

								statesListItems.get(k).style.marginTop = '-' + topMarginVal + 'em';
							}
							if (i === 2 && j === (colLength-(3-lengthMod)-1)) {
								if (lengthMod !== 0) {
									statesListItems.get(k).style.marginBottom = (4 / lengthMod) + 'em';
								}
							}
						}
					}
				}
				else { // <8 states get 1-column menu
					stateSelect.css('position','relative');
				}

				return stateSelect;

			} // end formatStateSelect
		}
	};

})(jQuery);

