﻿// rotinas para comentarios e votaçoes por ajax
// ricardo.mesquita@impala.pt 10/01/2009

var vprocessarimg = "<img src='img/aprocessar.gif' width='16' height='16' style='padding-top: 10px;'>";
var vprocessarimgwpadding = "<img src='img/aprocessar.gif' width='10' height='10'>";
var vprocessar = vprocessarimg + "&nbsp;<b>A carregar informa&ccedil;&atilde;o, por favor aguarde...</b>";

function GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}

function getcomments(url,scurrentpage)
{
    document.getElementById('ajaxcomment').innerHTML=vprocessar;        

    var xhr;
    xhr=GetXmlHttpObject();
    if (xhr==null)
    {
        alert ("O seu browser nao suporta AJAX!");
    }
 
    xhr.onreadystatechange  = function()
    {     
         if(xhr.readyState  == 4)
         {
              if(xhr.status  == 200)
              {
                  var str = xhr.responseText;
                  var strini = "<!--AJAX DATA BEGIN-->";
                  var strend = "<!--AJAX DATA END-->";
                  document.getElementById('ajaxcomment').innerHTML=str.substring(str.indexOf(strini)+strini.length,str.lastIndexOf(strend));

                  //numero de comentarios
                  document.getElementById('cnumcomment').innerHTML=str.substring(str.indexOf("<!--numcomentarios#")+19, str.indexOf("#-->"));
              }                 
              else 
                 document.getElementById('ajaxcomment').innerHTML="Erro " + xhr.status;
         }
    };
    
    xhr.open("GET", url+"&scurrentpage="+scurrentpage+"&pseudonum= "+ new Date().getTime(),  true);
    xhr.send(null);
}

function sendcomments(url)
{
    document.getElementById('ajaxcomment').innerHTML=vprocessar;

    var xhr;
    xhr=GetXmlHttpObject();
    if (xhr==null)
    {
        alert ("O seu browser nao suporta AJAX!");
    }

    xhr.onreadystatechange  = function()
    {     
         if(xhr.readyState  == 4)
         {
              if(xhr.status  == 200)
              {
                  var str = xhr.responseText;
                  var strini = "<!--AJAX DATA BEGIN-->";
                  var strend = "<!--AJAX DATA END-->";
                  document.getElementById('ajaxcomment').innerHTML=str.substring(str.indexOf(strini)+strini.length,str.lastIndexOf(strend));
                  
                  //numero de comentarios
                  document.getElementById('cnumcomment').innerHTML=str.substring(str.indexOf("<!--numcomentarios#")+19, str.indexOf("#-->"));
              }
              else 
                 document.getElementById('ajaxcomment').innerHTML="Erro " + xhr.status;
         }
    };
    
    var data='btncinsert=' + encodeURIComponent(document.getElementById('btncinsert').value) + '&txtcname=' + encodeURIComponent(palavroes(document.getElementById('txtcname').value)) + '&txtclocal=' + encodeURIComponent(palavroes(document.getElementById('txtclocal').value)) +'&txtctitle=' + encodeURIComponent(palavroes(document.getElementById('txtctitle').value)) + '&txtccomment=' + encodeURIComponent(palavroes(document.getElementById('txtccomment').value))+ '&txtcemail=' + encodeURIComponent(document.getElementById('txtcemail').value) + '&hdncreply=' + encodeURIComponent(document.getElementById('hdncreply').value);    
    xhr.open("POST", url,  true);
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.send(data);
    
    //guarda dados utilizador em cookie
    if (document.getElementById('chkkeep').checked) {
        criaCookie('cname',document.getElementById('txtcname').value,1825);
        criaCookie('clocal',document.getElementById('txtclocal').value,1825);
        criaCookie('cemail',document.getElementById('txtcemail').value,1825);  
    } else {
        apagaCookie('cname');
        apagaCookie('clocal');
        apagaCookie('cemail');
    }    
}

function getccookies(){
    var cname = carregaCookie('cname');
    if (cname != "") document.getElementById('txtcname').value = cname;
    var clocal = carregaCookie('clocal');
    if (clocal != "") document.getElementById('txtclocal').value = clocal;
    var cemail = carregaCookie('cemail');
    if (cemail != "") document.getElementById('txtcemail').value = cemail;   
};

function sendmod(cdata,cthreshold)
{  
    document.getElementById('ajaxcomment').innerHTML=vprocessar;

    //retona o url global da chamada ajax
    var url = ajaxurl;

    var xhr;
    xhr=GetXmlHttpObject();
    if (xhr==null)
    {
        alert ("O seu browser nao suporta AJAX!");
    }

    xhr.onreadystatechange  = function()
    {     
         if(xhr.readyState  == 4)
         {
              if(xhr.status  == 200)
              {
                  var str = xhr.responseText;
                  var strini = "<!--AJAX DATA BEGIN-->";
                  var strend = "<!--AJAX DATA END-->";
                  document.getElementById('ajaxcomment').innerHTML=str.substring(str.indexOf(strini)+strini.length,str.lastIndexOf(strend));
              }
              else 
                 document.getElementById('ajaxcomment').innerHTML="Erro " + xhr.status;
         }
    };
        
    var data='cdata=' + encodeURIComponent(cdata) + '&cthreshold=' + encodeURIComponent(cthreshold);
    xhr.open("POST", url,  true);
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.send(data);
}

function checkuinput() {
    if (document.getElementById('txtcname').value == '' || document.getElementById('txtcname').value == 'Nome') return false;
    if (document.getElementById('txtclocal').value == '' || document.getElementById('txtclocal').value == 'Localidade') return false;
    if (document.getElementById('txtctitle').value == '' || document.getElementById('txtctitle').value == 'Titulo do Comentario') return false;
    if (document.getElementById('txtccomment').value == '' || document.getElementById('txtccomment').value == 'Comentario') return false;        
    if (document.getElementById('txtcemail').value == '' || document.getElementById('txtcemail').value == 'E-mail (Dado confidencial)') return false;
    if (document.getElementById('chkcli').checked != 1) return false;
    return true;   
}

function sendpoll(url)
{
    var xhr;
    var numrdvotacao = 0;
    xhr=GetXmlHttpObject();
    if (xhr==null)
    {
        alert ("O seu browser nao suporta AJAX!");
    }
    
    rdgroup = document.getElementsByName('rdvotacao');
    rdval = '';
    if(rdgroup.length>0){
        for(i=0;i<rdgroup.length;i++){
            if(rdgroup[i].checked==true){
              rdval = '&rdvotacao=' + encodeURIComponent(rdgroup[i].value);
            }
        }
    }else{
        numrdvotacao = document.getElementById('numrdvotacao').value;
        if (numrdvotacao > 0) {            
            for(j=1;j<=numrdvotacao;j++){
                rdgroup = document.getElementsByName('rdvotacao'+j);
                if(rdgroup.length>0){                
                    for(i=0;i<rdgroup.length;i++){
                        if(rdgroup[i].checked==true){
                          rdval += '&rdvotacao' + j + '=' + encodeURIComponent(rdgroup[i].value);
                        }
                    }
                }                
            }
            if (rdval!='') rdval += '&numrdvotacao=' + encodeURIComponent(numrdvotacao);
        }
    }
        
    if (rdval!='') {
        if (document.getElementById('msgvotacao'))document.getElementById('msgvotacao').style.display='inline';
        document.getElementById('btnvotacao').src=document.getElementById('btnvotacao').src.replace('botaovotar','botaovotaroff');
        document.getElementById('btnenviavotacao').onclick='javascript: return false;';    
        var data='btnvotacao=' + encodeURIComponent(document.getElementById('btnvotacao').value) + rdval;
        xhr.open("POST", url,  true);
        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        xhr.send(data);
    }
}

function getpoll(url)
{
    var xhr;
    xhr=GetXmlHttpObject();
    if (xhr==null)
    {
        alert ("O seu browser nao suporta AJAX!");
    }
 
    xhr.onreadystatechange  = function()
    {     
         if(xhr.readyState  == 4)
         {
              if(xhr.status  == 200)
              {
                  var str = xhr.responseText;
                  var strini = "<!--AJAX DATA BEGIN-->";
                  var strend = "<!--AJAX DATA END-->";
                  document.getElementById('ajaxpoll').innerHTML=str.substring(str.indexOf(strini)+strini.length,str.lastIndexOf(strend));
              }                 
              else 
                 document.getElementById('ajaxpoll').innerHTML="Erro " + xhr.status;
         }
    };
 
    xhr.open("GET", url+"&pseudonum= "+ new Date().getTime(),  true);
    xhr.send(null);
}

function sendpollHP(url)
{
    var xhr;
    xhr=GetXmlHttpObject();
    if (xhr==null)
    {
        alert ("O seu browser nao suporta AJAX!");
    }

    rdgroup = document.getElementsByName('rdvotacao');
    rdval = '';
    for(i=0;i<rdgroup.length;i++){
        if(rdgroup[i].checked==true){
          rdval = rdgroup[i].value;
        }
    }
    if (rdval!='') {
    document.getElementById('btnvotacao').src=document.getElementById('btnvotacao').src.replace('ok','okoff');
    document.getElementById('btnenviavotacao').onclick='javascript: return false;';

    var data='btnvotacao=votar&rdvotacao=' + encodeURIComponent(rdval);
    xhr.open("POST", url,  true);
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.send(data);
    }
}

function palavroes(str) { return str.replace(new RegExp("bicha|bode|bóbó|bobo|bosta|broche|brochar|cabra|cabrão|cabrao|cagada|cagado|cagar|caralho|chifrudo|chifruda|coco|cócó|colhão|colhao|colhões|colhoes|cona|crica|cricri| cu |enrrabar|esperma|esporra|filho da puta|filho da mãe|foda|foder|fodido|fodida|grelo|merda|merdoso|merdosa|mijar|minete|paneleiro|panilas|peida|pintelho|piça|piroca|puta|putedo|rabo|rameira|rapidinha|tesão|tesao","gi"),"#@.$?#«$") }

function sendmessage(url)
{  
    document.getElementById('ajaxmessage').innerHTML=vprocessar;

    var xhr;
    xhr=GetXmlHttpObject();
    if (xhr==null)
    {
        alert ("O seu browser nao suporta AJAX!");
    }

    xhr.onreadystatechange  = function()
    {     
         if(xhr.readyState  == 4)
         {
              if(xhr.status  == 200)
              {
                  var str = xhr.responseText;
                  var strini = "<!--AJAX DATA BEGIN-->";
                  var strend = "<!--AJAX DATA END-->";
                  document.getElementById('ajaxmessage').innerHTML=str.substring(str.indexOf(strini)+strini.length,str.lastIndexOf(strend));
              }
              else 
                 document.getElementById('ajaxmessage').innerHTML="Erro " + xhr.status;
         }
    };
    
    var data='btnpinsert=' + encodeURIComponent(document.getElementById('btnpinsert').value) + '&txtpname=' + encodeURIComponent(palavroes(document.getElementById('txtpname').value)) + '&txtpcontact=' + encodeURIComponent(document.getElementById('txtpcontact').value) + '&txtpmessage=' + encodeURIComponent(palavroes(document.getElementById('txtpmessage').value));
    xhr.open("POST", url,  true);
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.send(data);
}

function checkuinputmessage() {
    if (document.getElementById('txtpname').value == '' || document.getElementById('txtpname').value == 'Nome') return false;
    if (document.getElementById('txtpcontact').value == '' || document.getElementById('txtpcontact').value == 'Contacto') return false;
    if (document.getElementById('txtpmessage').value == '' || document.getElementById('txtpmessage').value == 'Resposta') return false;
    return true;
}

function checkemailaddress(str){
    var rexp = new RegExp("^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$");
    return rexp.test(str);
}

function getnumviz(url)
{

    document.getElementById('ajaxnumviz').innerHTML=vprocessarimgwpadding;
    document.getElementById('ajaxnumviz').innerHTML+='&nbsp;visualiza&ccedil;&otilde;es';

    var xhr;
    xhr=GetXmlHttpObject();
    if (xhr==null)
    {
        alert ("O seu browser nao suporta AJAX!");
    }
 
    xhr.onreadystatechange  = function()
    {     
         if(xhr.readyState  == 4)
         {
              if(xhr.status  == 200)
              {
                  var str = xhr.responseText;
                  var strini = "<!--AJAX DATA BEGIN-->";
                  var strend = "<!--AJAX DATA END-->";
                  document.getElementById('ajaxnumviz').innerHTML=str.substring(str.indexOf(strini)+strini.length,str.lastIndexOf(strend));                  
                  if (document.getElementById('ajaxnumviz').innerHTML != 1) {
                    document.getElementById('ajaxnumviz').innerHTML+='&nbsp;visualiza&ccedil;&otilde;es';
                  } else {
                    document.getElementById('ajaxnumviz').innerHTML+='&nbsp;visualiza&ccedil;&atilde;o';                                      
                  }
              }                 
              else 
                 document.getElementById('ajaxnumviz').innerHTML="Erro " + xhr.status;
         }
    };

    xhr.open("GET", url+"&pseudonum= "+ new Date().getTime(),  true);
    xhr.send(null);
}

//funcoes para criar, carregar e apagar cookies
function criaCookie(nome, valor, dias) {
    if (dias) {
        var data = new Date();
        data.setTime(data.getTime()+(dias*86400000));
        var expira = "; expires="+data.toGMTString();
    }
    else var expira  = "";
    document.cookie = nome+"="+valor+expira+"; path=/";
}

function carregaCookie(nome) {    
    cook = document.cookie;
    if (cook.indexOf(nome) == -1) return "";
    inof = cook.indexOf(nome+'=') + nome.length + 1;
    if (cook.indexOf(';',inof) == -1) {
        return cook.substring(inof);
    } else {
        return cook.substring(inof,cook.indexOf(';',inof));
    }    
}

function apagaCookie(nome){
    criaCookie(nome, "",-1);
}

function gettop(url, divel)
{

var vprocessar = "<center><img src='../img/aprocessar.gif' width='150' height='150' style='padding-top: 10px;'></center>";

    document.getElementById(divel).innerHTML=vprocessar;      

    var xhr;
    xhr=GetXmlHttpObject();
    if (xhr==null)
    {
        alert ("O seu browser nao suporta AJAX!");
    }
 
    xhr.onreadystatechange  = function()
    {     
         if(xhr.readyState  == 4)
         {
              if(xhr.status  == 200)
              {
                  var str = xhr.responseText;
                  var strini = "<!--AJAX DATA BEGIN-->";
                  var strend = "<!--AJAX DATA END-->";
                  document.getElementById(divel).innerHTML=str.substring(str.indexOf(strini)+strini.length,str.lastIndexOf(strend));
              }                 
              else 
                 document.getElementById(divel).innerHTML="Erro " + xhr.status;
         }
    };
    
    xhr.open("GET", url+"&pseudonum= "+ new Date().getTime(),  true);
    xhr.send(null);
}