/* ############ */
/* ### AJAX ### */
/* ############ */

var req = null;

// Abfrage von Daten requesten
function request(parameters,colorcode,imagenumber,get,artnr,currentLanguage) {
	
	if(colorcode) {
			document.getElementById('axshoes_detail_text_spinner_color').innerHTML = '<img src="typo3conf/ext/ax_shoes/res/spinner_color.gif" alt="loading" title="loading" />';
	} else {
			document.getElementById('axshoes_detail_col1').innerHTML = '&nbsp;';
			document.getElementById('axshoes_detail_col2_container1').innerHTML = '<img  style="margin-top:125px;" src="typo3conf/ext/ax_shoes/res/spinner_image.gif" alt="loading" title="loading" />';
			document.getElementById('axshoes_detail_col2_container2').innerHTML = 'LOADING...';
			$('#axshoes_detail_col2_container1').fadeIn(0);
			$('#axshoes_detail_col2_container2').fadeIn(0);
	}
		
	 var formvalues = "";
      for (var i=0; i<document.forms['frm_pf'].getElementsByTagName('input').length; i++) with (document.forms['frm_pf'].getElementsByTagName('input')[i])
      {
		if(type=="checkbox") {
				
				if(document.getElementById(name).checked==true) {
					formvalues = formvalues + name + '_' + 1 + ',';
				} else {
					formvalues = formvalues + name + '_' + 0 + ',';	
				}
				
		}
      }
		
	  //WENN MAN AUF EINE BESTIMMTE "UNTERSEITE" (DES AJAX-MODULS MÖCHTE)
	  //ZB MAN KLICKT AUF DER STARTSEITE AUF EINE KATEGORIE
	  //ZB MAN KLICKT IN DER INDEXED SEARCH AUF EIN ERGEBNIS...
	  if(get) {
			formvalues = get;  
	  }
	 
		
	
	
	// Nur wenn Hauptvariable (id Datensatz durch flyer; oder datestring durch monatsschalter) gegeben ist, weitermachen
	if (parameters) {
		
			
					// Hier wird das XMLHttpRequest Objekt angelegt
					// Für den IE6 sowie den IE7 wird der Request mit den Internet Explorer eigenen XMLHttpRequest überschrieben
					
					// Normale Browser
					try {
						req = new XMLHttpRequest();
					}
					catch (e) {
						// IE7
						try {
							req = new ActiveXObject("Msxml2.XMLHTTP");
						}
						
						catch (e) {
							// IE8
							try {
								req = new ActiveXObject("Microsoft.XMLHTTP");
							}
							
							// Weder noch => Stop
							catch (failed) {
								req = null;
							}
						}  
					}
					
					// Fehlerausgabe: Request nicht vorhanden
					if (req == null) {
						//alert("Error: Request Object could not be created!");
					}
					// Ansonsten weitermachen mit der Ausgabe
					else {
							
							//TESTEN: alert auskommentieren - values des Formulars...
							//alert(formvalues);
							var params = "formvalues=" + formvalues;
							
							if(colorcode) {
								params = params + "&colorcode=" + colorcode;	
							}
							if(imagenumber) {
								params = params + "&imagenumber=" + imagenumber;	
							}
							if(artnr) {
								params = params + "&artnr=" + artnr;	
							}
							if(currentLanguage) {
								params = params + "&L=" + currentLanguage;	
							}
							
									
							var url = "/?type=99";
							req.open("POST", url, true);
									
							// Wurde die Datei erfolgreich geladen => weitermachen
							req.onreadystatechange = handleRequest;
							
							
						
						
						
						// Header und Daten senden
						req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
						req.setRequestHeader("Content-length", params.length);
						req.setRequestHeader("Connection", "close");
						
						// Post Daten senden
						req.send(params);
					}
			
	}
	else {
		return false;
	}
}


 
function handleRequest() {
	// Wird für den readyState der Fall 4 erreicht (= abgeschlossender Transfer; siehe http://www.w3.org/TR/XMLHttpRequest) => weitermachen
	if (req.readyState == 4) {
		// Hat der HTTP Statuscode den Wert 200 (= erfolgreiche Übertragung) => weitermachen
		if (req.status == 200) {
			// Antwort des Servers in JSON Form
			var output = eval('(' + req.responseText + ')');
			
			//TESTEN: alert auskommentieren - values aus PHP nach Request...
			//alert(output.toSource());
			
			amount_products = output.amount_products;
			checkboxes_modells = output.checkboxes_modells;
			column1text = output.column1text;
			shoe_image = output.shoe_image;
			nav = output.nav;
			formvalues = output.formvalues;
			col2 = output.col2;
			gender_boxes = output.gender_boxes;
			homepagegroup_boxes = output.homepagegroup_boxes;
			
			document.getElementById('axshoes_pf_chosen').innerHTML = amount_products;
			document.getElementById('axshoes_pf_modells').innerHTML = checkboxes_modells;
			document.getElementById('axshoes_detail_col1').innerHTML = column1text;
			document.getElementById('axshoes_detail_col4').innerHTML = nav;
			document.getElementById('axshoes_detail_col5').innerHTML = '<span style="display:none;">' + formvalues + '</span>';
			if(col2) {
				document.getElementById('axshoes_detail_col2').innerHTML = col2;
				document.getElementById('axshoes_detail_col2').style.backgroundColor = 'transparent';
			}
			document.getElementById('axshoes_pf_gender').innerHTML = gender_boxes;
			document.getElementById('axshoes_pf_cats').innerHTML = homepagegroup_boxes;
			
			//WENN IM 1. CONTAINER DAS AKTUELLE BILD IST...
			if(document.getElementById('axshoes_detail_col2_container1').innerHTML && !document.getElementById('axshoes_detail_col2_container2').innerHTML) {
				$('#axshoes_detail_col2_container1').fadeOut('fast', function() {
					//document.getElementById('axshoes_detail_col2').style.backgroundColor = '#FFFFFF';
					document.getElementById('axshoes_detail_col2_container1').innerHTML = '';
					document.getElementById('axshoes_detail_col2_container2').innerHTML = shoe_image;
					$('#axshoes_detail_col2_container2').fadeIn('fast');
				});
				
			}
			
			//WENN IM 2. CONTAINER DAS AKTUELLE BILD IST...
			if(document.getElementById('axshoes_detail_col2_container2').innerHTML && !document.getElementById('axshoes_detail_col2_container1').innerHTML) {
				$('#axshoes_detail_col2_container2').fadeOut('fast', function() {
					//document.getElementById('axshoes_detail_col2').style.backgroundColor = '#FFFFFF';
					document.getElementById('axshoes_detail_col2_container2').innerHTML = '';
					document.getElementById('axshoes_detail_col2_container1').innerHTML = shoe_image;
					$('#axshoes_detail_col2_container1').fadeIn('fast');
				});
			}
			
			
			if(document.getElementById('axshoes_detail_col2_container1').innerHTML && document.getElementById('axshoes_detail_col2_container2').innerHTML) {
				//document.getElementById('axshoes_detail_col2').style.backgroundColor = '#FFFFFF';
				document.getElementById('axshoes_detail_col2_container1').innerHTML = shoe_image;
				document.getElementById('axshoes_detail_col2_container2').innerHTML = '';
			}
			
			
			//SPINNER COLOR WEG
			if(document.getElementById('axshoes_detail_text_spinner_color')) {
				document.getElementById('axshoes_detail_text_spinner_color').innerHTML = '';
			}
			
			
			//Ganz nach oben scrollen
			scrollTo(0,0);
			
			
			
		}
		// Fehlermeldung: Statuscode nicht gleich 200
		else {
				alert("Error: The requested status is " + req.status);
		}
	}
	else {
		return false;
	}
}


var loadHeight = 100;

// Abfrage von Daten requesten
function order_request(artnr, color, currentLanguage, action) {
	
	// Nur wenn die ARTNR gegeben ist, weitermachen
	if (artnr) {
		if (artnr > 0) {
			// Hier wird das XMLHttpRequest Objekt angelegt
			// Für den IE6 sowie den IE7 wird der Request mit den Internet Explorer eigenen XMLHttpRequest überschrieben
			
			// Normale Browser
			try {
				req = new XMLHttpRequest();
			}
			catch (e) {
				// IE7
				try {
					req = new ActiveXObject("Msxml2.XMLHTTP");
				}
				
				catch (e) {
					// IE6
					try {
						req = new ActiveXObject("Microsoft.XMLHTTP");
					}
					
					// Weder noch => Stop
					catch (failed) {
						req = null;
					}
				}  
			}
			
			// Fehlerausgabe: Request nicht vorhanden
			if (req == null) {
				alert("Error: Request Object could not be created!");
			}
			// Ansonsten weitermachen mit der Ausgabe
			else {				
				// Ladeanimation anzeigen, und Element auf Standardhöhe ausfahren
				// Loader wieder anzeigen, für weitere Ladeanimationen
				
				$("#axshoes_order_form").css("display", "block");
				/*$("#axshoes_order_form_spinner").css("display", "block");*/
				$("#axshoes_order_form_spinner").css("margin-top","25px");
				$("#axshoes_order_form_spinner").html('<img src="typo3conf/ext/ax_shoes/res/spinner_image.gif" alt="loading" title="loading" />');
				
				$("#axshoes_order_form").animate({"height": loadHeight + "px"}, { queue:false, duration:5000, complete:function() {}});
				
				//options = { to: { height: loadHeight + 'px'} };                    
				//$("#axshoes_order_form").effect('size', options, 500 );		
				
				//var slide = new Fx.Tween("ps_ajax_accordion_content_wrap" + id);
				//slide.start("height", 0, loadHeight);
						
				if(action == 'load_order_form_box' || action == 'load_order_form_box_add_artikel')	{
					artnr = document.getElementById("axshoes_order_artnr").value;
					if(action == 'load_order_form_box_add_artikel') {
						document.getElementById("axshoes_order_artnr").value = "weitere Artikel Bestellen";	
					}
				}
						
				// HTTP Get Request an eine Datei				
				var params = "artnr=" + artnr + "&colorcode=" + color + "&action=" + action + "&L=" + currentLanguage;						
				
				var url = "/?type=99";							
				//var url = "/?id="+document.getElementById("ps_ajax_accordion_current_pid").value+"&type=99";						
									
				req.open("POST", url, true);
				
				// Wurde die Datei erfolgreich geladen => weitermachen
				req.onreadystatechange = handleOrderRequest;
				
				// Header und Daten senden
				req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				req.setRequestHeader("Content-length", params.length);
				req.setRequestHeader("Connection", "close");
				
				// Post Daten senden
				req.send(params);
			}
		}
				
			
	}
	else {
		return false;
	}
}


function submitOrder(action, artnr, color) {
	document.getElementById("action").value	= action;
	document.getElementById("del_artnr").value	= artnr;
	document.getElementById("del_color").value	= color;
	
	var options = { 
		//target:        '#output2',   
		//beforeSubmit:  showRequest,  
		//dataType:  'json', 
		success:   handleOrderResponse
	}; 
	
	/*$('#axshoes_form_order_list').submit(function() { 			
		$(this).ajaxSubmit(options); 	 
		
		return false; 
	});*/ 
	
	$('#axshoes_form_order_list').ajaxSubmit(options);		
	
	/*document.getElementById("axshoes_order_buttons").style.display = "none";*/
	
	document.getElementById('axshoes_order_buttons').innerHTML = '<img style="margin: 5px 100px 0 0;" src="typo3conf/ext/ax_shoes/res/spinner_color.gif" alt="loading" title="loading" />';
}


function showOrder () {	
	var options = { 		
		success:   handleOrderResponse
	}; 
		
	$('#axshoes_form_order_list').ajaxSubmit(options);			
}

function handleOrderResponse(responseText) {	
	var output = eval('(' + responseText + ')');

	order_content = output.order_content;
	
	loadContent(order_content);	
}


function handleOrderRequest() {
	// Wird für den readyState der Fall 4 erreicht (= abgeschlossender Transfer; siehe http://www.w3.org/TR/XMLHttpRequest) => weitermachen
	if (req.readyState == 4) {
		// Hat der HTTP Statuscode den Wert 200 (= erfolgreiche Übertragung) => weitermachen
		if (req.status == 200) {
			// Antwort des Servers in JSON Form
			
			var output = eval('(' + req.responseText + ')');

			order_content = output.order_content;
						
			// Loader verstecken
			document.getElementById("axshoes_order_form_spinner").style.display = "none";
	
			loadContent(order_content);			
		}
		// Fehlermeldung: Statuscode nicht gleich 200
		else {
				alert("Error: The requested status is " + req.status);
		}
	}
	else {
		return false;
	}
}

function loadContent(order_content) {	
	$("#axshoes_order_form_content").css("display", "block");
	document.getElementById('axshoes_order_form_content').innerHTML = order_content;
	
	div_height = $("#axshoes_order_form_content").height();
					
	$("#axshoes_order_form").animate({"height": div_height + "px"}, { queue:false, duration:5000, complete:function() {}});
	
	$(".axshoes_mouseleave_area").mouseleave(function() {
		submitOrder("save_order_form");
	});
	
	/*$("#axshoes_cart").bind("mouseleave", function(e) { 
		if (!e.fromElement.length) {
			_state.filterTrigger.data("open", false);
			setTimeout(function() { _toggleFilter(_state.filterTrigger); }, 2000);
		}
	});*/
	
	/*var timer;
	$('#axshoes_cart').mouseleave(function(e) {
		if($(e.target).parents('#axshoes_cart').length) {	
			submitOrder("save_order_form");	
			return;
		}		
		timer = setTimeout(function() {		
			$('#color_select_46462_1').blur();			
		}, 50);
	}).mouseenter(function(e) {
		if(timer) {
			clearTimeout(timer);
		}
	});*/

	
	/*document.getElementById("axshoes_order_buttons").style.display = "block";*/
	
	//options = { to: { height: div_height + 'px'} };                    
	//$("#axshoes_order_form").effect('size', options, 500 );		
}

function closeOrder() {	
	document.getElementById('axshoes_order_form_content').innerHTML = order_content;
	
	div_height = $("#axshoes_order_form_content").height();
					
	$("#axshoes_order_form").animate({"height": "0px"}, { queue:false, duration:5000, complete:function() {}});	
	
	$("#axshoes_order_form_content").css("display", "none");
	$("#axshoes_order_form").css("display", "none");
}					
