(function(){
  
  var eventMatchers = {
    'HTMLEvents': /^(?:load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll)$/,
    'MouseEvents': /^(?:click|mouse(?:down|up|over|move|out))$/
  }
  var defaultOptions = {
    pointerX: 0,
    pointerY: 0,
    button: 0,
    ctrlKey: false,
    altKey: false,
    shiftKey: false,
    metaKey: false,
    bubbles: true,
    cancelable: true
  }
  
  Event.simulate = function(element, eventName) {
    var options = Object.extend(defaultOptions, arguments[2] || { });
    var oEvent, eventType = null;
    
    element = $(element);
    
    for (var name in eventMatchers) {
      if (eventMatchers[name].test(eventName)) { eventType = name; break; }
    }
 
    if (!eventType)
      throw new SyntaxError('Only HTMLEvents and MouseEvents interfaces are supported');
 
    if (document.createEvent) {
      oEvent = document.createEvent(eventType);
      if (eventType == 'HTMLEvents') {
        oEvent.initEvent(eventName, options.bubbles, options.cancelable);
      }
      else {
        oEvent.initMouseEvent(eventName, options.bubbles, options.cancelable, document.defaultView,
          options.button, options.pointerX, options.pointerY, options.pointerX, options.pointerY,
          options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, options.button, element);
      }
      element.dispatchEvent(oEvent);
    }
    else {
      options.clientX = options.pointerX;
      options.clientY = options.pointerY;
      oEvent = Object.extend(document.createEventObject(), options);
      element.fireEvent('on' + eventName, oEvent);
    }
    return element;
  }
  
  Element.addMethods({ simulate: Event.simulate });
})()



/**
* Ein und Ausblenden von Items im Akkordion
* erstes sowieso einblenden - rest ausblenden
*/
document.observe("dom:loaded", function() {
	if($('akkordion')) {		
		var hide_child_item = function(element) {
			element.className = "item";
			var div = element.childElements();				
			div[1].className ="";
			div[1].hide();
			div[2].className="marker";
		}
		$A($$('.item')).each(
			function(element) {
				//div element
				element.observe('click', function(){
					$A($$('.item')).each(
						function(item) {
							hide_child_item(item);
						}
					)					
					// betreffendes wieder einblenden
					this.className = "item open";
					var childs = this.childElements()
					childs[1].show();						
					childs[2].className = "marker opened";
						
				});				
				hide_child_item(element);				
			}
		);		
		// beim ersten mal klasse setzen, die das erste element offen hält
		// prototype fire() geht nicht und simulate ging auch nicht				
		var first = $A($$('.item'))[0]
		first.className = "item open";
		first.childElements()[1].className="opened";
		first.childElements()[2].className="marker opened";
	}
}); 


/**
 * Asterisk an Pflichtfelder bauen 
 */
document.observe("dom:loaded", function() {
	loadAsterisk();
	loadTable();
})


document.observe("onload", function() {

  $("xteaser").simulate('click');



})

var loadAsterisk = function () {
	$$('.asterisk').each(function (asterisk){
		var inner = asterisk.innerHTML;
		var star = '<span class="star	">*</span>';
		asterisk.innerHTML = star + " " + inner ;
	});
}

var loadTable = function() {
	$$('table.kontakt tr').each(function (tr){
		var td = tr.childElements()[0];
		var inner = td.innerHTML;
		td.innerHTML = "<span>" + inner + "</span>";			
	});
}


/**
 * ul fix
 */
document.observe("dom:loaded", function() {
	$$('#navi ul li ul').each(function (ul){
		ul.observe('mouseover', function(){
			var cn = $($(this).parentNode).childElements()[0].className;
			if(cn.indexOf("active") == -1) {
				$($(this).parentNode).childElements()[0].className += " active";
			}
		});				
		
		ul.observe('mouseout', function(){
			var cn = $($(this).parentNode).childElements()[0].className;
			$($(this).parentNode).childElements()[0].className = cn.replace("active", "");				
		});	
	})
})


var submitForm = function() {
	$('reperaturForm').request({
		onFailure: function(t) {
			$('form').update(t.responseText);			
			loadAsterisk();
			loadTable();
		},
		onSuccess: function(t) { 

			window.open(t.responseText+"&print=true");	
			$('form').innerHTML = "<div class='message'>Ihr Auftrag wurde erfolgreich gespeichert. Bitte setzen Sie sich mit uns in Verbindung.<br /> <br /><img src='images/achtung.gif' /><br /><strong style='font-size: 13px'><a style='color: inherit' href='"+t.responseText+"&print=true"+"'>Sollte sich kein PopUp mit dem Lieferschein öffnen, klicken Sie bitte hier!</a></strong></div>";
		}
	});
	return false;
}


var status = function() {
	new Ajax.Updater('status', 'status.php', {
  	parameters: { sn: $('number').value }
	});
}




var kontakten = function() {

	$('kontaktform').request({
		onFailure: function(t) {
			$('form').update(t.responseText);			
			loadAsterisk();
			loadTable();
		},
		onSuccess: function(t) {
			$('kontaktform').innerHTML = "<div class='message'>Ihre Anfrage wurde verschickt. Wir werden uns mit Ihnen in Verbindung setzen.</div>";
		}
	});
	return false;
}



self.setTimeout(function(){
// $("xteaser").simulate('click');
}, 1000)

 







