function change(script,para,element)
{
	new Ajax.Updater(element,script, {
	  method: 'post',
	  parameters: para,
	  evalScripts: true,
	  onCreate: function() {
		  $(element).innerHTML = '<img src="images/loader.gif">'
	  }
	});

}

function outside(event)
{
        if( outsideOf == null )
        {
                $(document.body).descendants().invoke('stopObserving','click',outside);
                return;
        }
        element = Event.element(event);
        if( element.descendantOf( $(outsideOf) ) !== true && $(element).id !== outsideOf)
        {
		$(outsideOf).hide();
                outsideOf = null;
                $(document.body).descendants().invoke('stopObserving','click',outside);
        }

} 
function closeDiv(event) {
	$(outsideOf).hide();
	$('closeElement').hide();
}

function search_options(pos, event) {
	var id = 'search_options_div';
	var classId = 'search_options';
	if (document.getElementById(id)) {
		$('closeElement').show();
		$('closeElement').observe('click',closeDiv);
		$(id).show();
	} else {
		$(document.body).insert({ top: Element('div', { 'id': 'closeElement', 'class': 'allPage'}) });
		outsideOf = id;
		$('closeElement').observe('click',closeDiv);
		$(pos).insert({ bottom: Element('div', { 'id': id, 'class': classId}) });
		change('scripts/search.php','option=options',$(id).identify());
	}
}
function add_options(e) {
	if (document.getElementById(e)) {
		return $(e).serialize();
	}
}

function register_loader() {

	Ajax.Responders.register({
	  onCreate: function() {
		  onCreate: addLoader()
	  },
	  onComplete: function() {
		  onCreate: removeLoader()
	  }
	});

}

function changeForm(script,form,para,element) {

	new Ajax.Updater(element,script, {
	  method: 'post',
	  parameters: Form.serialize($(form)) + para,
	  evalScripts: true
	});

}
// E-Mail validation

function echeck(str) {

	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
		alert('Bitte geben Sie eine korrekte E-Mail-Adresse an!');
		return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		alert('Bitte geben Sie eine korrekte E-Mail-Adresse an!');
		return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		alert('Bitte geben Sie eine korrekte E-Mail-Adresse an!');
		return false
	}

	 if (str.indexOf(at,(lat+1))!=-1){
		alert('Bitte geben Sie eine korrekte E-Mail-Adresse an!');
		return false
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		alert('Bitte geben Sie eine korrekte E-Mail-Adresse an!');
		return false
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
		alert('Bitte geben Sie eine korrekte E-Mail-Adresse an!');
		return false
	 }

	 if (str.indexOf(" ")!=-1){
		alert('Bitte geben Sie eine korrekte E-Mail-Adresse an!');
		return false
	 }

	 return true					
}

//Newsletter
function newsletter_anmelden() {
	if ($('ok').checked == false) {
		alert(unescape('Sie m%FCssen die Einverst%E4ndnisserkl%E4rung akzeptieren!'));
	} else {
		emailID = $('email');
		if (echeck(emailID.value)==false){
			emailID.focus
		} else {
			var extra1 = "";
			if ($('extra1').checked == true) {
				extra1 = 'ok';
			}
			var extra2 = "";
			if ($('extra2').checked == true) {
				extra2 = 'ok';
			}

			$('newsletter_response').innerHTML = '<img src="images/loader.gif">';
			new Ajax.Request( 'scripts/newsletter.php', { 
				method: 'post', 
				parameters: "&option=anmelden&email="+emailID.value+"&extra1="+extra1+"&extra2="+extra2, 
				onSuccess: function(transport) {
					var theObject = transport.responseJSON;
					$('newsletter_response').innerHTML = theObject.text;
				}
			});
		}
	}
}
// kontaktformular senden
function kontakt_send(form) {
	new Ajax.Request( 'scripts/kontakt_send.php', { 
		method: 'post', 
		parameters: "&Vorname="+$('Vorname').value+"&Nachname="+$('Nachname').value+"&EMail="+$('EMail').value+"&Telefon="+$('Telefon').value+"&Nachricht="+$('Nachricht').value,
		onSuccess: function(transport) {
			var theObject = transport.responseJSON;
			$('kontakt_table').update(theObject.text);
		}
	});
}

