// global variables
var newsletterRequest = false;
var newsletterURL = "";
var loadingDiv="";
var formDiv="";
var alpha = 1;

//submit the form via ajax
function makeRequest(parameters) {
  createRequestObject();
  newsletterRequest.setVar("email", parameters["email"]);
  newsletterRequest.setVar("newsletter", parameters["newsletter"]);
  newsletterRequest.method = 'GET';
  newsletterRequest.element = formDiv;
  newsletterRequest.onCompletion = alertContents;
  newsletterRequest.runAJAX();
}

//create the communication object
function createRequestObject() {
  newsletterRequest = new sack(newsletterURL);
}

//act on the server response
function alertContents() {
	FadeIn();           
}

//prints the server response
function printResponse(){
  alert(http_request.responseText);
  var response = http_request.responseXML.documentElement;
  var n = response.getElementsByTagName('result')[0].firstChild.nodeValue;
  
  message= response.getElementsByTagName('message')[0].firstChild.nodeValue;
  document.getElementById(formDiv).innerHTML = message;
}

//fade out the form
function StartFade(url,fdiv,ldiv) {
   newsletterURL = url;
   formDiv = fdiv;
   loadingDiv = ldiv;
   tStart   = new Date();
   showDiv();
   timerID  = setTimeout("FadeOut()", 100);
}

//handles the fadeout of the formDiv element
function FadeOut(){
  alpha -= 0.1;
  if(alpha < 0){
    alpha = 0;
    get();
  }else{
    obj = document.getElementById(formDiv);
    setOpacity(obj, alpha);
    setTimeout("FadeOut()", 100);
  }
}

//handles the fadein of the formDiv element
function FadeIn(){
  alpha += 0.1;
  if(alpha > 1){
    hideDiv();
    alpha = 1;
  }else{
    obj = document.getElementById(formDiv);
    setOpacity(obj, alpha);
    setTimeout("FadeIn()", 100);
  }
}

//gets the values inserted in the newsletterFormDiv
function get() {
  var obj = document.getElementById("newsletterFormDiv");
  
  var getstr = "?";
  var params = new Array();
  for (i=0; i<obj.childNodes.length; i++) {
     if (obj.childNodes[i].tagName == "INPUT") {
        if (obj.childNodes[i].type == "text") {
           //getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
           params[obj.childNodes[i].name] = obj.childNodes[i].value;
           
        }
        if (obj.childNodes[i].type == "checkbox") {
           if (obj.childNodes[i].checked) {
              //getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
              params[obj.childNodes[i].name] = obj.childNodes[i].value;
           } else {
              //getstr += obj.childNodes[i].name + "=&";
              params[obj.childNodes[i].name] = "";
           }
        }
        if (obj.childNodes[i].type == "radio") {
           if (obj.childNodes[i].checked) {
              //getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
              params[obj.childNodes[i].name] = obj.childNodes[i].value;
           }
        }
        if (obj.childNodes[i].type == "hidden") {
           //getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
           params[obj.childNodes[i].name] = obj.childNodes[i].value;
        }
     }   
     if (obj.childNodes[i].tagName == "SELECT") {
        var sel = obj.childNodes[i];
        //getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
        params[sel.name] = sel.options[sel.selectedIndex].value;
     }
     
  }
  makeRequest(params);
}

//shows a div for progress information
function showDiv(){
  if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(loadingDiv).style.display = 'block';
	}
	else {
		if (document.layers) { // Netscape 4
			document.loadingDiv.display = 'block';
		}
		else { // IE 4
			document.all.loadingDiv.style.display = 'block';
		}
	}
}

//hides a div with the progress information
function hideDiv(){
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(loadingDiv).style.display = 'none';
	}
	else {
		if (document.layers) { // Netscape 4
			document.loadingDiv.display = 'none';
		}
		else { // IE 4
			document.all.loadingDiv.style.display = 'none';
		}
	}
}

/*
* Function to put the new input in the document
*/
function setOuterHTML(element, toValue)
{
	if (typeof(element.outerHTML) != 'undefined')
		element.outerHTML = toValue;
	else
	{
		var range = document.createRange();
		range.setStartBefore(element);
		element.parentNode.replaceChild(range.createContextualFragment(toValue), element);
	}
}		

/**
Method:       setOpacity(HTMLElement, Int)
Description:  Sets the opacity of an element
Parameters:
     HTMLElement aElm  - The HTML element to set the opacity for
     Float aOpac       - The value for the element's opacity. 0.0 - 1.0
                         Where 0.0 is invisible and 1.0 is completely 
                         visible
*/
function setOpacity(aElm,aOpac) {
    var object = aElm.style; 
    object.opacity = (aOpac ); 
    object.MozOpacity = (aOpac ); 
    object.KhtmlOpacity = (aOpac ); 
    object.filter = "alpha(opacity=" + aOpac*100 + ")"; 

}

/*
* Search function
*/
function Cerca() {
        testo = document.getElementById('s').value;
        testo = testo.replace(/^\s*|\s(?=\s)|\s*$/g, "");
        testo = testo.replace(/ /g, "+");
        testo = testo.replace(/â€™/g, "+");
        testo = testo.replace(/'/g, "+");
        testo = testo.replace(/â€/g, "+");
        testo = testo.replace(/â€œ/g, "+");
        page = "/t/" + testo;
        location=(page);
}

function segnalaAbuso(comment_id,user_id) {
	if (confirm('Sei sicuro di voler segnalare un abuso su questo commento?')) {
		new Ajax.Request('/service.php', {method: 'get', parameters: 'action=segnalaabuso&id_commento='+comment_id+'&u='+user_id,onComplete: alert('La tua segnalazione d\'abuso e stata inviata. Grazie!')});
	}
}

function apriSegnala(comment_id,user_id) {
        var mydiv = $('commentodd-' + comment_id);
        if(!$('abuso-'+comment_id)) {
        var mycode =  '<div id="abuso-'+comment_id+'" style="padding: 5px;">Sei sicuro di voler segnalare un abuso su questo commento?<br />Inserisci il codice di controllo riportato nell\'immagine e clicca su Ok<br /><br /><div id="alertno-'+comment_id+'" style="display:none">codice non valido</div><table width=100% cellpadding=5><tr><td><img src="/wp-content/captcha.php?c='+$('ckcode').value+'"></td><td><input type="text" name="code'+comment_id+'" id="code'+comment_id+'"></td><td><a href="#" onclick="verifica(\''+comment_id+'\',\''+user_id+'\'); this.blur(); return false;">OK</a></td><td align="right" width=40%><a href="#" onclick="chiudiabuse('+comment_id+'); this.blur(); return false;">chiudi</a></td></tr></table></div>';
        new Insertion.Bottom(mydiv, mycode);
        }
}

function verifica(comment_id,user_id) {
        richiesta = new Ajax.Request('/service.php', { method: 'get', parameters: 'action=checkcode&s=' + $('ckcode').value + '&rnd='+Math.random() +'&c=' + $('code'+comment_id).value, asynchronous: false,onComplete: function(v) { code = eval(v.responseText); }});
        if (code != true) { Element.setStyle($('alertno-'+comment_id), {color: '#ff0000'}); $('alertno-'+comment_id).show(); }
        else { $('alertno-'+comment_id).update('Grazie per aver segnalato un abuso'); Element.setStyle($('alertno-'+comment_id), {color: '#339922'}); $('alertno-'+comment_id).show(); new Ajax.Request('/service.php', {method: 'get', parameters: 'action=segnalaabuso&id_commento='+comment_id+'&s='+$('ckcode').value+'&c='+$('code'+comment_id).value+'&rnd='+Math.random()+'&u='+user_id});} 
}

function chiudiabuse(comment_id) {
        $('abuso-'+comment_id).remove();
}

function submitKey(e, form)
{
     var key;

     if(window.event)
          key = window.event.keyCode;     //IE
     else
          key = e.which;     //firefox

     if(key == 13) {
          $(form).submit();
     }
}

function formComplited(formName, campi) {
    var s = $(formName);
    var compilato = true;
    var verified = false;
    var alertDiv = '';
    var x = campi;
    x.each(function(t) {
        t = $(t);
        alertDiv = t.id + 'Alert';
        if(t.id == 'code') {
		var codice = false;
                new Ajax.Request('/service.php', { method: 'get', parameters: 'action=checkcode&s=' + $('ckcode').value + '&rnd='+Math.random() + '&c=' + $('code').value, asynchronous: false,onComplete: function(v) { codice = eval(v.responseText); }});
		//codice = true;
                if (codice != true) { 
                        verified = false;
                }
                else { 
                        verified = true;
                }

        } else if(t.id == 'fm_email') {
		var emailRegEx = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		str = $(t.id).value;
		if(!str.match(emailRegEx))
			verified = false;
	} else { 

            if(t.tagName.toLowerCase() == 'input') {
                switch(t.type.toLowerCase()) {
                    case 'checkbox':    verified = t.checked; break;
                    case 'hidden':      break;
                    default:            verified = t.present();
                }
            } else {
                verified = t.present();
            }
        }

        if(!verified) { 
                $(alertDiv).show();
                t.observe('change', function(event) { $(t.id + 'Alert').hide(); } );
                compilato = false;
        }

    });
    if(!compilato) {
        return false;
    } else {
        s.submit();
    }
}

/* FLIGIOBOOK */
function azioneFB(tpl_id, tipo, objid, kind) {
	if(fb_enabled_lg && is_fb_connected) {
		fb_post_lg = eval(get_post_data(tipo, objid, kind));
		FB.ensureInit(function() {
			FB.Connect.streamPublish(fb_post_lg["body_short"],fb_post_lg["attachment"],fb_post_lg["action_links"],null,fb_post_lg["user_message_prompt"],true,true);
		});
	}
}

/* FLIGIOBOOK */
function get_post_data(tipo, objid, k) {
	var url = '/service.php?rnd='+Math.random()+'&action=getpost&objid=' + objid + '&k='+k+'&tipo=' + tipo;
	var x = '';

	new Ajax.Request(url, {
	  method: 'get',
	  asynchronous: false,
	  //contentType: 'application/json',
	  onSuccess: function(transport) {
	    x = transport.responseText;
	  }
	});

	return x;
}

/* FLIGIOBOOK */
function get_fbuser_name(fbid) {
	var url = '/service.php?rnd='+Math.random()+'&action=getfbuser&objid=' + fbid;
	var x = '';

        new Ajax.Request(url, {
          method: 'get',
          asynchronous: false,
          //contentType: 'application/json',
          onSuccess: function(transport) {
            x = transport.responseText;
          }
        });

        return x;
}
