/* ================================ +
	    Mice Meets Metropolis
 + ================================ */



/* 
** Made by: Thomas Lievestro & Edgar Vijgeboom
** Email:	thomas@studioparkers.nl & edgar@studioparkers.nl
** Website:	www.studioparkers.nl
*/


/* ================================ +
              GENERAL
 + ================================ */

/* variables */

var TimeOut         = 250;
var closeTimer      = null;
var currentHeadNav  = 'nav';
var currentSubMenu  = 'submenu';
var _active;


//SUBMENU

function initMenu(){
	
	_active = $('.active').attr('id');
}

function expandChild(id,headmenuid){
	
	// clear timer
	window.clearTimeout(closeTimer);
	closeTimer = null;
	
	//set currents
	currentHeadNav = headmenuid; 
	currentSubMenu = id;
	
	//close all submenu's
	//closeAll();
	
	//make current headnav active
	makeActive(headmenuid);
	
	//check if currentSubMenu is hidden
	if ($('#'+id).is(":hidden")) { 
		
		//slide currentSubMenu down
    	$('#'+id).slideDown(300);
    } 	
		
}
	
function collapseChild(id,headmenuid){
	
	//make current headnav inactive
	makeInactive(headmenuid);
	
	//check if currentSubMenu is not hidden
	if ($('#'+id).not(":hidden")) {
		
		//slide currentSubMenu up
		$('#'+id).slideUp("fast"); 
	}
}
	
function mclosetime(id,headmenuid) {
	//set timer for collapseChild
	closeTimer = window.setTimeout("collapseChild(\"" + id + "\",\"" + headmenuid + "\")", TimeOut);
}

function mcancelclosetime() {
	//Check of timer loopt
	if(closeTimer) {
	
		//clear timer
		window.clearTimeout(closeTimer);
		closeTimer = null;
	}
}

function closeAll(){

	//Close submenu's
	var subMenus = $('.submenu');
	for(i=0;i<subMenus.length;i++){ 
		if ($(subMenus[i]).not(":hidden")) { 
			if (currentSubMenu != subMenus[i].id) {
	 			$(subMenus[i]).slideUp(1); 
			}
		}
	}
	
	//Change header class
	var headNavs = $('#nav li a');
	for(i=0;i<headNavs.length;i++){ 
		if (currentHeadNav != headNavs[i].id) {
			makeInactive(headNavs[i].id);
		}
	}
}


//CHANGE CLASS HEADMENU

function makeActive(id){
	
	//If currentHeadNav is not _active headnav
	if(id != _active){			
		$('#'+id).addClass("active");
	}
}

function makeInactive(id){
	//If currentHeadNav is not _active headnav
	if(id != _active){	
		$('#'+id).removeClass("active");
	}
}




function changeImages() {
	if (document.images) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
}




function displayLightbox(overlay,foto){					
	
	$('#overlay_bg_container').fadeIn();									//Fade de overlay background in

	if(overlay=='form'){
		marginTOP = (getBrowserSize()[1]-550)/2;
	    
	  $('#overlay_form').css("top",marginTOP);						//Plaats de overlay in het midden van het scherm
		$("#aanmeld_return_message").hide();						
		window.setTimeout("$('#overlay_form').fadeIn()", 400);	//Fade de overlay in
		$('#aanmeld_form').show();
		$('#aanmeld_formulier_container').show();
		
	}else if(overlay=='map_image'){
		marginTOP = (getBrowserSize()[1]-500)/2;
		
		$('#overlay_map_image').css("top",marginTOP);						//Plaats de overlay in het midden van het scherm
		window.setTimeout("$('#overlay_map_image').fadeIn()", 400);	//Fade de overlay in
	}else if(overlay=='terms'){
		marginTOP = (getBrowserSize()[1]-250)/2;
		
		$('#overlay_terms').css("top",marginTOP);						//Plaats de overlay in het midden van het scherm
		window.setTimeout("$('#overlay_terms').fadeIn()", 400);	//Fade de overlay in
	}else if(overlay=='foto'){

	
		imageObj = new Image();							
		imageObj.src = foto;   
		
		//Als de middelste afbeeding geladen is
		imageObj.onload = function() {  
			imageHeight = imageObj.height;
			imageWidth = imageObj.width;
			
			marginTOP = (getBrowserSize()[1]-imageHeight)/2;
			marginLEFT = (964-imageWidth)/2;
			
			closeButtonLeft = imageWidth-22;
			
			$('#overlay_user_image').html('<a id="close_overlay_user_image" class="close_lightbox" href="javascript:;" onclick="hideLightbox(\'foto\');" title="sluiten" style="margin-left:'+closeButtonLeft+'px;"></a><img src="'+foto+'" />');		
			$('#overlay_user_image').css("top",marginTOP);						//Plaats de overlay in het midden van het scher
			$('#overlay_user_image').css("margin-left",marginLEFT);					//Plaats de overlay in het midden van het schermm	
			window.setTimeout("$('#overlay_user_image').fadeIn()", 600);	//Fade de overlay i
		}
		
	}
}

function hideLightbox(overlay){
	if(overlay=='form'){ 
		$('#overlay_form').fadeOut();		
		document.aanmeld_form.reset();	
	}else if(overlay=='map_image'){ 
		$('#overlay_map_image').hide();							//Fade de overlay out
	}else if(overlay=='terms'){ 
		$('#overlay_terms').fadeOut();							//Fade de overlay out
	}else if(overlay=='foto'){ 
		$('#overlay_user_image').fadeOut();							//Fade de overlay out
	}else { 
		$('#overlay_map_image').fadeOut();
	}
	window.setTimeout("$('#overlay_bg_container').fadeOut();", 400);
} 


/* Wanneer locatieanders is gekozen word het het veld locatie anders enabled */
function locatieAndersToggle(){
	var selected = $("#locatiesoortid option:selected");       
	if(selected.val() == 0){  
		$("#locatieanders:input").removeAttr("disabled");
		$("#locatieanders:input").addClass("required");
	} else {
		$("#locatieanders").val('');
		$("#locatieanders:input").attr('disabled', true);
		$("#locatieanders").removeClass("error");
		$("#locatieanders:input").removeClass("required");
	}
} 
	
/* Wanneer Meetingplanner gekozen is dan is Locatietype niet meer verplicht */
function locatieTypeRequired(){
	var selected =$('#meetingplanner:checked').length;
	
	$("#locatiesoortid").removeClass("error");
	$("#locatieanders").removeClass("error");
	
	$("#locatiesoortid").removeClass("required");
	$("#locatieanders").removeClass("required"); 

	if(selected == 0){  
		locatieAndersToggle()
	}
} 

/* Workaround voor IE pulldown breedte, bij een onfocus en onselect zal de select box worden geschaalt in breedte */
function fixSelectWidth(element,size,focuselement)  {

	if(navigator.appName=="Microsoft Internet Explorer") {

			$(element).css({'width':''+size+'px'});
			if(focuselement) {
				$(focuselement).focus(); 
			}
			return false;
		}
	}




function openTab(element,thisElement){
	openTabHeader = $(thisElement).next().next();
	if((openTabHeader.attr('class') != 'accordion_header selected active' && openTabHeader.attr('class') != 'accordion_header active')){
	/*	
		currentTabHeader = $('.accordion_header.active');
		currentTabHeader.next().slideUp(300);
		currentTabHeader.removeClass('selected active');
		
		openTabHeader.addClass('selected active');
	*/	
		$('#'+element).slideDown(300);
		
	
	}
}

function closeTab(element,thisElement){
	openTabHeader = $(thisElement).next();
	if((openTabHeader.attr('class') != 'accordion_header selected active' && openTabHeader.attr('class') != 'accordion_header active')){
		$('#'+element).slideUp(300);
	}
}

 
 
function initAccordion() {

	var accorion_headers = $('.accordion_header');
	var color_array = new Array('#d6d6d6','#c1c1c1','#adadad','#999999','#858585','#707070');
	
	for(i=0;i < accorion_headers.length; i++){
		$(accorion_headers[i]).css('background',color_array[i]);		
		//$(accorion_headers[i]+':hover').css('background','#5eb618');
		
		$(accorion_headers[i]).hover( 
			function(){
				old_color = $(this).css('background');
				$(this).css('background','#5eb618');
			},
			function(){
				$(this).css('background',old_color);
			}
		);
	}

	jQuery('#profile_accordion').accordion({
		autoheight: false, 
	    active: '.selected', 
	    selectedClass: 'active', 
		header: '.accordion_header',
		alwaysOpen: false
	}).bind("change.ui-accordion", function(event, ui) { 
    	$('#map_canvas').css("height",(getPageSize()[1]-150));			//Make the height 100%
	});
	
} 

function toggleActiveInactive(header,content){

	$(content).slideToggle(450);
	 
	if($(header+' div:last').css('backgroundPosition') == '0px 0px'){
		$(header+' div:last').css('backgroundPosition','0px -16px');
	}else{
		$(header+' div:last').css('backgroundPosition','0px 0px');
	}
	
	window.setTimeout(function(){
    	$('#map_canvas').css("height",(getPageSize()[1]-150));			//Make the height 100%
    },450);
		
}



  
  
  
  
  

/* ================================ +
           SKILFUL FUNCTIONS
 + ================================ */

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];
}



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();







/* parse the Jquery functions after document ready */
$(document).ready(function(){
	
	// set submenu hover voor nav_2
	$('#nav_2')
	.mouseover(function(){
		expandChild('subnav_2','nav_2');
	})
	.mouseout(function(){
		mclosetime('subnav_2','nav_2');
	})
	
	
	// set submenu mouseover en out 
	$('#subnav_2')
	.mouseover(function(){
		mcancelclosetime();
	})
	.mouseout(function(){
		mclosetime('subnav_2','nav_2');
	})
		
	
	// Aanmelden button
	$("#meld_je_aan").click(
   		function(){
   			displayLightbox('form');
   			return false;
   	});
   	
  	// Registeren button
   	$("#registreer_button").click(
   		function(){
   			displayLightbox('form');
   			return false;
   	});

   // Versturen aanmelden bijeenkomst button
   $("#locatiesoortid").click(
   		function(){
   		/* breedte select box aanpassen */
   		  locatieAndersToggle();
   	});
   	
   // Versturen aanmelden bijeenkomst button
   $("#button_verstuur").click(
   		function(){
   			$('#aanmeld_form').submit();
   			return false;
   	});
   	
   // Versturen op de hoogte button
   $("#button_verstuur_opdehoogte").click(
   		function(){
   			$('#opdehoogte_form').submit();
   			return false;
   	});
   	
   // Versturen op de hoogte button
   $("#button_verstuur_registreren").click(
   		function(){
   			$('#registreren_form').submit();
   			return false;
   	});
   	
   // Inloggen button
   $("#button_verstuur_inlog").click(
   		function(){
   			$('#inlog_form').submit();
   			return false;
   	});
   	
   	// Inloggen button
   $("#button_verstuur_account").click(
   		function(){
   			$('#account_form').submit();
   			return false;
   	});
   	
   // Sluiten button
   $("#button_sluit").click(
   		function(){
   			hideLightbox('form');
   			return false;
   	});
   	
  	
   // Sluiten button
   $("#close_overlay_form").click(
   		function(){
   			hideLightbox('form');
   			return false;
   	});
   	
   // open kaart button
   $("#map_image").click(
   		function(){
   			displayLightbox('map_image');
   			return false;
   	});
   	
   // Sluiten kaart button
   $("#close_overlay_map_image").click(
   		function(){
   			hideLightbox('map_image');
   			return false;
   	});
   	
   // Sluiten kaart button
   $("#close_overlay_user_image").click(
   		function(){
   			hideLightbox('user_image');
   			return false;
   	});
   	
   // open terms button
   $("#terms_button").click(
   		function(){ 
   			displayLightbox('terms');
   			return false;
   	});   
   	
   // Sluiten terms button
   $("#close_overlay_terms").click(
   		function(){
   			hideLightbox('terms');
   			return false;
   	});
   	   	
	// New partner button
	$("#new_partner").click(
	  function(){
	  $("#managePartners_content").slideToggle();
	   return false;
	});
	  
	// New partner send action
  $("#button_verstuur_partner").click(
    function(){
     createPartner();
     return false;
  });
   	
   //	
   $("#meetingplanner").click(locatieTypeRequired);
   
   // toggleActiveInactive partners
   $("#partners_header").click(
   		function(){
   			toggleActiveInactive('#partners_header','#partners_content');
   			return false;
   	});
   
   // toggleActiveInactive neighborhood
   $("#neighborhood_header").click(
   		function(){
			toggleActiveInactive('#neighborhood_header','#neighborhood_content');
   			return false;
   	});
   	

   
   //If profile_accordion is present
	if($('#profile_accordion').length > 0){
		initAccordion();
	}
	
	//if profile_summary is present
	if($('#profile_summary').length > 0){
	
		$("#close_arrow").toggle(
			function () {
				$("#profile_summary").animate({marginTop: "241px",height: '50px'}, 500);
				$("#close_arrow").css('backgroundPosition','0 0');
			},
			function () {
				$("#profile_summary").animate({marginTop: 0,height: '300px'}, 500);
				$("#close_arrow").css('backgroundPosition','0 -16px');
			}
		); 
	}
	
	 //Nieuwe activiteit
   $("#activiteiten_add_knop").click(
   		function(){
			addActiviteit();
   			return false;
   		}
   	);
   	  
   //delete_zaal_button
   $(".delete_zaal_button").click(
   		function(){
				deleteZaal(this);
   			return false;
   		}
   	);
   	   
   	   
   //delete_activiteit_button
   $(".delete_activiteit_button").click(
   		function(){
				deleteActiviteit(this);
   			return false;
   		}
   	);
  
  
   //Trigger voor functie alle tabs opslaan
   $("#save_full_profile").click(
   		function(){
				saveAllTabs();
   			return false;
   		}
   	);
   	
   	
   /* ACCOUNT beheer scherm functies */
    
   //Opslaan basisprofiel gegevens
   $(".inp_bedrijfsnaam").change(
   		function(){
   			/* controle of het om een nieuwe profiel gaat */
   			if((this.form).id == "nieuwprofiel_form") {
   				if($('#bedrijfsnaam').val() == "" || $('#locatiesoortid').val() == "") {
	   				if(!$('#bedrijfsnaam').val()) $('#bedrijfsnaam').addClass('error');
	   				if(!$('#locatiesoortid').val()) $('#locatiesoortid').addClass('error');
   				} else {
	   				saveBasisProfiel('#nieuwprofiel_form','second');
	   				$('#bedrijfsnaam').removeClass('error');
	   				$('#locatiesoortid').removeClass('error');
	   			}
   			} else {
				saveBasisProfiel(this.form);
			}
   			return false;
   		}
   	);
   	
   	/* verwijder de disabled optie na invoer van beedrijfsnaam*/
   	$(".inp_bedrijfsnaam_new").keypress(
	   	function(){
	   		if ($("#bedrijfsnaam").val().length > 1){
	   			$('#locatiesoortid').removeAttr("disabled");
	   		}
	   	}

   	);
  
   //Opslaan eerste profiel
   $("#account_volgende").click(
   		function(){
   			
   			if($('#bedrijfsnaam').val() == "" || $('#locatiesoortid').val() == "") {
   			
   				if(!$('#bedrijfsnaam').val()) $('#bedrijfsnaam').addClass('error');
   				if(!$('#locatiesoortid').val()) $('#locatiesoortid').addClass('error');
   				
   			} else {
   				   
	   			saveBasisProfiel('#nieuwprofiel_form','first');
   			}
   			return false;

   		}
   	);
  
     //Verwijderen profiel
   $(".btn_verwijder").click(
   		function(){
   		
			var temp = false;
			temp=window.confirm('Weet u het zeker?');
			if (temp){
				deleteProfiel(this.id);
			}
   			return false;
   		}
   	);
   	
   	

	// scrollTo
	$(".button_scroll").click(
   		function(){ 
   			var element = $(this).attr('title'); 
   			$.scrollTo( '#'+element+'', 800);
   			return false;
   	});
   	
  
  
  // Flash & lightbox transparancy bug, bij de Flash embed object een tag toevoegen wmode=tansparent.
   if ($("#video_embed > embed")){
	   	$("embed").attr('wmode','transparent');
	   }


  // Verwijder file uit album
  $(".delete_image_button").click(
      function(){ 
        deleteFile(this);
        return false;
    });
    
  // Verwijder partner ajax actie
  $(".delete_partner_button").click(
      function(){ 
        deletePartner(this);
        return false;
    });
  
 });
  

  
 
