window.addEvent('domready', function() {
   overheen = $('favorieten');
   refreshFavorieten();
   route_init();
   DragDrop();
   subMenuHover(); /* submenu */
   marquee_remove();
   footerMenuRolloverIE6();
   initExternalLinks();
});


// Klaas: onderstaande pas als pagina, inclusief images, volledig geladen is
window.addEvent('load', function() {
   slideshows_init();
});


knopverder = new Array;
carousselScrollDistance = 221;
t1 = false;

function slideshows_init() {
   carousselCurrScroll = new Array;
   images = new Array;
   knopverder = $$('.pijlverder');
   knopterug = $$('.pijlterug');
   caroussels = $$('.caroussel');
   curImg = new Array;
   caption = new Array;

   for (n=0;n<caroussels.length;n++) {
      nn = 'caroussel' + n;
      images[n] = $ES('img', nn).length;

      if (knopverder[n]) {
         carousselCurrScroll[n] = 0;
         knopverder[n].nummer = n;
         knopverder[n].onclick = function() {spinCarousselForward(this.nummer);}
      }
      caption[n] = new Array;
      for (m=0;m<images[n];m++) {
         caption[n][m] = $ES('p', 'slideshow' + n + 'nav')[m];
      }
      $(caption[n][0]).style.display = 'block';
   }
}

function showBalloon(i) {
   $('descr'+i).setStyle("display","block");
}

function hideBalloon(i) {
   $('descr'+i).setStyle("display","none");
}



var identifier = null;
function dragfunc(item) {
   
   item.addEvent('mousedown', function(e) {
		var vac = item.getParent();
		if (vac.hasClass('eFocus') && vac.hasClass('groep') == false) {
			current_bedrijf = 'efocus';
		} else if (vac.hasClass('Diago')) {
			current_bedrijf = 'diago';
		} else if (vac.hasClass('Medicore')) {
			current_bedrijf = 'medicore';
		} else if (vac.hasClass('Cure4Finance')) {
			current_bedrijf = 'c4f';
		} else if (vac.hasClass('Nines')) {
			current_bedrijf = 'nines';
		} else if (vac.hasClass('Krem')) {
			current_bedrijf = 'krem';
		} else if (vac.hasClass('Qnote')) {
			current_bedrijf = 'qnote';
		} else {
			current_bedrijf = 'groep';
		}
		if ($$('#fav_content .vavvac').length > 0) current_bedrijf = 'groep';
		
         var pItem = item.parentNode;

         favoOver();
         e = new Event(e).stop();
         var clone = $E('div.vacatureteaser', pItem).clone()
            .setStyles(pItem.getCoordinates()) // this returns an object with left/top/bottom/right, so its perfect
            .setStyles({'opacity': 0.6, 'position': 'absolute', 'background-color': '#F5F4F4', 'margin-left': '2px', 'margin-top': '2px', 'z-index': '500'})
            .addEvent('emptydrop', function() {
               favoOut();
               this.remove();
               drop.removeEvents();
				
				if ($$('#fav_content .vavvac').length == 1) {
					var vac = $$('#fav_content .vavvac')[0];
					if (vac.hasClass('eFocus') && vac.hasClass('groep') == false) {
						current_bedrijf = 'efocus';
					} else if (vac.hasClass('Diago')) {
						current_bedrijf = 'diago';
					} else if (vac.hasClass('Medicore')) {
						current_bedrijf = 'medicore';
					} else if (vac.hasClass('Cure4Finance')) {
						current_bedrijf = 'c4f';
					} else if (vac.hasClass('Nines')) {
						current_bedrijf = 'nines';
					} else if (vac.hasClass('Krem')) {
						current_bedrijf = 'krem';
					} else if (vac.hasClass('Qnote')) {
						current_bedrijf = 'qnote';
					} else {
						current_bedrijf = 'groep';
					}
				} else {
					current_bedrijf = 'groep';
				}
				$(overheen).className = 'favorieten_' + current_bedrijf;
				
            }).inject(document.body);

         drop.addEvents({
            'drop': function() {
               drop.removeEvents();
               clone.remove();
               $('favtekst').style.display = 'none';
               if($E('h4', pItem)) {
              	 $E('h4', pItem).clone().inject($('fav_content'));
              	}
               favnav_init();
               //$(pItem).remove(); //dit verwijdert het originele item van de pagina
               favoOut();
               var id = $(pItem).id.split('_');
               id = id[1];
               addVacatureToCookie(id);
            },
            'over': function() {
			   favoOverDrop();
            },
            'leave': function() {
               favoOver();
            }
         });

      var drag = clone.makeDraggable({
         droppables: [drop]
      }); // this returns the dragged element

      drag.start(e); // start the event manual
   });
}

function DragDrop() {
   // Rogier-van-Doggenaar: Even in een functie gezet zodat dit na een
   // ajaxrequest opnieuw gedaan kan worden...
   
	current_bedrijf = 'groep';
	if($('favorieten')) {
		$('favorieten').className = 'favorieten_' + current_bedrijf;
	}
   
   //hieronder wordt de mouseover toegevoegd op de move icons
   $$('div.vac_container img.verplaatsen').each(function(item) {
      item.addEvents({
         'mouseenter': function() {
            favoOver();
         },
         'mouseleave': function() {
            favoOut();
         }
      });
   });
   $$('div.drag_container a.drag').each(function(item) {
      item.addEvents({
         'mouseenter': function() {
            favoOver();
         },
         'mouseleave': function() {
            favoOut();
         }
      });
   });

   // hieronder de drag&drop functionaliteit voor de homepage
   drop = $('favorieten');

   identifier = 'div.vac_container img.verplaatsen';
   $$('div.vac_container img.verplaatsen').each(dragfunc);
   identifier = 'div.drag_container a.drag';
   $$('div.drag_container a.drag').each(dragfunc);

}

function favoOver () {
   $(overheen).className = 'favorieten_' + current_bedrijf + '_hover';
}
function favoOut () {
   $(overheen).className = 'favorieten_' + current_bedrijf;
}
function favoOverDrop () {
   $(overheen).className = 'favorieten_' + current_bedrijf + '_active';
}



function route_init() {
   var openRoute;
   if (document.getElementById("routemenu")) {
      var routes = document.getElementById("routemenu").getElementsByTagName("li");
      for (var i = 0; i < routes.length; i++) {

         /* click */
         routes[i].onclick = function() {
            if (openRoute) {
               var openRouteDiv = openRoute.getElementsByTagName('div');
               if(openRouteDiv.length > 0) {
                  openRouteDiv[0].style.display = 'none';
                  openRoute.className = '';
               }
            }

            var thisRouteDiv = this.getElementsByTagName('div');
            if(thisRouteDiv.length > 0) {
               thisRouteDiv[0].style.display = 'block';
               this.className = 'selected';
               openRoute = this;
            }
         }
      }
   }
}

// schuift de subnavigatie dicht met mootools
function sluitsubnav(id) {
   //sn[id].removeEvent('mouseleave');
   sn[id].removeEvents();
   $E('ul', sn[id]).effect('height',{
      duration: 200,
      onComplete: function() {
         sn[id].id2 = id;
         /*sn[id].addEvent('mouseleave', function() {
            t1 = setTimeout('sluitsubnav(' + this.id2 + ');', 200);
         });*/
         sn[id].addEvents({
            'mouseenter': function() {
               opensubnav(this.id2);
            },
            'mouseleave': function() {
               t1 = setTimeout('sluitsubnav(' + this.id2 + ');', 200);
            }
         });

         $E('ul', sn[id]).style.visibility = 'hidden';
         $E('ul', sn[id]).style.height = h[id] + 'px';
         sn[id].style.backgroundImage = '';
      ;},
      transition: Fx.Transitions.Cubic.easeIn
   }).start(0);
}

// caroussel vooruit
function spinCarousselForward(v) {
//   if((carousselCurrScroll[v] + carousselScrollDistance) < $('caroussel' + v).scrollWidth){
//      if((carousselCurrScroll[v] + carousselScrollDistance) < $('slideshow' + v).scrollWidth) {
         carousselCurrScroll[v] += carousselScrollDistance;
         scrollExample = new Fx.Scroll($('slideshow' + v), {
            wait: false,
            duration: 400,
            transition: Fx.Transitions.Cubic.easeOut
         });
         scrollExample.scrollTo(carousselCurrScroll[v], 0);
         curImg[v] = (carousselCurrScroll[v] / carousselScrollDistance + 1);
         for (i=0;i<images[v];i++) {
            $(caption[v][i]).style.display = 'none';
         }
         $(caption[v][curImg[v]-1]).style.display = 'block';
         if (curImg[v] == images[v]) {
            $('pijlverder' + v).src="/siteimg/slideshowforward_uit.gif";
            $('pijlverder' + v).style.cursor="default";
            knopverder[v].onclick = function() {}
         } else {
            $('pijlverder' + v).src="/siteimg/slideshowforward.gif";
            $('pijlverder' + v).style.cursor="pointer";
            knopverder[v].onclick = function() {spinCarousselForward(v);}
         }
         $('pijlterug' + v).src="/siteimg/slideshowback.gif";
         $('pijlterug' + v).style.cursor="pointer";
         knopterug[v].onclick = function() {spinCarousselBack(v);}
//      }
//   }
}


// caroussel terug
function spinCarousselBack(t) {
   //if((carousselCurrScroll[t] - carousselScrollDistance)>=0) {
      carousselCurrScroll[t] -= carousselScrollDistance;
      scrollExample = new Fx.Scroll($('slideshow' + t), {
         wait: false,
         duration: 400,
         transition: Fx.Transitions.Cubic.easeOut
      });
      scrollExample.scrollTo(carousselCurrScroll[t], 0);
      curImg[t] = (carousselCurrScroll[t] / carousselScrollDistance + 1);
      for (i=0;i<images[t];i++) {
            $(caption[t][i]).style.display = 'none';
         }
         $(caption[t][curImg[t]-1]).style.display = 'block';
      if (curImg[t] == 1) {
         $('pijlterug' + t).src="/siteimg/slideshowback_uit.gif";
         $('pijlterug' + t).style.cursor="default";
         knopterug[t].onclick = function() {}
      } else {
         $('pijlterug' + t).src="/siteimg/slideshowback.gif";
         $('pijlterug' + t).style.cursor="pointer";
         knopterug[t].onclick = function() {spinCarousselBack(t);}
      }
      $('pijlverder' + t).src="/siteimg/slideshowforward.gif";
      $('pijlverder' + t).style.cursor="pointer";
      knopverder[t].onclick = function() {spinCarousselForward(t);}
   //}
}


// ajaxrequests met Cookie functies om favorieten op te slaan
function addVacatureToCookie(id) {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      if(!resultaat.gelukt) {
         alert(resultaat.info);
		 current_bedrijf = 'groep';
		$('favorieten').className = 'favorieten_' + current_bedrijf;
      }
      refreshFavorieten();
   }}).send({'actie': 'BewaarVacature', 'id': id});
}

// --- Medewerkers aan het woord ---
function verversMedewerkerTabjes() {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      $('collegatabs').innerHTML = resultaat.HTML;
   }}).send({'actie': 'haalMedewerkerBedrijfstabjes', 'bedrijfid': bedrijfid});
}

function volgendeMedewerker() {
   if(huidigeMedewerker+1>lengteArray){
      huidigeMedewerker = 0;
   }else{
      huidigeMedewerker +=1;
   }
   
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      $('ajaxblok').innerHTML = resultaat.HTML;
      //verversMedewerkerTabjes();
   }}).send({'actie': 'haalMedewerkerAanHetWoord', 'bedrijfid': bedrijfid, 'medewerkerIndex': huidigeMedewerker});
}

function vorigeMedewerker() {
   if(huidigeMedewerker-1<0){
      huidigeMedewerker = lengteArray;
   }else{
      huidigeMedewerker -=1;
   }
   
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      $('ajaxblok').innerHTML = resultaat.HTML;
      //verversMedewerkerTabjes();
   }}).send({'actie': 'haalMedewerkerAanHetWoord', 'bedrijfid': bedrijfid, 'medewerkerIndex': huidigeMedewerker});
   
}

// ----------------------------------


function delVacatureFromCookie(id) {

	var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
		if(!resultaat.gelukt) {
			alert(resultaat.info);
		}
		refreshFavorieten();
		
	}}).send({'actie': 'VerwijderBewaardeVacature', 'id': id});
}


function refreshFavorieten() {
   // haal het nieuwe lijstje met favorieten op
   if($defined($('favorieten'))) {
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         if(resultaat.gelukt) {
            // Nu de opgehaalde favorieten aan de html toevoegen
            //
            $('favorieten').innerHTML = resultaat.favorieten;
			
			if ($$('#fav_content .vavvac').length == 1) {
				var vac = $$('#fav_content .vavvac')[0];
				if (vac.hasClass('eFocus') && vac.hasClass('groep') == false) {
					current_bedrijf = 'efocus';
				} else if (vac.hasClass('Diago')) {
					current_bedrijf = 'diago';
				} else if (vac.hasClass('Medicore')) {
					current_bedrijf = 'medicore';
				} else if (vac.hasClass('Cure4Finance')) {
					current_bedrijf = 'c4f';
				} else if (vac.hasClass('Nines')) {
					current_bedrijf = 'nines';
				} else if (vac.hasClass('Krem')) {
					current_bedrijf = 'krem';
				} else if (vac.hasClass('Qnote')) {
					current_bedrijf = 'qnote';
				} else {
					current_bedrijf = 'groep';
				}
			} else {
				current_bedrijf = 'groep';
			}
			$(overheen).className = 'favorieten_' + current_bedrijf;
			
            favnav_init();
         }else {
            alert(resultaat.info);
         }
      }}).send({'actie': 'ListBewaardeVacatures'});
   }
}


function favnav_init() {
   favs = new Array;
   favs = $$('#fav_content div.vavvac');
   if (favs.length == 0) { $('favtekst').style.display = 'block'; }
   favsheight = 0;
   fav_scrolltarget = 0;
   $$('div#fav_content div.deletebutton').each(function(item) {
      item.addEvent('click', function() {
         var id = item.id.split('_');
         id = id[1];
         verwijder_favoriet(id);
      });
   });
   if (favs[0]) { favs[0].style.marginTop = '0px'; }
   fav_curscroll = 0;
   for(n=0;n<favs.length;n++) {
      var size = favs[n].getSize().size;
      favsheight = favsheight + size.y;
   }
   $('favscrollup').className = 'fav_scrollup_disabled';
   $('favscrollup').removeEvents();
   $('favscrolldown').className = 'fav_scrolldown_disabled';
   $('favscrolldown').removeEvents();

   if (favsheight>43) {
      fav_scrolldown_enable();
   }

}


function fav_scrollup_enable() {
   $('favscrollup').className = 'fav_scrollup_enabled';
   $('favscrollup').addEvents({
      'click': function() {
         fav_scrollup();
      },
      'mouseenter': function() {
         $('favscrollup').style.backgroundImage = 'url(/siteimg/favorieten_scrollup_hover.gif)';
      },
      'mouseleave': function() {
         $('favscrollup').style.backgroundImage = 'url(/siteimg/favorieten_scrollup.gif)';
      }
   });
}


function fav_scrolldown_enable() {
   $('favscrolldown').className = 'fav_scrolldown_enabled';
   $('favscrolldown').addEvents({
      'mousedown': function() {
         fav_scrolldown();
      },
      'mouseenter': function() {
         $('favscrolldown').style.backgroundImage = 'url(/siteimg/favorieten_scrolldown_hover.gif)';
      },
      'mouseleave': function() {
         $('favscrolldown').style.backgroundImage = 'url(/siteimg/favorieten_scrolldown.gif)';
      }
   });
}


function fav_scrollup() {
   fav_scrolltarget += favs[fav_curscroll-1].offsetHeight + 2;
   favs[0].effect('margin-top',{
      duration: 250
   }).start(fav_scrolltarget);
   fav_curscroll --;
   if (fav_curscroll == favs.length - 4) { fav_scrolldown_enable(); }
   if (fav_curscroll == 0) {
      $('favscrollup').removeEvents();
      $('favscrollup').style.backgroundImage = '';
      $('favscrollup').className = 'fav_scrollup_disabled';
   }
}


function fav_scrolldown() {
   fav_scrolltarget -= favs[fav_curscroll].offsetHeight + 2;
   favs[0].effect('margin-top',{
      duration: 250
   }).start(fav_scrolltarget);
   fav_curscroll ++;
   if (fav_curscroll == 1) { fav_scrollup_enable(); }
   if (fav_curscroll>favs.length-4) {
      $('favscrolldown').removeEvents();
      $('favscrolldown').style.backgroundImage = '';
      $('favscrolldown').className = 'fav_scrolldown_disabled';
   }
}


function verwijder_favoriet(id) {
   //id.parentNode.remove();
   delVacatureFromCookie(id);
}


function openVideoFullScreen (flv) {
   TB_show('','/Filmpje?movie='+flv+'&TB_iframe=true&width=620&height=530','');
}

// submenu
function subMenuHover () {

   if (document.getElementById("navigatie")) {
      var sfEls = document.getElementById("navigatie").getElementsByTagName("li");
      for (var i=0; i < sfEls.length; i++) {

         sfEls[i].onmouseover=function() {

            this.className += " subnavactief";

         }

         sfEls[i].onmouseout=function() {
            if (this.className == "actief subnavactief") {
               this.className = "actief";
            } else {
               this.className = "";
            }
         }

      }
   }

}


function marquee_remove() {
	var elements = $$('a');
	elements.each(function(item) {
		item.addEvent('focus', function() {
			this.blur();
		});
	});
}

function haalLocatieOpties(id) {
	
	if(id!=0) {
		var bedrijf = document.getElementById(id).value;
		var locatie = document.getElementById('locatie_id').value;
	} else {
		bedrijf = '';
		locatie = '';
	}
		
	var opties = '<select id="locatie_id" class="locatie" name="locatie_id" onchange="haalBedrijfOpties(this.id)">';
	opties += '<option value="">Kies locatie</option>';
	
	switch(bedrijf) {
		case '':
		case '1':
			opties += '<option value="utrecht"'+(locatie=='utrecht'?' selected':'')+'>Utrecht</option>';
			opties += '<option value="amsterdam"'+(locatie=='amsterdam'?' selected':'')+'>Amsterdam</option>';
			break;
		default:
			opties += '<option value="utrecht"'+(locatie=='utrecht'?' selected':'')+'>Utrecht</option>';
	}
	
	opties += '</select>';
	
	document.getElementById('locatieopties').innerHTML = opties;
	
}

function haalBedrijfOpties(id) {
	
	if(id!=0) {
		var locatie = document.getElementById(id).value;
		var bedrijf = document.getElementById('bedrijf_id').value;
	} else {
		locatie = '';
		bedrijf = '';	
	}
		
	var opties = '<select id="bedrijf_id" class="bedrijf" name="bedrijf_id" onchange="haalLocatieOpties(this.id)">';
	opties += '<option value="">Kies bedrijf</option>';
	
	switch(locatie) {
		case 'amsterdam':
			opties += '<option value="1"'+(bedrijf=='1'?' selected':'')+'>eFocus</option>';
			break;
		default:
			opties += '<option value="1"'+(bedrijf=='1'?' selected':'')+'>eFocus</option>';
			opties += '<option value="2"'+(bedrijf=='2'?' selected':'')+'>Diago</option>';
			opties += '<option value="3"'+(bedrijf=='3'?' selected':'')+'>Medicore</option>';
			opties += '<option value="4"'+(bedrijf=='4'?' selected':'')+'>Cure4Finance</option>';
			opties += '<option value="5"'+(bedrijf=='5'?' selected':'')+'>eFocus Groep</option>';
			opties += '<option value="7"'+(bedrijf=='7'?' selected':'')+'>Nines</option>';
			opties += '<option value="10"'+(bedrijf=='10'?' selected':'')+'>Qnote</option>';
			opties += '<option value="11"'+(bedrijf=='11'?' selected':'')+'>Krem</option>';
			
	}
	
	opties += '</select>';
	
	document.getElementById('bedrijfopties').innerHTML = opties;
	
}

function footerMenuRolloverIE6() {
	if (!window.ie6) return;
	
	var footerListItems = $ES('li', 'footer');
	footerListItems.each(function(footerListItem){
		footerListItem.addEvents({
			'mouseenter': function(){
				footerListItem.addClass('hover');
			},
			'mouseleave': function(){
				footerListItem.removeClass('hover');
			}
		});
	});
}

// This function is used in order for certain links to open in a new window without the direct target attribute:
function initExternalLinks() { 
	if (!document.getElementsByTagName) return; 
	var arr_anchors = document.getElementsByTagName("a"); 
	for (var i=0; i<arr_anchors.length; i++) { 
		var el_anchor = arr_anchors[i]; 
		if (el_anchor.getAttribute("href") && el_anchor.getAttribute("rel") == "external") {
			el_anchor.target = "_blank";
		}
	}
}

