/* layerBox-script is based on Greybox Redux (Written by: John Resig)
 * and the javascript lightbox plugin (Written by: Leandro Vieira Pinho)
 * Written by Stueken
 */ 
	
// browser-detection IE 6
if($.browser.msie && $.browser.version=="6.0") {
	var browserIE6 = "true";
} else {
	var browserIE6 = "false";
}

function showLayerBox(url,layerClass) {		
	
	 // give a unique id due to safari-reload-bug
	var overlayid = 1 + 100*(Math.random());
	overlayid  = Math.round(overlayid);
	
	// append layerbox	
    $(document.body).append("<div class='layer'></div><div class='layerWrapper"+layerClass+"' id='layerBox"+overlayid+"'><div class='topLayerRound'></div><div class='layerInner'><div id='layerBox' style='display: none'></div></div><div class='bottomLayerRound'></div><div id='close"+overlayid+"' class='layerClose'></div><div class='layerLoader'></div></div>");
    	
    var pageHeight = getPageHeight();
	// Style overlay and show it
	$('.layer').css({
		opacity: 0.9,
	    height: pageHeight
	}).show();	
		
	var arrPageScroll = getPageScroll();
	// Calculate top and left offset for the layerbox div object and show it
	$('#layerBox'+overlayid).css({
		top: arrPageScroll[1] + ($(window).height() / 5)
	}).fadeIn(200, function() {
		$('.layerLoader').show();
	});

	// get Content
	var toLoad = url+' #layerBox';
	// get view height
	var viewHeight = getViewHeight();
	// Load Content into layerbox via ajax
	$('#layerBox'+overlayid+' .layerInner').load(toLoad,'', function () {
    	var boxHeight = $("#layerBox").height();
    	if(layerClass == " note") {
    		$('#layerBox'+overlayid).animate({top: "145px"}, 220);
    	} else if(($("#layerBox").height()+260) > viewHeight) {
    		$('#layerBox'+overlayid).animate({top: (arrPageScroll[1] + 20)}, 220);
    	} else {
    		$('#layerBox'+overlayid).animate({top: (arrPageScroll[1] + ($(window).height() / 10))}, 220);
    	}
    	showContent(overlayid,boxHeight,layerClass);
    });
    
    // econda-notification    
	// delayed for better performance
	window.setTimeout( function() {
		trackIt(url);
	}, 1500);  
       
}

function showContent(overlayid,boxHeight,layerClass) {    
    
    $(".layerInner").animate({height: boxHeight}, 200, function() {
    	if(browserIE6) {
			$("#layerBox").show();
			$(".layerInner").css({height: "auto"});
			$(".layerClose").show().click(hideLayerBox);    	
    	} else {
			$("#layerBox").fadeIn(1000, function(){
				$(".layerInner").css({height: "auto"});
			});
			$(".layerClose").fadeIn(1000).click(hideLayerBox);   	
    	}
		$("#layerBox .layerBoxSubmit input,.layer,#backToSite,.close").click(function(){
			hideLayerBox();
			return false;
		});
		if(layerClass == " big" || layerClass == " note") {
			$(".layerLoader").hide();
		} else {
			$(".layerLoader").fadeOut(100);
		}
		
		// inner-box-features			
		$("a.extern").attr("target", "_blank");
		$("#addressee .moreFields").click(function(){
			blendInMore("#addressee",2,$(this));
		});
		// input-text-color on focus
		$(".inputBox input, .inputBox select, .inputText textarea").focus(function() {
			if ($(this).hasClass("error")) {
				$(this).css({color : "#f7f7f7"});
			} else {
				$(this).css({color : "#000"});
			}
		});
		
		// nutzungsfall-Features
		$(".caseWrapper").hover(
			function(){
				caseIn($(this));
			},
			function(){
				caseOut($(this));
			}
		);
		
		// datepicker
		if(typeof $('#startDate').DatePicker == 'function') {
			$('#startDate').DatePicker({
				format:'d.m.Y',
				date: $('#startDate').val(),
				current: $('#startDate').val(),
				starts: 1,
				position: 'r',
				onBeforeShow: function(){
					$('#startDate').DatePickerSetDate($('#startDate').val(), true);
				},
				onChange: function(formated, dates){
					$('#startDate').val(formated);
					$('#startDate').DatePickerHide();
				}
			});	
			$('#endDate').DatePicker({
				format:'d.m.Y',
				date: $('#endDate').val(),
				current: $('#endDate').val(),
				starts: 1,
				position: 'r',
				onBeforeShow: function(){
					$('#endDate').DatePickerSetDate($('#endDate').val(), true);
				},
				onChange: function(formated, dates){
					$('#endDate').val(formated);
					$('#endDate').DatePickerHide();
				}
			});	
		}
		
		// externe Links
		$('.caseBody p a').attr("target", "_blank");
				
	});
	
}

function hideLayerBox() {
	$(".layerWrapper").remove();
	$(".layer").remove();
}

function getPageHeight() {
    pageHeight = $(document).height();
    return pageHeight;
}

function getViewHeight() {
    viewHeight = $(window).height();
    return viewHeight;
}

function getPageScroll() {
    var xScroll, yScroll;
    if (self.pageYOffset) {
    	yScroll = self.pageYOffset;
    	xScroll = self.pageXOffset;
    } else if (document.documentElement && document.documentElement.scrollTop) {	 // Explorer 6 Strict
    	yScroll = document.documentElement.scrollTop;
    	xScroll = document.documentElement.scrollLeft;
    } else if (document.body) {// all other Explorers
    	yScroll = document.body.scrollTop;
    	xScroll = document.body.scrollLeft;	
    }
    arrayPageScroll = new Array(xScroll,yScroll);
    return arrayPageScroll;
}
