var Info = new function() {

	var userAgent = navigator.userAgent.toLowerCase();
	var b = {};
	b.isOpera      = typeof window.opera != "undefined";
	b.isIE         = userAgent.indexOf("msie") != -1 && b.isOpera == false;
	b.isWebkit     = userAgent.indexOf("webkit") != - 1;
	b.isChrome     = userAgent.indexOf("chrome") != - 1;
	b.isSafari     = userAgent.indexOf("safari") != - 1 && (b.isChrome == false);
	b.isMozilla    = userAgent.indexOf("gecko") != -1 && b.isSafari == false && b.isChrome == false && b.isOpera == false;
	b.isFirefox    = b.isMozilla == true && userAgent.indexOf("firefox") != -1 && b.isOpera == false;
	b.isKonqueror  = navigator.product != null && navigator.product.toLowerCase().indexOf("konqueror") > -1;

	// version detection
	function version() {
		var versionString;
		var specificOffset = 0;
		var specificLength = 4;

		if(b.isIE)      { versionString = "msie"; specificOffset = 1; }
		if(b.isFirefox) { versionString = "firefox/"; }
		// note: version detection works in safari 2.2+. use: b.version<3 to detect safari 2.x and 1.x
		if(b.isSafari)  { versionString = "version/"; }
		if(b.isChrome)  { versionString = "chrome/"; }
		if(b.isOpera)   { versionString = "opera/"; }

		return parseFloat(userAgent.substr(userAgent.indexOf(versionString) + versionString.length + specificOffset, specificLength));
	}

	b.version = version();
	if(b.version == 0 || isNaN(b.version)) { b.version = false; }

	// backward compatibility, use b.version to detect browser version in new scripts
	b.isSafariGte3 = b.isSafari && (b.version >= 3);
	b.isIE7        = b.isIE && (b.version == 7);
	b.isIEpre7     = b.isIE && (b.version < 7);
	b.isIEpre6     = b.isIE && (b.version < 6);

	this.browser = b;
	this.os = {
		isLinux: (navigator.platform.indexOf("Linux") == 0),
		isMac:   (navigator.platform.indexOf("Mac") == 0),
		isWin:   (navigator.platform.indexOf("Win") == 0)
	};
	// windows version detection >> 5.0=2000 5.1=XP, 5.2=2003, 6.0=Vista, 6.1=Win7
	if(this.os.isWin) {
		this.os.winVersion = parseFloat(userAgent.substr(userAgent.indexOf('nt') + 3, 3));
	}

	this.hasTransparencySupport = true;
	if(this.os.isLinux || this.browser.isKonqueror || (this.os.isMac && !this.browser.isSafariGte3)) {
		this.hasTransparencySupport = false;
	}
}

/*
var error;
function submitContactForm() {
	var sError = "Please fill in the fields!";
	retval = true;
	var name = document.getElementById('name');
	var headline = document.getElementById('headline');
	var entry = document.getElementById('entry');
	var email = document.getElementById('email');

	if (!testFormValue(name)) {
		retval = false;
	}

	if (!testFormValue(headline)) {
		retval = false;
	}

	if (!testFormValue(entry)) {
		retval = false;
	}

	if (!testFormValue(email)) {
		retval = false;
	} else if (!testEmail(email))
	{
		retval = false;
	}

	if (!retval) {
		error = showErrors(sError);
	}
	if (retval)	{
		hideError(error);
		doContentPost({
			'name' : encodeURI(name.value),
			'headline' : encodeURI(headline.value),
			'entry' : encodeURI(entry.value),
			'email' : encodeURI(email.value)
		},'Contact');
	}
	return retval;
}

function submitGBForm() {
	var sError = "Please fill in the fields!";
	retval = true;

	var name = document.getElementById('name');
	var headline = document.getElementById('headline');
	var entry = document.getElementById('entry');
	var email = document.getElementById('email');
	var url = document.getElementById('url');

	if (!testFormValue(name)) {
		retval = false;
	}

	if (!testFormValue(headline)) {
		retval = false;
	}

	if (!testFormValue(entry)) {
		retval = false;
	}
	if (!retval) {
		error = showErrors(sError);
	}
	if (retval)	{
		hideError(error);
		doContextPost({
			'name' : encodeURI(name.value),
			'headline' : encodeURI(headline.value),
			'entry' : encodeURI(entry.value),
			'email' : encodeURI(email.value),
			'url' : encodeURI(url.value)
		},'Guestbook');
	}
	return retval;
}

function submitNLForm() {
	var sError = "Please fill in the fields!";
	retval = true;

	var name = document.getElementById('name');
	var email = document.getElementById('e-mail');
	if (!testFormValue(name)) {
		retval = false;
	}
	if (!testFormValue(email)) {
		retval = false;
	} else if (!testEmail(email))
	{
		retval = false;
	}
	if (!retval) {
		error = showErrors(sError);
	}
	if (retval)	{
		hideError(error);
		doContextPost({
			'name' : encodeURI(name.value),
			'e-mail' : encodeURI(email.value)
		},'Newsletter');
	}
	return retval;
}

function showErrors(sMessage) {
	var elem = document.getElementById('form-error-wrapper');
	elem.innerHTML = "";
	var field = document.createElement("p");
	field.className = "error";
	field.innerHTML = sMessage;
	elem.appendChild(field);
	return field;
}

function hideError(oErrorField) {
	if(oErrorField) oErrorField.style.display="none";
}

function testEmail(elem) {
	var regex=/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
	//console.log(elem.value + " - " + regex.test(elem.value));
	return regex.test(elem.value);
}

function testFormValue(elem) {
	if (!isDefaultValue(elem)) {
		return isEmptyString(elem.value);
	}
	return false;
}

function isDefaultValue(elem) {
	if (elem.value==elem.defaultValue) {
		return true;
	}
	return false;
}

function isEmptyString(sValue) {
	if (sValue.length>0) {
		return true;
	}
	return false;
}

function handleForm(id) {
	var elements = Form.getElements(id);
	for (x=0;x<elements.length;x++) {
			if (elements[x].type != "submit") {
			elements[x].onfocus = function () {
				if (this.value == this.defaultValue)
					this.value="";
			}

			elements[x].onblur = function () {
				if (this.value.length==0)
					this.value=this.defaultValue;
			}
		}
	}
}
*/
/**************************************************/
/*START: helper functions */
function getWindowInnerSize()
{
	var objWin = new Object();

	if (self.innerHeight) {
	// all except Internet Explorer
		objWin.width = self.innerWidth;
		objWin.height = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) {
	// Explorer 6 Strict Mode
		objWin.width = document.documentElement.clientWidth;
		objWin.height = document.documentElement.clientHeight;
	} else if (document.body) {
	// other Explorers
		objWin.width = document.body.clientWidth;
		objWin.height = document.body.clientHeight;
	}
	return objWin;
}
/*END: helper functions */
/**************************************************/
/**************************************************/
/*START: blur on anchors*/
function handleAnchors() {
	var anchors = document.getElementsByTagName("a");
	for (var i = 0;i<anchors.length; i++)
	{
		anchors[i].onfocus = function ()
		{
			this.blur();
		}

		if (anchors[i].rel == "extern")
		{
			anchors[i].onclick = function ()
			{
				window.open(this.href);
				return false;
			}
		}
	}
}
/*END: blur on anchors*/
/**************************************************/
/**************************************************/
/*START: ajax functions*/
/*
var changeImage = function (contentId, params) {
	var url = "getImage.php";
	var pars = ""; //'id=' + id;

	for (var param in params)
	{
		pars += param + "=" + params[param] + "&"
	}

	var myAjax = new Ajax.Request(url, { method: 'get', parameters: pars,
		onComplete: function(transport) {

			var test = transport.responseText;
			setTimeout((function() {
				Element.hide('image-loader');
				flyer.className="";
				$(contentId).innerHTML = test;
				}
			), 1000);
		}
	});

	Element.show('image-loader');
	//var dimension = Element.getDimensions(contentId);
	//Element.setStyle($(contentId),{height: dimension.height + "px"});
	$('image-loader').innerHTML = "<img src=\"resources/img/loading.gif\" /> loading ...";
	var flyer = $(contentId).getElementsByTagName('img')[1];
	flyer.className="fade-out";
};

var getEntry = function (params, type) {
	var url = "get"+type+".php";
	var pars = ""; //'id=' + id;

	for (var param in params)
	{
		pars += param + "=" + params[param] + "&"
	}

	var myAjax = new Ajax.Updater( { success: 'entry-container' }, url, { method: 'get', parameters: pars,
		onComplete: function() {
			setTimeout((function() {
				Element.hide('loader');
				Element.show('entry-container');

				if (type=="Gallery" || type=="GalleryImage") {
					//using jQuery to handle facebox
					(function($) {
						$('a[rel*=facebox]').facebox(function() {
							//patric: call function callback after do ajax stuff
							callback();
						});
					})(jQuery);
				}
				handleAnchors();
				}
			), 100);
		}
	});

	Element.show('loader');
	$('loader').innerHTML = "<img src=\"resources/img/loading.gif\" /> loading ...";
	Element.hide('entry-container');
	clearList();
	setHighlight(params['id']);
	//initLayout();
};

var doContextPost = function (params, type) {
alert("?");
	var url = "make"+type+".php";
	var pars = ""; //'id=' + id;

	for (var param in params)
	{
		pars += param + "=" + params[param] + "&";
		var test = params[param];
		alert(param + "\n" + params[param] + "\n" + test.length);
	}

	var myAjax = new Ajax.Updater( { success: 'context-entry-container' }, url, { method: 'post', parameters: pars,
		onComplete: function() {
			setTimeout((function() {
				Element.hide('context-loader');
				Element.hide('form-wrapper-' + type);
				if (type!="Newsletter") {
					getEntry({},type);
				}
				Element.show('context-entry-container');
				}
			), 100);
		}
	});
	Element.show('context-loader');
	$('context-loader').innerHTML = "<img src=\"resources/img/loading.gif\" /> loading ...";
	Element.hide('context-entry-container');
	//initLayout();
};


var doPost = function (params, type) {
	var url = "make"+type+".php";

	var myAjax = new Ajax.Updater( { success: 'entry-container' }, url, { method: 'get', parameters: params,
		onComplete: function() {
			setTimeout((function() {
				Element.hide('loader');
				Element.hide('form-wrapper-' + type);
				//getEntry({},type);
				Element.show('entry-container');
				}
			), 100);
		}
	});

	Element.show('loader');
	$('loader').innerHTML = "<img src=\"resources/img/loading.gif\" /> loading ...";
	Element.hide('entry-container');
	//initLayout();
};


var doContentPost = function (params, type) {
	var url = "make"+type+".php";
	var pars = ""; //'id=' + id;

	for (var param in params)
	{
		pars += param + "=" + params[param] + "&"
	}

	var myAjax = new Ajax.Updater( { success: 'entry-container' }, url, { method: 'get', parameters: pars,
		onComplete: function() {
			setTimeout((function() {
				Element.hide('loader');
				Element.hide('form-wrapper-' + type);
				//getEntry({},type);
				Element.show('entry-container');
				}
			), 100);
		}
	});

	Element.show('loader');
	$('loader').innerHTML = "<img src=\"resources/img/loading.gif\" /> loading ...";
	Element.hide('entry-container');
	//initLayout();
};

var setHighlight = function (id)
{
	if ($('entry-' + id)) $('entry-' + id).className = "active";
};

var clearList = function ()
{
	if (!$('entries-wrapper')) return;
	var list = $$('#entries-wrapper dt','#entries-wrapper dd');
	list.each(function(elem) {
			if (elem.className!="archiv") {
				elem.className="";
			}
		}
	);
};
*/
/*END:  ajax functions*/
/**************************************************/
/**************************************************/
//Event.observe(window, 'load', handleAnchors, false);

/*jquery stuff*/

	function adjustColumns()
	{
		return;
		$col1 = $("div#content div.content-col-1");
		$col2 = $("div#content div.content-col-2");
		
		var height = $col1.height() > $col2.height() ? $col1.height() : $col2.height();  
		$col1.height(height);
		$col2.height(height);
	}

	$(document).ready(function() {
	
		if ($("body#home").length) {
			adjustColumns();
		}
		initEntries();
		if ($.isFunction($.validator)) {
			if ($('form#gb-form').length) {
				$('form#gb-form .inputlabel').each(function(){
					$(this).inputLabel();
				});
				$('form#gb-form').validate({
					errorContainer: "#form-error-wrapper",
					errorPlacement: function(){
						return;
					},
					submitHandler: function(form) {
		   				$(form).ajaxSubmit({target:'#entries-wrapper', success: function(){getEntry("getGuestbook.php")}});
		   			}
				});
				
			}
			if ($('form#contact-form').length) {
				$('form#contact-form .inputlabel').each(function(){
					$(this).inputLabel();
				});
				$('form#contact-form').validate({
					errorContainer: "#form-error-wrapper",
					errorPlacement: function(){
						return;
					},
					submitHandler: function(form) {
						$entryContainer = $("div#entry-container").parents(".portlet").css({position: 'relative'})
						$entryContainer.height($entryContainer.height());
						
						$entryContainer.append(("<div id=\"loader-opacity\"></div>"));
						$("div#loader-opacity").css({position:'absolute', top: 0, background:'#111',opacity: '.75'})
							.height($entryContainer.height()).width($entryContainer.width())
						
						$entryContainer.append("<div id=\"loader\">loading... <img src=\"resources/img/loading.gif\" /></div>");
						$("div#loader").css({position:'absolute', top: 10, right: 10});
						
		   				$(form).ajaxSubmit({target:'#entry-container', success: function() {
		   					$("#loader-opacity").remove();
		   					$("#loader").remove();
		   				}});
		   			}
				});
				
			}
			
			$.validator.addMethod('inputlabel', function(value, element) {
				var defaultValue = jQuery(element).parents("form").find("label[for=" + element.id + "]").text();
				return value!=defaultValue;
			});
		}
	});

	function initEntries() {
		$entriesWrapper = $('#entries-wrapper');
		if ($entriesWrapper.length) {
			highlightFirst($entriesWrapper);
			$('dd a', $entriesWrapper).click(function(event){
				this.blur();
				getEntry(this.href);
				unhighlight($entriesWrapper);
				$('#entry-' + this.rel).addClass("active");
				event.preventDefault();
			});
		}
	}
	
	function getEntry(uri)
	{
		var $target = $('#entry-container');
		showLoader($target);
		window.scrollTo(0,0); 
		$target.slideUp('slow', function(){
			$.get(uri, function(data){
				setTimeout((function() {
					hideLoader();
					$target.html(data).slideDown('slow');
					handleAnchors();
					if (uri.indexOf("getGallery") > -1){
						$('#entry-container div.thumb td > a').lightBox(
							{
							imageLoading : './resources/img/lightbox-ico-loading.gif',
							imageBtnClose : './resources/img/lightbox-btn-close.gif',
							imageBtnPrev : './resources/img/lightbox-btn-prev.gif',
							imageBtnNext : './resources/img/lightbox-btn-next.gif',
							imageBlank  : './web/resources/img/lightbox-blank.gif'
							}
						);
					} else if (uri.indexOf("getGuestbook") > -1) {
						$('dl#pagination a').click(function(event){
							this.blur();
							getEntry(this.href);
							event.preventDefault();
						});
					}
					
				}), 100);
			});
		});
	}
	
	function unhighlight($entriesWrapper)
	{
		$entriesWrapper.find("dl dt.active, dl dd.active").removeClass("active");	
	}
	
	function highlightFirst($entriesWrapper)
	{
		$entriesWrapper.find("dd:first, dt:first").addClass("active");
	}
	
	function showLoader($target)
	{
		$("<div id=\"loader\"><img src=\"resources/img/loading.gif\" /> loading ...</div>").insertAfter($target);
	}
	
	function showImageLoader($target)
	{
		$("<div id=\"loader\"><img src=\"resources/img/loading.gif\" /> loading ...</div>").prependTo($target);
	}
	
	function hideLoader()
	{
		$('#loader').remove();
	}
	
	function changeImage(params) {
		var $target = $('#placeholder-flyer');
		$("a:first",$target).click(function(){this.blur();}).trigger('click');
		$("img:first",$target).animate({opacity: 0.4},'20');
		showImageLoader($target);
		$.get("getImage.php", params, function(data){
			setTimeout((function() {
				hideLoader();
				$target.html(data).slideDown('slow');
			}), 1000);
		});
	};	
