var gui = new parameter();

function parameter()
{
	this.Comboboxes = new Array("hersteller","serie","typ","einsatzbereich","farbe","material");
	this.standardsitz = 0;
	this.option = "keramik";
	this.hersteller = 0;
	this.serie = 0;
	this.typ = 0;
	this.breite = 0.0;
	this.laenge = 0.0;
	this.bohrungsabstand = 0.0;
	this.einsatzbereich = 0;
	this.farbe = 0;
	this.material = 0;
	this.treffer = 0;
	
	this.lastChanged = "init";
	this.oldSerie = 0;
}


parameter.prototype.readForm = m_readForm;
parameter.prototype.reset = m_reset;
parameter.prototype.updateForm = m_updateForm;


function m_readForm(name)
{
	if(document.selektor.standardsitz.checked == true)
  {
    this.standardsitz = 1;  
  }
  else
  {
    this.standardsitz = 0;
  }
  
  if(document.selektor.option[0].checked == true)
  {
    this.option = "keramik";
  }
  
  if(document.selektor.option[1].checked == true)
  {
    this.option = "abmessung";
  }
  
  this.breite = document.selektor.breite.value;	
  this.laenge = document.selektor.laenge.value;
  this.bohrungsabstand = document.selektor.bohrungsabstand.value;
  
  // this.textsuche = document.selektor.textsuche.value;
  this.lastChanged = name;
  this.oldSerie = this.serie;
 
 	// Comboboxen auslesen
  for(var i = 0; i < this.Comboboxes.length; i++)
  	this[this.Comboboxes[i]] = document.selektor[this.Comboboxes[i]].options[document.selektor[this.Comboboxes[i]].selectedIndex].value;
}


function m_reset()
{
	this.standardsitz = 0;
	this.option = "keramik";
	this.hersteller = 0;
	this.serie = 0;
	this.typ = 0;
	this.breite = 0.0;
	this.laenge = 0.0;
	this.bohrungsabstand = 0.0;
	this.einsatzbereich = 0;
	this.farbe = 0;
	this.material = 0;
	this.treffer = 0;
	
	this.lastChanged = "";
	this.oldSerie = 0;
	
  document.selektor.breite.value = "";
  document.selektor.laenge.value = "";
  document.selektor.bohrungsabstand.value = "";
  
  // Comboboxen zurücksetzen
  for(var i = 0; i < this.Comboboxes.length; i++)
		document.selektor[this.Comboboxes[i]].options[0].selected = true;		
		
	greyAbmessung();
}


function m_updateForm(response)
{	
	// Comboboxen aktualisieren
	var ComboboxToUpdate = new Array();
	
	switch(this.lastChanged)
	{
		case "serie": // wenn Serie = SitzNurVomHersteller --> Warnung ausgeben
			if(response.nurVomHersteller == 1)
			{
				alert(selektor_js_msg_01);
				set_option("serie", this.oldSerie);
				this.serie = this.oldSerie;
				return;
			}
			break;
 		case "hersteller":
 			document.selektor.serie.disabled = this.hersteller == 0;
 		case "typ":
 			ComboboxToUpdate = new Array("serie");
 			if(response.keramikid != 0) this.serie = response.keramikid; //KeramikID aktualisieren -> 
 																				// Hersteller kann mehrere Keramiken mit gleichen Seriennamen haben 
 			break;
 		case "einsatzbereich":
 			ComboboxToUpdate = new Array("farbe","material");
 			break;
 		case "farbe":
 			ComboboxToUpdate = new Array("einsatzbereich","material");
 			break;
 		case "material":
 			ComboboxToUpdate = new Array("einsatzbereich","farbe");
 			break;
 		case "init": // Initialisierung des Formulars
 			ComboboxToUpdate = new Array("serie","einsatzbereich","farbe","material");
 			greyAbmessung();
 			document.selektor.serie.disabled = true;
 			break;
 		case "keramik":
 			greyAbmessung();
 			break;
 		case "abmessung":
 			greyKeramik();
 			break;
	}

	for(var i = 0; i < ComboboxToUpdate.length; i++)
	{
		// delete old options
		while(document.selektor[ComboboxToUpdate[i]].length > 1)
    	document.selektor[ComboboxToUpdate[i]].options[document.selektor[ComboboxToUpdate[i]].length-1] = null;
    // add new options
    add_option(ComboboxToUpdate[i], response[ComboboxToUpdate[i]]);
    // set options
    set_option(ComboboxToUpdate[i], this[ComboboxToUpdate[i]]);
	}

  document.selektor.treffer.value = response.treffer;
  this.treffer = response.treffer;
}


function add_option(name, values)
{ 
  for(var i = 0; i < values.length; i++)
  {
    var new_option = new Option(values[i]["Name"], values[i]["ID"], false, false);  
    document.selektor[name].options[document.selektor[name].length] = new_option;
  }
}

function set_option(name, id)
{ 
	document.selektor[name].options[0].selected = true;  // "keine Auswahl" als Default
  for(var i = 0; i < document.selektor[name].length; i++)
    if(document.selektor[name].options[i].value == id)
      document.selektor[name].options[i].selected = true;
}



function check_int(name, value)
// Ueberpruefung ob Eingabe eine int-Zahl ist
{
   for(i = 0; i < document.selektor[name].value.length; ++i)
   if(document.selektor[name].value.charAt(i) < "0" || document.selektor[name].value.charAt(i) > "9")
   {
     alert(selektor_js_msg_02);
     document.selektor[name].value = "";
     document.selektor[name].focus();
   }	
}


function reset_form()  // delete all first resp. initialize form ...
{
	gui.reset(); 
  updateInterface("init");
}


function updateInterface(name)
{
  gui.readForm(name);	
  // reload hidden frame 
  parent.frames[1].changeLocation(gui);
}


function callback_updateInterface(response)  // called from hidden frame server ...
{ 
  gui.updateForm(response);
} 

  
function showHits()  // prueft ob Trefferanzahl OK und gibt Trefferliste bzw. Fehlermeldung aus 
{
	if(gui.treffer == 0)
		alert(selektor_js_msg_03);
	else
	{
		if(gui.treffer > 40)
			alert(selektor_js_msg_04 + "\n" + selektor_js_msg_05);
		else
			document.selektor.submit();
	}
}

 
function greyKeramik()
{
  set_option("hersteller", 0);
  set_option("serie", 0);
  set_option("typ", 0);
  document.selektor.hersteller.disabled = true;
  document.selektor.serie.disabled = true;
  document.selektor.typ.disabled = true; 
  document.selektor.breite.disabled = false;
  document.selektor.laenge.disabled = false;
  document.selektor.bohrungsabstand.disabled = false;
} 

function greyAbmessung()
{
  document.selektor.breite.value = "";
  document.selektor.laenge.value = "";
  document.selektor.bohrungsabstand.value = "";
  document.selektor.breite.disabled = true;
  document.selektor.laenge.disabled = true;
  document.selektor.bohrungsabstand.disabled = true;  
  document.selektor.hersteller.disabled = false;
  document.selektor.serie.disabled = gui.hersteller == 0;
  document.selektor.typ.disabled = false;
} 


function openFarbtafel(URL)
{
	openW(URL + '&einsatzbereich=' + gui.einsatzbereich + "&material=" + gui.material,'Farbtafel','width=533,height=306,scrollbars=no,resizable=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,titlebar=no,dependent=yes','533','306');
}
