var search_error = false;
// ARRAYS, OBJECTS, VARIABLES
var ajax = {
	url: '0'
};
	ajax.item = {
		idSelector: '0'
	};
	ajax.target = {
		idSelector: '#layerAjaxTarget'
	};

var browser = {};
	browser.document = {
		height: 0,
		width: 0
	};
	browser.viewport = {
		height: 0,
		width: 0
	};

var dimmer = {
	display: 0,
	idSelector: '#dimmer',
	isOpen: 0,
	zIndex: 0
};
	dimmer.loader = {
		classSelector: '.ajaxLadeanzeige',
		display: 0,
		height: 0,
		width: 0
	};

var layer = {
	idSelector: '#layer',
	isOpen: 0
};
	layer.innerPart = {
		classSelector: '.innenteil',
		height: 0,
		left: -10,
		top: 18
	};
	layer.innerPart.ajaxLoader = {
		className: 'ajaxLadeanzeige'
	};
	layer.shadow = {
		outerPadding: 10
	};
		layer.shadow.bottom = {
			classSelector: '.schattenUnten',
			height: 18
		};
		layer.shadow.top = {
			classSelector: '.schattenOben',
			height: 0
		};
	layer.toggle = {
		idSelector: 0
	};
		layer.toggle.active = {
			className: 'geoeffnet'
		};

var registry = {
	className: 'registrierung',
	type: 'registry'
};
	registry.dimmer = {
		display: 0,
		zIndex: 1
	}
		registry.dimmer.loader = {
			display: 0
		};
	registry.parts = {};
		registry.parts.registrationMask = {
			idSelector: '#registryAjaxItem_registrationMask'
		};
	registry.ajax = {
		url: '/Radio/Steuerseiten/AJAX-Registrierung'
	};
		registry.ajax.initialItem = {
			idSelector: registry.parts.registrationMask.idSelector
		};
	registry.toggle = {
		idSelector: '#registryToggle'
	};

var settings = {
	className: 'profilEinstellungen',
	type: 'settings'
};
	settings.dimmer = {
		display: 1,
		zIndex: 1
	};
		settings.dimmer.loader = {
			display: 0
		};
	settings.parts = {};
		settings.parts.changeEmailAddress = {
			idSelector: '#settingsAjaxItem_changeEmailAddress'
		};
		settings.parts.changePassword = {
			idSelector: '#settingsAjaxItem_changePassword'
		};
		settings.parts.myInterests = {
			idSelector: '#settingsAjaxItem_myInterests'
		};
		settings.parts.newsletterOptions = {
			idSelector: '#settingsAjaxItem_newsletterOptions'
		};
	settings.ajax = {
		url: '/Radio/Steuerseiten/AJAX-Einstellungen'
	};
		settings.ajax.initialItem = {
			idSelector: settings.parts.myInterests.idSelector
		};
	settings.toggle = {
		idSelector: '#settingsToggle'
	};

// DOCUMENT
$(document).ready(function() {
	$(document).click(function() {
		hideLayer();
		closeAll();
	});
	$('#search').click(function(e) {
		e.stopPropagation();
	});
	$(layer.idSelector).click(function(e) {
		e.stopPropagation();
	});
	$(registry.toggle.idSelector + ' a').click(function(e) {
		e.stopPropagation();
		presetParams(registry.type, registry.ajax.url, registry.ajax.initialItem.idSelector);
		return false;
	});
	$(settings.toggle.idSelector + ' a').click(function(e) {
		e.stopPropagation();
		presetParams(settings.type, settings.ajax.url, settings.ajax.initialItem.idSelector);
		return false;
	});
	$('#vormerken').mouseover(function () {$('#vormerken span').addClass('ui-checkbox-hover ui-checkbox-state-hover');});
	$('#vormerken').mouseout(function () {$('#vormerken span').removeClass('ui-checkbox-hover ui-checkbox-state-hover');});
	$('#userNameForPassword').keydown(function (e) {
		return requestPasswordKeyDown(e);
	});
});

// FUNCTIONS
function getBrowserDimensions() {
	browser.document.height = $(document).height();
	browser.document.width = $(document).width();
	browser.viewport.height = $(window).height();
	browser.viewport.width = $(window).width();
}

function hideDimmer() {
	$(dimmer.idSelector).hide();
	dimmer.isOpen = 0;
}

function hideDimmerLoader() {
	$(dimmer.idSelector).find(dimmer.loader.classSelector).hide();
}

function hideLayer() {
	if (dimmer.display == 1 && dimmer.isOpen == 1) {
		hideDimmer();
		if (dimmer.loader.display == 1) {
			hideDimmerLoader();
		}
	}
	$(layer.toggle.idSelector + ' a').removeClass(layer.toggle.active.className);
	$(layer.idSelector).css({
		left: -9999,
		top: -9999
	});
	$(layer.innerPart.classSelector).empty();
	layer.isOpen = 0;

}

function presetParams(type, ajaxUrl, ajaxItemId) {
	ajax.url = ajaxUrl;
	ajax.item.idSelector = ajaxItemId;
	if (type == registry.type) {
		layer.toggle.idSelector = registry.toggle.idSelector;
		dimmer.display = registry.dimmer.display;
		dimmer.loader.display = registry.dimmer.loader.display;
		dimmer.zIndex = registry.dimmer.zIndex;
		$(layer.idSelector).addClass(registry.className);
	} else if (type == settings.type) {
		layer.toggle.idSelector = settings.toggle.idSelector;
		dimmer.display = settings.dimmer.display;
		dimmer.loader.display = settings.dimmer.loader.display;
		dimmer.zIndex = settings.dimmer.zIndex;
		$(layer.idSelector).removeClass('registrierung');
		$(layer.idSelector).addClass(settings.className);
	}
	if (layer.isOpen == 0) {
		setLayerDimensions();
		showLayer();
	} else {
		hideLayer();
	}
}

function runAjax() {
		$(ajax.target.idSelector).load(ajax.url + ' ' + ajax.item.idSelector, function() {
		replaceFormElements();
		if (ajax.item.idSelector == settings.parts.myInterests.idSelector) {
			$('#selectionViaTopicGenre, #selectionViaStation, #interestedInTopicsGenres').accordion({
				active: false,
				autoHeight: false,
				clearStyle: true,
				collapsible: true,
				header: '.ausloeser',
				navigation: true
			});
		}
		$(layer.innerPart.classSelector).removeClass(layer.innerPart.ajaxLoader.className);
		$.each($('input[name="dpt[]"]'),function (key,value) {updatePartialStates(value, false, false);});
		$.each($('input[name="institution_station[]"]'),function (key,value) {updatePartialStates(value, false);});
		$.each($('input[name="wave_station[]"]'),function (key,value) {updatePartialStates(value, false);});
		$('form[id^="form_"]').first().submit(function() {$('.standardKnopf').first().click();return false;})
		setLayerDimensions();
	});
}

function setDimmerDimensions() {
	getBrowserDimensions();
	if (browser.viewport.height > browser.document.height) {
		$(dimmer.idSelector).height(browser.viewport.height);
	} else {
		$(dimmer.idSelector).height(browser.document.height);
	}
	if (browser.viewport.width > browser.document.width) {
		$(dimmer.idSelector).width(browser.viewport.width);
	} else {
		$(dimmer.idSelector).width(browser.document.width);
	}
}

function setLayerDimensions() {
	layer.innerPart.height = $(layer.idSelector).find(layer.innerPart.classSelector).outerHeight();
	layer.shadow.top.height = layer.innerPart.height + (layer.shadow.outerPadding*2) - layer.shadow.bottom.height;
	$(layer.idSelector).height(layer.innerPart.height + (layer.shadow.outerPadding*2));
	$(layer.idSelector).find(layer.shadow.top.classSelector).height(layer.shadow.top.height);
	$(layer.idSelector).find(layer.shadow.bottom.classSelector).css('top', layer.shadow.top.height).height(layer.shadow.bottom.height);
}

function showDimmer(zIndex) {
	dimmer.isOpen = 1;
	$(dimmer.idSelector).css('z-index', zIndex).show();
}

function showDimmerLoader() {
	$(dimmer.idSelector).find(dimmer.loader.classSelector).show();
}

function showLayer() {
	layer.isOpen = 1;
	$(layer.innerPart.classSelector).empty();
	$(layer.idSelector).removeClass('einblenderAlsMeldung');
	hideForgotPassword();
	hideSearch();
	if (dimmer.display == 1 && dimmer.isOpen == 0) {
		setDimmerDimensions();
		showDimmer(dimmer.zIndex);
		if (dimmer.loader.display == 1) {
			showDimmerLoader();
		}
	}
	$(layer.toggle.idSelector + ' a').addClass(layer.toggle.active.className);
	$(layer.innerPart.classSelector).addClass(layer.innerPart.ajaxLoader.className);
	$(layer.idSelector).css({
		left: layer.innerPart.left,
		top: layer.innerPart.top
	});
	runAjax();
}

function updateLayer(ajaxUrl, ajaxItemId) {
	ajax.url = ajaxUrl;
	ajax.item.idSelector = ajaxItemId;
	runAjax();
}

function submitMyInterests(targeturl) {
	$.get(targeturl+'?action=interests&'+$('#form_myInterests').serialize().replace(/%5B%5D/g, '[]'),'',function(data) {
		if (data=='OK') {showHideOK('myInterests'); } else showHideError('myInterests');
		$('#headline_myInterests').show();
	},'json');
}

function submitNewsletterOptions(targeturl) {
	$.get(targeturl+'?action=newsletter&'+$('#form_newsletterOptions').serialize().replace(/%5B%5D/g, '[]'),'',function(data) {if (data=='OK') {showHideOK('newsletterOptions');} else showHideError('newsletterOptions');},'json');
}

function submitForgotPassword(targeturl) {
	$.get(targeturl+'?action=forgot_password','',function(data) {if (data=='OK') {
		$('#oktext_changePassword').html('<p><strong>Das Passwort wurde verschickt.</strong><br />In K&uuml;rze erhalten Sie von uns eine E-Mail mit ihrem Passwort.</p>');
		showHideOK('changePassword');
	} else showHideError('changePassword');},'json');
}

function submitForgotPasswordInLoginScreen() {
	$.get('/Radio/Steuerseiten/AJAX-EinstellungenSpeichern?action=forgot_password_in_login_screen&userName='+ $('#userNameForPassword').val(),'',function(data) {
		if (data=='OK') {
			$('.passwordVergessenText1').css('display','none');
			$('.passwordVergessenText2').css('display','block');
		} else {
			$('.passwordVergessenText1').css('display','none');
			$('.passwordVergessenText3').css('display','block');
		}
	},'json');
}

function submitChangeEmailAddress(targeturl) {
	$.get(targeturl+'?action=email&'+$('#form_changeEmailAddress').serialize().replace(/%5B%5D/g, '[]'),'',function(data) {
		if (data=='OK') {
			showHideOK('changeEmailAddress');
		} else {
			var error ="";
			switch(data) {
				case 'NO_VALID_EMAIL_ERROR':	error = 'Sie haben keine gültige E-Mail Adresse eingegeben.';
												break;
				case 'DUPLICATE_EMAIL_ERROR':	error = 'Diese E-Mail Adresse wird bereits von einem anderen Benutzer verwendet.';
												break;
				default:						error = 'Ein unbekannter Fehler ist aufgetreten.';
												break;
			}
			$('#errortext_changeEmailAddress').html(error);
			showHideError('changeEmailAddress');
		}
		
	},'json');
}

function submitChangePassword(targeturl) {
	$.get(targeturl+'?action=password&'+$('#form_changePassword').serialize().replace(/%5B%5D/g, '[]'),'',function(data) {
		if (data=='OK') {
			showHideOK('changePassword');
		} else {
			var error ="";
			switch(data) {
				case 'WRONG_PASSWORD_ERROR':	error = 'Das Passwort dass Sie eingegeben haben ist leider nicht g&uuml;ltig.';
												break;
				case 'BAD_PASSWORD_ERROR':		error = 'Ihr neues Passwort entsprach leider nicht den Richtilinien. (6-15 Zeichen)';
												break;
				case 'CONFIRM_PASSWORD_ERROR':	error = 'Die Passwortbest&auml;tigung entspricht leider nicht dem neuen Passwort.';
												break;
				default:						error = 'Ein unbekannter Fehler ist aufgetreten.';
												break;
			}
			$('#errortext_changePassword').html(error);
			showHideError('changePassword');
		}
	},'json');
}

function submitRegister(targeturl) {
	$.get(targeturl+'?action=register&'+$('#form_register').serialize().replace(/%5B%5D/g, '[]'),'',function(data) {if (data=='OK') {showHideOK('register');} else {
		$('#form_register input').removeClass('fehler');
		var error = "";
		$.each(data,function(key, value) {
			var delim = error?'<br>':'';
			switch(value) {
				case 'PASSWORDCONFIRM':		$('#passwortbestaetigung').addClass('fehler');
											error += delim + 'Die Passw&ouml;rter stimmen nicht &uuml;berein.';
											break;
				case 'NOTANEMAIL':			$('#eMailAdresse').addClass('fehler');
											error += delim + 'Das ist keine g&uuml;ltige E-Mail Adresse.';
											break;
				case 'EMAILEXISTS':			$('#eMailAdresse').addClass('fehler');
											error += delim + 'Mit dieser E-Mail Adresse ist bereits jemand registriert.';
											break;
				case 'NAMEEXISTS':			$('#wunschname').addClass('fehler');
											error += delim + 'Ihr Wunschname ist leider bereits vergeben.';
											break;
				case 'BADPWD':				$('#passwort').addClass('fehler');
											error += delim + 'Ihr Passwort entspricht leider nicht den Richtlinien. (6-15 Zeichen)';
											break;
				case 'NONAME':				$('#wunschname').addClass('fehler'),
											error += delim + 'Bitte geben Sie einen Benutzernamen Ihrer Wahl an.';
											break;
				case 'NOPWD':				$('#passwort').addClass('fehler');
											$('#passwortbestaetigung').addClass('fehler');
											error += delim + 'Bitte geben Sie einen Passwort an.';
											break;
				default:					error += delim + 'Ein unbekannter Fehler ist aufgetreten.';
											break;

			}
			
		});
		if (error !="")
		{
			$('#register_error').html('<p>' + error + '</p>');
			$('#register_error').show();
			setLayerDimensions();

		};
			
	}},'json');
}

function showHideOK (element) {
	$('#input_'+element).hide(0,function () {setLayerDimensions()});
	$('#ok_'+element).show();
	$('#save_'+element).hide();
	$('#close_'+element).show();
}

function showHideError (element) {
	$('#input_'+element).hide(0,function () {setLayerDimensions()});
	$('#error_'+element).show();
	$('#save_'+element).hide();
	$('#close_'+element).show();
}

var busy_recommend = false;
function submitRecommendation(targeturl) {
	if (!busy_recommend)
	{
		busy_recommend = true;
		$.get(targeturl+'?action=recommend&'+$('#form_recommend').serialize(),'',function(data) {
			if (data=='OK') {
				showHideOK('recommend');
			} else {
				var error ="";
				$('#form_recommend input').removeClass('fehler');
				$.each(data,function(key, value) {
					switch(value) {
						case 'BAD_TARGET_EMAIL_ERROR':	$('#weiteremfehlen_emailAdresseEmpfaenger').addClass('fehler');
														break;
						case 'BAD_EMAIL_ERROR':			$('#weiteremfehlen_meineEmailAdresse').addClass('fehler');
														break;
						case 'MESSAGE_TOO_LONG_ERROR':	$('#weiteremfehlen_meineNachricht').addClass('fehler');
														break;
						case 'TOO_MANY_REQUESTS_ERROR':	showHideError('recommend');
														break;
						default:						break;
					}
				});
			}
			busy_recommend = false;
		},'json');
	}
}

function updatePartialStates(thing, updateBoth) {
	checkedBoxes = $('input:checked',$(thing).parent().parent()).size();
	totalBoxes = $('input:checkbox',$(thing).parent().parent()).size();
	uncheckedBoxes = totalBoxes - checkedBoxes;

	if( updateBoth && $(thing).attr('id').substr(0, 5)=="wave_" ) {
		var station_id = $(thing).attr('id').substr(15);
		$('#institution_station_' + station_id).checkBox('changeCheckStatus',$(thing).attr('checked'));
		updatePartialStates( $('#institution_station_' + station_id), false );
	}
	else if( updateBoth && $(thing).attr('id').substr(0, 12)=="institution_" ) {
		var station_id = $(thing).attr('id').substr(20);
		for (var i = 1; i <= 5; i++) {
			$('#wave_'+i+'_station_' + station_id).checkBox('changeCheckStatus',$(thing).attr('checked'));
			updatePartialStates( $('#wave_'+i+'_station_' + station_id), false );
		}
	}

	if (totalBoxes == 0)
	{
		$('.ui-checkbox',$(thing).parent().parent().parent()).first().removeClass('checkbox-state-partial');
	//	$('input:checkbox',$(thing).parent().parent().parent()).first().checkBox('changeCheckStatus',false​);​
	} else if (uncheckedBoxes == 0)
	{
		$('.ui-checkbox',$(thing).parent().parent().parent()).first().removeClass('checkbox-state-partial');
		$('input:checkbox',$(thing).parent().parent().parent()).first().checkBox('changeCheckStatus',true);
	} else if (checkedBoxes == 0)
	{
		$('.ui-checkbox',$(thing).parent().parent().parent()).first().removeClass('checkbox-state-partial');
		$('input:checkbox',$(thing).parent().parent().parent()).first().checkBox('changeCheckStatus',false);
	} else {
		$('input:checkbox',$(thing).parent().parent().parent()).first().checkBox('changeCheckStatus',false);
		$('.ui-checkbox',$(thing).parent().parent().parent()).first().addClass('checkbox-state-partial');
	}
}

function updateAllInstitutionStations( thing, institutionId ) {
	$(thing).next().removeClass('checkbox-state-partial');
	$('#institution_' + institutionId + '_ul input:checkbox').checkBox('changeCheckStatus',$(thing).is(':checked'));

	$.each($('#institution_' + institutionId + '_ul input:checkbox'),function(key, value) {
		var station_id = $(value).attr('id').substr(20);
		for (var i = 1; i <= 5; i++) {
			$('#wave_'+i+'_station_' + station_id).checkBox('changeCheckStatus',$(thing).is(':checked'));
			updatePartialStates( $('#wave_'+i+'_station_' + station_id), false );
		}
	});
}

function updateAllWaveStations( thing, waveId ) {
	$(thing).next().removeClass('checkbox-state-partial');
	$('#wave_' + waveId + '_ul input:checkbox').checkBox('changeCheckStatus',$(thing).is(':checked'));

	$.each($('#wave_' + waveId + '_ul input:checkbox'),function(key, value) {
		var station_id = $(value).attr('id').substr(15);
		$('#institution_station_' + station_id).checkBox('changeCheckStatus',$(thing).is(':checked'));
		updatePartialStates( $('#institution_station_' + station_id), false );
	});
}

function updateTagSearch(url) {
	var keywords = $('#searchfield').val();
	if (keywords.length >2)
	{
		$('#vorschlagsliste').load(url + '?searchterms=' + encodeURI(keywords),function () {
			if ($.trim($('#vorschlagsliste').html()))
		{
			$('#topicSelection').show();
		}
		});
		
	} else {
		$('#topicSelection').hide();
		$('#vorschlagsliste').empty();
	}
	
}
var searchday = "";
var searchtime = "";
function updateSearchDay(trigger) {
	searchday = $(trigger).html();
	changeTriggerValue("date",searchday);
	var from ="";
	var to ="";
	switch (searchday) {
		case 'Gestern' :
			from = Date.today().add(-1).day();
			to = Date.today().add(-1).day();
			break;
		case 'Heute' :
			from = Date.today();
			to = Date.today();
			break;
		case 'Morgen' :
			from = Date.today().add(1).day();
			to = Date.today().add(1).day();
			break;
		case 'Diese Woche (+7)' :
			from = Date.today();
			to = Date.today().add(6).day();
			break;
		case 'Ganzer Zeitraum' :
			from = Date.today();
			to = Date.today().add(28).day();
			break;
	}
	daySelected(from.toString('dd.MM.yyyy'),'datumVon');
	daySelected(to.toString('dd.MM.yyyy'),'datumBis');
	toggleSelection('#dateSelection', '#dateTrigger');
}

function updateSearchTime(trigger) {
	searchtime = $(trigger).html();
	var from ="";
	var to ="";
	switch (searchtime) {
		case 'Jetzt' :
			from = Date.now().toString('HH:mm');
			to = from;
			break;
		case '00:00-06:00' :
			from = '00:00';
			to = '06:00';
			break;
		case '06:00-12:00' :
			from = '06:00';
			to = '12:00';
			break;
		case '12:00-18:00' :
			from = '12:00';
			to = '18:00';
			break;
		case '18:00-23:59' :
			from = '18:00';
			to = '23:59';
			break;
		case 'Ganzer Tag' :
			from = '00:00';
			to = '23:59';
			break;
		
	}
	$('#uhrzeitVon').val(from);
	$('#uhrzeitBis').val(to);
	updateSearchTimeTime();
	toggleSelection('#timeSelection', '#timeTrigger');
}

function updateSearchTimeTime() {
	d = Date.parseExact($('#uhrzeitVon').val(),new Array('HH:mm','H:mm'));
	d2 = Date.parseExact($('#uhrzeitBis').val(),new Array('HH:mm','H:mm'));
	if (!d || !d2) return;
	//if (d.compareTo(d2) ==1) return;
	if (d.toString('HH:mm') == d2.toString('HH:mm'))
	{
		$('#timeTrigger a').html(d.toString('HH:mm'));
	} else 	$('#timeTrigger a').html(d.toString('HH:mm') + '-' + d2.toString('HH:mm'));
	//toggleSelection('#timeSelection', '#timeTrigger');
}

function changeTriggerValue(trigger,value) {
	$('#' + trigger + 'Trigger a').html(value);
}

function hideTagSearch() {
	$('#topicSelection').hide();
	selectedSearchElement = 0;
	$('li[name=vorschlagselement]').removeClass('fokus');
}

var selectedSearchElement = 0;

function searchFieldKeyUp(e) {
	e = allEve(e);
	code = e.key;
	//38 up
	//40 down
	if (code == 38 && selectedSearchElement > 1)
	{
		selectedSearchElement--;
		$('li[name=vorschlagselement]').removeClass('fokus');
		$($('li[name=vorschlagselement]')[selectedSearchElement-1]).addClass('fokus');
	} else if (code == 40 && selectedSearchElement < $('li[name=vorschlagselement]').length)
	{
		selectedSearchElement++;
		$('li[name=vorschlagselement]').removeClass('fokus');
		$($('li[name=vorschlagselement]')[selectedSearchElement-1]).addClass('fokus');
	} else	if (code == 13 && $(id_searchToggleOpen).is(':visible'))
	{
		if (selectedSearchElement !=0)
		{
			$('#searchfield').val($($('li[name=vorschlagselement]')[selectedSearchElement-1]).find('a').html());
			setBookmarkTarget($($('li[name=vorschlagselement]')[selectedSearchElement-1]).find('a').attr('href'));
			hideTagSearch();
		} else document.forms['searchForm'].submit();
	}

	if (code != 38 && code != 40 && code != 13 && code != 37 && code != 39 )
	{
		$("#searchForm").attr("action",'/Radio/Suchergebnis');
		$('#searchfield').removeClass('schlagwort');
		updateTagSearch('/Radio/Steuerseiten/AJAX-SchlagworteDurchsuchen');

	}
}

function requestPasswordKeyDown(e) {
	e = allEve(e);
	code = e.key;
	if (code == 13) {
		submitForgotPasswordInLoginScreen();
		return false;
	}
	return true;
}

function resetSearchForm() {
	$('#searchfield').val('Thema, Werk, Künstler');
	$('#datumVon').val(Date.today().toString('dd.MM.yyyy'));
	$('#datumBis').val(Date.today().add(6).day().toString('dd.MM.yyyy'));
	$('#uhrzeitVon').val('00:00');
	$('#uhrzeitBis').val('23:59');
	$('#dateTrigger a').html('Diese Woche (+7)');
	$('#timeTrigger a').html('Ganzer Tag');
	$('#categoriesTrigger a').html('Alle Kategorien');
	$('#wavesTrigger a').html('Alle Wellen');
	$('#search input:checkbox').checkBox('changeCheckStatus',false);
	$('#search .checkbox-state-partial').removeClass('checkbox-state-partial');
	$('#datumVon').removeClass('fehler');
	$('#datumBis').removeClass('fehler');
	$('#datumFehler').hide();
	$('#uhrzeitVon').removeClass('fehler');
	$('#uhrzeitBis').removeClass('fehler');
	$('#uhrzeitFehler').hide();
	$('#searchForm').attr('action','/Radio/Suchergebnis');
	$('#searchfield').removeClass('schlagwort');
	search_error = false;
}

function setBookmarkTarget(target) {
	$("#searchForm").attr("action",target);
	$('#searchfield').addClass('schlagwort');
}

var dateFromCalendar = 0;
var dateToCalendar = 0;
var id_closeCalendarTrigger = '#closeCalendarTrigger';
var id_dateCalendar = '#dateCalendar';
var id_dateFromTrigger = '#dateFromTrigger';
var id_dateToRow = '#dateToRow';
var id_dateToTrigger = '#dateToTrigger';
var id_search = '#search';
var id_searchToggleClosed = '#searchToggleClosed';
var id_searchToggleOpen = '#searchToggleOpen';
var search_url = '/Radio/Steuerseiten/AJAX-Suche';
var menues = new Array('date','time','categories','waves' );
var forgotPasswordDialog = 0;

function toggleForgotPassword() {
	if (forgotPasswordDialog == 0) {
		hideSearch();
		showForgotPassword();
	} else {
		hideForgotPassword();
	}
}

function showForgotPassword() {
	$('.passwordVergessenText3').css('display','none');
	$('.passwordVergessenText2').css('display','none');
	$('.passwordVergessenText1').css('display','block');
	$('.passwortVergessenAusloeser').addClass('offen');
	$('.passwordVergessenDialog').show();
	forgotPasswordDialog = 1;
}

function hideForgotPassword() {
	$('.passwortVergessenAusloeser').removeClass('offen');
	$('.passwordVergessenDialog').hide();
	forgotPasswordDialog = 0;
}

function hideCalendar() {
	$(id_dateCalendar).hide();
}
function hideSearch() {
	toggleShowSearch(0);
	$('.auswahlVeraendern').show();
	$(id_searchToggleClosed).show();
	$(id_searchToggleOpen).hide();
	$(id_search).css({
		left: -9999,
		top: -9999
	});
	$(id_search).empty();
	$(id_search).append('<div class="ajaxLadeanzeige"></div>');
}
function showCalendar(target) {
	$(id_dateCalendar).load("/Radio/Steuerseiten/AJAX-Kalender?target="+target,function () {
		$(id_closeCalendarTrigger).click(function() {
			if (dateFromCalendar == 1) {
				$(id_dateToRow).show();
			}
			dateFromCalendar = 0;
			dateToCalendar = 0;
			hideCalendar();
		});
		});
	$(id_dateCalendar).show();
}
function showSearch() {
	hideForgotPassword();
	toggleShowSearch(1);
	$('.auswahlVeraendern').hide();
	$(id_searchToggleClosed).hide();
	$(id_searchToggleOpen).show();
	$(id_search).css({
		left: 0,
		top: 28
	});
	$(id_search).load(search_url, function() {
		replaceFormElements();
		$('#dateAccordion, #categoriesAccordion, #wavesFormatsAccordion, #wavesStationsAccordion').accordion({
			active: false,
			autoHeight: false,
			clearStyle: true,
			collapsible: true,
			header: '.ausloeser'
		});
		$( "#wavesTabs" ).tabs({
			selected: 0
		});
		$(id_dateFromTrigger).click(function() {
			if (dateFromCalendar == 1) {
				dateFromCalendar = 0;
				hideCalendar();
				$(id_dateToRow).show();
			} else {
				dateFromCalendar = 1;
				dateToCalendar = 0;
				showCalendar('datumVon');
				$(id_dateToRow).hide();
			}
			return false;
		});
		$(id_dateToTrigger).click(function() {
			if (dateToCalendar == 1) {
				dateToCalendar = 0;
				hideCalendar();
			} else {
				dateToCalendar = 1;
				showCalendar('datumBis');
			}
			return false;
		});
		$('#searchfield').keyup(function (e) {
			searchFieldKeyUp(e);
		});
		$.each($('.suche input[name="dpt[]"]'),function (key,value) {updatePartialStates(value, false);});
		$.each($('.suche input[name="institution_station[]"]'),function (key,value) {updatePartialStates(value, false);});
		$.each($('.suche input[name="wave_station[]"]'),function (key,value) {updatePartialStates(value, false);});
		$('.suche input[name="dpt[]"]').click(function (e) {
			updateBox(this);
		});
		$('.suche input[name="institution_station[]"]').click(function (e) {
			updateBox(this);
		});
		$('.suche input[name="wave_station[]"]').click(function () {
			updateBox(this);
		});
		updateWaveSelect();
		updateDptSelect()
	});
}

function updateBox(box) {
	if (!$(box).is(':checked')) $('input[value="' + box.value + '"]').checkBox('changeCheckStatus',$(box).is(':checked'));
	updatePartialStates(box, false);
	if (!$(box).is(':checked')) $.each($('input[value="' + box.value + '"]'), function (k,v) { 
		updatePartialStates(v, false);
	});
	updateWaveSelect();
	updateDptSelect();
}

function openSelection(id_target, id_trigger) {
	if (search_error)return;
	if ($(id_target).is(':visible')) {
		//$(id_trigger + ' a').removeClass('geoeffnet');
	} else {
		//closeAll();
		$(id_trigger + ' a').addClass('geoeffnet');
	}
	if (!$(id_target).is(':visible')) {
		$(id_target).toggle();
	}
}

function toggleSelection(id_target, id_trigger) {	
	if (search_error)return;
	if ($(id_target).is(':visible')) {
		$(id_trigger + ' a').removeClass('geoeffnet');
	} else {
		closeAll();
		$(id_trigger + ' a').addClass('geoeffnet');
	}
	$(id_target).toggle();
}

function closeAll() {
	if (search_error) return;
	$.each(menues,function (key,value) {
		if ($('#' + value + 'Selection').is(':visible'))
		{
			$('#' + value + 'Trigger' + ' a').removeClass('geoeffnet');
			$('#' + value + 'Selection').toggle();
		}
		
	});
}

function daySelected(day, target) {
	$('#' + target).val(day);
	if (dateFromCalendar == 1) {
		$(id_dateToRow).show();
		updateDateTo(day);
	}
	dateFromCalendar = 0;
	dateToCalendar = 0;
	hideCalendar();

	if ($('#datumBis').val() == $('#datumVon').val())
	{
		d = Date.parse($('#datumVon').val());
		changeTriggerValue("date",d.toString('dd.MM.yyyy'));
	} else {
		d = Date.parse($('#datumVon').val());
		d2 = Date.parse($('#datumBis').val());
		if (d && d2) changeTriggerValue("date",d.toString('dd.MM.') + ' - ' + d2.toString('dd.MM.'));
	}
	checkDateBoxes();
	return false;
}

function updateDateTo(dateFrom) {
        if (!dateFrom) dateFrom = $('#datumVon').val();
	d = Date.parse(dateFrom);
	d2 = Date.parse($('#datumBis').val());
	if (!d) return;
	if ($('#datumBis').val() == 'TT.MM.JJJJ' || !d2) $('#datumBis').val(d.toString('dd.MM.yyyy'));
	else if (d.compareTo(d2) == 1)  $('#datumBis').val(d.toString('dd.MM.yyyy'));
}

function checkDateBoxes() {
	var error = false;
	d = Date.parse($('#datumVon').val());
	
	if (d) {
		if (d.compareTo((7).days().ago()) == -1 || d.compareTo((28).days().fromNow()) == 1) {
			$('#datumFehler span').html('F&uuml;r diesen Zeitraum sind keine Daten vorhanden.');
            error = true;
            
            $('#datumVon').addClass('fehler');
		} else {
			$('#datumVon').removeClass('fehler');
			$('#datumVon').val(d.toString('dd.MM.yyyy')); 
		}
	} else if ($('#datumVon').val() != 'TT.MM.JJJJ' && $('#datumVon').val() != "") {
		error = true;
		$('#datumFehler span').html('Bitte geben Sie das Datum im Format TT.MM.JJJJ ein.');
		$('#datumVon').addClass('fehler');
		//$('#datumVon').val('TT.MM.JJJJ');
	} else $('#datumVon').removeClass('fehler');

	d2 = Date.parse($('#datumBis').val());	
	if (d2) {
		if (d2.compareTo((7).days().ago()) == -1 || d2.compareTo((28).days().fromNow()) == 1) {
			$('#datumFehler span').html('F&uuml;r diesen Zeitraum sind keine Daten vorhanden.');
            error = true;
            $('#datumBis').addClass('fehler');
		} else {
			$('#datumBis').removeClass('fehler');
			$('#datumBis').val(d2.toString('dd.MM.yyyy'));
			if (d && d.compareTo(d2) == 1)  $('#datumBis').val(d.toString('dd.MM.yyyy'));
		}
	} else if ($('#datumBis').val() != 'TT.MM.JJJJ' && $('#datumBis').val() != "")
	{
		error = true;
		$('#datumFehler span').html('Bitte geben Sie das Datum im Format TT.MM.JJJJ ein.');
		$('#datumBis').addClass('fehler');
		//$('#datumBis').val('TT.MM.JJJJ');
	} else $('#datumBis').removeClass('fehler');
	
	if (error) {
		$('#datumFehler').show();
		search_error = true;
    } else {
        $('#datumFehler').hide();
        search_error = false;
        if ($('#datumBis').val() == $('#datumVon').val())
        {
            changeTriggerValue("date",d.toString('dd.MM.yyyy'));
        } else {
            if (d && d2) changeTriggerValue("date",d.toString('dd.MM.') + ' - ' + d2.toString('dd.MM.'));
        }
	}

}

function updateUhrzeitVon (box) {
	d = Date.parseExact($(box).val(),new Array('HH:mm','H:mm'));
	if (d) {
		$('#uhrzeitFehler').hide();
		$(box).removeClass('fehler');
		search_error = false;
		$(box).val(d.toString('HH:mm'));
		d2 = Date.parseExact($('#uhrzeitBis').val(),new Array('HH:mm','H:mm'));
		if (!d2 || d.compareTo(d2) ==1) {
			d2 = d.clone().add(2).hours();
			if (d2.toString('HH:mm') < d.toString('HH:mm'))
			{
				$('#uhrzeitBis').val('23:59');
			} else $('#uhrzeitBis').val(d2.toString('HH:mm'));
			$('#uhrzeitBis').removeClass('fehler');
		}
	} else {
        if ($(box).val() != "" && $(box).val() != "ss:mm") {
            $('#uhrzeitFehler span').html('Bitte geben Sie die Uhrzeit im Format ss:mm ein.');
            $('#uhrzeitFehler').show();
            search_error = true;
            $(box).addClass('fehler');
         }
		//$(box).val(Date.today().toString('HH:mm'));
	}
}

function updateUhrzeitBis(box) {
	d = Date.parseExact($(box).val(),new Array('HH:mm','H:mm')); 
	if (d) {
		$(box).val(d.toString('HH:mm'));
		$('#uhrzeitFehler').hide();
		search_error = false;
		$(box).removeClass('fehler');
	}
	else {
                if ($(box).val() != "" && $(box).val() != "ss:mm") {
		$('#uhrzeitFehler span').html('Bitte geben Sie die Uhrzeit im Format ss:mm ein.');
		$('#uhrzeitFehler').show();
		search_error = true;
		$(box).addClass('fehler');
                }
		$(box).val('ss:mm');
	}
	updateUhrzeitVon($('#uhrzeitVon'));
}

function updateWaveSelect() {
	if ($('#wavesSelection input:checked').size() > 0 ) {
		$('#wavesTrigger a').html('Eigene Auswahl');
	} else $('#wavesTrigger a').html('Alle Wellen');
}

function updateDptSelect() {
	if ($('#categoriesSelection input:checked').size() > 0 ) {
		$('#categoriesTrigger a').html('Eigene Auswahl');
	} else $('#categoriesTrigger a').html('Alle Kategorien');
}

function checkAllSubBoxes(box, ul) {
	$(box).next().removeClass('checkbox-state-partial');
	$(ul + ' input:checkbox').checkBox('changeCheckStatus',$(box).is(':checked'));

	// Für multimarkierung. SEHR langsam im IE
	$.each($(ul + ' input:checkbox'), function (k,v) {
		updateBox(v);
	});
	updateDptSelect();
	updateWaveSelect();
}

function submitPrint() {
	$.each($('.detailInformationen'), function (key,value) { 
		html = '<input type="hidden" name="open_events[]" value="' + $(value).attr('id').substring(23) + '">';
		$('#druckform').append(html);
	})
	document.forms['drucken'].submit();
}

function toggleShowSearch(value) {
	$.get('/Radio/Steuerseiten/AJAX-ToggleShowSearch?showsearch=' + value);
}

function allEve(e){
	var ev= (window.event)? window.event: e;
	
	if(!ev || !ev.type) return false;
	var ME= ev;
	if(ME.type.indexOf('key')!= -1){
		if (ev.keyCode)  ME.key= ev.keyCode;
		else if(window.event || ME.type.indexOf('keypress')!= -1){
			ME.key= (ev.keyCode)? ev.keyCode: ((ev.charCode)? ev.charCode: ev.which);
		}
		else ME.key= ev.charCode;
		if(ME.key) ME.letter= String.fromCharCode(ME.key);
	}
	return ME;
}

function loadSavedSearchDetails () {
	$.get(
		'/Radio/Steuerseiten/AJAX-SucheinstellungenLaden','',function(data) {
			if (data == 'NO_USER_ERROR') return;
			else {
				resetSearchForm()
				$.each(data['stations'], function (key, value) {
					$.each($('#wavesSelection input[value="'+value+'"]'), function (k,v) { 
						$(v).checkBox('changeCheckStatus',true);
						updatePartialStates(v, false);
					});
				});		
				$.each(data['dpts'], function (key, value) {
					$.each($('#categoriesSelection input[value="'+value+'"]'), function (k,v) { 
						$(v).checkBox('changeCheckStatus',true);
						updatePartialStates(v, false);
					});
				});		
				if (data['searchstring']) $('#searchfield').val(data['searchstring']);
				if( data['mode'] == 'and' ) {
					$('#conjunction_and').checkBox('changeCheckStatus',true);	
				}
				else {
					$('#conjunction_or').checkBox('changeCheckStatus',true);
				}
				$('#searchfield').val(data['searchstring']);
				updateDptSelect();
				updateWaveSelect();
			}
		},'json');	
}

