/* ---------------------------- */
/* XMLHTTPRequest Enable */
/* ---------------------------- */

//add to cart
function addProdCart(id,val){

var http = createXmlHttpRequest();

	var idP = id;
	//////////////
	
	//if i'm on product page delete alert
	if(document.getElementById('errAddCart')){
		document.getElementById('errAddCart').style.display = "none";
		document.getElementById('errAddCart').innerHTML = "";
	}
	
	if(!idP){
		
		http.open('GET', 'ajax/layer_cart.php',true) 
		http.onreadystatechange = function(){

			if (http.readyState == 4){
				//at page loaded add content into cart if is empty or not
				responseCont = http.responseText
				contentProd = document.getElementById('cart_layer');
				
				if (responseCont!=""){
					contentProd.innerHTML = responseCont
				} 
			
			}
		
		}
		
		http.send(null);
		//http.setRequestHeader("connection", "close"); 
		
	} else {
		
		//if val is null set number product at 1
		if(!val){
			val = 1;
		} 
		if(document.getElementById('numProd'+idP)){
			if(document.getElementById('numProd'+idP).innerHTML!=""){
				val = document.getElementById('numProd'+idP).innerHTML;
			} else {
				val = 1;	
			}
		}
		
		//tot number finiture product
		var getTotFin = document.getElementById('tot_fin').value;
		
		//check if there are any finiture and parse it.. else add instantly the product
		if(getTotFin>0){
			//create an array for insert the result of combo for check if is empty
			var arrFin = Array();
			//for create a string with element of arra y and id
			var tot = ""
			var p = "_";
			//alert('si')
			for(var i=0;i<=getTotFin-1;i++){
				var elNumFin = document.getElementById('fin_'+i).value
				arrFin[i] = elNumFin;
				//add element of array into a string
				tot = tot+arrFin[i]+p
			}
			
			//delete last "_" for correct data
			tot = tot.replace(/_$/,"");
			
			//if the finiture are not all selected (i've used a function for search inside array 'in_array')
			if(arrFin.in_array('')){
				//i=getTotFin
				//alert(alertFinProd)
				document.getElementById('errAddCart').style.display = "block";
				document.getElementById('errAddCart').innerHTML = "<div class='regCartError'>"+alertFinProd+"</div>";
			} else {
				//alert(tot)
				http.open('GET','ajax/check_cart.php?act=1&elem='+tot+'&idProd='+idP, true);
				var sendCart = 1
			}
			
		} else {
			//insert directly product in cart 'cause there are not finiture
			//alert('no')	
			//fix at 0 because there are not finiture
			tot = 0;
			http.open('GET','ajax/check_cart.php?act=1&elem='+tot+'&idProd='+idP, true);
			//http.open('GET','ajax/cart.php?act=addCart&prod='+tot+'&numProd='+val, true);
			var sendCart = 1
		}
		
		//if http was load correctly else avoid an error
		if(sendCart==1){
			http.onreadystatechange = function(){
				
				if(http.readyState == 4){
					
					var responseCart = http.responseText;
					var checkResponCart=responseCart.split("|");
					
					if(checkResponCart[0]==1){
					
						/////////////////////
						var httpf = createXmlHttpRequest();	
						httpf.open('GET','ajax/cart.php?act=addCart&prod='+checkResponCart[1]+'&numProd='+val, true);
						/////////////////////
						//add product to Cart
						httpf.onreadystatechange = function(){
				
								if(httpf.readyState == 4){
									
									var responsePage = httpf.responseText;
									var checkRespon=responsePage.split("|");
									
									if(checkRespon[0]!=0){
										
										//create new ajax connection for prevent double creation of onreadystatechange in this seciton 
										var httpc = createXmlHttpRequest();
										httpc.open('GET', 'ajax/layer_cart.php',true) 
										httpc.onreadystatechange = function(){
											
												if (httpc.readyState == 4){
									
													responseCont = httpc.responseText
													
													if (responseCont!=""){
														contentProd = document.getElementById('cart_layer');
														contentProd.innerHTML = responseCont
														document.getElementById('allCart').style.display = "block";
														window.scrollTo(0,0); 
													}
														
												} 
											}
										
										httpc.send(null)
										//httpc.setRequestHeader("connection", "close"); 
										
									} else {
										//error if product exist
										//alert(checkRespon[1])
										document.getElementById('errAddCart').style.display = "block";
										document.getElementById('errAddCart').innerHTML = "<div class='regCartError'>"+checkRespon[1]+"</div>";
									}
								} 
							};
							
						httpf.send(null);
						//httpf.setRequestHeader("connection", "close"); 
						//add product to Cart
						/////////////////////
						
						
					}else{
						alert(checkResponCart[1])
					}
					
				}
				
			}
			http.send(null);
			//http.setRequestHeader("connection", "close"); 

		}
	//if http was parse correct
	}
	
	
}

//add num prod form dett product
function addProdForm(id,act){
	
	idP = id;
	var valProdEl = document.getElementById('numProd'+idP)
		
	if(act=='add'){
		
		var numProEl = valProdEl.innerHTML
		numProEl++
		valProdEl.innerHTML = numProEl
		
	} else {
		
		if(valProdEl.innerHTML>=2){
			var numProEl = valProdEl.innerHTML
			numProEl--
			valProdEl.innerHTML = numProEl
		}
	
	}

}

//delete 1 element from cart
function delFromCart(cancEl,cat){
	
	var http = createXmlHttpRequest();	

	http.open('GET','ajax/cart.php?act=delNumProd&prod='+cancEl, true);
	http.onreadystatechange =function(){
		
		if(http.readyState == 4){
				
				//create new connection for create cart and insert into div
				var httpf = createXmlHttpRequest();	
				httpf.open('GET', 'ajax/layer_cart.php',true) 
				httpf.onreadystatechange =function(){
					
					responseCont = httpf.responseText
					contentProd = document.getElementById('cart_layer');
						
					if (httpf.readyState == 4 || responseCont!=""){
						contentProd.innerHTML = responseCont
						document.getElementById('allCart').style.display = "block";
					} 	
					
				}
				httpf.send(null)
				//httpf.setRequestHeader("connection", "close"); 
		}
		
		
	}
	http.send(null)
	//http.setRequestHeader("connection", "close");
	
	//if i'm in tha page of big cart refresh all page because it will be empty cahnge the graphic of page
	if(cat=='out'){
		
		window.location.reload()
		
	}
}

//delete all cart
function deleteCart(txtAlert,cat){
	
	var http = createXmlHttpRequest();
	
	confrimDel = confirm(txtAlert);
	
	if(confrimDel){
		
		http.open('GET','ajax/cart.php?act=delCart&prod=1', true);
		http.onreadystatechange =function(){
			
			if(http.readyState == 4){
				
				var httpi = createXmlHttpRequest();
				httpi.open('GET', 'ajax/layer_cart.php',true) 
				httpi.onreadystatechange = function(){
					
					if (httpi.readyState == 4){
						responseCont = httpi.responseText
						contentProd = document.getElementById('cart_layer');
						contentProd.innerHTML = responseCont
					} 	
				}
			
				httpi.send(null)
				//httpi.setRequestHeader("connection", "close"); 
			}
		
		}
		
		http.send(null)
		//http.setRequestHeader("connection", "close");
		
	}
}

function checkCart(){
	var http = createXmlHttpRequest();
		http.open('GET','ajax/cart.php?act=check&prod=1', true);
		//control data
		http.onreadystatechange = function() {
				
			if(http.readyState == 4){
				
				var responsePage = http.responseText;
		
				if(responsePage!=""){
					//cart is empty and display an error alert
					//alert(responsePage)
					document.getElementById('prodCarClose').className = "prodCarErr";
					document.getElementById('prodCarClose').innerHTML = responsePage;
					
				} else {
					//if cart is not empty open it
					reverseDisp('allCart','cartForm','open');
				}
		
			} 
		}
		
		http.send(null);
		//http.setRequestHeader("connection", "close"); 
	
}

/////////////////////////////////////////////
/*/////////add element from check out//////*/
/////////////////////////////////////////////

function addFromCheck(id,act,pag,mon){
	
	var http = createXmlHttpRequest();
	
	var idP = id;
	var myNum = document.getElementById('numProd'+idP).innerHTML
	var totElemCart = document.getElementById('numelCartTot'+idP)
	var totNoTransport = document.getElementById('totNoTra')
	var totWithTransport = document.getElementById('totWithTran')
	//var transport = document.getElementById('transp').innerHTML
	
	//check of response if elements of single  product is under 1
	if(act=='del' && myNum<=1){
		//stop update
	}else{
		
		//if i'm into the big cart or in the site
		if(pag!=0){
			
			var arrPriceTr = document.getElementById('arrPrice').innerHTML
			var totNumTr = document.getElementById('totNum').innerHTML
			var transportTr = document.getElementById('transport').innerHTML
			var singTr = pag
			//var typeC = myNum.innerHTML;
			//var transport = pag;
			
		}else{
			var arrPriceTr = 0
			var totNumTr = 0
			var transportTr = pag
			var singTr = pag
			//var typeC = myNum.innerHTML;
		}
		
		//data to php
		http.open('GET','ajax/cart.php?act=cart'+act+'&numProd='+myNum+'&valTot='+mon+'&prod='+idP+'&totNoTransport='+totNoTransport.innerHTML+'&arrPriceTr='+arrPriceTr+'&totNumTr='+totNumTr+'&transport='+transportTr+'&singTr='+singTr, true);
		//control data
		http.onreadystatechange = function() {
				
			if(http.readyState == 4){
				
				var responsePage = http.responseText;
		
				//check of response if elements of single  product is under 1
				if(responsePage!=0){
		
					var checkRespon1=responsePage.split("|");
						
					if(checkRespon1!=""){
						
						//number of element for the product slected
						if(checkRespon1[4]==0){
							document.getElementById('numProd'+idP).innerHTML = checkRespon1[0]
							document.getElementById('totNumProd').innerHTML = checkRespon1[5]
							
						}else{
							//tto with transport
							document.getElementById('numProd'+idP).innerHTML = checkRespon1[0]
							document.getElementById('transp').innerHTML = checkRespon1[4]
							totWithTransport.innerHTML = checkRespon1[3]
						}
						
						//tot for single product selected
						totElemCart.innerHTML = checkRespon1[1]
						//total whitout transport
						totNoTransport.innerHTML = checkRespon1[2]
						document.getElementById('totNum').innerHTML = checkRespon1[0]
						document.getElementById('transport').innerHTML = checkRespon1[6]
					}
					
				}
			} 
		}
		http.send(null);
		//http.setRequestHeader("connection", "close"); 
	}
}