//####################################################################################################################################
//	Page
//####################################################################################################################################


function Page()
{
	/*==========================================
		Methodes
	==========================================*/
	
	/*------------------------------------------
		fadeFx
	------------------------------------------*/
	
	this.fadeFx = function()
	{
		
		fadeOnStart();
		
		var args = this.fadeFx.arguments;
		var direction	= args[0];
		var container1	= args[1];
		var container2	= (args[2])?args[2]:null;
		var dur			= 500;
		var distance	= 800;
		
		switch(direction)
		{
			case "next":	var positions = new Array(0,(distance*-1),distance,0); break;
			case "prev":	var positions = new Array(0,distance,(distance*-1),0); break;
		}
		var ct1 = new Fx.Style(container1,'margin-left',{
			duration:dur,
			onComplete:function()
			{
				fadeOnChange();
				
				$(container1).style.display="none";
				if(container2) {
					var ct2 = new Fx.Style(container2,'margin-left',{
						duration:dur,
						onComplete:function() {
							fadeOnComplete();
					}});
					$(container2).style.marginLeft="800px";
					$(container2).style.display="block";
					ct2.start(positions[2],positions[3]);
				}
		}});
		ct1.start(positions[0],positions[1]);
		this.setStepButtons();
	}
	
	/*------------------------------------------
		fadeOnStart
	------------------------------------------*/
	
	function fadeOnStart()
	{
		$('stepButtons_container').style.display = "none";
	}
	
	/*------------------------------------------
		fadeOnChange
	------------------------------------------*/
	
	function fadeOnChange()
	{
		if(_self.siteID == 5) {
			message.preloader(messages['title']['Bitte_warten'],"Daten werden zusammengestellt.");
			clearAndHideOverview();
		}
	}
	
	/*------------------------------------------
		fadeOnComplete
	------------------------------------------*/
	
	function fadeOnComplete()
	{
		// Erstellt Übersicht auf Seite 5
		if(_self.siteID == 5) createOverview();
		$('stepButtons_container').style.display = "block";
		setSmile();
	}
	
	/*------------------------------------------
		goToPage
	------------------------------------------*/
	
	this.goToPage = function()
	{
		
		var args		= this.goToPage.arguments;
		var oldSiteID	= this.siteID;
		var newSiteID	= args[0];
		var oldActiveID	= this.model.active;
		var newActiveID	= (args[1] == "0" || args[1])?args[1]:this.model.active;
		var goTo		= null;
		
		// Verhindert klicken nach vorne
		// oder klicken auf aktive Seite
		if(newSiteID > oldSiteID || newSiteID == oldSiteID) return;
		
		switch(newSiteID)
		{
			case "+":
				
				if (formular.formCheck() == false) return; // Falls Fehler bei Formular Check...
				this.siteID++;
				this.model.active = newActiveID;
				goTo = "next";
			break;
			case "-":
				this.siteID--;
				this.model.active = newActiveID;
				goTo = "prev";
			break;
			default:
				this.siteID = newSiteID;
				this.model.active = newActiveID;
				goTo = (newSiteID > oldSiteID)?"next":"prev";
			break;
		}
		//this.siteID = checkDisabledStepNodes(this.siteID,goTo); // --> Prüft ob der nächste Schritt deaktiviert ist
		oldActiveID = (oldActiveID == 0) ? this.model.type[oldActiveID] : 'angaben';
		newActiveID = (newActiveID == 0) ? this.model.type[newActiveID] : 'angaben';
		this.fadeFx(goTo,'form_'+oldSiteID+'_'+oldActiveID,'form_'+this.siteID+'_'+newActiveID);
	}
	
	/*------------------------------------------
		checkDisabledStepNodes
	------------------------------------------*/
	
	// Prüft ob die folgenden Seiten daktiviert sind
	// und überspringt diese
	
	function checkDisabledStepNodes(checkID,goTo)
	{
		while ($("stepButton_"+checkID).className == "stepNodeDisabled")
		{
			if(goTo=="next") { checkID++; }
			else { checkID--; }
		}
		return checkID;
	}
	
	/*------------------------------------------
		setStepButtons
	------------------------------------------*/
	
	this.setStepButtons = function()
	{
		for(i = this.NumberOfPages; i > 0; i--) {
			var bt = $('stepButton_'+i);
			if(bt.className != "stepNodeDisabled") // Nur weiter wenn Buttons nicht deaktiviert
			{
				if(i > this.siteID)		bt.src = bt.src.substr(0,(bt.src.lastIndexOf("/")+1)) + "stepButton_" + i + "_receivable.png"; // Normal
				else if(i == this.siteID)	bt.src = bt.src.substr(0,(bt.src.lastIndexOf("/")+1)) + "stepButton_" + i + "_active.png"; // Aktive Seite
				else if(i < this.siteID)	bt.src = bt.src.substr(0,(bt.src.lastIndexOf("/")+1)) + "stepButton_" + i + "_completed.png"; // Abgeschlossen
			}
		}
		displayAddon('showWeiterButtons');
	}
	
	/*------------------------------------------
		getParameters
	------------------------------------------*/
	
	this.getParameters = function()
	{
		var getParams = new Array();
		var query = window.location.search.substring(1);
		if (query.length)
		{
			var vars = query.split("&");
			for (var i = 0; i < vars.length; i++)
			{
				var vSplit = vars[i].split("=");
				getParams[vSplit[0]] = vSplit[1];
			}
		}
		return getParams;
	}
	
	/*------------------------------------------
		setBoxOverview
	------------------------------------------*/
	
	// Füllt die Daten in die Übersicht oben rechts ab
	
	this.setBoxOverview = function()
	{
		if(this.siteID == 1)
		{
			$("boxOverview").style.display = "none";
			$("boxTop").style.backgroundImage = "url(/pix/mood/mood1.jpg)";
		}
		else
		{
			$('td_Laufzeit_in_Monaten').innerHTML = $$$('laufzeit').getValue();
			$('td_Barkaufpreis_inkl_Mwst').innerHTML = $$$('barkaufpreis').value;
			$('titleOverviewKonditionen').innerHTML = (page.model.active == 1) ? texte['Ihre_Leasingkonditionen'] : texte['Ihre_Kreditkonditionen'];
			$('td_Km-Leistung_pro_Jahr').innerHTML = $$$('fahrleistung').value;
			$('td_Ihre_Leasingrate').innerHTML = $$$(this.model.type[this.model.active]+'_monatsraten').value;
			
			switch(this.model.active)
			{
				case 1: // Leasing
					$('td_Kalkulatorischer_Restwert').innerHTML = $$$('leasing_restwert').value;
					$('td_1_Leasingrate').innerHTML = $$$('leasing_1_leasingrate').value;
					$('td_Kalkulatorischer_Restwert').parentNode.style.display = (window.ie) ? "block" : "table-row";
					$('td_1_Leasingrate').parentNode.style.display = (window.ie) ? "block" : "table-row";
				break;
				case 2: // Credit
					$('td_Kalkulatorischer_Restwert').parentNode.style.display = "none";
					$('td_1_Leasingrate').parentNode.style.display = "none";
				break;
				case 3: // CreditS
					$('td_Kalkulatorischer_Restwert').parentNode.style.display = "none";
					$('td_1_Leasingrate').parentNode.style.display = "none";
				break;
			}
			
			if(this.fahrzeugart == "neuwagenPorsche")
			{
				$('td_CylinderCapacity').innerHTML = $$$('CylinderCapacity').value;
				$('td_Performance').innerHTML = $$$('Performance').value;
				$('td_Torque').innerHTML = $$$('Torque').value;
				$('td_TopSpeed').innerHTML = $$$('TopSpeed').value;
				$('td_Acceleration').innerHTML = $$$('Acceleration').value;
				$('td_NumberCylinders').innerHTML = $$$('NumberCylinders').value;
				$("boxOverviewModellName").innerHTML = $$$('reihe').value;
				var imgName = $$$('reihe').value;
				while(imgName.indexOf(" ") > -1) { imgName = imgName.replace(" ","_"); }
				$("boxTop").style.backgroundImage = "url(/pix/mood/modelle/" + imgName + ".jpg)";
				$("boxOverviewModell").style.display = "block";
			}
			else
			{
				var fabrikat = $$$("fabrikat");
				var fabSelIndex = (fabrikat.selectedIndex==0)?1:fabrikat.selectedIndex;
				$("boxOverviewModellName").innerHTML = fabrikat.options[(fabrikat.selectedIndex == 0) ? 1 : fabrikat.selectedIndex].innerHTML;
				$("boxTop").style.backgroundImage = "url(/pix/mood/mood_gebrauchtwagen.jpg)";
				$("boxOverviewModell").style.display = "none";
				
			}
			$("boxOverview").style.display = "block";
			$("boxOverviewKonditionen").style.display = "block";
		}
	}
	
	
	/*------------------------------------------
		setFahrzeugart
	------------------------------------------*/
	
	this.setFahrzeugart = function()
	{
		return 1;
		//if(this.GET["fahrzeugart"]) { return this.GET["fahrzeugart"]; }
		//else if(fahrzeugartFromCookie) { return fahrzeugartFromCookie; }
		//else { return "neuwagenPorsche"; }
	}
	
	/*------------------------------------------
		setSessionId
	------------------------------------------*/
	
	function setSessionId()
	{
		//if(sessionIdFromCookie) { return sessionIdFromCookie; }
		//else { return date.dateNow('Ymd') + date.timeNow('Hism'); }
		return 1;
	}
	
	/*==========================================
		Initialisation
	==========================================*/
	
	var _self			= this;
	this.siteID			= 1;
	this.model			= new Object();
	this.model.type		= new Array("kalkulation","classic","fix","flex");
	this.model.active	= 0;
	this.NumberOfPages	= null;
	this.GET			= this.getParameters();
	this.SESSION		= new Object();
	this.SESSION.id		= setSessionId();
	this.fahrzeugart	= this.setFahrzeugart();
	this.mainURL		= null;
}

var page = new Page();
page.NumberOfPages = 5;

