// the xmlHTTPRequest object
var xmlHttpReq        = false;

// Obj des Faksimile-Popup
var objFacsimilePopup = false;



function produktOnLoad() {
	switchDaimondSupplie(false);
	switchDaimondJaNein(false);
}


/*
	Ajax Stuff fuer die Produkt-Suche
*/
function searchSelectChanged ( objSel) {
	
	// IDs der Produkt-Eigenschaften-Selects
	selectId = new Array 
						(
							'ogr',
							'ugr',
							'mat',
							'att',
							'ctvon',
							'ctbis',
							'preisvon',
							'preisbis'
						);
	
	// URL bauen
	url = 'content.php?seite=shop/suche.php&navigation=0&deliverPart=1';
	
	for ( i = 0; i < selectId.length; i++) {
		
		name = selectId[i];
		if ( !(obj = document.getElementById(name))) {
			
			// ctvon und ctbis werden nur angezeigt wenn auch steine gefunden wurden
			continue;
			
			// alert ( 'getElementById = ' + name + ' failed');
			// return;
		}
		
		idx = obj.value;
		
		url += '&' + name + '=' + idx;
	}
	
	if ( !sendXmlHttpRequest ( url, writeSearchSelectToDoc)) {

		alert ( 'sendXmlHttpRequest writeProdukteSelectToDoc failed');
	} else {
		
		setCursor ( 'wait');
	}
							
	
}

/*
	Setzt alle Selects der Produkt-Suche auf keine Auswahl
*/
function resetSearchForm ( objForm) {
	
	for ( i = 0; i < objForm.length; i++) {
		
		if ( objForm[i].type != 'select-one') {
			continue;
		}
		
		objForm[i].selectedIndex = 0;
	}
	
	searchSelectChanged ( 0);
}



/**
	callback Ajax Produkt-Detail-darstellung
*/
function writeSearchSelectToDoc () {
	
	if (xmlHttpReq.readyState == 4) {

		if (xmlHttpReq.status == 200) {
			
			setCursor ('auto');
			if ( !xmlHttpReq.responseText) {

				alert ( 'writeSearchSelectToDoc failed');
				return;
			}

			objDiv = document.getElementById ( 'searchSelect');
			objDiv.innerHTML = xmlHttpReq.responseText;
		} // END xmlReq.status == 200

	} // END xmlHttpReq.readyState == 4
}






/*
	Wenn die Gravurart auf faksimile (ID = 16) gestellt wird anzeige 
	des Pop-Up-Windows Downloadvorlage Facsimile
*/
function selectGravurArtChanged ( objSel) {
	
	if ( objSel.value != 16) {
		
		if ( objFacsimilePopup) {
			// Wenn das Facsimile-Fenster noch offen ist schliessen	
			objFacsimilePopup.close ();
			objFacsimilePopup = false;
		}
		
	} else {
	
		objFacsimilePopup = window.open ( 'content.php?navigation=0&seite=shop/facsimile.php', "niessingShopFacsimile", "width=600,height=400,left=10,top=0,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes");	
		objFacsimilePopup.focus ();
	}
	
	loadProdukteSelect ();
}



/*
	legt ein produkt in den Warenkorb
	prueft ob alle Angaben vorhanden sind
*/

function addToBasket ( userSelectedRnr) {

	rnr = userSelectedRnr;
	parameter = ''; //'toBasket[' + rnr + ']';
	
	if ( !rnr) {
		alert ( txt_alert_auswahl_unvollstaendig);
		return;
	}
	
	
	
	// alle Eingaben besorgen. Feldnamen beginnen mit produkte_
	// Selects
	arrField = document.getElementsByTagName('select');
	for ( i = 0; i < arrField.length; i++) {

		if ( arrField[i].name.substr(0,9) != 'produkte_') {
			continue;
		}

		fieldName = '&toBasket[' + rnr + '][' + arrField[i].name.substr(9) + ']';
		parameter += fieldName + "=" + arrField[i].value;
	}

	// input Text
	arrField = document.getElementsByTagName('input');
	for ( i = 0; i < arrField.length; i++) {

		if ( arrField[i].name.substr(0,9) != 'produkte_') {
			continue;
		}
		
		if ( arrField[i].type == 'checkbox') {
			if ( arrField[i].checked) {
				value = 1
			} else {
				value = 0;
			}
		} else {
			value = arrField[i].value;
		}
		
		fieldName = '&toBasket[' + rnr + '][' + arrField[i].name.substr(9) + ']';
		parameter += fieldName + "=" + value;
	}



	
	steinAnlieferung = false;
	if ( (objCheckAnlieferung = document.getElementById('produkte_anlieferungjanein'))) {
		// ist die Steinauswahl aufgehoben weil der User Steinanlieferung gewaehlt hat
		if ( !objCheckAnlieferung.checked) {
			steinAnlieferung = true;
		} 
	} 	
	
	
	if ( (objCheckAnlieferung = document.getElementById('produkte_steinjanein'))) {
		// ist die Steinauswahl aufgehoben weil der User Steinanlieferung gewaehlt hat
		if ( objCheckAnlieferung.checked) {
			steinAnlieferung = true;
		}
		
	} 
	
	
	// pruefen ob es eine Steinauswahl gibt
	if ( (objSel = document.getElementById('produkte_stein')) && (steinAnlieferung == true)) {
		// ja
		if (objSel.value == 0) {

			alert ( txt_alert_auswahl_unvollstaendig);
			return;
		}
	}
	
	
	// pruefen ob eine Anzahl gewaehlt wurde
	if ( (objSel = document.getElementById('produkte_stueck'))) {
		// ja
		if ( objSel.value == 0) {

			alert ( txt_alert_auswahl_unvollstaendig);
			return;
		}
	}

	
	
	// sind FixfolgeArtikel und FixFolgeArtikelAnzahl angegeben
	if ( (objFix = document.getElementById('produkte_fixfolgeartikelrnr'))) {
		fixFolgeNr = objFix.value;
	} else {
		fixFolgeNr = false;
	}
	
	if ( (objFix = document.getElementById('produkte_folgeartikelstck'))) {
		fixFolgeAnz = objFix.value;
	} else {
		fixFolgeAnz = false;
	}
	
	if ( (fixFolgeNr != 0) && (fixFolgeAnz != 0)) {
		// ja, also PopUp mit der FixFolgeBestellung
		popUpPicture ( 'content.php?seite=shop/fixFolgeOrder.php&navigation=0&fixfolgeartikelrnr=' + fixFolgeNr + '&folgeartikelstck=' + fixFolgeAnz, 400, 250);
	}
	
	url = 'content.php?seite=shop/warenkorb.php' + parameter;
    document.location.replace ( url );
	
	//sendXmlHttpRequest(url, callBackAddToBasket);
}



function callBackAddToBasket () {

	if (xmlHttpReq.readyState == 4) {

		if (xmlHttpReq.status == 200) {

			if ( !xmlHttpReq.responseText) {

				// alert ( xmlHttpReq.responseText);
				alert ( 'writeSubNavToDoc failed');
				return;
			}


			var objDiv = document.getElementById ( 'warenkorb_klein');
			objDiv.innerHTML = xmlHttpReq.responseText;

 			eval ( xmlHttpReq.responseText );

				show_wkhinweis( shop_ihrem_warenkorb_wurde_hinzugefuegt );
		} // END xmlReq.status == 200

	} // END xmlHttpReq.readyState == 4

}




/*
	on change handler produkte eigenschaften select
	ruft den xmlHttpReq
*/
function loadProdukteSelect ( ) {

	// url des Req. bauen
	var url = 'content.php?seite=' + document.getElementById('psaBaseUrl').value;

	// liefere nur das Formular, nicht die gesamte Seite
	url += '&deliverPartOnly=1&navigation=0';

	// die (gruppen)rnr
	url += '&rnr=' + document.getElementById('psaProdukteRnr').value;

	// die untergruppe
	url += '&ugr=' + document.getElementById('psaUgr').value;


	if ( (objSel = document.getElementsByTagName ( 'select'))) {

		for ( i = 0; i < objSel.length; i++) {

			if (objSel[i].name.substr ( 0, 9) == 'produkte_') {

				url += '&' + objSel[i].name + '=' + objSel[i].value;
			}
		}
	}

	if ( (objSel = document.getElementsByTagName ( 'input'))) {

		for ( i = 0; i < objSel.length; i++) {

			if (objSel[i].name.substr ( 0, 9) == 'produkte_') {
			
				if ( objSel[i].type == 'checkbox') {
					if ( objSel[i].checked) {
						url += '&' + objSel[i].name + '=' + objSel[i].value;
					} else {
						url += '&' + objSel[i].name + '=0';
					}
				} else {
					url += '&' + objSel[i].name + '=' + objSel[i].value;
				}
			}
		}
	}

			
	if ( !sendXmlHttpRequest ( url, writeProdukteSelectToDoc)) {

		alert ( 'sendXmlHttpRequest writeProdukteSelectToDoc failed');
	} else {
		
		setCursor ( 'wait');
	}

}



/*
	schreibt die Produkt-Eigenschaften-Selects in die Seite (Produkt-Detail-Darstellung
	callback fuer den xmlHttpReq.
	div id = subNavigation
*/
function writeProdukteSelectToDoc () {

	if (xmlHttpReq.readyState == 4) {

		if (xmlHttpReq.status == 200) {
			
			setCursor ('auto');
			if ( !xmlHttpReq.responseText) {

				// alert ( xmlHttpReq.responseText);
				alert ( 'writeProdukteSelectToDoc failed');
				return;
			}

			var objDiv = document.getElementById ( 'produkteEigenschaftenSelect');
			objDiv.innerHTML = xmlHttpReq.responseText;

		} // END xmlReq.status == 200

	} // END xmlHttpReq.readyState == 4

}



/*
	Schaltet die Anzeige des Links zur Steinanlieferung an und aus
*/
function switchDaimondSupplie ( objCheckBox) {
	
	if (!objCheckBox) {
		if ( !(objCheckBox = document.getElementById('produkte_anlieferungjanein'))) {
			return;
		}
	} 
	
	if ( !(objPStein = document.getElementById('steinbesatz'))) {
		return;
	}
	
	objSpanLink = document.getElementById('linkSteinanlieferung');
	
	// wenn die Anlieferungs-Checkbox markiert dann den Steinselect ausblenden
	if ( objCheckBox.checked) {
		// wenn die Anlieferungs-Checkbox markiert dann den Steinselect ausblenden
		objPStein.style.visibility   = 'hidden';
		
		if ( objSpanLink) {
			objSpanLink.style.visibility = 'visible';
		}
	} else {
		objPStein.style.visibility   = 'visible';
		
		if ( objSpanLink) {
			objSpanLink.style.visibility = 'hidden';
		}
	}
	
	loadProdukteSelect ();
	
	return;
}


/*
	Steinbesatz on/off
*/
function switchDaimondJaNein ( objCheckBox) {
	
	if (!objCheckBox) {
		if ( !(objCheckBox = document.getElementById('produkte_steinjanein'))) {
			return;
		}
	} 
	
	if ( !(objPStein = document.getElementById('steinbesatz'))) {
		return;
	}
	
	
	// 
	if ( !objCheckBox.checked) {
		// wenn die Anlieferungs-Checkbox markiert dann den Steinselect ausblenden
		objPStein.style.visibility   = 'hidden';
	} else {
		objPStein.style.visibility   = 'visible';
	}
	
	loadProdukteSelect ();
	
	return;
}



/*
	Legt einen Fixfolgeartikel in den Warenkorb
	Aender dazu die URL seines Openers
*/
function addFixFolgeToBasket ( action){

	if ( action == 'false') {
		// es soll kein Fixfolgeartikel gekauft werden
		self.window.close ();
		return;
	}
	
	
	// url fuer den Warenkorb bauen
	url = 'content.php?seite=shop/warenkorb.php';
	
	if ( (objFix = document.getElementById('fixfolgeartikelrnr'))) {
		
		fixFolgeNr = objFix.value;
	} else {
		fixFolgeNr = false;
	}
	
	if ( (objFix = document.getElementById('folgeartikelstck'))) {
		
		fixFolgeAnz = objFix.value;
	} else {
		fixFolgeAnz = false;
	}
	
	url += '&toBasket[' + fixFolgeNr + '][stueck]=' + fixFolgeAnz;
	opener.location.href = url;
	
	self.window.close();
}




/*
	PopUp Information order Sample Ringweiten
*/
function popUpOrderSample(objCheck, lang){

	if (objCheck.checked == true) {
		popUpPicture ( 'content.php?navigation=0&seite=seiten/orderRingSample_' + lang + '.php', 550, 300);
	}
}





/*
	sends a XMLHttpRequest
*/
function sendXmlHttpRequest ( url, answerFunction) {

	// FIXME: Es duerfen keine zwei Req. gleichzeitig laufen
    xmlHttpReq = false;



	// Mozilla, Opera, Safari sowie Internet Explorer 7
	if ( typeof XMLHttpRequest != 'undefined') {

	    xmlHttpReq = new XMLHttpRequest();
	}

	if ( !xmlHttpReq) {

	    // Internet Explorer 6 und ?lter
	    try {

	        xmlHttpReq  = new ActiveXObject("Msxml2.XMLHTTP");
	    } catch(e) {

	        try {

	            xmlHttpReq  = new ActiveXObject("Microsoft.XMLHTTP");
	        } catch(e) {

	            xmlHttpReq  = false;
	        }
	    }
	}




	if (xmlHttpReq) {

		xmlHttpReq.open ( 'GET', url, true);
		xmlHttpReq.onreadystatechange = answerFunction;
		xmlHttpReq.send ( '');
		return true;
	}

	return false;
}



/*
	Setzt fuer den Body-Tag den Cursor
*/
function setCursor ( art) {

	// Get the Body
	var objBody;
	
	if ( !(objBody = document.getElementsByTagName ( 'body')[0])) {
		
		alert ( 'Kein Body kein Spass!');
		return;
	}
	
	objBody.style.cursor = art;
	
	return;
}
