var popup;

$(function(){
	
	$('a.new').click(function(){
        window.open(this.href);
        return false;
    });
	
	$('a.popup').click(function(){

		popup.openPopup(this);
        return false;
    });
		
	/*
	----------------------------------------------------
	Inits
	----------------------------------------------------
	*/
	
	VideoJS.setupAllWhenReady();
	
	var component = $('#header .navigation.main');
	jQuery.extend(component, main_navigation_component);
	component.setup();
	
	popup = $('body');
	jQuery.extend(popup, popup_component);
	popup.setup();
	
	setupForms();
	
	$('body').find('.dropdown').each(function(i) {
		var component = $(this);
		jQuery.extend(component, dropdown_component);
		component.setup();
	});
	
	$('body').find('.contain.switchter').each(function(i) {
		var component = $(this);
		jQuery.extend(component, switcher_component);
		component.setup();
	});
	
	$('body').find('.contain.map').each(function(i) {
		var component = $(this);
		jQuery.extend(component, map_component);
		component.setup();
	});

	$('body').find('.recommend_form').each(function(i) {
		var component = $(this);
		jQuery.extend(component, recommend_component);
		component.setup();
	});
	
	$('body').find('.address_form').each(function(i) {
		var component = $(this);
		jQuery.extend(component, address_component);
		component.setup();
	});
	
	$('body').find('.delivery_form').each(function(i) {	
		var component = $(this);
		jQuery.extend(component, delivery_component);
		component.setup();
	});

	$('body').find('.scroller').each(function(i) {	
		$(this).mCustomScrollbar("vertical",200,"easeOutCirc",1.25,"auto","yes","no",0); 
	});
	
	/*
	----------------------------------------------------
	Forms
	----------------------------------------------------
	*/

	/*
	----------------------------------------------------
	Fir fÃ¼r IE7
	----------------------------------------------------
	*/
	
	jQuery.each(jQuery.browser, function(i, val) {								 
	  
		if(i=="msie") {
	 	
			browser_name = "msie";
			browser_version = jQuery.browser.version.substr(0,1); 	
			
			if(jQuery.browser.version.substr(0,1) >= 6) { 			
				$('.teaser.tall a').css({backgroundColor: "#000000", opacity: 0 });
				$('#content .container.start .teaser.facebook a').css({backgroundColor: "#000000", opacity: 0 });
				$('#content .container.locations .teaser.numbers a').css({backgroundColor: "#000000", opacity: 0 });		
			}
			
			if(jQuery.browser.version.substr(0,1) >= 6 && jQuery.browser.version.substr(0,1) < 8) { 
				var headerHeight = $('#header').height();
				var contentHeight = $('#content').height();
				var footerHeight = $('#footer').height();
				
				$('#header').addClass('ie_fix');
				$('#content').addClass('ie_fix');
				$('#footer').addClass('ie_fix');
				$('#page').height( headerHeight + contentHeight + footerHeight);
				$('#header').height( headerHeight );
				$('#content').css({top: headerHeight });
				$('#content').height( contentHeight );
				$('#footer').css({top: headerHeight + contentHeight });
			}
		}
	});
});

/*
------------------------------------------------------------------------------------------------------
Dropdown Component 
------------------------------------------------------------------------------------------------------
*/

var dropdown_component = {
	setup: function(){
		
		var component = this;
		
		$('> a', component).click(function() {
			if( $('ul', component).css("display") == 'none') {
				if ( $('ul', component).attr("id") == 'btStartDD' )
				{
					$('ul', component).css({"height":'200px',"overflow-y":'scroll'});
				}
				$('ul', component).show();
				
				$('#page').bind('click', function() {
					component.closeDropdown(); 
				});

			} else {
				component.closeDropdown();
			}
			
			return false;
		});
		
		$('ul li a', component).click(function() {
			$('input', component).val( $(this).attr('rel') );
			component.closeDropdown();
			return false;
		});
		
	},
	closeDropdown: function(){
		
		var component = this;
		
		$(component).find('li a').each(function(i) {
			if( $(this).attr('rel') == $('input', component).val() ) {
				$('> a', component).html( $(this).html() );
			}
		});
		
		$('ul', component).hide();
		$('#page').unbind('click');
		
	}
	
};
		
/*
------------------------------------------------------------------------------------------------------
Main Navigation Component
------------------------------------------------------------------------------------------------------
*/

var main_navigation_component = {
	setup: function(){
		
		var component = this;
		
		$(component).find('> li').each(function(i) {												 
			$(this).data("over_count", 0);
			$(this).data("out_count", 0);
		});
		
		$('> li > a', component).hover(function() {
			component.showHide("over", $(this).closest('li') );
        }, function() {
          	component.showHide("out", $(this).closest('li') );
        });
		
		$('> li > .flyout', component).hover(function() {
			component.showHide("over", $(this).closest('li') );
        }, function() {
          	component.showHide("out", $(this).closest('li') );
        });
			
	},
	showHide: function(_state, _li){
		
		var component = this;
		
		switch(_state) {
			case "over":
				$(_li).data("over_count", $(this).data("over_count") + 1 );
				break;
			case "out":
			default:
				$(_li).data("out_count", $(this).data("out_count") + 1 );
				break;
		}
		
		if( _state == "over" && $(_li).data("over_count") != $(_li).data("out_count") ) {
			$('> a', _li).addClass('over');
			$('.flyout', _li).show();
		} else {
			$('> a', _li).removeClass('over');
			$('.flyout', _li).hide();	
		}
	}
};

/*
------------------------------------------------------------------------------------------------------
Forms 
------------------------------------------------------------------------------------------------------
*/

function setupForms() {
	
	$('body').find('input[type=text]').each(function(i) {
		
		$(this).data('value', $(this).attr('title') );
		
		 $(this).blur(function () {
			if( $(this).val() == "") {
				$(this).val( $(this).data('value') );
			}
		});
		 
		$(this).focus(function () {
			if( $(this).val() == $(this).data('value') ) {
				$(this).val('');
			}
		});
		
	});
	
	$('.standard_form.box_form input[type=text]').focus(function () {
		$(this).addClass('active');
	});
	
	$('.standard_form.box_form input[type=text]').blur(function () {
		$(this).removeClass('active');
	});
	
	$('.standard_form.box_form input[type=password]').focus(function () {
		$(this).addClass('active');
	});
	
	$('.standard_form.box_form input[type=password]').blur(function () {
		$(this).removeClass('active');
	});
	
	$('.standard_form.box_form textarea').focus(function () {
		$(this).addClass('active');
	});
	
	$('.standard_form.box_form textarea').blur(function () {
		$(this).removeClass('active');
	});
	
}

/*
------------------------------------------------------------------------------------------------------
Switcher Component 
------------------------------------------------------------------------------------------------------
*/

var switcher_component = {
	setup: function(){
		
		var component = this;
		var content_array = Array();
		
		$('ul.navigation',component).find('li a').each(function(i) {												 
			$(this).data("content_nr", i);
		});	
			
		$('ul.contents', component).find(' > li').each(function(i) {												 
			content_array.push(this);
			
			if(i>0) {
				$(this).hide();
			}
		});	
		
		$('.navigation li a',component).click(function() {
			$('.navigation li',component).removeClass('selected');
			$(this).closest('li').addClass('selected')
			
			$('.contents > li', component).hide();
			
			var content = content_array[ $(this).data("content_nr") ];
			$(content).show();
						
			return false;
		});	
	}
	
};

/*
------------------------------------------------------------------------------------------------------
Map Component 
------------------------------------------------------------------------------------------------------
*/

var map_component = {
	setup: function(){
		
		var component = this;
		
		$('ul.navigation',component).find('li a').each(function(i) {												 
			$(this).data("nr", i);
		});	
		
		$('ul.maps',component).find('li').each(function(i) {												 
			if(i>=1) {
				$(this).css({"top": 300 });
			}
		});	
			
		$('.navigation li a',component).click(function() {

			$('ul.maps li',component).css({"top": 300 });
			
			var maps_array = $('ul.maps li',component);
			var map = maps_array[ $(this).data("nr") ];
			
			$(map).css({"top": 1 });
			
			return false;
		});	
	}
	
};

/*
------------------------------------------------------------------------------------------------------
Delivery Form Component 
------------------------------------------------------------------------------------------------------
*/

var delivery_component = {
	setup: function(){
		
		var component = this;
		
		$('select', component).bind("change", function() { 
			
			var val = $(this).val();
			
			$(this).find('option').each(function(i) {												 
				
				if(val == $(this).val() ) {
					
					var text = $(this).text();
					var textArray = text.split("-");					
					$('p.price', component).html('Kosten:' + textArray[1] );
					
				}
			});
		});
	}
};


/*
------------------------------------------------------------------------------------------------------
Address Form Component 
------------------------------------------------------------------------------------------------------
*/
/*
var address_component = {
	setup: function(){
		
		var component = this;
		
		$('.delivery_form .address_btn', component).click(function() {
			
			if($('.delivery_form', component).hasClass('hidden') ) {
				$('.delivery_form', component).removeClass('hidden');
			} else {
				$('.delivery_form', component).addClass('hidden');
			}
			
			return false;
		});	
		
		
	}
};
*/
/*
------------------------------------------------------------------------------------------------------
Recommend Component 
------------------------------------------------------------------------------------------------------
*/

var recommend_component = {
	setup: function(){
		
		var component = this;
		
		var entryCount = 0;
		
		$('.col.left ul',component).find('li').each(function(i) {												 
			entryCount ++;
		});	
		
		$(component).data("entryCount", entryCount);
		
		component.setResult();

		$('.col.left a.add',component).click(function() {
			
			var entryCount = $(component).data("entryCount");
			entryCount++;
			$(component).data("entryCount", entryCount);

			var entryHtml = '<li> <span class="nr">' + entryCount + '.</span>' + 
			'<input name="suggestUser[' + entryCount + '][name]" class="text180" type="text"/>' + 
			'<input name="suggestUser[' + entryCount + '][mail]" class="text140" type="text"/>' +
			'<input name="suggestUser[' + entryCount + '][fon]" class="text140" type="text"/>' +
		  	'</li>';
			
			$('.col.left ul',component).append(entryHtml);
			
			component.setResult();
			
			return false;
		});	
	},
	setResult: function(){
		
		var component = this;
		var entryCount = $(component).data("entryCount");

		$('.col.left .result p',component).html( entryCount + ' Personen <span>+' + (entryCount/10) + ' EUR</span>'  );
	}
	
};

/*
------------------------------------------------------------------------------------------------------
Popup Component 
------------------------------------------------------------------------------------------------------
*/

var popup_component = {
	setup: function(){
		
		var component = this;
		
	},
	openPopup: function(_link){

		var component = this;
		
		var title = $(_link).attr('title');
		var url = $(_link).attr('href');
		
		//alert(url);
		
		var html = '<div id="popup">' +
  		'<div class="content">' +
    	'<h4>' + title + '</h4><a href="#" class="round_btn close_btn">SchlieÃŸen</a>' +
		'<div class="contain"></div>' +
  		'</div>' +
  		'<div class="background"></div>' +
		'</div>';
		
		$('body').append(html);
		
		$('#popup .background', component).css({opacity : 0});
		$('#popup .content', component).css({opacity : 0});
		$('#popup', component).show();
		
		$('#popup .background', component).stop().animate({
			opacity: 0.5
		}, 200, 'easeOutQuad', function() {	
			
		});	
		
		$('#popup .contain', component).load(url, function() {
		  
			var contentHeight = $('#popup .content').height();
		  	
			if(contentHeight>600) {
					
			}
			
			$('#popup .content', component).css({"marginTop" : -(Math.round(contentHeight/2))});
			
			component.setupForms();
			
			$('#popup .content', component).stop().animate({
				opacity: 1
			}, 200, 'easeOutQuad', function() {	
				
			});
		  
		});
		
		///
		
		$('#popup .background',component).click(function() {
			component.closePopup();
			return false;
		});	
		
		$('#popup .close_btn',component).click(function() {
			component.closePopup();
			return false;
		});	

	},
	setupForms: function(){
		
		var component = this;
		
		setupForms();
				
		$('#popup .contain .stars ul', component).find('a').each(function(i) {												 
			$(this).data('nr', i);
			
			$(this).click(function()
            {
				$('#popup .contain .stars', component).removeClass('s0');
				$('#popup .contain .stars', component).removeClass('s1');
				$('#popup .contain .stars', component).removeClass('s2');
				$('#popup .contain .stars', component).removeClass('s3');
				$('#popup .contain .stars', component).removeClass('s4');
				$('#popup .contain .stars', component).removeClass('s5');
				$('#popup .contain .stars', component).addClass('s' + $(this).data('nr') );
				$('#popup input[name="artrating"]').val( $(this).data('nr') );
				
				return false;
			});	

		});
		
	},
	closePopup: function(){
		
		var component = this;
		
		$('#popup', component).stop().animate({
			opacity: 0
		}, 200, 'easeOutQuad', function() {	
			$('#popup', component).remove();
		});	
		
	}
};
