var browser = new Object;

if (navigator.userAgent.indexOf("Chrome") > 0) {
	browser.type = 'Chrome';
} else if (navigator.userAgent.indexOf("Safari") > 0) {
	browser.type = 'Safari';
} else if (navigator.userAgent.indexOf("Firefox") > 0) {
	browser.type = 'FF';
	browser.version = navigator.userAgent.substr(navigator.userAgent.indexOf("Firefox")+8, 1);
} else if (navigator.product == "Gecko") {
	browser.type = 'Mozilla';
} else {
	browser.type = 'IE';
	browser.version = navigator.userAgent.substr(navigator.userAgent.indexOf("MSIE")+5, 1);
}

function mailaddress(user, domain) {

	document.write(user + "@" + domain);
}

function mailcontact(user, domain) {

	var mailto = "mailto:" + user + "@" + domain;
	window.location = mailto;
}

function getElementsByClassName(name, parent) {

	for(var o = [], n = new RegExp("\\b" + name.replace(/([(){}|*+?.,^$\[\]\\])/g, "\\\$1") + "\\b"), l = (parent || document).getElementsByTagName("*"), i = l.length; i--;)
		n.test(l[i].className) && (o[o.length] = l[i]);
	return o;
}

function menuEffects(name) {

	if ((browser.type=='IE' && browser.version<7) || browser.type=='Safari') {
	
		var nodelist = getElementsByClassName(name);
		for (var i=0; i<nodelist.length; i++) {
		
			nodelist[i].onmouseover = function(){this.style.backgroundColor='#fff';};
			nodelist[i].onmouseout = function(){this.style.backgroundColor='#8093a3';};
		}
	}
}

function inputOnLoad(object) {

	var fields = new Array({name:'username', hint:'Benutzername'}, {name:'password', hint:'Passwort'});
	
	for (var i=0; i<fields.length; i++) {
	
		object[fields[i].name].setAttribute('hint', fields[i].hint);
		object[fields[i].name].onfocus = inputOnFocus.bind({obj: object[fields[i].name], hint: fields[i].hint});
		object[fields[i].name].onblur = inputOnBlur.bind({obj: object[fields[i].name], hint: fields[i].hint});
		
		inputOnBlur(Object.extend(this, {obj: object[fields[i].name], hint: fields[i].hint}));
	}
}

function inputOnSubmit(name) {

	var object = document.getElementById(name);
	for (var i=0; i<object.elements.length; i++) {
	
		if (object.elements[i].value==object.elements[i].getAttribute('hint')) {
			object.elements[i].value = '';
		}
	}
}

function inputOnFocus() {

	var element = this.obj;
	if (element.value == this.hint) {
	
		if (element.name == 'password') {
			element = inputReplace(element,this.hint,'password');
		}
		
		element.value = '';
	}
	
	element.focus();
	element.select();
	return false;
}

function inputOnBlur() {

	var element = this.obj;
	if (element.value == '') {
	
		if (element.name == 'password') {
			element = inputReplace(element,this.hint,'text');
		}
		
		element.value = this.hint;
	}
	return false;
}

function inputReplace(element,hint,newtype) {

	var obj = document.createElement('input');
	obj.type = newtype;
	obj.name = element.name;
	obj.value = element.value;
	obj.setAttribute('hint', element.getAttribute('hint'));
	
	obj.onfocus = inputOnFocus.bind({obj: obj, hint: hint});
	obj.onblur = inputOnBlur.bind({obj: obj, hint: hint});

	element.parentNode.replaceChild(obj,element);
	return obj;
}

function parseJson(request)	{

	if(request.substr(0,4) != "JSON")	{
		var response = {success: true, html: request};
	} else {
		var parseCode = request.substr(4);
		var response =  eval('(' + parseCode + ')');
	}
	return response;
}

var contentBox = {

	display: function(name,height) {
	
		this.maxHeight = height || 500;
		
		var request = new Element('form');
		request.action = _URL + '/ajax.php?_html=1&_box=1&_name=' + name;
		
		var options = { onComplete: this.complete.bind(this) };
		request.send(options);
		return false;
	},
	
	complete: function(request) {
	
		var response = parseJson(request);
		if (response.success && response.html) {
		
			var box = new Element('div');
			var button = new Element('div').addClass('textbox3-bttn').injectInside(box);
			var image = new Element('img').setProperties({'src':'./images/bttn-close.gif', 'alt':'Schließen', 'title':'Schließen'}).injectInside(button);
			var content = new Element('div').injectInside(box);
			content.innerHTML = response.html;
			
			var options = {buttons: 1, width: 470, maxHeight: this.maxHeight, button1: 'Speichern'};
			var prompt = new MooPrompt('', box, options);
			
			image.onclick = prompt.button1.onclick;
			prompt.buttons.addClass('hide');
			prompt.header.addClass('hide');
			return false;
		}
	}
}

var messageBox = {

	send: function() {
	
		var options = { onComplete: this.complete.bind(this) };
		var request = $(arguments[0].id);
			request.action = _URL + '/ajax.php?_box=2&_name=sendMessage';
			request.send(options);
		
		return false;
	},
	
	complete: function(request) {
	
		var response = parseJson(request);
		if (response.success) {
		
			var dialog = $('messageConfirm').cloneNode(true);
				dialog.removeClass('hide');
			
			var options = {buttons: 1, width: 350, button1: 'Weiter', onButton1: function(){document.location = _URL + '/';}};
		} else {
			
			var dialog = $('messageFailure').cloneNode(true);
				dialog.removeClass('hide');
			
			var error = new Element('ul').injectInside(dialog);
			var result = response.result;
			
			if (result.lastname) new Element('li').appendText('Geben Sie Ihren Nachnamen ein.').injectInside(error);
			if (result.firstname) new Element('li').appendText('Geben Sie Ihren Vornamen ein.').injectInside(error);
			if (result.email) new Element('li').appendText('Geben Sie eine gültige E-Mail Adresse ein.').injectInside(error);
			if (result.message) new Element('li').appendText('Geben Sie Ihre Nachricht ein.').injectInside(error);
			
			var options = {buttons: 1, width: 350, button1: 'Zurück'};
		}
		
		var prompt = new MooPrompt('', dialog, options);
			prompt.container.addClass('dialogbox-wrap');
		
		return false;
	}
}
