var http;
	
function change_action(acc){
	
	switch(acc){
		case 0:
			document.getElementById("rec_link").className = "visible";
			document.getElementById("rec_send_friend").className = "invisible";
			//document.getElementById("rec_send_rec").className = "invisible";
			document.getElementById("rec_gracias").className = "invisible";
			break;
		case 1:
			document.getElementById("rec_link").className = "invisible";
			document.getElementById("rec_send_friend").className = "visible";
			//document.getElementById("rec_send_rec").className = "invisible";
			document.getElementById("rec_gracias").className = "invisible";
			break;
		case 2:
			document.getElementById("rec_link").className = "invisible";
			document.getElementById("rec_send_friend").className = "invisible";
			//document.getElementById("rec_send_rec").className = "visible";
			document.getElementById("rec_gracias").className = "invisible";
			break;
		case 3:
			document.getElementById("rec_link").className = "invisible";
			document.getElementById("rec_send_friend").className = "invisible";
			//document.getElementById("rec_send_rec").className = "invisible";
			document.getElementById("rec_gracias").className = "visible";
			break;
	}
}

/**********************************************/
/* FUNCIONS QUE CONTROLEN "ENVIAR A UN AMIGO" */

function send_to_friend(){
	form = document.getElementById('send_friend_form');
	//validació de camps
	
	//validació de nombre
	if(form.nombre.value == ""){
		alert("El campo Tu nombre es incorrecto");
		return false;
	}
	//validació de mail
	if(!validaEmail(form.mail)){
		alert("El campo Tu e-mail es incorrecto");
		return false;
	}
	//validació de friend
	if(form.friend.value == "") {
		alert("El campo Nombre de tu amigo es incorrecto");
		return false;
	}
	//validació de mail_to
	if(!validaEmail(form.mail_to)) {
		alert("El campo E-mail de tu amigo es incorrecto");
		return false;
	}
	//validació de comment
	/*if(form.comment.value == "") {
		alert("El campo Comentarios es incorrecto");
		return false;
	}*/
	
	
	dir = "../includes/mail/send_friend_youcook.php";
	vars = get_query('send_friend_form');
	sendQuerystring(dir + vars, handle_sf);
}
function handle_sf(){ 
    //alert("handleHttpResponse");
    if (http.readyState == 4){ 
    		form = document.getElementById("send_friend_form");
    		form.friend.value = "";
    		form.mail_to.value = "";
    		form.comment.value = "";
    		change_action(3);
    		
    		//faig insert a les receptes
    		act_stats('../../estadistica/','rec_send');
    } 
	
}


/***********************************************/
/* FUNCIONS QUE CONTROLEN "ENVIANOS TU RECETA" */

function valida_receta(){
	form = document.getElementById('send_receta_form');
	//validació de camps
	
	//validació de nombre
	if(form.nombre.value == ""){
		alert("El campo Nombre es incorrecto");
		return false;
	}
	//validació de mail
	if(!validaEmail(form.mail)){
		alert("El campo E-mail es incorrecto");
		return false;
	}
	//validació de friend
	if(form.tit_rec.value == ""){
		alert("El campo Nombre de la receta es incorrecto");
		return false;
	}
	//validació de friend
	if(form.time_rec.value == ""){
		alert("El campo Nombre de la receta es incorrecto");
		return false;
	}
	//validació de mail_to
	if(form.ing_rec.value == ""){
		alert("El campo Ingredientes es incorrecto");
		return false;
	}
	//validació de comment
	if(form.prep_rec.value == ""){
		alert("El campo Preparación es incorrecto");
		return false;
	}
	
	//miro si s'adjunta un video o una imatge
	if((form.img_file.value == "") || (form.video_file.value == "")){
		alert("Debe adjuntar una imagen y un video");
		return false;
	}
	
	//valido el format de la imatge
	if(form.img_file.value != ""){
		var ext = form.img_file.value.substring(form.img_file.value.lastIndexOf(".") +1, form.img_file.value.length).toLowerCase();
		//alert(ext);
		if((ext != "bmp") && (ext != "gif") && (ext != "jpeg") && (ext != "jpg")){
			alert("El formato de la imagen no es correcto");
			return false;
		}
	}
	
	//miro si accepten l'avís legal
	if(!form.cond_us.checked){
		alert("Debe aceptar el Aviso legal")
		return false;
	}
	
	
	//canvio el target i l'action del formulari
	form.action = "../includes/mail/upload_files.php";
	form.target = "files_upload";
	//form.target = "_black";
	
	document.getElementById("rec_send_rec").className = "invisible";
	document.getElementById("rec_load").className = "visible";
	
	form.submit();
	
}

function send_receta(f_img, f_vid){
	//alert("imatges pujades...");
	form = document.getElementById('send_receta_form');
	
	form.f_image_name.value = f_img;
	form.f_video_name.value = f_vid;
	
	dir = "../includes/mail/send_receta.php";
	vars = get_query('send_receta_form');
	sendQuerystring(dir + vars, handle_sr);
}

function handle_sr(){ 
    //alert("handleHttpResponse");
    if (http.readyState == 4) 
    { 
    		form = document.getElementById("send_receta_form");
    		form.tit_rec.value = "";
    		form.ing_rec.value = "";
    		form.prep_rec.value = "";
				document.getElementById("rec_load").className = "invisible";
				document.getElementById("rec_gracias").className = "visible";
    		
    		//faig insert a les receptes
    		act_stats('../../estadistica/','rec_res');
    } 
	
}

//declaro mi objeto httpdRequest 
var http;

/* 
Este es nuestro manejador de eventos, lo que hace despues de resivir la info en el metodo sendQueryString 

Estado del Objeto: 
0 = uninitialized 
1 = loading 
2 = loaded 
3 = interactive 
4 = complete 
*/


/* 
aki es donde mandas el resquest del server de la pagina 

Normalmenteo uno querie que el servidor procese la pagina enviada por XmlHttpRquest con objetos diferentes a lo normales. 
Esto se hace reconociendo POST Y GET 

Este script es asincronico -- sigue corriendo despues de aver enviado un request 

lo de send(null) es lo normal todavia no se mas que esto asi que vamos por paso ^_^ 
*/


//funcio que fa una peticio (utilitza http (si nomes fai una pet));
function sendQuerystring(dir, func) 
{ 
	http = getXmlHttpObject();
	//abre la pagina
  http.open("GET", dir, true);
  //mando la información obtenida a la funcion handleHttpResponse
  //http.onreadystatechange = handleHttpResponse;
  http.onreadystatechange = func;
  //send nada
  http.send(null);
} 


//funcio que fa una peticio (utilitza http_obj (si fai més de una pet));
function sendPet(dir, func, http_obj) 
{ 
	http_obj = getXmlHttpObject();
	//abre la pagina
  http_obj.open("GET", dir, true);
  //mando la información obtenida a la funcion handleHttpResponse
  //http.onreadystatechange = handleHttpResponse;
  http_obj.onreadystatechange = func;
  //send nada
  http_obj.send(null);
} 


/* 
esta es la funcion principal, no tocar solo copy y paste y listo ^_^ 
*/
 
function getXmlHttpObject() {  
    //alert("getXmlHttpObject");
    var xmlhttp;
		
    /*@cc_on 
    @if (@_jscript_version >= 5) 
    try 
    { 
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
    } 
    catch (e) 
    { 
    
    try{ 
    		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    catch (e){ 
    		xmlhttp = false; 
    } 
    } 
    @else 
    xmlhttp = false; 
    @end @*/

    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
        try{
            xmlhttp = new XMLHttpRequest();
        }
        catch (e){
            xmlhttp = false;
        } 
    }
    return xmlhttp; 
}

//functio que genera el xorro de variables pel GET
function get_query(form_name){
		form = document.getElementById(form_name);
		query = "?" + form.elements[0].id + "=" + codif_query(form.elements[0].value);
		for(var i = 1; i < form.elements.length; i++){
			query = query + "&" + form.elements[i].id + "=" + codif_query(form.elements[i].value);
		}
		
		return query;
	
}

//funció que permet enviar%
function codif_query(str){
	if(str != undefined){
		str = replace_all(str, "%", "___per___");
		str = str_html(str);
		str = replace_all(str, "&", "___amp___");
		return str;
	}
}

function replace_all(varStr,varText,varBy){
	var strTmp = varStr;
	
	while(strTmp.indexOf(varText) >= 0) {
		strTmp = strTmp.replace(varText,varBy);
		
	}
	
	return strTmp;
}

function str_html(str){
	if(str != ""){
		str = replace_all(str,"&","&amp;");
		str = replace_all(str,"¿","&iquest;");
		str = replace_all(str,"¡","&iexcl;");
		str = replace_all(str, "ª", "&ordf;");
		str = replace_all(str, "º", "&ordm;");
		str = replace_all(str,'"',"&quot;");
		str = replace_all(str,"\n","<br>");
		/*
		str = replace_all(str, "ç", "&ccedil;");
		str = replace_all(str, "Ç", "&Ccedil;");
		str = replace_all(str, "ñ", "&ntilde;");
		str = replace_all(str, "Ñ", "&Ntilde;");
		
		str = replace_all(str, "á", "&aacute;");
		str = replace_all(str, "é", "&eacute;");
		str = replace_all(str, "í", "&iacute;");
		str = replace_all(str, "ó", "&oacute;");
		str = replace_all(str, "ú", "&uacute;");
		str = replace_all(str, "Á", "&Aacute;");
		str = replace_all(str, "É", "&Eacute;");
		str = replace_all(str, "Í", "&Iacute;");
		str = replace_all(str, "Ó", "&Oacute;");
		str = replace_all(str, "Ú", "&Uacute;");
		str = replace_all(str, "à", "&agrave;");
		str = replace_all(str, "è", "&egrave;");
		str = replace_all(str, "ò", "&ograve;");
		str = replace_all(str, "À", "&Agrave;");
		str = replace_all(str, "È", "&Egrave;");
		str = replace_all(str, "Ò", "&Ograve;");
		str = replace_all(str, "ü", "&uuml;");
		str = replace_all(str, "Ü", "&Uuml;");
		str = replace_all(str, "ï", "&iuml;");
		str = replace_all(str, "Ï", "&Iuml;");*/ 
		
	}
	return str;
}

function validaEmail(campo) {
	var valor;
	var posicion1;
	var posicion2;
	var valuser;
	var valhost;
	var valdomain;
	var valserv;
	
	valor = campo.value;
	if(valor == ""){
		return false;
	}
	
	posicion1 = valor.indexOf("@");
	if(posicion1 == -1) {
		return false;
	}
	if(posicion1 < 1) {
		return false;
	}
	
	valuser = valor.substring(0, posicion1);
	
	valserv = valor.substring(posicion1+ 1, valor.length);
	posicion2 = valserv.indexOf(".");
	if(posicion2 == -1) {
		return false;
	}
	if(posicion2 < 1) {
		return false;
	}
	
	valhost = valserv.substring(0, posicion2);
	valdomain = valserv.substring(posicion2 + 1, valor.length);
	if((valuser=="") || (valhost=="") || (valdomain=="")){
		return false;
	}
	if(valdomain.length < 2) {
		return false;
	}
	return true;
}
