$(document).ready(function () {	
	Page.init();
	Util.initSlideables();
	
	$(".lightbox").lightbox();
});

Page= {
	init: function() {
		/*$("#mainnav li").hover(function() {
			$("#subnav_container").show();
			$("#subnav_container div").hide();
			$("#subnav_container "+$(this).attr("class")).show();
		}, function() {
			$("#subnav_container").hide();
		});
		$("#subnav_container").hover(function() {
			$("#subnav_container").show();
		}, function() {
			$("#subnav_container").hide();
		});*/
		/*if($("#subnav_container").css("display")=="block") {
			if($("#subnav li").size()<=6) {
				$("#subnav_container").css("height", "55px");
			}
		}*/
	}
}

Util= {
	initSlideables: function() {
		$("#content_container .slideable").each(function() {
			var slideable= $(this);
			var classes= slideable.attr("class").split(" ");
			var height= slideable.height();
			for(var index=0; index<classes.length; index++) {
				if(classes[index].match("height")) {
					height= classes[index].replace(/height/g, '');
				}
			}
			if(slideable.height()==0 && slideable.children().height()>0) {
				slideable.css("height", slideable.children().height());
			}
			if(height<slideable.height()) {
				/* set slideable */
				var pages= Math.ceil(slideable.height()*1.05/height);

			    slideable.html('<div class="slideable_content" style="height:'+(height-30)+'px;"><div class="sledge">'+slideable.html()+'</div></div><div class="slideable_menu"><div class="back">&laquo;&nbsp;zurück</div><div class="next">weiter&nbsp;&raquo;</div></div>');	
				var currentPage= (parseInt($(".sledge", slideable).css("top"))/(height-30));
				
				$(".back", slideable).click(function() {
					currentPage--;
					if(currentPage==0) {
						$(this).fadeOut("fast");
					}
					$(".sledge", slideable).animate({ 'top' : '-' + currentPage*(height-50) + 'px' }, 500, 'swing');
					$(".next", slideable).fadeIn("fast");
				});
				$(".next", slideable).click(function() {
					currentPage++;
					if(currentPage==(pages-1)) {
						$(this).fadeOut("fast");
					}
					$(".sledge", slideable).animate({ 'top' : '-' + currentPage*(height-50) + 'px' }, 500, 'swing');
					$(".back", slideable).fadeIn("fast");
				});
			}
		});
	},
	validateForm: function(id) {
		var result= true;
		$("#"+id + " input, #"+id + " textarea").each(function() {
			if($(this).attr("class") && $(this).attr("class").match("required")) {
			  // trim input field
			  $(this).val($(this).val().replace(/^\s+|\s+$/g, ''));
				var itemresult= Util.validate($(this).attr("id"));
				result= result && itemresult;
			}
		});
		if(result) {
			$("#form_error").removeClass("error");
		} else {
			$("#form_error").addClass("error");
		}
		return result;
	},
	validate: function(id) {
		var result= true;
		var obj= $("#"+id);
		var commands= $("#"+id).attr("class").split(" ");
		for(var i=0; i<commands.length; i++) {
			var command= commands[i].replace(/[0-9]/g, "");
			switch(command) {
				case("minlength"):
					var length= parseInt(commands[i].replace(/minlength/g, ""));
					result= result && (obj.val().length>=length);
					break;
				case("maxlength"):
					var length= parseInt(commands[i]);
					result= result && (obj.val().length<=length);
					break;
				case("email"):
					result = result && ( obj.get(0).value.match(/\S@\S.\S{2,}/)!=null )
					break;
				default:
					result= result && (obj.val().length!=0);
					break;
			}
		}
		if(!result) {
			obj.addClass("error");
		} else {
			obj.removeClass("error");
		}
		return result;
	}
	
}