function opacity_IN(id,op,duration){
 e = document.getElementById(id);
 e.style.display = 'block';
 e.style.visibility = 'visible';
 
 if(IEdetect()){
   e.style.zoom = 1;
   e.style.filter='alpha(opacity='+op*10+')';
 }else{
   e.style.opacity = op/10;
 }
 op++;
 temp = duration/10;
 if(op <= 10){
  setTimeout("opacity_IN('"+id+"',"+op+","+duration+")", temp);
 }
}

function opacity_OUT(id,op,duration){
 e = document.getElementById(id);
 
 if(IEdetect()){
   e.style.zoom = 1;
   e.style.filter='alpha(opacity='+op*10+')';
 }else{
   e.style.opacity = op/10;
 }
 op--;
 temp = duration/10;
 if(op >= 0){
  setTimeout("opacity_OUT('"+id+"',"+op+","+duration+")", temp);
  if(op == 0){
   e.style.display = 'none';
   e.style.visibility = 'hidden';  
  }
 }
}

function IEdetect(){
  if (navigator.userAgent.toLowerCase().indexOf("msie") != -1){
    return true;
  }  
}

function linko(va,id){
  l = document.getElementById('link');
  if(va == 0){
    l.innerHTML = '<a href="#" onclick="linko(1,id); opacity_OUT(\'target\',10,1000)">Scompari</a>';
  }else{
    l.innerHTML = '<a href="#" onclick="linko(0,id); opacity_IN(\'target\',0,1000)">Appari</a>';
  }  
}

var myReq = null;
function AJAXReq(methodtype,url,asynch,resp){
 if(window.XMLHttpRequest){
  myReq = new XMLHttpRequest();
 }else if(window.ActiveXObject){
   myReq = new ActiveXObject("Msxml2.XMLHTTP");
    if(!myReq){
      myReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
 }
 
 if(myReq){
  if(methodtype.toLowerCase() != "post"){
    execfunc(methodtype,url,asynch,resp);
  }else{
    var args = arguments[4];
    execfunc(methodtype,url,asynch,resp,args);
  }
 }else{
   alert("Your browser doesn't support AJAX utilities");
 }
}

function execfunc(methodtype,url,asynch,resp){
  try{
    myReq.onreadystatechange = resp;
    myReq.open(methodtype,url,asynch);
    
    if(methodtype.toLowerCase() == "post"){
      myReq.setRequestHeader("Content-Type",
                             "application/x-www-form-urlencoded; charset=UTF-8");
      myReq.send(arguments[4]);
    }else{
      myReq.send(null);
    }
  }catch(errv){
    alert("Enable to contact the server\nError: "+errv.message);
  }
}

var ele = new Array();
function PreparaDati(nome,ele){
  stringa = "";
  var form = document.forms[nome];
   if(ele){
    var numeroElementi = ele.length;
    for(var i = 0; i < numeroElementi; i++){
     if(i < numeroElementi-1){
          if(form.elements[i].type=="checkbox" && form.elements[i].checked==true){
            stringa += form.elements[i].name+"="+encodeURIComponent(form.elements[i].value)+"&";
          }else{
           if(form.elements[i].type!="checkbox"){
            stringa += form.elements[i].name+"="+encodeURIComponent(form.elements[i].value)+"&";
           }
          }
     }else{
      stringa += form.elements[i].name+"="+encodeURIComponent(form.elements[i].value);
     }
    }
  }else{
    var numeroElementi = form.elements.length;
    for(var i = 0; i < numeroElementi; i++){
     if(i < numeroElementi-1){
          if(form.elements[i].type=="checkbox" && form.elements[i].checked==true){
            stringa += form.elements[i].name+"="+encodeURIComponent(form.elements[i].value)+"&";
          }else{
           if(form.elements[i].type!="checkbox"){
            stringa += form.elements[i].name+"="+encodeURIComponent(form.elements[i].value)+"&";
           }
          }
     }else{
      stringa += form.elements[i].name+"="+encodeURIComponent(form.elements[i].value);
     }
    }
  }
}

function handleResponse(id){
 if(myReq.readyState == 4 && myReq.status == 200){
  opacity_IN(id,0,1000); 
  document.getElementById(id).innerHTML = myReq.responseText;
 }
}

function loader(id){
  document.getElementById(id).style.display = 'block';
  document.getElementById(id).style.visibility = 'visible';
  document.getElementById(id).innerHTML = '<img alt="loader" src="img/loader.gif" />';
}

function fallo(id){
  loader(id);
  //setTimeout("AJAXReq('GET','loader.php',true,function (){handleResponse('"+id+"')});", 1000);
  setTimeout("AJAXReq('GET','loader.php',true,function (){handleResponse('"+id+"')});", 1000);
} 

function generatepss(id,laf){
  loader(id);
  PreparaDati(laf,false);
  setTimeout("AJAXReq('POST','pass.php',true,function (){handleResponse('"+id+"')},stringa);", 1000);
}

function chiudi(id){
  opacity_OUT(id,10,1000);
}

function showuppercase(id){
  ssh  = document.getElementById(id);
  ssh2 = document.getElementById(id+'-2');
  var laform = document.forms['passgenerator'];
  if(laform.alpha.checked == true){
        opacity_IN(id,0,1000);
        opacity_IN(id+'-2',0,1000);
  }else{
        ssh.style.display    = 'none';
        ssh.style.visibility = 'hidden';
        ssh2.style.display    = 'none';
        ssh2.style.visibility = 'hidden';
  }
}
