/*
 * Changement de langue
 */

function change_src(){
	document.getElementById('arrow').src="http://img.jeuxvideopc.com/images/design/arrow-right.gif";
}
function maj(){
	url = "http://img.jeuxvideopc.com/images/design/";
	if ($('arrow').src == url+ "arrow-right.gif")
		$('arrow').src = url + "arrow-right2.gif";
	else
		$('arrow').src = url + "arrow-right.gif";
}
function toggleVersions() {

	var others_display = $('changeLanguage-others').style.display;
	var liens_display = $('liens').style.display;

	if (liens_display == others_display){
		Effect.toggle('changeLanguage-others', 'appear',{afterFinish: maj()});
	}
	else{
		if (others_display == "none")
			Effect.toggle('changeLanguage-others', 'appear',{delay:1,afterFinish: maj()});
		else
			Effect.toggle('changeLanguage-others', 'appear',{afterFinish: maj()});
		if (liens_display == "none")
			Effect.toggle('liens', 'appear',{delay:1});
		else
			Effect.toggle('liens', 'appear');
	}
	return false;
}

/*
 * Translate news
 */

var TranslateNews = {
	nb : 0,
	widthList : 0,
	actual: 0,
	newsGo: undefined,
	initialize: function(nb) {
		if(typeof nb != 'undefined') {
			TranslateNews.nb = nb - 1;
		};
		TranslateNews.widthList = Element.getWidth($('newsList-0'));
		TranslateNews.newsGo = $A($('newsGo').getElementsByTagName('li'));
		TranslateNews.newsGo.each(function(li){
			var link = li.getElementsByTagName('a')[0];
			var index = link.firstChild.nodeValue - 1;
			Event.observe(link, 'click', function() {TranslateNews.goTo(index)});
		});
		
	},
	goTo: function(pos) {
		pos = pos;
		TranslateNews.newsGo.each(function(li) {
			Element.removeClassName(li, 'current');
		});
		Element.addClassName($('path-'+ (pos + 1)),'current');
		new Effect.Opacity('wrapperNews', {duration: 0.5, from: 1.0, to: 0.5, queue : {scope: 'fadeScope', position: 'front'} });
		new Effect.Move('wrapperNews',{ x: -(TranslateNews.widthList + 20)*pos, y: 0, mode: 'absolute'/*, afterFinish: TranslateNews.actualizeCommand*/ });
		new Effect.Opacity('wrapperNews', {duration: 0.5, from: 0.5, to: 1.0, queue : {scope: 'fadeScope', position: 'end'} });
	}
}

/*	
 *  Description: Replace all 'select' items by a customisable dropdown
 *	Require: prototype.js
 */

var CustomCombo = {
	initialize: function(select, pf) {
		if(select == undefined || !$(select)) return;
		select = $(select);
		CustomCombo.transform(select);
	},
	transform: function(combo) {
		var append = document.createElement('ul');
		var comboBox = document.createElement('ul');
		var opts = combo.options;		
		combo.style.display = 'none';
		comboBox.className = 'comboBox';
		for (var i=0; i < opts.length; i++) {
			var selectedOpt;
			if (opts[i].selected) {
				selectedOpt = i;
				break;
			} else {
				selectedOpt = 0;
			}
		}		
		for (var i=0; i < opts.length; i++) {
			var li = document.createElement('li');
			var lien = document.createElement('a');
			var txt = document.createTextNode(opts[i].text);
			
			lien.setAttribute('rel', opts[i].value);
			lien.appendChild(txt);
			li.selIndex = opts[i].index;
			li.selectID = combo.id;
			li.onclick = function() {
				CustomCombo.selection(this);
			}
			if (i == 0) {
				lien.addClassName = 'first';
			}
			if (i == selectedOpt) {
			  li.className = 'selected';
			  li.onclick = function() {
				this.parentNode.className += ' selectOpen';
				this.onclick = function() {
				  CustomCombo.selection(this);
				}
			  }
			}
			li.appendChild(lien);
			comboBox.appendChild(li);
		}
		comboBox.setAttribute('id','combo-'+combo.id);
		combo.parentNode.appendChild(comboBox);
	},	
	selection: function(ligne) {
		var lis = ligne.parentNode.getElementsByTagName('li');
		for (var i=0; i < lis.length; i++) {
			if (lis[i] != ligne) {
				lis[i].className='';
				lis[i].onclick = function() {
					CustomCombo.selection(this);
				}
			} else {
				CustomCombo.setValue(ligne.selectID, ligne.selIndex);
				ligne.className='selected';
				ligne.parentNode.className = ligne.parentNode.className.replace(new RegExp(" selectOpen\\b"), '');
				ligne.onclick = function() {
					ligne.parentNode.className += ' selectOpen';
					ligne.onclick = function() {
						CustomCombo.selection(this);
					}
				}
			}
		}
	},
	setValue: function(objID, selIndex) {
      var obj = document.getElementById(objID);
      obj.selectedIndex = selIndex;
	}
}

/*
 * Top games
 */

function bestGames(pf) {
	if(pf == undefined) return;
	var url = '/index.php?ctrl=home_jeux_ajax&pf=' + pf;
	new Ajax.Request(url, {
	  method: 'get',
	  onSuccess: function(transport) {
	  	processJson(transport.responseText, 'ajaxListing', pf);
	  }
	});
}

/* JSon Data Processing*/

function processJson(data, elm) {
	var jsonListObj = null;
	var output = '';
	jsonListObj = data.evalJSON(true);
	
	output = '<ul class="listing numbered">';
	for (var i = 0; i < jsonListObj.length; i++) {
		output += '<li';
		if ((i+1) == jsonListObj.length) {
			output += ' class="last"';
		}
		output += '><span>' + (i+1) + '</span> <a href="' + jsonListObj[i].url + '">' + jsonListObj[i].jeu_nom + '</a></li>';
	}
	output += "</ul>";
	$(elm).innerHTML = output;	
}
