var USPs = Class.create();
USPs.prototype = {
  initialize: function(pageType) {
	this.pageType = pageType;

	if(pageType == 'homepage') {
	    this.createHomepageUSPLinks();
	} else if (pageType == 'first-level-page') {
	    this.createFirstLevelUSPLinks();
	    this.removeEmptyContactLink('contact-partner');	    
	    this.addContactPersonObservers('contact-partner');
	} else if (pageType == 'second-level-page') {
	    this.removeLastBorderInColumn('recolumn-second-level');
	} else if (pageType == 'career-page') {
	    this.removeEmptyContactLink('contact-partner');	    
	    this.addContactPersonObservers('contact-partner');
	} else if (pageType == 'contact-page') {
	    this.removeEmptyContactLink('contact-partner');
	    this.removeEmptyContactLink('contact-partner2');
	    this.addContactPersonObservers('contact-partner');
	    this.addContactPersonObservers('contact-partner2');
	} else if (pageType == 'contact-box') {
	    this.removeEmptyContactLink('contact-partner');	    
	    this.addContactPersonObservers('contact-partner');
	} else if(pageType == 'location') {
	    this.createLocationLinks();
	    this.addLocObservers();
	}
	
  },
  /*Links zur gezielten Navigation zu einem bestimmten USP*/
  createHomepageUSPLinks: function(event){
	  var uspElements = $$('.section');
	/* Nur ein USP-Bild vorhanden, die Navigation wird geloescht */
	  if (uspElements.length < 2) {
	  	$('product-navigation').remove();
	  	$('product-animation').remove();
	  	$('homepage-glider-previous').remove();
	  	$('homepage-glider-next').remove();
	  } else {
	  	for (var i = 1; i <= uspElements.length; ++i){
			/*mehrere USPs vorhanden, es werden die einzelnen Links zu den USPs erstellt*/
	  		$(uspElements[i-1]).writeAttribute ('id', 'section'+i);
	  		$('product-navigation').insert({bottom: '<a href="#section' + i + '" id="nav-section' + i +'">' + i + '</a>'});
	 	}
	 	//this.addUSPObservers();
	  }
  },
  /*Links zur gezielten Navigation zu einem bestimmten USP*/
  createFirstLevelUSPLinks: function(event){
	  var uspElements = $$('.section');
	  
	  if (uspElements.length < 2) {
	  	$('product-navigation').remove();
	  } else {
	  	for (var i = 1; i <= uspElements.length; ++i){
	  		$(uspElements[i-1]).writeAttribute ('id', 'section'+i);
	  	}
		/*start und stop buttons ueberwachen, wenn click auf element*/
	  	//this.addUSPObservers();
	  }
	 
  },

  /*Ein- und Ausblenden der Links zum Starten und Stoppen der Animation*/
  changeAnimationStatusLink:function(event){
    var element = Event.findElement(event, 'a');
    if(element.id == 'glider-stop'){
    	$('glider-start').show();
    	$('glider-stop').hide();
    } else {
    	$('glider-stop').show();
    	$('glider-start').hide();
    }
    Event.stop(event);
  },
  /*Observe fuer die Start und Stopp buttons*/
  addUSPObservers: function() {
    var animationButtons = $$('#product-animation a');
    animationButtons.invoke('observe', 'click', this.changeAnimationStatusLink);
    $('glider-stop').removeClassName ('invisible');
    $('glider-start').removeClassName ('invisible');
    $('glider-stop').show();
    $('glider-start').hide();
  },

  /*Kontakt Personen Links ueberwachen*/
  addContactPersonObservers: function(contactDivID) {
	  var contactPersons = $$('#' + contactDivID + ' a');
	  contactPersons.invoke('observe', 'mouseover', this.changeContactPersonImage.bindAsEventListener({contactDivID:contactDivID}));
  },

  /*Kontakt Personen Bilder austauschen und Hintergrund highlighten*/
  changeContactPersonImage: function(event) {
  	  
	  var contactImages = $$('#' + this.contactDivID + ' img');

	  contactImages.invoke('addClassName','invisible');
	  
	  var element = Event.findElement(event, 'a');
	  
	  var currentElement = $$('img.' + element.id);
	  
	  currentElement.invoke('removeClassName','invisible');
	  	  
	  $$('#' + this.contactDivID + ' a').invoke('removeClassName','active');
	  
	  element.addClassName('active');
  },
  
  /*Entferne die leeren Contact Links aus der Ansprechpartnerbox*/
  removeEmptyContactLink: function (contactDivID){
	  var contactPersons = $$('#'+ contactDivID + ' a');
	  /*for (var i = 0; i < contactPersons.length; ++i){
		  if(contactPersons[i].empty()){
			  contactPersons[i].up().remove();
		  }
	  }*/
	  contactPersons.each(function(contactPerson){
		if(contactPerson.empty()){
			contactPerson.up().remove();
		}
	  });
  },
  
  removeLastBorderInColumn: function (columnDivID) {
  	var columnID = $$('#' + columnDivID + ' div');
  	if (columnID.length > 1) {
  		$(columnID[columnID.length-1]).removeClassName('border-bottom');
  	}
  },
  
  createLocationLinks: function(event){
	  var uspElements = $$('.section');
	  var linkElements = $$('.map a');
	  if(uspElements.length == linkElements.length) {
		
	  	for (var i = 1; i <= uspElements.length; ++i){
			/*es werden die einzelnen Links zu den USPs erstellt*/
	  		$(uspElements[i-1]).writeAttribute ('id', 'section'+i);
	  		$(linkElements[i-1]).writeAttribute ('href', '#section'+i);
	 	}
	  }
  },
  
  addLocObservers: function() {
	$$('.map dd').invoke('observe', 'mouseover', this.changeColor);
	$$('.map a').invoke('observe', 'mouseover', this.changeColor);
  },
  
  changeColor: function (event) {
		var element = Event.findElement(event);
		
		if(element.match('dd')) { 
				$$('.map dd').each(function(mapDD){
					mapDD.removeClassName('loc-dd-hover');
			});
			element.addClassName('loc-dd-hover');
				$$('.map a').each(function(mapA){
					mapA.removeClassName('loc-a-hover');
			});
			element.previous().down().addClassName('loc-a-hover');
		}
		if(element.match('a')) {
				$$('.map a').each(function(mapA){
					mapA.removeClassName('loc-a-hover');
			});
			element.addClassName('loc-a-hover');
				$$('.map dd').each(function(mapDD){
					mapDD.removeClassName('loc-dd-hover');
			});
			element.up().next().addClassName('loc-dd-hover');
		}
  }

};