/* this prevents dom flickering, needs to be outside of dom.ready event: */
document.documentElement.className += 'js_active';
/*end dom flickering =) */


jQuery.fn.slideFadeToggle = function(speed, easing, callback) {
	return this.animate({opacity: 'toggle', height: 'toggle'}, speed, easing, callback);  
};
	
	
function menu() {
	jQuery(function(){
		jQuery('ul.sf-menu').superfish({ 
            hoverClass:    'sfHover',          // the class applied to hovered list items 
			pathClass:     'overideThisToUse', // the class you have applied to list items that lead to the current page 
			pathLevels:    1,                  // the number of levels of submenus that remain open or are restored using pathClass 
			delay:         800,                // the delay in milliseconds that the mouse can remain outside a submenu without it closing 
			animation:     {height: 'toggle'}, // an object equivalent to first parameter of jQuery’s .animate() method 
			speed:         'normal',           // speed of the animation. Equivalent to second parameter of jQuery’s .animate() method 
			autoArrows:    true,               // if true, arrow mark-up generated automatically = cleaner source code at expense of initialisation performance 
			dropShadows:   true,               // completely disable drop shadows by setting this to false 
			disableHI:     true,               // set to true to disable hoverIntent detection 
			onInit:        function(){},       // callback function fires once Superfish is initialised – 'this' is the containing ul 
			onBeforeShow:  function(){},       // callback function fires just before reveal animation begins – 'this' is the ul about to open 
			onShow:        function(){},       // callback function fires once reveal animation completed – 'this' is the opened ul 
			onHide:        function(){}        // callback function fires after a sub-menu has closed – 'this' is the ul that just closed 
        }); 
	});
}


function topnav(){
	jQuery("#topnav .search_field div").css({display: "none"}); // Opera Fix
	jQuery("#topnav .search_link").removeAttr("href");
	jQuery("#topnav .search_link").click(function()
		{	
			jQuery("#topnav .search_field div").css({overflow:"hidden", height:"auto", width:"auto", display:"none"}).slideFadeToggle(400, function()
			{ 
				jQuery(this).css({overflow:"visible", width:"auto", height:"auto"});
				jQuery("#topnav input[type=text]").select();   
			});	
			jQuery("#topnav .search_link").css({overflow:"hidden", height:"auto", width:"auto", display:"none"}).slideUp(500, function() {	jQuery(this).css({overflow:"hidden", display:"none"}); });
		} );
}


function searchfield() {
	$("input[type=text]").focus(function()
    {
    	$(this).select();   
	});
}


function slider() {
	if(typeof jQuery().nivoSlider == 'function') {
		$('#slider').nivoSlider({
			effect:'fade', //Specify sets like: 'fold,fade,sliceDown'
			slices:15,
			animSpeed:500,
			pauseTime:3000,
			startSlide:0, //Set starting Slide (0 index)
			directionNav:true, //Next & Prev
			directionNavHide:true, //Only show on hover
			controlNav:true, //1,2,3...
			controlNavThumbs:false, //Use thumbnails for Control Nav
	        controlNavThumbsFromRel:false, //Use image rel for thumbs
			controlNavThumbsSearch: '.jpg', //Replace this with...
			controlNavThumbsReplace: '_thumb.jpg', //...this in thumb Image src
			keyboardNav:true, //Use left & right arrows
			pauseOnHover:true, //Stop animation while hovering
			manualAdvance:false, //Force manual transitions
			captionOpacity:0.8, //Universal caption opacity
			beforeChange: function(){},
			afterChange: function(){},
			slideshowEnd: function(){} //Triggers after all slides have been shown
		});
	}
}

function hover_shadow() {

		$(".gallery").children("a").hover( function () { 
			$(this).append('<span class="overlay"></span>');
			$(this).find(".overlay").css({ opacity: 0 }).animate({ opacity: 0.1 });
		}, function () { 
			$(this).find(".overlay").stop(true, true).animate({ opacity: 0 }, function () { $(this).remove();});
		});
		
}

function contactform() {
		/* contact-form handler */
		$("#formSubmit").click(function () {
				var that = $(this);
				that.css ({ display: "none" });
				$(this).parent().append('<img src="./css/images/loader.gif" alt="Loading..." id="formLoad" style="margin: 10px 10px 10px 200px;" />');
				
				/* Init variables */
				var name 	= $("#formName").val();
				var mail	= $("#formMail").val();
				var website = $("#formWebsite").val();
				var text 	= $("#formText").val();
				
				/* Load form-function asynchron */
				$("#formReturn").load("ajax/contact.php", {send: true, name: name, mail: mail, website: website, text: text },
						function () {
							$("#formReturn p.error").animate({ top:"-=10px" }, 100).animate({ top:"+=10px" }, 100).animate({ top:"-=10px" }, 100).animate({ top:"+=10px" }, 100);
							that.parent().find("#formLoad").remove();
							that.css({ display: "block" });
					});
				
				return false;
			});
}

jQuery(document).ready(function(){

	menu();
	slider();
	topnav();
	searchfield();
	hover_shadow();
	contactform();
			
});
