
/*Mainpage image changer with bounce animation*/

function bouncer(){

	if( $(".featured-item").length > 1 && $("#featured-content").hasClass('add_bounce')) 
	/*if more than one featured item is found in the html code the next button is generated, in addition to apply the bounce transition the featured-content div must have the class add_bounce*/
	{	
		var no_animation = true;
		var reflection = $("#reflect");
		var slide = $(".next-item")
		var transition = "bounceout";
		
		
		slide.css({visibility:'visible'}).bind("click",function()
		{	
			if(no_animation)
			{
				no_animation = false;
				reflection.css({display:"none"});
				
				
					$(".current-item").fadeOut(500, shownext);	
						
					
			}
			return false;									  
		});
		
		
		
		function shownext()
		{	
			var next_item = $(".current-item").next(".featured-item");
			if (next_item.length == 0) next_item = $(".featured-item:eq(0)");
			$('#featured-content').css({'z-index':150});
			
			reflection.css({bottom:-1024, display:"block"}).animate({bottom:-431},1800,transition);
			next_item.animate({top:93},1800,transition, function()
			{	
				$(".current-item").css({top:-500, display:"block"}).removeClass("current-item");
				$(this).addClass("current-item");
				$('#featured-content').css({'z-index':1});
				no_animation = true;
			});
		}
		
		
	}
}


/*Blogpage image changer with fadeing animation*/
function smooth_transition(){
	/*if more than one featured item is found in the html && div must have the class add_bounce to apply fading animation*/
	if( $(".featured-item").length > 1 && $("#featured-content").hasClass('add_fade'))
	{
		var reflection = $("#reflect");
		
		function transition()
		{
			if ($.browser.msie && $.browser.version < 7){
			reflection.css({display:"none"});	
				}else{
			reflection.fadeOut(500);
				}
				
			$(".current-item").fadeOut(500, shownext);	
		}
		
		
		function shownext()
		{	
			var next_item = $(".current-item").next(".featured-item");
			if (next_item.length == 0) next_item = $(".featured-item:eq(0)");
			
			reflection.fadeIn(500);
			next_item.css({display:"none",top:93}).fadeIn(500, function()
			{	
				$(".current-item").css({display:"none"}).removeClass("current-item");
				$(this).addClass("current-item");
				no_animation = true;
			});
		}
		
		setInterval(transition,5000);
		
	}
}




/*Function that creates the tooltips*/
function kriesi_tooltip2(selector, selectname, atrribute){
$(selector).each(function(i){
			if ($(this).attr(atrribute) != ""){
			$("body").append("<div class='"+selectname+"' id='"+selectname+i+"'>"+$(this).attr(atrribute)+"</div>");
			
			$(this).removeAttr(atrribute).mouseover(function(e){
					$("#"+selectname+i).css({opacity:0.85, display:"none", visibility:"visible"}).animate({"padding": "6px"}, 100).fadeIn(400);
			}).mousemove(function(e){
					$("#"+selectname+i).css({left:e.pageX+14, top:e.pageY+14});
			}).mouseout(function(){
					$("#"+selectname+i).css({display:"none", visibility:"hidden"});				  
			});
			
			
			}
		});
 	}


/*This functions checks on which subpage you are and applies the background to the main menu*/
function whichpage() 
{
	var current_url = location.pathname;
	
	$(".lavaLamp a").each(function(i)
	{
		var item_url = $(this).attr('href');
		if(current_url.match(item_url))
		{
			$(this).parent('li').addClass('current');
		}
	});
}




/*the following 2 functions are validating the contact form*/

function form_validation(){
	$("#name, #email, #message").each(function(i){
									  
				$(this).bind("blur", function(){
				var value = $(this).attr("value");
				var check_for = $(this).attr("id");
				var surrounding_element = $(this);

				if(check_for == "email"){
					if(!value.match(/^\w[\w|\.|\-]+@\w[\w|\.|\-]+\.[a-zA-Z]{2,4}$/)){
						surrounding_element.attr("class","").addClass("invalid-form");
						}else{
						surrounding_element.attr("class","").addClass("ajax_valid");	
						}
					}
				
				if(check_for == "name" || check_for == "message"){
					if(value == ""){
						surrounding_element.attr("class","").addClass("invalid-form");
						}else{
						surrounding_element.attr("class","").addClass("ajax_valid");	
						}
					}
					
				
		 });
	});
}



function validate_all(){
	var my_error;
	$(".ajax_form #send").bind("click", function(){
											 
	my_error = false;
	$(".ajax_form #name, .ajax_form #message, .ajax_form #email ").each(function(i){
										   
				var value = $(this).attr("value");
				var check_for = $(this).attr("id");
				var surrounding_element = $(this);
				if(check_for == "email"){
					if(!value.match(/^\w[\w|\.|\-]+@\w[\w|\.|\-]+\.[a-zA-Z]{2,4}$/)){
						surrounding_element.attr("class","").addClass("invalid-form");
						my_error = true;
						}else{
						surrounding_element.attr("class","").addClass("ajax_valid");	
						}
					}
				
				if(check_for == "name" || check_for == "message"){
					if(value == ""){
						surrounding_element.attr("class","").addClass("invalid-form");
						my_error = true;
						}else{
						surrounding_element.attr("class","").addClass("ajax_valid");	
						}
					}
						   if($(".ajax_form #name, .ajax_form #message, .ajax_form #email").length  == i+1){
								if(my_error == false){
									$("#ajax_form").slideUp(400);
									var yourname = $("#name").attr('value');
									var email = $("#email").attr('value');
									var website = $("#website").attr('value');
									var message = $("#message").attr('value');
									var myemail = $("#myemail").attr('value');
									var myblogname = $("#myblogname").attr('value');
									$(".ajax_form #send").fadeOut(100);	
									
									$.ajax({
									   type: "POST",
									   url: "send.php",
									   data: "Send=true&yourname="+yourname+"&email="+email+"&website="+website+"&message="+message+"&myemail="+myemail+"&myblogname="+myblogname,
									   success: function(response){
									   $(".ajaxresponse").html(response); 
									   $(".ajax_form #send").fadeIn(400);
									   $(".ajax_form #name, .ajax_form #message, .ajax_form #email , .ajax_form #website").val("");
										   }
										});
									} 
							}
					});
			return false;
	});
}


 $(document).ready(function(){	
	$(".thumb a").fancybox();
	whichpage(); //checks wich suppage of the mainmenu we are and appends the current class for the lavalamp
	$(".lavaLamp").lavaLamp({ fx: "backout", speed: 700 });
	bouncer();
	smooth_transition();
	kriesi_tooltip2("a:not(.thumb a)", "tooltip_image2", "title");
	form_validation();
	validate_all();
	 
	
});



/*
 * jQuery Easing v1.1 - http://gsgd.co.uk/sandbox/jquery.easing.php
 *
 * Uses the built in easing capabilities added in jQuery 1.1
 * to offer multiple easing options
 *
 * Copyright (c) 2007 George Smith
 * Licensed under the MIT License:
 *   http://www.opensource.org/licenses/mit-license.php
 */



/**
 * LavaLamp - A menu plugin for jQuery with cool hover effects.
 * @requires jQuery v1.1.3.1 or above
 *
 * http://gmarwaha.com/blog/?p=7
 *
 * Copyright (c) 2007 Ganeshji Marwaha (gmarwaha.com)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 * Version: 0.2.0
 * Requires Jquery 1.2.1 from version 0.2.0 onwards. 
 * For jquery 1.1.x, use version 0.1.0 of lavalamp
 */

(function($) {
$.fn.lavaLamp = function(o) {
    o = $.extend({ fx: "linear", speed: 500, click: function(){} }, o || {});

    return this.each(function() {
        var me = $(this), noop = function(){},
            $back = $('<li class="back"><div class="left"></div></li>').appendTo(me),
            $li = $("li", this), curr = $("li.current", this)[0] || $($li[0]).addClass("current")[0];

        $li.not(".back").hover(function() {
            move(this);
        }, noop);

        $(this).hover(noop, function() {
            move(curr);
        });

        $li.click(function(e) {
            setCurr(this);
            return o.click.apply(this, [e, this]);
        });

        setCurr(curr);

        function setCurr(el) {
            $back.css({ "left": el.offsetLeft+"px", "width": el.offsetWidth+"px" });
            curr = el;
        };

        function move(el) {
            $back.each(function() {
                $(this).dequeue(); }
            ).animate({
                width: el.offsetWidth,
                left: el.offsetLeft
            }, o.speed, o.fx);
        };

    });
};
})(jQuery);
