jQuery(function() {


	(function($) {
		window.IE6 = false;
		window.NOT_IE6 = false;

		if ($.browser.msie) {
			window.IE6 = $(document.documentElement).hasClass('ie6');
			if (!IE6) {
				window.NOT_IE6 = true;
				$(document.documentElement).addClass('not-ie6');
			}
		}

		
	})(jQuery);



	jQuery('.ngib-dropdown-box').ngibDropdownBox();		

	/**
	 * History
	 */

	(function($) {
		
		var load = function(h) {
			h = h.replace('#','');
			
			if (h.indexOf('show-') > -1) {
				var ref = h.replace('show-','ref-');
				
				var $items = $('.ngib-dropdown-box-header');
				
				$items.each(function() {
					var $item 		= $(this);
					var expanded	= $item.parent().hasClass('ngib-expanded');
					var show		= $item.hasClass(ref);
					if (show && !expanded) {
						$item.trigger('click');
					}
					else if (!show && expanded) {
						$item.trigger('click');
					}
				});
				
				// var $items = $('.'+ref);
				// 
				// $items.each(function() {
				// 	var $item = $(this);
				// 	if (!$item.parent().hasClass('expanded')) {
				// 		$item.trigger('click');
				// 	}
				// });
			}
			
		}

		var hash = '';
		
		var checkIntervalId = setInterval(function() {
			
			if (window.location.hash) {
				if (hash != window.location.hash) {
					hash = window.location.hash;
					load(hash);
				}
			}
			
		},100);


	})(jQuery);



	/**
	 * Flowplayer
	 */
    // (function($) {
    //  setTimeout(function() {
    //      $('.ngib-flowplayer').ngibFlowplayer();
    //  },500);
    //      
    // })(jQuery);
	
	




	/**
	 * Rounded corners in IE
	 */
	(function($) {
		if ($.browser.msie && !IE6) {	
			
			// var c = '<div class="ngib-rounded-tl"><div><\/div><\/div>';
			// $('.ngib-dropdown-box').prepend(c);
			var c = '<div class="ngib-rounded-tl"><\/div><div class="ngib-rounded-tr"><\/div><div class="ngib-rounded-bl"><\/div><div class="ngib-rounded-br"><\/div>';
			
			$('.ngib-dropdown-box').wrap('<div class="ngib-ie-wrapper"><\/div>').parent().append(c);
			
		}
	})(jQuery);
	
	
	
	/**
	 * Live search
	 */
	(function($) {
		var $results = $("<div/>").attr('id','column-livesearch').hide();
		$('#column-1').before($results);
		var $input = $('#ngib-livesearch-container input');
		$input
			.oiLivesearch('/repository/proxy/content/service/oi/content/search/ngib/de_CH/text',{
				container: $results,
				animate: false,
				willblur: function() {
					return ($.trim($input.val())=='');
				},
				didhide: function() {
					$('#column-1').show();
				},
				didshow: function() {
					$('#column-1').hide();
				},
				didupdate: function() {
					$('.ngib-result-box-container').each(function() {
						if ($(this).find('div').length == 0) $(this).remove();
					});
					$results.find('.ngib-dropdown-box').ngibDropdownBox();
					//$results.find('.ngib-flowplayer').ngibFlowplayer();
				}
			});
			
		$('.ngib-close-search').livequery('click',function() {
			$input.focus();
			$input.val('');
			$input.blur();
		});	
			
	})(jQuery);



	(function($) {
	
		/**
		 * Login Portlet
		 */
	
		var $wrapNode = $('.portlet-login form');
		
		if ($wrapNode.length == 0) {
			$wrapNode = $('.portlet-login .portlet-content-container>div').eq(0);
		}
	
		var $body = $("<div/>").addClass('ngib-dropdown-box-body');
		var $box = $("<div/>").addClass('ngib-dropdown-box').addClass('expanded').css({height:'auto'});
	
		$wrapNode.wrap($body).parent().parent().addClass('ngib-dropdown-box').addClass('ngib-expanded').css({height:'auto'});
		
		if (NOT_IE6) {
			var c = '<div class="ngib-rounded-tl ngib-expanded"><\/div><div class="ngib-rounded-tr ngib-expanded"><\/div><div class="ngib-rounded-bl"><\/div><div class="ngib-rounded-br"><\/div>';	
			try {
    			if (!$wrapNode.get(0).tagName.toLowerCase()=='form') {
    				var c = '<div class="ngib-rounded-tl"><\/div><div class="ngib-rounded-tr"><\/div><div class="ngib-rounded-bl"><\/div><div class="ngib-rounded-br"><\/div>';	
    			}	
    		} catch(e) {}
			setTimeout(function() {
				$wrapNode.parents('.ngib-dropdown-box').eq(0).wrap('<div class="ngib-ie-wrapper"><\/div>').parent().append(c);
			},1000);
		} 
	
	})(jQuery);
	


});






(function($) {
	
	$.fn.ngibFlowplayer = function() {

		var pathToPlayer = themeDisplay.getPathThemeRoot()+'javascript/flowplayer/flowplayer-3.1.1.swf';

		return this.each(function() {
			
				var $this = $(this);
			
				var controllerHeight = 24.0;
				var width = $this.width();
				var height = parseInt(320/480*width);
				height += controllerHeight;
			
				$(this).css('height',height);
			
				$this.flowplayer(pathToPlayer, {
					clip: {
						autoPlay: false
					}
				});


		});
	}
	
})(jQuery);




/**
 * Dropdown box.
 */

(function($) {
	
	$.fn.ngibDropdownBox = function(options) {
		
		
		options = $.extend({},options);
		
		return this.each(function() {
			
			var $obj = $(this);
			
			var $header	= $obj.children().eq(0);
			var $body	= $obj.children().eq(1);
						
			$obj.hover(
				function() { $obj.addClass('hover'); },
				function() { $obj.removeClass('hover'); }
			);
			
			$obj.after('<div class="ngib-dropdwon-box-dummy-separator-for-ie"><\/div>');
			
			$header.attr('title',$.trim($header.text()));
			
			
			var expanded = false;
			$header.css({cursor: 'pointer'})
				.click(function() {
					
					var height = 0;
					
					var func = function() {}
					
					if (expanded) {
					    
					    $body.find('object,embed').remove();
					    
						height = $header.innerHeight();
						
						func = function() {
							$obj.removeClass('ngib-expanded');
							if (NOT_IE6) {
								$obj.parent().children().removeClass('ngib-expanded');
							}
						}
						
					}
					else {
						$obj.addClass('ngib-expanded');
						if (NOT_IE6) {
							$obj.parent().children().addClass('ngib-expanded');
						}
						height = $header.innerHeight() + $body.innerHeight();

						$body.find('.ngib-flowplayer').ngibFlowplayer();

						func = function() {
							$obj.css({height: 'auto'});
							
							// Make sure the expanded content box is visible.
							var pos = $obj.offset();
							
							if (!IE6) {
								$('html,body').animate({scrollTop:pos.top+'px'});
							}
							
						}

					}
					
					expanded = !expanded;
					if (IE6) {
						$obj.css({height: height+'px'});
						func();
					}
					else {
						$obj.animate({height: height+'px'},200, function() { func(); });
					}
										
				});
			
		});
		
	}
	
})(jQuery);


/**
 * Calendar plugin for NGIB.
 */

(function($) {
	
	$.fn.ngibCalendar = function(options) {


		options = $.extend({url: '/repository/proxy/content/service/sites/ngib/calendar'}, options);
	
		return this.each(function() {
			
			var $obj	= $(this);
			var $header	= $obj.find('.ngib-calendar-header');
			var $title	= $header.find('span');
			var $table	= $obj.find('.ngib-calendar-days');
			
			$header.css({position:'relative'});
			
			var year	= options.year;
			var month	= options.month;
						
			var update = function(url) {
				$.get(url,function(html) {
					var $html = $(html);
									
					var table = $html.find('.ngib-calendar-days').html();

					$table.html(table);
					$title.html($html.find('.ngib-calendar-header span').html());
										
				});
			};
						
			$header.css('cursor','pointer').click(function() {
				var d = new Date();
				var y = d.getFullYear();
				var m = d.getMonth()+1;
				if (m<10) m = '0'+m;
				var url = options.url+'/'+y+'/'+m+'?'+options.args;
				update(url);
				return false;
			});
						
			var $prev = $("<a/>")
				.attr("href","#prev")
				.addClass('prev')
				.click(function() {
					month--;
					var url = options.url+'/'+year+'/'+month+'?'+options.args;
					update(url);
					return false;
				})
				.html("&nbsp;")
				.prependTo($header);
				
			var $next = $("<a/>")
				.addClass('next')
				.attr("href","#next")
				.click(function() {
					month++;
					var url = options.url+'/'+year+'/'+month+'?'+options.args;
					update(url);
					return false;
				})
				.html("&nbsp;")
				.appendTo($header);
				
				
			
			
			
		});
		
	};
		
})(jQuery);