// JavaScript Document
var xmlHttp;
var cursor;
var shopBar;

var ShopEngine = {
  Version: '1.0.0',
  require: function(libraryName) {
    // inserting via DOM fails in Safari 2.0, so brute force approach
    document.write('<script type="text/javascript" src="'+libraryName+'"></script>');
  },
  load: function() {
    if((typeof Prototype=='undefined') ||
      parseFloat(Prototype.Version.split(".")[0] + "." +
                 Prototype.Version.split(".")[1]) < 1.4)
      throw("shopEngine requires the Prototype JavaScript framework >= 1.4.0");
    
    $A(document.getElementsByTagName("script")).findAll(
	function(s) {
      return (s.src && s.src.match(/shopengine\.js(\?.*)?$/))
    }).each( function(s) {
      var path = s.src.replace(/shopengine\.js(\?.*)?$/,'');
      var includes = s.src.match(/\?.*load=([a-z,]*)/);
      (includes ? includes[1] : 'shopconfig').split(',').each(
       function(include) {
		 ShopEngine.require(path+include+'.js') });
		 window.onload=initShop;
	});
  }
}
ShopEngine.load();

function updateShopBar(){
  xmlHttp=GetXmlHttpObject();
  if (xmlHttp==null)
  {
		alert ("Browser does not support HTTP Request");
		 return;
   }

	var params="op=loadBasket";
	
	xmlHttp.open("POST",dynamicUrl,true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.onreadystatechange=function() { if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")	{ 		shopBar.innerHTML=xmlHttp.responseText;	}  };
	xmlHttp.send(params);
}

function openBasket()
{ 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
		alert ("Browser does not support HTTP Request");
		 return;
	}

	var params="op=open";
	
	xmlHttp.open("POST",dynamicUrl,true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.onreadystatechange=function() { if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")	{ 	
		basketBox(xmlHttp.responseText);
		updateShopBar();
	} };
	xmlHttp.send(params);
}

function metodopagamento()
{ 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
		alert ("Browser does not support HTTP Request");
		 return;
	}

	var params="op=paymenttype";
	
	xmlHttp.open("POST",dynamicUrl,true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.onreadystatechange=function() { if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")	{ 	
		basketBox(xmlHttp.responseText);
	} };
	xmlHttp.send(params);
}


function order(spedizione)
{ 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
		alert ("Browser does not support HTTP Request");
		 return;
	}

	var params="op=order&spedizione="+spedizione;
	
	xmlHttp.open("POST",dynamicUrl,true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.onreadystatechange=function() { if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")	{ 	
		basketBox(xmlHttp.responseText);
	} };
	xmlHttp.send(params);
}
function ordineConcluso()
{ 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
		alert ("Browser does not support HTTP Request");
		 return;
	}

	var params="op=pay";
	params+="&nome="+document.forms["ordine"].nome.value;
	params+="&cognome="+document.forms["ordine"].cognome.value;
	params+="&indirizzo="+document.forms["ordine"].indirizzo.value;
	params+="&citta="+document.forms["ordine"].citta.value;
	params+="&cap="+document.forms["ordine"].cap.value;
	params+="&provincia="+document.forms["ordine"].provincia.value;
	params+="&telefono="+document.forms["ordine"].telefono.value;
	params+="&email="+document.forms["ordine"].email.value;
	params+="&note="+document.forms["ordine"].note.value;
	xmlHttp.open("POST",dynamicUrl,true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.onreadystatechange=function() {
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")	{ 	
			basketBox(xmlHttp.responseText);
			updateShopBar();
		}
	};
	xmlHttp.send(params);
}

function addBasket(idprodotto)
{ 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
		alert ("Browser does not support HTTP Request");
		 return;
	}

	var params="op=add&id="+idprodotto;
	
	xmlHttp.open("POST",dynamicUrl,true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.onreadystatechange=function() { if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")	{ 		if(xmlHttp.responseText=="OK"){			putMessage("Prodotto aggiunto al carrello",0);			updateShopBar();		}		else putMessage("Errore! Non è stato possibile eseguire l'operazione",1);	} };
	xmlHttp.send(params);
}

function deleteBasket(idprodotto)
{ 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
		alert ("Browser does not support HTTP Request");
		 return;
	}

	var params="op=remove&id="+idprodotto;
	
	xmlHttp.open("POST",dynamicUrl,true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.onreadystatechange=function() {
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")	{ 	
			if(xmlHttp.responseText=="OK"){			
				openBasket();			
			} else putMessage("Errore! Non è stato possibile eseguire l'operazione",1);
		}
	};
	xmlHttp.send(params);
}
function updateBasket(quantita,idprodotto)
{ 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
		alert ("Browser does not support HTTP Request");
		 return;
	}

	var params="op=num&quantita="+quantita+"&id="+idprodotto;
	
	xmlHttp.open("POST",dynamicUrl,true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.onreadystatechange=function() {
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")	{ 	
			if(xmlHttp.responseText=="OK"){			
				openBasket();			
			} else putMessage("Errore! Non è stato possibile eseguire l'operazione",1);
		}
	};
	xmlHttp.send(params);
}
function bancasella(form)
{ 
	document.forms["formbancasella"].submit();
}
function checkPayment(){
	var valore=-1;
	for (i = 0; i < document.forms['metodop'].metodopagamento.length; i++){
		if ( document.forms['metodop'].metodopagamento[i].checked){
			valore=document.forms['metodop'].metodopagamento[i].value;
		} 
	} 
	if(valore!=-1){ 
		order(valore);	
	} else {
		alert('Devi selezionare un metodo di pagamento');	
	} 
}

function basketBox(testo)
{
    var basketDIV=document.getElementById("basketBox");
	 var darkBox=document.getElementById("darkBox");
	if(basketDIV==null){
		var basketDIV = document.createElement("div");
		basketDIV.id="basketBox";
		var darkBox = document.createElement("div");
		darkBox.id="darkBox";
	} 
	basketDIV.style.cssText = "z-index:1002;width:800px;border-width:1px;background-color:#A8B9B1;border-color:#23503B;border-style:solid;";
	darkBox.style.cssText = "z-index:1001;background-color:#000000;";
	basketDIV.innerHTML="<div style='padding-top:5px;padding-bottom:5px;width:100%;background-color:#FFFFFF;text-align:right'><input class=\"shopButtonstyle\" style=\"margin-top:-3px;float:right\" type=button value=\"X\" onClick=\"closeBasket()\">&nbsp;</div>"+testo;
	
	document.body.appendChild(darkBox);
	 var browserDims=$(document.body).getDimensions();
	 var elt2 = $('darkBox');
	 var styles2 = {opacity: '0.4', filter: 'alpha(opacity=40)',  position : 'absolute', top : '0px', left : '0px' , width : '100%' , height : '100%' };
	 darkBox.setStyle(styles2);
	 
	 document.body.appendChild(basketDIV);
	 var eltDims = $('basketBox').getDimensions();
	 var y = (browserDims.height - eltDims.height) / 2;
	 var x = (browserDims.width - eltDims.width) / 2;
	 var styles = { position : 'absolute', top : y + 'px', left : x + 'px' };
	 basketDIV.setStyle(styles);
}

function closeBasket()
{
    Effect.Fade('basketBox', { duration: 1.0 });
	Effect.Fade('darkBox', { duration: 1.0 });
}

function putMessage(testo,tipo)
{
    var messageDiv=document.getElementById("shopMessage")
	if(messageDiv==null){
		var messageDiv = document.createElement("div");
		messageDiv.id="shopMessage";
	} else {

	}
	if (tipo==0) messageDiv.style.cssText = "z-index:1000;position:absolute;top:"+(cursor.y-40)+"px;left:"+(cursor.x-50)+"px;padding:10px;border-width:1px;background-color:#A8B9B1;border-color:#23503B;border-style:solid;";
	else messageDiv.style.cssText = "z-index:1000;position:absolute;top:"+(cursor.y-40)+"px;left:"+(cursor.x-50)+"px;padding:10px;border-width:1px;background-color:rgb(255, 235, 232);border-color:rgb(221, 60, 16);border-style:solid;";
	messageDiv.innerHTML=testo;
    document.body.appendChild(messageDiv);
	Effect.Fade('shopMessage', { duration: 2.0 });
}

function initShop() {
  document.onmousemove = getPosition;
  if(shopOn) {
	 createShopBar();
	 var bottoni=document.getElementsByName("btaddBasket");
  	  for(i=0;i<bottoni.length;i++){
		bottoni.item(i).style.cssText ="display:block;background-color: #23503B;border: 2px solid #A8B9B1;font-family: Verdana, Geneva, sans-serif;font-size: 9px;font-weight: bold;color: #FFF;";
	  }
  } 
}

function createShopBar(){
  var container=document.getElementById("banner")
  if(container){
	 shopBar = document.createElement("div");
	 shopBar.id="shopBar";
	 shopBar.style.cssText = "height:20px;color:#FFFFFF;position:relative;border-width:1px;background-color:#23503B;";
     container.appendChild(shopBar);
	 updateShopBar();
  }
}

function getPosition(e) {
    e = e || window.event;
    cursor = {x:0, y:0};
    if (e.pageX || e.pageY) {
        cursor.x = e.pageX;
        cursor.y = e.pageY;
    }
    else {
        cursor.x = e.clientX +
            (document.documentElement.scrollLeft ||
            document.body.scrollLeft) -
            document.documentElement.clientLeft;
        cursor.y = e.clientY +
            (document.documentElement.scrollTop ||
            document.body.scrollTop) -
            document.documentElement.clientTop;
    }
    return cursor;
}


function GetXmlHttpObject()
{
	var xmlHttp=null;
	try
	 {
	 // Firefox, Opera 8.0+, Safari
	 xmlHttp=new XMLHttpRequest();
	 }
	catch (e)
	 {
	 //Internet Explorer
	 try
	  {
	  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	  }
	 catch (e)
	  {
	  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	  }
	 }
	return xmlHttp;
}

function checkemail(str){
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if (filter.test(str)) return true
	else return false
}

function verifyorder()
{ 

	if (document.forms["ordine"].nome.value=="")
	{
		alert("Il campo nome non può essere vuoto!");
		return false;
	}
	if (document.forms["ordine"].cognome.value=="")
	{
		alert("Il campo cognome non può essere vuoto!");
		return false;
	}
	if (document.forms["ordine"].indirizzo.value=="")
	{
		alert("Il campo indirizzo non può essere vuoto!");
		return false;
	}
	if (document.forms["ordine"].citta.value=="")
	{
		alert("Il campo città non può essere vuoto!");
		return false;
	}
	if (document.forms["ordine"].cap.value=="")
	{
		alert("Il campo CAP non può essere vuoto!");
		return false;
	}
	if (document.forms["ordine"].provincia.value=="")
	{
		alert("Il campo provincia non può essere vuoto!");
		return false;
	}
	if (document.forms["ordine"].telefono.value=="")
	{
		alert("Il campo telefono non può essere vuoto!");
		return false;
	}
	if (document.forms["ordine"].email.value=="" || !checkemail(document.forms["ordine"].email.value))
	{
		alert("L'indirizzo e-mail inserito non è valido!");
		return false;
	}
	if (document.forms["ordine"].approvazione.checked == false)
	{
		alert("Per conludere l'ordine è necessario dichiarare di aver letto e approvato le Condizioni di vendita!");
		return false;
	}
	ordineConcluso();
	return false;
}
