/* hier wird der onclick event für die inhalte verschluss generiert */


make_open_close('verschluss');
make_open_close('button');
make_open_close('colors');
var bn_test=1;



function open_win(link,width,height,win,scroll)
{	if(win=="")	win="admin_win";
 	if(scroll=="")	scroll="yes";
 	var wstat;
  var ns4up = (document.layers) ? 1 : 0;
  var ie4up = (document.all) ? 1 : 0;
  var xsize = screen.width;
  var ysize = screen.height;
  var breite=width;
  var hoehe=height;
  var xpos=(xsize-breite)/2;
  var ypos=(ysize-hoehe)/2;
  wstat=window.open(link,win,"scrollbars="+ scroll + ",status=no,toolbar=no,location=no,directories=no,resizable=no,menubar=no,width="+breite+",height="+hoehe+",screenX="+xpos+",screenY="+ypos+",top="+ypos+",left="+xpos);
	wstat.focus();
  return false;
}

/**
 *
 * @access public
 * @return void
 **/
function open_boxes(s)
{	document.getElementById('bn_formular').style.display='none';
	document.getElementById('bn_hilfe').style.display='none';
	document.getElementById('bn_upload').style.display='none';
	document.getElementById(s).style.display='block';
}


/**
 *
 * @access public
 * @return void
 **/
function 	calculate_price(s,id)
{	var make="get_price=1";

//	var bn_session = document.getElementById('bn_session').name + "=" + document.getElementById('bn_session').value;

	var count=document.getElementById('count').value;
	var colors = document.getElementById('colors').getElementsByTagName('span')[0].id.replace(/(span_color_|link_color_)/,'');
//	alert(colors);
	var ruecken = document.getElementById('verschluss').getElementsByTagName('span')[0].id.replace(/(span_ruecken_|link_ruecken_)/,'');
//	alert(ruecken);
	var product = document.getElementById('button').getElementsByTagName('span')[0].id.replace(/(span_button_|link_button_)/,'');
//	alert(product);
	make += "&product=" + product + "&count=" + count + "&color=" + colors + "&ruecken=" + ruecken; // + "&" + bn_session;

//	alert(make);
	bn_get_content("/calculator.php",make,"post",new Function ("show_calculate("+http_counter+")"));
}


/**
 *
 * @access public
 * @return void
 **/
function get_info()
{
	var count=document.getElementById('count').value;
	var product = document.getElementById('button').getElementsByTagName('span')[0].id.replace(/(span_button_|link_button_)/,'');
	document.getElementById('product_qty').value=count;
	document.getElementById('product_id').value=product;

}

function show_calculate(bn_counter)
{	output=null;
 if (bn_http[bn_counter].readyState == 4)
	{	output = bn_http[bn_counter].responseXML;


		var t = output.getElementsByTagName('calculator_price');
		if(t.length)
		{

				document.getElementById('price').innerHTML=output.getElementsByTagName('calculator')[0].getElementsByTagName('calculator_price')[0].childNodes[0].nodeValue + " &euro;";
				document.getElementById('count').value=output.getElementsByTagName('calculator')[0].getElementsByTagName('counter')[0].childNodes[0].nodeValue;


				document.getElementById('stueck').innerHTML=output.getElementsByTagName('calculator')[0].getElementsByTagName('calculator_stueck')[0].childNodes[0].nodeValue + " &euro; / Stk.";

				if(output.getElementsByTagName('calc_error').length)
				{	alert(output.getElementsByTagName('calculator')[0].getElementsByTagName('calc_error')[0].childNodes[0].nodeValue);
				}
		}
		else
			{	document.getElementById('count').value=output.getElementsByTagName('calculator')[0].getElementsByTagName('error')[0].childNodes[0].nodeValue;
				document.getElementById('price').innerHTML="<span style='color:#f90000;'>0,- &euro;</span>";
			}
	}
}

/**
 *
 * @access public
 * @return void
 **/
function make_open_close(s)
{	if(document.getElementById(s))
	{	var bn_verschluss_a = document.getElementById(s).getElementsByTagName('a');
		for(var bn_i=0; bn_i<bn_verschluss_a.length;bn_i++)
		{	bn_verschluss_a[bn_i].onclick = new Function ("return close_bn_box(this,'" + s + "');");
		}
		var bn_verschluss_span = document.getElementById(s).getElementsByTagName('span')[0];
		bn_verschluss_span.onclick = new Function ("return open_bn_box(this,'" + s + "');");
	}
}

/**
 *
 * @access public
 * @return void
 **/
function open_bn_box(s,id)
{	var make=document.getElementById(id);
	if(make)
	{	close_bn_box(null,'colors');
		close_bn_box(null,'verschluss');
		close_bn_box(null,'button');

		//	document.getElementById(id).getElementsByTagName('span')[0].style.display='none';
		document.getElementById(id).getElementsByTagName('ul')[0].style.display='block';
	}
	return false;
}

function close_bn_box(s,id)
{	var make=document.getElementById(id);
	if(make)
	{	if(s)
		{	//document.getElementById(id).getElementsByTagName('span')[0].innerHTML=s.innerHTML;
			//	s.blur();
			get_calculator(s,id);
		}
		document.getElementById(id).getElementsByTagName('span')[0].style.display='block';
		document.getElementById(id).getElementsByTagName('ul')[0].style.display='none';
	}
	else
	{	alert("ich hatte keine " + id);
	}
	return false;
}




/* diese beiden funktionen sind dafür da, die gefundenen User in realtime
 * im selectfeld anzuzeigen
*/
function get_calculator(s,id)
{	var make= "calculate=1";
	if(id=='button')
	{	make += "&search_for_button=" + s.id.replace(/link_button\_/,'');
		bn_get_content("/calculator.php",make,"post",new Function ("calculate_now("+http_counter+")"));
	}
	else
	{	document.getElementById(id).getElementsByTagName('span')[0].innerHTML=s.childNodes[0].nodeValue;
		if(id=='colors')
			document.getElementById(id).getElementsByTagName('span')[0].id="span_color_" + s.id.replace(/link_color_/,'');
		if(id=='verschluss')
			document.getElementById(id).getElementsByTagName('span')[0].id="span_ruecken_" + s.id.replace(/link_ruecken_/,'');
		calculate_price(s,id);
	}
}

function calculate_now(bn_counter)
{	output=null;
 if (bn_http[bn_counter].readyState == 4)
	{	output = bn_http[bn_counter].responseXML;
		var bn_button = document.getElementById('button');
		bn_button.getElementsByTagName('span')[0].innerHTML=output.getElementsByTagName('button_span_name')[0].childNodes[0].nodeValue;
		bn_button.getElementsByTagName('span')[0].id='span_button_' + output.getElementsByTagName('button_span_id')[0].childNodes[0].nodeValue;

/* die farben */
		var bn_color = document.getElementById('colors');
		bn_color.getElementsByTagName('span')[0].innerHTML=output.getElementsByTagName('color_span_name')[0].childNodes[0].nodeValue;
		bn_color.getElementsByTagName('span')[0].id='span_color_' + output.getElementsByTagName('color_span_id')[0].childNodes[0].nodeValue;


		var t = bn_color.getElementsByTagName('ul')[0].getElementsByTagName('li');
		var help=t.length;
		for(var bn_i=0; bn_i < help; bn_i++)
		{		bn_color.getElementsByTagName('ul')[0].removeChild(t[0]);
		}

		var t = output.getElementsByTagName('color_link_name')[0].getElementsByTagName('a');
		var help=t.length;
		for(var bn_i=0; bn_i < help ;bn_i++)
		{
			var f=t[bn_i].cloneNode(true);
			var li=document.createElement("li");
			var a= document.createElement("a");
			a.innerHTML=f.childNodes[0].nodeValue;
			a.id=f.getAttribute('id');
			li.appendChild(a);
			var l=document.getElementById('colors').getElementsByTagName('ul')[0];
			l.appendChild(li);
		}

/* der rücken*/
		var bn_ruecken = document.getElementById('verschluss');
		bn_ruecken.getElementsByTagName('span')[0].innerHTML=output.getElementsByTagName('ruecken_span_name')[0].childNodes[0].nodeValue;
		bn_ruecken.getElementsByTagName('span')[0].id='span_ruecken_' + output.getElementsByTagName('ruecken_span_id')[0].childNodes[0].nodeValue;

		var t = bn_ruecken.getElementsByTagName('ul')[0].getElementsByTagName('li');
		var help=t.length;
		for(var bn_i=0; bn_i < help; bn_i++)
		{		bn_ruecken.getElementsByTagName('ul')[0].removeChild(t[0]);
		}

		var t = output.getElementsByTagName('ruecken_link_name')[0].getElementsByTagName('a');
		var help=t.length;
		for(var bn_i=0; bn_i < help ;bn_i++)
		{
			var f=t[bn_i].cloneNode(true);
			var li=document.createElement("li");
			var a= document.createElement("a");
			a.innerHTML=f.childNodes[0].nodeValue;
			a.id=f.getAttribute('id');
			li.appendChild(a);
			var l=document.getElementById('verschluss').getElementsByTagName('ul')[0];
			l.appendChild(li);
		}

/* hier erstellen wir die nötige javascript anwendung */
/*		var src = document.createElement('script');
		src.type='text/javascript';
		src.src="/calculator.php?make_alert=1&product="+ document.getElementById('button').getElementsByTagName('span')[0].id.replace(/span_button\_/,'');
		document.getElementById('bn_box').appendChild(src);
*/

/* die felder müssen neu initialisiert werden */
		make_open_close('verschluss');
		make_open_close('button');
		make_open_close('colors');
		calculate_price(null,null);
	}
}


var output=null;
var bn_http = new Array();
var http_counter=0;
var bn_object=new Array();

/*
 * global benötigte variablen
 *****************************
 * var output
 * var bn_http als array
 * var http_counter als zaehler
 *
 *
 * die Übergabe hier ist wie folgt:
 **********************************
 * url					= url die angesprochen werden soll
 * param				= übergabe parameter bei einer post anweisung
 * request_type = ob der request per get oder post erfolgen soll
 * func					=	eine mit new Function übergebene funktion
 *
 *
 * der Aufruf erfolgt dann zum Beispiel über:
 ********************************************
 * get_bn_content("./test/start.html","modul=test&want=" +
 *							encodeURIComponent("lösungsbücher"),"post",new Function ("bn_show_me("+http_counter+")"));
*/


function bn_get_content(url,param,request_type,func)
{	bn_http[http_counter]=null;
	if(!param) param=null;
	if (window.XMLHttpRequest)
	{  bn_http[http_counter] =  new XMLHttpRequest();
	}
	else 	if (window.ActiveXObject)
				{  bn_http[http_counter] = new ActiveXObject("Microsoft.XMLHTTP");
				}
				else alert("Es ist keine Ajax Möglichkeit vorhanden");

	if (bn_http[http_counter] != null)
	{	if(!request_type) 	request_type="GET";
		bn_http[http_counter].open(request_type, url, true);

		if(request_type!="GET")
		{	bn_http[http_counter].setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=iso-8859-15 ');
		}
		bn_http[http_counter].onreadystatechange = func;
	  bn_http[http_counter++].send(param);
	}
}



