var ua = navigator.userAgent;
var isiPad = /iPad/i.test(ua) || /iPhone/i.test(ua) || /iPPod/i.test(ua);

/**
 * scrollerScroll plugin for jQuery
 *
 * v0.1
 *
 * Copyright (c) 2010 casper houde
 *
 * Dual licensed under the MIT and GPL licenses:
 *	 http://www.opensource.org/licenses/mit-license.php
 *	 http://www.gnu.org/licenses/gpl.html
 */

/**
 * Usage:
 * 
 * // using default options
 * $(document).scrollerScroll();
 *
 * In a div where there is more room to scroll.
 */

(function($){

	$.fn.scrollerScroll = function(options){
		
		var defaults = {
			data: ""
			, circular: true
			, maxspeeed: 30
			, minspeeed: 5
		};
		var options = $.extend(defaults, options);
		
		return this.each(function() {
			var firstChild;
			var firstChildW;
			var lastChild;
			var lastChildW;
			var bgChild;
			var bgChildW;
			var items = $(this).find(".items");
			var bg = $(this).find(".background");
			
			var vlucht = $(this);
			var bgpos = 0;
			
			if($(this).hasClass("in_flight")) {
				return ;
			}
			$(this).addClass("in_flight")
			
			if($(items).css("left") == "auto") {
				tw = ($(window).width() - 980)/2 + 150;
				$(items).css("left", tw);
			}
			
			var initChild = function() {
				bgChild = $(bg).children("div").eq(0);
				bgChildW = $(bgChild).outerWidth();
				
				firstChild = $(items).children("div").eq(0);
				firstChildW = $(firstChild).outerWidth();
				
				lastChild = $(items).children("div").eq(-1);
				lastChildW = $(lastChild).outerWidth();
			}
			initChild();
			$(".map area").click(function () {
				h = $(this).attr("href");
				if(h.indexOf("flv") > -1 || h.indexOf("mp4") > -1) {
						$(vlucht).stop();
						$(items).stop();
						$(vlucht).removeClass("in_flight")
						openImage(this.href, "", "");
					
				} else {
					m = $(this).attr("rel");
					$(".pop_up").hide();
					$("#" + m).fadeIn();
				}
				return false;
			});
			$(".map area").hover(function () {
				showMap(this);
				if(isiPad) {
					$(this).click();
				}
			}, function () {
				hideMap(this);
			});
			
			$(".pop_up").click(function(evt) {
				h = $(evt.target).attr("href");
				if(h.indexOf("flv") > -1 || h.indexOf("mp4") > -1) {
					if(isiPad) {
						
					} else {
						$(vlucht).stop();
						$(items).stop();
						$(vlucht).removeClass("in_flight")
						openImage(h, "", "");
						return false;
					}
				} else {
					//evt.stopPropagation();
				}
			});
			$(items).click(function() {
				$(".pop_up").hide();
			});
			
			var scroller = function() {
				bl = 0 - $(bg).position().left;
				bsp = bl + (speed/2);
				
				if(bsp > bgChildW) {
					f = $(bgChild).detach();
					$(bg).append(f);
					
					tbsp = bl - bgChildW;
					bsp = bsp - bgChildW;
					$(bg).css("left", (0-tbsp));
				} else if(bsp < 0) {
					bgLast = $(bg).children("div").eq(-1);
					f = $(bgLast).detach();
					$(bg).prepend(f);
					
					tbsp = bl + bgChildW;
					bsp = bsp + bgChildW;
					
					$(bg).css("left", (0-tbsp));
				}
				
				l = 0 - $(items).position().left;
				sp = l + speed;
				
				if(sp > firstChildW) {
					f = $(firstChild).detach();
					$(items).append(f);
					
					tsp = l - firstChildW;
					$(items).css("left", (0-tsp));
					
					initChild();
					scroller();
					
				} else if (sp <= 0) {
					tsp = l + lastChildW;
					f = $(lastChild).detach();
					$(items).prepend(f);
					
					$(items).css("left", 0-tsp);
					initChild();
					scroller();
					
				} else {
					$(bg).animate({"left": 0-bsp}, 100, 'linear')
					$(items).animate({"left": 0-sp}, 100, 'linear', function() {
						scroller();
					});
				}
			
				
				
			}
			
			var cancleClick = false;
			var posX;
			var posY;
			
			var posW = $(this).width();
			p = $(this).position();
			posX = p.left;
			posY = p.top;
			var speed = 0;
			var play;
			var tim;
			var me = $(this);
			$(this).mouseup(function(evt){});
			$(this).mouseleave(function(evt){
				play = false;
				if(speed < 0) {
					speed = 0 - options.minspeeed;
				} else {
					speed = options.minspeeed;
				}
				//playTime();
	
			});
			$(this).mouseenter(function(evt){
				if(!play) {
					//playTime();
					play = true;
				}
			});
			
			$(this).mousemove(function(e){
				mX = e.pageX - posX;
				mY = e.pageY - posY;
				
				if(isiPad) {
					
				} else {
					if(mX < (posW/2)) {
						if(mX < (posW/4)) {
							speed = 0 - options.maxspeeed;
						} else {
							speed = 0;
						}
					} else {
						if(mX > (posW/4*3)) {
							speed = options.maxspeeed;
						} else {
							speed = 0;
						}
					}
				}
			});
			
			
			
			speed = options.minspeeed;
			scroller();
		});
	};

})(jQuery);
