﻿			function knuckleDate(d,m,y) {
				var selDate = parseInt(d.value,10);
				var date = new Date(parseInt(y.value,10), parseInt(m.value,10)-1, selDate);
				if(selDate != date.getDate()) {
					d.selectedIndex = d.selectedIndex - date.getDate();
				}
			}
			
			function LaunchFilter(eventnavid)	{
				var f = document.forms.ffe.elements; 
				knuckleDate(f.tf_begin_day, f.tf_begin_month, f.tf_begin_year);
				knuckleDate(f.tf_end_day, f.tf_end_month, f.tf_end_year);
				var zp = f.tf_begin_day.value + "-";
				zp += f.tf_begin_month.value + "-";
				zp += f.tf_begin_year.value + "-";
				zp += f.tf_end_day.value + "-";
				zp += f.tf_end_month.value + "-";
				zp += f.tf_end_year.value + "-";
				zp += escUrl(GetEventSearchstring(f.keywords.value)) + "-";
				zp += f.category.value + "-";
				zp += "-"; //(f.dewonly.checked)?"ON-":"-";
				zp += f.timeframe.value + "-";

				var url = IstrBaseLink;
				url = AddParamToLink(url, "z", escape(zp));
				url = AddParamToLink(url, "id", eventnavid);
				window.location.href = url;
			}

			function escUrl(val) {
				val=val.replace(/-/g, ".-");
				if (val.charAt(val.length-1) == ".") {
					return val.substr(0, val.length-1);
				}
				else {
					return val;
				}
			}
			
			function CinemaSearch(cinemanavid)	{
				var f = document.forms.ff.elements;
				var zp = f.tf_day.value + "-";
				zp += escUrl(f.keywords.value) + "-";
				zp += f.genre.value + "-";
				zp += (f.openair.checked)?"ON-":"-";

				var url = IstrBaseLink;
				url = AddParamToLink(url, "z2", escape(zp));
//				url = AddParamToLink(url, "z2", escape(f.tf_day.value));
				url = AddParamToLink(url, "id", cinemanavid);
				window.location.href = url;
			}
						
			function setRange(val) {
				var start = new Date();
				var end = new Date();
				switch (parseInt(val,10)) {
					case 2:
						start.setDate(start.getDate()+1);
						end.setDate(end.getDate()+1);
						break;
					case 7:
						end.setDate(end.getDate()+7);
						break;
					case 30:
						end.setMonth(end.getMonth()+1);
						break;
				}
				var f = document.forms.ffe.elements;
				f.tf_begin_day.selectedIndex = start.getDate()-1;
				f.tf_begin_month.selectedIndex = start.getMonth();
				var inityear = parseInt(f.tf_begin_year[0].value);
				f.tf_begin_year.selectedIndex = start.getFullYear()-inityear;
				f.tf_end_day.selectedIndex = end.getDate()-1;
				f.tf_end_month.selectedIndex = end.getMonth();
				f.tf_end_year.selectedIndex = end.getFullYear()-inityear;
			}

		function GetEventSearchstring(searchString) {
		
			var newSearchstring = "";
	
			if (searchString == "") {
				newSearchstring = searchString;
			} else {
				searchString = searchString.replace(/ABER NICHT/g, "AND NOT");
				searchString = searchString.replace(/UND/g, "AND");
				searchString = searchString.replace(/ODER/g, "OR");
				var lstPhrases = new Array();
				
				var lngStartPosition = searchString.indexOf("\"");
				var lngEndPosition = 0;
				if (lngStartPosition >= 0) {
					var i = 0;
					while (lngStartPosition >= 0) {
						lngEndPosition = searchString.indexOf("\"", lngStartPosition + 1);
						
						lstPhrases[i] = searchString.slice(lngStartPosition, lngEndPosition + 1);
						searchString = searchString.replace(lstPhrases[i], "§" + i + "§");
						
						lngStartPosition =  searchString.indexOf("\"", lngEndPosition + 1);
						i++;
					}
				}
				
				var lstParts = searchString.split(" ");
				
				for (var j = 0; j < lstParts.length; j++) {
					var tmpValue = lstParts[j];
	
					tmpValue = tmpValue.replace(/\s$/, "");
					tmpValue = tmpValue.replace(/^\s/, "");
					
					if (tmpValue.search(/§\d.§/) == -1) {
						if (tmpValue.indexOf("*") > 0) {
							lstParts[j] = "\"" + tmpValue + "\"";
						}
					}
				}
				
				var blnConnected = false;
				for (m = 0; m < lstParts.length; m++) {
					var tmpValue = lstParts[m];
					if (tmpValue != "") {
						if ((m > 0)) {
							if (tmpValue == "OR" || tmpValue == "AND" || tmpValue == "NOT") {
								newSearchstring += " " + tmpValue + " ";
								blnConnected = true;
							} else {
								if (!blnConnected) {
									newSearchstring += " AND ";
								}
								newSearchstring += tmpValue;
								blnConnected = false;
							}
						} else {
							newSearchstring += tmpValue;
						}
					}
				}
			
				// phrasen wieder einsetzen
				for (var k = 0; k < lstPhrases.length; k++) {
					newSearchstring = newSearchstring.replace("§" + k + "§", lstPhrases[k]);
				}
			}
			
			return newSearchstring;
		}
