function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}


/* Ein und Ausklappen zusaetzlicher Inhalte 
function moreDivs(obj, typ){
	var fromNode = obj.parentNode.parentNode.parentNode.parentNode;
	obj.parentNode.parentNode.parentNode.style.display = "none";
	(typ=="show")?classobj="show_more_divs":classobj="no_more_divs";
	for(i=0;i<fromNode.childNodes.length;i++){
		if(fromNode.childNodes[i].nodeType == 1 && fromNode.childNodes[i].className == classobj){
			fromNode.childNodes[i].style.display="inline";
		}		
	}
}
*/

/* Ein und Ausklappen zusaetzlicher Inhalte */
function moreDivs(obj, typ){
	if(typ=="show") hideAllMoreDivs();
	var fromNode = obj.parentNode.parentNode.parentNode.parentNode;
	obj.parentNode.parentNode.parentNode.style.display = "none";
	(typ=="show")?classobj="show_more_divs":classobj="no_more_divs";
	for(i=0;i<fromNode.childNodes.length;i++){
		if(fromNode.childNodes[i].nodeType == 1 && fromNode.childNodes[i].className == classobj){
			fromNode.childNodes[i].style.display="inline";
		}		
	}
}

/* Ein und Ausklappen zusaetzlicher Inhalte */
function moreDivs2(obj, typ){
	//if(typ=="show") hideAllMoreDivs();
	var fromNode = obj.parentNode.parentNode.parentNode.parentNode;
	obj.parentNode.parentNode.parentNode.style.display = "none";
	(typ=="show")?classobj="show_more_divs":classobj="no_more_divs";
	for(i=0;i<fromNode.childNodes.length;i++){
		if(fromNode.childNodes[i].nodeType == 1 && fromNode.childNodes[i].className == classobj){
			fromNode.childNodes[i].style.display="inline";
		}		
	}
}

function hideAllMoreDivs(){
	for(i=0;i<document.getElementById("main").getElementsByTagName("div").length;i++){
		if(document.getElementById("main").getElementsByTagName("div")[i].className == "show_more_divs") {
			document.getElementById("main").getElementsByTagName("div")[i].style.display = "none";
		}
		if(document.getElementById("main").getElementsByTagName("div")[i].className == "no_more_divs") {
			document.getElementById("main").getElementsByTagName("div")[i].style.display = "inline";
		}
	}
}

/* Ist das Info Feld in X und Y noch sichtbar? */
function viewableArea(divID, pos){	
	if((navigator.appName == "Microsoft Internet Explorer")){
		scrolled = document.documentElement.scrollTop;
		pageHeight = document.documentElement.clientHeight;
		pageWidth = document.documentElement.clientWidth;
		elementHeight = divID.offsetHeight;
		elementWidth = divID.offsetWidth;		
	}else{		
		scrolled = window.pageYOffset;
		pageHeight = window.innerHeight;
		pageWidth = window.innerWidth;
		elementHeight = divID.offsetHeight;
		elementWidth = divID.offsetWidth;
	}
	
	//alert(scrolled+"/"+pageHeight+"/"+elementHeight)
	//alert(eval(pos[1]+elementHeight)+"/"+ eval(pageHeight+scrolled))

	if((pos[0]+elementHeight) < (pageHeight+scrolled)){	// Position Y
		visibleY = true; 
	}else{
		visibleY = false;
	}
	if((pos[1]+elementWidth) < (pageWidth)){	// Position X
		visibleX = true; 
	}else{
		visibleX = false;
	}	
	
	return [visibleY,visibleX];
}

/* Suche nach dem naechst gelegenen InfoInhalt */
function lookForInfo(obj){
	var fromNode = obj.parentNode.parentNode;
	for(i=0;i<fromNode.childNodes.length;i++){
		if(fromNode.childNodes[i].nodeType == 1 && fromNode.childNodes[i].className == "infoDiv"){
			info = fromNode.childNodes[i];
		}
	}
	return info;
}

/* Suche nach dem naechst gelegenen InfoErrorInhalt */
// bitte nicht einfach wieder reverten - das hat schon seinen Sinn hier ;) --Anatol
function lookForInfoError(obj){
	var saveFromNode = null;
	var fromNode = null;
	//console.log("Objekt typ: "+ obj.nodeName);
	switch(obj.nodeName) {
		case "SELECT":
			var realNode = obj;
			// go up until we find the containing div
			while (realNode != null) {
				if (Element.hasClassName(realNode, "fieldvalue") || Element.hasClassName(realNode, "fieldradio")) {
					break;
				}
				realNode = realNode.parentNode;
			}
			// go sideways
			fromNode = saveFromNode = realNode;
			fromNode = fromNode.parentNode;	

			$A(Element.cleanWhitespace(fromNode).childNodes).each(function(child) {
				if (Element.hasClassName(child, "fielderror")){
					fromNode = child;
					//console.log("found fielderror: ", fromNode);
				}
			});
		break;

		case "TEXTAREA":
			var realNode = obj;
			// go up until we find the containing div
			while (realNode != null) {
				if (Element.hasClassName(realNode, "formblock")) {
					break;
				}
				realNode = realNode.parentNode;
				//console.log("realNode: "+realNode);

			}
			fromNode = realNode;
			// console.log("fromNode "+ fromNode.className);
			var tdtags = fromNode.getElementsByTagName('td');
			var divtags = tdtags[1].getElementsByTagName('div');
			fromNode = divtags[0];
			// console.log(test2[0]);
			
		break;
        
		case "INPUT":
			var realNode = obj;
            
			// go up until we find the containing div
			while (realNode != null) {
				if (Element.hasClassName(realNode, "fieldvalue") || Element.hasClassName(realNode, "fieldradio")) {
					break;
				}
				realNode = realNode.parentNode;
			}

			// go sideways
			fromNode = saveFromNode = realNode;
			fromNode = fromNode.parentNode;
		//console.log("found fielderror: ", fromNode);
            if(Element.getElementsByClassName(fromNode,"fielderror")){
                fe =  Element.getElementsByClassName(fromNode,"fielderror");
                fromNode = fe[0];
            }
          
			/*$A(Element.cleanWhitespace(fromNode).childNodes).each(function(child) {                
				if (Element.hasClassName(child, "fielderror")){
					fromNode = child;
					console.log("found fielderror: ", fromNode);
				}
			});*/
		break;
		
		default:
			//console.log("we came from a: ", obj);
			fromNode = saveFromNode = obj.parentNode.parentNode;
			//console.log("fromNode is ", fromNode); 
		
		break;
		

	}

	if(fromNode != null) {
		for(i=0;i<fromNode.childNodes.length;i++){ 	// Knoten durchsuchen
			//console.log("inspecting ", fromNode.childNodes[i]);
			if(fromNode.childNodes[i].nodeType == 1 && fromNode.childNodes[i].className == "errorinfo"){
				saveFromNode= fromNode.childNodes[i];
				//console.log("found savefromnode ", saveFromNode);
			} else if(fromNode.childNodes[i].nodeType == 1 && fromNode.childNodes[i].className == "errordesc"){
				info = fromNode.childNodes[i];
				//console.log("found info ", info);
			}
		}
		return [info, saveFromNode];
	}
}

/* Suche nach dem naechst gelegenen InfoErrorInhalt */
// bitte nicht einfach wieder reverten - das hat schon seinen Sinn hier ;) --Anatol
function lookForInfoError_old(obj){
	var saveFromNode = null;
	var fromNode = null;
	//console.log("Objekt typ: "+ obj.nodeName);
	
	switch(obj.nodeName) {
		case "SELECT":
			
		break;
		case "TEXTAREA":
			var realNode = obj;
			// go up until we find the containing div
			while (realNode != null) {
				if (Element.hasClassName(realNode, "formblock")) {
					break;
				}
				realNode = realNode.parentNode;
				//console.log("realNode: "+realNode);
			}
			fromNode = realNode;
			/* TODO
			 * find fielderror div in formblock div
			 */
			
			
		break;
		case "INPUT":
			var realNode = obj;
			// go up until we find the containing div
			while (realNode != null) {
				if (Element.hasClassName(realNode, "fieldvalue") || Element.hasClassName(realNode, "fieldradio")) {
					break;
				}
				realNode = realNode.parentNode;
			}
			
			// go sideways
			fromNode = saveFromNode = realNode;
			fromNode = fromNode.parentNode;
			
			$A(Element.cleanWhitespace(fromNode).childNodes).each(function(child) {
				if (Element.hasClassName(child, "fielderror")){
					fromNode = child;
					//console.log("found fielderror: ", fromNode);
				}
			});
		break;
		
		default:
			//console.log("we came from a: ", obj);
			fromNode = saveFromNode = obj.parentNode.parentNode;
			//console.log("fromNode is ", fromNode); 
		
		break;
		
	}
	if(fromNode != null) {
		for(i=0;i<fromNode.childNodes.length;i++){ 	// Knoten durchsuchen
			//console.log("inspecting ", fromNode.childNodes[i]);
			if(fromNode.childNodes[i].nodeType == 1 && fromNode.childNodes[i].className == "errorinfo"){
				saveFromNode= fromNode.childNodes[i];
				//console.log("found savefromnode ", saveFromNode);
			} else if(fromNode.childNodes[i].nodeType == 1 && fromNode.childNodes[i].className == "errordesc"){
				info = fromNode.childNodes[i];
				//console.log("found info ", info);
			}
		}
		return [info, saveFromNode];
	}
}

function showHideSelect(stat){
	if((navigator.appName == "Microsoft Internet Explorer") && (getInternetExplorerVersion() < 7)){
		for(i=0;i<document.getElementsByTagName("select").length;i++){
			document.getElementsByTagName('select')[i].style.visibility = stat;
		}
	}
}

function hideInfo(){
	if(window.openInfoOpen){
		//console.log("open info found")
		showHideSelect("visible");
		window.openInfoOpen.style.display = "none";
	}
}

/* DIVs beim Seitenaufbau zeigen, oder verstecken */
function changeDisplay(theClass,newvalue){
	if(document.styleSheets && navigator.appName !="Opera"){ 	/* Fuer aktuelle Browser, stylesheets direkt anpassen */
		var cssRules;
		if (document.all) {
			cssRules = 'rules';
		} else if (document.getElementById) {
			cssRules = 'cssRules';
		}
		for (var S = 0; S < document.styleSheets.length; S++){
			for (var R = 0; R < document.styleSheets[S][cssRules].length; R++) {
				if (document.styleSheets[S][cssRules][R].selectorText == theClass) {
					document.styleSheets[S][cssRules][R].style['display'] = newvalue;
				}
			}
		}
	}else{ 	/* Browser die  'document.styleSheets' nicht kennen, muessen durch den Baum gehen */
		theClass = theClass.substring(theClass.lastIndexOf(".")+1,theClass.length);
		for(i=0;i<document.getElementById("main").getElementsByTagName("div").length;i++){
			if(document.getElementById("main").getElementsByTagName("div")[i].className == theClass) 
				document.getElementById("main").getElementsByTagName("div")[i].style.display = newvalue;
		}
	}
}

function getInternetExplorerVersion(){
  var rv = -1; // Return value assumes failure
  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv;
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft;
		curtop = obj.offsetTop;
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curtop,curleft];
}

/* Info Fenster zeigen */
function showInfo(elmt){
	if (window.openInfoOpen) hideInfo();
	showHideSelect("hidden");
	divID = lookForInfo(elmt);
	pos = findPos(elmt);
	divID.style.position = "absolute";
	divID.style.zIndex = "5";
	divID.style.display = "inline";
	//console.log(":::: "+ divID.nodeName);
	window.openInfoOpen = divID;
	
	// Y & X im sichtbaren Bereich?
	viewable = viewableArea(divID,pos);
	if(viewable[0] == true){ // y
		divID.style.top = pos[0]+15 + "px";
	}else{		
		divID.style.top = pos[0]-divID.offsetHeight + "px";
	}
	divID.style.left = (pos[1]-153) + "px";
	if(navigator.userAgent.search(/Firefox.+/)!=-1)divID.style.left = (pos[1]-168) + "px";
	
}

/* Info Fenster zeigen */
function showFaq(elmt){
		if (window.openInfoOpen) hideInfo();
	showHideSelect("hidden");
	divID = lookForInfo(elmt);
	pos = findPos(elmt);
	
	divID.style.position = "absolute";
	divID.style.zIndex = "5";
	divID.style.display = "inline";
	
	window.openInfoOpen = divID;
	
	// Y & X im sichtbaren Bereich?
	viewable = viewableArea(divID,pos);
	if(viewable[0] == true){ // y
		divID.style.top = pos[0]-60 + "px";
	}else{		
		divID.style.top = pos[0]-divID.offsetHeight + "px";
	}
	divID.style.right = "6px";

}
/* Info Error Fenster zeigen */
function showInfoError(elmt){
    
	//console.log("Show Info Error for Element: "+elmt);
	hideInfoError();
	divID = lookForInfoError(elmt);
	//console.log("lookForInfoError return: "+lookForInfoError(elmt));
	if(divID != undefined) {
		
        pos = findPos(divID[1]);
        divID[0].style.position = "absolute";
		divID[0].style.zIndex = "1";
		divID[0].style.display = "block";
		divID[0].style.left = (pos[1]+25) + "px";
		window.openInfoErrorOpen = divID[0];
	}
}

function hideInfoError(){
	if (window.openInfoErrorOpen) window.openInfoErrorOpen.style.display = "none";
}

function copyFilePath(obj, targetfield){
	document.getElementById(targetfield).value = obj.value;
}

function winopen(windowLink,windowName,windowOptions) {
	var newwindow = window.open(windowLink, windowName, windowOptions );
	newwindow.focus();
	return newwindow;
}

function winAbbruch() {
	var newwindow = window.open('abbruch/index.html','yellopopup','width=580,height=551,left=' + ((screen.width-580)/2) + ',top=0' );
	newwindow.window.powerContractForm = document.forms[document.forms.length - 1].cloneNode(true); 
	newwindow.focus();
}

function submitAbbruch() {
	var submitField = document.createElement("input");
	submitField.type = "hidden";
	submitField.name = "method";
	submitField.value = "saveForLater";
	window.powerContractForm.appendChild(submitField);
	window.powerContractForm.submit();
}

function gOpenWindow(sTname) {
   window.open('flash/popup/index.html?tname=' + sTname,'yellopopup','width=920,height=695,left=' + ((screen.width-900)/2) + ',top=0');
}

function preloader(bilderliste){
	var myimages=new Array();
	for (i=0;i<bilderliste.arguments.length;i++){
		myimages[i]=new Image();
		myimages[i].src=bilderliste.arguments[i];
	}
}
// NOFLASH TIMER
function timer(which) {
		var curpath = $(which).src;
		var temppath = curpath.split("-");
		var newnumber;
		var newpath;
		var newpath2;
		var curnumber;
		var temppos;
		var rootpath = "";
						
	for(var i = 0;i < temppath.length; i++){
		if(temppath[i] == "normal.gif"){
			 curnumber = temppath[i-1];
			 temppos = i-1;
		}
	}
	//alert(temppos);
	
	curnumber = eval(curnumber);
	
	/*
	for(var j = 0;j< temppos; j++){
		rootpath += temppath[j];
	}
	*/
	rootpath = "images/count-down/noflash";
					
	switch(which){
		case "s2":
			if(curnumber == 9) {
			newnumber = 0;
			} else {
			newnumber = curnumber + 1;
		}
		break;
		case "s1":
			if(curnumber == 5) {
				newnumber = 0;
				} else {
			newnumber = curnumber + 1;
			}
		break;
		case "m2":
			if(curnumber == 9) {
				newnumber = 0;
			} else {
			newnumber = curnumber + 1;
			}
		break;
		case "m1":
			if(curnumber == 5) {
				newnumber = 0;
			} else {
			newnumber = curnumber + 1;
			}
		break;
	}
		
	//alert(rootpath);
	newpath = rootpath+"-"+newnumber+"-normal.gif";
	newpath2 = rootpath+"-"+newnumber+"-druck.gif";
	//document.write(newpath);
	var imgs = window.document.getElementsByName(which);
	var imgsd = window.document.getElementsByName(which+"d");
	
	for(var k=0;k<imgs.length;k++) {
		imgs[k].src = newpath;
		imgsd[k].src = newpath2;
	}
	
	
				
}
//NOFLASH TIMER	
var timeron = false;
		
function setTimerIntervals(){
	if(!timeron) {
	var imgs = window.document.getElementsByName('s2');
	var imgsd = window.document.getElementsByName("s2d");
		
	for(var i=0;i<imgs.length;i++) {
		imgs[i].src = "images/count_down/noflash-0-normal.gif";
		imgsd[i].src = "images/count_down/noflash-0-druck.gif";
	}
			

	setInterval('timer("s2")',1000);
	setInterval('timer("s1")',10000);
			
	setInterval('timer("m2")',60000);
	setInterval('timer("m1")',600000);
	timeron = true;
	}
}
// Zaehlerstand Felder ein und ausblenden
function toggleSingleDoubleCounter() {  
				
				if(($('z').style.display) == ''){
					var zvalue = $F('zaehlerstand');
					$('hasCounters').value = 2;
					$('z').hideandclear();
					$('zht').show();
					$('znt').show();
					$('doubleCounter').hide();
					$('singleCounter').show();
					$('zaehlerstandht').value = zvalue;
					$('zaehlerstandht').focus();
				} else {
					var zvalue = $F('zaehlerstandht');
					$('hasCounters').value = 1;
					$('z').show();
					$('zht').hideandclear();
					$('znt').hideandclear();
					$('doubleCounter').show();
					$('singleCounter').hide();
					$('zaehlerstand').value = zvalue;
					$('zaehlerstand').focus();
				}
				
}
// "und an" container ein ausblenden
function addadressdiv() {
									
	for(i=1;i<=10;i++) {
		var n = 'undan'+i+'more';
		var m = 'showTo' +i;
							
		if($(n).style.display != '') {
			$(n).show();
			//console.log("hidden field true: "+m)
			$(m).value = 'true';			
							
			if(i==10){
				$('undan1').hideandclear();
				
			} 					
			
			break;
		}
		
	}
}
// "und an" container ein ausblenden
function showdeliveryadressdiv() {

    for(i=1;i<=3;i++) {
        var n = 'undan'+i+'more';
        var m = 'showTo' +i;
                            
        if($(n).style.display != '') {
            $(n).show();
            console.log("hidden field true: "+m)
            $(m).value = 'true';			
                            
            if(i==3){
                $('undan1').hideandclear();				
            } 					
            
            break;
        }        
    }
    c = 0;
    for(i=1;i<=3;i++){
       if($('undan'+i+'more').style.display != 'none')
        c++;
    }
    if(c==3)
       $('undan1').hideandclear(); 
    
     $('firstaddress1').show();
     $('aloneaddress1').hide();
}

function setEnergytax(d, input) {
    var price = 0;
    if (input.checked) {
      price = document.getElementById("reducedprice").value;
      $('taxtype').value = "reduced";
    }
    else {
      price = document.getElementById("fullprice").value;
      $('taxtype').value = "normal";
    }
    if(BrowserDetect.browser == "Firefox" || BrowserDetect.browser == "Chrome"){
        $('totalprice').update(price);
        //$('energytax'+d).value = price + Utf8.decode(' öre/kWh');
        //console.log('energytax'+d+price + Utf8.decode(' öre/kWh'));
    }else{
        //$('energytax'+d).value = price + ' öre/kWh';
        $('totalprice').update(price);
    }
}

function setEnergytaxPrice(input) {
    var price = 0;
    if (input.checked) {
      price = document.getElementById("reducedprice").value;
        $('vat').update(document.getElementById("reducedvat").value);
        $('tax').update(document.getElementById("reducedtax").value);
        $('activetaxtype').update('reducerad');
        $('totalfluctprice').update(price);
      updateComparison("reduced");
    }
    else {
      price = document.getElementById("fullprice").value;
        $('vat').update(document.getElementById("normalvat").value);
        $('tax').update(document.getElementById("normaltax").value);
        $('activetaxtype').update('normal');
        $('totalfluctprice').update(price);
      updateComparison("normal");
    }

    $('totalprice').update(price); 
   // $('energytax2').update(price); 

    price = price.replace(',','.');
    price = price - 0;
}

function updateComparison(typeOfTax) {
    var price = 0;
    if(typeOfTax == "reduced"){
        price = document.getElementById("reducedprice").value;
    }else{
        price = document.getElementById("fullprice").value;
    }
    var fee = document.getElementById("activefee").value;

    $('totalprice').update(price);
    //$('energytax2').update(price); 

    price = price.replace(',','.');
    price = price - 0;

    $('yearlycost2000').update(ThousandSeparator(0, (price*20+(fee*12)).toFixed(0))); 
    $('price2000').update(ThousandSeparator(0, ((price*20+(fee*12))/20).toFixed(2)).replace('.',','));
    
    $('yearlycost5000').update(ThousandSeparator(0, (price*50+(fee*12)).toFixed(0)));
    $('price5000').update(ThousandSeparator(0, ((price*50+(fee*12))/50).toFixed(2)).replace('.',','));
    
    $('yearlycost20000').update(ThousandSeparator(0, (price*200+(fee*12)).toFixed(0)));
    $('price20000').update(ThousandSeparator(0, ((price*200+(fee*12))/200).toFixed(2)).replace('.',','));
}

//function jsRound(digits) {
//  decimal = digits / 10;
//  decimal = Math.round(decimal);
//  decimal = decimal * 10;
//  return decimal;
//}

function setEnergytaxPrice2(checkbox) {
    if (checkbox.checked == true) {
        document.addnewcontract.lowenergytax.value = 'YES';
        $('energytax1').update($('reducedenergytax').value); 
    }
    else {
        document.addnewcontract.lowenergytax.value = 'NO';
        $('energytax1').update($('normalenergytax').value); 
    }
}

// Rollover workaround fuer image replacement submit button
function rollover(el) {
	var classname = "replacement-"+el+"-hover";																
 	document.getElementById(el).className = classname;
}

function rollout(el) {
  	var classname = "replacement-"+el;
 	document.getElementById(el).className = classname;
}

//kuendigungsformular
function cancellationCheckBoxesPK()
{									
	if($('opt1').checked == true) {
		$('terminstrom').show();
	} else {
		$('terminstrom').hide();
	}
	if($('opt2').checked == true) {
		$('termintel').show();
	}else {
		$('termintel').hide();
	}
	if($('opt1').checked == true || $('opt2').checked == true){
		$('teil1').show();
		$('teil2').show();
		$('teil3').show();	
		$('teil5').show();
		$('formfooter').show();
	} else {
		$('teil1').hide();
		$('teil2').hide();
		$('teil3').hide();
		$('teil5').hide();
		$('formfooter').hide();
	}
	if($('opt1').checked == true && $('opt2').checked == true){
		$('descvertragsnr').show();
	} else {
		$('descvertragsnr').hide();
	}
}

function cancellationCheckBoxesGK(){
	if($('opt1').checked == true){
		$('descvertragsnr').innerHTML = "";
		$('terminstrom').show();
	} else {
		$('terminstrom').hide();
	}
	
	if($('opt2').checked == true){
		$('descvertragsnr').innerHTML = "";
		$('termintel').show();
	} else {
		$('termintel').hide();
	}
	if($('opt3').checked == true){
		$('descvertragsnr').innerHTML = "";
		$('terminkarte').show();
	} else {
		$('terminkarte').hide();
	}			
	
	if($('opt1').checked == true && $('opt2').checked == true && $('opt3').checked == false){
		$('descvertragsnr').innerHTML = "Bitte geben Sie entweder Ihre Yello Strom- oder Yello Tel Vertragsnummer an.";
		
	}
	if($('opt1').checked == true && $('opt3').checked == true && $('opt2').checked == false){
		$('descvertragsnr').innerHTML = "Bitte geben Sie entweder Ihre Yello Strom- oder Yello Karte Gewerbe Vertragsnummer an.";
		
	}
	if($('opt2').checked == true && $('opt3').checked == true && $('opt1').checked == false){
		$('descvertragsnr').innerHTML = "Bitte geben Sie entweder Ihre Yello Tel- oder Yello Karte Gewerbe Vertragsnummer an.";
		
	}
	if($('opt1').checked == true && $('opt2').checked == true && $('opt3').checked == true){
		$('descvertragsnr').innerHTML = "Bitte geben Sie entweder Ihre Yello Strom-, Yello Tel- oder Yello Karte Gewerbe Vertragsnummer an.";
		
	}				
	
	if($('opt1').checked == true || $('opt2').checked == true || $('opt3').checked == true){
		$('teil1').show();
		$('teil2').show();
		$('teil3').show();		
		$('teil5').show();
		$('formfooter').show();
		
		$('formfooter').show();
	} else {
		$('andereadresse').hide();
		$('anderebankverbindung').hide();
		$('teil1').hide();
		$('teil2').hide();
		$('teil3').hide();
		$('teil5').hide();
		$('formfooter').hide();
		
		$('formfooter').hide();
	}
}

function changeDataCheckBoxesGK(){
	if($('opt1').checked == true) {
		$('teil2').show();
	} else {
		destroyElement("epoch_popup_calendar", "dp_cal");
		$('teil2').hide();
	}
	if($('opt2').checked == true) {
		
		$('teil3').show();
		destroyElement("epoch_popup_calendar", "dp_cal");
		dp_cal = new Epoch('epoch_popup','popup',document.getElementById('calender_popup'),'../../../images/',2);		
	}else {
		$('teil3').hide();
	}
	if($('opt3').checked == true) {
		$('teil4').show();
	}else{
		$('teil4').hide();
	}
	if($('opt1').checked == true || $('opt2').checked == true || $('opt3').checked == true){
		$('teil1').show();
		$('teil5').show();
		$('cta').hide();
		$('formfooter').show();
	} else {
		$('teil1').hide();
		$('teil5').hide();
		$('cta').show();
		$('formfooter').hide();
	}
}

function destroyElement(ID, KlassenName){
	if(document.getElementById(ID)){
			var Knoten = document.getElementById(ID);
			document.getElementById(ID).parentNode.removeChild(Knoten);
			delete KlassenName;
		}
}

function changeDataCheckBoxesPK(){	
	
	if($('opt1').checked == true) {
		$('teil2').show();
	} else {
		destroyElement("epoch_popup_calendar", "dp_cal");
		$('teil2').hide();
	}
	if($('opt2').checked == true) {
		$('teil3').show();		
		destroyElement("epoch_popup_calendar", "dp_cal");
		dp_cal = new Epoch('epoch_popup','popup',document.getElementById('calender_popup'),'../../../images/',2);							
	}else {
		$('teil3').hide();
		
	}
	if($('opt3').checked == true) {		
		$('teil4').show();		
	}else{
		$('teil4').hide();		
	}
	
	if($('opt1').checked == true || $('opt2').checked == true || $('opt3').checked == true){
		$('teil1').show();
		$('teil5').show();

		$('cta').hide();
		$('formfooter').show();
	} else {
		$('teil1').hide();
		$('teil5').hide();
		$('cta').show();
		$('formfooter').hide();
	}
	
}

// AJAX-bank code to bank

function bankCode_onKeyUp(event) {
	getBankName(event.target);
}
function bankCode_onBlur(element) {
	//console.log("on blur:",element);
	getBankName(element);
}

function getBankName(element) {
	var bankCode = element.value.replace(/[^0-9]/g,"");
	if(bankCode.length == 8) {
		function xhrCallback(request, response) {
			$("bankName").value = request.responseText;
		}
		
		new Ajax.Request(contextPath + '/getBank.htm', 
		{
			method: 'post',
			postBody: "bankCode="+bankCode, 
			onComplete: xhrCallback
		});
	} else {
		$("bankName").value = "";
	}
}

// if the user types a / or a - in the phoneAreaCode-field this function jumps to the phone-field
function focusPhoneOnKeyUp(e){
	var KeyID = (window.event) ? event.keyCode : e.keyCode;
	var phoneAreaCode = $('phoneAreaCode').value;
	
	switch(KeyID) {
		case 191:
			$('phone').focus();
			var p = phoneAreaCode.split("/");
			$('phoneAreaCode').value = p[0];
		break;
		case 0:
			$('phone').focus();
			var p = phoneAreaCode.split("-");
			$('phoneAreaCode').value = p[0];
		break;
	}
}

 function ThousandSeparator(decimalDigits,Value)
    {
   
       // Separator Length. Here this is thousand separator
       var separatorLength = 3;

       var OriginalValue=Value;

       var TempValue = "" + OriginalValue;

       var NewValue = "";

       // Store digits after decimal
       var pStr;

       // store digits before decimal
       var dStr;

       // Add decimal point if it is not there
       if (TempValue.indexOf(".")==-1){TempValue+="."}
       
       dStr=TempValue.substr(0,TempValue.indexOf("."));

       pStr=TempValue.substr(TempValue.indexOf("."))  

       // Add "0" for remaining digits after decimal point
       while (pStr.length-1< decimalDigits){pStr+="0"}

       if(pStr =='.') pStr ='';
   
        if(dStr.length > separatorLength)
        {
            // Logic of separation   
            while( dStr.length > separatorLength)
            {
                NewValue = " " + dStr.substr(dStr.length - separatorLength) + NewValue;
                dStr = dStr.substr(0,dStr.length - separatorLength);
            }

            NewValue = dStr + NewValue;
            
        }
        else
        {
            NewValue = dStr;
        }


        //  Add decimal part
        NewValue = NewValue + pStr;

        // Show Final value
        return NewValue;
      
       

    }
function onFocus_date(element) {
	//showInfoError(element);
	if(element.value == 'ÅÅÅÅ-MM-DD') element.value = '';
}

function onBlur_date(element) {
	//validate(element);
	if(element.value == '') element.value = 'ÅÅÅÅ-MM-DD';
}
                    var BrowserDetect = {
        	init: function () {
        		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
        		this.version = this.searchVersion(navigator.userAgent)
        			|| this.searchVersion(navigator.appVersion)
        			|| "an unknown version";
        		this.OS = this.searchString(this.dataOS) || "an unknown OS";
        	},
        	searchString: function (data) {
        		for (var i=0;i<data.length;i++)	{
        			var dataString = data[i].string;
        			var dataProp = data[i].prop;
        			this.versionSearchString = data[i].versionSearch || data[i].identity;
        			if (dataString) {
        				if (dataString.indexOf(data[i].subString) != -1)
        					return data[i].identity;
        			}
        			else if (dataProp)
        				return data[i].identity;
        		}
        	},
        	searchVersion: function (dataString) {
        		var index = dataString.indexOf(this.versionSearchString);
        		if (index == -1) return;
        		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
        	},
        	dataBrowser: [
        		{ 	string: navigator.userAgent,
        			subString: "OmniWeb",
        			versionSearch: "OmniWeb/",
        			identity: "OmniWeb"
        		},
        		{
        			string: navigator.vendor,
        			subString: "Apple",
        			identity: "Safari"
        		},
        		{
        			prop: window.opera,
        			identity: "Opera"
        		},
        		{
        			string: navigator.vendor,
        			subString: "iCab",
        			identity: "iCab"
        		},
        		{
        			string: navigator.vendor,
        			subString: "KDE",
        			identity: "Konqueror"
        		},
        		{
        			string: navigator.userAgent,
        			subString: "Firefox",
        			identity: "Firefox"
        		},
        		{
        			string: navigator.vendor,
        			subString: "Camino",
        			identity: "Camino"
        		},
        		{		// for newer Netscapes (6+)
        			string: navigator.userAgent,
        			subString: "Netscape",
        			identity: "Netscape"
        		},
                {		
        			string: navigator.userAgent,
        			subString: "Chrome",
        			identity: "Chrome"
        		},
        		{
        			string: navigator.userAgent,
        			subString: "MSIE",
        			identity: "Explorer",
        			versionSearch: "MSIE"
        		},
        		{
        			string: navigator.userAgent,
        			subString: "Gecko",
        			identity: "Mozilla",
        			versionSearch: "rv"
        		},
        		{ 		// for older Netscapes (4-)
        			string: navigator.userAgent,
        			subString: "Mozilla",
        			identity: "Netscape",
        			versionSearch: "Mozilla"
        		}
        	],
        	dataOS : [
        		{
        			string: navigator.platform,
        			subString: "Win",
        			identity: "Windows"
        		},
        		{
        			string: navigator.platform,
        			subString: "Mac",
        			identity: "Mac"
        		},
        		{
        			string: navigator.platform,
        			subString: "Linux",
        			identity: "Linux"
        		}
        	]

};
BrowserDetect.init();



var Utf8 = {

    // public method for url encoding
    encode : function (string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";

        for (var n = 0; n < string.length; n++) {

            var c = string.charCodeAt(n);

            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }

        }

        return utftext;
    },

    // public method for url decoding
    decode : function (utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;

        while ( i < utftext.length ) {

            c = utftext.charCodeAt(i);

            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {
                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }

        }

        return string;
    }

}
