/*******************************************************************************

	CSS on Sails Framework
	Title: Cherry London
	Author: XHTMLized (http://www.xhtmlized.com/)
	Date: August 2011

*******************************************************************************/

if(typeof(jQuery) !== 'undefined') {

	/* begin */

	$(document).ready(function() {
		CherryLondon.init();
	});
	
	var CherryLondon = {
		/*
		 * Init
		 */
		init: function() {
			this.common.externals();
			this.common.emailSpamProtection('.write-to');
			this.common.lightbox('a[rel=gallery]');
			this.common.rollOverBlack('.roll-over-black');
			this.common.equalHeights('.projects-row, .news-row, .members-row, .embryos, #footer');
			this.common.vimeo('a.vimeo');
			this.common.googleMap('#map', THEME_OPTIONS.google_map_address);
			this.common.tweets('#tweets', {
				username: THEME_OPTIONS.twitter_id,
				count: THEME_OPTIONS.twitter_count_limit
			});
			this.common.mainCarousel('#main-carousel');
			this.home.mainCarousel('#home-carousel');
			this.about.mainCarousel('#about-carousel');
		},
		/*
		 * App
		 */
		app: {
			/*
			 * isHome
			 */
			isHome: function() {
				if($('body').hasClass('home')) {
					return true;
				}
				else {
					return false;
				}
			}
		},
		/**
		 * Common
		 */
		common: {
			/**
			 * Externals
			 */
			externals: function() {
				$('a[rel*=external]').bind('click', function() {
					window.open(this.href);
					return false;
				});	
			},
			/**
			 * Main Carousel
			 */
			mainCarousel: function(selector, options) {
				if($(selector).length) {
					var defaults = {
						prev: selector + '-prev',
						next: selector + '-next',
						pagination: selector + '-pager',
						auto: false
					};
					var settings = $.extend(defaults, options);
					$(selector).carouFredSel(settings);
				}
			},
			/**
			 * Email Span Protection
			 */
			emailSpamProtection: function(selector, options) {
				if($(selector).length) {
					var defaults = {
						splitDomain: '//$//',
						splitName: '/$/'
					};
					var settings = $.extend(defaults, options);
					$(selector).dcSpamless(settings);
				}
			},
			/**
			 * Tweets
			 */
			tweets: function(selector, options) {
				if($(selector).length) {
					var defaults = {
						join_text: "auto",
						username: "cherrylondon",
						retweets: true,
						avatar_size: 50,
						count: 3,
						auto_join_text_default: "we said,",
						auto_join_text_ed: "we",
						auto_join_text_ing: "we were",
						auto_join_text_reply: "we replied",
						auto_join_text_url: "we were checking out",
						loading_text: "Loading...",
						template: "{text} {time}"
					};
					var settings = $.extend(defaults, options);
					$(selector).tweet(settings);
				}
			},
			/**
			 * Google Map
			 */
			googleMap: function(selector, options) {
				if($(selector).length) {
					var defaults = {
						address: $(selector).text(), 
						zoom: 16,
						maptype: 'ROADMAP',
						scrollwheel: true,
						navigationControl: false, 
						mapTypeControl: false, 
						disableDoubleClickZoom: false,
						markers: [{
							address: $(selector).text(), 
							icon: THEME_URL + '/images/common/ico_marker.png'
						}]
					};
					var settings = $.extend(defaults, options);
					$(selector).goMap(settings);
				}
			},
			/**
			 * Lightbox
			 */
			lightbox: function(selector, options) {
				var defaults = {
					titlePosition: 'over'
				};
				var settings = $.extend(defaults, options);
				$(selector).fancybox(settings);
				$('img.fancybox').parent().fancybox(settings);				
			},
			/**
			 * Vimeo
			 */
			vimeo: function(selector, auto_thumbnail, options) {
				// selector
				var vimeo = $(document).find(selector);
				vimeo.each(function(i, obj) {
					// init
					var url = $.url($(obj).attr('href'));
					var video_id = url.segment(1);
					// defaults 
					var defaults = {
						width: 640,
						height: 360,
						autoplay: 0,
						color: 'ee2e24',
						title: 0,
						byline: 0,
						portrait: 0,
						api: 1,
						player_id: 'player_'+video_id
					};
					// settings
					var settings = $.extend(defaults, options);
					// vars
					var video_params = $.extend(settings, url.param());
					var video_thumb = new Image();
					var iframe = $('<iframe class="vimeo-frame" />');
					// anchor
					$(obj).attr('rel', 'player_'+video_id)
						  .css('display', 'block')
						  .css('width', video_params.width)
						  .css('height', video_params.height);
					// iframe
					iframe.hide().attr('src', 'http://player.vimeo.com/video/' + video_id + '/' + ('?' + $.param(video_params)))
								 .attr('width', video_params.width)
								 .attr('height', video_params.height)
								 .attr('id', 'player_'+video_id);
					// image
					if(auto_thumbnail) {
						$.getJSON('http://vimeo.com/api/v2/video/' + video_id + '.json?callback=?', {format: "json"}, function(data) {
							$(video_thumb).load(function() {
								$(this).hide();
								$(obj).removeClass('loading').text('').append(this);
								$(this).fit();
								$(this).fadeIn();
							}).attr('src', data[0].thumbnail_large);
							// href update
							$(obj).attr('href', data[0].url);
					    });
					}
					// Play
					$(obj).bind('click', function(e) {
						// Iframe Inline
						// if(!$(this).hasClass('ready')) {
						// 	if($('iframe', this).length == 0) {
						// 		$(obj).text('');
						// 		if(auto_thumbnail) {
						// 			$(video_thumb, this).fadeOut().remove();
						// 		}
						// 		else { 
						// 			$('img', obj).fadeOut().remove();
						// 		}
						// 		$('a[rel='+$(obj).attr('rel')+']').addClass('ready');
						// 		$('.ico-play', this).fadeOut().remove();
						// 		$('a[rel='+$(obj).attr('rel')+']').append(iframe);
						// 		$('a[rel='+$(obj).attr('rel')+'] > iframe').fadeIn();
						// 		$('a[rel='+$(obj).attr('rel')+']').parent().parent().find('.black-layer').fadeOut('slow').remove();
						// 	}
						// }
						// Fancybox
						$.fancybox({
							'autoScale'		: false,
							'transitionIn'	: 'none',
							'transitionOut'	: 'none',
							'title'			: this.title,
							'width'			: THEME_OPTIONS.lightbox_video_width,
							'height'		: THEME_OPTIONS.lightbox_video_height,
							'href'			: 'http://vimeo.com/moogaloop.swf?clip_id='+video_id+('&amp;' + $.param(video_params)),
							'type'			: 'swf'
						});
						e.preventDefault();
						return false;
					}).append('<span class="ico-play">Play</span>');
				});
			},
			/**
			 * Roll Over Black
			 */
			rollOverBlack: function(selector) {
				if($(selector).length) {
					$(selector).each(function(i, data) {
						var more = $(this).find('.more');
						var url = more.attr('href');
						var layer = url ? $('<a />').attr('href', url) : $('<span />');
							layer.addClass('black-layer').hide();
						$(this).append(layer);
						$(this).hover(function() {
							if($.browser.msie && $.browser.version <= 7) {
								layer.show();
							}
							else {
								layer.fadeIn();
							}
							layer.copyEvents(more);
						},
						function() {
							if($.browser.msie && $.browser.version <= 7) {
								layer.hide();
							}
							else {
								layer.fadeOut();
							}
							layer.unbind('click');
						});
					});
				}
			},
			equalHeights: function(selector) {
				$(selector).equalHeights(false);
			}
		},
		home: {
			mainCarousel: function(selector, options) {
				if($(selector).length) {
					var defaults = {
						prev: selector + '-prev',
						next: selector + '-next',
						pagination: selector + '-pager',
						auto: {
							play: THEME_OPTIONS.home_carousel_auto_play,
							delay: 0,
							pauseDuration: parseInt(THEME_OPTIONS.home_carousel_duration_time)*(1000),
							pauseOnHover: true
						}
					};
					var settings = $.extend(defaults, options);
					$(selector).carouFredSel(settings);
				}
			}
		},
		about: {
			mainCarousel: function(selector, options) {
				if($(selector).length) {
					var defaults = {
						prev: selector + '-prev',
						next: selector + '-next',
						pagination: selector + '-pager',
						auto: {
							play: THEME_OPTIONS.about_carousel_auto_play,
							delay: 0,
							pauseDuration: parseInt(THEME_OPTIONS.about_carousel_duration_time)*(1000),
							pauseOnHover: true
						}
					};
					var settings = $.extend(defaults, options);
					$(selector).carouFredSel(settings);
				}
			}
		}
	};
	
	/* finish */
	
}
