/**
 * @author marc
 */

/* ActualitzaCompraOk: recorre tot el formulari buscant els camps 'compraOk'. Els posen tots a 'NULL'
 * 			excepete el que pertany a l'article 'idArticulo' que s'evalua a '1'.
 * 
 */
function ActualitzaCompraOk(nomFormulari,idArticulo) {
	for (i = 0; i < document.forms[nomFormulari].elements.length; i++) {
		if(document.forms[nomFormulari].elements[i].id=='compraOk_1') {
			if(document.forms[nomFormulari].elements[i].name=='compraOk_1_'+idArticulo) {
				document.forms[nomFormulari].elements[i].value = 1;
			} else {
				document.forms[nomFormulari].elements[i].value = "";
			}
		}
	}
}


/* EnviarFormulari: Envia les variables del formulari per ara només sutilitza per 
 *  la url:  Carrito/CarritoArticuloAjax.php.
 * 
 */
function EnviarFormulari(url,nomFormulari){

var variables="";	
	
		for (i=0;i<document.forms[nomFormulari].elements.length;i++){
			
			switch(document.forms[nomFormulari].elements[i].type){
				
				case undefined:
				break;
				
				case "radio":
					if(document.forms[nomFormulari].elements[i].checked) variables+=document.forms[nomFormulari].elements[i].name+"="+document.forms[nomFormulari].elements[i].value+"&";
				break;
				
				case "checkbox":
					if(document.forms[nomFormulari].elements[i].value == 1) {
						variables+=document.forms[nomFormulari].elements[i].name+"="+document.forms[nomFormulari].elements[i].value+"&";
					}
				break;
				
				default:
				  if(document.forms[nomFormulari].elements[i].value == ""){ 
						variables+=document.forms[nomFormulari].elements[i].name+"=NULL&";
					}else{
						variables+=document.forms[nomFormulari].elements[i].name+"="+document.forms[nomFormulari].elements[i].value+"&";
					}
				
				break;
				
			}//fi swithc tipus form
			//if (document.forms[nomFormulari].elements[i].type!=undefined){// evito algun campo raro del formulario.
				
				
			//} //fi if
		} // for lementos de cada form   (t1="+t1+"&)
		
		variables+="&nomFormulari="+nomFormulari; //añado el nombre del formulario y el IDexpediente
	//variables+="&idExpedient="+ObtenirIdExpedient(); 		
		
//	var idFincaActual=ObtenirIdFinca(); // el idFinca aveces no es necesario, cuando no aplica devuelve undefined
//		if (idFincaActual!= undefined ) variables+="&idFinca="+idFincaActual;
		
	Envio(url,variables); // Envio ya afegeix id expedient y idFinca
}


/*  ***********************************************************************************
 *  Envio: Envia la peticion a un php con la url de destinacion y las variables necesarias.
 *  el mismo recoge la respuesta y la pone en el div name='contenidor'.
 *  url: contiene solo 2 url la de modificacion y la de guardar.
 *  variables: incluye el nombre del formulario y el id del expediente.
 *  
 * ***********************************************************************************/

function Envio(url,variables){ 

	
	var contenidor = Obtenir('contenidor');// div para mostar el resultado.
	
	ajax=ObjecteAjax();
	ajax.open("POST", url,true); //Envio de los datos del formulario a la url
	
	//ajax.open("GET", url+'?buscador='+variables,true); //Envio de los datos del formulario a la url
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4) { // recoje el resultado. solo si la peticion ajax ha sido aceptada
		
			eval(ajax.responseText);// obtengo la variable nomDelFormualari del PHP. EXECUTA TOT EL CODI que retorna el php com si fos javascript.
		
			//Actualitzem el contingut de la caixa on es mostra el resum del Carrito de la capçalera 
			nodeCarrito = CrearTexto(mensaje);
			ReemplazarContenidoNodo('textCarrito',nodeCarrito);
			//Mostrem el missatge amb la informació de l'article incorporat al carrito i els links amb les opcions de continuar
			nodeMensaje = CrearTexto(titulo);
			ReemplazarContenidoNodo('tituloMensajeCompra',nodeMensaje);
	
			try{
				//caso Firefox!
			linkTerminar = Crear("a");
			linkTerminar.setAttribute('href',"#");
			linkTerminar.setAttribute('onclick','cargaXML(\'mostrarCarrito.php?idArticulo='+idArticulo+'&ajax=true&actualitzar=true\')');
			linkTerminar.setAttribute('alt','Ir al Carrito ');
			linkTerminar.setAttribute('title','Ir al Carrito ');
			linkTerminar.style.textDecoration = "underline";
			
			
			texto = CrearTexto('Visualizar el carrito y terminar la compra');
			linkTerminar.appendChild(texto);
			ReemplazarContenidoNodo('linkTerminar', linkTerminar);
			
			
			Obtenir('taulaMensajeCompra').style.display="";
			//contenidor.innerHTML="El Artículo Añadido al carrito de la compra";
			
		
		}catch(e){
			 //
			 //entra en este caso cuando es ie7, no se pq fallaba al crear el tag A...
			 // haciendolo de este modo funciona correctamente, no le veo la logica,
			 // la diferencia está en el remplace node por el apenchild final... Lo he probado y no es..
			 // falla la funcion Crear con el tag A!!! lo demas va bien precticamente
			 //02/04/2008 a las 23:05 Cristian
			 
			// creamos el link
			nuevolink = document.createElement("a");
			nuevolink.setAttribute('href',"mostrarCarrito.php?idArticulo="+idArticulo+"&actualitzar=true");
			nuevolink.setAttribute('alt','Ir al Carrito ');
			nuevolink.setAttribute('title','Ir al Carrito ');
			nuevolink.setAttribute('style',"textDecoration: underline;");
			nuevolink.style.textDecoration = "underline";
			
			// creamos el texto
			texto = CrearTexto('Visualizar el carrito y terminar la compra');
			// añadimos el texto al link
			 nuevolink.appendChild(texto);
			 
			// lo añadimos a un objeto existente
			tdLinkTerminar = document.getElementById("linkTerminar");
			ReemplazarContenidoNodo('linkTerminar', nuevolink);
								
			Obtenir('taulaMensajeCompra').style.display="";
			
		}
		
		
	 	}else{
	 	// temps espera de la funcio AJAX
		}
	}//fin function canvi estat peticio AJAX
	
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // metod envio POST
	ajax.send(variables);
	//ajax.send(null);
}



/* ***********************************************************************************
 * ReemplazarContenidoNodo : A partir de l'id d'un contenidor, elimina tots els nodes
 * 			que conté i en crea un de nou amb el contingut que li passem com a paràmetre
 * 
 *    Autor: Marc
 *    data: 24/01/2008
 * 
 * ***********************************************************************************/

function ReemplazarContenidoNodo(idContenidor,nuevoNodo) {
	var elemento = Obtenir(idContenidor);
	while(elemento.firstChild) {
		elemento.removeChild(elemento.firstChild);
	}
	elemento.appendChild(nuevoNodo);
}




Crear= function (tag) { // Crea un elemento

	return document.createElement(tag);
}

CrearTexto= function (tag) { // Crea un elemento
   return document.createTextNode(tag);
}


/*  ***********************************************************************************
 *  nuevoAjax: Crea un objeto Ajax en funcion del navegador detectado.
 *  
 * ***********************************************************************************/

function ObjecteAjax(){
	var xmlhttp=false;
	// Explorer y sus dos versiones de XMLHTTP
 	try {
 		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 	} catch (e) {
 		try {
 			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 		} catch (E) {
 			xmlhttp = false;
 		}
  	}
	//FireFox
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
 		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}