var bt_obj = null;
var xVerbrauch_zuhoch = "Ihr Jahresstromverbrauch liegt über der maximalen Tarifgrenze von 10.000 kWh. Bitte rufen Sie uns an, Telefon 06031 82-1315.";
var xVerbrauch_schwelle = 9999;
function resize()
{
	if(top)
	{
		if(top.init) top.init();
		if(top.rsize) top.rsize();
	}
}
function init_tools()
{
	resize();
	if(document.getElementById('smart_order'))
	{
		showStep();
	}
}
function disableBt(obj,val)
{
	if( obj )
	{
		bt_obj = obj;
		obj.value = val;
		obj.disabled = true;
		obj.className='button_disabled';
	}
}
function activateBt(val)
{
	if( bt_obj )
	{
		bt_obj.value = val;
		bt_obj.disabled = false;
		bt_obj.className='button';
	}
}
var smartstep = 0;
var stepamount = 7;
function scrollStep(num)
{
	
	oldstep = smartstep;
	/* Check oblifgatory fields := fields with validate="1" - Attribute error="" is optional */
	
	error_msg = '';
	alert_msg = '';
	ajax_msg = '';
	if(oldstep == 3 && num > 0)
	{
		if(document._AnmeldungSmart.Anrede.selectedIndex == 0) error_msg += "\n - Anrede";
		var validateString = document._AnmeldungSmart.eMail.value;
		if (!validateString.match(/^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i))
		{
    			error_msg += "\n - E-Mail-Adresse im richtigen Format (name@domain.de)";
		}
	}
	if(oldstep == 1 && num > 0)
	{
//		if(document._AnmeldungSmart.Lieferadresse_Anrede.selectedIndex == 0) error_msg += "\n - Anrede";
	}
	if(document.getElementById('st' + oldstep) && num > 0)
	{
		input_arr = document.getElementById('st' + oldstep).getElementsByTagName('input');
		xNum = input_arr.length;
		
		for(i=0;i<xNum;i++)
		{
			if(input_arr[i].getAttribute("validate") == 1)
			{
				if(input_arr[i].value == '')
				{
					error_msg += "\n - "
					if(input_arr[i].getAttribute("error")) error_msg += input_arr[i].getAttribute("error");
					else error_msg += input_arr[i].name;
				}
			}	
		}
		
	}
	/* Spezialvalidierungen */
	
	/* Teerminvalidierung ausschalten
	if(oldstep == 5 && num > 0)
	{
		if(document._AnmeldungSmart.Termin[0].checked == false && document._AnmeldungSmart.Termin[1].checked == false) error_msg += "\n - Gewünschter Lieferbeginn";
		if(document._AnmeldungSmart.Termin[1].checked == true)
		{
			if(Number(document._AnmeldungSmart.Termin_Monat.value) < 1 || Number(document._AnmeldungSmart.Termin_Monat.value) > 12 || isNaN(Number(document._AnmeldungSmart.Termin_Monat.value))) error_msg += "\n - Monat des gewünschten Lieferbeginns";
			if(Number(document._AnmeldungSmart.Termin_Jahr.value) < 2007 ||  Number(document._AnmeldungSmart.Termin_Jahr.value) > 2100 || isNaN(Number(document._AnmeldungSmart.Termin_Jahr.value))) error_msg += "\n - Jahr des gewünschten Lieferbeginns";
		}
	}
	*/
	if(oldstep == 2 && num > 0)
	{
		if(document._AnmeldungSmart.anbieter_option[0].checked == false && document._AnmeldungSmart.anbieter_option[1].checked == false) error_msg += "\n - Bitte wählen Sie, ob Sie bereits ovag-Kunde oder Kunde eines anderen Lieferanten sind";
		if(document._AnmeldungSmart.anbieter_option[0].checked == true)
		{
			if(document._AnmeldungSmart.Kundennr.value == '') error_msg += "\n - Vertragskontonummer";
		}
		if(document._AnmeldungSmart.anbieter_option[1].checked == true)
		{
			if(document._AnmeldungSmart.Anbieter_Kundennr.value == '') error_msg += "\n - Kundennummer des bisherigen Anbieters";
			if(document._AnmeldungSmart.Anbieter_Name.value == '') error_msg += "\n - Name des bisherigen Anbieters";
			if(document._AnmeldungSmart.Anbieter_Strasse.value == '') error_msg += "\n - Straße des bisherigen Anbieters";
			if(document._AnmeldungSmart.Anbieter_Hausnr.value == '') error_msg += "\n - Hausnummer des bisherigen Anbieters";
			if(document._AnmeldungSmart.Anbieter_PLZ.value == '') error_msg += "\n - Postleitzahl des bisherigen Anbieters";
			if(document._AnmeldungSmart.Anbieter_Ort.value == '') error_msg += "\n - Ort des bisherigen Anbieters";
			if(document._AnmeldungSmart.check_Kuendigung.checked == false) error_msg += "\n - Bitte akzeptieren Sie die Kündigungsvollmacht";
		}
	}
	if(oldstep == 2 && num > 0)
	{
		xVerbrauch = convert2Number(document._AnmeldungSmart.Vorjahresstromverbrauch.value);
		if(xVerbrauch > xVerbrauch_schwelle || isNaN(xVerbrauch)) alert_msg += xVerbrauch_zuhoch;
	}
	
	/* AJAX Check */
	if(alert_msg != '') alert(alert_msg);
	if(error_msg != '' && alert_msg == '') alert('Bitte füllen Sie die folgenden Felder aus:' + error_msg);
	//if(ajax_msg != '') alert(ajax_msg);
	if(oldstep == 1 && num > 0 && error_msg == '')
	{
		strasse = document.getElementById('loc_strasse').value;
		hausnummer = document.getElementById('loc_hnr').value;
		plz = document.getElementById('loc_plz').value;
		ort = document.getElementById('loc_ort').value;
		ajax_msg = checkGebietAsync(strasse,hausnummer,plz,ort,function onGebietOkCallbackFunc(){openStep(2,1);});
	}
	else if(error_msg == '')
	{
		smartstep += num;
		displayStep(smartstep,oldstep);
	}
	resize();
	top.scrollTo(0,0);
}
function convert2Number(xInput)
{
	xInput = xInput.replace(",",".");
	xInput = xInput  - 1;
	return Number(xInput);
}
function checkVerbrauch(xField)
{
		xVerbrauch = convert2Number(xField.value);
		if(xVerbrauch > xVerbrauch_schwelle || isNaN(xVerbrauch)) alert(xVerbrauch_zuhoch);
}
function displayStep(smartstep,oldstep)
{
	/* Control indicator on the top of page */
	if(smartstep > 0)
	{
//		alert( "smartstep: " + smartstep + "  ,oldstep: " + oldstep);
		if(document.getElementById('stepindicator'))
		{
			document.getElementById('stepindicator').style.display = '';
			if(oldstep > 0) document.getElementById('stepindicator').childNodes[(oldstep-1)*2].className = 'stepno';
			document.getElementById('stepindicator').childNodes[(smartstep-1)*2].className = 'stepact';
		}
		
		document.getElementById('nextButton').value = 'Weiter >';
		document.getElementById('prevButton').style.display = '';	
	}
	else  
	{	
		document.getElementById('stepindicator').style.display = 'none';
		document.getElementById('nextButton').value = 'Online-Anmeldung zum Tarif ovag Smart starten >';
		document.getElementById('prevButton').style.display = 'none';		
	}
	
	/* Hide all steps */
	for(i=0;i<(stepamount+1);i++)
	{
		if(document.getElementById('st' + i)) document.getElementById('st' + i).style.display = 'none';
		document.getElementById('sp_infobox').style.display = 'none';
	}
	
	/* Functions for normal steps */
	if(smartstep < (stepamount + 1))
	{	
		document.getElementById('st' + smartstep).style.display = 'block';
	}
	
	/* Show infobox > 0 */
	if(smartstep > 0 && smartstep != 4 && smartstep != 5)
	{
		document.getElementById('sp_infobox').style.display = 'block';
	}
	
	/* Special Functions after Step1 */
	if(smartstep == 2)
	{
		copyLocation();
		showOption();
	}
	
	
	/* Special Functions for last page */
	if(smartstep == stepamount)
	{
	//	document.getElementById('scrollbuttons').style.display = 'none';
	//	document.getElementById('sendbuttons').style.display = 'block';
	}
	
//	alert(smartstep);
	if(smartstep > stepamount)
	{
		document.forms['_AnmeldungSmart'].submit();
	}
	
	
	/* Misc functions */
	top.scrollTo(0,0);
	resizeWrapper();
}  // displayStep
function showSummary()
{
	document.getElementById('st0').style.display = 'none';
	document.getElementById('st1').style.display = 'block';
	document.getElementById('st2').style.display = 'block';
	document.getElementById('st3').style.display = 'block'
;
//	document.getElementById('st4').style.display = 'none';
	document.getElementById('st4').style.display = 'block';
	document.getElementById('st5').style.display = 'block';
//	document.getElementById('st6').style.display = 'none';
	document.getElementById('st6').style.display = 'block';
//	document.getElementById('option1').style.display = 'block';
//	document.getElementById('option2').style.display = 'block';
	document.getElementById('nextButton').style.display = 'none';
	resize();
	top.scrollTo(0,0);
}
function resizeWrapper()
{
	if(top.rsize) top.rsize();
}
function toggleGeb(xStat)
{
	if(xStat == 1)
	{
		document.getElementById('gebact').style.display = '';
		document.getElementById('gebdatum').setAttribute("validate",1);
		document.getElementById('gebnorm').style.display = 'none';
		document.getElementById('gebdatinp').style.display = '';
	}
	else
	{
		document.getElementById('gebact').style.display = 'none';
		document.getElementById('gebdatum').setAttribute("validate",0);
		document.getElementById('gebnorm').style.display = '';
		document.getElementById('gebdatinp').style.display = 'none';
	}
	toggleCompany(xStat)
}
function toggleCompany(xStat)
{
	if(xStat == 1)
	{
		document.getElementById('vornamenorm').style.display = '';
		document.getElementById('vorname').setAttribute("validate",1);
	}
	else
	{
		document.getElementById('vornamenorm').style.display = 'none';
		document.getElementById('vorname').setAttribute("validate",0);
	}
}
function copyLocation()
{
	document._AnmeldungSmart.Anrede.selectedIndex = document._AnmeldungSmart.Lieferadresse_Anrede.selectedIndex;
	if(document._AnmeldungSmart.Lieferadresse_Anrede.selectedIndex == 3) 
	{
		toggleGeb(0);
	}
	else toggleGeb(1); 
	if( document.getElementById('titel').selectedIndex == 0 )	document.getElementById('titel').selectedIndex = document.getElementById('loc_titel').selectedIndex ;
	if( document.getElementById('vorname').value == '' ) document.getElementById('vorname').value = document.getElementById('loc_vorname').value;
	if( document.getElementById('name').value == '') document.getElementById('name').value = document.getElementById('loc_name').value;
	if( document.getElementById('strasse').value == '' ) document.getElementById('strasse').value = document.getElementById('loc_strasse').value;
	if( document.getElementById('hnr').value == '' ) document.getElementById('hnr').value = document.getElementById('loc_hnr').value;
	if( document.getElementById('plz').value == '' ) document.getElementById('plz').value = document.getElementById('loc_plz').value;
	if( document.getElementById('ort').value == '' ) document.getElementById('ort').value = document.getElementById('loc_ort').value;
}
function showStep()
{
	loc = document.location.href;
	loc_arr = loc.split("step");
	if(loc_arr[1])
	{
		xNum = loc_arr[1].split("=");
		smartstep = (xNum[1]*1);
		displayStep((xNum[1]*1),0);
	}
}
function showOption()
{
	document.getElementById('option' + 1).style.display = 'none';
	document.getElementById('option' + 2).style.display = 'none';
	if(document._AnmeldungSmart.anbieter_option[0].checked == true) document.getElementById('option' + 1).style.display = 'block';
	if(document._AnmeldungSmart.anbieter_option[1].checked == true) document.getElementById('option' + 2).style.display = 'block';
	resize();
}
function validateSmart()
{
		
		if(smartstep != 6)
		{
			scrollStep(1);
		}
		else
		{
			error_msg = '';
			if(document._AnmeldungSmart.check_Besondere_Bedingungen.checked == false) error_msg += "\n - Bitte akzeptieren Sie die besonderen Bedingungen";
			if(document._AnmeldungSmart.check_Wiederrufsbelehrung.checked == false) error_msg += "\n - Bitte akzeptieren Sie die Wiederrufsbelehrung";
			if(error_msg == '') 
			{
				document._AnmeldungSmart.onSubmit = '';
				document._AnmeldungSmart.submit();
			}
			else 
			{
				alert(error_msg);
			}
		}
}
function checkGebietAsync(strasse,hausnummer,plz,ort,onGebietOkCallbackFunc)
{
		/* Return leer wenn okay , Return Fehlermeldung wenn nicht okay); */
		//Felder deaktivieren
		switchInputFields(false);
				
		//reformat strasse to support different input (str., str, straße)
		var strasseReformattet = strasse.replace(/str\./i, 'Strasse');
		strasseReformattet = strasseReformattet.replace(/straße/i, 'Strasse');
		strasseReformattet = strasseReformattet.replace(/str$/i, 'Strasse');
		strasseReformattet = '';  //disable str check
		//Agent-Request via Ajax	
		var ajaxUrl="/iqshare/versorgungsgebiet.nsf/checkreg?openview&restricttocategory="+plz+ort+strasseReformattet;
		new Ajax.Request
		(ajaxUrl,
		  {
		    method:'get',
		    onSuccess: function(transport)
			{
		      var response = transport.responseText || "no response text";
		      if (response==1)
			  {
				
				switchInputFields(true);
				eval("onGebietOkCallbackFunc()");				
			  }
			  else
			  {
				//alert("Bitte prüfen Sie Ihre Angaben. Sind Ihre Angaben korrekt?\nFalls Sie außerhalb des Versorgungsgebietes der ovag Netz AG wohnen ist eine Belieferung aktuell noch nicht möglich.");			
				alert("Sind Ihre Angaben korrekt? Verwenden Sie bitte exakt die Adress-Schreibweise aus Ihrer Stromrechnung.	\n\nBitte beachten Sie: Der ovagKlick ist ausschließlich für Kunden im Netzgebiet der ovag Netz AG gültig.\n\nWohnen Sie in einem anderen Netzgebiet? Bitte zögern Sie nicht, uns anzusprechen. Wir erstellen Ihnen gerne ein individuelles Angebot: 0800 0123535 (kostenfrei) oder per E-Mail an: info@ovag.de. Vielen Dank!");
				switchInputFields(true);
			  }
		    },
		    onFailure: function(){ alert('Es ist ein technischer Fehler aufgetreten. Bitte wenden Sie sich an den Kundenservice.') },
		    onException: function(req,exception) { alert("Es ist ein technischer Fehler aufgrund von Zugriffsbeschränkungen aufgetreten.\n\n" + exception + "\n\nBitte wenden Sie sich an den Kundenservice."); return true; }
		  }
		);
		
}
//enable/disable step1 input fileds / active = true/false
function XswitchInputFields(switchToActive)
{
}
function switchInputFields(switchToActive)
{
		if (switchToActive)
		{			
			//document.getElementById("nextBtn").disabled=true;
//			document.getElementById("prevtBtn").disabled=true;
		}
		else
		{
			//document.getElementById('nextBtn').disabled=false;
//			document.getElementById('prevtBtn').disabled=false;
		}
	
		//Felder deaktivieren
		formInputElements = document.getElementById('ajaxaddress').getElementsByTagName('input');
		formSelectElements = document.getElementById('ajaxaddress').getElementsByTagName('select');		
		//deaktiviere alle Inputs
		for(i=0;i<formInputElements.length;i++)
		{
			if (formInputElements[i].type=="text")
			{
				if (switchToActive)
				{
					formInputElements[i].readOnly=false;
					formInputElements[i].style.backgroundColor = "";;			
				}
				else
				{
					formInputElements[i].readOnly=true;
					formInputElements[i].style.backgroundColor = "#d3d3d3";;			
				}
			}
			else if (formInputElements[i].type=="radio")
			{
				if (switchToActive)
				{
					formInputElements[i].disabled=false;
				}
				else
				{
					formInputElements[i].disabled=true;
				}			
			}			
		}
		
		for(i=0;i<formSelectElements.length;i++)
		{
				if (switchToActive)
				{
					formSelectElements[i].disabled=false;
					formSelectElements[i].style.backgroundColor = "";;			
				}
				else
				{
					formSelectElements[i].disabled=true;
					formSelectElements[i].style.backgroundColor = "#d3d3d3";;			
				}
		}
}
function openStep(num1,num2)
{
smartstep = num1;
displayStep(num1,num2);
}

