var navigation = function ()
{
	var submenus = $$('#navigation li ul li ul');
	submenus.each(function (element) {
		if ( !element.getParent().hasClass('active') && !element.getParent().hasClass('trail') ) {
			element.setStyle('display', 'none');
			element.getParent().addEvents({
				'mouseenter': function() {
					element.setStyle('display', 'block');
				},
			});
		}
	});
	$$('#navigation').addEvent('mouseleave', function() {
		submenus.each(function (element) {
			if ( !element.getParent().hasClass('active') && !element.getParent().hasClass('trail') ) {
				element.setStyle('display', 'none');
			}
		});
	});
}

var spamFree = function ()
{
	var mailtoLinks = $$('a[href^=mailto:]');
	mailtoLinks.each(function(element){
		if ( element.get('text').indexOf('no-spam.') ) {
			element.set('text', element.get('text').replace('no-spam.', ''));
		}
		if ( element.get('href').indexOf('no-spam.') ) {
			element.set('href', element.get('href').replace('no-spam.', ''));
		}
	});
}


var imageSwitcher = function ()
{
	var switcherLinks = $$('#image-switcher li a');
	switcherLinks.each(function(element){
		element.addEvent('click', function(){
			$$('#image-mask a').set('href', this.get('rel'));
			$$('#image-mask img').set('src', this.get('href'));
			return false;
		});
	});
}

var generateIframes = function ()
{
	var iframeLinks = $$('a.iframe');
	iframeLinks.each(function(element){
		var iF = new Element('iframe', {
			'src': element.get('href')
		});
		iF.replaces(element.getParent());
	});
}

var niceForms = function ()
{
	// add niceFormed
	$$('body').addClass('niceFormed');

	// Radiobuttons/Checkboxen
	var rb_cb = $$('input[type="radio"], input[type="checkbox"]');
	rb_cb.each(function(element){
		element.addClass('hidden');

		var eType = element.getProperty('type');
		var eId = element.getProperty('id');
		var eName = element.getProperty('name');
		var eChecked = "";
		if ( element.checked ) {
			eChecked = " checked";
		}

		var nB = new Element('a', {
			'class': 'nf-' + eType + eChecked,
			'href': 'javascript:void(0);',
			'html': ' ',
			'rel': eId
		});

		switch ( eType ) {
			case "radio":
				nB.addEvent('click', function(){
					$$('input[name="' + eName + '"]').setProperty('checked', false);
					$$('input[name="' + eName + '"]').getNext('a.nf-radio').removeClass('checked');
					if ( !this.hasClass('checked') ) this.addClass('checked');
					$$('input#' + this.getProperty('rel')).setProperty('checked', true);
				});
				$$('label[for="' + eId + '"]').addEvent('click', function(){
					$$('a[rel="' + this.getProperty('for') + '"]').fireEvent('click');
				});
			break;
			case "checkbox":
				nB.addEvent('click', function(){
					this.toggleClass('checked');
					if ( this.hasClass('checked') ) {
						$$('input#' + this.getProperty('rel')).setProperty('checked', 'checked');
					} else {
						$$('input#' + this.getProperty('rel')).removeProperty('checked');
					}
				});
				$$('label[for="' + eId + '"]').addEvent('click', function(){
					$$('a[rel="' + this.getProperty('for') + '"]').toggleClass('checked');
				});
			break;
		}

		nB.inject(element, 'after');
	});

	// Textfields/Textareas
	var textfields = $$('input[type="text"], textarea');
	textfields.each(function(element){
		if ( !element.hasClass('hidden') ) {
			var tagClass = "";
			switch (element.get('tag')) {
				case "input":
					tagClass = "nf-input-text";
				break;
				case "textarea":
					tagClass = "nf-textarea";
				break;
			}

			var wrapper = new Element('div', {
				'class': tagClass
			});
			wrapper.addClass(element.get('class'));
			wrapper.wraps(element);

			element.store('default', element.getProperty('value'));
			element.addEvents({
				'focus': function() {
					if ( this.getProperty('value') == element.retrieve('default') ) {
						element.setProperty('value', '');
					}
				},
				'blur': function() {
					if ( this.getProperty('value') == element.retrieve('default') || this.getProperty('value') == '' ) {
						element.setProperty('value', element.retrieve('default'));
					}
				}
			});
		}
	});

	// SUBMIT BUTTON
	var submitButton = $$('button[type="submit"]');
	submitButton.each(function(element){
		element.addClass('nf-submit');
		element.addEvent('click', function(){
			this.blur();
		});
	});
}

var contactform = function () {
	$('contactform').reset();
	if ( $$('input#k-lot-available1').getProperty('checked')[0] ) $$('.k-lot-not-available').addClass('hidden');
	if ( $$('input#k-lot-available2').getProperty('checked')[0] ) $$('.k-lot-available').addClass('hidden');
	if ( !$$('input#k-lot-offer1').getProperty('checked')[0] ) $$('.k-lot-receive-offer').addClass('hidden');

	$$('a[rel="k-lot-available1"]').addEvent('click', function(){
		$$('.k-lot-available').removeClass('hidden');
		$$('.k-lot-not-available').addClass('hidden');
	});
	$$('a[rel="k-lot-available2"]').addEvent('click', function(){
		$$('.k-lot-available').addClass('hidden');
		$$('.k-lot-not-available').removeClass('hidden');
	});
	$$('a[rel="k-lot-offer1"]').addEvent('click', function(){
		$$('.k-lot-receive-offer').removeClass('hidden');
	});
	$$('a[rel="k-lot-offer2"]').addEvent('click', function(){
		$$('.k-lot-receive-offer').addClass('hidden');
	});

	var hiddenInput = new Element('input', {
		'type': 'hidden',
		'name': 'scripted',
		'value': 1
	});

	$('contactform').adopt(hiddenInput);
	$('contactform').addEvent('submit', function(e){
		new Event(e).stop();

		var rURI = this.getProperty('action');

		if ( check_contactform() ) {
			var req = new Request({
				url: rURI,
				data: $('contactform'),
				onSuccess: function(rText) {
					var errMsg = new Element('p');
					switch(rText) {
						// Success
						case "0":
							window.location.href = 'danke.html';
							//errMsg.set('html', 'Vielen Dank für Ihre Anfrage. Wir werden uns alsbald mit Ihnen in Verbindung setzen.');
							$('contactform').addClass('hidden');
							$('form-results').removeClass('error');
						break;
						// Marked as spam
						case "1":
							errMsg.set('html', 'Ihre Nachricht wurde als Spam markiert. Bitte überprüfen Sie Ihre Angaben und versuchen Sie es erneut!');
							$('form-results').addClass('error');
						break;
						// Email not sent
						case "2":
							errMsg.set('html', 'Ihre Nachricht konnte leider nicht versandt werden. Bitte versuchen Sie es erneut.<br />Sollte das Problem andauern, benachrichten Sie bitte den <a href="mailto:info@ibishaus.de">Webmaster</a>.');
							$('form-results').addClass('error');
						break;
					}
					$('form-results').empty().adopt(errMsg);
					// $('form-results').set('text', rText);
				}
			}).send();
		}
	});
}

var check_contactform = function () {

	var wrongFields = new Array();

	var requiredFields = $$('input.required, textarea.required');
	requiredFields.each(function(element){
		element.getParent().removeClass('error');
		if ( element.get('id') == 'k-email' ) {
			var mailRegEx = /^[_a-za-z0-9-]+(.[_a-za-z0-9-]+)*@([a-z0-9-]{3,})+\.([a-za-z]{2,4})$/;
			if ( !mailRegEx.test(element.get('value')) ) {
				wrongFields.push(element);
			}
		} else if ( element.get('id') == 'k-fon' ) {
			var fonRegEx = /[^-\s\d./()+]/;
			if ( fonRegEx.test(element.get('value')) || element.get('value').length < 8 ) {
				wrongFields.push(element);
			}
		} else {
			if ( element.get('value') == element.retrieve('default') ) {
				wrongFields.push(element);
			}
		}
	});
	if ( wrongFields.length > 0 ) {
		var errMsg = new Element('p', {
			'html': 'Bei der Validierung Ihrer Angaben, sind einige Fehler aufgetreten.<br />Bitte überprüfen Sie die folgenden Felder:'
		});
		var wList = new Element('ul', {
			'class': 'wList'
		});
		wrongFields.each(function(element){
			var wListItem = new Element('li', {
				'html': '<a href="' + location.pathname + '#' + element.get('id') + '">' + element.retrieve('default') + '</a>'
			});
			wList.adopt(wListItem);
			element.getParent().addClass('error');
		});
		$('form-results').removeClass('hidden').addClass('error').empty().adopt(errMsg).adopt(wList);
		return false;
	} else {
		var errMsg = new Element('p', {
			'html': 'Ihre Daten werden übermittelt .. bitte warten ..'
		});

		if ( $('k-fax').getProperty('value') == $('k-fax').retrieve('default') ) {
			$('k-fax').setProperty('value', '');
		}
		if ( $('k-comments').getProperty('value') == $('k-comments').retrieve('default') ) {
			$('k-comments').setProperty('value', '');
		}

		$('form-results').removeClass('hidden').removeClass('error').empty().adopt(errMsg);
		return true;
	}

}
/**

/*ausfaden*/
//$$('#master-image img').set('opacity', 1, 0.5);

/*Bild wechseln*/
//$$('#master-image img').set('src', this.get('href'));

/*Einfaden*/
//$$('#master-image img').tween('opacity', 0.5, 1);

/**/

var ce_gallery = function() {
	var loop = true;
	var thumbs = $$('#thumbnails a');
	thumbs.each(function(element){
		element.addEvent('click', function(e){
			if ( e != undefined ) {
				e = new Event(e).stop();
			}
			//alert('ja');
			//$$('#master-image img').fade(0.5);
			//$$('#master-image img').tween('height', 40, 100);
			//$$('#master-image img').tween('opacity', {
//	$$('#master-image img').set('opacity', 1, 0.5);
			//$$('#master-image img').set('tween', {duration: 'long',opacity:0.5});

var obj= this;

$$('#master-image img').set('tween', {duration: 150}).tween('opacity', 1, 0.2);
setTimeout( function() {
$$('#master-image img').set('src', obj.get('href'));
$$('#master-image img').set('tween', {duration: 200}).tween('opacity', 0.2, 1);
}, 150);
//$$('#master-image img').set('tween', {duration: 300}).tween('opacity', 0, 1);


//$$('#master-image img').tween('opacity', 0.5, 1);
			//$$('#master-image img').fade('in');

			this.blur();
			if ( loop != true ) {
				window.clearInterval(diashow);
			} else {
				loop = false;
			}
		});
	});

	var diashow = window.setInterval(function(){
		loop = true;
		var cImage = $$('#master-image img').get('src');
		var cImage_thumb = $$('#thumbnails a[href="' + cImage + '"]');
		if ( cImage_thumb.getParent('li').getNext('li')[0] != null ) {
			cImage_thumb.getParent('li').getNext('li')[0].getElement('a').fireEvent('click');
		} else {
			cImage_thumb.getParent('li').getParent('ul').getElement('li:first-child')[0].getElement('a').fireEvent('click');
		}
	}, 5000);
}

window.addEvent('domready', navigation);
window.addEvent('domready', spamFree);
window.addEvent('domready', imageSwitcher);
window.addEvent('domready', generateIframes);
