window.onload = function()
{
	var links = document.getElementsByTagName("A");
	for(var i = 0; i < links.length; i++)
	{
		if(links[i].rel == "external")
		{
			links[i].target = "_blank";
		}
	}	
}

// JavaScript Document
function abre(cual,ancho,alto,scroll){
	window.open(cual,'Colaborador','toolbar=no,location=no,directories=no,status=no,scrollbars=' + scroll + ',resizable=no,copyhistory=yes,width=' + ancho + ',height=' + alto + ',top=150,left=260');
};

function abre_Modal(cual,ancho,alto,scroll){
	window.open(cual,'toolbar:no,location:no,directories:no,status:no,scroll:' + scroll + ',resizable:no,copyhistory:yes,dialogWidth:' + ancho + ',dialogHeight:' + alto + ',dialogTop:150,dialogLeft:260');
};

function ValidateAssociate(){
	//Lanza la validación de un colaborador
	var intWndHandle=openwindow('https://212.85.33.73/colaborador/login.asp?id_broker=0&id_agente=0',280,500,200,200,'no','Colaborador','no','no');
};

function NewAssociate(){
	//Pantalla para darse de alta como colaborador
	var intWndHandle=openwindow('https://212.85.33.73/colaborador/nuevo_colaborador.asp',480,600,50,50,'no','Colaborador','no','no');
};

var winn;
function abrirPopups(cual,wid,heig,scrol){
			
		// centramos la flotante	
		var LeftP = (screen.width) ? (screen.width-wid)/2 : 0;
		var TopP = (screen.height) ? (screen.height-heig)/2 : 0;
		// control de ventana abierta		
			if(winn){
				if(document.all||(!document.all && document.getElementById))	winn.close();
				winn = null;
			}
			window.focus();
			winn=eval("open('"+cual+"','','width="+wid+",height="+heig+",top="+TopP+",left="+LeftP+",scrollbars="+scrol+"')");
	
};

<!-- //version 2.0 (c)2000 Teknoland.

function es_numero(x)
{
	k="+-.,1234567890"
	if (k.indexOf(x.charAt(0)) == -1) return false;
	for(j=1;j<x.length;j++)
		if (k.indexOf(x.charAt(j)) < 2) return false;
	return true;
}

function es_fecha(x)
{
	fecha = new String(x);
	datos = new Array();
	datos = fecha.split('/');

	if (datos.length != 3)
	{
		alert ("La fecha introducida no es válida.\nEl formato debe ser 'dd/mm/aaaa'");
		return false;
	}

	dia = datos[0];
	mes = datos[1];
	ano = datos[2];
	
	if (!es_numero(dia)) return false;
	if (!es_numero(mes)) return false;         
	if (!es_numero(ano)) return false;

	dia = parseInt(dia,10);
	mes = parseInt(mes,10);
	ano = parseInt(ano,10);

	dias = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

	if ((mes<1)||(mes>12)) return false;
	if (ano<0) return false;
	if ((mes==2)&&(dia==29)&&(ano%4==0))
		if ((ano%100!=0)||((ano%100==0)&&(ano%400==0))) return true;

	return (dia>0 && dia<=dias[mes-1]);
}

function es_nick(x)
{
    er = /[^A-Za-z0-9_]/;
    
    pos = x.search(er);
    if ( pos != -1 )
		return (false)
    else
		return (true);
}

function es_texto(x)
{
    er = /[<>"]/;
    
    pos = x.search(er);
    if ( pos == -1 )
		return (true)
    else
		return (false);
}

function es_email(x)
{
    er = /[^A-Za-z0-9_@.]/;
    
    pos = x.search(er);
    if ( pos != -1 )
		return (false)
    else
		return (true);
}

function busca_no_validos(x,tipo)
{
    if (tipo == 6)
    {
		er= /[^A-Za-z0-9_]/
		
		pos = x.search(er);
		if ( pos != -1 )
		    return x.charAt(pos)
		else
			return '';
	}
    else if (tipo == 1)
    {
		er = /[<>"]/;
    
		pos = x.search(er);
		if ( pos == -1 )
			return ''
		else
		    return x.charAt(pos);
	}
    else if (tipo == 7)
    {
		er= /[^A-Za-z0-9_@.]/
    
		pos = x.search(er);
		if ( pos != -1 )
		    return x.charAt(pos)
		else
			return '';
	}
	else
	{
		return '';
	}
}

function ajusta(o,tipo,elm,lon,c4,txt,fnc)
{
	x=o.elements[elm].value;

	while (x==""||!eval(fnc) || (x.length > lon && lon!=0))
	{
		if (x.length > lon && lon!=0)

		if (confirm ("El campo "+ c4 +" supera el límite de "+ lon + " caracteres\n¿desea truncarlo?"))
		    x=x.substring(0,lon);
		else
			return false;
			
		if ((tipo==1) || (tipo==6) || (tipo==7))
		{
			if ((x=prompt(txt+': '+(busca_no_validos(x,tipo)),x)) == null) return false;
		}
		else
		{
			if ((x=prompt(txt,x)) == null) return false;
		}
	}
	o.elements[elm].value=x;
	
	return true;
}

function ajustc(o,elm,txt)
{
	if (o.elements[elm].selectedIndex == 0)
	{
		alert (txt+".\nSeleccione un valor.");
		o.elements[elm].focus();
		return false;
	}
	return true;
}

function validame(o,c)
{
	if(c[2]==0)
		return(ajusta(o,c[2],c[0],c[3],c[4],'El campo '+c[4]+' solo puede contener caracteres numéricos.','es_numero(x)'));
		
	else if(c[2]==1)
		return(ajusta(o,c[2],c[0],c[3],c[4],'El campo '+c[4]+' contiene caracteres no válidos','es_texto(x)'))

	else if(c[2]==2)
		return(ajusta(o,c[2],c[0],c[3],c[4],'El campo '+c[4]+' no es una fecha válida.(dd/mm/aaaa)','es_fecha(x)'));

	else if(c[2]==4)
		return(ajusta(o,c[2],c[0],c[3],c[4],'El campo '+c[4]+' ha de ser un Numero entre '+c[5]+' y '+c[6]+'.','(es_numero(x) && (x>='+c[5]+' && x<='+c[6]+'))'));

	else if(c[2]==5)
		return(ajustc(o,c[2],c[0],'Ha de seleccionar una opcion en el campo '+c[4]));

	else if(c[2]==6)
		return(ajusta(o,c[2],c[0],c[3],c[4],'El campo '+c[4]+' contiene caracteres no válidos','es_nick(x)'))

	else if(c[2]==7)
		return(ajusta(o,c[2],c[0],c[3],c[4],'El campo '+c[4]+' contiene caracteres no válidos','es_email(x)'))

	return true;
}

function valida(o)
{
	for (i=0 ; i<cc.length ; i++)
	{
		x=o.elements[cc[i][0]].value;
		
		if (cc[i][1]=='N' && cc[i][2]!=5)
		{
			while (x=="")
				if ((x=prompt('El campo necesario "' + cc[i][4] + '" no ha sido introducido. Hágalo ahora, por favor.',x))==null)
					return false;
					
			o.elements[cc[i][0]].value = x;
		}

		if ((x!="" || cc[i][2]==5) && !validame(o,cc[i])) return false;
	}

	return (valida_especial())
}

function valida_especial()
{
	return true;
}

//-->

/*
 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
 * Digest Algorithm, as defined in RFC 1321.
 * Copyright (C) Paul Johnston 1999 - 2000.
 * See http://pajhome.org.uk/site/legal.html for details.
 */

/*
 * Convert a 32-bit number to a hex string with ls-byte first
 */
var hex_chr = "0123456789abcdef";
function rhex(num)
{
  var str = "";
  for(var j = 0; j <= 3; j++)
    str += hex_chr.charAt((num >> (j * 8 + 4)) & 0x0F) +
           hex_chr.charAt((num >> (j * 8)) & 0x0F);
  return str;
}

/*
 * Convert a string to a sequence of 16-word blocks, stored as an array.
 * Append padding bits and the length, as described in the MD5 standard.
 */
function str2blks_MD5(str)
{
  var nblk = ((str.length + 8) >> 6) + 1;
  var blks = new Array(nblk * 16);
  for(var i = 0; i < nblk * 16; i++) blks[i] = 0;
  for(i = 0; i < str.length; i++)
    blks[i >> 2] |= str.charCodeAt(i) << ((i % 4) * 8);
  blks[i >> 2] |= 0x80 << ((i % 4) * 8);
  blks[nblk * 16 - 2] = str.length * 8;
  return blks;
}

/*
 * Add integers, wrapping at 2^32
 */
function add(x, y)
{
  return ((x&0x7FFFFFFF) + (y&0x7FFFFFFF)) ^ (x&0x80000000) ^ (y&0x80000000);
}

/*
 * Bitwise rotate a 32-bit number to the left
 */
function rol(num, cnt)
{
  return (num << cnt) | (num >>> (32 - cnt));
}

/*
 * These functions implement the basic operation for each round of the
 * algorithm.
 */
function cmn(q, a, b, x, s, t)
{
  return add(rol(add(add(a, q), add(x, t)), s), b);
}
function ff(a, b, c, d, x, s, t)
{
  return cmn((b & c) | ((~b) & d), a, b, x, s, t);
}
function gg(a, b, c, d, x, s, t)
{
  return cmn((b & d) | (c & (~d)), a, b, x, s, t);
}
function hh(a, b, c, d, x, s, t)
{
  return cmn(b ^ c ^ d, a, b, x, s, t);
}
function ii(a, b, c, d, x, s, t)
{
  return cmn(c ^ (b | (~d)), a, b, x, s, t);
}

/*
 * Take a string and return the hex representation of its MD5.
 */
function calcMD5c(str)
{              
	//return 'calcMD5('+str+')';
  var x = str2blks_MD5(str);
  var a = 0x67452301;
  var b = 0xEFCDAB89;
  var c = 0x98BADCFE;
  var d = 0x10325476;

  for(var i = 0; i < x.length; i += 16)
  {
    var olda = a;
    var oldb = b;
    var oldc = c;
    var oldd = d;

    a = ff(a, b, c, d, x[i+ 0], 7 , 0xD76AA478);
    d = ff(d, a, b, c, x[i+ 1], 12, 0xE8C7B756);
    c = ff(c, d, a, b, x[i+ 2], 17, 0x242070DB);
    b = ff(b, c, d, a, x[i+ 3], 22, 0xC1BDCEEE);
    a = ff(a, b, c, d, x[i+ 4], 7 , 0xF57C0FAF);
    d = ff(d, a, b, c, x[i+ 5], 12, 0x4787C62A);
    c = ff(c, d, a, b, x[i+ 6], 17, 0xA8304613);
    b = ff(b, c, d, a, x[i+ 7], 22, 0xFD469501);
    a = ff(a, b, c, d, x[i+ 8], 7 , 0x698098D8);
    d = ff(d, a, b, c, x[i+ 9], 12, 0x8B44F7AF);
    c = ff(c, d, a, b, x[i+10], 17, 0xFFFF5BB1);
    b = ff(b, c, d, a, x[i+11], 22, 0x895CD7BE);
    a = ff(a, b, c, d, x[i+12], 7 , 0x6B901122);
    d = ff(d, a, b, c, x[i+13], 12, 0xFD987193);
    c = ff(c, d, a, b, x[i+14], 17, 0xA679438E);
    b = ff(b, c, d, a, x[i+15], 22, 0x49B40821);

    a = gg(a, b, c, d, x[i+ 1], 5 , 0xF61E2562);
    d = gg(d, a, b, c, x[i+ 6], 9 , 0xC040B340);
    c = gg(c, d, a, b, x[i+11], 14, 0x265E5A51);
    b = gg(b, c, d, a, x[i+ 0], 20, 0xE9B6C7AA);
    a = gg(a, b, c, d, x[i+ 5], 5 , 0xD62F105D);
    d = gg(d, a, b, c, x[i+10], 9 , 0x02441453);
    c = gg(c, d, a, b, x[i+15], 14, 0xD8A1E681);
    b = gg(b, c, d, a, x[i+ 4], 20, 0xE7D3FBC8);
    a = gg(a, b, c, d, x[i+ 9], 5 , 0x21E1CDE6);
    d = gg(d, a, b, c, x[i+14], 9 , 0xC33707D6);
    c = gg(c, d, a, b, x[i+ 3], 14, 0xF4D50D87);
    b = gg(b, c, d, a, x[i+ 8], 20, 0x455A14ED);
    a = gg(a, b, c, d, x[i+13], 5 , 0xA9E3E905);
    d = gg(d, a, b, c, x[i+ 2], 9 , 0xFCEFA3F8);
    c = gg(c, d, a, b, x[i+ 7], 14, 0x676F02D9);
    b = gg(b, c, d, a, x[i+12], 20, 0x8D2A4C8A);

    a = hh(a, b, c, d, x[i+ 5], 4 , 0xFFFA3942);
    d = hh(d, a, b, c, x[i+ 8], 11, 0x8771F681);
    c = hh(c, d, a, b, x[i+11], 16, 0x6D9D6122);
    b = hh(b, c, d, a, x[i+14], 23, 0xFDE5380C);
    a = hh(a, b, c, d, x[i+ 1], 4 , 0xA4BEEA44);
    d = hh(d, a, b, c, x[i+ 4], 11, 0x4BDECFA9);
    c = hh(c, d, a, b, x[i+ 7], 16, 0xF6BB4B60);
    b = hh(b, c, d, a, x[i+10], 23, 0xBEBFBC70);
    a = hh(a, b, c, d, x[i+13], 4 , 0x289B7EC6);
    d = hh(d, a, b, c, x[i+ 0], 11, 0xEAA127FA);
    c = hh(c, d, a, b, x[i+ 3], 16, 0xD4EF3085);
    b = hh(b, c, d, a, x[i+ 6], 23, 0x04881D05);
    a = hh(a, b, c, d, x[i+ 9], 4 , 0xD9D4D039);
    d = hh(d, a, b, c, x[i+12], 11, 0xE6DB99E5);
    c = hh(c, d, a, b, x[i+15], 16, 0x1FA27CF8);
    b = hh(b, c, d, a, x[i+ 2], 23, 0xC4AC5665);

    a = ii(a, b, c, d, x[i+ 0], 6 , 0xF4292244);
    d = ii(d, a, b, c, x[i+ 7], 10, 0x432AFF97);
    c = ii(c, d, a, b, x[i+14], 15, 0xAB9423A7);
    b = ii(b, c, d, a, x[i+ 5], 21, 0xFC93A039);
    a = ii(a, b, c, d, x[i+12], 6 , 0x655B59C3);
    d = ii(d, a, b, c, x[i+ 3], 10, 0x8F0CCC92);
    c = ii(c, d, a, b, x[i+10], 15, 0xFFEFF47D);
    b = ii(b, c, d, a, x[i+ 1], 21, 0x85845DD1);
    a = ii(a, b, c, d, x[i+ 8], 6 , 0x6FA87E4F);
    d = ii(d, a, b, c, x[i+15], 10, 0xFE2CE6E0);
    c = ii(c, d, a, b, x[i+ 6], 15, 0xA3014314);
    b = ii(b, c, d, a, x[i+13], 21, 0x4E0811A1);
    a = ii(a, b, c, d, x[i+ 4], 6 , 0xF7537E82);
    d = ii(d, a, b, c, x[i+11], 10, 0xBD3AF235);
    c = ii(c, d, a, b, x[i+ 2], 15, 0x2AD7D2BB);
    b = ii(b, c, d, a, x[i+ 9], 21, 0xEB86D391);

    a = add(a, olda);
    b = add(b, oldb);
    c = add(c, oldc);
    d = add(d, oldd);
  }
  return rhex(a) + rhex(b) + rhex(c) + rhex(d);
}


