var sterling = window.sterling || {};

sterling.main = (function($) {

	var constants = {
		ajaxUrl: '/wp-admin/admin-ajax.php'
	}
	
	var fonts = {
		selectors: [
			'.box h3',
			'.box h4',
			'header .menu a',
			'footer .brands p',
			'footer .menu a',
			'footer .social p',
			'#layout .title',
			'#status-container p',
			'.xoxo .related-title',
			'#primary .related-heading',
			'body.ajax .title'
		],
		
		init: function() {
			Cufon.replace(fonts.selectors.join(','));
		}
	}
	
	var slideshow = {
		speed: 2000,
		timeout: 5000,
		
		init: function() {
			$('.slideshow').each(function() {
				var slideshow = $(this);
				var wrap = slideshow.parent();
				
				wrap.append('<a href="#" class="prev background-color-main">Previous</a><a href="#" class="next background-color-main">Next</a>');
				
				slideshow.cycle({
					speed: slideshow.speed,
					timeout: slideshow.timeout,
					prev: $('.prev:eq(0)', wrap),
					next: $('.next:eq(0)', wrap)
				});
			});
		}
	}
	
	var slider = {
		init: function() {
			var slider = $('#slider');
			if (slider.length) slider.sterlingSlider();
		}
	}
	
	var storelocator = {
		init: function() {
			var storelocator = $("#storelocator_container");
			if (storelocator.length) initialize();	
		}
	}
	
	var sterlingload = {
		init: function() {
			var sterlingblog = $("#load-button.blog");
			if (sterlingblog.length) initBlog();	
			var sterlingtrends = $("#load-button.trend");
			if (sterlingtrends.length) initTrend();
			var sterlingtrends = $("#load-button.archive");
			if (sterlingtrends.length) initArchive();
			
			
			$('.vcenter .post-item-content').css('padding-top', 0).vAlign();
		}
	}
	
	var home = {
		action: 'sterling_home_page',
		loading: false,
		
		init: function() {
			$('.listing section .more').click(function() {
				var currentPage = parseInt($(this).attr('rel'));
				var page = currentPage + 1;
				
				home.loadItems(page, this);
				return false;
			});
		},
		loadItems: function(page, btn) {
			if (home.loading) return;
			
			var btn = $(btn);
			home.loading = true;
			btn.addClass('loading');
			
			var data = {
				action: home.action,
				page: page
			}
			$.get(constants.ajaxUrl, data, function(html) {
				if (html == '') {
					btn.hide();
					return;	
				}
				
				var $html = $(innerShiv(html, false));
				var parent = btn.parent();
				var list = parent.find('> ul:eq(0)');
				
				list.append($html);
				parent.masonry('appended', $html, true);
				
				btn.attr('rel', page);
				home.loading = false;
				btn.removeClass('loading');
				Cufon.refresh(fonts.selectors.join(','));
				
				/*	
				$html.imagesLoaded(function() {
					parent.masonry('appended', $html, true);
					
					btn.attr('rel', page);
					home.loading = false;
					btn.removeClass('loading');
					Cufon.replace(fonts.selectors.join(','));
				});
				*/
			});
		}
	}
	
	var popup = {
		newsletterUrl: '/newsletter-sign-up/',
		
		init: function() {
			if (!$.blockUI) return;
			
			$.blockUI.defaults.css = {};
	        $.blockUI.defaults.overlayCSS = {
	            'backgroundColor' : '#000',
	            'opacity' : 0.6
	        };
	        
	        $('.blockOverlay').live('click', function() {
                $.unblockUI();
            });
            
            $('.blockMsg .close').live('click', function() {
                $.unblockUI();
                return false;
            });
		
			popup.newsletter();
		},
		newsletter: function() {
			$('#btn-newsletter-signup').click(function() {
				/*
				$.get(popup.newsletterUrl, function(html) {
					popup.show('newsletter', html);
					Cufon.replace('.newsletter-signup-page .title');
				});
				*/
				popup.show('newsletter', '<iframe frameborder="0" src="' + popup.newsletterUrl + '" height="100%" width="100%"></iframe>');
				return false;
			});
			
			$('.btn-newsletter-link').click(function() {
				popup.show('newsletter', '<iframe frameborder="0" src="' + popup.newsletterUrl + '" height="100%" width="100%"></iframe>');
				return false;			   
			});
			
			$('.newsletter-signup-page input[type=text]')
				.blur(function() {
					var $input = $(this);
					if ($input.val() == "") {
						$input.addClass('watermark');
					}
				})
				.focus(function() {
					$(this).removeClass('watermark');
				})
				.blur();
		},
		show: function(id, content) {
			 $.blockUI({ message : '<div id="' + id + '-popup" class="popup">' + content + '</div>'});
			$('.blockMsg .popup').append('<a href="#" class="close">Close</a>');
			$('.blockMsg').center();
		}
	}
	
	return {
		init: function() {
			fonts.init();
			
			$(function() {
				slideshow.init();
				slider.init();
				storelocator.init();
				home.init();
				popup.init();
				
				/*
				$('.masonry-three-col').each(function() {
					var $masonryThreeCol = $(this);
					
					$masonryThreeCol.imagesLoaded(function() {
						$masonryThreeCol.masonry({
							itemSelector: '.box',
		    				columnWidth: 320,
		    				isAnimated: !Modernizr.csstransitions
						});
					});
				});
				*/
				
				$('.masonry-three-col').masonry({
					itemSelector: '.box',
    				columnWidth: 320,
    				isAnimated: !Modernizr.csstransitions
				});
				
				$('.masonry-blog').masonry({
					itemSelector : '.box',
    				columnWidth : 480,
    				isAnimated: !Modernizr.csstransitions
				});
				
				sterlingload.init();
			});
		}
	}
})(jQuery)

sterling.main.init();

/* Plugins */
(function ($) {
// VERTICALLY ALIGN FUNCTION
$.fn.vAlign = function() {
	return this.each(function(i){
	var ah = $(this).height();
	var ph = $(this).parent().height();
	var mh = Math.ceil((ph-ah) / 2);
	$(this).css('margin-top', mh);
	});
};
})(jQuery);

$.fn.center = function() {
    // Always return each...
    return this.each(function() {
        var t = $(this);

        var leftMargin = t.width() / 2;
        var topMargin = t.height() / 2;

        if( typeof( window.pageYOffset ) == 'number' ) {
            // Netscape
            var scrollOffset = window.pageYOffset;
        } else if( document.body && document.body.scrollTop ) {
            // DOM
            var scrollOffset = document.body.scrollTop;
        } else if( document.documentElement && document.documentElement.scrollTop ) {
            // IE6 standards compliant mode
            var scrollOffset = document.documentElement.scrollTop;
        }
        else {
            var scrollOffset = 0;
        }

        var topOffset = ($(window).height() / 2) + scrollOffset - topMargin;
        var leftOffset = ($('body').width() / 2) - leftMargin;
        
        if (topOffset < 0)
            topOffset = 0;

        t.css({
            position: 'absolute',
            left: leftOffset + 'px',
            top: topOffset + 'px'
        });
    });
};

// http://bit.ly/ishiv | WTFPL License
window.innerShiv=function(){function h(c,e,b){return/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i.test(b)?c:e+"></"+b+">"}var c,e=document,j,g="abbr article aside audio canvas datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video".split(" ");return function(d,i){if(!c&&(c=e.createElement("div"),c.innerHTML="<nav></nav>",j=c.childNodes.length!==1)){for(var b=e.createDocumentFragment(),f=g.length;f--;)b.createElement(g[f]);b.appendChild(c)}d=d.replace(/^\s\s*/,"").replace(/\s\s*$/,"").replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,"").replace(/(<([\w:]+)[^>]*?)\/>/g,h);c.innerHTML=(b=d.match(/^<(tbody|tr|td|col|colgroup|thead|tfoot)/i))?"<table>"+d+"</table>":d;b=b?c.getElementsByTagName(b[1])[0].parentNode:c;if(i===!1)return b.childNodes;for(var f=e.createDocumentFragment(),k=b.childNodes.length;k--;)f.appendChild(b.firstChild);return f}}();
