// slideshow
jQuery.fn.slideshow = function(options) {
	
	var defaults = {
		"animSpeed":1000,
		"delay":3000
	};
	var options = jQuery.extend(defaults, options);
	
	return this.each(function() {
		
		var obj = jQuery(this);
		var animSpeed = options.animSpeed;
		var delay = options.delay;
		
		obj
		    .children("img")
		    .fadeTo(0,0)
		;
		
		obj
		    .children("img:first")
		    .fadeTo(0,1)
		;
		
		function endlessAnimation() {
			
			if (obj.children("img").length > 1) {
				
				var elmLast = obj
					.children("img:last")
				;
				var elmFirst = obj
					.children("img:first")
				;
				elmFirst
					.remove()
				;
				elmFirst
					.insertAfter(elmLast)
				;
				
				obj
					.children("img:last")
					.delay(delay)
					.fadeTo(animSpeed,0)
				;
				
				obj
					.children("img:first")
					.delay(delay)
					.fadeTo(animSpeed,1,function(){
						endlessAnimation();
					})
				;
			
			}
			
		}
		
		endlessAnimation ();
		
	});
};


// navigation
jQuery.fn.navigation = function(options) {
	
	var defaults = {
		"speed":300,
		"opacity":0.8
	};
	var options = jQuery.extend(defaults, options);
	
	return this.each(function() {
		
		var obj = jQuery(this);
		var opacity = options.opacity;
		var speed = options.speed;
		var slideshowItemsHasChanged = false;
		
		jQuery("div#wrapper div#header div#subNavigation div div div")
		    .hide()
		;
		jQuery("div#wrapper div#header div#subNavigation div div span.arrow")
		    .hide()
		;
		jQuery("div#wrapper div#header div#subNavigation")
			.children("div")
			.children("div")
			.children("a")
			.mouseenter(function(){
				if (!jQuery(this).parent().children("div").hasClass("open")) {
					jQuery("div#wrapper div#header div#subNavigation div div div")
		   				.hide()
					;
					jQuery("div#wrapper div#header div#subNavigation div div div.open")
						.removeClass("open")
					;
					jQuery("div#wrapper div#header div#subNavigation div div span.arrow")
		    			.hide()
					;
					if (jQuery(this).parent().children("div").length != 0) {
						jQuery(this)
							.parent()
						    .children("div")
						    .addClass("open")
						    .fadeTo(0,opacity)
						;
						jQuery(this)
							.parent()
						    .children("span.arrow")
						    .fadeTo(0,1)
						;
					}
				
					if (jQuery(this).parent().find("span.slideshow-image img").length != 0) {
						
						if (!slideshowItemsHasChanged) {
							
							jQuery("div#wrapper div#header div#slideshowItemsContainer img")
								.remove()
							;
							
							jQuery("div#wrapper div#header div#slideshowItemsContainer")
								.append(jQuery("div#wrapper div#header div#slideshow img").clone(false))
							;
							
						}
						
						var slideshowItems = jQuery(this).parent().find("span.slideshow-image img").clone(false);
						
						jQuery("div#wrapper div#header div#slideshow img")
							.remove()
						;
						
						jQuery("div#wrapper div#header div#slideshow")
							.append(slideshowItems)
						;
						
						jQuery("div#wrapper div#header div#slideshow")
							.slideshow({
								"animSpeed":1000,
								"delay":5000
							})
						;
						
						slideshowItemsHasChanged = true;
						
					} else {
						
						if (slideshowItemsHasChanged) {
							
							jQuery("div#wrapper div#header div#slideshow img")
								.remove()
							;
							
							var slideshowItemsOrig = jQuery("div#wrapper div#header div#slideshowItemsContainer img").clone(false);
							
							jQuery("div#wrapper div#header div#slideshow")
								.append(slideshowItemsOrig)
							;
							
							if (jQuery("div#wrapper div#header div#slideshow img").length > 1) {
							
								var elmLast = jQuery("div#wrapper div#header div#slideshow")
									.children("img:last")
								;
								
								var elmFirst = jQuery("div#wrapper div#header div#slideshow")
									.children("img:first")
								;
								
								elmLast
									.remove()
								;
								
								elmLast
									.insertBefore(elmFirst)
								;
							
							}
							
							jQuery("div#wrapper div#header div#slideshow")
								.slideshow({
									"animSpeed":1000,
									"delay":5000
								})
							;
							
							slideshowItemsHasChanged = false;
						
						}		
						
					}
				
				}
				
			})
			.click(function(){
				if (jQuery(this).parent().children("div").length != 0) {
					return false;
				}
			})
		;
		jQuery("div#wrapper div#header div#subNavigation")
			.children("div")
			.mouseleave(function(){
				jQuery("div#wrapper div#header div#subNavigation div div div.open")
					.removeClass("open")
					.fadeTo(0,0,function(){
						
						jQuery(this)
							.hide()
						;
						
						jQuery(this)
							.prev()
							.prev("span.arrow")
							.hide()
						;
						
					})
				;
				
				if (slideshowItemsHasChanged) {
					
					jQuery("div#wrapper div#header div#slideshow img")
						.remove()
					;
					
					var slideshowItemsOrig = jQuery("div#wrapper div#header div#slideshowItemsContainer img").clone(false);
					
					jQuery("div#wrapper div#header div#slideshow")
						.append(slideshowItemsOrig)
					;
					
					if (jQuery("div#wrapper div#header div#slideshow img").length > 1) {
					
						var elmLast = jQuery("div#wrapper div#header div#slideshow")
							.children("img:last")
						;
						
						var elmFirst = jQuery("div#wrapper div#header div#slideshow")
							.children("img:first")
						;
						
						elmLast
							.remove()
						;
						
						elmLast
							.insertBefore(elmFirst)
						;
					
					}
					
					jQuery("div#wrapper div#header div#slideshow")
						.slideshow({
							"animSpeed":1000,
							"delay":5000
						})
					;
					
					slideshowItemsHasChanged = false;
				
				}
				
			})
		;
		
	});
};


// search
jQuery.fn.search = function(options) {
	
	var defaults = {};
	var options = jQuery.extend(defaults, options);
	
	return this.each(function() {
		
		var obj = jQuery(this);
		var done = false;
		
		obj
			.find("input:text")
			.attr("autocomplete","off")
		;
		obj
			.find("input:text")
			.click(function(){
				if (!done) {
					jQuery(this)
						.css("color","#444")
						.attr("value","")
					;
					done = true;
				}
			})
		;

		
	});
};


// groupNews
jQuery.fn.groupNews = function(options) {
	
	var defaults = {
		"amount":4
	};
	var options = jQuery.extend(defaults, options);
	
	return this.each(function() {
		
		var obj = jQuery(this);
		var amount = options.amount;
		
		obj
			.children("div.news-latest-item")
			.hide()
		;
		
		var total = obj.children("div.news-latest-item").length;
		var pass = Math.ceil(total/amount);
		var elements = obj.children("div.news-latest-item");
		var i=0;
		var c=0;
		var x=0;
		
		
		i = 0;
		c = 0;
		
		for (i=0; i<pass; i++){
			c = i*amount;
			jQuery(elements[c])
				.show()
				.addClass("news-item-root")
			;
		}
		
		
		x = 0;
		i = 0;
		
		obj
			.children("div.news-latest-item.news-item-root")
			.each(function(){
				
				jQuery(this)
					.append('<span class="news-selector-container"></span>')
				;
				
				for (i=0; i<amount; i++){
				
					jQuery(this)
						.children("span.news-selector-container")
						.append('<span class="news-selector"></span>')
					;
					
					jQuery(this)
						.find("span.news-selector-container span.news-selector:last")
						.attr("id","news-selector-id-"+ x +"")
					;
					
					x = x+1;
				
				}
				
			})
		;
		
		
		i = 0;
		
		if (x > total) {
			
			var selectorElements = obj.find("div.news-latest-item.news-item-root span.news-selector-container span.news-selector");
			
			for (i=0; i<total; i++){
				
				jQuery(selectorElements[i])
					.addClass("applied")
				;
				
			}
			
			obj
				.find("div.news-latest-item.news-item-root span.news-selector-container span.news-selector")
				.not(".applied")
				.remove()
			;
			
			obj
				.find("div.news-latest-item.news-item-root span.news-selector-container span.news-selector")
				.removeClass("applied")
			;
		
		}
		
		
		i = 0;
		c = 0;
		
		obj
			.children("div.news-latest-item")
			.each(function(){
				
				if (jQuery(this).hasClass("news-item-root")) {
					
					c = i*amount;
					i = i+1;
					
				} else {
					
					var newsSelector = jQuery(elements[c]).children("span.news-selector-container").clone(false);
				
					jQuery(this)
						.append(newsSelector)
					;
					
				}
				
			})
		;
		
		
		c = 0;
		
		obj
			.children("div.news-latest-item")
			.each(function(){
				
				if (jQuery(this).hasClass("news-item-root")) {
					c = 0;
				}
				
				var selectorElements = jQuery(this).find("span.news-selector-container span.news-selector");
				
				jQuery(selectorElements[c])
					.css({
						"background-position":"0px -8px",
						"cursor":"default"
					})
				;
				
				jQuery(this)
					.attr("id",jQuery(selectorElements[c]).attr("id").replace("selector","item"))
				;
				
				c = c+1;
				
			})
		;
		
		
		obj
			.find("div.news-latest-item span.news-selector-container span.news-selector")
			.click(function(){
				
				jQuery(this)
					.parent()
					.parent()
					.hide()
				;
				
				obj
					.find("div.news-latest-item#"+ jQuery(this).attr("id").replace("selector","item") +"")
					.show()
				;
				
			})
		;
				
		
	});
};



// groupNavigationItems
jQuery.fn.groupNavigationItems = function(options) {
	
	var defaults = {
		"amount":8
	};
	var options = jQuery.extend(defaults, options);
	
	return this.each(function() {
		
		var obj = jQuery(this);
		var amount = options.amount;
		var total = obj.find("a").length;
		var pass = Math.ceil(total/amount);
		var i=0;
		var c=0;
		
		if (total > amount) {
			
			var elements = obj.find("a");
			
			i=0;
			c=0;
			
			for (i=0; i<pass; i++){
				c = i*amount;
				jQuery(elements[c])
					.addClass("nav-item-root")
				;
				obj
					.prepend('<span></span>')
				;
			}
			
			
			i=-1;
			
			jQuery.each(elements, function() {
				
				if (jQuery(this).hasClass("nav-item-root")) {
					i=i+1;
				}
				
				obj
					.children("span")
					.eq(i)
					.append(jQuery(this))
				;
				
			});
			
			var width = parseInt(obj.width() * pass);
			
			obj
				.css({
					"width":""+ width +"px"
				})
			;

			
		}
		
	});
};


// moveGFX
jQuery.fn.moveGFX = function(options) {
	
	var defaults = {};
	var options = jQuery.extend(defaults, options);
	
	return this.each(function() {
		
		var obj = jQuery(this);
		
		// marker
		var height = jQuery("div#main").height() + parseInt(jQuery("div#main").css("padding-top"));
		var footerHeight = jQuery("div#footer").height() + parseInt(jQuery("div#footer").css("padding-top")) + parseInt(jQuery("div#footer").css("padding-bottom"));
		var topHeight = parseInt(obj.children("div.cropMarkerTopLeft:first").css("top")) + 25;
		var markerHeight = obj.children("div.markerMiddleLeft:first").height();
		height = parseInt( ( ( ( height - (footerHeight + topHeight) ) / 2 ) + topHeight ) - (markerHeight/2) );
		
		obj
			.children("div.markerMiddleLeft:first")
			.css({
				"top":""+ height +"px"
			})
		;
		
		obj
			.children("div.markerMiddleRight:first")
			.css({
				"top":""+ height +"px"
			})
		;
		
		// cropMarker + colorCode (bottom)
		var heightx = jQuery("div#footer").height() + parseInt(jQuery("div#footer").css("padding-top")) + parseInt(jQuery("div#footer").css("padding-bottom")) - 25;
		
		obj
			.children("div.colorCodeBottomRight:first")
			.css({
				"bottom":""+ heightx +"px"
			})
		;
		
		obj
			.children("div.cropMarkerBottomLeft:first")
			.css({
				"bottom":""+ heightx +"px"
			})
		;
		
	});
};

