/* RICHTIGER AUFRUF: loadAjax('file.php',getPara1=value1&getPara2=value2','postPara1=value1&postPara2=value2', 'target', true, false); */
var queue = new Array();

function loadAjax(filename, getpara, postpara, target, preloading, navloading)
{
	var xmlHttp=false;
	
	if(typeof getpara=="undefined")
	{
		getpara="";
	}
	if(typeof postpara=="undefined")
	{
		postpara="";
	}
	if(typeof target=="undefined")
	{
		target="content";
	}
	if(typeof preloading=="undefined")
	{
		preloading=true;
	}
	if(typeof navloading=="undefined")
	{
		navloading=true;
	}
	try
	{
		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e)
	{
		try
		{
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(e)
		{
			xmlHttp=false;
		}
	}
	if (!xmlHttp && typeof XMLHttpRequest!='undefined')
	{
		xmlHttp = new XMLHttpRequest();
	}
	if(xmlHttp)
	{
		if(xmlHttp.readyState == 1 || xmlHttp.readyState == 2 || xmlHttp.readyState == 3)
		{
			queueLength = queue.length;
			queue[queueLength] = new Array();
			queue[queueLength][0] = query;
		}
		else
		{
			if(preloading==true) {
				if(target!="none") {
					document.getElementById(target).style.display='none';
				}
				document.getElementById('preloader').style.display='block';
			}
			
			// GET-Variablen
			if(getpara!="")
			{
				getpara = str_replace('[&]','[DEFAULT-ISO]',getpara);
				getpara = str_replace('&','[NON-DEFAULT-ISO]',getpara);
				getpara = str_replace('[DEFAULT-ISO]','&',getpara);
				getpara = str_replace('+','[PLUS-ISO]',getpara);
				filename=filename+".php?"+getpara;
			}
			else
				filename=filename+".php";
			
			// POST-Variablen
			if(postpara!="")
			{
				postpara = str_replace('[&]','[DEFAULT-ISO]',postpara);
				postpara = str_replace('&','[NON-DEFAULT-ISO]',postpara);
				postpara = str_replace('[DEFAULT-ISO]','&',postpara);
				postpara = str_replace('+','[PLUS-ISO]',postpara);
			}
			
			xmlHttp.open('POST', filename, true);
			xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8;");
			xmlHttp.send(postpara);
			xmlHttp.onreadystatechange=function() {
				if(xmlHttp.readyState==4) {
					code=xmlHttp.responseText;
					
					hpCode=removeJavaScriptCode(code); jsCode=getJavaScriptCode(code);
					
					if(target!="none")
					{
						document.getElementById(target).innerHTML=hpCode;
					}
					
					if(jsCode)
					{
						eval(jsCode); // JavaScript-Code ausführen
					}
					
					if(preloading==true) {
						if(target!="none")
							document.getElementById(target).style.display='block';
						document.getElementById('preloader').style.display='none';
					}
					
					if(navloading==true)// Navigation mitladen
						loadAjax('navigation', '', '', 'navigation', false, false);
					
					// Spamspan laden
					spamSpan();
					
					if(filename != 'product-step-1.php' && filename != 'navigation.php' && filename != 'popups.php')
					{
						// Google-Analytics
						pageTracker._trackEvent('Datei: '+filename, 'Link');
					}
					
					/* Warteschlange abarbeiten */
					queueLength = queue.length;
					if(queueLength != 0)
					{
						req(queue[0][0]);
						queue.shift(); //Erstes Element entfernen, den Rest eine Position nach vorne rücken
					}
				}
			}
		}
	}
}

// Berechnung der Preisliste. Quasi das selbe wie oben nur als Parameter die nötigen Felder des Produkts.
function setPricelist(url,step) {
	var xmlHttp=false;
	try {
		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e) {
		try {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(e) {
			xmlHttp=false;
		}
	}
	if (!xmlHttp && typeof XMLHttpRequest!='undefined') {
		xmlHttp = new XMLHttpRequest();
	}
	// Preloader
	document.getElementById('preloader').style.display='block';
	
	if(xmlHttp) {
		xmlHttp.open('GET', url+'.php?action=pricelist&step='+step+'&pid='+document.getElementById('product').value+'&id_quantity='+document.getElementById('quantity').value+'&pages='+document.getElementById('pages').value+'&id_print_single='+document.getElementById('print_single_select').value+'&id_print_multi='+document.getElementById('print_multi_select').value+'&id_printfilecheck='+document.getElementById('printFileCheck').value+'&id_voucher='+checkradio(document.getElementsByName('voucher')), true);
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				str=xmlHttp.responseText;
				str=str.split('|');
				if(step=="1") {
					document.getElementById('pricelist_nettax').innerHTML=number_format(str[0],2,",",".")+" &euro;";
					document.getElementById('pricelist_salestax').innerHTML=number_format(str[1],2,",",".")+" &euro;";
					document.getElementById('pricelist_pretax').innerHTML=number_format(str[2],2,",",".")+" &euro;";
					// Alternativmenge 1
					if(str[3]!="0-0") { // Menge - Nettopreis
						qa1=str[3].split('-');
						document.getElementById('pricelist_qa1').innerHTML=qa1[0]+" St&uuml;ck / "+number_format(qa1[1],2,",",".")+" &euro; (Netto)";
						document.getElementById('pricelist_qa1').style.display="block";
						document.getElementById('pricelist_qa_more').style.display="none";
					}
					else {
						document.getElementById('pricelist_qa1').style.display="none";
						document.getElementById('pricelist_qa_more').style.display="block";
					}
					// Alternativmenge 2
					if(str[4]!="0-0") { // Menge - Nettopreis
						qa2=str[4].split('-');
						document.getElementById('pricelist_qa2').innerHTML=qa2[0]+" St&uuml;ck / "+number_format(qa2[1],2,",",".")+" &euro; (Netto)";
						document.getElementById('pricelist_qa2').style.display='block';
					}
					else {
						document.getElementById('pricelist_qa2').innerHTML="";
						document.getElementById('pricelist_qa2').style.display='none';
					}
					// Alternativmenge 3
					if(str[5]!="0-0") { // Menge - Nettopreis
						qa3=str[5].split('-');
						document.getElementById('pricelist_qa3').innerHTML=qa3[0]+" St&uuml;ck / "+number_format(qa3[1],2,",",".")+" &euro; (Netto)";
						document.getElementById('pricelist_qa3').style.display='block';
					}
					else {
						document.getElementById('pricelist_qa3').innerHTML="";
						document.getElementById('pricelist_qa3').style.display='none';
					}
				}
				if(step=="2") {
					document.getElementById('step3_nettax').innerHTML=number_format(str[0],2,",",".")+" &euro";
					document.getElementById('step3_sum').innerHTML=number_format(str[1],2,",",".")+" &euro";
					document.getElementById('step3_salestax').innerHTML=number_format(str[2],2,",",".")+" &euro";
					document.getElementById('step3_pretax').innerHTML=number_format(str[3],2,",",".")+" &euro";
				}
				if(step=="3") {
					document.getElementById('pp_nettax').innerHTML=number_format(str[0],2,",",".")+" &euro";
					document.getElementById('pp_salestax').innerHTML=number_format(str[1],2,",",".")+" &euro";
					document.getElementById('pp_pretax').innerHTML=number_format(str[2],2,",",".")+" &euro";
				}
				// Navigation mitladen
				loadAjax('navigation', '', '', 'navigation', false, false);
				// Preloader
				document.getElementById('preloader').style.display='none';
			}
		}
		xmlHttp.send(null);
	}
}

// zur Überprüfung der Anmeldung
function suNextStep(step,session) {
	var xmlHttp=false;
	try {
		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e) {
		try {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(e) {
			xmlHttp=false;
		}
	}
	if (!xmlHttp && typeof XMLHttpRequest!='undefined') {
		xmlHttp = new XMLHttpRequest();
	}
	
	// Preloader
	document.getElementById('preloader').style.display='block';
	
	if(xmlHttp) {
		xmlHttp.open('GET', 'signup.php?action=checkMail&email='+document.getElementById('email').value, true);
		return2=false;
		return2=xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				str=xmlHttp.responseText;
				var status=true;
				// Firma
				// kein Pflichtfeld
				
				// Anrede
				if(document.getElementById('salutation').value=="") {
					document.getElementById('salutation_error').style.display='block';
					status=false;
				}
				else {
					document.getElementById('salutation_error').style.display='none';
				}
				
				// Vorname
				if(document.getElementById('firstname').value=="") {
					document.getElementById('firstname_error').style.display='block';
					status=false;
				}
				else {
					document.getElementById('firstname_error').style.display='none';
				}
				
				// Nachname
				if(document.getElementById('lastname').value=="") {
					document.getElementById('lastname_error').style.display='block';
					status=false;
				}
				else {
					document.getElementById('lastname_error').style.display='none';
				}
				
				// Geburtsdatum
				// Dropdown - muss nur zusammengefügt werden
				dateOfBirth=document.getElementById('dob_year').value+"-"+document.getElementById('dob_month').value+"-"+document.getElementById('dob_day').value;
				
				// Straße + Hausnummer
				if(document.getElementById('street').value==""||document.getElementById('street-nr').value=="") {
					document.getElementById('street_error').style.display='block';
					status=false;
				}
				else {
					document.getElementById('street_error').style.display='none';
				}
				
				// Postleitzahl + Ort
				if(document.getElementById('postcode').value==""||document.getElementById('city').value=="") {
					document.getElementById('postcode_city_error').style.display='block';
					status=false;
				}
				else {
					document.getElementById('postcode_city_error').style.display='none';
				}
				
				// Land
				// Dropdown - muss nicht gechecked werden
				
				// E-Mailadresse
				if(str=="no") {
					document.getElementById('email_error').innerHTML="Bitte E-Mailadresse angeben";
					status=false;
				}
				if(str=="free") {
					document.getElementById('email_error').innerHTML="";
				}
				if(str=="existed") {
					document.getElementById('email_error').innerHTML="E-Mailadresse bereits registriert";
					status=false;
				}
				if(str=="false") {
					document.getElementById('email_error').innerHTML="Bitte &uuml;berpr&uuml;fen Sie Ihre E-Mailadresse";
					status=false;
				}
				
				// Telefon
				if(document.getElementById('phone').value=="") {
					document.getElementById('phone_error').style.display='block';
					status=false;
				}
				else {
					document.getElementById('phone_error').style.display='none';
				}
				
				// Passwort
				var cache_pwd=document.getElementById('password').value;
				if(parseInt(cache_pwd.length)<6||parseInt(cache_pwd.length)>15) {
					document.getElementById('password_error').style.display='block';
					document.getElementById('password_re_error').style.display='none';
					document.getElementById('password_identic_error').style.display='none';
					status=false;
				}
				else {
					document.getElementById('password_error').style.display='none';
					if(document.getElementById('password_re').value=="") {
						document.getElementById('password_re_error').style.display='block';
						document.getElementById('password_identic_error').style.display='none';
						status=false;
					}
					else {
						document.getElementById('password_re_error').style.display='none';
						if(document.getElementById('password').value!=document.getElementById('password_re').value) {
							document.getElementById('password_identic_error').style.display='block';
							status=false;
						}
						else {
							document.getElementById('password_identic_error').style.display='none';
						}
					}
				}
				
				// Newsletter
				if(document.getElementById('newsletter').checked==true) {
					newsletterValue="1";
				}
				else {
					newsletterValue="0";
				}
				
				if(status==true) {
					loadAjax('signup','action=signup[&]step=success[&]session='+session,'company='+document.getElementById('company').value+'[&]salutation='+document.getElementById('salutation').value+'[&]firstname='+document.getElementById('firstname').value+'[&]lastname='+document.getElementById('lastname').value+'[&]dob='+dateOfBirth+'[&]accessory='+document.getElementById('accessory').value+'[&]street='+document.getElementById('street').value+'[&]street-nr='+document.getElementById('street-nr').value+'[&]postcode='+document.getElementById('postcode').value+'[&]city='+document.getElementById('city').value+'[&]country='+document.getElementById('country').value+'[&]email='+document.getElementById('email').value+'[&]phone='+document.getElementById('phone').value+'[&]fax='+document.getElementById('fax').value+'[&]newsletter='+newsletterValue+'[&]password='+document.getElementById('password').value);
				}
				
				// Preloader
				document.getElementById('preloader').style.display='none';
			}
		}
		xmlHttp.send(null);
	}
}

// Quellcode von JavaScript befreien
function removeJavaScriptCode(code) {
	code=code.replace(/(<script[^>]*>)(?:.|[\r\n])*?(<\/script>)/gi, '');
	return code;
}

// JavaScript-Code aus Quellcode holen und zusammenführen
function getJavaScriptCode(code) {
	var scripts=[],script,regexp=/<script[^>]*>(?:.|[\r\n])*?<!--([\s\S]*?)-->(?:.|[\r\n])*?<\/script>/gi;
	while((script=regexp.exec(code))) {
		scripts.push(script[1]);
	}
	scripts = scripts.join('\n');
	if(scripts) {
		return scripts;
	}
}

// ANMELDUNG
function suNextStep_OLD(step,session) {
	if(step==1) { // Step 1
		var status=true;
		// Firma
		// kein Pflichtfeld
		
		// Anrede
		// Dropdown - muss nicht gechecked werden
		
		// Vorname
		if(document.getElementById('firstname').value=="") {
			document.getElementById('firstname_error').style.display='block';
			status=false;
		}
		else {
			document.getElementById('firstname_error').style.display='none';
		}
		
		// Nachname
		if(document.getElementById('lastname').value=="") {
			document.getElementById('lastname_error').style.display='block';
			status=false;
		}
		else {
			document.getElementById('lastname_error').style.display='none';
		}
		
		// Geburtsdatum
		// Dropdown - muss nur zusammengefügt werden
		dateOfBirth=document.getElementById('dob_year').value+"-"+document.getElementById('dob_month').value+"-"+document.getElementById('dob_day').value;
		
		// Straße + Hausnummer
		if(document.getElementById('street').value==""||document.getElementById('street-nr').value=="") {
			document.getElementById('street_error').style.display='block';
			status=false;
		}
		else {
			document.getElementById('street_error').style.display='none';
		}
		
		// Postleitzahl + Ort
		if(document.getElementById('postcode').value==""||document.getElementById('city').value=="") {
			document.getElementById('postcode_city_error').style.display='block';
			status=false;
		}
		else {
			document.getElementById('postcode_city_error').style.display='none';
		}
		
		// Land
		// Dropdown - muss nicht gechecked werden
		
		// E-Mailadresse
		if(checkMail(document.getElementById('email').value)==false) {
			status=false;
		}
		alert("HIER: "+checkMail(document.getElementById('email').value));
		// Telefon
		if(document.getElementById('phone').value=="") {
			document.getElementById('phone_error').style.display='block';
			status=false;
		}
		else {
			document.getElementById('phone_error').style.display='none';
		}
		
		// Passwort
		var cache_pwd=document.getElementById('password').value;
		if(parseInt(cache_pwd.length)<6||parseInt(cache_pwd.length)>15) {
			document.getElementById('password_error').style.display='block';
			document.getElementById('password_re_error').style.display='none';
			document.getElementById('password_identic_error').style.display='none';
			status=false;
		}
		else {
			document.getElementById('password_error').style.display='none';
			if(document.getElementById('password_re').value=="") {
				document.getElementById('password_re_error').style.display='block';
				document.getElementById('password_identic_error').style.display='none';
				status=false;
			}
			else {
				document.getElementById('password_re_error').style.display='none';
				if(document.getElementById('password').value!=document.getElementById('password_re').value) {
					document.getElementById('password_identic_error').style.display='block';
					status=false;
				}
				else {
					document.getElementById('password_identic_error').style.display='none';
				}
			}
		}
		
		// Newsletter
		if(document.getElementById('newsletter').checked==true) {
			newsletterValue="1";
		}
		else {
			newsletterValue="0";
		}
		
		if(status==true) {
			loadAjax('signup','action=signup[&]step=success&session='+session,'company='+document.getElementById('company').value+'[&]salutation='+document.getElementById('salutation').value+'[&]firstname='+document.getElementById('firstname').value+'[&]lastname='+document.getElementById('lastname').value+'[&]dob='+dateOfBirth+'[&]accessory='+document.getElementById('accessory').value+'[&]street='+document.getElementById('street').value+'[&]street-nr='+document.getElementById('street-nr').value+'[&]postcode='+document.getElementById('postcode').value+'[&]city='+document.getElementById('city').value+'[&]country='+document.getElementById('country').value+'[&]phone='+document.getElementById('phone').value+'[&]fax='+document.getElementById('fax').value+'[&]newsletter='+newsletterValue+'[&]password='+document.getElementById('password').value);
		}
	}
}

// Account speichern
function saveAccount() {
				var status=true;
				// Firma
				// kein Pflichtfeld
				
				// Anrede
				// Dropdown - muss nicht gechecked werden
				
				// Vorname
				if(document.getElementById('firstname').value=="") {
					document.getElementById('firstname_error').style.display='block';
					status=false;
				}
				else {
					document.getElementById('firstname_error').style.display='none';
				}
				
				// Nachname
				if(document.getElementById('lastname').value=="") {
					document.getElementById('lastname_error').style.display='block';
					status=false;
				}
				else {
					document.getElementById('lastname_error').style.display='none';
				}
				
				// Geburtsdatum
				// Dropdown - muss nur zusammengefügt werden
				dateOfBirth=document.getElementById('dob_year').value+"-"+document.getElementById('dob_month').value+"-"+document.getElementById('dob_day').value;
				
				// Adresszusatz
				// kein Pflichtfeld
				
				// Straße + Hausnummer
				if(document.getElementById('street').value==""||document.getElementById('street-nr').value=="") {
					document.getElementById('street_error').style.display='block';
					status=false;
				}
				else {
					document.getElementById('street_error').style.display='none';
				}
				
				// Postleitzahl + Ort
				if(document.getElementById('postcode').value==""||document.getElementById('city').value=="") {
					document.getElementById('postcode_city_error').style.display='block';
					status=false;
				}
				else {
					document.getElementById('postcode_city_error').style.display='none';
				}
				
				// Land
				// Dropdown - muss nicht gechecked werden
				
				// E-Mailadresse
				// kein Textfeld
				
				// Telefon
				if(document.getElementById('phone').value=="") {
					document.getElementById('phone_error').style.display='block';
					status=false;
				}
				else {
					document.getElementById('phone_error').style.display='none';
				}
				
				// Telefax
				// kein Pflichtfeld
				
				// Newsletter
				if(document.getElementById('newsletter').checked==true) {
					newsletterValue="1";
				}
				else {
					newsletterValue="0";
				}

				
				if(status==true) {
					loadAjax('my-account','action=save','company='+document.getElementById('company').value+'[&]salutation='+document.getElementById('salutation').value+'[&]firstname='+document.getElementById('firstname').value+'[&]lastname='+document.getElementById('lastname').value+'[&]dob='+dateOfBirth+'[&]accessory='+document.getElementById('accessory').value+'[&]street='+document.getElementById('street').value+'[&]street-nr='+document.getElementById('street-nr').value+'[&]postcode='+document.getElementById('postcode').value+'[&]city='+document.getElementById('city').value+'[&]country='+document.getElementById('country').value+'[&]phone='+document.getElementById('phone').value+'[&]fax='+document.getElementById('fax').value+'[&]newsletter='+newsletterValue,'none');
				}
}

// Funktion die beim Buttonklick zum Schritt 2 aufgerufen wird
function forwardToStep2(session) {
	var status=true;
	if(document.getElementById('firstname').value=="") {
		document.getElementById('firstname_error').style.display='block';
		status=false;
	}
	else {
		document.getElementById('firstname_error').style.display='none';
	}
	if(document.getElementById('lastname').value=="") {
		document.getElementById('lastname_error').style.display='block';
		status=false;
	}
	else {
		document.getElementById('lastname_error').style.display='none';
	}
	dateOfBirth=document.getElementById('dob_year').value+"-"+document.getElementById('dob_month').value+"-"+document.getElementById('dob_day').value;
	var cache_pwd=document.getElementById('password').value;
	if(parseInt(cache_pwd.length)<6||parseInt(cache_pwd.length)>15) {
		document.getElementById('password_error').style.display='block';
		document.getElementById('password_re_error').style.display='none';
		document.getElementById('password_identic_error').style.display='none';
		status=false;
	}
	else {
		document.getElementById('password_error').style.display='none';
		if(document.getElementById('password_re').value=="") {
			document.getElementById('password_re_error').style.display='block';
			document.getElementById('password_identic_error').style.display='none';
			status=false;
		}
		else {
			document.getElementById('password_re_error').style.display='none';
			if(document.getElementById('password').value!=document.getElementById('password_re').value) {
				document.getElementById('password_identic_error').style.display='block';
				status=false;
			}
			else {
				document.getElementById('password_identic_error').style.display='none';
			}
		}
	}
	if(document.getElementById('newsletter').checked==true) {
		newsletterValue="1";
	}
	else {
		newsletterValue="0";
	}
	if(status==true) {
		loadAjax('signup','action=signup[&]step=2[&]step1_gender='+document.getElementById('gender').value+'[&]step1_firstname='+document.getElementById('firstname').value+'[&]step1_lastname='+document.getElementById('lastname').value+'[&]step1_dob='+dateOfBirth+'[&]step1_pwd='+document.getElementById('password').value+'[&]step1_newsletter='+newsletterValue+'&session='+session);
	}
}

function forwardToStep3(gender,firstname,lastname,dateofbirth,pwd,newsletter,session) {
	var status=true;
	if(document.getElementById('firstname').value=="") {
		document.getElementById('firstname_error').style.display='block';
		status=false;
	}
	else {
		document.getElementById('firstname_error').style.display='none';
	}
	if(document.getElementById('lastname').value=="") {
		document.getElementById('lastname_error').style.display='block';
		status=false;
	}
	else {
		document.getElementById('lastname_error').style.display='none';
	}
	if(document.getElementById('adress1').value=="") {
		document.getElementById('adress1_error').style.display='block';
		status=false;
	}
	else {
		document.getElementById('adress1_error').style.display='none';
	}
	if(document.getElementById('postcode').value=="") {
		document.getElementById('postcode_error').style.display='block';
		status=false;
	}
	else {
		document.getElementById('postcode_error').style.display='none';
	}
	if(document.getElementById('city').value=="") {
		document.getElementById('city_error').style.display='block';
		status=false;
	}
	else {
		document.getElementById('city_error').style.display='none';
	}
	if(status==true) {
		loadAjax('signup','action=signup[&]step=3[&]step1_gender='+gender+'[&]step1_firstname='+firstname+'[&]step1_lastname='+lastname+'[&]step1_dob='+dateofbirth+'[&]step1_pwd='+pwd+'[&]step1_newsletter='+newsletter+'[&]step2_company='+document.getElementById('company').value+'[&]step2_salutation='+document.getElementById('salutation').value+'[&]step2_firstname='+document.getElementById('firstname').value+'[&]step2_lastname='+document.getElementById('lastname').value+'[&]step2_adress1='+document.getElementById('adress1').value+'[&]step2_adress2='+document.getElementById('adress2').value+'[&]step2_postcode='+document.getElementById('postcode').value+'[&]step2_city='+document.getElementById('city').value+'[&]step2_country='+document.getElementById('country').value+'&session='+session);
	}
}

function setPricelist_qa(product, value) {
	document.getElementById('quantity').selectedIndex=document.getElementById('quantity').selectedIndex+value;
	setPricelist(product,1);
}
