// START: fontsizer
function getCookieData(name) {
	var keyName = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(keyName) == 0) return c.substring(keyName.length,c.length);
	}
	return null;
}

function setMyFontsize(that)
{
  	var myfontsize = that.id;
	document.cookie = 'fontsize='+myfontsize+'; expires=Thu, 2 Aug 2099 00:00:00 UTC; path=/';	
  	setFontsize(myfontsize);
}

function setFontsize(myfontsize)
{
	if(myfontsize == "")
		return;
	
	var styles = new Array('size-m', 'size-l', 'size-xl');
	
	//werte zurücksetzen
	for(var i=0; i<styles.length; i++)
	{
		var elemName = styles[i];
		var temp = document.getElementById(elemName);
		temp.className = elemName;
	}
	
	var elem = document.getElementById("site");
	
	var fontSize = "1em";
	if(myfontsize == 'size-l')
	{
		fontSize = "1.5em";
	}
	else if(myfontsize == 'size-xl')
	{
		fontSize = "2em";
	}
	elem.style.fontSize = fontSize;
	document.getElementById(myfontsize).className = myfontsize+ " choosen";
}

// START: rateLink
function showResArea(resTxtId)
{
	$(resTxtId).style.display = "block";
}

function rateLink(linkInfoId)
{
var infos = linkInfoId.split('-');
var linkRate = infos[1];
var linkId = infos[2];
var updateTarget = 'linkcontainer-' + linkId;
var updateInfo = 'restxt-' + linkId;


var url = "http://www.italienisch-lernen-online.de/index.php?article_id=22&linkid="+linkId+"&linkrate="+linkRate;
var myAjax = new Ajax(url, {method: 'get', onComplete: showResArea(updateInfo), update: $(updateInfo)});
myAjax.request();
return false;
}

/* START: cookie verwaltung */
//basierend auf http://openbook.galileocomputing.de/javascript_ajax/12_cookies_001.htm
//(Copyright Christian Wenz, http://www.hauser-wenz.de/, 2007)
function cookie_setzen() {
   var anzParameter = cookie_setzen.arguments.length;
   var parameter = cookie_setzen.arguments;
   // 1. Cookie-Name
   var name = parameter[0];
   // 2. Cookie-Wert
   var value = (anzParameter >= 2) ? parameter[1] : "";
   
   value = escape(value); // URL-Codierung
   // 3. Haltbarkeitsdatum
   var expires = (anzParameter >= 3) ? parameter[2] : null;
   if (expires != null) {
      if (expires.toGMTString) {
         expires = expires.toGMTString();
      }
   }
   // 4. Domain
   var domain = (anzParameter >= 4) ? parameter[3] : null;

   // 5. Pfad
   var path = (anzParameter >= 5) ? parameter[4] : null;

   if (path != null) {
      path = escape(path); // Sonderzeichen umwandeln
   }
   // 6. Sicherheitsstufe
   var secure = (anzParameter >= 6) ? parameter[5] : null;
   // Zusammensetzen des Cookies
   var c = name + "=" + escape(value);
   if (expires != null) {
      c += "; expires=" + expires;
   }
   if (domain != null) {
      c += "; domain=" + domain;
   }
   if (path != null) {
      c += "; path=" + path;
   }
   if (secure) {
      c += "; secure";
   }
  
   // Cookie setzen
   document.cookie = c;
   
}

function cookie_lesen(name) {
   var i = document.cookie.indexOf(name + "=");
   var c = "";
   if (i > -1) {
      var ende = document.cookie.indexOf("; ",
                 i+name.length+1);
      if (ende == -1) {
         ende = document.cookie.length;
      }
      c = document.cookie.substring(i+name.length+1, ende);
   }
   return unescape(c);
}

function laden_collection(cookieName) {
   var str = cookie_lesen(cookieName);
   str = unescape(str);

   var temp = new Array();
   // Daten aus dem Cookie in ein Array umwandeln
   if (str != "") {
      str = str.replace(/,/g, "\",\"");
      str = "\"" + str + "\"";
      eval("temp = [" + str + "]");
   }
   // assoziatives Array erstellen
   var c = new Array();
   for (var i=0; i<temp.length; i+=2) {
		c[temp[i]] = temp[i+1];
	   
   }
   // Array zurueckgeben
   return c;
}

function lesen_collection(cookieName, name) {
   var c = laden_collection(cookieName);
   return c[name];
}

function speichern_collection(cookieName, c) {
	var temp = new Array();
	for (var e in c) {
	    if(e.substr(0, 4) == "ccll")
		{
		   temp[temp.length]=e;
	       temp[temp.length]=c[e];
		}
   }
   //Monatszaehlung startet mit 0
   var expireDate = new Date(2099,0,1);
   
   cookie_setzen(cookieName, temp.toString(), expireDate, null, "/");
}

function schreiben_collection(cookieName, name, wert) {
	 

   var c = laden_collection(cookieName);
   c[name] = wert;
   speichern_collection(cookieName, c);
  
}



/* END: cookie verwaltung */

var levelInputIdArr = new Array("radio-all", "radio-beginner", "radio-advanced");
var langInputId = 'checkbox-de';



function in_array(item, itemArr) {
	for(var i=0;i<itemArr.length;i++)
	{
		if (item == itemArr[i])
		{
			return true;
		}
	}
	return false;
}
/*
function getInputFilterArr() {
	var inputFilterArr = new Array();

	var inputIdArr = new Array("radio-all", "radio-beginner", "radio-intermediate", "checkbox-de");
	
	for(var i=0; i<inputIdArr.length; i++)
	{
		var checkBoxElem = document.getElementById(inputIdArr[i]);
		
		//console.log(checkBoxElem);
		
		if(checkBoxElem != null)
		{
			inputFilterArr.push(checkBoxElem);
		}
	}
	
	return inputFilterArr;
}
*/
function handleListFilter(updateCookie, showFilterIndicator)
{
	/*
	var inputElemArr = document.getElementsByTagName('input');

	var inputFilterArr = new Array();
	for(var i=0; i<inputElemArr.length; i++)
	{
		var inputElem = inputElemArr[i];
		if(inputElem.className == 'list-filter')
		{
			inputFilterArr.push(inputElem);
		}
	}
	*/
	//var inputFilterArr = getInputFilterArr();
	
	if(showFilterIndicator)
	{
		document.getElementById('filter-indicator-wrapper').style.display = 'block';
	}
	
	if(updateCookie)
	{
		window.setTimeout("handleListFilterAfterTimeout(true)", 250);
	}
	else
	{
		window.setTimeout("handleListFilterAfterTimeout(false)", 250);
	}
	

}	

function handleListFilterAfterTimeout(updateCookie)
{	
	document.getElementById('filter-indicator-wrapper').style.display = 'none';
	
	var levelFilterWrapper = document.getElementById('level-filter-wrapper');
	var langFilterWrapper = document.getElementById('lang-filter-wrapper');
	
	
	var requiredClassNameArr = new Array();
	
	if(levelFilterWrapper != null)
	{
		for(var i=0; i<levelInputIdArr.length; i++)
		{
			var levelInputElem = document.getElementById(levelInputIdArr[i]);
		
			if(levelInputElem.checked)
			{
				requiredClassNameArr.push(levelInputElem.value);
			}
		}
	}
	
	if(langFilterWrapper != null)
	{
		var langInputElem = document.getElementById(langInputId);
		if(langInputElem.checked)
		{
			requiredClassNameArr.push(langInputElem.name);
		}
	}
	
	
	if(levelFilterWrapper != null || langFilterWrapper != null)
	{
		filterList(requiredClassNameArr);
		
		if(updateCookie)
		{
			schreiben_collection('settings', 'ccllfps', requiredClassNameArr.join(" "));
		}
	}
	
}

function filterList(classNameToCheckArr)
{	
	var olListArr = document.getElementsByTagName('ol');

	var olLinklistArr = new Array();
	for(var i=0; i<olListArr.length; i++)
	{
		var olList = olListArr[i];
		if(olList.className == 'linklist')
		{
			olLinklistArr.push(olList);
		}
	}

	for(var i=0; i<olLinklistArr.length; i++)
	{
		var olLinklist = olLinklistArr[i];
		var olLinklistChildNodes = olLinklist.childNodes;
		
		var numHiddenEntries = 0;
		for(var j=0; j<olLinklistChildNodes.length; j++)
		{
			var linkItem = olLinklistChildNodes[j];

			//console.log(linkItem.tagName.toLowerCase() == 'li');

			linkItemClassArr = linkItem.className.split(" ");
			
			linkItem.style.display = "block";
			

			if(in_array("linklist-entry", linkItemClassArr))
			{
			
				for(var k=0; k<classNameToCheckArr.length; k++)
				{
					
					var requiredClassName = classNameToCheckArr[k];
					
					
					if(!in_array(requiredClassName, linkItemClassArr) && requiredClassName != 'all')
					{
						
						linkItem.style.display = "none";
						numHiddenEntries++;
						//isSetToDisplayNone = true;
					}
				}
			}


			//console.log(linkItemClassArr);


		}
		
		var filterMsgArea = document.getElementById('filter-msg-area');
		if(numHiddenEntries >= olLinklistChildNodes.length)
		{
			filterMsgArea.innerHTML = 'Keine passenden Links zu gew&auml;hlten Einstellungen.';
			filterMsgArea.style.background = '#ffe97f';
			
		}
		else
		{
			filterMsgArea.innerHTML = '';
			filterMsgArea.style.background = 'none';
		}
		
		//console.log(olLinklistChildNodes );

	}
}











function handleLinklistFilter() {
var levelFilterWrapper = document.getElementById('level-filter-wrapper');
var langFilterWrapper = document.getElementById('lang-filter-wrapper');




//ccllfps = cookie config linklist filter pre selection
var cookiePreselectVal = lesen_collection('settings', 'ccllfps');



if(cookiePreselectVal != undefined)
{
	var cookiePreselectArr = cookiePreselectVal.split(" ");
	
	
	if(levelFilterWrapper != null)
	{
		for(var i=0; i<levelInputIdArr.length; i++)
		{
			var levelInputElem = document.getElementById(levelInputIdArr[i]);
			levelInputElem.checked = in_array(levelInputElem.value, cookiePreselectArr);

		}
	}
	
	if(langFilterWrapper != null)
	{
		var langInputElem = document.getElementById(langInputId);
		langInputElem.checked = in_array(langInputElem.name, cookiePreselectArr);
	}

	handleListFilter(false, false);
}

};
