/*

	Funktionen für den Mini-Kalender in der rechten Spalte
	Blättern durch die Monate mit Ajax
	
	+ Termin merken-Funktion
*/



function minical_getUrlVars(surl)
{
	var vars = [], hash;
	var hashes = surl.split('&');
	for(var i = 0; i < hashes.length; i++)
	{
		hash = hashes[i].split('=');
		vars.push(hash[0]);
		vars[hash[0]] = hash[1];
	}
	return vars;
}


function minical_openurl(strURL)
{
	createAjax();
    ajaxObj.open('GET', strURL);
    ajaxObj.onreadystatechange = minical_onresult;
    ajaxObj.send(null);
}

function minical_onresult() 
{
    if (ajaxObj.readyState == 4) 
    {
         document.getElementById("minical").innerHTML = ajaxObj.responseText;
    }
}


function minical_go(params)
{
	document.getElementById("minical_loading").style.visibility = 'visible';
	minical_openurl('/?id=31'+params);
}




function minical_tdover(evt, cell)
{
	if (cell) if (cell.getElementsByTagName("a")) if (cell.getElementsByTagName("a")[0]) if (cell.getElementsByTagName("a")[0].onmouseover)
	{
		cell.getElementsByTagName("a")[0].onmouseover(evt);
		cell.style.cursor = 'pointer';
	}
	
	minical_bglast = cell.style.backgroundColor;
	cell.style.backgroundColor = "#EEEEEE";
}

function minical_tdout(evt, cell)
{
	if (cell) if (cell.getElementsByTagName("a")) if (cell.getElementsByTagName("a")[0]) if (cell.getElementsByTagName("a")[0].onmouseout)
	{
		cell.getElementsByTagName("a")[0].onmouseout(evt);
		cell.style.cursor = 'default';
	}
	
	cell.style.backgroundColor = minical_bglast;
}

function minical_tdmove(evt, cell)
{
	if (cell) if (cell.getElementsByTagName("a")) if (cell.getElementsByTagName("a")[0]) if (cell.getElementsByTagName("a")[0].onmousemove)
		cell.getElementsByTagName("a")[0].onmousemove(evt);
}

function minical_tdclick(cell)
{
	if (cell) if (cell.getElementsByTagName("a")) if (cell.getElementsByTagName("a")[0]) if (cell.getElementsByTagName("a")[0].onclick)
		cell.getElementsByTagName("a")[0].onclick();
}


minical_last = -1;
minical_bglast = "";


function minical_over(evt, obj, params)
{
	/*if (obj.parentNode) if (obj.parentNode.parentNode) if (obj.parentNode.parentNode.style)
	{
		minical_bglast = obj.parentNode.parentNode.style.backgroundColor;
		obj.parentNode.parentNode.style.backgroundColor = "#DDDDDD";
	}*/
	
	var vars = minical_getUrlVars(params);
	var iday = vars["tx_cal_controller[day]"];
	var imonth = vars["tx_cal_controller[month]"];
	var sid = "minical_"+iday+"."+imonth+".";
	

	var aevents =  myGetElementsByName(sid);
	var aeventsG =  myGetElementsByName(sid+"termin-gemerkt");
	
	if (aevents.length || aeventsG.length)
	{
		minical_move(evt);	
				
		if (sid != minical_last)
		{
			var max_events = 5;
			var num_events = aevents.length+aeventsG.length;
			var sres = "";
			var c = 0;
			// gemerkte Termine zuerst in der Liste anzeigen
			for (var i = 0; i < Math.min(aeventsG.length, max_events); i++)
			{
				sres += aeventsG[i].innerHTML+"<br/>";
				c++;
			}
			for (var i = 0; i < Math.min(aevents.length, (max_events-c)); i++)
			{
				sres += aevents[i].innerHTML+"<br/>";
			}
			if (num_events > max_events) 
			{
				if (num_events == max_events+1) 
					sres += "<i>+1 weiterer Termin</i>";
				else
					sres += "<i>+"+(num_events-max_events)+" weitere Termine</i>";
			}
			
			
			document.getElementById("minical_popup2").innerHTML = sres;
			document.getElementById("minical_popup").style.visibility = 'visible';
		}
		
		/*iwidth = 0;
		if (window.innerWidth) {
			iwidth = window.innerWidth;
		  } else if (document.body && document.body.offsetWidth) {
			  iwidth =  document.body.offsetWidth;
		  } */
	}
	minical_last = sid;
	
}

function minical_move(evt)
{
	var hpopup = document.getElementById("minical_popup");
	
	var realev = (window.event) ? window.event : evt;
	var x = realev.clientX+getScrollLeft()+10;
	var y = realev.clientY+getScrollTop()+10;
	var dw = 250;
	
	if (x+dw > (getViewportWidth()-20))
	{
		x -= dw;
		y += 5;
	}
	
	hpopup.style.left = x+"px";
	hpopup.style.top = y+"px";	
}


function minical_out(obj)
{
	minical_last = -1;
	document.getElementById("minical_popup").style.visibility = "hidden";
	
	/*if (obj.parentNode) if (obj.parentNode.parentNode) if (obj.parentNode.parentNode.style)
	{
		obj.parentNode.parentNode.style.backgroundColor = minical_bglast;
	}*/
}



function calendar_browsepage(iPage)
{
	var curpage =  parseInt(document.getElementById("tx_cal_controller_offset").value);
	if (isNaN(curpage)) curpage = 0;
	
	var p = (iPage-1);
	
	if (iPage == -2) // prevlink
		p = curpage-1;
	if (iPage == -1) // nextlink
		p = curpage+1;
	
	document.getElementById("tx_cal_controller_offset").value = p;
	document.getElementById("calendar-form").submit();
	return false;
}



var terminmerken_event = null;

function terminmerken(anode)
{
	terminmerken_event = anode;
	terminmerken_openurl(terminmerken_event.firstChild.href+"&tm[ajax]=1");
}



function terminmerken_openurl(strURL)
{
    createAjax();
    ajaxObj.open('GET', strURL, true);
    ajaxObj.onreadystatechange = terminmerken_onresult;
    ajaxObj.send(null);
}


function terminmerken_onresult() 
{
    if (ajaxObj.readyState == 4) 
    {
    	// Tags entfernen
    	var res = ajaxObj.responseText;
    	res = res.replace(/(<([^>]+)>)/ig,""); 
    	res = res.replace(/^\s*/, "").replace(/\s*$/, "");
    	
    	// Zahl im Mitgliederbereich-Kasten rechts updaten
    	var ichange = parseInt(res.substring(0, res.indexOf('\t')));
    	var num = parseInt(document.getElementById("terminmerken_num").innerHTML);
    	//if (ichange != Number.NaN) document.getElementById("terminmerken_num").innerHTML = (num+ichange);
    	
    	if (res.indexOf('\t')) res = res.substring(res.indexOf('\t')+1);
    	
    	// Ergebnis anzeigen und Button entfernen
    	res = '<span class="terminmerken-info">'+res+"</span>";
    	terminmerken_event.innerHTML = res;
    	terminmerken_event = null;
    	
    	
    }
}




