var baseUrl = '';

/**
* Initialize document
*/
function popupLinkPaid(paid){if(paid == "yes"){renderPopup('popupPaid.phtml',1);showPopup('popupPaid');}else{renderPopup('popupNotPaid.phtml',1);showPopup('popupNotPaid');}}
function popupLinkAct(act){if(act == "yes"){renderPopup('popupActYes.phtml',1);showPopup('popupActYes');}else{renderPopup('popupActNo.phtml',1);showPopup('popupActNo');}}


$(document).ready(function(){
	/**
	* Show / Hide Popups
	*/
	$('.popupLinkSMS').click(function(){renderPopup('popupSMS.phtml',1); showPopup('popupSMS'); $('#popupName').focus(); });	
	$('.popupLinkContact').click(function(){renderPopup('popupContact.phtml',1); showPopup('popupContact'); $('#popupName').focus(); });	
	$('.popupLinkLogin').click(function(){renderPopup('popupLogin.phtml',1); showPopup('popupLogin'); $('#loginUsername').focus(); });	
	$('#popupLinkSelectRegion').click(function(){renderPopup('popupSelectRegion.phtml',1); showPopup('popupSelectRegion'); $('#popupName').focus(); });	
	$('#popupLinkVoorwaarden').click(function(){renderPopup('popupVoorwaarden.phtml',1); showPopup('popupVoorwaarden'); $('#popupName').focus(); });	
	$('#popupLinkOverview').click(function(){renderPopup('popupOverview.phtml',1); showPopup('popupOverview'); $('#loginUsername').focus(); });	
	$('.popupLinkPersonal').click(function()
	{
		$('#popupPersonalRefresh').remove();
		renderPopup('popupPersonal.phtml',1);
		if(document.getElementById('abosuggestions'))
		{
			document.getElementById('abosuggestions').innerHTML = '';
		}
		showPopup('popupPersonal'); $('#loginUsername').focus();
	});
	$('.popupLinkPersonal2').click(function()
	{
		
		if(document.getElementById('abosuggestions'))
		{
			document.getElementById('abosuggestions').innerHTML = '';
		}
		
		showPopup('popupPersonal'); 
		
		$('#loginUsername').focus();
		
		var suggestionArray = new Array();
		var plaatsArray = new Array();	
		var provincieArray = new Array();	
		var regionArray = new Array();
		for(i = 0;kaartmarkersxml.length > i; i++)
		{
			var plaats = kaartmarkersxml[i].getAttribute("messageGooglePlaatsnaam");
			var provincie = kaartmarkersxml[i].getAttribute("messageGoogleProvincie");
			var region = kaartmarkersxml[i].getAttribute("messageRegionName");
			var provafk = getProvinceTwoChar(provincie);
			plaats = plaats + ' (' + provafk + ')';
			if(suggestionArray[plaats]){suggestionArray[plaats]++;}
			else{suggestionArray[plaats] =1; plaatsArray.push(plaats);}
			
			if(suggestionArray[provincie]){suggestionArray[provincie]++;}
			else{suggestionArray[provincie] =1; provincieArray.push(provincie);}

			if(suggestionArray[region]){suggestionArray[region]++;}
			else{suggestionArray[region] =1; regionArray.push(region);}	
		}
		var suggestion = new Array();
		suggestion[0] ="";
		for(var i=0; i< plaatsArray.length; i++)
		{
			if (suggestionArray[plaatsArray[i]] >2)
			{					
				suggestion[0] += ";;;" + plaatsArray[i];
			}
		}
		for(var i=0; i< provincieArray.length; i++)
		{
			if (suggestionArray[provincieArray[i]] >10)
			{
				if(provincieArray[i] == "Groningen"){provincieArray[i] = "Groningen (Provincie)";}
				if(provincieArray[i] == "Utrecht"){provincieArray[i] = "Utrecht (Provincie)";}
				if(provincieArray[i] == "Zeeland"){provincieArray[i] = "Zeeland (Provincie)";}
				suggestion[0] += ";;;" + provincieArray[i];
			}
		}
		for(var i=0; i< regionArray.length; i++)
		{
			if (suggestionArray[regionArray[i]] >8)
			{
				if(regionArray[i] != '' && regionArray[i] != ' '){
					regionArray[i] = regionArray[i] + " (regio)";
					suggestion[0] += ";;;" + regionArray[i];
				}
			}
		}
		
		//alert(suggestion[0]);
		var suggestions = suggestion[0].split(";;;");
		
		$('#popupPersonalRefresh').remove();
		renderPopup('popupPersonal.phtml',1, suggestions);
	});
	$('.popupLinkPersonal3').click(function()
	{
		$('#popupPersonalRefresh').remove();
		renderPopup('popupPersonal.phtml',1);
		if(document.getElementById('abosuggestions'))
		{
			document.getElementById('abosuggestions').innerHTML = '';
		}
		
		showPopup('popupPersonal'); 

		$('#loginUsername').focus();
		
		var suggestionArray = new Array();
		var plaatsArray = new Array();	
		var provincieArray = new Array();	
		var regionArray = new Array();
		for(i = 0;kaartmarkersxml.length > i; i++)
		{
			var plaats = kaartmarkersxml[i].getAttribute("messageGooglePlaatsnaam");
			var provincie = kaartmarkersxml[i].getAttribute("messageGoogleProvincie");
			var region = kaartmarkersxml[i].getAttribute("messageRegionName");
			var provafk = getProvinceTwoChar(provincie);
			plaats = plaats + ' (' + provafk + ')';
			if(suggestionArray[plaats]){suggestionArray[plaats]++;}
			else{suggestionArray[plaats] =1; plaatsArray.push(plaats);}
			
			if(suggestionArray[provincie]){suggestionArray[provincie]++;}
			else{suggestionArray[provincie] =1; provincieArray.push(provincie);}

			if(suggestionArray[region]){suggestionArray[region]++;}
			else{suggestionArray[region] =1; regionArray.push(region);}	
		}
		var suggestion = new Array();
		suggestion[0] ="";
		for(var i=0; i< plaatsArray.length; i++)
		{
			if (suggestionArray[plaatsArray[i]] >2)
			{					
				suggestion[0] += ";;;" + plaatsArray[i];
			}
		}
		for(var i=0; i< provincieArray.length; i++)
		{
			if (suggestionArray[provincieArray[i]] >10)
			{
				if(provincieArray[i] == "Groningen"){provincieArray[i] = "Groningen (Provincie)";}
				if(provincieArray[i] == "Utrecht"){provincieArray[i] = "Utrecht (Provincie)";}
				if(provincieArray[i] == "Zeeland"){provincieArray[i] = "Zeeland (Provincie)";}
				suggestion[0] += ";;;" + provincieArray[i];
			}
		}
		for(var i=0; i< regionArray.length; i++)
		{
			if (suggestionArray[regionArray[i]] >8)
			{
				if(regionArray[i] != '' && regionArray[i] != ' '){
					regionArray[i] = regionArray[i] + " (regio)";
					suggestion[0] += ";;;" + regionArray[i];
				}
			}
		}
		
		//alert(suggestion[0]);
		var suggestions = suggestion[0].split(";;;");
		
		if(document.getElementById('abbotable')){var rows = document.getElementById('abbotable').getElementsByTagName('tbody')[0].getElementsByTagName('tr');} else {var rows = new Array();}
		var abboArray = new Array();
		for (j = 1; j < (rows.length); j++) {
			var row = rows[j];
			abboArray.push(row.cells[0].innerHTML);
		}
		
		for(i = 1;suggestions.length > i; i++ )
		{
			if(document.getElementById('abosuggestions'))
			{
				if(!in_array(suggestions[i], abboArray))
				{
					document.getElementById('abosuggestions').innerHTML += '<p id="abo' + suggestions[i] + '"><a onclick="addRow('+ "'" + suggestions[i]+ "'," + phoneActive + "," + 1 +'); document.getElementById('+"'abo"+suggestions[i]+"'" +').style.visibility = ' + "'hidden'" + ';">' + suggestions[i] + ' - toevoegen?</a></p>';
				}
			}
			
		}
		if(document.getElementById('abosuggestions')){document.getElementById('abosuggestions').innerHTML += '<br/>';}
		$("#popupPersonal").center();
		
		if(document.getElementById('searchform').searchQuery.value != "" && document.getElementById('abboplaats'))
		{	
			document.getElementById('abboplaats').value = document.getElementById('searchform').searchQuery.value;
		}
	});
	$('#popupLinkDetail').click(function(){ showPopup('popupDetail'); $('#loginUsername').focus(); });	
	$('#popupLinkForgotPassword').click(function(){ showPopup('popupForgotPassword'); $('#forgotEmail').focus(); });
	$('#popupLinkSettings').click(function(){ showPopup('popupSettings'); $('#popupName').focus(); });
	$('.popupLinkSettings2').click(function(){ showPopup('popupSettings'); $('#popupName').focus(); });
	$('#popupLinkIdeal').click(function(){ hidePopup('popupSettings'); showPopup('popupIdeal'); $('#popupName').focus(); });
	$('#popupLinkActmob').click(function(){ hidePopup('popupSettings'); showPopup('popupActmob'); $('#popupName').focus(); });

	
	/**
	* Validate Login
	*/
	$('#loginSubmit').click(function(){
		if($('#loginForm').validate({
			rules: {
				loginUsername: { required: true },
				loginPassword: { required: true }
			}
		}).form()){
			// success
			$.ajax({ 
				type: 'POST', 
				url: getBaseUrl() + '/ajax/inloggen', 
				data: 'loginUsername=' + $('#loginUsername').attr('value') + '&loginPassword=' + $('#loginPassword').attr('value') + '&remember=' + $('#remember').attr('value'),
				dataType: 'html',
				success:
					function(data)
					{
						if(data != 'true')
						{
							$('.loginSuccess').html('<div class="error">' + data + '</div>');
							$('.loginSuccess').addClass('popupFout');
						}
						else
						{
							$('.loginSuccess').html('Je bent succesvol ingelogd. Je wordt over een aantal seconden doorgestuurd.');
							$('.loginSuccess').addClass('popupGoed');
							
							setTimeout('window.location="' + getBaseUrl() + '/persoonlijk";', 2000);
							
						}
					}
			});
		}
	});
	
	/**
	* Validate Register
	*/
	$('#registerSubmit').click(function(){
		if($('#registerForm').validate({
			rules: {
				registerEmail: { required: true, email: true },
				registerPhone: { required: false, digits: true },
				registerPassword: { required: true },
				registerPassword2: { required: true, equalTo: "#registerPassword" },
				voorwaarden: { required: true }
			}
		}).form()){
			// success
			$.ajax({
				type: 'POST',
				url: getBaseUrl() + '/ajax/registreren',
				data: '&registerEmail=' + $('#registerEmail').attr('value') 
					+ '&registerPhone=' + $('#registerPhone').attr('value') + '&registerPassword=' + $('#registerPassword').attr('value') + '&registerPassword2=' + $('#registerPassword2').attr('value') + '&voorwaarden=' + $('input[type=checkbox]').is(':checked'),
				dataType: 'html',
				success:
					function(data)
					{
						if(data != 'true')
						{
							$('.registerSuccess').html('<div class="error">' + data + '</div>');
							$('.registerSuccess').addClass('popupFout');
						}
						else
						{
							$('.registerSuccess').html('Je bent succesvol geregistreerd. Je krijgt een email toegestuurd met een activatielink.');
							$('.registerSuccess').addClass('popupGoed');
							
							setTimeout('location.reload()', 2000);
						}
					}
			});
		}
	});
	
	/**
	* Validate Settingschange
	*/
	$('#changeSettingsSubmit').click(function(){
		if($('#changeSettingsForm').validate({
			rules: {
				changeSettingsEmail: { required: true, email: true },
				changeSettingsPhone: { required: false, digits: true }
			}
		}).form()){
			// success
			$.ajax({
				type: 'POST',
				url: getBaseUrl() + '/ajax/changesettings',
				data: 'changeSettingsEmail=' + $('#changeSettingsEmail').attr('value') + '&changeSettingsPhone=' + $('#changeSettingsPhone').attr('value'),
				dataType: 'html',
				success:
					function(data)
					{
						if(data != 'true')
						{
							$('.changeSettingsSuccess').html('<div class="error">' + data + '</div>');
							$('.changeSettingsSuccess').addClass('popupFout');
							setTimeout(function(){$('.changeSettingsSuccess').html('');},2000)
						}
						else
						{
							$('#popupPersonalRefresh').remove();
							renderPopup('popupPersonal.phtml',0);
							$('.changeSettingsSuccess').html('Je hebt succesvol je instellingen aangepast.');
							$('.changeSettingsSuccess').addClass('popupGoed');
							setTimeout(function(){$('.changeSettingsSuccess').html('');},2000)
						}
					}
			});
		}
	});
	
	/**
	* Change Password
	*/
	$('#changePasswordSubmit').click(function(){
		if($('#changePasswordForm').validate({
			rules: {
				changePasswordOld: { required: true },
				changePasswordNew: { required: true },
				changePasswordNew2: { required: true, equalTo: "#changePasswordNew" }
			}
		}).form()){
			// success
			$.ajax({
				type: 'POST',
				url: getBaseUrl() + '/ajax/changepassword',
				data: '&changePasswordOld=' + $('#changePasswordOld').attr('value') 
					+ '&changePasswordNew=' + $('#changePasswordNew').attr('value')
					+ '&changePasswordNew2=' + $('#changePasswordNew2').attr('value'),
				dataType: 'html',
				success:
					function(data)
					{
						if(data != 'true')
						{
							$('.changePasswordSuccess').html('<div class="error">' + data + '</div>');
							$('.changePasswordSuccess').addClass('popupFout');
						}
						else
						{
							$('.changePasswordSuccess').html('Je hebt succesvol je wachtwoord veranderd. Log hier voortaan mee in.');
							$('.changePasswordSuccess').addClass('popupGoed');
						}
					}
			});
		}
	});
	
	/**
	* Remove account
	*/
	$('#removeAccountSubmit').click(function(){
			// success
			$.ajax({
				type: 'POST',
				url: getBaseUrl() + '/ajax/removeaccount',
				dataType: 'html',
				success:
					function(data)
					{
						if(data != 'true')
						{
							$('.removeAccountSuccess').html('<div class="error">' + data + '</div>');
							$('.removeAccountSuccess').addClass('popupFout');
						}
						else
						{
							$('.removeAccountSuccess').html('Je hebt succesvol je account verwijderd. Je wordt nu doorgestuurd');
							$('.removeAccountSuccess').addClass('popupGoed');			
							setTimeout('location.reload()', 2000);
						}
					}
			});
	});
	
	/**
	* Forgot password
	*/
	$('#forgotSubmit').click(function(){
		if($('#forgotForm').validate({
			rules: {
				forgotEmail: { required: true, email: true }
			}
		}).form()){
			// success
			$.ajax({
				type: 'POST',
				url: getBaseUrl() + '/account/wachtwoord-vergeten',
				data: 'forgotEmail=' + $('#forgotEmail').attr('value'),
				dataType: 'html',
				success:
					function(data)
					{
						if(data != 'true')
						{
							$('.forgotSuccess').html('<div class="error">' + data + '</div>');
							$('.forgotSuccess').addClass('popupFout');
						}
						else
						{
							$('.forgotSuccess').html('<div class="geenerror">Er is een nieuw wachtwoord verstuurd naar je email adres.</div>');
							$('.forgotSuccess').addClass('popupGoed');
							$('#forgotSubmit').attr("id","forgotSubmitted");
						}
					}
			});
		}
	});
	
	/**
	* Activate mobile
	*/
	$('#actmobSubmit').click(function(){
		$.ajax({
			type: 'POST',
			url: getBaseUrl() + '/ajax/actmob',
			data: 'actkey=' + $('#actKey').attr('value'),
			dataType: 'html',
			success:
				function(data)
				{
					if(data != 'true')
					{
						$('.actmobSuccess').html('<div class="error">Fout bij het activeren.</div>');
						$('.actmobSuccess').addClass('popupFout');
					}
					else
					{
						$('.actmobSuccess').html('Uw mobiele nummer is succesvol geactiveerd. De pagina wordt opnieuw geladen en daarna kunt u gebruik maken van de SMS diensten.');
						$('.actmobSuccess').addClass('popupGoed');
						setTimeout('location.reload()', 2000);
					}
				}
		});
	});
	
	/**
	* Contact form submit
	*/
	$('#contactSubmit').click(function(){
		if($('#contactForm').validate({
				rules: {
					contactNaam: { required: true },
					contactEmail: { required: true, email: true },
					contactOnderwerp: { required: true },
					contactTekst: { required: true }
				}
			}).form())
		{
			$.ajax({
				type: 'POST',
				url: getBaseUrl() + '/ajax/contact',
				data: 'contactNaam=' + $('#contactNaam').attr('value') + '&contactEmail=' + $('#contactEmail').attr('value') + '&contactOnderwerp=' + $('#contactOnderwerp').attr('value') + '&contactTekst=' + $('#contactTekst').attr('value'),
				dataType: 'html',
				success:
					function(data)
					{
						if(data != 'true')
						{
							$('.contactSuccess').html('<div class="error">Fout bij het verzenden.</div>');
							$('.contactSuccess').addClass('popupFout');
							setTimeout(function(){$('.contactSuccess').html('');},2000)
						}
						else
						{
							$('.contactSuccess').html('Uw bericht is succesvol verzonden.');
							$('.contactSuccess').addClass('popupGoed');
							setTimeout(function(){$('.contactSuccess').html('');},2000)
							$('#contactNaam').val('');
							$('#contactEmail').val('');
							$('#contactOnderwerp').val('');
							$('#contactTekst').val('');
						}
					}
			});
		}
	});
});

/**
* Show / Hide Popup
*
* @param string idName
* @return void
*/
function showPopup(idName)
{	

	
	// hide login popup if the user clicked on forgot password
	if(idName == 'popupForgotPassword'){ hidePopup('popupLogin'); }
	// hide register popup if true
	if(idName == 'popupRegisterSuccess'){ hidePopup('popupRegister'); }
	if(idName == 'popupSettings'){ hidePopup('popupPersonal'); hidePopup('popupOverview'); hidePopup('popupIdeal'); hidePopup('popupSMS');}
	if(idName == 'popupPersonal'){ hidePopup('popupSettings'); hidePopup('popupOverview'); hidePopup('popupIdeal'); hidePopup('popupSMS');}
	if(idName == 'popupSMS'){ hidePopup('popupSettings'); hidePopup('popupOverview'); hidePopup('popupIdeal');hidePopup('popupPersonal');}
	
	// show popup
	$('#' + idName).css({
		"position": "absolute",
		"top": $(window).height() / 2 - $('#' + idName).height() / 2,
		"left": $(window).width() / 2 - $('#' + idName).width() / 2,
		"z-index": 999
	});
	
	$('#' + idName + 'Background').css({  
		"opacity": "0.7"  
	});
	
	$('#' + idName).fadeIn('slow');
	$('#' + idName + 'Background').fadeIn('slow');
	
	// if hotelsearchbox or popupboek disable close popup except the link
	if(idName == 'popupHotelsearchbox' || idName == 'popupBoek')
	{
		$('.closePopup').click(function(){ hidePopup(idName); });
		$('.openNewPopup').click(function(){ window.open($('#popupIframe').attr('src')); return false; });
	}
	else
	{
		// hide popup
		$('.closePopup, .popupBackground').click(function(){ hidePopup(idName); });
		
		$(document).keyup(function(e){ 
			if(e.which && e.which == 27 || e.keyCode && e.keyCode == 27) // esc
			{ 
				hidePopup(idName); 
			}
			/*
			else if(e.which && e.which == 13 || e.keyCode && e.keyCode == 13) // enter
			{
					$('#' + idName + ' .verstuurBijdrage').click();
			}*/
		});
	}
}

/**
* Hide popup
*
* @param string idName
* @return void
*/
function hidePopup(idName)
{
	$('#' + idName).fadeOut('slow');
	$('#' + idName + 'Background').fadeOut('slow');
}

/**
* Set base url
*
* @param string url
* @return void
*/
function setBaseUrl(url)
{
	baseUrl = url;
}

/**
* Get base url
*
* @return string
*/
function getBaseUrl()
{
	return baseUrl;
}

function in_array (needle, haystack, argStrict) {
    var key = '', strict = !!argStrict;
 
    if (strict) {
        for (key in haystack) {
            if (haystack[key] === needle) {
                return true;
            }
        }
    } else {
        for (key in haystack) {
            if (haystack[key] == needle) {
                return true;
            }
        }
    }
 
    return false;
}

var loadedPopups = new Array();

function renderPopup(filename, show, suggestions)
{
	if(!in_array(filename, loadedPopups))
	{
		if(filename != 'popupPersonal.phtml')
		{
			loadedPopups.push(filename);
		}
		var type
		if($('#monitor').length == 0)
		{
			type = "kaart";
		}
		else
		{
			type = "monitor";
		}
		
		$.ajax({
			type: 'POST',
			url: getBaseUrl() + '/ajax/renderpopup',
			data: 'filename=' + filename + '&type=' + type + '&suggestions=' + suggestions,
			dataType: 'html',
			success:
				function(data)
				{
					$('#popups').append(data);
					filename = filename.replace(/\x2Ephtml/,'');
					if(show){
						showPopup(filename);
						}
					//$("#" + filename).center();
				}
		});
	}
}

function toggle() {
	var ele = document.getElementById("popupSelected");
	var text = document.getElementById("displayText");
	if(ele.style.display == "block") {
			ele.style.display = "none";
	}
	else {
		ele.style.display = "block";
	}
} 

// removeCheckedOptions
function removeCheckedOptions()
{
	var path = document.location.pathname;
	if(path.match(/brandweer\x2F0/)){document.getElementById('brandweer').removeAttribute('checked');}
	if(path.match(/ambulance\x2F0/)){document.getElementById('ambulance').removeAttribute('checked');}
	if(path.match(/politie\x2F0/)){document.getElementById('politie').removeAttribute('checked');}
	if(path.match(/hoog\x2F0/)){document.getElementById('hoog').removeAttribute('checked');}
	if(path.match(/midden\x2F0/)){document.getElementById('midden').removeAttribute('checked');}
	if(path.match(/laag\x2F0/)){document.getElementById('laag').removeAttribute('checked');}
}

function validateOptions(){
	var diensten = new Array();
	diensten[0] = document.getElementById('optionform').brandweer.checked;
	diensten[1] = document.getElementById('optionform').ambulance.checked;
	diensten[2] = document.getElementById('optionform').politie.checked;
	diensten[3] = document.getElementById('optionform').hoog.checked;
	diensten[4] = document.getElementById('optionform').midden.checked;
	diensten[5] = document.getElementById('optionform').laag.checked;
	diensten[6] = $("#slider").slider("value");
	//alert(document.check.slider.value);
	removeCustomMarkers(diensten);
}

function searchForm()
{
	getMessageDetails(document.getElementById('searchform').searchQuery.value);
}

function validateMonitorOptions(){
	var diensten = new Array();
	diensten[0] = document.getElementById('optionform').brandweer.checked;
	diensten[1] = document.getElementById('optionform').ambulance.checked;
	diensten[2] = document.getElementById('optionform').politie.checked;
	diensten[3] = document.getElementById('optionform').hoog.checked;
	diensten[4] = document.getElementById('optionform').midden.checked;
	diensten[5] = document.getElementById('optionform').laag.checked;
	//alert(document.check.slider.value);
	var url = document.location.href;
	var zoekveld = document.getElementById('searchform').searchQuery.value;
	if(zoekveld)
	{
		filterMonitor(diensten, zoekveld);
	}
	else
	{
		filterMonitor(diensten, false, url);
	}
}
function searchFormMonitor(){
	validateMonitorOptions();
}
