Source for "Cambia IP Prodigy Auto/Manual/bot"

By Marco Polo
Has no other scripts.


Add Syntax Highlighting (this will take a few seconds, probably freezing your browser while it works)

// ==UserScript==
// @name           Cambia IP Prodigy Auto/Manual/bot
// @namespace      marcopoloaguilarzambrano@hotmail.com
// @description    Cambia la IP Manualmente || Automaticamente || bot :]
// @description    ::v4.5::
// @include        http://home/*
// ==/UserScript==

VERSION=4.5;
function id(x){return document.getElementById(x);};
function search(){
if(location.search.length>=2||location.search!=""){
var search=location.search,searchA=search.split("&"),res="";
for(var i=0;i<searchA.length;i++){if(i==0) searchA[i]=searchA[i].replace("?","");
var vyv=searchA[i].split("=");
res+=(((i==0)?"{":"")+vyv[0]+":'"+vyv[1]+"'"+((i==searchA.length-1)?",length:"+searchA.length+"}":","));
}eval("var r="+res+";" );return r;}else{return false;}}
function validarIP(ip){if(!(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(ip)))return false;var Split=ip.split(".");
for(var i=0;i<Split.length;i++)if(Number(Split[i]>255||Split.length<4))return false;return true;};
function Element(tag,o){var n=document.createElement(tag);
for(var i in o){if(typeof o[i]=="function" || typeof o[i]=="number")eval( "n."+ i +"="+ o[i] +";" );
else eval( "n."+ i +"=\""+ o[i] +"\";" );}return n;};
Array.prototype.inArray=function(v){for(var i=0;i<this.length;i++){if(this[i]===v)return i;}return false;};
Array.prototype.count=function(val){var contador=0;for(var i=0;i<this.length;i++){if(this[i]==val)contador++;}return contador;};
Array.prototype.kill=function(n){var temp1=[],temp2=[];for(var i=0;i<n;i++){temp1[i]=this[i];}
for(var j=(n+1),i=0;j<this.length;j++,i++){temp2[i] = this[j];}return temp1.concat( temp2 );};
String.prototype.replaceArray=function(){var temp=this;for(var i=0;i<arguments.length-1;i++){
temp=temp.replace(arguments[i],arguments[arguments.length-1]);}return temp;};
String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,'')};
function AIps(set,set2){
var aIps = GM_getValue("aIps"),si=false;
    if( aIps.length <=1 )si=true;
    aIps=aIps.split(",");
    if(set && set2!==false && set2!==true){
        var n = aIps.inArray(set.trim() );
        if(n!==false){
            aIps[n]=set2;
            GM_setValue("aIps", aIps.join(",").trim() );
            return;
        }
    }
    if(set && set2==true){
        var n = aIps.inArray(set.trim() );
        if(n!==false)
            GM_setValue("aIps", aIps.kill(n).join(",").trim() );
        return;
    }
    if(set && aIps.inArray(set.trim() )===false && aIps.length<10){
        if(!validarIP(set.trim() ) ){alert(set +"\nparece que no tiene formato de IP Valido.");return false;}
        if(si==false) aIps.push( set.trim() );
        else aIps[0]=set.trim();
        GM_setValue("aIps", aIps.join(",").trim() );
        return true;
    }
    return (si==false)?aIps:[];
};
function ACTUALIZAR(){

 GM_xmlhttpRequest({
   method:"GET",
   url:"http://userscripts.org/scripts/review/20617?format=txt",
   onload:function(response){
        var txt = response.responseText;
        var v = Number( txt.match( /::v\d{1,2}\.\d?::/ ).toString().replaceArray(/:/g,/v/g,"") );
        if( VERSION<v ){
            alert( "Hay una actualización\nEsta Versión: "+ VERSION +"\nNueva Versión: "+ v );
            GM_openInTab("http://userscripts.org/scripts/show/20617");
        }
   }
 });

};


function cambiaipprodigy(){ // cambiaipprodigy

this.V = VERSION;


var v=function(k){this.k=k;
this.set=function(v){
return GM_setValue(this.k,v);};
this.get=GM_getValue(this.k);};

/* CONFIGURACION */
this.Cip=new v("ip");               // la IP (String)
this.Ctiempo=new v("tiempo");       // segundos -  timepo de actualizaciÓn (Number)
this.Cauto=new v("auto");           // true/false (true/false)
this.Cpass=new v("pass");           // pass de prodigy (String)
this.Cpasssis=new v("passsis");     // pass del sistema (String)
this.Cpuerta=new v("puerta");       // puerta de enlace predeterminada (String)
this.Cgenerar=new v("generar");     // generar de 2 en 2 IPS (true/false)
this.Cinstalado=new v("instalado"); // recien instalado (true/false)
//  AUTOBOT  //
this.bot=new v("bot");              // autobot true/false
this.enuso=new v("enuso");          // true/false        si YA! esta en uso
// /AUTOBOT  //
/* /CONFIGURACION */
laip=this.Cip;
tie=this.Ctiempo;
aut=this.Cauto;
pas=this.Cpass;
pasi=this.Cpasssis;
pue=this.Cpuerta;
gen=this.Cgenerar;
ins=this.Cinstalado;
//
bot=this.bot;
uso=this.enuso;

//
tiempo=1;
this.cambio=function(){

//if(Boolean(GM_getValue("bot"))!=true){  
var _s=search();
if(_s.bot!=undefined && Boolean(_s.bot)==true){
    if(Boolean(GM_getValue("enuso"))==true){
        window.close();
        return false;
    }else{
    GM_setValue("bot",true);
    GM_setValue("enuso",true);
    }
}
//}       

setTimeout(function(){

auto=Boolean(aut.get);  
contrase_a=pas.get; 
mascaradesubred="255.255.255.0"; 
IPS=["XXX.XXX.X.111","XXX.XXX.X.113","XXX.XXX.X.114",  
     "XXX.XXX.X.115","XXX.XXX.X.117","XXX.XXX.X.119"];
puertadeenlacepredeterminado=pue.get; 
generarde2en2=Boolean(gen.get); 


formx=id("pagepost");

var inputs=document.getElementsByTagName("input");

if(inputs.length==29){
var pass="PPP_PASS";
var pass2="PPP_PASS_CONF";
var mascsubred="IP_BBAND_NETMASK";
var puertaenlacepredeter="IP_BBAND_GATEWAY";
var laIP="IP_BBAND_ADDR";


for(var i=0;i<inputs.length;i++){
   var input=inputs[i];
 if(input.name==pass || input.name==pass2){
  if(contrase_a=="undefined" || contrase_a==""){alert("no has puesto la contraseña");}else{
  input.style.color="red";
   input.value=contrase_a;}}
	if(input.name==mascsubred){
	input.style.color="red";
	 input.value=mascaradesubred;}
 if(input.name==puertaenlacepredeter){
   input.style.color="red";
  input.value=puertadeenlacepredeterminado;}
   
   if(input.name==laIP){
    var ip=input;
    if(auto==true){
    
    if(laip.get=="undefined"){
        alert("No has configurado la IP");
        break;
    }
    ////////
	function getLaIp(val){
        if(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(val.trim() ) )
            return val;
        else
            return GM_getValue("ip");
    };
    ////////
	 var automatico={
     ip: getLaIp(input.value),  // ip
	  array:function(){
	   var a=[];
       var un=Number(this.ip.substring(this.ip.length-1,this.ip.length));
	   var nd=Number(this.ip.substring(this.ip.length-1,this.ip.length-2));
	   var vip=this.ip.substring(0,this.ip.length-2);
	    for(var i=0;i<11;i++){
             if(un%2!=0){
              if(i%2==0 && generarde2en2==true){
               continue;
              }
             }
		 a.push(vip+nd+i);
		}
	      return a;
			}
	 };
     
	 for(var j=0;j<automatico.array().length;j++){
	   if(getLaIp(ip.value)==automatico.array()[j]){
       var _tempIP=automatico.array()[((j>=automatico.array().length-1)?0:(j+1))];
       var ai = AIps();
            if(GM_getValue("AIPS")==true && ai.length<=10 && ai.length>=5 ){
                var esta = GM_getValue("ip");
                var temp__ = false;
                    var posEsta = ai.inArray(esta);
                    if(posEsta!==false){
                        if(posEsta==ai.length-1){
                            ip.value = ai[0];
                            temp__ = true;
                        }else if(posEsta<10){
                            ip.value = ai[posEsta+1];
                            temp__ = true;
                        }
                    }
                    if(temp__==false){
                        ip.value = ai[0];
                    }
            }else{
                ip.value=_tempIP;
            }
	   input.style.color="red";
	   break;
	   }	 
	 }	 
	 
	}else{
	
     for(var j=0;j<IPS.length;j++){
	   if(ip.value==IPS[j]){
	    ip.value=IPS[((j>=IPS.length-1)?0:(j+1))];
		  input.style.color="red";
	break;
	   }	 
	 }
	 
	}
	 
	}
}

    formx.addEventListener("submit",function(){
var _in_=document.getElementsByTagName("input");
var _name_="IP_BBAND_ADDR";
var _type_="text";
var _num_temp_;
for(var I=0;I<_in_.length;I++){
    if(_in_[I].name==_name_ && _in_[I].type==_type_)_num_temp_=I;
}
        GM_setValue("ip",_in_[_num_temp_].value);
    },true);

   if(Boolean(GM_getValue("bot"))!=true){        //submit automático para el Bot
    if(confirm("Hacer cambio de IP ahora???")){
        var _e_=formx.getElementsByTagName("input");
        for(var ii=0;ii<_e_.length;ii++){
            if(_e_[ii].type=="submit" && _e_[ii].value=="Guardar"){  
                _e_[ii].click();
            }
        }
    }
   }else{
        var _e_=formx.getElementsByTagName("input");
        for(var ii=0;ii<_e_.length;ii++){
            if(_e_[ii].type=="submit" && _e_[ii].value=="Guardar"){ 
                _e_[ii].click();
            }
        }
   }
    
}

},tiempo+"000");//cierra setTimeout



}; // /cambio



this.instalado=function(){

if(GM_getValue("instalado")!=false){
        alert("Acabas de instalar el Script,\nnecesitas configurar tu IP y la puerta de enlace.\nEspera en lo que se recupera la informacion\nLlevare a la pag de la informacion");
        document.location="javascript:document.location='http://home/xslt?PAGE=B02&THISPAGE=B01&NEXTPAGE=B02&action=instalado';";
}

}

this.obtenerdatos=function(){
var lai=false,_i;
var lap=false,_P;
    var ele=document.getElementsByTagName("td");
    for(var i=0;i<ele.length;i++){
        if(/Dirección de Internet:/.test(ele[i].innerHTML) && i>15){
            alert("Tu IP: "+ ele[(i+1)].innerHTML);
            _i=ele[(i+1)].innerHTML;lai=true;
        }else if(/Puerta de enlace predeterminada:/.test(ele[i].innerHTML) && i>15){
            alert("Tu Puerta de enlace: "+ ele[(i+1)].innerHTML);
            _p=ele[(i+1)].innerHTML;lap=true;
        }
    }
        if(lai==false && lap==false){
            alert("Hubo un error, tendras que ponerlos datos Manualmente en:\nComandos de el script -> Configuracion.");
            GM_setValue("instalado",false);GM_setValue("bot",false);GM_setValue("enuso",false);GM_setValue("AIPS",false);
            GM_setValue("ver",this.V.toString() );
            return;
        }
        if(lai==true || lap==true){
           GM_setValue("bot",false);GM_setValue("enuso",false);GM_setValue("instalado",false);GM_setValue("AIPS",false);
           GM_setValue("ver",this.V.toString() );
            gen.set(false);   //
            aut.set(true);
         if(lai==false && lap==true){
            alert("Hubo un Error con la IP.\npero tu la Puerta de enlace se registro");
            pue.set(_p);
         }else if(lai==true && lap==false){
            alert("Hubo un Error con la Puerta de enlace.\n pero la IP se registro");
            laip.set(_i);
         }else{
            laip.set(_i);
            pue.set(_p);
            alert("Tu puerta de enlace e ip se registraron CORRECTAMENTE!");
            setTimeout(function(){
                document.location="javascript:document.location='http://home/';";
            },1000);
         }
        }
}


this.mostrarform=function(){

if(document.getElementById("elDiv")!=null){
    document.getElementById("elDiv").style.visibility="visible";
    return;
}

var elDiv=Element("div",{id:"elDiv"});
 /////////
 var t="   <center><br> ";
 t+="    <b style='font-family:Verdana,Helvetica,Arial;font-size:14px;'>Configuración</b>";
 t+=" <br><br>";
 t+=" <span style='font-family:Verdana,Helvetica,Arial;font-size:14px;'> .:Cambia IP Prodigy Auto/Manual/bot:. </span>";
 t+="   </center> ";
 t+="    <br> ";
 t+="    <table class='laTabla' border='0px'>";
 t+="     <tr><td style='font-family:Verdana,Helvetica,Arial;font-size:13px;'>";
    if(Boolean(aut.get)==true && Boolean(aut.get)!=false)
 t+="    Generar IP Automatico: </td><td> <input type='checkbox' id='auto' disabled='disabled' CHECKED />";
    else
 t+="    Generar IP Automatico: </td><td> <input type='checkbox' id='auto' />";
 t+="     </td></tr>";
 t+="     <tr><td style='font-family:Verdana,Helvetica,Arial;font-size:13px;'>";
    if(pas.get!=undefined)
 t+="    Contraseña de Prodigy*: </td><td> <input type='password' class='elInput' value='"+ pas.get +"' id='pass' />";
    else
 t+="    Contraseña de Prodigy*: </td><td> <input type='password' class='elInput' value='' id='pass' />";
 t+="     </td></tr>";
 t+="     <tr><td style='font-family:Verdana,Helvetica,Arial;font-size:13px;'>";
    if(pue.get!=undefined)
 t+="    Puerta de enlace pred.*: </td><td> <input type='text' class='elInput' value='"+ pue.get +"' maxlength='15' id='puerta' />";
    else
 t+="    Puerta de enlace pred.*: </td><td> <input type='text' class='elInput' value='' maxlength='15' id='puerta' />";
 t+="     </td></tr>";
 t+="     <tr><td style='font-family:Verdana,Helvetica,Arial;font-size:13px;'>";
    if(Boolean(gen.get)==true && Boolean(gen.get)!=false)
 t+="    Generar IPs 2 en 2: </td><td> <input type='checkbox' id='generar' CHECKED />";
    else
 t+="    Generar IPs 2 en 2: </td><td> <input type='checkbox' id='generar' />";
 t+="    </td></tr>";
 t+="    <tr><td style='font-family:Verdana,Helvetica,Arial;font-size:13px;'>";
 var AIPS = (GM_getValue("AIPS")==true)?'CHECKED':'';
 t+="    Usar lista de IPs: </td><td><input type='checkbox' id='listaips' "+ AIPS +" />  <a href='#VER' id='listaipsver' onclick='return false;' style='color:blue;'>ver</a>/<a href='#EDIT' id='listaipsedit' onclick='return false;' style='color:blue;'>edit</a></td></tr> ";
 t+="    <tr><td style='font-family:Verdana,Helvetica,Arial;font-size:13px;'>";
    if(pasi.get!=undefined)
 t+="Contraseña del sistema: </td><td><br> <input type='password' value='"+ pasi.get +"' id='passsis' class='elInput' />";
    else
 t+="    Contraseña del sistema: </td><td><br> <input type='password' value='' id='passsis' class='elInput' />";
 t+="    </td></tr>";
 t+="   <tr><td style='font-family:Verdana,Helvetica,Arial;font-size:13px;'> <br> Tu IP: <b><span id='laip'> ---------- </span></b><br><br>";
 t+="    <input type='button' value='Guardar' class='inc' id='salvar' />  <input type='button' class='inc' value='Cancelar' id='cancelar' />  <a href='#INFO' onclick='return false;' id='info'>Info</a>";
 t+="    </td></tr>";
 t+="     </table>";
 t+="    <br>";
 t+=" <span style='font-family:Verdana,Helvetica,Arial;font-size:13px;'>    Dudas,sugerencias:   <i><u>xxmarcopolo06xx@gmail.com</u></i> </span>";
    ///////
    
    var estilos=[
        "#elDiv {visibility:visible;position:absolute;left:10px;top:10px;width:360px;height:470px;border:.2em #111 dashed;padding:10px;}",
        ".elInput:focus { border:1px black solid; }",
        "#contenido {background-color:silver;width:360px;height:470px;}",
        ".inc {width:100px;height:50px;font-family:Lucida Console,Arial,Helvetica;font-size:1.3em}",
        ".inc:hover {font-weight:bold;}",
        ".ips {width:100px;height:30px;font-size:1.5em;font-family:Helvetica;}",
        ".losInputs {font-weight:bold;}",
        ".losInputs:focus {color:green;}"
                ];
    GM_addStyle(estilos.join("\n"));
    
    var elDiv2=Element("div",{id:"contenido",innerHTML:t});

    elDiv.appendChild(elDiv2);
    document.body.appendChild(elDiv);    
    
    var salvar=id("salvar");
    var _ip=id("laip");
    

    if(laip.get!=undefined || laip.get!="undefined")
        _ip.innerHTML=laip.get;
  
    salvar.addEventListener('click',function(){
    var $ip_=new cambiaipprodigy;
    $ip_.validarform();
    id("elDiv").style.visibility="hidden";    
    },true);
    
    var cancelar=id("cancelar");
    cancelar.addEventListener("click",function(){
          
          document.body.removeChild(document.getElementById("elDiv"));
          return;

    },true);
    
    var verLista = id("listaipsver");
    verLista.addEventListener("click",function(){
        var t="";
        var ai=AIps();
        for(var i=0;i<ai.length;i++){
            t+= ai[i] +"\n";
        }
        alert( t );
        return false;
    },true);
    
    var editLista=id("listaipsedit");
    editLista.addEventListener("click",function(){
    
    var pro = new cambiaipprodigy;
    pro.mostrarIps();
    
    
    },true);
    
    var info = id("info");
    info.addEventListener("click",function(){
    
    var pro = new cambiaipprodigy;
    pro.info();
    
    },false);
    
    
}

var generar=id("auto"),s0=false;
var contra=id("pass"),s1=false;
var puerta=id("puerta"),s2=false;
var generar2_2=id("generar"),s3=false;
var listaIps=id("listaips"),s4=false
var contrasis=id("passsis"),s5=false;

this.validarform=function(){

var MSGS=["Generar IP Automatico","Contraseña Prodigy","Puerta de enlace","Generra IPs 2en2","Lista de Ips","Contraseña Sistema"];

if(generar.checked!=Boolean(aut.get)){
    aut.set( Boolean(generar.checked) );
    s0=true;
}
if(contra.value!=pas.get && contra.value!=""){
    pas.set(contra.value);
    s1=true;
}
if(puerta.value!=pue.get){
    pue.set(puerta.value);
    s2=true;
}
if(generar2_2.checked!=Boolean(gen.get)){
    gen.set( Boolean(generar2_2.checked) );
    s3=true;
}
if(listaIps.checked!=GM_getValue("AIPS") ){
    GM_setValue( "AIPS", Boolean(listaIps.checked) );
    s4=true;
}
if(contrasis.value!=pasi.get && contrasis.value!=""){
    pasi.set(contrasis.value);
    s5=true;
}

var msgtxt="";
for(var i=0;i<MSGS.length;i++){
    eval("if(s"+ i +"==true){msgtxt+= MSGS["+ i +"] + \"......  Actualizado\\n\";}");
}
if(msgtxt.length>10)
    alert(msgtxt);

};

this.cancelar=function(){
var cancel = false;
if(generar.checked!=Boolean(aut.get)){
    cancel = true;
}
if(contra.value!=pas.get && contra.value!=""){
    cancel = true;
}
if(puerta.value!=pue.get){
    cancel = true;
}
if(generar2_2.checked!=Boolean(gen.get)){
    cancel = true;
}
if(listaIps.checked!=GM_getValue("AIPS") ){
    cancel = true;
}
if(contrasis.value!=pasi.get && contrasis.value!=""){
    ccancel = true;
}

return cancel;

}


this.ponercontrase_a=function(){
if(!(/Sistema: Contraseña/.test(document.title.toString())))return false;

var name_="PASSWORD";
var clase="textmono";

var tags=document.getElementsByTagName("input");

for(var i=0;i<tags.length;i++){
    if(tags[i].name==name_ && tags[i].className==clase){
        if(pasi.get!=undefined && pasi.get!=""){
            var s_=search();
            if(s_.bot!=undefined && Boolean(s_.bot)==true){
                if(Boolean(GM_getValue("enuso"))==true){
                    window.close();
                    //return false;
                }
                GM_setValue("bot",true);
                //GM_setValue("enuso","true");
            }
            tags[i].value=pasi.get;
            id("pagepost").submit();
        }else
            alert("Necesitas configurar el pass del sistema,\npara que se ponga automaticamente\nO fíjate que no tenga un espacio en Blanco");
    }   
}

};

this.autobot=function(){

    setTimeout(function(){
        var data=document.getElementsByTagName("td");
        var txt="";
        for(var i=0;i<data.length;i++){
            var td=data[i];
            if(td.className=="datasmall"){
                if(/^(Conectado|Sin conexión)$/.test(td.innerHTML)){
                    txt+=td.innerHTML;
                }
            }
        }GM_setValue("reload","undefined");
        
        var ai = AIps();
        if(/ConectadoConectado/.test(txt)){
            GM_setValue("bot",false);
            GM_setValue("enuso",false);
                AIps( GM_getValue("ip") );
            window.close();
        }else if(/ConectadoSin conexión/.test(txt)){
            if(ai.inArray(GM_getValue("ip") )!=false ){
                AIps( GM_getValue("ip") , true);
            }
            GM_setValue("enuso",false);
            document.location="javascript:document.location='http://home/xslt?PAGE=B05&THISPAGE=B01&NEXTPAGE=B05&bot=true';";
        }
    },500);

};


this.mostrarIps=function(){

    
    var ai=AIps();
    var losInputs="<center><br>";
    for(var i=0;i<10;i++){
        var input=ai[i];
        var ip=GM_getValue("ip");
        var style=(ip==input)?"style='border:1px red solid'":"";
        var value=(input!=undefined)?input:"";
        var espacio=(i<9)?" ":"";
            losInputs+= "  "+ (i+1) +": "+ espacio +"  <input type='text' class='losInputs' "+ style +" id='input"+ i +"' value='"+ value +"' rel='"+ value +"' /> <br>";
    }
    losInputs+="<br>";
    
    var t="       <input type='button' value='Guardar' id='guardarlista' class='ips' />        <input type='button' value='Atras' id='atraslista' class='ips' /> ";
    t+=" <br><br><p>Para borrar una IP solo escribe: null <br>Puedes agregar y editar Ips</p><p> Esto lo que hace es almacenar automaticamente las Ips que <br>  ";
    t+=" tengan foco verde y cuando sean más de 5 y este activado, <br> cambia la IP por la siguiente en la lista y si no esta <br>empieza por la primera de la lista.  <br>  ";
    t+=" Si la IP no funciono y está en la lista, se borra Automaticamente <br> <b>Aqui van puras IPs que saquen foco <span style='color:green;'>Verde</span></b>   </p> </center>";
    
    var div=id("contenido");
    
    div.innerHTML=losInputs+t;
   
    var a=id("atraslista");
    a.addEventListener("click",function(){
        document.body.removeChild(document.getElementById("elDiv"));
        var prodigy=new cambiaipprodigy;
        prodigy.mostrarform();
    },true);
    
    var Guardar=id("guardarlista");
    Guardar.addEventListener("click",function(){
        
        var ai=AIps();
        var ips=[];
        var ipsr=[];
        var temp_=[];
        var _temp=false;
        var _temp_=[];
        var nuLL=[];
        var temP=[];
        
        for(var i=0;i<10;i++){
            var iD=id("input"+ i);
            ips[i]=iD.value;
            ipsr[i]=iD.getAttribute("rel");
        }
        
        for(var i=j=n=p=0;i<10;i++){
            var aips=ips[i];
            var aipsr=ipsr[i];
            if(aipsr!="" && aips!=aipsr){
                var Count=ips.count(aips);
                
                if( validarIP(aipsr) && aips.trim() == "null"){
                    if(aipsr==GM_getValue("ip") ){alert("La IP actual no se puede borrar");break;}
                    nuLL[n++]=aipsr;
                    temp_[j++]=[(i+1),"delete"];
                    continue;
                }else if( !validarIP(aips) ){
                    alert( "IP "+ (i+1) +" no es válida" );
                    _temp=true;
                    break;
                }else if( Count > 1 ){
                    alert( aips +"  esta repetida "+ Count +" veces en la lista."  );
                    _temp=true;
                    break;
                }else{
                    if(aipsr==GM_getValue("ip") ){alert("La IP actual no se puede actualizar");break;}
                    _temp_[j]=[aipsr,aips];
                    temp_[j++]=(i+1);
                }
            }else if(aips!="" && aips!=aipsr){
                var Count=ips.count(aips);
                
                if( !validarIP(aips) ){
                    alert( "IP "+ (i+1) +" no es válida" );
                    _temp=true;
                    break;
                }else if( Count > 1 ){
                    alert( aips +"  esta repetida "+ Count +" veces en la lista."  );
                    _temp=true;
                    break;
            
                }else{
                    if(aipsr==GM_getValue("ip") ){alert("Esta es la IP actual no se puede actualizar");break;}
                    temP[p++]=aips;
                    temp_[j++]=[(i+1),"add"];
                }
                
                
            }
            
            
            
        }
        
        if(temp_.length>0 && _temp===false){
            
            for(var i=0;i<_temp_.length;i++){
                AIps(_temp_[i][0],_temp_[i][1]);
            }
            
            for(var ii=0;ii<nuLL.length;ii++){
                AIps(nuLL[ii],true);
            }
            
            for(var j=0;j<temP.length;j++){
                AIps(temP[j]);
            }
            
            var txt=".:Valores Actualizados:. \n\n";
            for(var t=0;t<temp_.length;t++){
                var a=(temp_[t][0]!=undefined)?temp_[t][0]:temp_[t];
                var aNull=(temp_[t][1]=="delete")?"..................Borrada":"..................Agregada";
                txt+= a +" IP  "+ aNull +".\n";
            }
            
            alert( txt );
            
            var prodigy=new cambiaipprodigy;
            prodigy.mostrarIps();
            
        }
        
    },false);
    
    


};

this.info=function(){

    var div=id("contenido");
    
    var txt = 
    [
    "<br><h3>Atajos</h3>",
    "<p><b>Shift</b>+<b>c</b> ................................................... Cambiar IP (modo normal)<br>",
    "<b>Shift</b>+<b>b</b> .................................................... Cambiar IP (modo bot)<br>",
    "<b>Shift</b>+<b>m</b> ................................................... Abrir Menú </p><br>",
    "<h3>Configurar el USDownloader</h3>",
    "<center><img src='http://www.fileden.com/files/2007/3/3/846405/imagen.jpg' /> <br><br></center>",
    "<center><p>Para el <b>RS</b> cambiar el Evento:Si no se puede conseguir el enlace<br>",
    "El <a href='http://polopolomp.6te.net/cambioip/ip.bat' target='_blank'><b>Bat</b> </a>                <b>Press Esc</b></center>"
    ];
    
    div.innerHTML=txt.join("");


};


} // /cambiaipprodigy

var lala=new cambiaipprodigy;


$s=search();
$ip=new cambiaipprodigy;
if(GM_getValue("instalado")==undefined){
        GM_setValue("instalado",true);
}
/////////
function activarBot(){
GM_setValue("bot",true);
document.location="javascript:document.location='http://home/xslt?PAGE=B05&THISPAGE=B01&NEXTPAGE=B05&bot=true';";
}
if($s.length==1 && $s.bot!=undefined && Boolean($s.bot)==true){
    activarBot();
}
if(Boolean(GM_getValue("bot"))==true && $s.length==1 && $s.PAGE!=undefined && $s.PAGE=="B01"){
  if(GM_getValue("reload")==undefined) GM_setValue("reload","undefined");
  if(GM_getValue("aIps")==undefined) GM_setValue("aIps","");
    if(GM_getValue("reload")=="undefined"){
         setTimeout(function(){
           document.location="javascript:document.location='http://home/xslt?PAGE=B01';";
         },11000);
        GM_setValue("reload",true);
    }else{
        $ip.autobot();
    }

}
if(GM_getValue("instalado")!=false && $s.action=="instalado"){
$ip.obtenerdatos();
}
if(GM_getValue("instalado")!=false){
    if(GM_getValue("aIps")==undefined)GM_setValue("aIps","");
$ip.instalado();
}
if(/Sistema: Contraseña/.test(document.title.toString())){
$ip.ponercontrase_a();
}
if(/Enlace de banda ancha: Configuración avanzada/.test(document.title.toString())){
$ip.cambio();
}
if( document.location.toString()=="http://home/" ){
ACTUALIZAR();
}

var ai = AIps();
var num = ai.length!=0 ? "[ "+ ai.length +" ]" : "";

var menu="";
menu+="        <span class='navtext'> ";
menu+="            <a class='navtext' href='#' onclick='return false;' id='elMenu' style='color:red;'>CambiarIP"+ num +"</a> ";
menu+="        </span> ";

var losTags=document.getElementsByTagName("div");
var laClase="topnavlinks";
var numTag;

for(var i=0;i<losTags.length;i++){if(losTags[i].className==laClase){numTag=i;}}

var elLink=Element("div",{className:"topnavlink",innerHTML:menu});

var padre=losTags[numTag];

padre.replaceChild(elLink,padre.firstChild);

var elMenu=document.getElementById("elMenu");
elMenu.addEventListener("click",function(){
if(document.getElementById("elDiv")==null)
 lala.mostrarform();
else
 document.getElementById("elDiv").style.visibility="visible";
},true);
////
document.addEventListener("keypress",function(e){
var key = e.which;
var shift = e.shiftKey;
//  c == 67-99 || b == 66-98  || m == 77-109 //
if( (key==67 || key==99) && shift===true){
    if("http://home/xslt?PAGE=B05&THISPAGE=B01&NEXTPAGE=B05"!=document.location.toString() ){
        GM_setValue("bot",false);GM_setValue("enuso",false);
        document.location="javascript:document.location='http://home/xslt?PAGE=B05&THISPAGE=B01&NEXTPAGE=B05';";
    }
}else if( (key==66 || key==98) && shift===true){
        activarBot();
}else if( (key==77 || key==109) && shift===true){
        var prodigy=new cambiaipprodigy;
        prodigy.mostrarform();
}else if( key==0 ){
        if(id("elDiv")!=null)
            document.body.removeChild(document.getElementById("elDiv"));
}

},true);
////