//globale Variablen für AJAX-Funktion
var http_request = false;
var ajax_type = 1;
var destination_id = "";
var storevar = "";
var storevar2 = "";
var current_effect = Array();

var rest_day = 0;
var rest_hour = 0;
var rest_minute = 0;
var rest_second = 0;

// Ajax-Anfrage durchführen
function doAjax(a_type, target, parameters, values, dest_id) {
	destination_id = dest_id;
	ajax_type = a_type;
	http_request = false;
	if (window.XMLHttpRequest) {
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
		//	http_request.overrideMimeType('text/xml');
		}
	} 
	else if (window.ActiveXObject) {
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (e) {}
		}
	}
	if (!http_request) {
		alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen');
		return false;
	}
	url = target+"?";
	for (param_i = 0; param_i < parameters.length; param_i++) {
		if (param_i > 0) url += "&";
		url += parameters[param_i]+"="+values[param_i];
	}
	
	// Typ 1: Preisstaffeln bei Aktionen aktualisieren: ausgewählte Produkte-ID an URL anhängen
	if (ajax_type==1) {
		url += "&produkte_id=" + document.getElementById('produkt_'+values[0]).value;
		storevar = document.getElementById('produkt_'+values[0]).value;
		storevar2 = values[0];
	}
	// Typ 3: Restzeitanzeige aktualisieren
	if (ajax_type==3) {
		storevar = values[0];	
	}
	if (ajax_type==4) {
		url += '&menge=' + document.getElementById('menge_produkt_' + values[2]).value;
		storevar = values[2];	
	}
	

	http_request.onreadystatechange = processAjax;
	http_request.open('GET', url, true);
	http_request.send(null);
}

// Ajax-Funktion aufrufen
function processAjax() {
	if (http_request.readyState == 4) {
		var answer = http_request.responseText;
		answer = answer.replace(/\\n/, "\n");
		if (ajax_type!="3" && ajax_type!="4") {
			document.getElementById(destination_id).innerHTML = answer;
		}
		// Typ 1: Preisstaffeln bei Aktionen aktualisieren
		if (ajax_type=="1") {
				window.setTimeout("doAjax(2, '../_ajax/aktionen_produktbild.php', Array('produkte_id'), Array('"+ storevar +"'), 'produkt_bild_"+storevar2+"');", 150);
		}
		// Typ 3: Restzeitanzeige aktualisieren
		if (ajax_type=="3") {
			timearray = answer.split("|");
			rest_day = timearray[0];
			rest_hour = timearray[1];
			rest_minute = timearray[2];
			rest_second = timearray[3];
			if (check_number(rest_second)) window.setTimeout('update_timer('+storevar+', 1)', 1000);
			else window.setTimeout('doAjax(3, \'_ajax/resttime_string.php\', Array(\'aktionen_id\'), Array(\''+storevar+'\'), \'\')', 500);
		}
		if (ajax_type=="4") {
			fillarray = answer.split("|");
			document.getElementById('tipp_box_inner_'+storevar).innerHTML = fillarray[1];
			if (fillarray[1].length < 11) document.getElementById('tipp_icon_'+storevar).style.display = 'none';
			else document.getElementById('tipp_icon_'+storevar).style.display = 'block';
			document.getElementById('tipp_blase_'+storevar).innerHTML = fillarray[1].substr(fillarray[1].indexOf('TIPP:</div>')+11, fillarray[1].length);
			document.getElementById('preis_box_'+storevar).innerHTML = fillarray[0];
		}
	}
}


function slide_detail_block(cur_id) {
	if (document.getElementById('product_detail_'+cur_id).style.display=='none') {
		new Effect.BlindDown('product_detail_'+cur_id);
	}
	else {
		new Effect.BlindUp('product_detail_'+cur_id);
	}
}

function fade_blase(cur_id, state) {
	if (typeof(document.getElementById('tipp_icon_' + cur_id))!='undefined' && document.getElementById('tipp_icon_' + cur_id)!=null) {
		if (document.getElementById('tipp_icon_' + cur_id).style.display!='none') {
			while (current_effect.length < cur_id) {
				current_effect.push(null);
			}
			if (state) {
				document.getElementById('tipp_blase_'+cur_id).style.display='block';
				if (current_effect[cur_id]!=null) current_effect[cur_id].cancel();
				current_effect[cur_id] = new Effect.Fade('tipp_blase_'+cur_id, { duration: 0, to:1 });
			}
			else {
				current_effect[cur_id] = new Effect.Fade('tipp_blase_'+cur_id, { duration: 1, to:0 });
			}
		}
	}
}
	
//
function update_timer(aktionen_id, restore) {
	if (restore==0) rest_second--;
	if (rest_second < 0) {
		rest_second=59;
		rest_minute--;
	}
	if (rest_minute < 0) {
		rest_minute=59;
		rest_hour--;
	}
	if (rest_hour < 0) {
		rest_hour=23;
		rest_day--;
	}
	if (rest_day < 0) {
		rest_rest_hour = 0;
		rest_minute = 0;
		rest_day = 0;
		rest_second = 0;
	}
	if (rest_day==1) document.getElementById('restTimeDays').innerHTML = "1 Tag";
	else document.getElementById('restTimeDays').innerHTML = rest_day + " Tage";
	if (rest_hour==1) document.getElementById('restTimeHours').innerHTML = "1 Stunde";
	else document.getElementById('restTimeHours').innerHTML = rest_hour + " Stunden";
	if (rest_minute==1) document.getElementById('restTimeMinutes').innerHTML = "1 Minute";
	else document.getElementById('restTimeMinutes').innerHTML = rest_minute + " Minuten";
	if (rest_second==1) document.getElementById('restTimeSeconds').innerHTML = "1 Sekunde";
	else document.getElementById('restTimeSeconds').innerHTML = rest_second + " Sekunden";
//	if (!check_number(rest_second) || rest_second > 59 || rest_second <= 0) window.setTimeout('doAjax(3, \'_ajax/resttime_string.php\', Array(\'aktionen_id\'), Array(\'' + aktionen_id + '\'), \'\')', 1);
	//else
	window.setTimeout('update_timer(' + aktionen_id + ', 0)', 1000);

}

// Holt nur Zahlenbestandteile aus einem String
function get_num(number) {
	valid_chars = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0");
	ret_string = "";
	for (ch_i = 0; ch_i < number.length; ch_i++) {
		tmp_is_number = false;
		for (ch_j = 0; ch_j < valid_chars.length; ch_j++) {
			if (number.substr(ch_i, 1)==valid_chars[ch_j]) tmp_is_number = true;
		}
		if (tmp_is_number) ret_string += number.substr(ch_i, 1);
	}
	return ret_string;
}

// Infobox nach einer Zeit zu grau faden
function fadeColor(elementid, backRed, backGreen, backBlue, frontRed, frontGreen, frontBlue) {
	backGoal = (backRed + backGreen + backBlue) / 3;
	frontGoal = (frontRed + frontGreen + frontBlue) / 3;
	document.getElementById(elementid).style.backgroundColor = 'rgb(' + backRed + ', ' + backGreen + ', ' + backBlue + ')';
	document.getElementById(elementid).style.color = 'rgb(' + frontRed + ', ' + frontGreen + ', ' + frontBlue + ')';
	document.getElementById(elementid).style.borderColor = 'rgb(' + frontRed + ', ' + frontGreen + ', ' + frontBlue + ')';
	functionString = 'performFade(\'' + elementid + '\', ' + backRed + ', ' + backGreen + ', ' + backBlue + ', ' + frontRed + ', ' + frontGreen + ', ' + frontBlue + ', ' + frontGoal + ', ' + backGoal + ',0 , 128)';
	window.setTimeout(functionString, 1000);	
}

// Funktion, die die Umfärbung für fadeColor ausführt
function performFade(elementid, backRed, backGreen, backBlue, frontRed, frontGreen, frontBlue, frontGoal, backGoal, currentTry, maxTries) {
	if ((backRed != backGoal || backGreen != backGoal || backBlue != backGoal || frontRed != frontGoal || frontGreen != frontGoal || frontBlue != frontGoal) && currentTry < maxTries) {
		if (backRed < backGoal) backRed++;
		else if (backRed > backGoal) backRed--;
		if (backGreen < backGoal) backGreen++;
		else if (backGreen > backGoal) backGreen--;
		if (backBlue < backGoal) backBlue++;
		else if (backBlue > backGoal) backBlue--;
		if (frontRed < frontGoal) frontRed++;
		else if (frontRed > frontGoal) frontRed--;
		if (frontGreen < frontGoal) frontGreen++;
		else if (frontGreen > frontGoal) frontGreen--;
		if (frontBlue < frontGoal) frontBlue++;
		else if (frontBlue > frontGoal) frontBlue--;
		document.getElementById(elementid).style.backgroundColor = 'rgb(' + backRed + ', ' + backGreen + ', ' + backBlue + ')';
		document.getElementById(elementid).style.color = 'rgb(' + frontRed + ', ' + frontGreen + ', ' + frontBlue + ')';
		document.getElementById(elementid).style.borderColor = 'rgb(' + frontRed + ', ' + frontGreen + ', ' + frontBlue + ')';
		currentTry++;
		functionString = 'performFade(\'' + elementid + '\', ' + backRed + ', ' + backGreen + ', ' + backBlue + ', ' + frontRed + ', ' + frontGreen + ', ' + frontBlue + ', ' + frontGoal + ', ' + backGoal + ', ' + currentTry + ', ' + maxTries + ')';
		window.setTimeout(functionString, 50);	 
	}
}

// Teilt dem Formular mit welcher Button geklickt wurde und führt ein submit() aus
function submitForm(formname, hiddenid, num) {
	document.getElementById(hiddenid).value = num;
	document.forms[formname].submit();
}

// Prüft ob eine gültige E-Mail-Adresse vorliegt
function check_email(email) {
	// Prüfe ob @ vorkommt, ob . vorkommt, ob TLD vorkommt
	if (email.indexOf("@") > 0 && email.indexOf(".") > 0 && email.substr(email.indexOf("."), email.length).length > 2) return true;
	else return false;
}

// Prüft ob ein Text keine Zahlen enthält
function check_text(text) {
	invalid_chars = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0");
	for (ch_i = 0; ch_i < text.length; ch_i++) {
		for (ch_j = 0; ch_j < invalid_chars.length; ch_j++) {
			if (text.substr(ch_i, 1)==invalid_chars[ch_j]) return false;
		}
	}
	return true;
}

// Prüft ob eine Zahl vorliegt
function check_number(number) {
	valid_chars = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0");
	for (ch_i = 0; ch_i < number.length; ch_i++) {
		tmp_is_number = false;
		for (ch_j = 0; ch_j < valid_chars.length; ch_j++) {
			if (number.substr(ch_i, 1)==valid_chars[ch_j]) tmp_is_number = true;
		}
		if (!tmp_is_number) return false;
	}
	return true;
}

function chkbeforesubmit()
{
  err2="0"
  // ###############################
  // ###############################

	pflichtfelder = 	Array	(
						  			Array("Att1", "Firma", "pflicht"),
									Array("Att3", "Anschrift", "pflicht"),
									Array("Att2", "Besteller/Name", "pflicht"),
									Array("PostalCode", "PLZ", "pflicht"),
									Array("Phone", "Telefon", "pflicht"),
									Array("City", "Ort", "pflicht"),
									Array("Email", "E-Mail", "pflicht"),
									Array("Email", "E-Mail", "email"),
									Array("City", "Ort", "text"),
									Array("PostalCode", "PLZ", "zahl")
								);
	
	if(document.bestellform.teilbed.checked == false) {
		alert("Bitte akzeptieren Sie die allgemeinen Geschaeftsbedingungen.");
		return false;
	} else {

		if(document.bestellform.WarenAnn.value =="") {
			alert("Bitte teilen Sie uns Ihre Waren-Annahmezeiten mit.");
			return false;
		} else {

			if(document.bestellform.HebeB[0].checked == false && document.bestellform.HebeB[1].checked == false) {
				alert("Bitte teilen Sie uns mit, ob eine Hebebuehne bei der Anlieferung erforderlich ist.");
				return false;
			} else {
				var checkText = "";
				for (chk_i = 0; chk_i < pflichtfelder.length; chk_i++) {
					if (pflichtfelder[chk_i][2]=="pflicht" && document.bestellform.elements[pflichtfelder[chk_i][0]].value=="") {
						checkText += "\n- " + pflichtfelder[chk_i][1] + " ist ein Pflichtfeld.";
					}
					else if (pflichtfelder[chk_i][2]=="email" && !check_email(document.bestellform.elements[pflichtfelder[chk_i][0]].value)) {
						checkText += "\n- " + pflichtfelder[chk_i][1] + " muss eine gültige E-Mail-Adresse sein.";
					}
					else if (pflichtfelder[chk_i][2]=="text" && !check_text(document.bestellform.elements[pflichtfelder[chk_i][0]].value)) {
						checkText += "\n- " + pflichtfelder[chk_i][1] + " darf keine Ziffern enthalten.";
					}
					else if (pflichtfelder[chk_i][2]=="zahl" && !check_number(document.bestellform.elements[pflichtfelder[chk_i][0]].value)) {
						checkText += "\n- " + pflichtfelder[chk_i][1] + " muss eine Zahl sein.";
					}
				}
				if(checkText!="") { 
					checkText = "Bitte füllen Sie alle Pflichtfelder aus:\n" + checkText + "\n\nVielen Dank!";
					alert(checkText);
					return false; 
				} 
				else { 
					return true; 
				}
			} // end if
		} // end if

	} // end if

} // end function


function strip_leading_zero(str) {
	if (str.substr(0,1)=="0") return str.substr(1,1);
	else return str;
}

function fillSelects(selectpre, sourceid) {
	source = document.getElementById(sourceid).value;
	document.getElementById(selectpre+'tag').value = strip_leading_zero(source.substr(0, 2));
	document.getElementById(selectpre+'monat').value = strip_leading_zero(source.substr(3, 2));
	document.getElementById(selectpre+'jahr').value = source.substr(6, 4);
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

