<!--

// ------------------------------------------------------------------------
//  Script realizado por:
//             Carles Martínez Rius (c) '2006
// 		infoARROBAcalaix.net
//  No se permite la copia, distribución o modificación de
//  este código sin la obtención de un documento de conformidad
//  firmado por el autor. Posteriormente al citado procedimiento legal
//  será necesario indicar la fuente, y el autor del citado código en cada
//  código en el que sea utilizado.
// ------------------------------------------------------------------------

  	function findPosX(obj)
  	{
   	 	var curleft = 0;
    	if(obj.offsetParent)
        	while(1) 
        	{
          	curleft += obj.offsetLeft;
          	if(!obj.offsetParent)
            	break;
          	obj = obj.offsetParent;
        	}
    	else if(obj.x)
        	curleft += obj.x;
    	return curleft;
  	}

  	function findPosY(obj)
  	{
    	var curtop = 0;
    	if(obj.offsetParent)
        	while(1)
        	{
          	curtop += obj.offsetTop;
          	if(!obj.offsetParent)
            	break;
          	obj = obj.offsetParent;
        	}
    	else if(obj.y)
        	curtop += obj.y;
    	return curtop;
  	}

	function PosObj(obj, X, Y) {
		obj.style.left = X + "px";
		obj.style.top = Y + "px";
	}
	function TamObj(obj, W, H) {
		obj.style.height = H + "px";
		obj.style.width = W + "px";
	}
	function GetObjHeight(obj) {
		return parseInt(obj.style.height);
	}
	function GetObjWidth(obj) {
		return parseInt(obj.style.width);
	}

	var quadreON=false;
	var pquadre;
	var qposX, qposY, qsizeW, qsizeH;
	var qstepX, qstepY, qstepW, qstepH;
	var dialogON=false;
	var cdialog_opacity, cdialog_step, cdialog_limit, cdialog, cdialog_width, cdialog_height;
	var nomprod, idprod, preuprod;

	function CarritoAdd(tableName, nomproducte, preu, idproducto) {
		var i=0;
		var j=0;
		var obj;
		
		if ( res==-1 ) {
			obj = document.getElementById(tableName);
		} else {
			eval("obj = document.all." + tableName);
		} //IF_ELSE
		
		if ((quadreON==true)||(dialogON==true)) { return; }

		//Troba la possició de la taula on està el producte
		qposX = findPosX(obj); qposY = findPosY(obj);

		//Estableix el nom del producte i l'ID per al quadre de diàleg i la comanda
		nomprod = nomproducte;
		idprod = idproducto;
		preuprod = preu;

		Dialog_Open();
	} //end_function

	function QuadreMinimitza() {

		quadreON = true;
		if ( res==-1 ) {
			pquadre = document.getElementById("DIVpquadre");
		} else {
			pquadre = document.all.DIVpquadre;
		} //IF_ELSE
		
		//posiciona el quadre...
		PosObj(pquadre, qposX, qposY);
		pquadre.style.visibility = "visible";
		
		//Calcula increments i passos
		qstepX = qposX/20; qstepY = qposY/20;
		qsizeW = 536; qsizeH = 33;
		TamObj(pquadre, qsizeW, qsizeH);
		qstepW = qsizeW/20; qstepH = qsizeH/20;
		
		//Minimitza quadre...
		QuadreMinimitza_Animacio();
	}
	function QuadreMinimitza_Animacio() {
			//Calcula la nova possició
			qposX = qposX - qstepX; qposY = qposY - qstepY;
			PosObj(pquadre, qposX, qposY);
			//Calcula el nou tamany
			qsizeW = qsizeW - qstepW; qsizeH = qsizeH - qstepH;
			TamObj(pquadre, qsizeW, qsizeH);
			if ( (qposX>0) && (qposY>0) && (qsizeW>0) && (qsizeH>0) ) {
				setTimeout("QuadreMinimitza_Animacio()", 40);
			} else {
				pquadre.style.visibility = "hidden";
				quadreON = false;
			} //IF
	} //end_function
	
	function Dialog_Hidden()
	{
		cdialog.style.visibility = "hidden";
	} //end_function

	function Dialog_Appear()
	{
		cdialog_opacity += cdialog_step;
		if (cdialog_opacity < cdialog_limit) {
			if (res==-1) {
				cdialog.style.opacity = cdialog_opacity;
			} else {
				cdialog.filters.alpha.opacity = cdialog_opacity;
			} //IF_ELSE
			setTimeout("Dialog_Appear()",50);
		} else {
			if (res==-1) {
				cdialog.style.opacity = 1;
			} else {
				cdialog.filters.alpha.opacity = 100;
			}
			document.frmdialog.cdialog_unidades.focus();
		} //IF_ELSE
	} //end_function

	function Dialog_Open()
	{
		var cdialog_text;
	
		//Activa el flag del quadre
		dialogON = true;
		
		//Configura el quadre de diàleg
		if ( res==-1 ) {
			cdialog = document.getElementById("DIVcdialog"); //Localitza l'objecte del quadre de diàleg
			cdialog_text = document.getElementById("DIVcdialog_text");
		} else {
			cdialog = document.all.DIVcdialog; //Localitza l'objecte del quadre de diàleg
			cdialog_text = document.all.DIVcdialog_text;
		} //IF_ELSE

		cdialog_width = 300;
		cdialog_height = 180;

		//Set position of the dialog: center screen
		if ( res==-1 ) {
			cdialog_limit = 1;
			cdialog_opacity = 0; //opacitat inicial
			cdialog.style.opacity = cdialog_opacity;
			cdialog_step = 0.2; //passos de transparència
			cdialog.style.width = cdialog_width + "px";
			cdialog.style.height = cdialog_height + "px";
			cdialog.style.left = (window.pageXOffset + window.innerWidth/2 - cdialog_width/2)*1 + "px";
			cdialog.style.top = (window.pageYOffset + window.innerHeight/2 - cdialog_height/2)*1 + "px";
		} else {
			cdialog_limit = 100;
			cdialog_opacity = 0; //opacitat inicial
			cdialog.filters.alpha.opacity = cdialog_opacity;
			cdialog_step = 20; //passos de transparència
			cdialog.style.width = cdialog_width;
			cdialog.style.height = cdialog_height;
			cdialog.style.pixelLeft = (document.body.scrollTop + document.body.clientWidth/2 - cdialog_width/2)*1;
			cdialog.style.pixelTop = (document.body.scrollLeft + document.body.clientHeight/2 - cdialog_height/2)*1;
		} //IF_ELSE

		//Estableix el nom del producte
		cdialog_text.innerHTML = "Indique el número de unidades que desea añadir del producto <i>" + nomprod + "</i>:";

		//Restableix els controls del formulari
		document.frmdialog.cdialog_unidades.disabled = false;
		document.frmdialog.btnOK.disabled = false;
		document.frmdialog.btnCancel.disabled = false;
		document.frmdialog.btnOK.value = "Aceptar";
	
		//mostra el quadre de diàleg
		cdialog.style.visibility = "visible";
		
		//Posa el valor per defecte al formulari del quadre de diàleg
		document.frmdialog.cdialog_unidades.value = "1";
		
		//Coloca el reultat inicial del cost
		RecalculaTotal(1);
		
		//Mostra la transició del quadre
		Dialog_Appear();
	} //end_function

	function Dialog_Close()
	{
		cdialog.style.visibility = "hidden";
		dialogON = false;
	} //end_function
	
	function Dialog_OK()
	{
		var aux = document.frmdialog.cdialog_unidades.value;
		if (aux.length==0) {
			alert("Por favor, indique el número de unidades que desea incluir.");
			document.frmdialog.cdialog_unidades.focus();
			return;
		} //IF
		//Desactiva botons i el textbox del formulari
		document.frmdialog.cdialog_unidades.disabled = true;
		document.frmdialog.btnOK.disabled = true;
		document.frmdialog.btnCancel.disabled = true;
		document.frmdialog.btnOK.value = "Enviando...";
		//Crida a procediment AJAX
		//Ajax_Open("test.php");
		Ajax_Open("carritolib.php?accio=prodadd&modid=" + idprod + "&ud=" + aux);
	} //end_function

	function RecalculaTotal(valor) {
		var aux = "";
		var obj;
		var resultado = preuprod*valor;
		if ( res==-1 ) {
			obj = document.getElementById("DIVcdialog_total");
		} else {
			obj = document.all.DIVcdialog_total;
		} //IF_ELSE
		if ( isNaN(valor) ) {
			aux = "x " + preuprod + "&euro; = 0 &euro;";
		} else {
			aux = "x " + preuprod + "&euro; = " + resultado + "&euro;";
		} //IF
		obj.innerHTML = aux;
	} //end_function

	//--------- AJAX ---------------------------------
	var pagina_requerida;
	function Ajax_Open (url)
	{
		if (window.XMLHttpRequest)
		{
			// Si es Mozilla, Safari etc
			pagina_requerida = new XMLHttpRequest ();
		} else if (window.ActiveXObject) {
			// pero si es IE
			try {
				pagina_requerida = new ActiveXObject ("Msxml2.XMLHTTP");
			} catch (e) {
				// en caso que sea una versión antigua
				try {
					pagina_requerida = new ActiveXObject ("Microsoft.XMLHTTP");
				} catch (e) {
					alert("Atención! Su navegador no soporta AJAX. Por favor, actualízelo a una versión más nueva.");
				}
			} //try_catch
		} else {
			return false;
		} //IF_ELSEIF_ELSE

		pagina_requerida.onreadystatechange = function ()
		{
			// función de respuesta
			Ajax_End();
		} //end_function
		pagina_requerida.open ('GET', url, true); // asignamos los métodos open y send
		pagina_requerida.send (null);
	}
	
	function Ajax_End() {
		//falta detenir d'alguna manera la lectura de ajax per a que no aparega l'error varies vegades...
		try {
			if (pagina_requerida.readyState == 4)
			{
				if ( pagina_requerida.status == 200 ) {
					alert(pagina_requerida.responseText);
					QuadreMinimitza();
					Dialog_Close();
				} else if (pagina_requerida.status == 404) {
					alert("Destino de datos incorrecto");
					Dialog_Close();
				} else if (pagina_requerida.status!= 404 && pagina_requerida.status!= 200) {
					alert("Error " + pagina_requerida.status + "! Por favor, inténtelo de nuevo.");
					Dialog_Close();
				} //if_elseif
			}  //if_elseif
		} catch (e) { }
	} //end_function
-->

