function empfehlen(id)
{
    //window.open("/popup_empfehlung.php?id="+id,"Seiteempfehlen","width=350,height=585");
    window.open("/popup_empfehlung.php?id="+id,"Seiteempfehlen","width=350,height=720");
}

function dojump()
{
   if (document.forms["kat_baum"].sprungziel.options[document.forms["kat_baum"].sprungziel.selectedIndex].value != "-")
   {
       var url = "";
       var erg = "";
       id = document.forms["kat_baum"].sprungziel.options[document.forms["kat_baum"].sprungziel.selectedIndex].value;
       erg = id.search(/^\d+$/);

       if (erg != -1)
           url = '/kat.php?katid='+id;
       else
           url = id;

       top.location = url;
   }
}

function bewerten(id)
{
    bw = document.bewertung.elements['eintrag'+id].options[document.bewertung.elements['eintrag'+id].selectedIndex].value;

    if (bw == "-")
        alert("Sie haben keine Bewertung ausgewählt!");
    else
        window.open("/popup_bewertung.php?id="+id+"&bewertung="+bw, "Bewertung","height=100,width=500,scrollbars=no");
}

function defekt_melden(id, titel)
{
    var width = 260;
    var height = 175;
	var defekt = window.open("/popup_link_defekt.php?id="+id,"defekt","height=" + height + ",width=" + width + ",scrollbars=no");
	defekt.moveTo((screen.width/2) - width, (screen.height/2) - height);
	defekt.focus();
}

function clear_search_input(){
	if($('suche').getValue() == "Suche"){
		$('suche').clear();
	}
}


function handleMemorizeTip(id){
	var mylink = $('memorize-' +id);
    var url = mylink.readAttribute('href');
	var linkparents = mylink.ancestors();
	var mytd = linkparents[0];
	// don't make a ajax call if the last char of the target url is a 'schweinegatter'
     if(url.substring(url.length-1, url.length) != "#") {
	        url = url+"&ajax=1";
	        new Ajax.Request(url, {
	          method: 'get',
	          onSuccess: function(transport) {
	             var response = transport.responseText || "failure";
	             
	             if(response != "success"){
	                        alert(response);
	                }
	                else{
	                        mytd.removeClassName('memorize');
	                        mytd.addClassName('memorized');
	                        mytd.innerHTML = "Tipp gemerkt";
	                }
	          	},
	         onComplete: function(transport) {
				}
	        });
	}
    return false;
}

function deleteMemorizeTip(id){
	var mylink = $('memorize-' +id);
    var url = mylink.readAttribute('href');
	var linkparents = mylink.ancestors();
	var mytd = linkparents[0];
     if(url.substring(url.length-1, url.length) != "#") {
	        new Ajax.Request(url+"&ajax=1", {
	          method: 'get',
	          onSuccess: function(transport) {
	             var response = transport.responseText || "failure";
	                if(response != "success"){
	                        alert(response);
	                }
	                else{
	                	var tdid = mytd.readAttribute("id");
						$('c'+ tdid.substr(4,tdid.length)).remove();
	                }
	          }
	        });
	}
    return false;
}

function mitgliedwerden() {
	div = document.getElementById('quickformcontainer');
	div.style.display='block';
}

//kann weg
function nurnewsletter() {
	form = document.getElementById('communityform');
	form.submit();
}

function mailchanged() {
	fieldval = document.getElementById('heademail').value;
	qformfield = document.getElementById('communityform').elements['email'];
	qformfield.value = fieldval;
}

function themachanged_kontobereich(lastclicked) {
	return themachanged_with_param(false,lastclicked);
}

function themachanged(lastclicked) {
	return themachanged_with_param(true,lastclicked);
}

function themachanged_with_param(withqf,lastclicked) {
	res = '';
	lastval = 2;
	notall = false; //alle sind gecheckt
	none = true; //keines ist gecheckt
	themen = new Array('kb1_','kb2_','kb3_','kb4_','kb5_','kb6_');
	formelements = document.getElementById('nurnewsletterform').elements;
	if(document.getElementById('nurnewsletter_themen')) {
		hiddenthemen = document.getElementById('nurnewsletter_themen');
	}
	else if(document.getElementById('communityform').elements['themenwelten']) {
		hiddenthemen = document.getElementById('communityform').elements['themenwelten'];
	}
	if(withqf) {
		qfthemenwelten = document.getElementById('communityform').elements['themenwelten'];
	}
	for(var i=0;i<=5;i++) {
		if(formelements[themen[i]].checked) {
			none = false;
			if(document.getElementById('communityform')) {
				if(document.getElementById('communityform').elements['qf_'+themen[i]]) {
					qfhidden = document.getElementById('communityform').elements['qf_'+themen[i]];
					qfhidden.value = "1";
				}
			}
			res += formelements[themen[i]].name;
			if(lastval != 2) {
				if(lastval != 1) {
					notall = true;
				}
			}
			lastval = 1;  
		}
		else {
			if(document.getElementById('communityform')) {
				if(document.getElementById('communityform').elements['qf_'+themen[i]]) {
					qfhidden = document.getElementById('communityform').elements['qf_'+themen[i]];
					qfhidden.value = "0";
				}
			}
			if(lastval != 2) {
				if(lastval != 0) {
					notall = true;
				}
			}
			lastval = 0;
		}
	}
	if(!notall) {
		res = 'kball_';
	}
	if(none) { //wenn keines gewaehlt
		alert('Es muss mindestens eine Themenwelt ausgewählt werden.');
		lastclicked.checked = true;
	}
	hiddenthemen.value=res;
	if(withqf) {
		qfthemenwelten.value=res;
	}
}

function werbungchanged_kontobereich() {
	return werbungchanged_with_param(false);
}

function werbungchanged() {
	return werbungchanged_with_param(true);
}


function werbungchanged_with_param(withqf) {
	erlaubt = document.getElementById('nurnewsletterform').elements['headwerbungerlaubt'];
	
	if(withqf && document.getElementById('communityform')) {
		qferlaubt = document.getElementById('communityform').elements['werbungerlaubt'];
		if(erlaubt.checked) {
			qferlaubt.value= '1';
		}
		else {
			qferlaubt.value= '0';
		}
	}
}

function fremdsubmit() {
	document.communityform.fremdsubmitted.value=1;
	document.communityform.submit();
}

/* --- tagging functions ---*/

function showMoreTags(element){
	var linkId = element.id;
	var tipId = linkId.substr(10,linkId.length);
  	var elements = $A($('item-tags-' +tipId).select('.hidden-tag-' + tipId));
  	elements.each(function(elm){
		$(elm).setStyle({display:'inline'});
	});
	$('more-tags-'+tipId).hide();
	$('more-dots-'+tipId).hide();
	return false;	
}

function showLessTags(element){
	var linkId = element.id;	
	var tipId = linkId.substr(10,linkId.length);
	var elements = $A($('item-tags-' +tipId).select('.hidden-tag-' + tipId));
  	elements.each(function(elm){
		$(elm).setStyle({display:'none'});
	});
	$('more-tags-'+tipId).show();
	$('more-dots-'+tipId).show();		
	return false;
}

function editTags(tipId){
	new Ajax.Request("/ajax/tipptaggen.php?do=edit&id="+tipId, {
  		method: 'get',
  		onSuccess: function(transport) {
     		var response = transport.responseText || "failure";
        	if(response == "failure"){
                alert("Es ist ein Fehler aufgetreten. Tags konnten nicht geladen werden.");
        	}
        	else{
                $('tag-edit-' + tipId).innerHTML = response;
            }
          }
        });
	return false;
}

function storeTags(tipId){
	var tags = $('tag-values-' + tipId).getValue();
	var params = new Hash();
	params.set('tags', tags);
	params.set('do', 'store');
	params.set('id',tipId);
	
	new Ajax.Request("/ajax/tipptaggen.php", {
  		method: 'post',
  		parameters: params.toQueryString(),
  		onSuccess: function(transport) {
     		var response = transport.responseText || "failure";
        	if(response == "failure"){
                alert("Es ist ein Fehler aufgetreten. Tags konnten nicht gespeichert werden.");
        	}
        	else{
				var response = eval('(' + transport.responseText + ')');
                $('item-tags-' + tipId).innerHTML = response.tags;
                var ommited = "";
                for(var i = 0; i < response.ommited.length; i++){
                	ommited += response.ommited[i] + "\n";
                }         
                if(ommited != ""){
                	//var alertstr = "Folgende Tags konnten wegen unerlaubter Zeichen nicht gespeichert werden:\n\n";
                	//alertstr +=  ommited;
                	//alertstr += "\nHinweis:\nEs sind nur Tags mit alphanummerischen Werten und den Zeichen &,+,- erlaubt";
                	alertstr = "Beim Taggen sind nur Buchstaben und Zahlen sowie die Zeichen -, + und & erlaubt.";
                	alert(alertstr);
                }     
            }
          }
        });
	return false;	
}

/*
	 --- Globale Variable ---
*/
// Knuellerangebot geklickt?
first_click = true;
// Koordinaten zur Ausrichtung der RSS-Box
rss_box_top_coord = 0;

// --- ON Document Ready --- 
Event.onReady(function() {
	// Ticker
	if($('marketing_links').readAttribute('ani') == 1){
		var ticker = $('nulltarif-ticker');
		ticker.observe('mouseover',function(){$('nulltarif-ticker').stop();});
		ticker.observe('mouseout',function(){$('nulltarif-ticker').start();});
	}
	// dirty hack to get a label for quickform field which is positioned correctly...
	if($('regpass')){ 
		var p = $('regpass').ancestors();
		var td= p[0];
		var hint = new Element('<span>', { 'class': 'formhint' }).update("(mind. 6 Zeichen lang)");
		td.insert(hint,{'position':'bottom'});		
	}
	$('rss-box').setStyle({"display": "none"});
	rss_box_top_coord = $('ntm').viewportOffset().top;	
	setRSSBox();	
});

var oMenu = null;
YAHOO.util.Event.onContentReady("basicmenu", function () {

	function onBeforeShow(p_sType, p_aArgs) {
		// set minimum width for second level navi items 
		// to make 'em at least as wide as their parent item
		var elm = $(this.id);
		if(elm.hasClassName('second-level')){
 			var parents = elm.ancestors();
			var parentContainer = $(parents[0].id);
			if(parentContainer.getWidth() > elm.getWidth()){
				elm.setStyle({'width': parentContainer.getWidth() + 4 + "px"})
			}
		}
	 }
    
	oMenu = new YAHOO.widget.MenuBar("basicmenu", {showdelay: 0, autosubmenudisplay: true, lazyload: true, clicktohide: false, zindex:99 });   
    oMenu.subscribe("beforeShow", onBeforeShow);   
	oMenu.render();
    oMenu.show();
                
	//Mausbewegung im Dokument ueberwachen
	document.onmousemove = _onDocumentMouseMove;
});


/**
 * Wird aufgerufen, wenn die Maus im Fenster bewegt wird
 *
 * speichert die Mausposition und prueft ob evtl. das Untermenue geschlossen wird
 */
var mouseX = 0;
var mouseY = 0;
function _onDocumentMouseMove (event) {
   
    //Mausposition ermitteln
    mouseX = document.all ? window.event.clientX : event.pageX;
    mouseY = document.all ? window.event.clientY : event.pageY;
 	    
	checkYAHOOSubMenuMousePosition(event);
}

/**
 * wird beim Ueberfahren eines Submenues aufgerufen, 
 * speichert das div vom aktiven Submenue
 *
 * wird benoetigt um zu pruefen ob die Maus ueber dem Menue ist, 
 * um dieses ggf. auszublenden
 */
var YAHOOActiveSubMenuDiv = null;
function _onYAHOOSubMenuMouseOver (divElement) {
	YAHOOActiveSubMenuDiv = divElement;
}

/**
 * Prueft ob die Maus nicht mehr ueber dem Untermenue ist, um dieses auszublenden
 */
function checkYAHOOSubMenuMousePosition (event) {
	
	if (YAHOOActiveSubMenuDiv) {
		
		//Viewport vom div ermitteln
		var divViewPort = getElementCumulativeOffset(YAHOOActiveSubMenuDiv);
		var offsetWidth = YAHOOActiveSubMenuDiv.offsetWidth;
		var offsetHeight = YAHOOActiveSubMenuDiv.offsetHeight;
		
		//ist die Maus nicht mehr ueber dem Feld, so wird das Menue zugeklappt
		if (mouseX < divViewPort[0] || mouseX > (divViewPort[0] + offsetWidth) || mouseY > (divViewPort[1] + offsetHeight)) {	
			YAHOOActiveSubMenuDiv = null;
			oMenu.clearActiveItem();
		}
		
		//
		if (mouseY < divViewPort[1]) {
			YAHOOActiveSubMenuDiv = null;
		}
	}
}

/**
 * Ermittelt den Abstand eines Elements zur Fensterecke oben links
 *
 * @param HTMLElement element Element dessen Abstand ermittelt wird
 * @return Array(0 => offsetLeft, 1 => offsetTop)
 * @type array
 */
function getElementCumulativeOffset(element) {

	var offsetX = element.offsetLeft;
	var offsetY = element.offsetTop;
	 
	var parent = element.offsetParent; 
	while (parent) {
		offsetX += parent.offsetLeft;
		offsetY += parent.offsetTop;
	  	parent = parent.offsetParent;
	}
	var array = new Array();
	array[0] = offsetX;
	array[1] = offsetY;
	return array;
}

function setRSSBox(){
	// RSS-Box
	var rb = $('rss-box');
	var mh = $('marketing_headline');
	var pos_l = mh.viewportOffset().left	
	rb.setStyle({
					"left": parseInt(pos_l + parseInt(mh.getWidth() ) - rb.getWidth() -2) + "px",
					"top":  rss_box_top_coord + "px",
					"width": "auto"
				});				
}

/**
* Faehrt die RSS-URL Box rein und raus...
*/
function toggleRSSBox(){
	var dim = document.viewport.getDimensions();
	//Effect.toggle($('rss-box'), 'blind',{duration:   0.25});
	if($('rss-box').getStyle('display') == 'none'){
		setRSSBox();
		$('rss-box').setStyle({'display':'block', 'width':'auto'});	
		$('rss-box-overlay').setStyle({
					"left": "0px",
					"top": "0px",
					"height": document.body.clientHeight + "px",
					"width": document.body.clientWidth + "px",
					"background-color":"#ff0000"
				}); 							
	}
	else {
		$('rss-box').setStyle({'display':'none'});	
		$('rss-box-overlay').setStyle({
					"left": "-10000px",
					"top": "-10000px",
					"height": "0px",
					"width": "0px"
				});					
	} 
}

function addRSSBookmark(url,title){
	if (window.sidebar) { // Mozilla Firefox Bookmark
		window.sidebar.addPanel(title, url,"");
	} else if( window.external ) { // IE Favorite
		window.external.AddFavorite( url, title); 
	} else if(window.opera && window.print) { 
		// Opera Hotlist
		var elem = document.createElement('a');
		elem.setAttribute('href',url);
		elem.setAttribute('title',title);
		elem.setAttribute('rel','sidebar');
		elem.click();		 
	}
	return false;	
}

function track_knueller(tipId){
	if(first_click){
		first_click = false;
		var params = new Hash();
		params.set('id',tipId);
		new Ajax.Request("/ajax/track_killerangebot.php", {
	  		method: 'post',
	  		parameters: params.toQueryString(),
	  		onSuccess: function(transport) {
	  			// DEBUG: alert(transport.responseText);
	  			return true;
	     		/*
	     			var response = transport.responseText || "failure";
		        	if(response == "failure"){
		                alert("Es ist ein Fehler aufgetreten.");
		        	}
		        	else{
		            }
		        */
	          }
	        });
	 }	
}

