var catalog; // xml obj holding top level categories
var _income_switch = "catalog"; // switch for handling xml results in bInit();
//================================
function bInit() // is called when xml rsult comes in
{
	switch(_income_switch){
	//XMLresult is the AJAX return object
	case "catalog":
	catalog = XMLresult.getElementsByTagName("mama"); 
	showCatTree(); // show category navigation
	baBasket();
	product_selection = XMLresult.getElementsByTagName("produkt");
	break;
	case "search": 
	excSearch();
	break;
	case "detail":
	drawDetailView();
	break;
	case "basket":
	drawBasket();
	break;
	//service navi:
	case "serviceBasket":
	_setID("baMessCenter","Ihr Merkzettel");
	_setID("baCenter",HTMresult);
	break;
	case "serviceImpressum":
	_setID("baMessCenter","Impressum");
	_setID("baCenter",HTMresult);
	break;
	case "serviceContact":
	_setID("baMessCenter","Kontakt");
	_setID("baCenter",HTMresult);
	break;
	case "serviceAGB":
	_setID("baMessCenter","AGBs");
	_setID("baCenter",HTMresult);
	break;
	case "snMieten":
	_setID("baMessCenter","Ausleihen");
	_setID("baCenter",HTMresult);
	break;
	case "snVermieten":
	_setID("baMessCenter","Verleihen");
	_setID("baCenter",HTMresult);
	break;
	case "postamt":
	_setID("baCenter",HTMresult);
	break;
	}
//loader:
fdsLoadBar(false);
}

//=================================
//rev.
//trying to fix a IE7 Bug.
var fundus_cats = {};

function showCatTree()
{
var s = ""; // init output string
var verweis; //category link
var kind_verweis;//subgroup category link
	for(var i=0;i<catalog.length;i++){ // walk through all top level categories
	var mamaid = catalog[i].getElementsByTagName("mamaid")[0].firstChild.data; //top level cat id
	/* the top level categoriy label resides in a CDATA container
	// to fit firefox, we evaluate the lastChild */
	var mamalabel = catalog[i].getElementsByTagName("mamalabel")[0].lastChild.data;
	// output the top level category button
	// catalogSelect() will execute the click action
	 verweis = "<a class=\"mamaLink\" href=\"Javascript:catalogSelect('"+i+"')\">"+mamalabel+"</a>";
	s+= "<div class=\"baLeftMama\" >"+verweis+"</div>";
	// and the container for 2nd level categories is hidden by default:
	s+="<div id=\"kind"+i+"\" class=\"baLeftHidden\" style=\"display:none\">";
	/* lets go to 2nd level categories: */
	var kinder;
		if(kinder = catalog[i].getElementsByTagName("kind")){ // has 2nd level categories ?
		//ie/ bug fix:
		var cat_s = "";
		for(var z=0;z<kinder.length;z++){ // walk through 2nd level categories
		
		// category id:
		var kindid = kinder[z].getElementsByTagName("kindlabel")[0].firstChild.data;
		// the label again resides in a CDATA Container
		var kindlabel = kinder[z].getElementsByTagName("kindlabel")[0].lastChild.data;
		kind_verweis = "<a class=\"kindLink\" href=\"Javascript:childSelect("+i+","+z+")\">"+kindlabel+"</a>";
		// output 2nd level category button:
		//s+="<div class=\"baLeftKind\" >"+kind_verweis+"</div>";
		cat_s+= "<div class=\"baLeftKind\" >"+kind_verweis+"</div>\n";;
		} // end for kinder
		} // end if kinder
	s+="</div>"; // close hidden div
	fundus_cats[i] = cat_s;
	}
_setID("baLeft",s); // generate output. setID(id,string) is declared in the bStandard framework
// she might come to find a particular sku with $_GET[findsku]]:
	if(false!=findsku){
	//var product = productFromSKU(findsku);
	var prod_index = indexFromSKU(findsku);
		if(null==prod_index)return;
		//var prod_headline = product.getElementsByTagName("headline")[0].lastChild.data;
		//detailFromSKU(findsku,prod_headline);
		product_selection = XMLresult.getElementsByTagName("produkt");
		baDetailView(prod_index);
		//put sucker in basket:
		baBasket("in",findsku);
	}
}
//===========================
var product_selection; // object holdng current product selection
function catalogSelect(id) // execute top level category click action
{
var show = showKinder(id); // show child categories
	if(true==show){
	var produkte;
		if(produkte = catalog[id].getElementsByTagName("produkt")){
		product_selection = produkte;
		var mamalabel = catalog[id].getElementsByTagName("mamalabel")[0].lastChild.data;
		//manageProducts(mamalabel);
		}
	} // end if show
}
/*=================================
*/
function childSelect(id,index)
{
var kind = catalog[id].getElementsByTagName("kind")[index];
product_selection = kind.getElementsByTagName("produkt");
var kindlabel = kind.getElementsByTagName("kindlabel")[0].lastChild.data;
manageProducts(kindlabel);
}
/*=================================
*/
var current_cat_label = "&nbsp;"; // category label storage
function manageProducts(label)
{
// reset pager:
prod_index_start = 0;
baPager("start");
current_cat_label = label;
_setID("baMessCenter",label);
//drawRightProducts();
}
/*=================================
Center Product paging:
*/
var show_center_products = 4; // number of roducts shown in center div
var prod_index_start = 0;
/*=================================
*/
function baPager(destination)
{
	switch(destination){
		case "next":
		prod_index_start = prod_index_start+(show_center_products);
		break;
		case "back":
		prod_index_start = prod_index_start-(show_center_products);
		break;
		case "restore": // comes from detail view
		_setID("baMessCenter",current_cat_label);
		break;
		default: prod_index_start = 0;
	}// end switch;
drawCenterProdTable();
drawCenterProducts(prod_index_start);
drawPager();
}
/*=================================
*/
function drawPager() // generate the pager navi output
{
var index = prod_index_start ; // current start index
var show = show_center_products; // number of items to show
var total = product_selection.length; // total of items in selection
var s ="<table width=\"100%\" border=\"0\"><tr>";
s+="<td class=\"baPager\"  align=\"right\" width=\"45%\">";
	if((index>=show)){ // draw back
	s+="<a href=\"javascript:baPager('back')\">Zur&uuml;ck</a>";
	}else s+="&nbsp;";
s+="</td>";
s+="<td class=\"baPager\" width=\"10%\" align=\"center\"><strong>"+total+"</strong></td>";
s+="<td class=\"baPager\" width=\"45%\" align=\"left\">";
	if((index+show)<total){ // draw next
	s+=" <a href=\"javascript:baPager('next')\">Weiter</a>";
	}else s+="&nbsp;";
s+="</td></tr></table>";
_setID("baPager",s);
}
/*=================================
*/
function drawCenterProdTable()
{
var s = "<table width=\"580px\" border=\"0\" align=\"center\" >";
var z =0;
	for(var i =1;i<=show_center_products;i++){
		if(0==z){
		s+="<tr>";
		} // end if z=0
	s+="<td id=\"p"+i+"\" class=\"baCenterTd\" align=\"center\" valign=\"middle\"";
	s+=">&nbsp;</td>";
	z++;
		if(2==z){
		s+="</tr>";
		z=0;
		}// end if z=2
	} // end for
s+="<tr><td id=\"baPager\" colspan=\"2\" class=\"baCenterPager\">&nbsp;</td></tr>"; //pager
s+="<table>";
_setID("baCenter",s);

}
//========================================================
function drawCenterProducts(b_start)
{
var s;
var z =1;
var b_end = b_start+show_center_products;
var headline, sku,td;
	for(var i=b_start;i<b_end;i++){
	td = document.getElementById("p"+z);
		if(i<product_selection.length){
		sku= product_selection[i].getElementsByTagName("sku")[0].firstChild.data;
		 headline = product_selection[i].getElementsByTagName("headline")[0].lastChild.data;
		s="<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">";
		s+="<tr>";
		// trim
		headline = headline.replace(/^\s*(S)\s*$/, '$1'); // trim
		s += "<td class=\"baCenterProduct\" onClick=\"baDetailView("+i+")\">"+headline+"</td>";
		s+="</tr>";
		//image:
		s+="<tr><td align=\"center\" valign=\"middle\"  class=\"baCenterProdImg\" onClick=\"baDetailView("+i+")\">";
		s+= drawCatImg(i);
		s+="</td></tr></table>";
		}else{
		td.className = "baCenterHidden";
		s = "&nbsp;";
		}
	_setID("p"+z,s);
	z++; 
	}
}
/*=================================
*/
function drawCatImg(index)
{ 
var catImage = product_selection[index].getElementsByTagName("catImage")[0].lastChild.data;
return catImage;
}
//============================
function showKinder(id) // trigger show/hide for 2nd level categories
{
var box =  document.getElementById("kind"+id);
	if("block"==box.style.display){
	box.style.display = "none";
	return false;
	}else{
	box.style.display = "block";
	//alert(fundus_cats[id]);
	box.innerHTML = fundus_cats[id];
	return true;
	}
}
// SEARCH *********************************************
/*=================================
*/
function baSearch()
{
var s = document.getElementById("baSearchBox").value;
	if(2>s.length || "Suchbegriff..."==s){
	alert("Bitte geben Sie einen Suchbegriff ein.");
	return false;
	}
_income_switch = "search";
var url = "xml/search.php?search="+s;
fdsLoadBar(true);
getXML(url,"xml");
}
/*=================================
*/
function excSearch()
{
product_selection = XMLresult.getElementsByTagName("produkt");
var search_string = XMLresult.getElementsByTagName("searchString")[0].firstChild.data;
manageProducts(search_string);
}
//DETAIL VIEW. **************************************
/*=================================
*/
var current_detail_index;
var current_detail_sku = false;
var current_detail_headline = false;
function baDetailView(index)
{
var sku= product_selection[index].getElementsByTagName("sku")[0].firstChild.data;
var headline= product_selection[index].getElementsByTagName("headline")[0].lastChild.data;
current_detail_index = index;
current_detail_sku = sku;
current_detail_headline = headline;
//_setID("baMessCenter",headline);
_income_switch = "detail";
var url = "include/detail.php?sku="+sku;
//loader:
fdsLoadBar(true);
getXML(url,"htm");
}
/*=================================
*/
function detailFromSKU(sku,headline)
{
current_detail_sku = sku;
current_detail_headline = headline;
	//_setID("baMessCenter",headline);
_income_switch = "detail";
var url = "include/detail.php?sku="+sku;
getXML(url,"htm");
}
/*=================================
*/
function productFromSKU(sku)
{
var products = XMLresult.getElementsByTagName("produkt"); 
// walk through product selection:
	for(var i=0;i<products.length;i++){
	//search for sku:
	var row_sku = products[i].getElementsByTagName("sku")[0].firstChild.data;
		if(sku==row_sku){
		// if found return the product object
		return products[i];
		}
	}
// if nothing found return false
return null;
}
/*=================================
*/
function indexFromSKU(sku)
{
var products = XMLresult.getElementsByTagName("produkt"); 
// walk through product selection:
	for(var i=0;i<products.length;i++){
	//search for sku:
	var row_sku = products[i].getElementsByTagName("sku")[0].firstChild.data;
		if(sku==row_sku){
		// if found return the product object
		return i;
		}
	}
// if nothing found return false
return null;
}
/*=================================
*/
function detailPager(direction)
{
	if(direction=="back"){
	baDetailView(current_detail_index-1);
	}else{
	baDetailView(current_detail_index+1);
	}
}
//=================================
function drawDetailPager() // navigate through detail pages
{
var obj ;
	if(obj=document.getElementById("baDetailPager")){
	var index = current_detail_index;
	var total = product_selection.length; // total of items in selection
	var s ="<table width=\"100%\" border=\"0\"><tr>";
	s+="<td class=\"baPager\"  align=\"right\" width=\"45%\">";
		if((index>0)){ // draw back
		s+="<a href=\"javascript:detailPager('back')\">Zur&uuml;ck</a>";
		}else s+="&nbsp;";
	s+="</td>";
	s+="<td class=\"baPager\" width=\"10%\" align=\"center\"><strong>"+total+"</strong></td>";
	s+="<td class=\"baPager\" width=\"45%\" align=\"left\">";
		if(index<(total-1)){ // draw next
		s+=" <a href=\"javascript:detailPager('next')\">Weiter</a>";
		}else s+="&nbsp;";
	s+="</td></tr></table>";
	_setID("baDetailPager",s);
	}else{ // not loaded yet
	window.setTimeout("drawDetailPager",1000);
	}
}
function drawDetailView()
{
//reset diashow:
dia_mode = "thumb";
dia_img = false;
//========================
_setID("baCenter",HTMresult);
drawDetailPager();
}

// BASKET ****************************************************
var basket_refresh = false;//switch for reloading basket view
/*=================================
*/
function baBasket(action,sku)
{
_income_switch = "basket";
var url = "include/basket.php?action="+action+"&sku="+sku+"&uvid="+uvid;
fdsLoadBar(true);
getXML(url,"htm");
}
/*=================================
*/
function drawBasket()
{
	if(false!=current_detail_sku)
	detailFromSKU(current_detail_sku,current_detail_headline);
_setID("baRight",HTMresult);
	if(true==basket_refresh){//set in deleteFromBasket()
	baServiceNavi("basketContact");
	}
}
//========================================
function deleteFromBasket(sku)
{
var check = confirm("Vom Merkzettel entfernen ?");
	if(true==check){
	basket_refresh = true;//set refresh switch;
	baBasket("out",sku);
	}else return;
}
//SERVICE NAVI ***********************************************************/
/*=================================
*/
function baServiceNavi(mode)
{
var url;
fdsLoadBar(true);
	switch(mode){
	case "basketContact":
	basket_refresh = false;//reset refresh switch
	_income_switch = "serviceBasket";
	url = "include/snBasket.php?uvid="+uvid;
	getXML(url,"htm");
	break;
	case "serviceImpressum":
	_income_switch = mode;
	url = "include/snImpressum.php";
	getXML(url,"htm");
	break;
	case "serviceContact":
	_income_switch = mode;
	url = "include/snContact.php";
	getXML(url,"htm");
	break;
	case "serviceAGB":
	_income_switch = mode;
	url = "include/snAGB.php";
	getXML(url,"htm");
	break;
	case "snMieten":
	_income_switch = mode;
	url = "include/snMieten.php";
	getXML(url,"htm");
	break;
	case "snVermieten":
	_income_switch = mode;
	url = "include/snVermieten.php";
	getXML(url,"htm");
	break;
	}//end switch
}
/*=================================
*/
function openPrintPop()
{

window.open("printpop.php?uvid="+uvid,"","width=650, height=400,scrollbars=yes");
}
function openFormPop(mode)
{
var top,left,height;
	switch (mode){
	case "contact":
	left = _ba_mouse[0]-120;
	top = _ba_mouse[1];
	height = 310;
	break;
	case "sendcart":
	 left = _ba_mouse[0]-300;
	top = _ba_mouse[1];
	height = 310;
	break;
	}
window.open("formpop.php?formmode="+mode,"","width=450, height="+height+",resizable=yes,top="+top+",left="+left);
}
/*=================================
*/
function baSubContForm()
{
var f = document.contForm;
var besucher = f.besucher.value;
var email = f.email.value;
var phone = f.phone.value;
var nachricht = f.nachricht.value;
var callme = 0;
//check input:
	if(2>=besucher.length){
	alert("Bitte geben Sie Ihren Namen an.");
	return false;
	}else if(""==email){
	alert("Bitte geben Sie Ihre Emailadresse an.");
	return false;
	}else if(!email.match(/^.{1,}@.{1,}\..{1,}$/)){
	alert("Ihre Emailadresse kann nicht stimmen.");
	return false;
	}else if(false==f.agbcheck.checked){
	alert("Bitte akzeptieren Sie die AGBs");
	return false;
	}else if(true==f.callme.checked){
		if(""==phone){
		alert("Wenn wir Sie anrufen sollen, brauchen wir Ihre Telefonnummer.");
		return false;
		}
		if(!phone.match(/[0-9 -\/]{6,}$/)){
		alert("Ihre Telefonnummer sollte nur aus Zahlen bestehen.");
		return false;
		}else{
		callme =1;
		}
	}else return true;
}
