/* ================================ +
   	        UITMARKT 2009
 + ================================ */



/* 
** Made by: Studio Parkers / Edgar Vijgeboom, Thomas Lievestro
** Email:	info@studioparkers.nl
** Website:	www.studioparkers.nl
*/

/* ================================ +
                GENERAL
 + ================================ */


/* CARROUSEL */

var	CarrouselTimeoutTime = 7000;
var	KeepNumbers = Array(0,1,2,3,4,5);
var Numbers;
// Function to init the Carrousel
function initCarrousel() {
	
	//SAFARI FIX
	if((OS == "Mac") && (browser == "Safari")){ 
		if(document.createStyleSheet) {
			document.createStyleSheet('styles/stylesheet_safari.css');
		}else{
		var styles = "@import url('styles/stylesheet_safari.css');";	
		var newSS=document.createElement('link');
		newSS.rel='stylesheet';
		newSS.href='data:text/css,'+escape(styles);
		document.getElementsByTagName("head")[0].appendChild(newSS);
		}
	}
	
	
	$('#carrousel').accordion({
	  active: '.selected', 
	  selectedClass: 'active', 
		header: '.carrousel_item_header',
		alwaysOpen: true,
		collapsible:true,
		navigation: true,
   	event: 'mouseover', 
   	fillSpace: true
	});
	
	$('#carrousel .carrousel_item').css('width','125px');	
	$('#carrousel .carrousel_item.active').css('width','325px');
		
	$('#carrousel .carrousel_item .carrousel_item_content').css('top','300px');
	
	window.setTimeout(function(){
		$('#carrousel .carrousel_item.active .carrousel_item_content').animate({'top':'211px'}, 200);
	},1000);
	
	KeepNumbers = $.shuffle(KeepNumbers);
	
	Numbers = KeepNumbers.slice();
	
	startRotate();	
}

// Function for auto Rotate the carrousel
function autoRotate(){
	showItem();
	rotateTimer=setTimeout(function(){
		autoRotate();
	},CarrouselTimeoutTime);
}

// Function for start rotating the carrousel
function startRotate(){
	rotateTimer=setTimeout(function(){
		autoRotate();
	},CarrouselTimeoutTime);
}

// Function for stop rotating the carrousel
function stopRotate(){
	if(typeof rotateTimer != 'undefined'){
		clearTimeout(rotateTimer);
	}
}

// Function for show carrousel item
function showItem(){
   	$('#carrousel').accordion('activate', Numbers[0]);
	Numbers.shift();
	
	if(Numbers.length == 0){
		Numbers = KeepNumbers.slice();	
	}
}






/* MENU */

var closeTimer   = null;
var _hover       = '';

function showSubmenu(submenu){

    _hover = $('#'+submenu).prev().attr('id');
    cancelHideSubmenu();
    hideAllSubmenus();
    
	if ($('#'+submenu).is(":hidden")) {
     	$('#'+submenu).slideDown(200);
	}
}

function hideSubmenu(submenu){
	if ($('#'+submenu).not(":hidden")) {		
		closeTimer = window.setTimeout(function(){
			$('#'+submenu).slideUp(100);
		}, 300);
	}
}

function hideAllSubmenus(){
	
	//Close submenu's
	var subMenus = $('.submenu');
	for(i=0;i<subMenus.length;i++){ 
		if ($(subMenus[i]).not(":hidden") && $(subMenus[i]).prev().attr('id') != _hover) { 
			$(subMenus[i]).slideUp(1);
		}
	}
}

function cancelHideSubmenu() {
	
	//Check of timer loopt
	if(closeTimer) {
		window.clearTimeout(closeTimer);
		closeTimer = null;
	}
} 



/* Lightbox  function */
function displayLightbox(state){         
  if(state == 'show') { 
    $('#overlay_bg_container').fadeIn();                 
    TOP = (getBrowserSize()[1]-500)/2;
    LEFT = (((getBrowserSize()[0]-600)/2));
    $('#overlay_details').css("top",TOP);                 //Plaats de overlay in het midden van het scherm
    $('#overlay_details').css("left",LEFT);        //Plaats de overlay in het midden van het schermm
     window.setTimeout("$('#overlay_details').fadeIn()", 600);  //Fade de overlay in
  } else {
    $('#overlay_details').hide();
    $('#overlay_bg_container').hide();   
  }
  
}



/* PROGRAMMA SLIDER */

function handleSliderChange(e, ui) {
  var maxScroll = $("#content-scroll").attr("scrollWidth") - $("#content-scroll").width();
  $("#content-scroll").animate({scrollLeft: ui.value * (maxScroll / 100) }, 1000);
  }

function handleSliderSlide(e, ui) {
  var maxScroll = $("#content-scroll").attr("scrollWidth") - $("#content-scroll").width();
  $("#content-scroll").attr({scrollLeft: ui.value * (maxScroll / 100) });
  }
  
  
  
/* Script voor het selecteren van filters bij markt */
function selectFilter(type,sorteer) {
  var filterid = $('#filterSelector').val();
  location.href = "markt.php?type="+type+"&filter="+filterid+"&sorteer="+sorteer;
}
  


//Shuffle function  
(function($){
  $.fn.shuffle = function() {
    return this.each(function(){
      var items = $(this).children();
      return (items.length)
        ? $(this).html($.shuffle(items))
        : this;
    });
  }
 
  $.shuffle = function(arr) {
    for(
      var j, x, i = arr.length; i;
      j = parseInt(Math.random() * i),
      x = arr[--i], arr[i] = arr[j], arr[j] = x
    );
    return arr;
  }
})(jQuery);



  

/* ================================ +
           SKILFUL FUNCTIONS
 + ================================ */

var OS;
var browser;
var version;

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();



function getBrowserSize() {
          
    var theWidth, theHeight;
  // Window dimensions: 
  if (window.innerWidth) {
  theWidth=window.innerWidth;
  }
  else if (document.documentElement && document.documentElement.clientWidth) {
  theWidth=document.documentElement.clientWidth;
  }
  else if (document.body) {
  theWidth=document.body.clientWidth;
  }
  if (window.innerHeight) {
  theHeight=window.innerHeight;
  }
  else if (document.documentElement && document.documentElement.clientHeight) {
  theHeight=document.documentElement.clientHeight;
  }
  else if (document.body) {
  theHeight=document.body.clientHeight;
  }

  return [theWidth,theHeight];
}

function getPageSize() {
          
    var xScroll, yScroll;
    
    var OS = BrowserDetect.OS;
  var browser = BrowserDetect.browser;
  var version = BrowserDetect.version;
  
  if((OS == "Windows") && (browser == "Explorer") && (version == "7")){     
    xScroll = document.body.parentNode.scrollWidth;
    yScroll = document.body.parentNode.scrollHeight;
    }else{ 
    if (window.innerHeight && window.scrollMaxY) {  
      xScroll = window.innerWidth + window.scrollMaxX;
      yScroll = window.innerHeight + window.scrollMaxY;
    } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
      xScroll = document.body.scrollWidth;
      yScroll = document.body.scrollHeight;
    } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
      xScroll = document.body.offsetWidth;
      yScroll = document.body.offsetHeight;
    }
  }
  
  var windowWidth, windowHeight;
  
  var windowWidth, windowHeight;
  if (self.innerHeight) { // all except Explorer
    windowWidth = self.innerWidth;
    windowHeight = self.innerHeight;
  } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
    windowWidth = document.documentElement.clientWidth;
    windowHeight = document.documentElement.clientHeight;
  } else if (document.body) { // other Explorers
    windowWidth = document.body.clientWidth;
    windowHeight = document.body.clientHeight;
  } 

  
  
  // for small pages with total height less then height of the viewport
  if(yScroll < windowHeight){
    pageHeight = windowHeight;
  } else { 
    pageHeight = yScroll;
  }

  // for small pages with total width less then width of the viewport
  if(xScroll < windowWidth){  
    pageWidth = xScroll;    
  } else {
    pageWidth = windowWidth;
  }

  return [pageWidth,pageHeight];
}


/* Ajax functie voor Mijn Agenda, losse items in zoekresultaat en lightboxes */

function mijnAgenda(action,id) {
  //alert('ajax call start: '+action+' '+id);
  
  $.get(
    "ajax/ajax.php?action="+action+"&id="+id,
    function(data){
      //alert(data);
      if (action == 'add') {
        $('#'+id).html('<span class="genre">verwijder uit</span>');
        $('#'+id).toggleClass('addmijnagenda'); 
        $('#'+id).toggleClass('delmijnagenda'); 
        $('#'+id).attr('onClick','verwijderuitAgenda('+id+');'); 
        $('#span_'+id).html(' | <a href="mijn_programma.php" class="">open Mijn Programma</a>');
      } else if (action == 'del') {
        $('#'+id).html('bewaar in Mijn Programma');
        $('#'+id).toggleClass('delmijnagenda'); 
        $('#'+id).toggleClass('addmijnagenda'); 
        $('#'+id).attr('onClick','zetinAgenda('+id+');'); 
        $('#span_'+id).html('');
      }
    }
  );


}

/* Ajax functie voor Mijn Agenda, overzichtpagina (alleen verwijderen) */
function mijnAgendaOverzicht(action,id) {
  //alert('ajax call start: '+action+' '+id);
  
  $.get(
    "ajax/ajax.php?action="+action+"&id="+id,
    function(data){
      //alert(data);
      $('#show_'+id).hide();
    }
  );


}





/* Ajax functie voor programma detail lightbox*/

function optredenInfo(id) {
  
  $.getJSON(
    "ajax/ajax.php?action=get_optreden&id="+id,
    function(data){

    tmpHtml = '<div class="detail_img">';
     if (data[0].im) {
	  tmpHtml = tmpHtml + 
	   '<img src="footage/fotos-programma/'+data[0].optreden_image_groot+'" alt="'+data[0].alt+'" title="'+data[0].alt+'" /><br />'+
	   '<!--<img src="images/keuze_th_1.gif" width="130" height="46" alt="" />-->'+
	   '<br /> <br />' 
	   }
	   if (data[0].found == 1) {
     tmpHtml = tmpHtml +
     '<a href="javascript:;" id="'+data[0].id+'" onclick="verwijderuitAgenda('+data[0].id+');"><span class="genres">verwijder uit</span></a><span id="span_'+data[0].id+'"> | <a href="mijn_programma.php">open Mijn Programma</a></span>'+
     '</div>'
     } else {
     tmpHtml = tmpHtml +
     '<a href="javascript:;" id="'+data[0].id+'" onclick="zetinAgenda('+data[0].id+');">bewaar in Mijn Programma &raquo;</a><span id="span_'+data[0].id+'"></span>'+
     '</div>'	   
	   }
	   //tmpHtml = tmpHtml +
	   //'<a href="javascript:;" id="'+data[0].id+'" onclick="zetinAgenda('+data[0].id+');">['+data[0].found+']bewaar in Mijn Programma &raquo;</a><br />'+
	   //'</div>'+
	
	   tmpHtml = tmpHtml + '<div class="detail_content">'+
	    '   <h1>'+data[0].groep+'</h1>'+
	    '   <span class="genre"><em>'+data[0].genre+'</em></span><br />'+
			'   <br />'+
	    '   <span class="subtitle">'+data[0].titel+'</span><br />'+
	    '   '+data[0].info+
	    '   <br /><br />'+
	     data[0].datum+' augustus '+ data[0].begintijd +' - '+ data[0].eindtijd +' <span class="red"></span><br />'+
	    '  <a href="podia.php?podium='+data[0].podiumnummer+'">'+data[0].podium+'</a><br />'+
	    '   <br />'+
	   '</div>'+
	   '<br class="clear" />';
	   
	   $('.lightbox_detail').html(tmpHtml);
	   
	   displayLightbox('show');
      
    }
  );


}



/* document ready functions */
$(document).ready(function(){
	
	
OS = BrowserDetect.OS;
browser = BrowserDetect.browser;
version = BrowserDetect.version;
	   
	
	
	
//If profile_accordion is present
if($('#carrousel').length > 0){
	initCarrousel();
}

// carrousel on mouse over and out
$("#carrousel")
.mouseover(function(){
	//Stop the carrousel
	stopRotate()
	return false;
})
.mouseout(function(){
	//Start the carrousel
	startRotate();
	return false;
})	
	
	
	
	
	
 // ToggleSubmenu
$(".headnav span")
.mouseover(function(){
	showSubmenu(($(this).attr('id')).replace('headnav','subnav'));
})
.mouseout(function(){
	hideSubmenu(($(this).attr('id')).replace('headnav','subnav')); 
});

// Submenu
$(".submenu")
.mouseover(function(){ 
	cancelHideSubmenu();
})
.mouseout(function(){
	hideSubmenu($(this).attr('id'));
});
	
	
	

/* programma slider */
$("#programma-slider").slider({
		animate: true,
		change: handleSliderChange,
		slide: handleSliderSlide
	});
  
	/* programma naar voren sliden */
$(".programma-forward").click(
function(){
	var ScrollLeft = $("#content-scroll").attr("scrollLeft") + 600;
	$("#content-scroll").animate({scrollLeft: ScrollLeft}, 500);
	var newScrollLeft = $("#content-scroll").attr("scrollLeft") + 600;
	$("#content-scroll").attr({scrollLeft: newScrollLeft });
		return false;
	});
  
	/* programma terug sliden */
$(".programma-back").click(
function(){
	var ScrollLeft = $("#content-scroll").attr("scrollLeft") - 600;
	$("#content-scroll").animate({scrollLeft: ScrollLeft}, 500);
	var newScrollLeft = $("#content-scroll").attr("scrollLeft") - 600;
	$("#content-scroll").attr({scrollLeft: newScrollLeft });
	return false;
});


// Zet in agenda call
$(".addmijnagenda").click(function(){
  mijnAgenda('add',$(this).attr('id'));
  return false;
})

$(".delmijnagenda").click(function(){
  mijnAgenda('del',$(this).attr('id'));
  return false;
})

$(".verwijder").click(function(){
  mijnAgendaOverzicht('del',$(this).attr('id'));
  return false;
})

/* Niet gaan zoeken wanneer trefwoord leeg is */
$("#trefwoord").click(function(){
   $("#trefwoord").css({'background-color' : '#ffffff'});
   });
   
$("#startzoek").click(function(){
   $("#trefwoord").css({'background-color' : '#ffffff'});
  if($("#trefwoord").attr("value")) {
    $("#zoekform").submit();
  } else {
    $("#trefwoord").css({'background-color' : '#ff6666'});
  }
    return false;
  })

	
});

/* mijn Agenda functies als onClick */
function zetinAgenda(id) {
  //alert('zet in agenda');
  mijnAgenda('add',id);
  return false;
}

function verwijderuitAgenda(id) {
  //alert('verwijder uit agenda');
  mijnAgenda('del',id);
  return false;
}

function printMijnAgenda() {
  print();
  return false;
}