var options_fields=new Array();

rules=new Array()

function actualizaPrecio(){
	var cantidad=1
	for(var i=0;i<options_fields.length;i++)
		if(options_fields[i].id=='unidades')
			cantidad=options_fields[i].value;
			
	if(document.getElementById("numLogos")){
		var numLogos=document.getElementById("numLogos").value;
		if(document.getElementById("no_personaliza").checked) numLogos=0;
	}
	else numLogos=0;
			
	var id_producto=document.getElementById('logoCarrito').parentNode.id;
	
	var t1=document.getElementById('proceso1').value;
	var t2=document.getElementById('proceso2').value;
	var t3=document.getElementById('proceso3').value;
	
	var c1=document.getElementById('colores1').value;
	var c2=document.getElementById('colores2').value;
	var c3=document.getElementById('colores3').value;
			
	Ajax(basedir2()+'process/calculaPrecio.php?id='+id_producto+'&cantidad='+cantidad+'&numLogos='+numLogos+
		'&t1='+t1+'&t2='+t2+'&t3='+t3+'&c1='+c1+'&c2='+c2+'&c3='+c3,calculaPrecio)
}

function calculaPrecio(){
	if(request.readyState==4){
		var precio=document.getElementById('precio_final');
		precio.removeChild(precio.firstChild);
		precio.appendChild(document.createTextNode(request.responseText+' €'));
	}
}

rules['form #pais'] = function(element){
		element.onchange = function(evt){
			evt = (evt) ? evt : (window.event) ? window.event : "";
			var target=evt.srcElement?evt.srcElement:evt.target;
			Ajax(basedir2()+'process/getProvincias.php?id='+target.value,actualizaProvincias);
		}
	};
	
	
function actualizaProvincias(){
	if(request.readyState==4){
		var provincia=document.getElementById('provincia');
		while(provincia.firstChild) provincia.removeChild(provincia.firstChild);
		
		var provincias=request.responseXML.getElementsByTagName('provincia');
		
		for(var i=0;i<provincias.length;i++){
			var option=document.createElement('option');
			option.appendChild(document.createTextNode(provincias[i].getAttribute('nombre')));
			option.value=provincias[i].getAttribute('id')
			provincia.appendChild(option);
		}
	}
}

rules['#unidades'] = function(element){
		element.onchange = function(evt){
			actualizaPrecio();
		}
	};

rules['.infoLogo select'] = function(element){
		element.onchange = function(evt){
			actualizaPrecio();
		}
	};

rules['.infoLogo select'] = function(element){
		element.onchange = function(evt){
			actualizaPrecio();
		}
	};

rules['#si_personaliza'] = function(element){
		element.onclick = function(evt){
			document.getElementById("area_personalizacion").style.display="block";
			actualizaPrecio();
		}
	};
	
rules['#no_personaliza'] = function(element){
		element.onclick = function(evt){
			document.getElementById("area_personalizacion").style.display="none";
			actualizaPrecio();
		}
	};
	
rules['#numLogos'] = function(element){
		element.onchange = function(evt){
			var value=document.getElementById("numLogos").value;
			
			for(var i=1;i<4;i++)
				document.getElementById("infoLogo"+i).style.display=(value>=i?"block":"none");
			actualizaPrecio();
		}
	};

rules['.sel_cantidad'] = function(element){
		element.onclick = function(evt){
			evt = (evt) ? evt : (window.event) ? window.event : "";
			var target=evt.srcElement?evt.srcElement:evt.target;
			document.getElementById('unidades').value=target.value
		}
	};

rules['.remove_item'] = function(element){
	element.onclick = removeItem
}

function removeItem(evt){
		evt = (evt) ? evt : (window.event) ? window.event : "";
		var target=evt.srcElement?evt.srcElement:evt.target;
		if(target.id.substr(0,4)!='item') var pos=target.parentNode.id.substr(4)
		else var pos=target.id.substr(4)
		Ajax(basedir2()+'process/elimina_carrito.php?id='+pos,showCarrito);
		target.parentNode.parentNode.removeChild(target.parentNode);
		return false;
	}

rules['#btn_inc'] = function(element){
		element.onclick = function(evt){
			var unidades=document.getElementById('unidades');
			unidades.value++
			actualizaPrecio();
			return false;
		}
	};
	
	
rules['a.print'] = function(element){
		element.onclick = function(evt){
			print();
			return false;
		}
	};
	
rules['#btn_dec'] = function(element){
		element.onclick = function(evt){
			var unidades=document.getElementById('unidades');
			if(unidades.value>1)  unidades.value--
			actualizaPrecio();
			return false;
		}
	};
	
rules['.carrito'] = function(element){
		element.onclick = function(evt){
			
			evt = (evt) ? evt : (window.event) ? window.event : "";
			var target=evt.srcElement?evt.srcElement:evt.target;
			
			
			if(!destino_carrito)  destino_carrito=document.getElementById('carrito');
			origen_carrito=target;
			translacion=0;
			
			if(caja_carrito_translada) caja_carrito_translada.parentNode.removeChild(caja_carrito_translada);
			var box=document.createElement('div');
			
			box.style.border='1px solid #666'
			box.style.position='absolute'
			box.style.width='40px'
			box.style.height='40px'
			caja_carrito_translada=box;
			target.parentNode.appendChild(box);
			translate()
			
			var cantidad=1
			var url='';
			for(var i=0;i<options_fields.length;i++)
				if(options_fields[i].id=='unidades')
					cantidad=options_fields[i].value;
				else url+='&'+options_fields[i].id+'='+options_fields[i].value;
				
			if(document.getElementById("numLogos")){
				var numLogos=document.getElementById("numLogos").value;
				if(document.getElementById("no_personaliza").checked) numLogos=0;
				
				var t1=document.getElementById('proceso1').value;
				var t2=document.getElementById('proceso2').value;
				var t3=document.getElementById('proceso3').value;
				
				var c1=document.getElementById('colores1').value;
				var c2=document.getElementById('colores2').value;
				var c3=document.getElementById('colores3').value;
			}
			else{
				var numLogos=0;
				var t1='';
				var t2='';
				var t3='';
				var c1='';
				var c2='';
				var c3='';
			}
			
			Ajax(basedir2()+'process/add_carrito.php?producto='+target.parentNode.id+'&cantidad='+cantidad+url+'&numLogos='+numLogos+
				'&t1='+t1+'&t2='+t2+'&t3='+t3+'&c1='+c1+'&c2='+c2+'&c3='+c3,showCarrito)
			return false;
		}
	};
	
var origen_carrito=null;
var destino_carrito=null;
var translacion=0;
var caja_carrito_translada=0;
	
rules['.option_field'] = function(element){
		options_fields.push(element);
	};
	
	
function translate(){
	translacion++;
	var origen=findPos(origen_carrito);
	var destino=findPos(destino_carrito);
	caja_carrito_translada.style.left=(origen[0]*(10-translacion)+destino[0]*translacion)/10+'px'
	caja_carrito_translada.style.top=(origen[1]*(10-translacion)+destino[1]*translacion)/10+'px'
	
	if(translacion<10) timer=setTimeout(translate,50);
	else{
		caja_carrito_translada.parentNode.removeChild(caja_carrito_translada);
		caja_carrito_translada=null;
	}
}
	
function findPos(obj) {
	var curleft = curtop = 0;

	if (obj.offsetParent)
	do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
	} while (obj = obj.offsetParent);

	return [curleft,curtop];
}

	
function Ajax(query,func){
	if (window.XMLHttpRequest) request=new XMLHttpRequest()
	else if (window.ActiveXObject) request=new ActiveXObject("Microsoft.XMLHTTP")
	
	if (request!=null)
	{
		request.onreadystatechange=func;
		request.open("GET",query,true)
		request.send(null)
	}
}

var valores_derivados=[];

function showCarrito(){
	if(request.readyState==4){
		var carrito=document.getElementById('carrito');
		while(carrito.firstChild) carrito.removeChild(carrito.firstChild);
		var tabla=document.createElement('table');
		var tbody=document.createElement('tbody');
		carrito.appendChild(tabla);
		tabla.setAttribute('class','tamanoletra');
		tabla.appendChild(tbody);
		
		if(!request.responseXML){
			alert(request.responseText)
			return;
		}
		
		var productos=request.responseXML.getElementsByTagName('producto');
		
		var fila=document.createElement('tr');
		var td=document.createElement('th');
		td.appendChild(document.createTextNode('Cnt.'));
		fila.appendChild(td);
		td=document.createElement('th');
		td.appendChild(document.createTextNode('Prod.'));
		fila.appendChild(td);
		td=document.createElement('th');
		td.appendChild(document.createTextNode('Precio'));
		fila.appendChild(td);
		fila.appendChild(document.createElement('th'));
		
		tbody.appendChild(fila);
			
		var total=0;
		for(var i=0;i<productos.length;i++){
			fila=document.createElement('tr');
			td=document.createElement('td');
			td.appendChild(document.createTextNode(productos[i].getAttribute('cantidad')));
			fila.appendChild(td);
			
			var car='';
			for(var j=0;j<productos[i].childNodes.length;j++)
				if(productos[i].childNodes[j].nodeName=='caracteristica')
					car+=' ('+productos[i].childNodes[j].getAttribute('value')+')';
			
			td=document.createElement('td');
			td.appendChild(document.createTextNode(productos[i].getAttribute('nombre').substr(0,12)+car));
			fila.appendChild(td);
			td=document.createElement('td');
			td.appendChild(document.createTextNode((productos[i].getAttribute('precio')*1).toFixed(2)+'€'));
			fila.appendChild(td);
			td=document.createElement('td');
			
			 var newImage = document.createElement("img");

            newImage.src = basedir()+"../img/close.png";
            
            td.appendChild(newImage); 
			
			
			td.id='item'+i;
			td.className='remove_item';
			td.onclick=removeItem
			fila.appendChild(td);
			
			total+=productos[i].getAttribute('precio')*1;
			
			tbody.appendChild(fila);
		}
		
		var fila=document.createElement('tr');
		fila.className='total';
		var td=document.createElement('td');
		td.appendChild(document.createTextNode('Total:'));
		td.colSpan=2;
		fila.appendChild(td);
		td=document.createElement('td');
		td.appendChild(document.createTextNode(total.toFixed(2)+'€'));
		fila.appendChild(td);
		fila.appendChild(document.createElement('td'));
		
		tbody.appendChild(fila);
		
		var a=document.createElement('a');
		
var url = window.location;
		a.setAttribute('href',basedir2()+'carrito/');
		a.appendChild(document.createTextNode('Ver carrito'))
		carrito.appendChild(a);
		
	
		/*if(select_box) select_box.parentNode.removeChild(select_box);
			select_box=null;
		if(!select_box){
			select_box=document.createElement('ul');
			select_box.className='select_box';
			input.parentNode.appendChild(select_box);
		}
		
		opciones=request.responseXML.getElementsByTagName('option');
		for(var i=0;i<opciones.length;i++){
			opcion=document.createElement('li');
			opcion.appendChild(document.createTextNode(opciones[i].getAttribute('texto')));
			opcion.onmousedown=select;
			select_box.appendChild(opcion);
			select_box.appendChild(document.createTextNode(' '));
			var derivadas=opciones[i].getElementsByTagName('derivada')
			
			valores_derivados[i]=[];
			for(var j=0;j<derivadas.length;j++)
				valores_derivados[i][j]=[derivadas[j].getAttribute("field"),derivadas[j].getAttribute("value")];
		}*/
	}
}

function basedir2(){
	if((''+window.location).substr(0,16)=='http://127.0.0.1')
		return str_repeat('../',substr_count(window.location,'/')-4);
	else return str_repeat('../',substr_count(window.location,'/')-3);
}

function substr_count(cadena,substring){
	var count=0
	cadena=""+cadena
	for(var i=0;i<cadena.length;i++)
		if(cadena.charAt(i)==substring) count++;
	return count
}

function str_repeat(string,count){
	var result=''
	for(var i=0;i<count;i++)
		result+=string;
	return result
}

Behaviour.register(rules);