$(document).ready(function() {
	
	if ($.browser.webkit) {
		$(".contact-form textarea").css("height", "84px");
	}
	
	$('#contact-wrapper h3').click(function() {
		$('#contact-wrapper-inner').toggle();
	});
	
	$('.tourdates').each(function() {
		var $this = $(this);
		var $head = $this.find('.tourdate-head');
		var $detail = $this.find('.tourdate-detail');
		var $link = $head.find('.detail-link');
		$link.click(function() {
			$detail.toggle();
			return false;
		});
	});
	
	$('#content').children('div').first().css('border-top', 'none');
	$('#sidebar').children('div').first().css('border-top', 'none');
	
	$('.gallery-meta-title').hover(
		function() {
			$(this).find('.gallery-meta-desc').show();
		},
		function() {
			$(this).find('.gallery-meta-desc').hide();
		}
	);
	
	$('.media-meta-title').hover(
		function() {
			$(this).find('.media-meta-desc').show();
		},
		function() {
			$(this).find('.media-meta-desc').hide();
		}
	);
	
	/*
	var settings = {
		imageLoading:	ctx + '/docroot/othelladallas/images/lightbox-ico-loading.gif',
		imageBtnPrev:	ctx + '/docroot/othelladallas/images/lightbox-btn-prev.gif',
		imageBtnNext:	ctx + '/docroot/othelladallas/images/lightbox-btn-next.gif',
		imageBtnClose:	ctx + '/docroot/othelladallas/images/lightbox-btn-close.gif',
		imageBlank:		ctx + '/docroot/othelladallas/images/lightbox-blank.gif',
		txtImage:		'Bild',
		txtOf:			'von',
	}
	*/
	//$('.media a').lightBox(settings);
	
	/**
	 * Gallery
	 */

	$.fn.gallery = function() {
		
		return this.each(function() {
			
			var $container = $(this);
			
			var $overview = $container.find('.media-browser-items');
			var descHeight = $container.parent().find('div.media-desc').outerHeight(true);
			
			var containerHeight = $container.outerHeight(true);
			var containerWidth = $container.width();
			
			//console.info(containerWidth + "x" + containerHeight);
			
			var padding = 10;
			var BACK_TOP = 28;
			var index = 0;
			var $images = $container.find("[data-src]");
			
			//var $controls = $('<div/>').addClass('media-controls').hide();
			/*
			var $next = $("<span/>").html('Next').addClass('next').appendTo($controls);
			var $prev = $("<span/>").html('Previous').addClass('prev').appendTo($controls);
			var $back = $("<span/>").html('Zur&uuml;ck').addClass('close').appendTo($controls);
			*/
			var $next = $("<div/>").addClass('next').appendTo($container).hide();
			var $prev = $("<div/>").addClass('prev').appendTo($container).hide();
			var $back = $("<div/>").addClass('close').html('&raquo;&nbsp;Schliessen').appendTo($container).hide();
			$back.css('top', '-' + (descHeight + BACK_TOP) + 'px');
			//$controls.appendTo($container);
			
			/*
			// Back/Close button drawing.
			(function() {
				var clr = $back.css('color');
				var _btn = Raphael($back.get(0),60,60);
				
				var btn = _btn.set();
				btn.push(
					_btn.circle(30,30,14).attr('stroke-width','3'),
					_btn.path("M24 24L36 36").attr('stroke-width','5'),
					_btn.path("M36 24L24 36").attr('stroke-width','5')
				);
				
				var _draw = function() {
					btn.attr('stroke', '#555555');
				}
				
				var _drawHover = function() {
					btn.attr('stroke', clr);
				}

				_draw();
				$back.hover(
					function() { _drawHover(); },
					function() { _draw(); }
				);
			})();
			
			
			// Draw next/prev buttons.
			(function() {

				var _drawedButton = function($btn,dir) {
					var clr     = $btn.css('color');
					var _btn    = Raphael($btn.get(0),60,120);
					
					var _circle = null;
					var _arrow = null;
					
					var arr = null;
					if (dir == 1) {
						arr = ["23 57","31 57","31 53","38 60","31 67","31 63","23 63"];
					}
					else {
						arr = ["37 57","29 57","29 53","22 60","29 67","29 63","37 63"];
					}

					_circle = _btn.circle(30,60,14).attr('stroke-width','3').attr('stroke','#555555');
					_arrow = _btn.path("M"+arr.join("L")+"Z").attr('stroke-width','1').attr('stroke','#555555').attr('fill','#555555');
					
					var _draw = function() {
						_circle.attr('stroke','#555555');
						_arrow.attr('stroke','#555555').attr('fill','#555555');
					}

					var _drawHover = function() {
						_circle.attr('stroke',clr);
						_arrow.attr('stroke',clr).attr('fill',clr);
					}

					_draw();
					$btn.hover(
						function() { _drawHover(); },
						function() { _draw(); }
					);
				}
				
				_drawedButton($prev,-1);
				_drawedButton($next, 1);
				
			})();
			*/
			
			
			$next.click(function(){
				index++;
				if (index >= $images.length) index = 0;
				dir = 1;
				$images.eq(index).click();
				return false;
			});
			$prev.click(function() {
				index--;
				if (index < 0) index = $images.length - 1;
				dir = -1;
				$images.eq(index).click();
				return false;
			});
			
			$back.click(function() {
				dir = 1;
				$prev.hide();
				$next.hide();
				$back.hide();
				
				$container.animate({
					height: containerHeight+'px'
				});
				
				$overview
					.css({left: '-1000px'})
					.animate({
						left: 0
					}, function() {
						$overview.css({
							top: 'auto',
							bottom: 0
						})
					});
				$overview.children().show();
				
				if ($current) {
					$current.animate({
						left: '1000px'
					}, function() {
						$(this).remove();
					})
				}
				
				$current = null;
				return false;
			});
			
			var $current = null;
			
			var dir = 1;
			var _slide = function(img) {
				
				var $div = $("<div/>").addClass('media-viewer').append(img);
				$(img).css({
					margin: '0 auto'
				});
				
				$div
					.css({
						left: (dir*1000)+'px'
					})
					.appendTo($container)
					.animate({
						left: 0
					});
				
				if ($current) {
					$current.animate({
						left: (dir*-1000)+'px'
					}, function() {
						$(this).remove();
					})
				}
				else {
					$overview
						.css({
							top: 0,
							bottom: 'auto'
						})
						.animate({
							left: (dir*-1000)+'px'
						});
				}
				
				$current = $div;
			}
			
			$images.click(function(e) {
				
				if ($(e.target).hasClass('oi-button')) return;

				index = $images.index($(this));

				var $obj    = $(this);
				var src     = $obj.attr('data-src');
				var height  = parseInt($obj.attr('data-height')) + 2*padding;

				var img = new Image();

				img.onload = function() {

					var mov = $obj.attr('data-mov');

					if (mov) {
						_slide(
							$("<a/>")
								.attr('href',mov)
								.addClass('img')
								.addClass('click-to-flowplayer')
								.append(img)
								.append($("<span/>").addClass('legend').html($obj.attr('data-legend')))
								.css({width: '320px', height: '210px', padding: '45px 0'})
						);
						height = 370;
					}
					else {
						_slide(
							$("<div/>")
								.addClass('img')
								.css('width',img.width+'px')
								.append(img)
								.append($("<span/>").addClass('legend').html($obj.attr('data-legend')))
						);
					}

					//$controls.fadeIn();
					$next.fadeIn();
					$prev.fadeIn();
					$back.fadeIn();

					$container.animate({
						height: height+'px'
					});
					$overview.children().hide();
				}
				img.src = src;

			});

			$container.bind('willCollapse', function() {
				if ($current) {
					$current.css({
						top: 'auto',
						bottom: '-1px'
					});
				}
			});
			
			$container.bind('didCollapse', function() {
				if ($current) {
					$current.remove();
					$current = null;
				}
				dir = 1;
				//$controls.hide();
				$next.hide();
				$prev.hide();
				$back.hide();
				$overview.children().show();
				$overview.css({left:0,top:'auto',bottom:0});
			});

		});
	}
	
	$('.media-browser').gallery();
	
	$.fn.video = function(callback) {
		return this.each(function() {

			var pathToPlayer = ctx + '/docroot/othelladallas/js/flowplayer/flowplayer-3.2.4.swf';
			$fp.removeClass('flowplayer-load');
			
			var opt = {};

			opt.clip = {
				onMetaData: function() { 
					if (callback) {
						callback(this.getClip());
					}
				},
				autoPlay: true,
				scaling: 'fit'
			};
			
			opt.canvas = {
				background: '#000000',
				backgroundGradient: 'none'
			};
			
			$fp.flowplayer(pathToPlayer, opt);
			
		});
	}
	
	
	$(function() { // document ready
		var pathToPlayer = ctx + '/docroot/othelladallas/js/flowplayer/flowplayer-3.2.4.swf';
		
		/**
		 * Flowplayer
		 */
		$('.click-to-flowplayer').livequery('click', function() {
			$(this).removeClass('click-to-flowplayer');
			$(this).empty().css({display: 'block', margin: 'auto', width: '480px', height: '320px', padding: '0'});
			
			var $vid = $(this);
			$vid.flowplayer(pathToPlayer, {
				clip: {
					onMetaData: function() {},
					autoPlay: true,
					scaling: 'fit'
				}
			});
			
			return false;
		});
		
		$('.media-viewer').video();
		
	});

});

function formvalidate(f) {
	f = $(f);
	var valid = true;
	f.find('.notempty').each(function() {
		if ($.trim($(this).val()) == '') {
			$(this).addClass('error');
			valid = false;
		}
		else {
			$(this).removeClass('error');
		}
	});
	f.find('.email').each(function() {
		if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test($(this).val())) {
			$(this).removeClass('error');
		}
		else {
			$(this).addClass('error');
			valid = false;
		}
	});
	
	return valid;
}
