/*
	Fietsenkampioen
	Javascripts
	20-08-2007 i-Aspect B.V.
	door: Rutger Laurman
*/

var header=Array();
var imagePath='images/';
var numberOfHeaders=3;

var W3CDOM = document.createElement && document.getElementsByTagName;

/* toon willekeurige header plaat */
	function showRandomHeader(){
		if(!W3CDOM) return;
		var target = document.getElementById('header');
		var randomNumber = parseInt(Math.random() * numberOfHeaders)+1;
		var newImage = "url('"+imagePath+"header"+randomNumber+".jpg')";
		target.style.backgroundImage=newImage;
	}
	addEventSimple(window,'load',showRandomHeader);


/* Resultaat weergave wisselen*/
	function initResultView(){
		if(!W3CDOM) return;
		if(!document.getElementById('resultaatweergave')) return;
		var target = document.getElementById('resultaatweergave');
		var buttons = target.getElementsByTagName('button');
		
		buttons[0].onclick = function(){ switchResultView(this,buttons[1]); }
		buttons[1].onclick = function(){ switchResultView(this,buttons[0]); }
	}
	addEventSimple(window,'load',initResultView);
	
	function switchResultView(obj,obj2){
		// is de geklikte view al actief?
		if(obj.className.indexOf('active')!=-1) return;
		
		// active weergave omwisselen
		obj.className  ='active';
		obj2.className ='';
		
		// ajax request
		if(obj.id=='btn_lijst')
			requestView('20');
		else
			requestView('10');
	}
	
	/* AJAX weergave lijst ophalen */
	function requestView(value){
		var target = document.getElementById('results');
		var opt = {
			method: 'post',
			onSuccess: function(t) {
				target.innerHTML = t.responseText;
				initOccasionList(); // events aan lijst hangen
			},
			on404: function(t) {
			  alert('Error 404: location "' + t.statusText + '" was not found.');
			},
			onFailure: function(t) {
			  alert('Error ' + t.status + ' -- ' + t.statusText);
			}
		}
		target.innerHTML = '<ul class="occasionlist small"><li class="noresults loading"><img src="/images/loading.gif" alt="" /><h4>Een moment geduld...</h4><p>De fietsen worden opgehaald.</p></li></ul>';
		var ajax_url = '/occasions/lijst/'+value;
		new Ajax.Request(ajax_url, opt);
	}
	
	function requestPages(value){
		// waarde van link omschrijven naar ajax link
		value = value.replace(/occasions/,'occasions/lijst');
		var target = document.getElementById('results');
		var opt = {
			method: 'post',
			onSuccess: function(t) {
				target.innerHTML = t.responseText;
				initOccasionList(); // events aan lijst hangen				
			},
			on404: function(t) {
			  alert('Error 404: location "' + t.statusText + '" was not found.');
			},
			onFailure: function(t) {
			  alert('Error ' + t.status + ' -- ' + t.statusText);
			}
		}
		target.innerHTML = '<ul class="occasionlist small"><li class="noresults loading"><img src="/images/loading.gif" alt="" /><h4>Een moment geduld...</h4><p>De fietsen worden opgehaald.</p></li></ul>';
		var ajax_url = '/occasions/lijst/'+value;
		new Ajax.Request(ajax_url, opt);
	}	


/* zoek blok check input */	
	function initSearchBlok(){
		if(!W3CDOM) return;
		if(!document.getElementById('zoekblok')) return;

		var zoekveld = document.getElementById('searchfield');
		if(zoekveld.value==''){
			zoekveld.value='Kleur, model, jaar etc.';
			zoekveld.className='lighttext';
		} 
		if(zoekveld.value!='Kleur, model, jaar etc.')
			zoekveld.className='';
		if(zoekveld.value=='Kleur, model, jaar etc.')
			zoekveld.className='lighttext';
		zoekveld.onclick=function(){
			if(zoekveld.value=='Kleur, model, jaar etc.'){
				zoekveld.className='';			
				zoekveld.value='';
			}
		}
		zoekveld.onchange=function(){
			zoekveld.className='';			
		}
	}
	addEventSimple(window,'load',initSearchBlok);

/* controleer input van zoekblok */
	function checkSearchInput(obj){
		// open zoekveld leegmaken indien nodig		
		var zoekveld2 = document.getElementById('searchfield');
		if(zoekveld2.value=='Kleur, model, jaar etc.') 
			zoekveld2.value='';
		var formulier = obj.parentNode;
   	var els = formulier.elements;
		var emptyField = true;
   	for (var i=0;i<els.length;i++) {
			if(els[i].value!='' && els[i].className!='zoekoccasion')
				emptyField=false;
		}
		if(emptyField){
			alert('Geef minimaal 1 zoekopdracht op');
			zoekveld2.value='Kleur, model, jaar etc.';
			zoekveld2.className='lighttext';
			return false;
		} else
			return true;			
	}


/* init klikbare occasion list items  */
	function initOccasionList(){
		if(!W3CDOM) return;
		if(!document.getElementById('results')) return;
		var list = document.getElementById('results');
		var listitems = list.getElementsByTagName('li');
		for(var i=0;i<listitems.length;i++){
			if(listitems[i].className=='noresults') continue;
			listitems[i].onmouseover=function(){
				this.className = 'hover';
			}
			listitems[i].onmouseout=function(){
				this.className = '';
			}
			listitems[i].onclick=function(){
				window.open(this.getElementsByTagName('a')[0].href,'occasionnewwindow');
				return false;				
			}
			listitems[i].getElementsByTagName('a')[0].target='';
		}
	}
	addEventSimple(window,'load',initOccasionList);


/* init klikbare vacatures list items  */
	function initVacatureList(){
		if(!W3CDOM) return;
		if(!document.getElementById('vacatureList')) return;
		var list = document.getElementById('vacatureList');
		var listitems = list.getElementsByTagName('li');
		for(var i=0;i<listitems.length;i++){
			if(listitems[i].className=='noresults') continue;
			listitems[i].onmouseover=function(){
				this.className = 'hover';
			}
			listitems[i].onmouseout=function(){
				this.className = '';
			}
			listitems[i].onclick=function(){
				window.open(this.getElementsByTagName('a')[0].href,'newwindow2');
				return false;
			}
			listitems[i].getElementsByTagName('a')[0].target='';
		}
	}
	addEventSimple(window,'load',initVacatureList);

/* init klikbare vacatures list items  */
	function initWinkelsList(){
		if(!W3CDOM) return;
		if(!document.getElementById('winkelsList')) return;
		var list = document.getElementById('winkelsList');
		var listitems = list.getElementsByTagName('li');
		for(var i=0;i<listitems.length;i++){
			if(listitems[i].className=='nolink') continue;
			listitems[i].onmouseover=function(){
				this.className = 'hover';
			}
			listitems[i].onmouseout=function(){
				this.className = '';
			}
			listitems[i].onclick=function(){
				window.open(this.getElementsByTagName('a')[0].href,'newwindow');
				return false;
			}
			listitems[i].getElementsByTagName('a')[0].target='';
		}
	}
	addEventSimple(window,'load',initWinkelsList);

/*******************************************
   zet actieve menu item
*/
   function setActiveItem(){
      var menu = document.getElementById('menu');
      var list = menu.getElementsByTagName('ul')[0];
      if(list){
         var items = list.getElementsByTagName('li');
         for(p=0;p<items.length;p++)
            if(items[p].firstChild == self.location.href)
               items[p].firstChild.className+= ' active';   
      }
   }
   addEventSimple(window,'load',setActiveItem);


/*************************************
	ajax: get cities for province
*/
	var ajaxProvince;
	var ajaxCity;
	function initProvinceChange(){
		if(!W3CDOM) return;
		if(!document.getElementById('s-Province')) return;
		if(!document.getElementById('s-City')) return;
		ajaxProvince=document.getElementById('s-Province');
		ajaxCity=document.getElementById('s-City');
		document.getElementById('s-Province').onchange=function(){
			getCities(this.value);
		}
		
	}
	addEventSimple(window,'load',initProvinceChange);
	
	function getCities(id){
		// velden inactief maken
		ajaxProvince.disabled=true;
		ajaxCity.disabled=true;
	
		var target = document.getElementById('citiesTarget');
		var opt = {
			method: 'post',
			postBody: 'id='+id,
			onSuccess: function(t) {
				ajaxProvince.disabled=false;
				ajaxCity.disabled=false;	
				target.innerHTML = t.responseText;
			},
			on404: function(t) {
			  alert('Error 404: location "' + t.statusText + '" was not found.');
			},
			onFailure: function(t) {
			  alert('Error ' + t.status + ' -- ' + t.statusText);
			}
		}
		target.innerHTML = '<select disabled="disabled"><option>Een ogenblik geduld...</option></select>';
		var ajax_url = '/winkels/getcities';
		new Ajax.Request(ajax_url, opt);
	}

