
// Navigation aktualisieren
function updateNavButtons()
{
	$('#nav_next').unbind();
	$('#nav_back').unbind();
	$('#menu_farben').unbind();
	$('#menu_raeder').unbind();
	$('#menu_maus').unbind();
	$('#menu_ang').unbind();
	PEPS.rollover.init();

	$("#nav_next").removeClass('hide_it');
	$("#nav_back").removeClass('hide_it');

	if (state.ansicht == 'modell') {
		$('#nav_next').bind('click',function(){callCC(callFarben);});
		$('#nav_back').bind('click',function(){actionReset();});
	}
	else if (state.ansicht == 'liste') {
		$('#nav_next').bind('click',function(){callCC(callFarben);});
		$("#nav_back").addClass('hide_it');
	}
	else if (state.ansicht == 'cc.farben') {
		if (confmodell.farbe != '' && confmodell.polster != '') {
			$('#menu_maus').bind('click',function(){callMaus();});
			$('#menu_ang').bind('click',function(){callAngebot();});
			$('#menu_maus').addClass('menu_buttons');
			$('#menu_ang').addClass('menu_buttons');
		}
		else {
			$('#menu_maus').removeClass('menu_buttons');
			$('#menu_ang').removeClass('menu_buttons');
			$('#menu_maus').unbind();
			$('#menu_ang').unbind();
		}
		$('#menu_farben').unbind();

		$('#nav_next').bind('click',function(){callTires();});
		if(style.isPorsche) {
			$('#nav_back').bind('click',function(){location.href = porsche_link;});
		}
		else {
			$('#nav_back').bind('click',function(){callTrichter();});
		}
		$('#menu_raeder').bind('click',function(){callTires();});

		$('#menu_farben').attr( 'src', set_menu_act($('#menu_farben').attr('src')) );
		$('#menu_raeder').attr( 'src', set_menu_next($('#menu_raeder').attr('src')) );
		$('#menu_maus').attr( 'src', set_menu_next($('#menu_maus').attr('src')) );
		$('#menu_ang').attr( 'src', set_menu_next($('#menu_ang').attr('src')) );

		$('#menu_raeder').addClass('menu_buttons');
	}
	else if (state.ansicht == 'cc.raeder') {
		$('#menu_raeder').unbind();
		$('#nav_next').bind('click',function(){callMaus();});
		$('#nav_back').bind('click',function(){callFarben();});
		$('#menu_maus').bind('click',function(){callMaus();});
		$('#menu_ang').bind('click',function(){callAngebot();});
		$('#menu_farben').bind('click',function(){callFarben();});

		$('#menu_farben').attr( 'src', set_menu_visited($('#menu_farben').attr('src')) );
		$('#menu_raeder').attr( 'src', set_menu_act($('#menu_raeder').attr('src')) );
		$('#menu_maus').attr( 'src', set_menu_next($('#menu_maus').attr('src')) );
		$('#menu_ang').attr( 'src', set_menu_next($('#menu_ang').attr('src')) );

		$('#menu_raeder').removeClass('menu_buttons');
		$('#menu_ang').addClass('menu_buttons');
		$('#menu_maus').addClass('menu_buttons');
		$('#menu_farben').addClass('menu_buttons');
	}

	else if (state.ansicht == 'cc.maus') {
		$('#menu_maus').unbind();

		$('#nav_next').bind('click',function(){callAngebot();});
		$('#nav_back').bind('click',function(){callTires();});
		$('#menu_farben').bind('click',function(){callFarben();});
		$('#menu_raeder').bind('click',function(){callTires();});
		$('#menu_ang').bind('click',function(){callAngebot();});

		$('#menu_farben').attr( 'src', set_menu_visited($('#menu_farben').attr('src')) );
		$('#menu_raeder').attr( 'src', set_menu_visited($('#menu_raeder').attr('src')) );
		$('#menu_maus').attr( 'src', set_menu_act($('#menu_maus').attr('src')) );
		$('#menu_ang').attr( 'src', set_menu_next($('#menu_ang').attr('src')) );

		$('#menu_farben').addClass('menu_buttons');
		$('#menu_maus').removeClass('menu_buttons');
		$('#menu_raeder').addClass('menu_buttons');
		$('#menu_ang').addClass('menu_buttons');
	}

	else if (state.ansicht == 'cc.angebot') {
		$('#menu_ang').unbind();

		$('#nav_back').bind('click',function(){backFromAng();callMaus();});
		$("#nav_next").addClass('hide_it');
		$('#menu_farben').bind('click',function(){backFromAng();callFarben();});
		$('#menu_raeder').bind('click',function(){backFromAng();callTires();});
		$('#menu_maus').bind('click',function(){backFromAng();callMaus();});

		$('#menu_farben').attr( 'src', set_menu_visited($('#menu_farben').attr('src')) );
		$('#menu_raeder').attr( 'src', set_menu_visited($('#menu_raeder').attr('src')) );
		$('#menu_maus').attr( 'src', set_menu_visited($('#menu_maus').attr('src')) );
		$('#menu_ang').attr( 'src', set_menu_act($('#menu_ang').attr('src')) );

		$('#menu_farben').addClass('menu_buttons');
		$('#menu_raeder').addClass('menu_buttons');
		$('#menu_ang').addClass('menu_buttons');
		$('#menu_maus').addClass('menu_buttons');
	}
	if (style.isSkoda)
		$("#subnavigation").show();
}

// Rueckkehr zum Trichter vom Konfigurator
function callTrichter()
{
	showWait();
	// gewaehlte Variablen (Farbe, Polster, MAUS) ruecksetzen
	confmodell.setModellcode('');
	confmodell.setFarbe('');
	confmodell.setPolster('');
	confmodell.setMehrausstattungen('');
	confmodell.setAusstattungsvar('');
	reinitialiseId();
	// Modellbild-Manager neu initialisieren
	//TODO: ModeldisplayController event senden

	state.ansicht = 'modell';
	// Kriterien neu laden + Kriterien aufs Modell einschraenken
	$('#sidebar').html('<div id="criteria"></div><span id="action_reset_criteria" class="action">'+text_reset +'</span>');
	$.getJSON(svc.modellCrit, function(data){
		cbModellCritOnLoad(data);
		actionContentModellansicht(confmodell.modellgruppe, false);
	});

	$('#menu').remove();
	$("#nav_next").addClass('nav_next');
	$("#nav_next").removeClass('nav_next_cc');

	$("#subnavigation").removeClass('navigation_wide');
	$("#subnavigation").addClass('navigation');
	updateHeadline();

	$("#info_header_big-div").removeClass("infoheaderSizeB").addClass("infoheaderSizeA");
	modeldisplayCtrl.setView("front");
	modeldisplayCtrl.refresh();

	// Groesse aendern fuer Trichter
	$("#info_header").removeClass('width_big_left');
	$("#info_box").removeClass('width_big_right');
	if (browser_ie6)
	{	$("#rundherum").removeClass('ie6rundherum');
	}
	$("#content").removeClass('width_big_left');
	$("#modellbilder_small").addClass('change_picture_trichter');
	$("#picture_big_click").addClass('change_picture_trichter_click');
	$("#headline_image").addClass('headline_image_trichter');
	$("#sidebar").addClass('sidebar');
	$("#sidebar").removeClass('sidebar_new');

	loadInfoBox(svc.infolinks_standard);
}

// Farbseite laden
function callFarben()
{
	state.ansicht = 'cc.farben';
	updateNavButtons();
	// HTML Fragment mit den Farben laden
	updateFarbePolster();
	$("#rundherum").scrollTop(0);

	// statistics
	stat_log_cc3(stat.step_farben);

	// twyn Statistik
	if (twyn && !style.isLnf) {
		writeTwynStatistic("Farben_carC", false, confmodell.bezeichnung);
	}

}

// Div mit den Reifen laden
function callTires()
{
	if (confmodell.farbe != '' && confmodell.polster != '') {
		state.ansicht = 'cc.raeder';
		showWait();
		var calltires = getConfiguratorURL("cc3raeder.txt");
		$.get(calltires, function(data) {
			$("#content").html(data);
			hideWait();
		});
		updateNavButtons();
		$("#rundherum").scrollTop(0);

		// statistics
		stat_log_cc3(stat.step_raeder);

		// twyn Statistik
	    if (twyn && !style.isLnf) {
			writeTwynStatistic("Raeder_carC", false, confmodell.bezeichnung);
		}

	}
	else if (confmodell.farbe == '') {
		backToFarben(true);
	}
	else if (confmodell.polster == '') {
		backToFarben(false);
	}
}

// Div mit den Mehrausstattungen laden
function callMaus()
{
	if (confmodell.farbe == '') {
		backToFarben(true);
	}
	else if (confmodell.polster == '') {
		backToFarben(false);
	}
	else {
		showWait();
		state.ansicht = 'cc.maus';
		var callmaus = getConfiguratorURL ("cc3maus.txt");
		$.get(callmaus, function(data) {
			$("#content").html(data);
			hideWait();
		});
		updateNavButtons();
		// Weiter zum Angebot fuer VU ausblenden
		if (app.isVU) $("#nav_next").addClass('hide_it');
		$("#rundherum").scrollTop(0);

		// statistics
		stat_log_cc3(stat.step_maus);

		// twyn Statistik
	    if (twyn && !style.isLnf) {
			writeTwynStatistic("Ausstattung_carC", false, confmodell.bezeichnung);
		}
	}
}

// Angebotsseite laden
function callAngebot()
{
	if (confmodell.farbe == '') {
		backToFarben(true);
	}
	else if (confmodell.polster == '') {
		backToFarben(false);
	}
	else {
		showWait();
		state.ansicht = 'cc.angebot';
		var callangebot = getConfiguratorURL ("cc3angebot.txt");
		$.get(callangebot, function(data) {
			$("#rundherum").html(data);
			hideWait();
		});
		loadInfoBox(svc.infolinks_angebot);
		updateNavButtons();

		// statistics
		stat_log_cc3(stat.step_angebot);
		for (var i=0; i < stat.maus.length; i++)
		{
			var currentMaus = stat.maus[i];
			stat_log_cc3_maus(currentMaus[0], currentMaus[1]);
		}

		// twyn Statistik
	    if (twyn && !style.isLnf) {
			writeTwynStatistic("Angebot_carC", false, confmodell.bezeichnung);
		}
	}
}

// notwendige Schritte wenn zurueck von der Angebotsseite
function backFromAng()
{
	if (state.ansicht == 'cc.angebot') {
		$("#rundherum").empty();
		var oDiv = document.createElement('div');
		oDiv.className = 'content width_big_left';
		oDiv.id = 'content';
		$("#rundherum").append($(oDiv));
		var myDiv = document.createElement('div');
		myDiv.className = 'sidebar_new';
		myDiv.id = 'sidebar';
		$("#rundherum").append($(myDiv));
		loadInfoBox(svc.infolinks_cc);
	}
}

function backToFarben(farbe)
{
	if (state.ansicht == 'cc.raeder' || state.ansicht == 'cc.maus' || state.ansicht == 'cc.angebot')
	{
		state.ansicht = 'cc.farben';
		updateNavButtons();
	}
	state.ansicht = 'cc.farben';

	// statistics
	// (Bem: nur loggen wenn CC3_3 nicht schon der aktuelle Step ist,
	//  ansonsten geschieht Mehrfach-Logging von CC3_3 bei versuchtem Wechsel zu Raeder,
	//  wenn aber noch nicht sowohl Farbe als auch Stoff ausgewaehlt sind)
	if (stat.currentStep != stat.step_farben)
	{	stat_log_cc3(stat.step_farben);
	}

	$.get(getConfiguratorURL("cc3farben.txt"), function(data) {
		$("#content").html(data);
		$("#rundherum").scrollTop(0);
		if (farbe) showFarbeWarnung();
		else showPolsterWarnung();
	});
}

// Car Configurator mit Modellcode aufrufen
function callCC(nextFunction, mc, mgn, fab)
{
	if (mgn) {
		confmodell.setModellgruppe(mgn);
	}
	if (fab) {
		confmodell.setFabrikat(fab);
	}
	if(direktEinstiegModell) {
		confmodell.setModellcode(mc);
		updateHeadline();
	} else {
		confmodell.setModellcode($("input:radio[name='modellcode']:checked").val());
	}

	if (!confmodell.modellcode) {
		hideWarningDivs();
		$("#model_warning").show();
		$("#lighbox_close_button").show();
		tb_show(null,"#TB_inline?height=170&width=280&inlineId=lightbox",false);
	}
	else {
		showWait();
		$("#info_text_picture").removeClass('remove_it');
		$("#info_picture").hide();

		// globale JS Variablen fuer aktuell gesetzten Modell-Code sicherstellen (notwendig fuer statistics)
		var modellInfo = getModellInfo(confmodell.modellcode);
		if (confmodell.modellgruppe == '')
		{	mgnAuswahlNotSetYet = true;
		}
		if (modellInfo != null) {
			confmodell.setModellgruppe(modellInfo.imoimg);
			confmodell.setBezeichnung(modellInfo.imoimgb);
			confmodell.setAusstattungsvar(modellInfo.av);
		}
		
		if(app.isShowroom){
			modeldisplayCtrl.modelview.prepareGUI();
			modeldisplayCtrl.modelview.initCarline();
		}

		if (state.ansicht == 'liste') {
			confmodell.setFabrikat(modellInfo.fab);
			updateHeadline();
		}

		loadCCDivs();
		loadMenuDivs();

		var callmenu = getBaseConfiguratorURL ("cc3menu.txt");
		$.get(callmenu,function(data) {
			$("#menu").html(data);
			if (nextFunction) {
				nextFunction();
			}
		});
		modeldisplayCtrl.refresh();
	}
}



function showFarbeWarnung()
{
	hideWarningDivs();
	$("#color_warning").show();
	$("#lighbox_close_button").show();
	tb_show(null,"#TB_inline?height=170&width=280&inlineId=lightbox",false);
}

function showPolsterWarnung()
{
	hideWarningDivs();
	$("#upholstery_warning").show();
	$("#lighbox_close_button").show();
	tb_show(null,"#TB_inline?height=170&width=280&inlineId=lightbox",false);
}

function showAusvglWarnung()
{
	hideWarningDivs();
	$("#comparison_warning").show();
	$("#lighbox_close_button").show();
	tb_show(null,"#TB_inline?height=170&width=280&inlineId=lightbox",false);
}


function showLoginInvalid()
{
	hideWarningDivs();
	gui_locked = true;
	$("#login_invalid").show();
	$("#lighbox_close_button").hide();
	tb_show(null,"#TB_inline?height=170&width=280&inlineId=lightbox",false);
}

function showErrorMessage()
{
	hideWarningDivs();
	$("#error_message_main").show();
	$("#lighbox_close_button").show();
	tb_show(null,"#TB_inline?height=170&width=280&inlineId=lightbox",false);
}

function hideWarningDivs()
{
	$("#color_warning").hide();
	$("#upholstery_warning").hide();
	$("#model_warning").hide();
	$("#comparison_warning").hide();
	$("#baubarkeiten_warning").hide();
	$("#mkl_saved_information").hide();
	$("#mkl_compare_max").hide();
	$("#mkl_delete_min").hide();
	$("#mkl_toomuch_saved").hide();
	$("#error_message_main").hide();
	$("working").hide();
	$("insertDVD").hide();
}

function redirectToPage(mc, farbe, polster, maus, call)
{
	showWait();
	confmodell.setModellInformation(mc, null, farbe, polster, maus); // , fab);
	
	if (getModellInfo(mc) == null) {
		if (app.isVU) {
			actionCreateXml();
		}
		else {
			showErrorMessage();
		}
	}
	else {
		// Ueberschrift aktualisieren
		updateHeadline();
		
		$("#info_picture").hide();
		$("#info_header_big-div").removeClass('remove_it');
		$("#nav_next").addClass('enabled');
		$("#nav_back").addClass('enabled');
		$("#navigation").show();

	
		// Verlinken zur gewuenschten Unterseite des CC
		switch (call) {
			case "farben":
				callFarben();
				break;
			case "raeder":
				callTires();
				break;
			case "maus":
				callMaus();
				break;
			case "angebot":
				callAngebot();
				break;
			default:
				callFarben();
				break;
		}
	}
}

// Basis Divs fuer den CC laden
function loadCCDivs()
{
	text_reset = $("#action_reset_criteria").html();
	$("#criteria").addClass('remove_it');	// nice-to-have: hide criteria block (otherwise bad layout of ui-sliders while switching to CC)

	$("#nav_next").removeClass('nav_next');
	$("#nav_next").addClass('nav_next_cc');

	$("#subnavigation").removeClass('navigation');
	$("#subnavigation").addClass('navigation_wide');

	// Groesse aendern fuer Configurationsteil
	$("#info_header").addClass('width_big_left');
	$("#info_box").addClass('width_big_right');
	if (browser_ie6)
	{	$("#rundherum").addClass('ie6rundherum');
	}
	$("#content").addClass('width_big_left');
	$("#modellbilder_small").removeClass('change_picture_trichter');
	$("#picture_big_click").removeClass('change_picture_trichter_click');
	$("#headline_image").removeClass('headline_image_trichter');
	$("#sidebar").removeClass('sidebar');
	$("#sidebar").addClass('sidebar_new');

	// statische Links CC laden
	loadInfoBox(svc.infolinks_cc);
	addModellPicture();
	modeldisplayCtrl.setup();
}


function loadInfoBox(content){
	$("#info_box").load(content, function(){
		if (style.isSeat) {
			loadHeadlineImageZusatzSeat();
		}
	});	
}

function loadMenuDivs()
{
	// HTML Fragment mit dem Menue laden
	var oDiv = document.createElement('div');
	oDiv.className = 'menu page-fixed-content';
	oDiv.id = 'menu';
	$(oDiv).insertAfter($("#info"));
}

function writeTwynStatistic(step, einstiegsseite, mgbez)
{
	var tsDate = new Date();
	var ts = tsDate.getTime();
	if (style.isVw) {
		var cu = "30";
		var pa = "volkswagen.at_HL";
	}
	else if (style.isAudi) {
		 var cu = "5";
		 var pa = "audi.at_HL";
	}
	else if (style.isSkoda) {
		 var cu = "1u";
		 var pa = "skoda.at_HL";
	}
	else if (style.isSeat) {
		 var cu = "1q";
		 var pa = "seat.at_HL";
	}
	var process = "8";
	var op4 = step;

	$("#twyn_pixel").empty();
	if (einstiegsseite) {
		$("#twyn_pixel").append('<img src="http://tracknet.twyn.com/p?cuid=' + cu + '&process=' + process + '&op4=' + op4 + '&pa=' + pa + '&ts=' + ts + '" width="10" height="2" border="0" />');
	}
	else {
		op2 = mgbez;
		$("#twyn_pixel").append('<img src="http://tracknet.twyn.com/p?cuid=' + cu + '&process=' + process + '&op2=' + op2 + '&op4=' + op4 + '&pa=' + pa + '&ts=' + ts + '" width="10" height="2" border="0" />');
	}
	if (style.isSeat) {
		cu = "d2";
		$("#twyn_pixel_seat").empty();
		if (einstiegsseite) {
			$("#twyn_pixel_seat").append('<img src="http://tracknet.twyn.com/p?cuid=' + cu + '&process=' + process + '&op4=' + op4 + '&pa=' + pa + '&ts=' + ts + '" width="10" height="2" border="0" />');
		}
		else {
			op2 = mgbez;
			$("#twyn_pixel_seat").append('<img src="http://tracknet.twyn.com/p?cuid=' + cu + '&process=' + process + '&op2=' + op2 + '&op4=' + op4 + '&pa=' + pa + '&ts=' + ts + '" width="10" height="2" border="0" />');
		}
	}
}