var scrollAnchor = function(divID) {
	if ($(divID).childNodes.length > 0) {
		if ((typeof($(divID).childNodes[0]) != "undefined" && $(divID).childNodes[0].className == "expandable") || (typeof($(divID).childNodes[1]) != "undefined" && $(divID).childNodes[1].className == "expandable")) {
			openExpandable(divID);
		}
	}
	new Fx.Scroll(window, {
		wait: false,
		duration: 800,
		offset: {'x': 0, 'y': 0},
		transition: Fx.Transitions.Quad.easeInOut
	}).toElement(divID);
}


// Contenthöhe ändern, wenn Overlay höher wird
var cContentheight = function() {
	if ($defined($('overlayDiv'))) {
		overlaydivheight		= $('overlayDiv').offsetHeight;
		overlaycontentheight	= $('overlayContent').offsetHeight;
		
		if (overlaycontentheight > overlaydivheight) $$('.body').setStyle('height', overlaydivheight + (overlaycontentheight - overlaydivheight) + 100 + "px");
	}
}
// /Contenthöhe ändern, wenn Overlay höher wird


// Einfaches Ein- bzw. Ausblenden
var show = function(id) { $(id).style.display = ""; cContentheight(); }
var hide = function(id) { $(id).style.display = "none"; cContentheight(); }
var display = function(id) { ($(id).style.display == "none") ? show(id) : hide(id); }
// Einfaches Ein- bzw. Ausblenden


// GetParameter Objekt
var getParameterObj={};
getParameterObj.storeGetParameter = function (){
	var l,t,ev;
	var s=window.location.search;
	if (s!="")  {
		s=s.replace("?","");
		l=s.split("&");
			for(var i=0;i<=l.length-1;i++){
			t=l[i].split("=");
			t[1]=t[1].replace(/\+/g," ");
			t[1]=unescape(t[1]);
			if (t[0].indexOf(".") <= 0) {
				ev="getParameterObj."+t[0].toLowerCase()+ "='"+t[1]+ "'";
				eval(ev);
			}
		}
	}
	this.stored = true;
}
// GetParameter Objekt


// Werte aus der Url verwenden Bsp: readGetParameter("reiter")
function readGetParameter(P){
	var p = P.toLowerCase();
	if(!getParameterObj.stored) getParameterObj.storeGetParameter();
	if(getParameterObj[p]!=undefined){return getParameterObj[p];}else{return "";}
}
// Werte aus der Url verwenden Bsp: readGetParameter("reiter")


// Overlay inkl. Content
var overlay = function(layWidth, layContent) {
	// Content-Breite
	var cntSize = $$('div.body').getLast().getSize();
	var cntWidth = cntSize.x;
	// Mitte ausrechnen
	var center = (cntWidth-layWidth)/2;
	// Overlay
	new Element('div', {
		id:'overlayDiv'
	}).addClass('overlay').appendText('&nbsp;').setStyles({'height':cntSize.y}).inject($$('div.body').getLast());
	// Inhalt
	new Element('div', {
		id:'overlayContent'
	}).addClass('overlayContent').setStyles({'width':layWidth,'top':100,'left':center}).inject($('overlayDiv'), 'after');
	// Layer Content einbinden
	if (isNaN(layContent) && (layContent.contains('.') || layContent.contains('/'))) {
		// AJAX
		new Request.HTML({
			url:layContent,
			method:'post',
		    encoding: 'ISO-8859-1',
		    headers: {'charset':'iso-8859-1'},
			data:'x',
			/*onRequest:function() {
				loadingLayer('overlayContent');
			},*/
			useSpinner: true,
			update:'overlayContent',
		    evalResponse: true,
		    evalScripts: true
		}).send();
	} else if($type(layContent) == "number" || ($type(layContent) != "number" && layContent.contains('^'))) {
		if ($type(layContent) == "number") {
			searchURL = 'http://shopsuche.eplus.de/FilialFinder/Html/Map.aspx?Partner=eplus&SecurityID=tNUD3La4%2BIwhG4Hie%2B4B0w%3D%3D&MapPartnerIds=';
		} else {
			searchURL = 'http://shopsuche.eplus.de/FilialFinder/Html/Map.aspx?Partner=eplus&SecurityID=tNUD3La4%2BIwhG4Hie%2B4B0w%3D%3D&ShowMapRouteForm=false&MapPartnerIds=';
		}
		loadingLayer('overlayContent');
		// Yellowmap
		new Element('iframe', {
			id:'yellowmap',
			name:'yellowmap'
		}).replaces($('loadingLayer')).inject('overlayContent').addClass('yellowmap').setProperty('src', searchURL + layContent);
	}else{
        loadingLayer('overlayContent');
        
        $(layContent).replaces($('loadingLayer'));
        $(layContent).setStyle('display','block');
	}
	// Einblenden
	new Fx.Morph($('overlayDiv'), {
		duration: 500,
		wait: false,
		onStart: function () {
			new Fx.Morph($('overlayContent'), {
				duration: 500,
				wait: false
			}).start({'opacity':[0, 1], 'display':'block'});
		},
		onComplete: function() {
                $('overlayDiv').addEvent('click', function() { closeOverlay();});
				new Fx.Scroll(window, {
					wait: false,
					duration: 800,
					offset: {'x': 0, 'y': -100},
					transition: Fx.Transitions.Quad.easeInOut
				}).toElement('overlayDiv');
		}
	}).start({'opacity':[0, 0.5], 'display':'block'});
}
// Overlay


// Overlay schliessen
var closeOverlay = function() {
	// Ausblenden
	new Fx.Morph($('overlayDiv'), {
		duration: 500,
		wait: false,
		onStart: function() {
			new Fx.Morph($('overlayContent'), {
				duration: 500,
				wait: false
			}).start({'opacity':0});
		},
		onComplete: function() {
			$('overlayDiv').destroy();
			$('overlayContent').destroy();
		}
	}).start({'opacity':0});
}
// Overlay schliessen


// Nach Aufruf eines Overlays steht goto für eine Url, die innerhalb des Overlayers aufgerufen wird, ohne dass dieser geschlossen wird/werden muss. Bei Bedarf kann die Breite des layers erneut gesetzt werden.
var overlayNavable = function(strgoto,layWidth) {
	if (layWidth > 0) $('overlayContent').setStyles({'width':layWidth,'left':($$('div.body').getLast().getSize().x-layWidth)/2});
	new Request.HTML({
		url: strgoto,
		method: 'post',
		update: 'overlayContent'
	}).send();
};


// Loadinglayer
var loadingLayer = function(injectDiv) {
	$(injectDiv).empty();
	new Element('div', {
		id:'loadingLayer',
		html:'<img src="/img/spinner.gif" alt="" />'
	}).addClass('loadingLayer').inject($(injectDiv));
}
// Loadinglayer


// Einfacher Ajax-Request
// gotourl = wohin soll gepostet werden
// div2refresh = welcher layer kricht den request
var simpleAjaxRequest = function(gotourl, div2refresh) {
	new Request.HTML({
		url:		gotourl,
		method:		'post',
		encoding:	'ISO-8859-1',
		headers:	{'charset':'iso-8859-1'},
		useSpinner: true,
		update:		$(div2refresh)
	}).send();
	return false;
}
// Einfacher Ajax-Request


// Einfacher Ajax Port-Request
// formid = id der <form>
// gotourl = wohin soll gepostet werden
// div2refresh = welcher layer kricht den request
var simpleAjaxPost = function(formid, gotourl, div2refresh) {
	new Request.HTML({
		url:		gotourl,
		method:		'post',
		encoding:	'ISO-8859-1',
		headers:	{'charset':'iso-8859-1'},
		data:		$(formid),
		useSpinner: true,
		update:		$(div2refresh)
	}).send();
	return false;
}
// Einfacher Ajax Port-Request


// FadeIn/Out
var	fadeIn = function(id) { $(id).morph({'opacity':[0,1]}); }
var	fadeOut = function(id) { $(id).morph({'opacity':[1,0]}); }
// FadeIn/Out


// Textarea maxlength setzen
var setTextareaMaxlength = function(textareaID,maxlength) {
	var TextArea	= $(textareaID);
	var textval		= TextArea.value;
	var maximum		= parseInt(maxlength);
	
	if (parseInt(textval.length) >= maximum) {
		show(textareaID + 'Err');
		$(textareaID + 'Hak').src = "/img/checkout/check_err.gif";
		TextArea.value = textval.substring(0,maximum);
	} else {
		if ($(textareaID + 'Err').style.display == "") {
			hide(textareaID + 'Err');
			$(textareaID + 'Hak').src = "/img/checkout/check_ok.gif";
		}
	}
}
// Textarea maxlength setzen


//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//Script für das Abbinder DropDown!!
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

var ddactive = true;

sfHover = function() {
	if ($("nav") != null) {
		var sfEls = $("nav").getElementsByTagName("LI");
		var dd = $("dd");
		var dda = $("dda");
		dd.onclick = function() {
			if (ddactive) {
				for (var i = 1; i < sfEls.length; i++) {
					sfEls[i].onclick = function() {
						ddactive = false;
						dda.firstChild.nodeValue = this.firstChild.firstChild.nodeValue;
						sfClear();
					}
					sfEls[i].style.display = (sfEls[i].style.display.indexOf("none") > -1) ? '' : 'none';
				}
			}
		}
		dd.onmouseover = function() {
			ddactive = true;
		}
		dd.onmouseout = function() {
			ddactive = false;
		}
	}
} 

sfClear = function () {
	if ($("nav") != null) {
		var sfEls = $("nav").getElementsByTagName("LI");
		if(!ddactive){  	
			for (var i=1; i<sfEls.length; i++) {
				sfEls[i].style.display = 'none';
			}
		}
	}
}  

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//Script für das Abbinder DropDown - ENDE!!
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//Rechtstexte ausklappen!!!!!!!!!!!!
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

var rechtstexte = function() {
	var rtlayer = $('rtLayer');
	var rtlayerImg = $('rtLayerImg');
	var fussnotenLink = $('fussnoten');
	if (rtlayer.style.display == "none") {
        rtlayer.setStyle('display', 'block');
		if($defined( $('rtFlashLayer') )) $('rtFlashLayer').setStyle('display', 'block');
		//rtlayerImg.src = "/img/deko/dreieck_unten.gif";
	} else {
		rtlayer.setStyle('display', 'none');
		if($defined( $('rtFlashLayer') )) $('rtFlashLayer').setStyle('display', 'none');
		//rtlayerImg.src = "/img/deko/dreieck_rechts.gif";
	}
    fussnotenLink.toggleClass('pfeil-schwarz');
	fussnotenLink.toggleClass('pfeil-schwarz-down');
}

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//Rechtstexte ausklappen - ENDE!!!!!!!!!!!!
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


// wt track function
function getcontent(param) {
}



var escapeForm = function(formName) {
	var felder = $$($(formName).getElements('input'), $(formName).getElements('textarea'));
	felder.each(function(elm) {
		if (elm.getProperty('type') != "image") {
			//eval("document." + formName + "." + elm.getProperty('name') + ".value = escape(elm.value)");
			elm.value = escape(elm.value);
		}
	});

	var felder = $(formName).getElements('select');
	felder.each(function(elm) {
		elm.options[elm.selectedIndex].value = escape(elm.options[elm.selectedIndex].value);
	});
}

var unEscapeForm = function(formName) {
	var felder = $$($(formName).getElements('input'), $(formName).getElements('textarea'));
	felder.each(function(elm) {
		if (elm.getProperty('type') != "image") {
			//eval("document." + formName + "." + elm.getProperty('name') + ".value = unescape(elm.value)");
			elm.value = unescape(elm.value);
		}
	});

	var felder = $(formName).getElements('select');
	felder.each(function(elm) {
		elm.options[elm.selectedIndex].value = unescape(elm.options[elm.selectedIndex].value);
	});
}

var FormValidator = function(myform, args) {
	this.myform = myform;
	this.domid = document.getElementById(myform);
	this.fields = new Hash(args.fields);
	this.options = new Hash(args.options);
	var list = "";
	var instance = this;

	//loopt durch alle angegebenen felder, fügt ein paar optionen hinzu
	this.fields.each(function(el) {
		el.domid = $(el.name);
		el.checked = false;
		el.error = false;
		el.form = this.myform;
		el.myformdomid = this.domid;
		el.checkrelated_clear = false;

		//add validation event
		var eventType = "";
		if (el.typ == "select") {
			eventType = "change";
		} else if (el.typ == "checkbox") {
			eventType = "click";
		} else {
			eventType = "blur";
		}
		//add autoevent to all defined fields exept multi
		if (el.typ != "multi") {
			el.domid.addEvent(eventType, function(e) {
				validateField(instance, el.name);
			});
		}
		//prepare multifield
		if (el.typ == "multi") {
			FormValidatorMultifield(this.myform, el);
		}
		ft = (typeof (el.typ) == "undefined") ? "not required" : el.typ;
		list += el.name + " [" + ft + "]\r\n";
	});

	//checken ob synchroforms dabei sind
	if (typeof (instance.options.sync) != "undefined") {
		instance.syncparams = new Hash(args.options.syncparams);
		instance.syncparams.each(function(el) {
			list += "formular synct mit form " + el.form + "\r\n";
		});
	}
}

//multifield aufbauen
var FormValidatorMultifield = function(myform, fieldObj) {
	fieldObj.fields = new Hash(fieldObj.subfields);
	fieldObj.fields.each(function(el) {
		el.domid = $(el.name);
		el.myform = fieldObj.myform;
		el.error = false;
		el.checked = false;
	})
}

//Formular clearen
var FormClear = function(myform) {
	myform.fields.each(function(el) {
		validateFieldClear(myform, el);
	});
}

//check if form is completely filled before submitting
var FormSubmit = function(myform, returnBool) {
	if (returnBool == null || returnBool == "undefined") {
		returnBool = true;
	}
	var flag_notchecked = false;
	var flag_error = false;
	myform.fields.each(function(el) {
		//einmal check durchlaufen lassen ob schon daten vorgeladen sind damit bei vorausgefuellten formularen nicht alles auf rot steht
		validateField(myform, el.name);

		//checkt ob feld pflicht ist, wenn nicht aus stylegründen grün machen
		if (el.required != "true" && el.error == false) {
			validateFieldOk(myform, el);
		}
		//feld wurde nicht gecheckt == fehler
		if (el.checked == false) {
			flag_notchecked = true;
			validateFieldError(myform, el);
		}
		//feld hat fehler == fehler
		if (el.error == true) {
			flag_error = true;
		}
	});

	if (flag_error == true) {
		alert("Sie haben nicht alle Felder korrekt ausgefüllt.\r\nBitte beachten Sie die roten Hinweistexte.");
		if (returnBool) {
			return false;
		}
	} else {
		if (flag_notchecked == true) {
			alert("Sie haben nicht alle Pflichtfelder ausgefüllt.\r\nBitte beachten Sie die roten Hinweistexte.");
			if (returnBool) {
				return false;
			}
		} else {
			//abfackeling synchronisation 
			if (typeof (myform.options.sync) != "" && typeof (myform.options.sync) != "undefined") {
				FormSync(myform);
			}

			//true / false return option
			if (typeof (myform.options.returnvalue) != "undefined") {
				if (returnBool) {
					return true;
				}
			} else {
				if (myform.options.submitto == "") {
					myform.domid.submit();
					if (returnBool) {
						return true;
					}
				} else {
					eval(myform.options.submitto);
				}
			}
		}
	}
}

//feldinhalte gegenchecken
var validateField = function(myform, id) {
	myform.fields.each(function(el) {
		if (el.name == id) {
			fieldObj = el;
		}
	});
	var e = false;

	//überprüfungen finden nur statt wenn ein feld required ist oder ein multifield ist
	if (fieldObj.required == "true" || fieldObj.typ == "multi") {
		//normale felder
		if (fieldObj.typ != "multi") {
			e = validateFunctions(myform, fieldObj);

		} else {
			//multifelder haben subfelder, die zusammen validiert werden
			var flag_multiallchecked = false;
			//alle subfelder durchtesten
			fieldObj.fields.each(function(el) {
				//debugging
				me = validateFunctions(myform, el);
				if (me == true) {
					e = true;
				}
				if (el.checked == false) {
					flag_multiallchecked = false;
				}
			});
			//multifeld auf kein error setzen wenn es nicht pflicht ist, auch wenn subfelder false geben
			e = (fieldObj.typ == "multi" && fieldObj.required == "false") ? false : e;
		}
	} else {
		if (typeof (fieldObj.validate) != "undefined") {
			e = eval(fieldObj.validate);
		}
	}

	//feld ok oder error setzen
	if (e == false) {
		validateFieldOk(myform, fieldObj);
	} else if (e == true) {
		validateFieldError(myform, fieldObj);
	} else if (e == "ignore") {
		validateFieldClear(myform, fieldObj);
	}
}

//form synchen
var FormSync = function(myform) {
	myform.syncparams.each(function(el) {
		myform.fields.each(function(fel) {
			var name = $(el.fieldprefix + fel.name.replace(myform.options.fieldprefix, ''));
			if (typeof (name) != "undefined" && name != null) {
				if (fel.typ == "radio" || fel.typ == "select") {
					name.selectedIndex = fel.domid.selectedIndex;
				} else if (fel.typ == "checkbox") {
					name.checked = (fel.domid.checked == true) ? true : false;
				} else {
					name.value = fel.domid.value;
				}
			}
		});
	});
}

//validierungsfunktionen
var validateFunctions = function(myform, fieldObj) {
	//arbeitszeug
	regexp_mail = /^[\w\-\.]+@([a-zA-Z0-9]+(-[a-zA-Z0-9]+)*\.)*[a-zA-Z0-9]+-{0,1}[a-zA-Z0-9]+(-{0,1}[a-zA-Z0-9]+)*\.[a-zA-Z]{2,4}$/ //RFC 822
	regexp_vorwahl = /^0[+]?\d*$/;  /* [+ optional]0[0-9] */
	regexp_nummer = /^[+]?\d*$/;    /* [+ optional][[0-9] */
	regexp_komplettnummer = /^0[+]?\d*?\s*?\/?\s*?\d*?$/; /* 0[0-9][ / (optional)][0-9]*/
	regexp_name = /^([a-zA-Z]|[äöüÄÖÜß\-´]|\s)*$/;
	regexp_plz = /^\d{5}/;

	//error auf false setzen
	var e = false;

	//textfelder, werden auf inhalt geprüft   
	if (fieldObj.typ == "text") {
		if (fieldObj.domid.value == "") {
			e = true;
		} else {
			//mindestlänge in check.chars
			e = (typeof (fieldObj.chars) != "undefined" && fieldObj.chars > fieldObj.domid.value.length) ? true : false;
		}
	}
	//email
	if (fieldObj.typ == "email") {
		e = (fieldObj.domid.value != "" && fieldObj.domid.value.match(regexp_mail)) ? false : true;
	}
	//checkbox
	if (fieldObj.typ == "checkbox" && fieldObj.domid.checked == false) {
		e = true;
	}
	//select
	if ((fieldObj.typ == "select") && typeof (fieldObj.reject) != "undefined") {
		if (fieldObj.domid.options.selectedIndex == fieldObj.reject) {
			e = true;
		}
	}
	//telefonvorwahl
	if (fieldObj.typ == "telefonvorwahl") {
		if (fieldObj.domid.value.length < 3 || fieldObj.domid.value.length > 5) {
			e = true;
		} else {
			e = (fieldObj.domid.value != "" && fieldObj.domid.value.match(regexp_vorwahl)) ? false : true;
		}
	}
	//telefonnummer
	if (fieldObj.typ == "telefonnummer") {
		if (fieldObj.domid.value.length < 4 || fieldObj.domid.value.length > 8) {
			e = true;
		} else {
			e = (fieldObj.domid.value != "" && fieldObj.domid.value.match(regexp_nummer)) ? false : true;
		}
	}
	//telefon komplettnummer
	if (fieldObj.typ == "telefon") {
		if (fieldObj.domid.value.length < 7) {
			e = true;
		} else {
			e = (fieldObj.domid.value != "" && fieldObj.domid.value.match(regexp_komplettnummer)) ? false : true;
		}
	}
	//name
	if (fieldObj.typ == "name") {
		e = (fieldObj.domid.value != "" && fieldObj.domid.value.length > 1) ? false : true;
	}
	//geburtsjahr
	if (fieldObj.typ == "gebjahr") {
		jetzt = new Date();
		jahr = jetzt.getFullYear();
		gebJahr = fieldObj.domid.value;
		wert = jahr - gebJahr;
		e = (fieldObj.domid.value != "" && wert > 17 && wert < 100) ? false : true;
	}
	//plz
	if (fieldObj.typ == "plz") {
		e = (fieldObj.domid.value != "" && fieldObj.domid.value.match(regexp_plz) && fieldObj.domid.value.length < 6) ? false : true;
	}
	//validate mit function. function sollte true(ok) oder false(error) zurückgeben, damit das feld entsprechen gesetzt werden kann
	//validatefunction wird nur ausgeführt wenn noch kein error ist
	if (typeof (fieldObj.validate) != "undefined") {
		if (e == false) {
			returnvalue = eval(fieldObj.validate);
			e = (returnvalue == false) ? true : false;
		}
	}

	return e;
}

//feld auf ok setzen
var validateFieldOk = function(myform, fieldObj) {
	$(fieldObj.name + "Hak").src = " /img/checkout/check_ok.gif";
	if ($(fieldObj.name + "Err")) {
		$(fieldObj.name + "Err").style.display = 'none';
	}
	fieldObj.error = false;
	fieldObj.checked = true;

	//anderes feld checken, das mit dem gegenwärtigen in verbindung steht
	if (typeof (fieldObj.checkrelated) != "undefined" && fieldObj.checkrelated_clear == false) {
		fieldObj.checkrelated_clear = true;
		//validateField(myform, fieldObj.checkrelated);
	}
	fieldObj.checkrelated_clear = false;
}

//feld auf fehler setzen
var validateFieldError = function(myform, fieldObj) {
	$(fieldObj.name + "Hak").src = " /img/checkout/check_err.gif";
	if ($(fieldObj.name + "Err")) {
		$(fieldObj.name + "Err").style.display = 'block';
	}

	fieldObj.error = true;
	fieldObj.checked = true;

	//anderes feld checken, das mit dem gegenwärtigen in verbindung steht
	if (typeof (fieldObj.checkrelated) != "undefined" && fieldObj.checkrelated_clear == false) {
		fieldObj.checkrelated_clear = true;
		validateField(myform, fieldObj.checkrelated);
	}
	fieldObj.checkrelated_clear = false;
}

//feld auf blank setzten
var validateFieldClear = function(myform, fieldObj) {
	if (typeof (fieldObj.typ) != "undefined") {
		if (fieldObj.typ == "checkbox") {
			fieldObj.domid.checked = false;
			fieldObj.domid.error = false;
		}
		if (fieldObj.typ == "text" || fieldObj.typ == "email") {
			fieldObj.domid.value = "";
			fieldObj.domid.error = false;
		}
		$(fieldObj.name + "Err").style.display = 'none';
	}
	$(fieldObj.name + "Hak").src = " /img/checkout/check_blank.gif";
}

//feldbobject holen
var setFieldState = function(myform, id, state) {
	myform.fields.each(function(el) {
		if (el.name == id) {
			if (state == false) {
				validateFieldError(myform, el);
			} else {
				validateFieldOk(myform, el);
			}
		}
	});
}

var initTopNav = function() {
	var topnavigation = $('topnavigationListe');
	if (topnavigation != null) {
		$each(topnavigation.getChildren(), function(item, index) {
			if (item.getChildren().length > 1) {
				item.addEvents(
            {
            	'mouseover': function() {
            		if (!item.hasClass('aktiv')) item.toggleClass('on');
            		$('DD' + item.id).setStyle('display', 'block');
            		item.setStyle('cursor', 'pointer');
            	},
            	'mouseout': function() {
            		if (!item.hasClass('aktiv')) item.toggleClass('on');
            		$('DD' + item.id).setStyle('display', 'none');
            	}
            });
			} else {
				item.addEvents(
            {
            	'mouseover': function() {
            		if (!item.hasClass('aktiv')) item.toggleClass('on');
            		item.setStyle('cursor', 'pointer');
            	},
            	'mouseout': function() {
            		if (!item.hasClass('aktiv')) item.toggleClass('on');
            	}
            });
			};
		});
	}
}

// DOMREADY FUNCTIONS
window.addEvent('domready',function() {
	//initTopNav();
	// Abbinder DropDown
	if (window.attachEvent)	{
		window.attachEvent("onload", sfHover);
		document.attachEvent("onmousedown", sfClear);
	} else {
		sfHover();
		window.onclick = sfClear;
	}
	// Abbinder DropDown
	
});
// DOMREADY FUNCTIONS

// Voting
var saveVote = function(id) {
	var formErr = true;
	var allRadios = new Array();
	var allInputs = $$($('pageVote'+id).getElements('input')); // Alle input Fields ermitteln
	// Aus diesen Inputfields alle radio-Buttons auswaehlen
	allInputs.each(function(radio){
		if(radio.getProperty('type') == 'radio') {
			allRadios.push(radio.getProperty('id'));
		}
	});
	// Aus allen Radiobuttons die ID in ein Array schreiben
	allRadios.each(function(radio) {
		if ($(radio).checked != false) formErr = false; 
	});
	// Je nach Fehlerstatus Aktion ausfuehren
	if (formErr) {
		alert("Bitte geben Sie eine Wertung ab.");
	} else {
		new Request.HTML({
			url:'/include/infocenter/voting.inc.asp',
			method:'post',
			data:$('pageVote'+id),
			useSpinner: true,
			update:'votingModule'+id
		}).send();
	}
}
// Voting

var scrollAnchor = function(divID) {
	if($(divID) != null) {
		if ($(divID).childNodes.length > 0) {
			if ((typeof($(divID).childNodes[0]) != "undefined" && $(divID).childNodes[0].className == "expandable") || (typeof($(divID).childNodes[1]) != "undefined" && $(divID).childNodes[1].className == "expandable")) {
				openExpandable(divID);
			}
		}
		new Fx.Scroll(window, {
			wait: false,
			duration: 800,
			offset: {'x': 0, 'y': 0},
			transition: Fx.Transitions.Quad.easeInOut
		}).toElement(divID);
	}
}

var FAQ = function(val) { overlay(560, '/include/infocenter/tarifefaqlayer.inc.asp?rubrik=' + val + '&main=' + val) }

// Funktionen NACH komplettem Seitenladen
window.addEvent('domready',function() {
	
	// reiter oeffnen
	var r 			= readGetParameter("reiter");
	var rBereich 	= readGetParameter("bereich");
    var jumpToReiter = "";
    //Zusatzvariable für den Sonderfall auf den Detailseiten
    var openExpTarget = "";
    
	// Hinspringen und oeffnen des angegebenen Expandables
	var opened = false;
	if (window.location.hash != "") {
		var anker = window.location.hash.replace(/#/g, "");
		if($(anker) != null) {
			if ($(anker).getChildren().length >= 1) {
				if ($(anker).hasChild($("exp_expid"+anker))) {
					if(r==""){
						//openExpandable(anker);
						scrollToAndOpenExpandable(anker);
					}else{
						jumpToReiter = anker;
					}
				}
				else if(anker=="headline"){
					if($defined($("Tarifdetails"))){openExpTarget = "Tarifdetails";}
					if($defined($("Handydetails"))){openExpTarget = "Handydetails";}
					if(openExpTarget != ""){ openExpandable(openExpTarget);}
					scrollAnchor(anker);
				}
			}
		}
	}

	if(r!=""){
	    reiter(r,jumpToReiter);
	}else if(rBereich!=""){
		reiter(rBereich);
	};
/*	if ($defined($$('.infoLayer'))) {
		var myTips = new Tips('.infoLayer', {
			fixed:false
		});
		myTips.addEvent('show', function(tip){
			tip.fade('in');
		});
		myTips.addEvent('hide', function(tip){
			tip.fade('out');
		}); 
	}*/
	//Ausblenden des SEO-Textes
	//if($defined($$('.seocontent'))){$$('.seocontent').setStyle('display','none');}
});

//Geschaeftskunden
var geschaeftskunden = function() { overlay(670, '/Geschaeftskunden/Geschaeftskunden.asp'); }

//personalisierung

var registerVisitation = function(pageCode){
        new Request.HTML({
        		 url: '/Shop/handler/Personalisation.ashx',
        		 method:'get',
        		 data: 'v='+pageCode,
        		 evalScripts:true,
 			 evalResponse:true
        	}).send();
}

var registerCheckoutFinished = function() {        	
        new Request.HTML({
        		 url: '/Shop/handler/Personalisation.ashx',
        		 method:'get',
        		 data: 'CF=1',
        		 evalScripts:true,
 			 evalResponse:true
        	}).send();
}

var registerECCLogin = function (){
        new Request.HTML({
        		 url: '/Shop/handler/Personalisation.ashx',
        		 method:'get',
        		 data: 'EL=1',
        		 evalScripts:true,
 			 evalResponse:true
        	}).send();
        }

var registerFamilyAndFriendsParticipation = function() {
		new Request.HTML({
			url: '/Shop/handler/Personalisation.ashx',
			method: 'get',
			data: 'FF=1',
			evalScripts: true,
			evalResponse: true
		}).send();
	}

var setCustomerType = function (customerType) {
        new Request.HTML({
        		 url: '/Shop/handler/Personalisation.ashx',
        		 method:'get',
        		 data: 'CT='+customerType,
        		 evalScripts:true,
 			 evalResponse:true
        	}).send();   
}

var noFlashMeldung = function(_divid,_data){
	new Request.HTML({
			url:'/include/module/noFlashMeldung.asp',
			method:'get',
			data:_data,
			onRequest:function() {
			},
			evalScripts:true,
			evelResponse:true,
			update:_divid
		}).send();
}


// Vermarktungsteaser - HandyInternetFlat/Partnerkarte
var orderoption = function(ot) { overlay(520, '/include/tarifoptionen/tarifoptionen_layer.asp?ordertype=' + ot + '&q=' + document.location); }
// Vermarktungsteaser - HandyInternetFlat/Partnerkarte