//~ coding: utf-8


	function runHistory() {
		var ax = new Ajax('GET');
		if(!ax) alert('oups');
		else {
			ax.onError = onHistoryError;
			ax.onComplete = onHistoryComplete;
			ax.request('history.xml.php');
		}
		
		initTri();
		initSearch();
	}
	
	function createSearchForm() {
		removeSearchForm();
		
		var f = $$('form');
		
		f.style.backgroundColor = '#043E5A';
		f.style.border = '1px solid #FFF';
		f.style.padding = '5px';
		f.style.display = 'inline';
		
		f.id  = 'historySearchForm';
		
			var inp  = $$('input');
			inp.name = 'searcher'
			inp.type = 'text';
			
			var sub = $$('input');
			sub.type = 'submit';
			sub.value = 'Rechercher';
			sub.name = 'goSearchNow';
			
			
			var raz = $$('input');
			raz.type = 'reset';
			raz.value= 'Effacer La Recherche';
			raz.name = 'stopSearchNow';
			
			inp.style.margin = sub.style.margin = '0 5px';
			
			
		f.appendChild($$('legend').appendChild($$T('Effectuer une recherche')));
		f.appendChild(inp);
		f.appendChild(sub);
		f.appendChild(raz);
		
		$('historySearch').replaceChild(f, $('searchStart'));
		
		f.onreset = function() {			
			var sT = $$('strong');
			sT.id = 'searchStart';
			sT.appendChild($$T(' Recherche [+] '));
			
			$('historySearch').replaceChild(sT, f);
			
			initSearch();
			
			var aj = new Ajax('GET');
			aj.onError = onHistoryError;
			aj.onComplete = onHistoryComplete
			aj.request('history.xml.php');
		}
		
		f.onsubmit = function() {
			if(this.searcher.value != '') {
				var aj = new Ajax('GET');
				aj.onError = onHistoryError;
				aj.onComplete = onHistoryComplete
				aj.request('history.xml.php', {field: 'artiste', search: this.searcher.value});	
			
			}
			//~ removeSearchForm();
			return false;
		}		
	}
	
	function removeSearchForm() {
		if($('historySearchForm')) $('historySearchForm').parentNode.removeChild($('historySearchForm'))
	}
	
	function onHistoryError(m) {
		emptyNode('listing');
		$('listing').appendChild($$T(m));
	}
	
	function onHistoryComplete(xhr) {
		
		var list = $('listing');			
		emptyNode(list);
		
		if(xhr.responseXML) {
			var root  = $N(xhr.responseXML, 'elmediatorHistory').item(0);
			var total = $A(root, 'totalConcert');
			var numDs = $A(root, 'numConcertDisplay');
			var prev  = $A(root, 'prevPage');
			var next  = $A(root, 'nextPage');
			
			$SENS     = $A(root, 'sens');
			$TRI	  = $A(root, 'tri');
			$FIELD	  = $A(root, 'lastFieldSearch');
			$SEARCH   = $A(root, 'lastSearch');
			
			var items = $N(root, 'concertItem');
			
			if(numDs > 0) {
				makeNav(total, prev, next, numDs);
				makePages(total, numDs);
				makeTri();
				for(var i=0; i<items.length; ++i) {
					var concert = items.item(i);
					var p = $$('p');
					p.className = 'lineWrap '+( i%2 ? 'line1' : 'line2');				
					p.appendChild(addSpan($A(concert, 'id'), 'showID'));
					p.appendChild(addSpan($A(concert, 'artiste'), 'showArtiste'));
					p.appendChild(addSpan(frenchDate($A(concert, 'date')), 'showDate'));
					p.appendChild(addSpan($A(concert, 'lieu'), 'showLieu'));
					list.appendChild(p);
					p.onmouseover = function() {this.style.backgroundColor = '#043E5A'}//665430
					p.onmouseout  = function() {this.style.backgroundColor = ''}
				}
			}
			var body =  $N('body').item(0);
			var main =  $('main');
			var head =  $('header');		
		}
	}
	
	function makeNav(num, prev, next, numAff) {
		var beg = $('firstNav');
		beg.href = '?field='+$FIELD+'&search='+$SEARCH+'&tri='+$TRI+'&sens='+$SENS+'&sv=0';
		
		var prv = $('prevNav');
		prv.href = '?field='+$FIELD+'&search='+$SEARCH+'&tri='+$TRI+'&sens='+$SENS+'&sv='+prev;		
		
		var nxt = $('nextNav');
		nxt.href = '?field='+$FIELD+'&search='+$SEARCH+'&tri='+$TRI+'&sens='+$SENS+'&sv='+next;
		
		var end = $('lastNav');
		end.href = '?field='+$FIELD+'&search='+$SEARCH+'&tri='+$TRI+'&sens='+$SENS+'&sv='+(num - numAff);
		
		beg.onclick = prv.onclick = nxt.onclick = end.onclick = navigate
	}
	
	function makePages(t, n) {
		emptyNode('navByPage');
		
		if(n >= t) {
			var pages = $('navByPage');
			var numBTn = Math.round(t/n);
			for(var z=0; z<numBTn; z++) {
				var lnk = $$('a');
				lnk.href = '?field='+$FIELD+'&search='+$SEARCH+'&tri='+$TRI+'&sens='+$SENS+'&sv='+z*n;
				lnk.appendChild($$T(z+1));
				lnk.onclick = navigate;
				pages.appendChild(lnk)
			}
		}
		
	}
	
	function initTri() {
		$('colID').rel="id";
		$('colAR').rel="artiste";
		$('colDA').rel="date";
		$('colLI').rel="lieu";
			
		$('colID').style.cursor = $('colAR').style.cursor =
		$('colDA').style.cursor = $('colLI').style.cursor = "pointer";
	}
	
	function initSearch() {
		var search         = $('searchStart');
		search.onclick     = createSearchForm;	
	}
	
	function makeTri() {
		$('colID').onclick = $('colAR').onclick =
		$('colDA').onclick = $('colLI').onclick = function () {
			this.sens = (typeof(this.sens) != 'string' || this.sens == 'ASC') ? 'DESC' : 'ASC';
			
			var aj = new Ajax('GET');
			aj.onError = onHistoryError;
			aj.onComplete = onHistoryComplete;
			aj.request('history.xml.php', {tri: this.rel, sens:this.sens, field: $FIELD, search: $SEARCH});			
			return false;
		}
	}
	
	function navigate() {
		var query = getQueryParams(this.search.substring(1));
		var aj = new Ajax('GET');
		aj.onError = onHistoryError;
		aj.onComplete = onHistoryComplete
		aj.request('history.xml.php', query);			
		return false;
	}
		
	function addSpan(data, cssClass) {
		var span = $$('span');
		span.appendChild($$T(data));
		span.className = cssClass;
		return span;
	}
	
	function frenchDate(d) {		
		var a = d.split('-');
		return a[2]+' '+($MONTHS[parseInt(a[1], 10)])+' '+a[0];
	}
	
	/* GLOBAL VARS */
	
	$MONTHS = ['','Jan', 'Fev', 'Mars', 'Avr', 'Mai', 'Juin', 'Juil', 'Août', 'Sept', 'Oct', 'Nov', 'Dec'];	
	$TRI  = 'id';
	$SENS = '';
	$FIELD = '';
	$SEARCH = '';