
/**
 * 
 * 
*/

var galleries = Array();
var cur_rel = "";

$(document).ready(function() {
	globalInit();
});


function globalInit() {
	forminit();
	galleryInit();

	
	
	// LightBox stuff:
	var lbon = false;
	// all <a class=" tr_popover "> init lightbox
	$('a.tr_popover').click(function(e) {
		e.preventDefault();
		var the_href = $(this).attr("href");
		
		/* // ggf. LightBox erzeugen:
		if ($('#lightbox').length <= 0) { // #lightbox exists
			var lightbox =
				"<div id="lightbox">" +
				"<div id="content">" +
				"</div>" +
				"</div>";
			$('body').append(lightbox);
		}
		//*/
		$('#lightbox').fadeIn();
		lbon = true;
		// put href link target stuff into box
		$.ajax({
			url: the_href,
			success: function(data) {
				$('#lb-content').append("<div>\n" + data + "</div>\n");
				forminit();
			}
		}); // ajax
		//init();
		
	}); // click()
	
	// LightBox close button
	$('#lb-close').click(lb_close);	
	function lb_close() {
		$('#lightbox').fadeOut();
		$('#lb-content div').remove();
		lbon = false;
	}
	
	
	
	// ### KeyEvents:
	/*
	$(document).keypress( function(e) {
		switch (e.keyCode) {
			case 27:	// ESC
				if (lbon) {
					lb_close();
				}
				break;
			default:
				break;
		}
	});	//*/

}


function galleryInit() {
	// index gallery images
	galleries = Array();
	$('a.gallery-img').each(function(indx, elem) {
		var rel = $(this).attr("rel");
		if (galleries[rel] == null) {
			galleries[rel] = Array();
		}
		galleries[rel][galleries[rel].length] = $(this);
	});
	
	// handler for every gallery-link click	
	$('a.gallery-img').click(function(e) {
		e.preventDefault();
		var the_href = $(this).attr("href");
		var the_rel = $(this).attr("rel");
		cur_rel = the_rel;
		// get index in array
		var index = -1;
		for (i = 0; i < galleries[the_rel].length; i++) {
			if (galleries[the_rel][i].get(0) == $(this).get(0)) {
				index = i;
			}
		} // for
		if (index > -1) {
			showGallery(the_rel, index);
		}
		
	}); // click()
	
	galleryRefresh();
}

function galleryRefresh() {
	
	$('#gallery-prev, #gallery-next').click(function(e) {
		e.preventDefault();
		e.stopImmediatePropagation();
		showGallery(cur_rel, $('a.gallery-interlink', $(this)).attr("rel"));
	});
	$('a.gallery-interlink').click(function(e) {
		e.preventDefault();
		showGallery(cur_rel, $(this).attr("rel"));		
	}); // click()
	
	/*
	$('#gallery-overlay').live('click', function() { //must use live, as the lightbox element is inserted into the DOM
		$('#gallery-overlay').hide();
	});//*/
	
	

}



// ************************************************************************

function showGallery(rel, index) {
	$('#gallery-box img').attr("src", "");
	if (rel == "" || rel == null) {
		//alert("rel leer!!!");
	}
	var gal = galleries[rel];
	if (gal == "" || gal == null) {
		//alert("gal leer!!!");
	}
	if (gal == null || index < 0) {
		alert("nööööö");
		return;
	}
	var the_href = gal[index].attr("href");
	var the_rel = gal[index].attr("rel");
	// get index in array
	$('#gallery-overlay').fadeIn();
	// put href link target stuff into box
	/*
	$('#gallery-box').empty();
	$('#gallery-box').append(
		'<img src="' + the_href + '" alt="" />' + 
		'<br />\n');
	//*/
	$('#gallery-box img').attr("src", the_href);
	$('#gallery-box img').load(
		function(x) {
			$('#gallery-info').empty();
			if ($("span", gal[index].parent()).html() != null) {
				$('#gallery-info').append(
					$("span", gal[index].parent()).html()
				);
			}
			else {
				$('#gallery-info').append("&nbsp;");
			}
		}
	);
	
	
	
	var nav = "<br />\n" + 
		'<div class="gallery-nextprev">';
	
	var src = null;
	var left = false;
	var right = false;
	
	if ((index > 0) && (index < gal.length)) {
		// not first => prev-link
		left = true;
		/*
		var target = parseFloat(index) - 1;
		src = gal[target];
		nav += '<span class="gallery-prev">'+
			'<a ' +
			' href="' + src.attr("href") + '" ' +
			//' onclick="javascript:showGallery(' + rel + ', ' + (index - 1) + ');" ' +
			' class="gallery-interlink" ' +	//src.attr("class")
			' rel="' + (target) + '" ' +	//src.attr("rel")
			'>prev</a>&nbsp;';
		//*/
	}
	if (index < (gal.length - 1)) {
		// not last => next-link
		right = true;
		/*
		var target = parseFloat(index) + 1;
		src = gal[target];
		if (src == null) {
			alert("nich da - index " + (index + 1));
		}
		//src = gal[index - 1]; 
		nav += '<span class="gallery-next">'+
			'<a ' +
			' href="' + src.attr("href") + '" ' +
			//' href="' + src.attr("href") + '" ' +
			' class="gallery-interlink" ' +
			' rel="' + (target) + '" ' +
			' >next</a>&nbsp;' + 
			'</span>\n';
		//*/
	}//*/
	nav += "</div>\n"
	//$('#gallery-box').append(nav);
	if (left) {
		src = gal[parseFloat(index) - 1];
		
		$('#gallery-prev a').attr("href", src.attr("href"));
		$('#gallery-prev a').attr("rel", parseFloat(index) - 1);
		$('#gallery-left').show();
		/*
		$('#gallery-box').append(
			'<div id="gallery-left">' + 
			'<div id="gallery-lefti">' +
			'<span id="gallery-prev">'+
			//'&lArr;' +
			'<a ' +
			' href="' + src.attr("href") + '" ' +
			//' onclick="javascript:showGallery(' + rel + ', ' + (index - 1) + ');" ' +
			' class="gallery-interlink" ' +	//src.attr("class")
			' rel="' + (parseFloat(index) - 1) + '" ' +	//src.attr("rel")
			'></a>' +
			'</span>' + 
			'</div>' + 
			'</div>'
			);//*/
	}
	else {
		$('#gallery-left').hide();
	}
	if (right) {
		src = gal[parseFloat(index) + 1];
		
		$('#gallery-next a').attr("href", src.attr("href"));
		$('#gallery-next a').attr("rel", parseFloat(index) + 1);
		$('#gallery-right').show();
		/*
		$('#gallery-box').append(
			'<div id="gallery-right">' +
			'<div id="gallery-righti">' +
			'<span id="gallery-next">'+
			'<a ' +
			' href="' + src.attr("href") + '" ' +
			' class="gallery-interlink" ' +
			' rel="' + (parseFloat(index) + 1) + '" ' +
			' >'+
			//'&rArr;'+
			'</a>' + 
			'</span>' +
			'</div>' + 
			'</div>\n'
			);//*/		
	}
	else {
		$('#gallery-right').hide();
	}
	$('#gallery-left').hover(
		function(x) {
			$('#gallery-lefti').show();	
		},
		function(x) {
			$('#gallery-lefti').hide();	
		}
	);
	$('#gallery-right').hover(
		function(x) {
			$('#gallery-righti').show();	
		}, 
		function(x) {
			$('#gallery-righti').hide();	
		}
	);
	
	 
	$('#gallery-overlay').one({
		click: function(){
			$('#gallery-overlay').fadeOut();
			$(document).off("keydown");
		}
	});
	$(document).on({
		keydown: function(e) {
			switch (e.keyCode) {
				case 27:	// ESC
					$('#gallery-overlay').hide();
					$(document).off("keydown");
					break;
				default:
					break;
			}
		}
	}); //
	
	
	//globalInit();
	/*
	$('#gallery-box img').load(function(x) {
		$('gallery-box').show();
	});
	//*/
	galleryRefresh();
	
	// runter scrollen
	$('#gallery-box img').load(function(e) {
		/*
		alert("Scroll: \n" + 
			$('#gallery-box').outerHeight(true) + "\n" + 
			$(window).height() +  "\n" +
			($('#gallery-box').outerHeight(true) -  
			$(window).height()) +  "\n" 
			
			);
		// */
		$('#gallery-overlay').scrollTop($('#gallery-box').outerHeight(true) - $(window).height());
		//$('html, body').animate({scrollTop: $('#gallery-box').height()}, 800);
	});
	
	
} // showGallery

	
function forminit() {
// für jedes Formular submit-Aktion abfangen:
	$(document.forms).each(function(i) {	// each form
		if (!($(this).hasClass("nonajax"))) {
			$(this).unbind();	// sonst mehrfach-binden des Eventhandlers
			$(this).submit(function(event) {	// form submit
				var doit = true;
				event.preventDefault();
				var form = $(this);
				$("input:text", this).each(function(j) {
					if ($(this).hasClass("required") && $(this).val().trim() == "") {
						var name = $("label[for=" + $(this).attr("name") + "]", form).text().trim();
						if (name.substring(name.length - 1, name.length) == ":") {
							name = name.substring(0, name.length - 1);
						}
						//alert("Bitte eine Angabe machen bei '" + name + "'");
						$(this).addClass("required_alert");
						doit = false;
					}
					
				}); // each()
				if (doit ) {
					 var options = { 
						target:			"#" + form.attr("id") + "_info", 
						//beforeSubmit:  showRequest,  // pre-submit callback 
						success:		showFormResponse  // post-submit callback
						// other available options: 
						//url:       url         // override for form's 'action' attribute
						//type:      type        // 'get' or 'post', override for form's 'method' attribute 
						//dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
						//clearForm: true        // clear all form fields after successful submit 
						//resetForm: true        // reset the form after successful submit
						// $.ajax options can be used here too, for example: 
						//timeout:   3000 
						};
					$(this).ajaxSubmit(options); 
					$(this).hide();
					$("#" + form.attr("id") + "_info").show();
					$("#" + form.attr("id") + "_info").text("Vielen Dank für Ihre Anfrage.");
				}
				else {
					$("#" + form.attr("id") + "_info").show();
					$("#" + form.attr("id") + "_info").text("Bitte füllen sie die hervorgehobenen Felder aus!");
				}
				return false;
			});
		}
	}); // forms - each
};



function showFormResponse(responseText, statusText, xhr, $form)  {
	$($form.attr("id") + "_info").text(responseText);
}


function admininit() {
	$('a.adminbox').appendTo($('#adminbox'));
	if ($('a.adminbox').length > 0) {
		$('#adminbox').show();
	}
	
}

function askYN(url, quest) {
	if (confirm(quest)) {
		$.get(url, 
		function(data) {
			//$("#extrastuff").append(data);
			//$("#extrastuff").show();
			//init();
		});
		//location.reload();
	}
		
}





// EOF


