//function blaetter_blogs(tag,topic,sprache,page) {
function blaetter_blogs(tag,sprache,topic,page) {
//	alert(page);
location.href= "http://www.multikulinarisch.de/foodblogs/"  + sprache + "/"  + tag + "_" + topic + "_" + page + ".html";
}

function blaetter_pm(value){
if(value != 1) {
	location.href='http://www.multikulinarisch.de/kulinarische-pressemeldungen_'+ value + '.html';
	}
else {
	location.href='http://www.multikulinarisch.de/kulinarische-pressemeldungen.html';
	}
}


// zählt Anzahl Zeichen (bei Anzeigen)
function textCounter(field, countfield, maxlimit) {
    if (field.value.length > maxlimit) {
        field.value = field.value.substring(0, maxlimit);
    } else {
        countfield.value = maxlimit - field.value.length;
    }
}




// Kategorien Grobauswahl Kalenderfilter
function select_categories(value) {
//	alert(value);
var category_value = 0;
var unchecked_boxes = $$('#categorieselection input[type="checkbox"]:not(:checked)');
var checked_boxes = $$('#categorieselection input[type="checkbox"]:checked');
if(value == 0) {
	unchecked_boxes.each(function(e){ e.checked = 1 });
	}
else if(value == 1) {
	checked_boxes.each(function(e){ e.checked = 0 });
	}
else if(value == 2) {
	checked_boxes.each(function(e){ e.checked = 0 });
	selectCategory(1);
	selectCategory(11);
	}
else if(value == 3 || value == 4 || value == 5) {
	checked_boxes.each(function(e){ e.checked = 0 });
	if(value == 3) {
		selectCategory(1);
		}
	else if(value == 4) {
		selectCategory(11);
		}
	else {
		
		selectCategory(24);
		}
	//alert(category_value);
	
		
		//
	}
else {
	checked_boxes.each(function(e){ e.checked = 0 });
	var selected = $w(value);
	var selected_boxes = new Array();
	var box="";
	selected.each(function(e){ 
		box = $$('#categorieselection input[type="checkbox"][value="' + e + '"]');
		box.each(function(e){ e.checked = 1 });
		});
	}
}


function selectCategory(category_value) {
var selected_boxes = $$('#categorieselection input[type="checkbox"][id^="' + category_value + '_"]', '#categorieselection input[type="checkbox"][value="' + category_value + '"]');
selected_boxes.each(function(e){ 
	e.checked = 1;
	if(e.value != 1) {
		var sub_boxes = $$('#categorieselection input[type="checkbox"][id^="' + e.value + '_"]');
		sub_boxes.each(function(e){ e.checked = 1 });
		}
	});	
}

function get_cities(land) {
//	alert($F('land'));
var url='getcity.php';
var laender_id = $F('land');
if(laender_id > 1) {
var params = 'laender_id=' + laender_id;
//alert(params);
var ajax = new Ajax.Updater(
		'l',
		url,
		{
			method		: 'get',
			parameters	: params
		}
	);
	}
else  {
	
	}
}


/* ergänzt */
function select_subcategories(sub,main) {
	var deaktivate= $$('#categorieselection input[type="checkbox"][value="' + main + '"]');
	deaktivate.each(function(e){ e.checked = 0 });
}


/******************************** Tooltipp **********************************/

var minikalender;

// die 3 Funktionen erzeugen die Mouse-over-Event-Infos bei Mini-Kalendern
function tooltip(typ) {
	minikalender = typ;
	Event.observe(
		window,
		'load',
		function() {
			$$('div.button > a:first').invoke(
				'observe',
				'mouseover',
				do_mouseover
			);
		}
	);
}






function do_mouseover() {
	var url='tooltip.php';
	
	var element	= this;

	if ( typeof(element) == 'undefined' ) {
		return;
	}
	
	var text	= element.readAttribute('title');
	
	element.writeAttribute(
		{
			'title'	: ''
		}
	);
	
	var event_id	= element.readAttribute('name');
	
	var tooltip = new Element('div');
	element.insert(
		{
			'after'	: tooltip
		}
	);
	var id = tooltip.identify();
	tooltip.writeAttribute(
		{
			'id'	: id
		}
	);
	var params = 'event_id=' + event_id;
	var ajax = new Ajax.Updater(
		{
			'success'	: id
		},
		url,
		{
			method		: 'get',
			parameters	: params
		}
	);
	if(minikalender == "intern") {
		tooltip.setStyle(
		{
			left	: element.positionedOffset().first() + 'px'
		}
		);

	}
	else {
		tooltip.setStyle(
		{
			left	: '10px'
		}
		);
	}
	tooltip.addClassName('eventdetail');
	
	
	element.observe(
		'mouseout',
		do_mouseout.bindAsEventListener(
			element,
			text
		)
	);
}

function do_mouseout() {
	var element	= this;
	
	element.writeAttribute(
		{
			'title'	: $A(arguments)[1]
		}
	);
	
	element.adjacent( 'div.eventdetail' ).invoke( 'remove' );
}



/********************* Vorschau für Pressemeldungen **************************/

function create_vorschau()
{
var form = $('presseform');
form.target = "vorschau";
form.submit();
form.target = "_self";
}




/*********** Ein- und Ausblenden der Info-Bereiche bei Kalenderanleitung, sowie Einbindg. des Editors ************/
function show_info() {
	Event.observe(
		window,
		'load',
		function() {
			$$('div.infobox').invoke('hide');
			$$('#location-info').invoke('hide');
			$$('p.anleitung_header > a').invoke(
				'observe',
				'click',
				function(event) {
					var elt = $(Event.element(event)).up('p').next('div.infobox');
  					elt.toggle();				
				}
				
			)
		ckeditor();
		}
	);
}

function show_thisinfo() {
	//var infobox = event.findElement();
	var element= this;
	//alert(element.name);
	
}


/***************************Index.php Produkte via Blog (blättern)*************************/

function nextProducts(mode) {
	//elt = $('produkt_' +10);
	if (mode == 1) {
		new Effect.MoveBy('products', -760, 0);
	}
	else {
		new Effect.MoveBy('products', 760, 0);
	}
}

/*********************** Kalender add/edit event ckeditor **********************************/

function ckeditor() {
if($('description')) 
	{	// ersetzt Textarea mit HTML-Editor
	CKEDITOR.replace('description',
		{
       	toolbar :
        	[
            	['Bold','Italic','Underline','Subscript','Superscript','TextColor','Outdent','Indent','NumberedList','BulletedList','Blockquote','Link','Unlink'],
				['Preview','Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
				['Cut','Copy','Paste','PasteText','PasteFromWord','SpellChecker']
        	],
        toolbarCanCollapse : false,
      	skin : 'v2',
      	height : '295px',
      	resize_enabled : false,
      	AutoDetectLanguage	: true,
		DefaultLanguage		: 'en',
		colorButton_colors : '000000,ff6600,cccccc',
		pasteFromWordRemoveStyle : true,
		pasteFromWordKeepsStructure : false,
		pasteFromWordIgnoreFontFace : true,
		removeFormatTags : 'b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var,p,div',
		enterMode : CKEDITOR.ENTER_BR,
		contentsCss :  ['ckeditor/contents.css', 'multikulinarisch/formular.css']
    	}
		);	// CKEditor
	}	
}


/* ----------------------- Stichworte ---------*/

function getstichwort(idValue,nr) {
if(idValue.length != 0) {
	var http = GetXmlHttpObject();
	var url = "getstichwort.php?nr=" + nr + "&param=";  
	var myRandom = parseInt(Math.random()*99999999); // cache buster 
	http.onreadystatechange = function() {handleHttpResponse(http,nr)};
	http.open("GET", url + escape(idValue) + "&rand=" + myRandom, true);  
	http.send(null); 
	}
}

function handleHttpResponse(http,nr) { 
if (http.readyState == 4) { 
	document.getElementById("suggestions" + nr).style.visibility="visible"; 
	document.getElementById("suggestions" + nr).style.border="1px solid #ffcc00"; 
	document.getElementById("suggestions" + nr).innerHTML=http.responseText; 
	} 
}
 
function loadrecord(record,nr) { 
document.getElementById("sw" + nr).value = record; 
document.getElementById("suggestions" + nr).innerHTML="";
document.getElementById("suggestions" + nr).style.visibility="hidden";
}

function GetXmlHttpObject() {
    var http=null;
    try{
        http=new XMLHttpRequest();
    }catch (e){
        try {
            http=new ActiveXObject("Msxml2.XMLHTTP");
        }catch (e){
            http=new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
return http;
}


/*********************** Google-Kram ****************************************/
// Google-Maps 

 var map;
 var geocoder;
 var marker;
 var wo;


 
 function googlemap(wo) {
	Event.observe(
		window,
		'load',	
		function() {
			maps_initialize();
			var koordinate1 = $('koordinate1').getValue();
      		var koordinate2 = $('koordinate2').getValue();			
      		if(wo == "backend") {
      			if(koordinate1 != 0 && koordinate2 != 0) {
      				showCoordinates(koordinate1, koordinate2, wo, drag = true);
      				}
      			$$('#location' , '#zip', '#strasse', '#hinweis', '#country').invoke(
				'observe',
				'change',
				showLocation
				)
			}
		else {
			if(koordinate1 != 0 && koordinate2 != 0) {
				showCoordinates(koordinate1, koordinate2, wo, drag = false);
				}
			}
  		});
}
 
 function maps_initialize() {
      map = new GMap2($("map_canvas"));
      // Zoom- und Verschieberegler
      map.addControl(new GSmallMapControl());
      map.setCenter(new GLatLng(34, 0), 1);
      geocoder = new GClientGeocoder(); 
    }

    
    // addAddressToMap() is called when the geocoder returns an
    // answer.  It adds a marker to the map with an open info window
    // showing the nicely formatted version of the address
function addAddressToMap(response) {
      map.clearOverlays();
      if (!response || response.Status.code != 200) {
        alert("Sorry, we were unable to geocode that address");
      } else {
        place = response.Placemark[0];        	
        point = new GLatLng(place.Point.coordinates[1],
                            place.Point.coordinates[0]);
        $('koordinate1').setValue(place.Point.coordinates[1]);
        $('koordinate2').setValue(place.Point.coordinates[0]);
        $('textblase').setValue(place.address);
        if($F('strasse')) {
        	map.setCenter(point,14);
        	}
        else {
        	map.setCenter(point,10);
        	}
        // Marker verschiebbar
        marker = new GMarker(point, {draggable: true});
        marker_output = place.address;
        //  + '<br />' + '<b>Country code:</b> ' + place.AddressDetails.Country.CountryNameCode;
        // schreibe Adresse in Hidden Field für DB
        GEvent.addListener(marker, "dragstart", function() {
  			map.closeInfoWindow();
  			});
		GEvent.addListener(marker, "dragend", function() {
  			marker.openInfoWindowHtml(marker_output);
  			savePositions(marker);
  			});
        map.addOverlay(marker);
        marker.openInfoWindowHtml(marker_output);
      }
    }

    
    
    // geocodes the address entered into the form
    // and adds a marker to the map at that location.
function showLocation() {
var country = $('country')[$('country').selectedIndex].text;
var address = $F('location') + " " + country + " " + $F('zip')  + " " + $F('strasse') + " " + $F('hinweis');
$('map_edit').show();
geocoder.getLocations(address, addAddressToMap);
}

function clearLocation() {
map.clearOverlays();
map.setCenter(new GLatLng(34, 0), 1);
$('koordinate1').setValue(0);
$('koordinate2').setValue(0);
$('textblase').setValue("");
}

 

//überträgt die neuen Koordinaten in hidden Form-fields, damit speichern in DB möglich
function savePositions(marker) {
	var neue_position = marker.getLatLng();
  	$('koordinate1').setValue(neue_position.lat());
  	$('koordinate2').setValue(neue_position.lng());
}


// vorhandene Koordinaten (aus DB)  werden auf Karte angezeigt
function showCoordinates(koordinate1, koordinate2, wo, drag) {
map.clearOverlays();
point = new GLatLng(koordinate1, koordinate2);
map.setCenter(point,14);
if(drag == true) {
	marker = new GMarker(point, {draggable: true});
	}
else {
	marker = new GMarker(point, {draggable: false});
}
//var marker_output = $F('textblase');
if(wo == "backend") {
	$('map_edit').show();
	}
        //  + '<br />' + '<b>Country code:</b> ' + place.AddressDetails.Country.CountryNameCode;
GEvent.addListener(marker, "dragstart", function() {
	map.closeInfoWindow();
  	});
GEvent.addListener(marker, "dragend", function() {
  	marker.openInfoWindowHtml($F('textblase'));
  	savePositions(marker);
  	});
map.addOverlay(marker);
marker.openInfoWindowHtml($F('textblase'));
}



// wird via Button aufgerufen, um Text aus Textfeld in Marker-Feld zu schreiben
function replaceBlasentext() {
var point = map.getInfoWindow().getPoint();
var offset = map.getInfoWindow().getPixelOffset();
map.closeInfoWindow();
//var point = new GLatLng($F('koordinate1'), $F('koordinate2'));
map.openInfoWindow(point,
    document.createTextNode($F('edit_textblase').stripTags()),
	{maxWidth:'250', pixelOffset:offset});
$('textblase').setValue($F('edit_textblase'));
}