/**
 * Die Globale Funktion für eine Uhrenberater Ajax Anfrage.
 * Bei Fehler wird die Funktion showError() aufgerufen.
 * Bei Erfolgreicher anfrage wird die Funktion showResponse() aufgerufen.
 */
var setProductRequest = function()
{
	// lese die werte der versteckten felder aus und übergebe die werte per post
	// an das result program
	param = 'serie='+document.uhrenfinderform.hd_serie.value;
	param = param + '&optik='+document.uhrenfinderform.hd_optik.value;	
	param = param + '&zifferblatt='+document.uhrenfinderform.hd_zifferblatt.value;
	param = param + '&alarm='+document.uhrenfinderform.hd_alarm.value;
	param = param + '&pendel='+document.uhrenfinderform.hd_pendel.value;	
	param = param + '&preis='+document.uhrenfinderform.hd_preis.value;	
	param = param + '&page='+document.uhrenfinderform.hd_page.value;
	var ajax = new Ajax.Request (
							"customer/templates/ajax/get_data.clocks.uhrenberater.php",
							{
								method:'post',
								parameters:'?PHPSESSID='+ getSessionId(),
								postBody:param,
								onComplete:showResponse, 
								onFailure:showError
							}
						);
}

var getPage = function(page)
{
	document.uhrenfinderform.hd_page.value = page;
	setProductRequest();
}

/**
 * Setzt die Session für den Uhrenberater zurück
 */
var resetUhrenberaterSession = function(mapid, type)
{
	// lese die werte der versteckten felder aus und übergebe die werte per post
	// an das result program
	param = 'mapid='+mapid;
	
	if (type != undefined) {
		param+= '&type='+type;
	}
	
	var ajax = new Ajax.Request (
							"customer/templates/ajax/reset_session.uhrenberater.php",
							{
								method:'post',
								parameters:'?PHPSESSID='+ getSessionId(),
								postBody:param,
								onComplete:goToPage, 
								onFailure:showError
							}
						);
}

/**
 * Die Funktion Leitet zu einer Seite weiter, hier wird über den Ajax.Request 
 * ein Parapeter (r) übergeben welcher auch die mapid beinhaltet
 */
var goToPage = function(r) {
	window.location = 'index.php?mapid='+r.responseText;
}

/**
 * Seitenschaltung für die ajaxbasierte Produktausgabe.
 * integer page -> seite 
 */
var getPage = function(page)
{
	document.uhrenfinderform.hd_page.value = page;
	setProductRequest();
}


// SelectBox und Erbenis anzeigen
var showResponse = function(r)
{

	var root = r.responseXML.getElementsByTagName("berater");
	// Ersetze die Auswahlbox
	var auswahlbox = root[0].getElementsByTagName('auswahlbox')[0].firstChild.data;
	document.getElementById('uhrenfinder').innerHTML = auswahlbox;

	// Ersetze die Ergebnisse
	var ergebniss = root[0].getElementsByTagName('ergebniss')[0].firstChild.data;
	document.getElementById('produktuebersicht').innerHTML = ergebniss;
	
	// der Internet Explorer hat Probleme mit nachgeladennem Content
	// damit nach dem Neuladen der Auswahlboxen die Listen sich wieder aufklappen 
	// lassen muss die sfHover() Funktion ausgeführt werden.
	if (navigator.appName == 'Microsoft Internet Explorer')
		sfHover();
		
	//debug();
}

var showError = function(r)
{
	//alert("Error: \n" + r.status + "\n" + r.statusText);	
}

//var debug = function() 
//{
//	debWindow = window.open('customer/ajax.debug.php?PHPSESSID='+ getSessionId(), "debug", "scrollbars=yes,resizable=yes,width=500,height=400,left=100,top=400");
//  debWindow.focus();
//}


//-- Aktualisiert Serie Auswahlbox
var updateSerie = function(wert, name)
{
	document.getElementById('visible_serie').innerHTML = name;
	document.uhrenfinderform.hd_serie.value = wert;
	document.uhrenfinderform.hd_page.value = 1;
	setProductRequest();
}

//-- Aktualisiert Optik Auswahlbox
var updateOptik = function(wert, name)
{
	document.getElementById('visible_optik').innerHTML = name;
	document.uhrenfinderform.hd_optik.value = wert;
	document.uhrenfinderform.hd_page.value = 1;
	setProductRequest();
}

//-- Aktualisiert Zifferblatt Auswahlbox
var updateZifferblatt = function(wert, name)
{
	document.getElementById('visible_zifferblatt').innerHTML = name;
	document.uhrenfinderform.hd_zifferblatt.value = wert;
	document.uhrenfinderform.hd_page.value = 1;
	setProductRequest();
}

//-- Aktualisiert Alarm Auswahlbox
var updateAlarm = function(wert, name)
{
	document.getElementById('visible_alarm').innerHTML = name;
	document.uhrenfinderform.hd_alarm.value = wert;
	document.uhrenfinderform.hd_page.value = 1;
	setProductRequest();
}

//-- Aktualisiert Pendel Auswahlbox
var updatePendel = function(wert, name)
{
	document.getElementById('visible_pendel').innerHTML = name;
	document.uhrenfinderform.hd_pendel.value = wert;
	document.uhrenfinderform.hd_page.value = 1;
	setProductRequest();
}

//-- Aktualisiert Preis Auswahlbox
var updatePreis = function(wert, name)
{
	document.getElementById('visible_preis').innerHTML = name;
	document.uhrenfinderform.hd_preis.value = wert;
	document.uhrenfinderform.hd_page.value = 1;
	setProductRequest();
}

//--  reset finder and submit search
var submitSearch = function (mapId, formId) {
	param = 'mapid='+mapId;
	
	var ajax = new Ajax.Request (
							"customer/templates/ajax/reset_session.uhrenberater.php",
							{
								method:'post',
								parameters:'?PHPSESSID='+ getSessionId(),
								postBody:param,
								onComplete: function () {$(formId).submit();}, 
								onFailure:showError
							}
						);
	
}