var OkayOkay = function() {
	
	var $ = jQuery;
	
	var currentPage = location.href.split('/');
	currentPage = currentPage[currentPage.length - 1];
	
	return {
		init: function() {
			var instance = this;
			
			//instance.sifr();
			instance.setParentLink();
			instance.columns();
			instance.email();
			instance.clientList();
			instance.contactPage();
			instance.links();
			instance.gallery();
			instance.galleryAlignment();
			instance.paginateHome();
			instance.paginateGallery();
			instance.lightBox();
			instance.loadVideo();
			instance.newsletterSignup();
			instance.about();
		},

		about: function() {
			var instance = this;

			if (currentPage == 'about' || currentPage == 'client-list') {
				var pageList = jQuery('.page_list');

				var last = pageList.find('li:last');

				last.prependTo(pageList);
			}

			var aboutLink = jQuery('#about a');

			var href = aboutLink.attr('href');

			href = href.replace(/about/, 'client-list');

			aboutLink.attr('href', href);
		},

		clientList: function() {
			var instance = this;
			if (currentPage == 'client-list') {
				var pageContent = $('.page-content');
				pageContent.removeClass('about').addClass('client-list');
				
				var table = pageContent.find('table');
				
				var clientDiv = $('<div class="client-list-container"></div>');
				
				clientDiv.append(table);
				table.find('td').each(
					function(i) {
						$(this).addClass('client-cell-' + (i + 1));	
					}
				);
				pageContent.find('h3').after(clientDiv);
				
			}
		},
		
		
		columns: function() {
			var instance = this;
			
			$('.large-column:last, .small-column:last').addClass('last');
		},
		
		contactPage: function() {
			var instance = this;
			
			$('#contact_page .page_list .current_page a').text('Contact');
		},
		
		
		email: function() {
			var instance = this;
			
			var email = $('span.email');
			if (email.length) {
				var html = email.html();
				html = html.replace(/{at}/gi, '@');
				
				email.empty().append('<a href="mailto:' + html + '">' + html + '</a>');
				email.appendTo(email.prev());
			}
		},
		
		gallery: function() {
			var instance = this;
			var loc = location.href;
			if (loc.indexOf('/portfolio') > -1 || loc.indexOf('/press') > -1 ) {
				var cls = 'highlight';
				$('.gallery-item').hover(
					function() {
						$(this).addClass(cls);
						$('.gallery-img-hover',this).fadeIn();
					},
					function() {
						$(this).removeClass(cls);
						$('.gallery-img-hover',this).fadeOut();
					}
				);
			}
		},
		
		galleryAlignment: function() {
			var instance = this;
			
			var title = $('.page-title');
			var returnLink = $('.return-link');
			if (title.length && returnLink.length) {
				var titleWidth = title.width();
				var returnLinkWidth = returnLink.width();
				var position = 0;
				if (titleWidth > returnLinkWidth) {
					position = titleWidth - returnLinkWidth;
				}
				returnLink.css('left', position);
			}
		},
		
		lightBox: function() {
			var instance = this;
			
			var imagePath = $('#image_path').val();

			$('.image-item').lightBox(
				{
					imageLoading: imagePath + 'lightbox-ico-loading.gif',
					imageBtnClose: imagePath + 'lightbox-btn-close.gif',
					imageBtnPrev: imagePath + 'lightbox-btn-prev.gif',
					imageBtnNext: imagePath + 'lightbox-btn-next.gif'
				}
			 );
		},
		
		
		links: function() {
			var instance = this;
			
			var url = location.href;

			/*url = url.replace(/http:\/\/(www\.)?okay-okay\.com/gim, '');
			url = url.replace(/\/*(\/page(\/\d+)?)?$/gim, '');*/
			url = /http:\/\/(?:www\.)?okay-okay\.com(\/*[A-Za-z0-9-_]+(\/[A-Za-z0-9-_]+)?)\/*(?:\/page(\/\d+)?)?$/gim.exec(url);
			if (url && url[1]) {
				url = url[1];
			}

			var urlRE = new RegExp(url + '(\/page\/\d+/?)?$', 'gim');
			$('.page_list a').each(
				function() {
					if (urlRE.test(this.href)) {
						jQuery(this.parentNode).addClass('current_page');
					}	
				}
			);
		},
		
		loadVideo: function() {
			var videoLink = $('.launch.video');
			if (videoLink.length) {
				var flashPath = $('#flashPath').val();
				var playerPath = '/video/flvplayer.swf';
				var swf = new SWFObject(playerPath, "mymovie", "480", "360", "8", "#ffffff");
				swf.addVariable("file", flashPath);
				swf.addVariable("width","480");
				swf.addVariable("height","360");
				swf.addVariable("backcolor","0x000000");
				swf.addVariable("frontcolor","0xCCCCCC");
				swf.addVariable("lightcolor","0x557722");
				swf.addVariable('autostart', 'true');
				$('.launch.video').click(
					function() {
						var tbContent = $('#TB_ajaxContent');
						if (tbContent.length) {
							swf.write('TB_ajaxContent');
						}
						else {
							swf.write('hiddenVideo');	
						}
					}
				);
			}
		},
		
		newsletterSignup: function() {
			var instance = this;
			
			//$('#newsletterSignup');
		},
		
		
		paginateHome: function() {
			var instance = this;
			
			var pages = $('.page-group');
			if (pages.length) {
				pages.not(':first').hide();
				
				var newsContainer = pages.parent();
				newsContainer.append('<div class="paging-bar"><span>Page(s):</span><span class="page-links"></span></div>');
				var pageLinksContainer = newsContainer.find('.page-links');
				pages.each(
					function(key, val) {
						var pageNum = key + 1;
						var html = '<span><a class="' + (pageNum == 1 ? 'current-page' : '') + '" href="#" page="' + pageNum + '">' + pageNum + '</a></span>';
						pageLinksContainer.append(html);
					}
				);
				
				var pageLinks = pageLinksContainer.find('a');
				pageLinks.click(
					function() {
						pages.hide();
						var pageNum = this.getAttribute('page');
						pages.slice(pageNum-1, pageNum).show();
						pageLinks.removeClass('current-page');
						$(this).addClass('current-page');
						instance.sifr();
					}
				);
			}
		},
		
		paginateGallery: function() {
			var instance = this;
			var content = $('#content');
			if (content.is('.gallery.full')) {
				var imageSet = $('.portfolio-image-set');
				var images = imageSet.find('.image-item');
				
				var zoomImage = $('<span class="zoom-image">Click to Zoom</span>');
				images.append(zoomImage);
				
				if (images.length > 1) {
					images.not(':first').hide();
					
					var previousLink = $('<a href="javascript: ;" class="previous">Previous</a>');
					var nextLink = $('<a href="javascript: ;" class="next">Next</a>');
					
					var imageCount = $('<h5 class="image-count"><span class="current">1</span><span class="sep">/</span><span class="total">' + images.length + '</span></h5>');
					var total = imageCount.find('.total');
					var current = imageCount.find('.current');
					
					nextLink.show();
					previousLink.hide();
					//nextLink.css('z-index', 1000);
					imageSet.prepend(previousLink);
					imageSet.append(nextLink);
					
					previousLink.click(
						function() {
							var currentNum = parseInt(current.text()) - 1;

							images.slice(currentNum, currentNum + 1).hide();
							images.slice(currentNum - 1, currentNum).show();
							current.text(currentNum);
							if (currentNum == 1) {
								$(this).hide();
							}
							if (nextLink.is(':hidden')) {
								nextLink.show();
							}
						}
					);
					nextLink.click(
						function() {
							var currentNum = parseInt(current.text()) + 1;
							
							images.slice(currentNum - 2, currentNum - 1).hide();
							
							images.slice(currentNum - 1, currentNum).show();
							current.text(currentNum);
							if (currentNum > 1 && previousLink.is(':hidden')) {
								previousLink.show();
							}
							if (currentNum == images.length) {
								$(this).hide();
							}
						}
					);
					
					imageSet.append(imageCount);
				}
			}
		},
		
		
		setParentLink: function() {
			var instance = this;
			
			var parentLink = $('#parentLink');
			if (parentLink.length) {
				var a = parentLink.find('a');
				var pageList = $('.page_list');
				pageList.prepend('<li></li>');
				pageList.find('li:first').append(a);
			}
			
		},
		
		
		sifr: function() {
			var instance = this;
			
			var futura = {
				src: '/expanse/themes/OkayOkay/javascript/futura.swf'	
			};
			
			var baseRules = {
				selector: '.news-item .item-title span',
				css: {
					'.sIFR-root' : { 
				  		color: '#ffffff',
						'text-transform': 'uppercase',
						leading: -15
					}
				},
				wmode: 'transparent'
				
			};
			sIFR.activate(futura);

			if ($('.news-item .item-title').length) {
				sIFR.replace(futura, 
					$.extend(baseRules,
						{
							tuneHeight: -11,
							offsetTop: -5
						}
					)
				);
				
			}
			else if ($('.gallery-item h3').length) {
				sIFR.replace(futura, $.extend(baseRules, {selector: '.gallery-item h3'}));
			} else if ($('h3.artwork').length) {
				sIFR.replace(futura, 
					$.extend(
						baseRules, 
						{
							selector: 'h3.artwork',
							tuneHeight: -11,
							offsetTop: -5
						}
					)
				);
			}
			
		}
		
	};
		
}();

jQuery(
	function() {
		OkayOkay.init();	
	}
);

