// Login Form
document.write('<style type="text/css"><!-- #loginOpened {display: none;} .myWhiskas {cursor: pointer;} .formLogin label {position: absolute; float: none; width: auto;} .formLogin input {width: 217px;} --></style>');
// Newsletter Form
document.write('<style type="text/css"><!-- .formNewsletter label {position: absolute; float: none; width: auto;} --></style>');
// Search Form
document.write('<style type="text/css"><!-- .formSearch label {position: absolute; float: none; width: auto;} .formSearch input {width: 226px;} --></style>');
// Logout Button
document.write('<style type="text/css"><!-- .formLogout .logout {display: none;} --></style>');
// Weitersenden
document.write('<style type="text/css"><!-- #weitersendenOpened {display: none;} --></style>');


// Gewinnspiel Vote
function vote(elId, el, uid, vote) {
	new Ajax.Request('/index.php?eID=tx_whiskaswinning_vote&form=' + elId + '&uid=' + uid + '&vote=' + vote +  '&' + Form.serialize(el.form).replace(/%0D%0A/,""), {
		onSuccess: function(transport) {
			//alert(transport.responseText);
			p = transport.responseText.split("###");
			$(elId).style.backgroundImage = "url(" + p[0] + ")";
			$('msg_' + elId).innerHTML = p[1];
			$('msg_' + elId).style.color = '#A5027D';
			
		}
	});
}


// schaltet nächste Katze frei
function showNextCat(cat) {
	document.getElementById('cat'+cat).style.display = "block";
	document.getElementById('catButton'+cat).style.display = "none";
	document.getElementById('catButtonDel'+(cat-1)).style.display = "none";
}
function hideCat(cat) {
	document.getElementById('cat'+cat).style.display = "none";
	document.getElementById('catButton'+cat).style.display = "block";
	document.getElementById('catButtonDel'+(cat-1)).style.display = "block";
}
function deleteCat(cat) {
	document.getElementById('tx-srfeuserregister-pi1-tx_whiskas_cat'+cat+'_name').value='';
	document.getElementById('tx-srfeuserregister-pi1-tx_whiskas_cat'+cat+'_race').value=0;
	document.getElementById('tx-srfeuserregister-pi1-tx_whiskas_cat'+cat+'_birth').value='';
	document.getElementById('tx-srfeuserregister-pi1-tx_whiskas_cat'+cat+'_birth_day').value='';
	document.getElementById('tx-srfeuserregister-pi1-tx_whiskas_cat'+cat+'_birth_month').value='';
	document.getElementById('tx-srfeuserregister-pi1-tx_whiskas_cat'+cat+'_nl').checked=false;
	if (cat > 1) hideCat(cat);
}
function initCat(cat) {
	if (document.getElementById('tx-srfeuserregister-pi1-tx_whiskas_cat'+cat+'_name')) {
		if  (document.getElementById('tx-srfeuserregister-pi1-tx_whiskas_cat'+cat+'_name').value != '' || document.getElementById('tx-srfeuserregister-pi1-tx_whiskas_cat'+cat+'_nl').checked) {
			document.getElementById('cat'+cat).style.display = "block";
			document.getElementById('catButton'+cat).style.display = "none";
			document.getElementById('catButtonDel'+(cat-1)).style.display = "none";
			initCat(cat+1);
		} else {
			for (var i=0; i<6; i++) {
				if (i>=cat) {					
					document.getElementById('tx-srfeuserregister-pi1-tx_whiskas_cat'+i+'_name').value='';
					document.getElementById('tx-srfeuserregister-pi1-tx_whiskas_cat'+i+'_race').value=0;
					document.getElementById('tx-srfeuserregister-pi1-tx_whiskas_cat'+i+'_birth').value='';	
					document.getElementById('tx-srfeuserregister-pi1-tx_whiskas_cat'+i+'_birth_day').value='';
					document.getElementById('tx-srfeuserregister-pi1-tx_whiskas_cat'+i+'_birth_month').value='';
					document.getElementById('tx-srfeuserregister-pi1-tx_whiskas_cat'+i+'_nl').checked=false;					
				}
			}
		}
	}
}


function maxlength(obj, length) {
	var textinhalt;
	textinhalt = obj.value;
	
	if (textinhalt.length >= length) {
		obj.value=textinhalt.substring(0,length);
		//obj.blur();
	}
}


/**************************************/

createMyCookie('whiskastestcookie','testwert');

// Cookie-Behandlung: setzen, lesen, loeschen
function createMyCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}
function readMyCookie(name) {
	var nameEQ = 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(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
function eraseMyCookie(name) {
	createMyCookie(name,"",-1);
}

// schaltet sichtbare elemente aus und unsichtbare ein, sofern js aktiviert ist
function toggle2(elementID) {
	var elem = document.getElementById(elementID);
	var cookieName='toggle2_'+elementID;
	var verfallTage = 356;
	if(elem.style.display == "none") {
		elem.style.display = "block";
	}
	else {
		elem.style.display = "none";
	}
	//eraseMyCookie(cookieName);
	createMyCookie(cookieName,elem.style.display);
}

// setzt die CSS-display-Eigenschaft auf den Cookie-Wert zurueck
function resetMyElement(myCookieName) {
//alert (document.cookie);
	var myCookieValue = readMyCookie(myCookieName);
	if(myCookieValue && myCookieValue.length > 0) {
//alert (document.cookie);
//alert (myCookieValue);
			var elementID = myCookieName.substr(myCookieName.indexOf('_',0)+1, myCookieName.length-1);
			var elem = document.getElementById(elementID);
			elem.style.display = myCookieValue;
	} else {
//		alert ('...');
//alert (document.cookie);	
		var myTestCookieValue = readMyCookie('whiskastestcookie'); //werden cookies ueberhaupt akzeptiert?
		if(myTestCookieValue && myTestCookieValue.length > 0) {
			document.getElementById('loginOpened').style.display = "none";
		} else {
//alert('kein Test-Cookie gesetzt');
			document.getElementById('loginOpened').style.display = "block";
		}
	}
}










// schaltet sichtbare elemente aus und unsichtbare ein, sofern js aktiviert ist
function toggle3(elementID) {
	
	var elem = document.getElementById(elementID);
	if(elem.style.display == "none" || elem.style.display == "") {
		elem.style.display = "block";
	}
	else {
		elem.style.display = "none";
	}
}



// Nach Fertigladen der Seite JS-Code in Links einbauen
document.observe('dom:loaded', initAllForms);
document.formsToInit = new Array();

function initAllForms() {
	for (i=0; i<document.formsToInit.length; i++) {
		doInitForm(document.formsToInit[i]);	
	}
}
function initForm(formName) {
	document.formsToInit.push(formName);
}

function doInitForm(formName) {
	document.openScrollbar = "";
	var tmpForm = document.getElementById(formName);
	if (!tmpForm) { return; }
	var tmpFormRows = tmpForm.getElementsByTagName('DIV');

	if (!tmpFormRows) { return; }
	for (var i = 0; i < tmpFormRows.length; i++) {
		if (tmpFormRows[i].className != 'formLine') { continue; }
		tmpFormRows[i].style.zIndex = tmpFormRows.length - i;		
		
		// check ob label vorhanden
		if(!(tmpFormRows[i] && tmpFormRows[i].getElementsByTagName('LABEL') && tmpFormRows[i].getElementsByTagName('LABEL')[0] && tmpFormRows[i].getElementsByTagName('LABEL')[0].innerHTML))  { continue; }

		var tmpLabel = tmpFormRows[i].getElementsByTagName('LABEL')[0].innerHTML;		
		var tmpTagName = tmpFormRows[i].getElementsByTagName('LABEL')[0].tagName;
		if (!tmpLabel || tmpTagName != 'LABEL') { continue; }
		
		// wenn INPUT oder TEXTAREA
		var tmpType = "";
		if(tmpFormRows[i] && tmpFormRows[i].getElementsByTagName('INPUT') && tmpFormRows[i].getElementsByTagName('INPUT')[0] && tmpFormRows[i].getElementsByTagName('INPUT')[0].tagName)  {tmpType = 'INPUT';}
		if(tmpFormRows[i] && tmpFormRows[i].getElementsByTagName('TEXTAREA') && tmpFormRows[i].getElementsByTagName('TEXTAREA')[0] && tmpFormRows[i].getElementsByTagName('TEXTAREA')[0].tagName)  {tmpType = 'TEXTAREA';}

		if (tmpType) {
			var tmpFormRow = tmpFormRows[i];
			tmpFormRow.getElementsByTagName('LABEL')[0].innerHTML = tmpLabel;
			tmpFormRow.getElementsByTagName(tmpType)[0].onfocus = function() { gotFocus(this.parentNode.getElementsByTagName('LABEL')[0]); }
			// unterscheidung zw. input und textarea
			if (tmpType == 'INPUT') { tmpFormRow.getElementsByTagName(tmpType)[0].onblur = function() { lostFocus(this.parentNode.getElementsByTagName('LABEL')[0], 'INPUT'); }	}
			else if (tmpType == 'TEXTAREA') { tmpFormRow.getElementsByTagName(tmpType)[0].onblur = function() { lostFocus(this.parentNode.getElementsByTagName('LABEL')[0], 'TEXTAREA'); } }

			if (tmpFormRow.getElementsByTagName(tmpType)[0].value != "") { gotFocus(tmpFormRow.getElementsByTagName('LABEL')[0]); }
			
		// wenn SELECT	
		} else if(tmpFormRows[i] && tmpFormRows[i].getElementsByTagName('SELECT') && tmpFormRows[i].getElementsByTagName('SELECT')[0] && tmpFormRows[i].getElementsByTagName('SELECT')[0].tagName)  {
			// Sonderfall Select: Ausblenden und stattdessen einen Link mit Text und Layer-Dropdown einblenden
			var tmpField = tmpFormRows[i].getElementsByTagName('SELECT')[0];
			// select box ausblenden
			tmpFormRows[i].getElementsByTagName('SELECT')[0].parentNode.getElementsByTagName('LABEL')[0].style.display = "none";
			tmpField.style.display = "none";
			// Zuerst ein A-Tag zum Toggeln des Dropdowns und der anzeige des aktuellen Wertes erzeugen
			var tmpA = document.createElement("a");
			tmpA.appendChild(document.createTextNode(tmpLabel));
			tmpA.setAttribute('id', tmpField.id + '_a');
			// ausklappen
			tmpA.setAttribute('href', 'javascript:toggleDropdown("' + tmpField.id + '_a")');
			tmpFormRows[i].appendChild(tmpA);
			tmpA.className = 'csc-mailform-select-a';
			// Nun ein DIV als Dropdown
			var tmpDiv = document.createElement("div");
			tmpDiv.setAttribute('id', tmpField.id + '_div');
			tmpFormRows[i].appendChild(tmpDiv);
			tmpDiv.className = 'csc-mailform-select-div';
			// Nun die Optionen als A-Tags erzeugen
			for (var j = 0; j < tmpField.options.length; j++) {
				// nur wenn wert vorhanden
				if (tmpField.options[j].text != "") {
					var tmpOption = document.createElement("a");
					tmpOption.appendChild(document.createTextNode(tmpField.options[j].text));
					tmpOption.setAttribute('href', 'javascript:document.'+tmpForm.name+'.'+tmpField.id+'.options['+j+'].selected=true;	document.getElementById("'+tmpField.id + '_a").childNodes[0].nodeValue="'+tmpField.options[j].text+'";	toggleDropdown("' + tmpField.id + '_a")');
					tmpDiv.appendChild(tmpOption);
					tmpOption.className = 'csc-mailform-select-option';
				}
			}
			tmpA.relatedLabel = tmpLabel;
			tmpA.relatedField = tmpField;
			tmpA.relatedDiv = tmpDiv;
		}
	}
}

function gotFocus(element) {
	element.style.visibility = "hidden";
}

function lostFocus(element, input) {
	if (element.parentNode.getElementsByTagName(input)[0].value != "") { return; }
	element.style.visibility = "visible";
}


function validateFormWhiskas(theFormname,theFieldlist,goodMess,badMess,emailMess)	{
	var formObject = document[theFormname];
	if (!formObject)	{
		formObject = document.getElementById(theFormname);
	}
	if (formObject && theFieldlist)	{
		var index=1;
		var theField = split(theFieldlist, ",", index);
		var msg="";
		var theEreg = '';
		var theEregMsg = '';
		var specialMode = '';
		var theLabel, a;

		while (theField) {
			theEreg = '';
			specialMode = '';

				// Check special modes:
			if (theField == '_EREG')	{	// EREG mode: _EREG,[error msg],[JS ereg],[fieldname],[field Label]
				specialMode = theField;

				index++;
				theEregMsg = unescape(split(theFieldlist, ",", index));
				index++;
				theEreg = unescape(split(theFieldlist, ",", index));
			} else if (theField == '_EMAIL')	{
				specialMode = theField;
			}

				// Get real field name if special mode has been set:
			if (specialMode)	{
				index++;
				theField = split(theFieldlist, ",", index);
			}

			index++;
			theLabel = unescape(split(theFieldlist, ",", index));
			theField = unescape(theField);
			if (formObject[theField])	{
				var fObj = formObject[theField];
				var type=fObj.type;
				if (!fObj.type)	{
					type="radio";
				}
				var value="";
				switch(type)	{
					case "text":
					case "textarea":
					case "password":
					case "file":
						value = fObj.value;
					break;
					case "select-one":
						if (fObj.selectedIndex>=0)	{
							value = fObj.options[fObj.selectedIndex].value;
						}
					break;
					case "select-multiple":
						var l=fObj.length;
						for (a=0;a<l;a++)	{
							if (fObj.options[a].selected)	{
								 value+= fObj.options[a].value;
							}
						}
					break;
					case "radio":
					case "checkbox":
						var len=fObj.length;
						if (len)	{
							for (a=0;a<len;a++)	{
								if (fObj[a].checked)	{
									value = fObj[a].value;
								}
							}
						} else {
							if (fObj.checked)	{
								value = fObj.value;
							}
						}
					break;
					default:
						value = 1;
				}

				switch(specialMode)	{
					case "_EMAIL":
						var theRegEx_notValid = new RegExp("(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)", "gi");
						var theRegEx_isValid = new RegExp("^.+\@[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})$","");
						if (!theRegEx_isValid.test(value))	{	// This part was supposed to be a part of the condition: " || theRegEx_notValid.test(value)" - but I couldn't make it work (Mozilla Firefox, linux) - Anyone knows why?
							msg+="\n"+theLabel+' ('+(emailMess ? unescape(emailMess) : 'Email address not valid!')+')';
						}
					break;
					case "_EREG":
						var theRegEx_isValid = new RegExp(theEreg,"");
						if (!theRegEx_isValid.test(value))	{
							msg+="\n"+theLabel+' ('+theEregMsg+')';
						}
					break;
					default:
						if (!value)	{
							msg+="\n"+theLabel;
						}
				}
			}
			index++;
			theField = split(theFieldlist, ",", index);
		}
		if (msg)	{
			var theBadMess = unescape(badMess);
			if (!theBadMess)	{
				theBadMess = "You must fill in these fields:";
			}
			theBadMess+="\n";
			alert(theBadMess+msg);
			return false;
		} else {
			var theGoodMess = unescape(goodMess);
			if (theGoodMess)	{
				alert(theGoodMess);
			}
			return true;
		}
	}
}
function split(theStr1, delim, index) {
	var theStr = ''+theStr1;
	var lengthOfDelim = delim.length;
	var sPos = -lengthOfDelim;
	var a, ePos;
	if (index<1) {index=1;}
	for (a=1; a<index; a++)	{
		sPos = theStr.indexOf(delim, sPos+lengthOfDelim);
		if (sPos==-1)	{return null;}
	}
	ePos = theStr.indexOf(delim, sPos+lengthOfDelim);
	if(ePos == -1)	{ePos = theStr.length;}
	return (theStr.substring(sPos+lengthOfDelim,ePos));
}

/* Katzenvermittlung */
function catexchange_deleteCat() {
	if (confirm('Soll dieser Eintrag wirklich gelöscht werden?')) {
		document.forms['catexchange_delete'].submit();
	}
}

