// create an empty object if it doesn't already exist
// used for namespacing so we don't polute the global object. 
// all other js should be added as methods to this
if (typeof kalkomey === 'undefined') {
	kalkomey = {};
}

kalkomey.fullBackground = function() {
	// make sure the backstrech plugin exists and this page is one we want it on
	if (typeof $.backstretch === 'function' && $('html').hasClass('cover')) {
		$.backstretch('/css/i/bg-hunter-cover-snowmobile.jpg', {speed: 'fast'});
	}
};


// Module pattern:
// http://yuiblog.com/blog/2007/06/12/module-pattern/
var Landing = (function($) {
	
    return {
	
		go: function() {
			for (var i in Landing.init) {
				Landing.init[i]();
			}
		},
		
		init: {
			
			createStateLists: function() {
				if (window.XMLHttpRequest) { // object detection to exclude IE6 and below
					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 setStateListsClasses

			setPhotoListsClasses: function() {
				$('.secondary ul.photos li').each(function() {
					$(this).addClass($(this).text().toLowerCase().replace(/ /g,'')).append('<span></span>');
				});
			}, // end setPhotoListsClasses			
			
			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
			
			insertRandomTestimonial: function() {
				var quotes = $('<ul>');
				var testimonialWrap = $('.info.group div.col.b 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 insertRandomTestimonial	
			
		},
		
		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) + 2.6; 
								} 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);

jQuery(document).ready(function($) {
	Landing.go();
	kalkomey.fullBackground();	
});
