/*
   Castingcheck
   Javascripts
   30-07-2007 i-Aspect B.V.
   door: Rutger Laurman

*/

 /* algemene functies */
 function goToUrl(url){
 	document.location=url;
 }


/************************************************************************
   frontpagina selectboxen
*****************************/

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

// specialisme en bureau aanmaken
var specialisme="";
var bureau="";
var allSelects=new Array;

// initialiseer selectboxen
function initSelectBoxes(){
   if (!W3CDOM) return;
   var selectboxFound=false;
   var divs = document.getElementsByTagName('div');
   for(i=0;i<divs.length;i++){
      if(divs[i].className != 'selectbox') continue;
      setSelectBoxEvents(divs[i]);
      selectboxFound=true;
   }
   if(selectboxFound)
      addEventSimple(document,'click',checkClickEvent);
}

addEventSimple(window,'load',initSelectBoxes);

   // Zet alle select box acties
   function setSelectBoxEvents(obj){
      var title = obj.getElementsByTagName('h3')[0];
      var list = obj.getElementsByTagName('ul')[0];

      // lijst aan array toevoegen
      allSelects.push(list);

      // geklikt op een lijst
      title.onmousedown=function(){
//         deselect();
         writeMelding('');
         switchDisplay(list);
      }

      // items binnen de lijst doorlopen en events koppelen
      var listitems = list.getElementsByTagName('li');
      for(j=0;j<listitems.length;j++){
         listitems[j].onmouseup=function(){
//            deselect();
            writeMelding('');
            title.innerHTML=this.firstChild.innerHTML;
            switchDisplay(list);
            setVar(list.title,this.title);
            setSelectedItem(listitems,this);
         }

			// als item na verzenden is geselecteerd
			if(listitems[j].className=='selected'){
            title.innerHTML=listitems[j].firstChild.innerHTML;
            setVar(list.title,listitems[j].title);
            setSelectedItem(listitems,listitems[j]);
			}
         // a-tag leeg maken
         listitems[j].firstChild.href="javascript:void(0)";

         // niet reageren op a-tag - voor de zekerheid
         listitems[j].firstChild.onclick=function(){
            return false;
         }
      }
   }

   // variabele zetten
   function setVar(cat,value){
      eval(cat+"=value");
   }

   // controleer op minimaal 1 selectie of ga naar url
   function submitUrl(){
		var zoekurl='';
      if(bureau=='' && specialisme==''){
         writeMelding('<strong>Let op:</strong> Kies minimaal 1 zoek criteria om verder te gaan.');
      } else {
			zoekurl='/bureau';
			if(bureau) zoekurl+='/'+bureau;
			if(specialisme) zoekurl+='/'+specialisme;
			document.location=zoekurl;
      }
   }

   // toon foutmelding
   function writeMelding(value){
      var target = document.getElementById('errorMelding');
      target.innerHTML=value;
   }

   // zet actieve item in de lijst
   function setSelectedItem(listitems,obj){
      for(k=0;k<listitems.length;k++){
         if(listitems[k] === obj)
            obj.firstChild.className='active';
         else
            listitems[k].firstChild.className='';
      }
   }

   // klap lijst open of dicht
   function switchDisplay(obj){
      for(n=0;n<allSelects.length;n++){
         if(allSelects[n]==obj){ // kijk of de huidige word aangeklikt
            if(obj.style.display=='' || obj.style.display=='none')
               obj.style.display='block';
            else
               obj.style.display='none';
         } else { // de andere dichtklappen
            allSelects[n].style.display='none';
         }
      }
   }

   // kijk waar geklikt is
   function checkClickEvent(e){
      if (!e) var e = window.event;
      var tg = (window.event) ? e.srcElement : e.target;

      if(tg.nodeName=="HTML" || tg.nodeName=="BODY"){
         closeBoxes();
      } else {
         while(tg.nodeName != 'DIV')
            tg = tg.parentNode;
         if(tg.className!='selectbox')
            closeBoxes();
      }
   }
   // alle select boxen sluiten
   function closeBoxes(){
      for(n=0;n<allSelects.length;n++){
         allSelects[n].style.display='none';
      }
   }

   // deselecteer de geselecteerde text
   function deselect () {
     if (document.selection)
       document.selection.empty();
     else if (window.getSelection)
       window.getSelection().removeAllRanges();
   }

/*****************************
   einde frontpagina selectboxen
************************************************************************/




/********************
   zoek resultaten
********************/
   function initTableRows(){
      if (!W3CDOM) return;
      var tables = document.getElementsByTagName('table');
      for(var j=0;j<tables.length;j++){
         if(tables[j].className.indexOf('results')==-1) continue;
         setTableRows(tables[j]);
      }
   }
   addEventSimple(window,'load',initTableRows);

/* zet offset kleuren voor tabellen */
   function setTableRows(obj){
      var tbody = obj.getElementsByTagName('tbody')[0];
      var rows = tbody.getElementsByTagName('tr');
      var count=0;
      for(i=0;i<rows.length;i++){
			if(rows[i].className.indexOf('noaction')!=-1) continue;
         if(++count % 2 != 0) rows[i].className+=' offset';
			rows[i].onclick=function(){
				link = this.getElementsByTagName('a')[0];
				document.location=link.href;
			}

			firstlink = rows[i].getElementsByTagName('a')[0];
			firstlink.onclick=function(){
				return false;
			}
			rows[i].onmouseover=function(){
				this.className+=' rollon';
			}
			rows[i].onmouseout=function(){
				this.className = this.className.replace(/rollon/,'');
			}

      }
   }


/* tooltips bij aantal categorieen */
/*   function initToolTips(){
      var links = document.getElementsByTagName('a');
      for(i=0;i<links.length;i++){
         if(links[i].getAttribute('rel') != 'showToolTip') continue;
         deId = links[i].id.substring(5,links[i].id.length);
         new Tooltip(links[i],deId); //tooltip aanmaken
			getCategoriesForId(deId); // inhoud in tooltip zetten
      }
   }
   addEventSimple(window,'load',initToolTips);
  */

// AJAX - categorieeen ophalen voor bureau
   function getCategoriesForId(id){
      response_element = document.getElementById('tooltip'+id);
      var opt = {
          onSuccess: function(t) {
              response_element.innerHTML= t.responseText;
          },
          on404: function(t) {
              alert('Error 404: location "' + t.statusText + '" was not found.');
          },
          onFailure: function(t) {
              alert('Error ' + t.status + ' -- ' + t.statusText);
          }
      }
      response_element.innerHTML = "<h3>Ophalen van categorie&euml;n</h3><p>Een moment geduld...</p>";
      var request = id;
      new Ajax.Request('/bureau/getcategories/'+request, opt);
   }




	/* AJAX - geef lijst met agencys terug */
	function listAgencys() {
      var participationfee = document.getElementById('s-participationfee').value;
      var certified = document.getElementById('s-certified').value;
      var province_ID = document.getElementById('s-province_ID').value;
      var agency_type_ID = document.getElementById('s-agency_type_ID').value;
      var specialization_ID = document.getElementById('s-specialization_ID').value;

      response_element = document.getElementById('agency_result');
      var opt = {
			onSuccess: function(t) {
				response_element.innerHTML = t.responseText;
				document.getElementById('nr_agencys_display').innerHTML = document.getElementById('nr_agencys_found').innerHTML;
				document.getElementById('loadingImg').style.display='none';
				initTableRows();
				initToolTips();
			},
			on404: function(t) {
				alert('Error 404: location "' + t.statusText + '" was not found.');
			},
			onFailure: function(t) {
				alert('Error ' + t.status + ' -- ' + t.statusText);
			}
      }
		document.getElementById('loadingImg').style.display='block';
//		var tableheader='<table class="results"><thead><tr><th>Bedrijf</th><th>Type bureau</th><th>Categorie&euml;n</th><th>Inschrijving</th><th>Plaats</th><th>Keurmerk</th></tr></thead><tbody><tr><td colspan="6">Een moment geduld...</td></tr></tbody></table>';

  //    response_element.innerHTML = tableheader;

  		var request;
		if(agency_type_ID) request+='&s-agency_type_ID='+agency_type_ID;
		if(specialization_ID) request+='&s-specialization_ID='+specialization_ID;

      request += '&s-province_ID='+province_ID+'&s-participationfee='+participationfee+'&s-certified='+certified;
      new Ajax.Request('/bureau/ajaxlistall/'+request, opt);
      return false;
   }




/***************************************************
   fotogallerie op specificatie pagina
*******************/

	var fotogallerie;
	var fotoholder;
	var slideBezig=false;
	var aantalAfbeeldingen=0;
	var offSetBreedte=0;

	function initPhotoGallery(){
		if(!W3CDOM) return;
		if(!document.getElementById('fotogallerie')) return;

		// zoek fotogallerie element
		fotogallerie = document.getElementById('fotogallerie');
		fotoholder = fotogallerie.getElementsByTagName('div')[0];
		fotoholder.style.left='0px';

		// tel fotos, maak buttons en zet acties
		var afbeeldingen = fotogallerie.getElementsByTagName('img');
		if(afbeeldingen.length>3){
			var btn_vorige = createButton('vorige');
			var btn_volgende = createButton('volgende');
			btn_vorige.onclick=function(){
				if(!slideBezig) actionPreviousButton();
			}
			btn_volgende.onclick=function(){
				if(!slideBezig) actionNextButton();
			}
			fotogallerie.appendChild(btn_vorige);
			fotogallerie.appendChild(btn_volgende);
		}

		/*
			Breedte berekenen die maximaal gescrollt mag worden
			- aantal afbeeldingen maal de afbeelding breedte. vervolgens 3 afbeeldingen terug, want de
			laatste slide moet gevuld blijven. dit als negatieve waarde zetten omdat het een negatieve scroll is.
		*/
		aantalAfbeeldingen=afbeeldingen.length;
		offSetBreedte = (aantalAfbeeldingen*112)-336;
		offSetBreedte = offSetBreedte*-1;
	}
	addEventSimple(window,'load',initPhotoGallery);

   function callbackOnFinish(){
      slideBezig=false;
   }

   function actionPreviousButton(){
      positieX = fotoholder.style.left+"";
      positieX = parseInt(positieX.substring(0,positieX.length-2));
      if(positieX < -1){
         slideBezig=true;
         new Effect.Move(fotoholder, { x: 112, y: 0, transition: Effect.Transitions.sinoidal, duration:0.3, afterFinish:callbackOnFinish });
      }
   }
   function actionNextButton(){
      var posX = fotoholder.style.left+"";
      posX = parseInt(posX.substring(0,posX.length-2));
      if(posX > offSetBreedte){
         slideBezig=true;
         new Effect.Move(fotoholder, { x: -112, y: 0, transition: Effect.Transitions.sinoidal, duration:0.3, afterFinish:callbackOnFinish });
      }
   }

   function createButton(value){
      var button = document.createElement('button');
      button.className=value;
      button.appendChild(document.createTextNode(value));
      return button;
   }


/* click functie voor foto */
function showPopupPicture(obj){
	newwindow=window.open('','foto','height=400,width=500');
	if(window.focus) {newwindow.focus()};
	var tmp = newwindow.document;

	tmp.write('<html><head><title>Foto uit de fotogallerij</title>');
	tmp.write('<link rel="stylesheet" href="/css/popup.css" media="screen" type="text/css" />');
	tmp.write('<script type="text/javascript">function fitPic() { if (window.innerWidth){ iWidth = window.innerWidth; iHeight = window.innerHeight; }else{ iWidth = document.body.clientWidth; iHeight =document.body.clientHeight; } iWidth = document.images[0].width - iWidth; iHeight = document.images[0].height - iHeight; window.resizeBy(iWidth+40, iHeight+50); };</script>');
	tmp.write('</head><body id="popup" onload="fitPic()">');
	tmp.write('<img src="'+obj.href+'" align="middle" alt="Foto" /><br />');
	tmp.write('<p><a href="javascript:self.close()">sluit</a> dit venster.</p>');
	tmp.write('</body></html>');
	tmp.close();
//	tmp.focus();
//	return false;
}

function popitup2() {
}



/**************************************************************
   Beoordeling sterren
*****************/

	function initStarSelection(){
		if(!W3CDOM) return;
		var divs = document.getElementsByTagName('div');
		for(var i=0;i<divs.length;i++){
			if(divs[i].className != 'starselector') continue;
			setStarSelectorEvents(divs[i]);
		}
	}
	addEventSimple(window,'load',initStarSelection);

	// events op sterren hangen
	function setStarSelectorEvents(obj){
		var target = obj.id;
		var links = obj.getElementsByTagName('a');
		for(var u=0;u<links.length;u++){
			links[u].onmouseover=function(){
				showSelectedStars(target,this,links);
			}
			links[u].onmouseout=function(){
				showNoStars(links);
			}
			links[u].onclick=function(){
				setSelectedStars(target,parseInt(this.title),links);
				return false;
			}
		}
	}

	// sterren binnen verzameling doorlopen en actief zetten
	function showSelectedStars(target,obj,collection){
		var waarde = parseInt(obj.title);
		for(var t=0;t<collection.length;t++){
			if((t+1) <= waarde)
				collection[t].className+=' active';
			else if(collection[t].className.indexOf('active')!=-1)
				collection[t].className = collection[t].className.replace(/active/,'');
		}
	}
	// geen actieve sterren tonen
	function showNoStars(collection){
		for(var r=0;r<collection.length;r++){
			if(collection[r].className.indexOf('active')!=-1)
				collection[r].className = collection[r].className.replace(/active/,'');
		}
	}
	// sterren selecteren en input waarde zetten
	function setSelectedStars(target,waarde,collection){
		for(var t=0;t<collection.length;t++){
			if((t+1) <= waarde)
				collection[t].className='selected';
			else if(collection[t].className.indexOf('selected')!=-1)
				collection[t].className = collection[t].className.replace(/selected/,'');
		}

		eval('doelwit = document.forms[0].'+target);
		doelwit.value=waarde;
//		alert(doelwit.parentNode.innerHTML);
		if(doelwit.errorMessage)
			doelwit.errorMessage.parentNode.removeChild(doelwit.errorMessage);
//	alert(doelwit.errorMessage);
//		doelwit.errorMessage.parentNode.removeChild(doelwit.errorMessage);

//		eval('document.forms[0].'+target+'.value='+waarde);
//		eval('document.forms[0].'+target+'.removeError');
	}



/*****************************************
	review schrijven
*/

//	inschrijf datum wisselen

var subscriptionHolder;
var registeredObj;
function switchSubscriptionDate(){

	var maand = document.getElementById('d_month');
	var jaar = document.getElementById('d_year');

	if(registeredObj.value=='1'){
		subscriptionHolder.style.display = 'block';
		maand.value='';
		jaar.value='';
	} else {
		subscriptionHolder.style.display = 'none';
		maand.value='1';
		jaar.value='2007';
	}

}

function initSubscriptionHolder(){
	if(!document.getElementById('subscriptionDateHolder')) return;
	subscriptionHolder = document.getElementById('subscriptionDateHolder');
	registeredObj = document.getElementById('registered');
	addEventSimple(registeredObj,'change',switchSubscriptionDate);
}

addEventSimple(window,'load',initSubscriptionHolder);


/* debug uitschrijven */
function writeDebug(value){
   document.getElementById('debug').innerHTML="- "+value+"<br />"+document.getElementById('debug').innerHTML;
}



/*******************************************
   zet actieve menu item in content paginas
*/
   function setActiveItem(){
		if(!document.getElementById('content')) return;
      var content = document.getElementById('content');
      var allLists = content.getElementsByTagName('ul');
      if(allLists){

         for(x=0;x<allLists.length;x++){

            var items = allLists[x].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);




/* simple event adding - by quirksmode.org */
   function addEventSimple(obj,evt,fn) {
      if (obj.addEventListener)
         obj.addEventListener(evt,fn,false);
      else if (obj.attachEvent)
         obj.attachEvent('on'+evt,fn);
   }



