Util = {};
$(document).ready(function(){
	MainSubnav.init();	
	if($(".lightbox").length > 0) {
		$("a.lightbox").lightbox();
	} 	
	
	if($(".datepicker").length > 0) {
		$(".datepicker").datepicker($.datepicker.regional['de']);
	}
	
	/* --- target - alternative --- */
	$('a').each(function(){
		 	if( $(this).attr('rel') == "external"  ){
		 		$(this).attr('target', '_blank');
		 	}		 
	 });
	/*set target-attribut for every a tag in content area. NOT for navigation*/
	 $('#main_content a').each(function(){
		if( !$(this).hasClass('btn_back') && !$(this).hasClass('btn_forward') && !$(this).hasClass('btn_catalog') ){
			$(this).attr('target', '_blank');	
		}		 
	 });
	

	
	
});	
MainSubnav = {
	init: function() {
		$('#mainnav li.mainnav').hover(function(){
			$('ul.main_subnav').hide();			
			if( !$(this).hasClass('active') ){
				var nav_class = $(this).children('a').attr('id');				
				if($('#subnav_'+nav_class).width() < $(this).width()){
					$('#subnav_'+nav_class).width($(this).width());
				}				
				$('#subnav_'+nav_class).show();				
			}
			
		},function(){
			$('ul.main_subnav').hide();
		});
	}
}

Util= {
	getWindowSize: function(){
		var xScroll, yScroll;

		if (window.innerHeight && window.scrollMaxY) {
			xScroll = window.innerWidth + window.scrollMaxX;
			yScroll = window.innerHeight + window.scrollMaxY;
		} else if (document.body.scrollHeight > document.body.offsetHeight) {
			xScroll = document.body.scrollWidth;
			yScroll = document.body.scrollHeight;
		} else if(document.body) {
			xScroll = document.body.offsetWidth;
			yScroll = document.body.offsetHeight;
		}

		var windowWidth, windowHeight;
		if (self.innerHeight) {
			if(document.documentElement.clientWidth){
				windowWidth = document.documentElement.clientWidth;
			} else {
				windowWidth = self.innerWidth;
			}
			windowHeight = self.innerHeight;
		} else if (document.documentElement && document.documentElement.clientHeight) {
			windowWidth = document.documentElement.clientWidth;
			windowHeight = document.documentElement.clientHeight;
		} else if (document.body) {
			windowWidth = document.body.clientWidth;
			windowHeight = document.body.clientHeight;
		}

		if(yScroll < windowHeight) {
			pageHeight = windowHeight;
		} else {
			pageHeight = yScroll;
		}

		if(xScroll < windowWidth) {
			pageWidth = xScroll;
		} else {
			pageWidth = windowWidth;
		}

		var arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);
		return arrayPageSize;
	},
	validateForm: function(id) {
		var result= true;				
		$("#"+id + " input, #"+id + " textarea, #"+id + " input.checkbox, #"+id + " select").each(function() {
			if($(this).attr("class") && $(this).attr("class").match("required")) {
			    $(this).val($(this).val().replace(/^\s+|\s+$/g, ''));
				var itemresult= Util.validate($(this).attr("id"));
				result= result && itemresult;
			}
		});		
		if(!result){
			$('#error .message').css('visibility', 'visible');
		}	
		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;
				case("checkbox"):
					if( $("#"+id+":checked").length <= 0 ){
						result = result && false;
						obj.parent().children("label").addClass("error");
						obj.parent().children(".label").addClass("error");
					}else{
						obj.parent().children("label").removeClass("error");
						obj.parent().children(".label").removeClass("error");
					}			
					break;
				case("select"):
					result = result && !( $("#"+id).val() == '---' );					
					break;
				default:
					result= result && (obj.val().length!=0);
					break;
			}
		}
						
		if(!result) {
			obj.addClass("error");			
		} else {
			obj.removeClass("error");
		}
		return result;
	}
}

VfLightbox = {
	set:function(){
		var iframe = $('#lightbox_container').html();		
		
		$("body").append('<div id="active_lightbox_container">'+iframe+'<div class="btn_close" onclick="VfLightbox.close()">x</div><div class="btn_close btn_close2" onclick="VfLightbox.close()">x</div></div>');
		
		var dimension= Util.getWindowSize();
		
		var iframe_width = $("#active_lightbox_container .lightbox_iframe").width();	
		var iframe_height = $("#active_lightbox_container .lightbox_iframe").height();	
		var width= dimension[0];
		var height= dimension[1];
		
		if(dimension[0]<dimension[2]) {
			width= dimension[2];
		}
		if(dimension[1]<dimension[3]) {
			height= dimension[3];
		}
				
		if( height < iframe_height){
			height = iframe_height;
		}
		if( width < iframe_width){
			width = iframe_width;
		}
				
		$("#overlay").css("height", height).css("width", width);
		$("#active_lightbox_container").css("width", width);
		$('#overlay').show();
				
		var left= (width-iframe_width)/2;
		$("#active_lightbox_container .lightbox_iframe").css("left", left+'px');
		$("#active_lightbox_container .btn_close").css('right', left+'px');		
		$("#active_lightbox_container .btn_close2").css('top', (iframe_height-30)+'px');		
		
		//activate close action
		$('#overlay').click(function(){
			VfLightbox.close();
		});
				
	},
	close: function() {
		$("#overlay").hide();
		$("#active_lightbox_container").remove();
	}
}
