/*
** Flirtfoto Javascript by Metropolis AG - Reutlingen
** @copyright 2007 Metropolis AG
** @author Thomas Lauria <t.lauria@metropolis-ag.de>
*/

/*
** Config
*/


/*
** Globals
*/

var slides = Array();
var actualSlideIndex = 0;
var actualSlide;

var Flirtfoto = Class.create();

Flirtfoto.prototype = {
  maxSlides: 6,
// Konstruktor
  initialize: function() {
    this.prevSlides = [];
    this.actualSlides = slides.shift();
    this.nextSlides = slides;
  },

// zeigt nächsten Flirtpartner an, (klick auf weitersuchen)
  nextFlirt: function() {
    if (++actualSlideIndex >= this.maxSlides ) {
      this.loadNextSlides();
      actualSlideIndex = 0;
    }
    this.showFlirt(actualSlideIndex);
  },

// zeigt den gewünschten Flirtpartner an, slideIndex = 0-5 => Index der 6 angezeigten Thumbnails
  showFlirt: function( slideIndex ) {
    this.setActiveSlide(slideIndex);
    actualSlideIndex = slideIndex;
    actualSlide = this.actualSlides[slideIndex];
    $('featured-user-meetme-link').href = $('featured-user-meetme-link').href.replace(/([^/]*)\/$/, actualSlide.username)+'/';
    $('featured-user-meetme-link').setAttribute('title', actualSlide.username+' kennenlernen!');
    $('featured-user-image-box').firstChild.href = $('featured-user-image-box').firstChild.href.replace(/([^/]*)\/$/, actualSlide.username)+'/';
    $('featured-user-image-box').firstChild.setAttribute('title', actualSlide.username+' kennenlernen!');
    $('featured-user-image').setAttribute('alt', actualSlide.username);

    //new Effect.Fade($('featured-user-image'), { duration: 0.25 });
    $('featured-user-image').hide();

    imgPreload = new Image();
    imgPreload.onload=function(){
      myFlirtfoto.flirtFotoResizer( imgPreload );
      $('featured-user-image').src = imgPreload.src;
      $('featured-user-image').show();
    }
    imgPreload.src = actualSlide.xxl_path

//    new Effect.Parallel([
//  			new Effect.Fade($('fud-username-heading'), { sync: true, duration: 1.0 }),
//  			new Effect.Fade($('fud-username'), { sync: true, duration: 1.0 }),
//  			new Effect.Fade($('fud-age'), { sync: true, duration: 1.0 }),
//  			new Effect.Fade($('fud-profession'), { sync: true, duration: 1.0 }),
//  			new Effect.Fade($('fud-searches'), { sync: true, duration: 1.0 }),
//			], { duration: 0.35, afterFinish: function() {myFlirtfoto.updateFlirtData();}});

		$('fud-username-heading').hide();
		$('fud-username').hide();
		$('fud-age').hide();
		$('fud-profession').hide();
		$('fud-searches').hide();

		this.updateFlirtData();
  },

// erneuert die angezeigten Daten des Benutzers
  updateFlirtData: function() {
    $('fud-username-heading').innerHTML = actualSlide.username;
    $('fud-username').lastChild.innerHTML = actualSlide.username;
		$('fud-age').lastChild.innerHTML = actualSlide.age;
		$('fud-searches').firstChild.innerHTML = (actualSlide.gender==1?'Er sucht':'Sie sucht');
		$('fud-profession').lastChild.innerHTML = actualSlide.profession;
	  Element.hide($('logo-flirt-male'));
  	Element.hide($('logo-flirt-female'));
  	Element.hide($('logo-leisure-male'));
  	Element.hide($('logo-leisure-female'));

    if( actualSlide.flirt & 1 ) {
      Element.show($('logo-flirt-male'));
    }
    if( actualSlide.flirt & 2 ) {
      Element.show($('logo-flirt-female'));
    }
  	if( actualSlide.leisure & 1 ) {
  	  Element.show($('logo-leisure-male'));
  	}
  	if( actualSlide.leisure & 2 ) {
  	  Element.show($('logo-leisure-female'));
  	}

		new Effect.Parallel([
  		new Effect.Appear($('fud-username-heading'), { sync: true, duration: 1.0 }),
  		new Effect.Appear($('fud-username'), { sync: true, duration: 1.0 }),
      new Effect.Appear($('fud-age'), { sync: true, duration: 1.0 }),
      new Effect.Appear($('fud-profession'), { sync: true, duration: 1.0 }),
      new Effect.Appear($('fud-searches'), { sync: true, duration: 1.0 })
		], { duration: 0.35 });
  },

// macht die letzten 6 slides zu den aktuellen slides
  loadPrevSlides: function() {
    this.nextSlides.unshift(this.actualSlides);
    this.actualSlides = this.prevSlides.shift();
    this.checkSlides();
    new Effect.Fade($('slide-show-list'), { duration: 1.0, afterFinish: function() { myFlirtfoto.updateSlideData();}});
  },

// macht die nächsten 6 slides zu den aktuellen slides
  loadNextSlides: function() {
    this.prevSlides.unshift(this.actualSlides);
    this.actualSlides = this.nextSlides.shift();
    this.checkSlides();
    new Effect.Fade($('slide-show-list'), { duration: 0.5, afterFinish: function() { myFlirtfoto.updateSlideData();}});
    //this.updateSlideData();
  },

// lädt benötigte slides vom server
  checkSlides: function() {
    if( this.nextSlides.length > 1 ) {
      return;
    }
    new Ajax.Request('/', {
      parameters: 'command=loadNextSlides',
      onSuccess: function( transport ) {
        var requestedSlides = eval(transport.responseText);
        requestedSlides = $A(requestedSlides);
        var slidesToAdd = new Array();
        requestedSlides.each( function( oneSlideData ){
          slidesToAdd[slidesToAdd.length] = oneSlideData;
          if(slidesToAdd.length == 6) {
            myFlirtfoto.nextSlides[myFlirtfoto.nextSlides.length] = slidesToAdd;
            slidesToAdd = new Array();
          }
        });
      }
    });
  },

// fügt die Slides der entsprechenden Liste hinzu

// updatet die LI HTML Elemente
  updateSlideData: function() {
    var slideToChangeIndex = 0;

    $A($('slide-show-list').childNodes).each( function( oneSlide ) {
      if( oneSlide.tagName != 'LI' || ! Element.hasClassName( oneSlide, 'slide' ))
        return;
      var actualSlide = myFlirtfoto.actualSlides[slideToChangeIndex++];
      $(oneSlide).setStyle({
        backgroundImage: 'url('+actualSlide.tn_path+')'
      })
      $(oneSlide).firstChild.setAttribute('title','Benutzer '+actualSlide.username+' anzeigen');
      $(oneSlide).firstChild.firstChild.innerHTML = actualSlide.username+'FOO';
    });

    //$('slide-show-list').show();
    new Effect.Appear($('slide-show-list'), { duration: 0.5 });
    this.showFlirt( 0 );
  },

// macht den ausgewählten Slide active
  setActiveSlide: function( idToSetActive ) {
    var slideToChangeIndex = 0;
    $A($('slide-show-list').childNodes).each( function( oneSlide ) {
      if( oneSlide.tagName != 'LI' || ! Element.hasClassName( oneSlide, 'slide' ))
        return;
      if( idToSetActive == slideToChangeIndex++ )
        Element.addClassName($(oneSlide), 'active');
      else
        Element.removeClassName($(oneSlide),'active');
    });
  },

// ändert die Bild größe so dass es rein passt
  flirtFotoResizer: function( image ) {
    if(image.width / image.height > 330 / 360) {
      $('featured-user-image').setStyle({width:'330px', height: 'auto'});
      //$('featured-user-image').width = 330;
    }
    else {
      $('featured-user-image').setStyle({height:'360px', width: 'auto'});
      //$('featured-user-image').height = 360;
    }
  }
}