/*
 * Rockbox.org
 * rockbox.js
 * Copyright 2009 by Maciej "Macku" Adamczak <emacieka@tlen.pl>
 */
var playersList = new Hash( {
	'Apple': new Hash( {
		'iPod 1G':         'ipod1g2g.png',
		'iPod 2G':         'ipod1g2g.png',
		'iPod 3G':         'ipod3g.png',
		'iPod 4G':         'ipod4g.png',
		'iPod Color':      'ipodcolor.png',
                'iPod Video':      'ipodvideo.png',
		'iPod Mini':       'ipodmini1g.png',
		'iPod Nano 1G':    'ipodnano1g.png',
		'iPod Nano 2G*':   'ipodnano2g.png',
	} ),

	'Archos': new Hash( {
		'Jukebox Player':   'archosplayer.png',
		'Jukebox Recorder': 'archosrecorder.png',
		'FM Recorder':      'archosfmrecorder.png',
		'Ondio FM':         'archosondiofm.png',
		'Ondio SP':         'archosondiosp.png'
	} ),

	'Cowon': new Hash( {		
		'iAudio X5': 'iaudiox5.png',
		'iAudio M5': 'iaudiom5.png',
		'iAudio M3': 'iaudiom3.png',
                'Cowon D2*': 'cowond2.png',
//		'iAudio 7**': 'iaudio7.png',
	} ),

/*
	'Creative': new Hash( {
                'Zen Vision:M**': 'creativezvm.png'
	} ),
*/
	'iriver': new Hash( {
		'iriver H10':     'iriverh10.png',
		'iriver H100':    'iriverh100.png',
		'iriver H300':    'iriverh300.png'
	} ),

/*
	'Logik': new Hash( {
                'Dax**': 'logikdax.png'
	} ),

	'Meizu': new Hash( {
                'M3**': 'meizum3.png',
                'M6**': 'meizum6.png',
	} ),

	'MPIO': new Hash( {
                'HD200**': 'mpiohd200.png',
	} ),
*/
	'Olympus': new Hash( {
                'M:Robe 100':  'mrobe100.png',
		'M:Robe 500*': 'mrobe500.png'
	} ),

/*
	'Onda': new Hash( {
                'VX747**':  'ondavx747.png',
                'VX767**':  'ondavx767.png',
	} ),
*/

	'Packard Bell': new Hash( {
                'Vibe 500': 'vibe500.png'
	} ),
            
/*
	'Philips': new Hash( {
                'HDD1600**': 'philipshdd1600.png',
                'HDD1800**': 'philipshdd1800.png',
                'HDD6300**': 'philipshdd6300.png',
                'SA9200**': 'philipssa9200.png',
	} ),
*/
        
	'Samsung': new Hash( {
		'YH-820*':   'samsungyh820.png',
		'YH-920*':   'samsungyh920.png',
                'YH-925*':   'samsungyh925.png',
	} ),

	'SanDisk': new Hash( {
		'Sansa c200v1':   'sansac200.png',
		'Sansa e200':     'sansae200.png',
                'Sansa Fuze v1':  'sansafuze.png',
                'Sansa Fuze v2*': 'sansafuze.png',
                'Sansa Clip*':    'sansaclip.png',
                'Sansa Clip+*':   'sansaclipplus.png',
/*
                'Sansa m200**':   'sansam200.png',
                'Sansa c100**':   'sansac100.png',
                'Sansa c200v2**': 'sansac200.png',
*/
	} ),

/*
	'Tatung': new Hash( {
		'Elio TPJ1022**':  'eliotpj1022.png',
	} ),
*/

	'Toshiba': new Hash( {
		'Gigabeat F':  'gigabeatfx.png',
		'Gigabeat X':  'gigabeatfx.png'
	} )
} );

/*
 * Rockbox.org
 * rockboxPlayersList class
 * Copyright 2009 by Maciej "Macku" Adamczak <emacieka@tlen.pl>
 */
var rockboxPlayersList = new Class( {
  handleContainerId:"players_list",
  randomManufacture:null,
  randomPlayer:null,
  randomImage:null,
  imageContainerId:"player_image",
  imageContainer:null,
  imagesPath:"media/images/players/",
  selectedManufacture:null,
  selectedPlayer:null,
  fx:null,
  fxComplete:true,

  initialize : function(c,a) {
    this.handleContainer = $(c || this.handleContainerId);
    this.imageContainer = $(a || this.imageContainerId);
    this.setRandomManufacture();
    this.setRandomPlayer();
    var b = new Element("ul", {"class":"manufacture_list"} ).inject(this.handleContainer);
    playersList.each( function(g,f) {
          var d=new Element("li", {html:"<strong><span></span>"+f+"</strong>"}).inject(b);
          d.store("manufacture",f);
          d.getElement("strong").addEvent("mousedown", this.selectManufacture.bindWithEvent(this,d));
          if (this.randomManufacture == f) {
              d.addClass("selected");
          }
          var e=new Element("dl",{"class":"players_list"}).inject(d);
          g.each( function(j,i) {
              var h=new Element("dt",{html:"<span></span>"+i}).inject(e);
              h.store("player",i);
              h.store("image",j);
              h.addEvent("mousedown", this.selectPlayer.bindWithEvent(this,h));
              if (this.randomPlayer == i) {
                  h.addClass("selected");
              }
          }, this);
      },this);
      this.fx = new Fx.Tween(this.imageContainer, {duration:100,transition:"expo:in"});
      this.loadPlayersImage(this.randomImage,this.randomPlayer)
  },

  loadPlayersImage : function(c,b){
      var a=this.getImagePath(c);
      this.fxComplete = false;
      this.fx.start("opacity",0).chain(function(d) {
          new Asset.image(d, {
                          onload:function(e) {
                              this.fx.start("background-image",'url("'+e+'")')
                              }.bind(this,d),
                          onerror:function(e) {
                              this.fx.start("background-image",'url("'+this.getImagePath("unknown.jpg")+'")')}.bind(this)
                        })
                            }.bind(this,a)).chain(function(d) {
                                this.imageContainer.set("tween",{
                                  transition : "expo:out",
                                  onComplete : function() {
                                      this.fxComplete=true;
                                      this.selectedPlayer=d}.bind(this)
                                  });
                                this.imageContainer.tween("opacity",1)
                            }.bind(this,b))
  },

  selectManufacture : function(d,e) {
      d.preventDefault();
      var b = e.retrieve("manufacture");
      if (this.selectedManufacture == b) {
        return;
      }
      var a = this.handleContainer.getElements("li.selected");
      a.removeClass("selected");
      e.addClass("selected");
      if (!Browser.Engine.trident) {
         var c = e.getElements("dt");
         c.each( function(f) {
           f.fade("hide");
           f.fade()
         });
      }
      this.selectManufacture = b;
  },

  selectPlayer : function(c,d) {
    c.preventDefault();
    var a = d.retrieve("player");
    if (!this.fxComplete || this.selectedPlayer == a) {
      return;
    }
    this.handleContainer.getElements("dt").removeClass("selected");
    d.addClass("selected");
    var b = d.retrieve("image");
    this.loadPlayersImage(b,a);
  },

  setRandomManufacture : function() {
    var a = Math.floor(Math.random() * playersList.getLength());
    this.randomManufacture = playersList.getKeys()[a]
  },

  setRandomPlayer : function() {
    var b = playersList.get(this.randomManufacture);
    var a = Math.floor(Math.random() * b.getLength());
    this.randomPlayer = b.getKeys()[a];
    this.randomImage=b.get(this.randomPlayer);
  },

  getImagePath : function(a){
    return this.imagesPath + a;
  }
});

window.addEvent("load", function() {
    if ($("players_list")) { 
       new rockboxPlayersList()
    }
  }
);

