var uriBase = '';

function verificaBigbanner() {
	if($('bigbanner_tarjeta')) {
		var pos = $('topDer_barra_roja').getPosition();
		$('bigbanner_tarjeta').setStyle('top', pos.y);
		$('bigbanner_tarjeta').setStyle('left', pos.x+16);
		$('bigbanner_tarjeta').setStyle('position', 'absolute');
		$('bigbanner_tarjeta').setStyle('display', 'block');
		self.setTimeout("verificaBigbanner()", 500);
	}
}

function fiximg(){
	if($('titulo_dos'))
	{
		$('titulo_dos').getElements('img[src=/img/html/clientes/icono_comAsoc.gif]')[0].style.cursor = "pointer";
		$('titulo_dos').getElements('img[src=/img/html/clientes/icono_comAsoc.gif]')[0].id = "comerciosasociados";
		$('titulo_dos').getElements('img[src=/img/html/clientes/icono_comAsoc.gif]')[0].addEvents({
			'click': function(){
				ejecutaItem('/tarjeta/html_sc/', 'html_sc', this, 'normal');
			}
		});
		if($('informacion'))
			$('informacion').id = 'menuinformacion';
	}
}	

function verTutorialMetro() {
	var ruta = '/swf/tutor_metro/tutorial.metrored.swf';
	var divHTML = '<div id="contenido_tutorial"></div>';
	var anchoVentana = 721;
	var altoVentana = 449;
	var anchoFlash = anchoVentana - 4;
	var altoFlash = altoVentana;
	showPopWin(divHTML, anchoVentana, altoVentana);
	$('popTitleBarTexto').innerHTML = 'La Polar - Gu&iacute;a de uso t&oacute;tem Metro'; 
	swfobject.embedSWF(ruta, "contenido_tutorial", anchoFlash, altoFlash, '8.0', '');
}

function CerrarFichaEnSerio() {
	hidePopWin();
}

function validaNum(valor){
        //var numero = valor.value;
	var result = true;
        if (!/^([0-9])*$/.test(valor))
		result = false;
                //alert("Debe ingresar Numero");
	return result;
}

function validaStr(valor){
	if(/^[A-Za-z\s]+$/.test(valor))
		return true;
 	else
		return false;
}

function validaOfi(valor){
        var numero = valor.value;
        if(!validaNum(numero))
	{
                alert('No es numero');
		valor.value='';
	}
}

function validaPart(valor){
        var numero = valor.value;
        if(!validaNum(numero))
	{
                alert('No es numero');
		valor.value='';
	}
}

function envia_cliente(){
        var objform = $('formtienda');
	var site_url = $('site_url').value;
	var sexo = $('Sl_sexo').options[$('Sl_sexo').selectedIndex].value;
	var civil = $('Sl_civil').options[$('Sl_civil').selectedIndex].value;
	var dia_nac = $('Sl_dia').options[$('Sl_dia').selectedIndex].value;
	var mes_nac = $('Sl_mes').options[$('Sl_mes').selectedIndex].value;
	var anho_nac = $('Sl_anho').options[$('Sl_anho').selectedIndex].value;
	var mes_vivienda = $('Sl_mes').options[$('Sl_mes_vivienda').selectedIndex].value;
	var anho_vivienda = $('Sl_anho').options[$('Sl_anho_vivienda').selectedIndex].value;
 	var actividad = $('actividad_laboral').value;
	var fecha_ingreso = '';
	var fecha_termino_jub = '';
	switch(actividad)
	{
		case 'dep':
			var mes_ingreso = $('Sl_mes_ingresa_emp_dep').options[$('Sl_mes_ingresa_emp_dep').selectedIndex].value;
			var anho_ingreso = $('Sl_anho_ingresa_emp_dep').options[$('Sl_anho_ingresa_emp_dep').selectedIndex].value;
			fecha_ingreso = '01'+'-'+mes_ingreso+'-'+anho_ingreso;
			break;
		case 'ind':
                        var mes_ingreso = $('Sl_mes_ingresa_emp_ind').options[$('Sl_mes_ingresa_emp_ind').selectedIndex].value;
                        var anho_ingreso = $('Sl_anho_ingresa_emp_ind').options[$('Sl_anho_ingresa_emp_ind').selectedIndex].value;
                        fecha_ingreso = '01'+'-'+mes_ingreso+'-'+anho_ingreso;
                        break;
		case 'jub':
                        var dia_termino = $('Sl_dia_tipo_progra_jub').options[$('Sl_dia_tipo_progra_jub').selectedIndex].value;
                        var mes_termino = $('Sl_mes_tipo_progra_jub').options[$('Sl_mes_tipo_progra_jub').selectedIndex].value;
                        var anho_termino = $('Sl_anho_tipo_progra_jub').options[$('Sl_anho_tipo_progra_jub').selectedIndex].value;
                        fecha_termino_jub = dia_termino+'-'+mes_termino+'-'+anho_termino;
                        break;
	}

	var entrada = valida_entrada();
	if(entrada == 'ok')
	{
		$('fecha_nacimiento').value = dia_nac+'-'+mes_nac+'-'+anho_nac;
		$('fecha_vivienda').value = '01'+'-'+mes_vivienda+'-'+anho_vivienda;
		$('fecha_ingreso').value = fecha_ingreso;
		$('fecha_termino_pension').value = fecha_termino_jub;

        	objform.send({method:'post', onComplete : function(e) {
                              	             alert(e);
                               		}
                        		});
		//alert(entrada);
	}
	else
		alert(entrada);
}

function envia_gral(){

}

function valida_entrada(){
 	var actividad = $('actividad_laboral').value;
	var rut = $('ipt_rut');
	var nombres = $('ipt_nombre').value;
	var paterno = $('ipt_paterno').value;
	var materno = $('ipt_materno').value;
	if(actividad != 'jub' && actividad != 'due')
		var oficina = $('ipt_oficina_'+actividad).value;
	var particular = $('ipt_particular').value;
	var celular = $('ipt_celular').value;
	var sexo = $('Sl_sexo').options[$('Sl_sexo').selectedIndex].value;
	var civil = $('Sl_civil').options[$('Sl_civil').selectedIndex].value;
	var msg = 'ok';

        if(!rutEstaCorrecto(rut))
		return ('Rut Incorrecto');
	if(!validaStr(nombres))
		return ('Nombres Incorrectos');
	if(!validaStr(paterno))
		return ('Apellido Paterno Incorrecto');
	if(!validaStr(materno))
		return ('Apellido Materno Incorrecto');
	if(actividad != 'jub' && actividad != 'due')
		if(!validaNum(oficina))
			return ('Fono Oficina Incorrecto');
	if(!validaNum(particular))
		return ('Fono Particular Incorrecto');
	if(!validaNum(celular))
		return ('Fono Celular Incorrecto');
	if(sexo == 'sel')
		return ('Debe seleccionar Sexo');
	if(civil == 'sel')
		return ('Debe seleccionar Estado Civil');
	if(!emailCheck($('ipt_mail').value))
		return ('Email Incorrecto');

	return msg;
}

function actividad(){
	var mySlide2 = new Fx.Slide('test2');

	$('slidein2').addEvent('click', function(e){
		e = new Event(e);
		mySlide2.slideIn();
		e.stop();
	});

	$('slideout2').addEvent('click', function(e){
		e = new Event(e);
		mySlide2.slideOut();
		e.stop();
	});

}

function initacordionFAQ()
{
	var accordion = new Accordion('div.atTop', 'div.atStart', {
		show:24,
		opacity: false,
		alwaysHide: true
	}, $('accordion'));
	$$('div.atTop').each(function(el, i) {
				el.setStyle('font-weight', 'bold');
				el.setStyle('font-size', 10);
				el.setStyle('margin-bottom', 2);
				el.setStyle('margin-top', 6);
	});
	$$('div.atTop').each(function(el, i) {
				el.addEvent('mouseenter', function() {
							el.setStyle('text-decoration', 'underline');
						});
				el.addEvent('mouseleave', function() {
							el.setStyle('text-decoration', 'none');
						});
				el.addEvent('click', function() {
							cambiaColorDiv(el);
						});
				});
	alt_acor = getHt('accordion');
	setHt('boxSidebar', 650);
	altura_verdadera();
}

cambiado = false;
function cambiaColorDiv(obj)
{
	if(cambiado)
		cambiado.setStyle('color', '#000');

	obj.setStyle('color', '#f00');
	cambiado = obj;
}

function initacordion()
{
	var accordion = new Accordion('h3.atStart', 'div.atStart', {
		show:24,
		opacity: false,
		alwaysHide: true
	}, $('accordion'));
	$$('h3.atStart').each(function(el, i) {
				el.addEvent('mouseenter', function() {
							el.setStyle('text-decoration', 'underline');
						});
				el.addEvent('mouseleave', function() {
							el.setStyle('text-decoration', 'none');
						});
				});
}


function asigna_region(auxiliar, objselect){

       var indice = auxiliar.split('_');
       var region = objselect.options[objselect.selectedIndex].value;
       var ruta = '/'+uriBase+'/clientes/select_comuna/comuna/'+auxiliar+'/'+region;
      // alert('div_comuna_'+indice[2]);
       var objAjax = new Ajax (ruta, {method:'get', onComplete : function(e) {
                                                      //alert(e);
                                                     $('div_comuna_'+indice[2]).innerHTML = e;
                                                     //initacordion();
                                                     }
                                                     }).request();

}

function muestra_banco(obj_chk){
	var indice = obj_chk.id.split('_'); //el nombre debe venir como cuenta_dep o cuenta_ind
	if(obj_chk.checked)
		$('banco_cuenta_'+indice[2]).style.display = "block";
	else
		$('banco_cuenta_'+indice[2]).style.display = "none";
}

/*  rutEstaCorrecto(rut)
 *      Devuelve true si el rut esta correcto
 *               false si algo esta mal
 */
function rutEstaCorrecto(objRut) {
        var rut = objRut.value;
        rut = reemplazar(rut, '.', '');
        rut = reemplazar(rut, ' ', '');
        rut = colocaGuiones(rut);
	rut = rut.trim();
	if(rut.charAt(0) == "0")
		rut=rut.substring(1,rut.length);
        objRut.value = rut.toUpperCase();
        var soloRut = obtieneSoloRut(rut);
        var suma = obtieneSumaRut(soloRut);
        var dv = obtieneDVRut(suma);
        var dv_entrando = rut.charAt(rut.indexOf('-')+1);
        if(dv == dv_entrando.toUpperCase())
                return true;
        else
                return false;
}

/* funcion reemplazar()
 *
 * Solo funciona con reemplazos de un caracter
 */
function reemplazar(pajar, aguja, lana) {
        var i = 0;
        var nuevopajar = '';
        while(i < pajar.length) {
                if(pajar.charAt(i) != aguja)
                        nuevopajar = nuevopajar + pajar.charAt(i);
                else
                        nuevopajar = nuevopajar + lana;
                i++;
        }
        return nuevopajar;
}

function colocaGuiones(rut) {
        if(rut.indexOf('-') == -1) {
                //no tiene guion
                var largo = rut.length;
                rut = rut.substr(0, largo-1)+'-'+rut.charAt(largo-1);
        }
        return rut;
}

function obtieneSoloRut(rut) {
        rut = rut.substring(0, rut.indexOf('-'));
        return rut;
}

function obtieneSumaRut(soloRut) {
        var suma = 0;
        var i = 0;
        var factor = 3;
        if(soloRut.length == 7)
                soloRut = '0' + soloRut;
        while(i < soloRut.length) {
                suma += (1*soloRut.charAt(i)*factor);
                i++;
                factor--;
                if(factor < 2)
                        factor = 7;
        }
        return suma;
}

function obtieneDVRut(suma) {
	var modulo = suma % 11;
        var resto = 11 - modulo;
        if(resto == 11)
                resto = '0';
        else if(resto == 10)
                resto = 'K';
        else
                resto = resto.toString();
        return resto;
}

function emailCheck (emailStr) {
        /* Verificar si el email tiene el formato user@dominio. */
        var emailPat=/^(.+)@(.+)$/;

        /* Veriicar la existencia de caracteres. ( ) < > @ , ; : \ " . [ ] */
        var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";

        /* Verifica los caracteres que son vÃ¡dos en una direcciÃ³e email */
        var validChars="\[^\\s" + specialChars + "\]";

        var quotedUser="(\"[^\"]*\")";

        /* Veriica si la direcciÃ³e email estÃ¡epresentada con una direcciÃ³P VÃ¡da */


        var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;

        /* Verificar caracteres invÃ¡dos */

        var atom=validChars + '+';
        var word="(" + atom + "|" + quotedUser + ")";
        var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
        /* domain, as opposed to ipDomainPat, shown above. */
        var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");

        var matchArray=emailStr.match(emailPat);
        if (matchArray==null) {
                return false;
        }
        var user=matchArray[1];
        var domain=matchArray[2];

        // Si el user "user" es valido
        if (user.match(userPat)==null) {
                // Si no
                return false;
        }

        /* Si la direcciÃ³P es vÃ¡da */
        var IPArray=domain.match(ipDomainPat);
        if (IPArray!=null) {
                for (var i=1;i<=4;i++) {
                        if (IPArray[i]>255) {
                                return false;
                        }
                }
                return true;
        }

        var domainArray=domain.match(domainPat);
        if (domainArray==null) {
                return false;
        }

        var atomPat=new RegExp(atom,"g");
        var domArr=domain.match(atomPat);
        var len=domArr.length;
        if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {
                return false;
        }
        if (len<2) {
                return false;
        }
        return true;
}

function actividad(valor) {
	$('actividad_laboral').value = valor;

}

function muestra_fecha_prog(obj_chk){
	var valor = obj_chk.value;
        if(valor == 'programado')
                $('div_fecha_progra').style.display = "block";
        else
                $('div_fecha_progra').style.display = "none";

}

function asigna_cargo(objSl){
	var institucion = objSl.options[objSl.selectedIndex].value;

	switch(institucion)
	{
		case '1':
			var param = 'ejer';
			break;
		case '2':
			var param = 'arma';
			break;
                case '3':
                        var param = 'aere';
                        break;
                case '4':
                        var param = 'cara';
                        break;
                case '5':
                        var param = 'gend';
                        break;
                case '6':
                        var param = 'dete';
                        break;
                default:
                        var param = 'cero';
                        break;
	}
	var ruta = '/'+uriBase+'/clientenuevo/select_grados/'+param;
        var objAjax = new Ajax (ruta, {method:'get', onComplete : function(e) {
                                                      //alert(e);
                                                     $('div_grados').innerHTML = e;
                                                     }
                                                     }).request();
}

function obtiene_aleat() {
        var rand = Math.random();
        var resultado = Math.round(rand * 99999);
        if(resultado < 10)
                resultado = '00'+resultado;
        else {
                if(resultado < 100)
                        resultado = '0'+resultado;
        }
        return resultado;
}

function esteLink() {
	var txt = document.location.href;
	txt = txt.replace('//', '/');
	var aTxt = txt.split('/');
	var resp = false;
	if(aTxt.length == 5) {
		if(aTxt[4] == 'datos_estadoCtas') {
			resp = true;
		}
	}
	return resp;
}

var ajaxActivo = false;
function obtiene_login(){
	if(ajaxActivo == false)
	{
		var objform = $('form_login');
		var rut = $('ipt_rut_acceso');
		if(rut.value == '')
			alert('Debe llenar el Campo Rut');
		else
		{
        		if(!rutEstaCorrecto(rut))
                		alert('Rut Incorrecto');
			else
			{
				ajaxActivo = true;
				$('cargando').style.display = "block";
				a = obtiene_aleat();
				var act = objform.action;
				objform.action = act+'?'+a;

        			objform.send({method:'post', onComplete : function(e) {
						     $('cargando').style.display = "none";
						     tmp = e.split('|');
						     if(tmp[0] == 'OK')
						     {
						     		recargar = false;
						     		if(esteLink()) {
									tmp[2] = false;
									recargar = true;
								}
						     		
								if(tmp[2])
									document.location.href=tmp[2];
								else{
                               	              	     			$('login').innerHTML = tmp[1];
									$('ingresando_tu_rut').style.display = "none";
									altura_verdadera();
									ajaxActivo = false;
								}
								if(recargar)
									history.go(0);
					     	      }
					     	      else
						      {
						      		if(tmp[1] == 'login')
									var msj = "Ha ocurrido un problema con tu clave. Verifica si la estas digitando bien."+
										"\nSi estas seguro que tu clave esta correcta, es probable que tu clave o tu tarjeta esten bloqueadas."+
										"\nEn este caso, acude a Servicio al Cliente.";
								else
									var msj = "No se puede validar su clave.";
					     			alert(msj);
								$('ipt_password').value = '';
								ajaxActivo = false;
							}
                                        	}
                                        	}).request();
			}
		}
	}
}


function capturaTeclaContactenos(obj, ev) {
	var key;
	var keychar;
	var resp;

	if (window.event) {
		key = window.event.keyCode;
		ev = window.event;
	} else if (ev)
		key = ev.which;
	else {
		resp = true;
		key = 0;
	}
	
	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();

	if(ev.control && keychar == 'v') {
		alert('Lo sentimos.  En esta caja no se puede pegar, solo escribir texto');
		return false;
	}
	
	var longitud = $('text_contac').value.length;
	var restante = 1000 - longitud;

	if ((("abcdefghijklmnopqrstuvwxyz0123456789 #-.,:;ñÑ").indexOf(keychar) > -1))
	{
		if(longitud >= 1000)
			resp = false;
		else {
			restante = restante - 1;
			resp = true;
		}
		
	}
	$('cuantosquedan').innerHTML = "Quedan "+restante+" caracteres";
	return resp;
}

function validaEnter(e){
if(document.all){
                // IE
                if(event.keyCode == 13)
			 obtiene_login();
		//event.returnValue = false;
        }
        else{
                // FF
                document.onkeydown = function(e){
                if(e.keyCode == 13)
                        obtiene_login();
                }
        }
}

function enviaEncuestaOpinion() {
	var objForm = $('form_encuesta_opinion');
	var rut = $('ipt_rut');
        if(!rutEstaCorrecto(rut))
	{
		alert('Rut Incorrecto');
		window.scroll(0, 0);
		return
	}	
	if($('ipt_nombre').value == '') {
		alert('Debe ingresar su nombre');
		window.scroll(0, 0);
		return
	}
	if(!emailCheck($('mail').value)) {
		alert('Introduzca un correo electronico valido');
		window.scroll(0, 0);
		return
	}
	objForm.send({method:'post', onComplete: function(e) {
						var tmp = e.split('|');
						if(tmp[0] == 'err')
							alert(tmp[1]);
						else {
							if(tmp[0] == 'mail') {
								alert(tmp[1]);
								location.href = '/'+$('u_base').value+'/tarjeta';
							} else {
								var main = $('main');
								main.innerHTML = tmp[1];
								window.scroll(0, 0);
							}
						}
				     }
	});
}

function asistenteTelefonicoLin800() {
	var ruta = '/internet/catalogo/tellamamos/linea_800';
	generaPopupSB(ruta, 445, 375);
}

function asistenteTelefonicoCobranza() {
	var ruta = '/internet/catalogo/tellamamos/cobranza';
	generaPopupSB(ruta, 445, 375);
}

function generaPopupSB(URL, xwidth, xheight) {
       	var ywidth = xwidth;
       	var yheight = xheight;
       	xleft =(getViewportWidth() - ywidth) / 2;
       	xtop = (getViewportHeight() - yheight) / 2;
       	props = 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width='+xwidth+',height='+xheight+
                ',top='+xtop+',left='+xleft;
       	popup = window.open(URL, 'popup', props);
}

function generaPopup(URL, xwidth, xheight) {
       	var ywidth = xwidth;
       	var yheight = xheight;
       	xleft =(getViewportWidth() - ywidth) / 2;
       	xtop = (getViewportHeight() - yheight) / 2;
       	props = 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width='+xwidth+',height='+xheight+
                ',top='+xtop+',left='+xleft;
       	popup = window.open(URL, 'popup', props);
}

function requisitos() {
	var ruta = '/'+uriBase+'/clientenuevo/popup_requisitos';
       	generaPopup(ruta, 480, 445);
}

function ejecutaItem(ruta_funcion, metodo, obj, apertura) {
	if(metodo == 'recupera_clave') {
		alert('Si olvidaste tu clave o pre-clave, dirigete a Servicio Al Cliente de tu Tienda La Polar mas cercana');
		return;
	}
	var site_url = $('site_url').value;
 	var ancho = 450;
	var alto = 500;
	if(ajaxActivo == false)
	{
                ajaxActivo = true;
                $('cargando').style.display = "block";

		if(ruta_funcion.slice(0, 3) == 'cli' || ruta_funcion.slice(0, 5) == '/img/')
			var ruta_metodo = 'https://'+site_url+'/'+ruta_funcion;
		else
			var ruta_metodo = 'https://'+site_url+'/'+uriBase+ruta_funcion

		$('metodo').value = metodo;
		if(metodo == 'html_sc')
			metodo = obj.id;
		else
			if(metodo != '')
				metodo = '/'+metodo;


		//alert(metodo);
		ruta_metodo += metodo;
		txt = apertura.split('|');
		if(txt.length > 1) {
			apertura = txt[0];
			tam = txt[1].split(',');
			ancho = tam[0];
			alto = tam[1];
		}
		if(apertura != null && apertura != undefined && apertura != '' && metodo != '')
			ruta_metodo += '/'+apertura;
		$('form_login').action = ruta_metodo;
		if(apertura == 'popup')  {
			generaPopup(ruta_metodo, ancho, alto);
			ajaxActivo = false;
			$('cargando').style.display = "none";
		} else
			$('form_login').submit();
	}
}

function procesaItem(e) {
	alert(e);
}

var PestBloq = 1;
function BloqActive()  {
	switch(PestBloq) {
		case 1:
			$('bloqueoTarjeta').setStyle('display', 'block');
			$('bloqueoCuenta').setStyle('display', 'none');
			
			PestBloq = 2;
			break;
		case 2:
			$('bloqueoTarjeta').setStyle('display', 'none');
			$('bloqueoCuenta').setStyle('display', 'block');
			
			PestBloq = 1;
			break;
		
	}
}

function BloqOculta()
{
	$('bloqueoTarjeta').setStyle('display', 'none');
	$$('.toggler').each(function(item, i) {
				item.onclick = function() {	BloqActive(); };
			});
	altura_verdadera();
}

function selecionaTarjeta() {
	var radio_tar = $('rd_tarjeta').checked;
	
	if(radio_tar == false)
		alert('Debe Seleccionar Tarjeta');
	else
	{
		if(ajaxActivo == false)
		{
			ajaxActivo = true;
			$('cargando').style.display = "block";
        		$('form_consulta_tarjeta').send({method:'post', onComplete : function(e) {
                	                            //alert(e);
						    tmp = e.split('|');
						    if(tmp[0] == 'OK')
						    {
							 $('zona_tarjeta').innerHTML = tmp[1];
							 $('zona_tarjeta').style.display = "block"
							 $('cargando').style.display = "none";
							 ajaxActivo = false;
							 recalculado = true;
							 altura_verdadera();
						    }
						    else
						    {
							 alert(tmp[1]);
							 //document.location.href='/'+uriBase+'/tarjeta';
 						    }							    	
                	                        }
                	                        }).request();
		}
	}	
		
}

var axBloq = false;
function enviaBloqueoCuenta() {
	if(axBloq)
		return;
	var form = $('form_bloqueo_cuenta');
	axBloq = true;
	form.send({onComplete: function(e) {
					axBloq = false;
					var el = e.split('|');
					if(el[0] == 'ERR')
						alert(el[1]);
					else
						$('main').innerHTML = el[1];
					
				}
		});
}

function bloquearTarjeta(tarjeta) {
	//alert('tarjeta '+tarjeta+' bloqueada');
	var motivo = $('Sl_motivo').options[$('Sl_motivo').selectedIndex].value;
	var rut_clte_bloqueo = $('rut_bloqueo').value;
	var claveConfirmada = $('ipt_chk_clave').value;
	var claveConfirmada = revol(claveConfirmada);
	$('clave_transformada').value = claveConfirmada;
	//$('ipt_chk_clave').value = '****';
	//var tipo_tarjeta = $('tipo_tar').value;
	var objForm = $('form_proceso_bloqueo');
	//var ruta = '/'+uriBase+'/tarjeta/procesoBloqueo/'+tarjeta+'/'+rut_clte_bloqueo+'/'+claveConfirmada+'/'+tipoTarjeta;
	var ruta = ''; 
	if(motivo == 0)
	{
		alert('Seleccione Motivo');
		$('ipt_chk_clave').value = '';
	}	
	else
	{
		if(motivo == 3 && $('ipt_otro_motivo').value == '')
			alert('Debe ingresar un Motivo');
		else
		{
			if(claveConfirmada == '')
				alert('Debe Ingresar su Clave de acceso');
			else
			{
				if(ajaxActivo == false)
				{
					ajaxActivo = true;
					$('cargando').style.display = "block";
					ruta = objForm.action+'/'+MD5(rut_clte_bloqueo)+'/'+motivo;
					objForm.action = '';
					objForm.action = ruta;
					objForm.submit();
					ajaxActivo = false;
				}	
			}
		}	
	}
	//generar metodo para bloquear tarjeta (SOAP)
}

function irHome() {
	var site_url = $('site_url').value;
	if($('correo_no_val'))
		ejecutaItem('/tarjeta/funcion','datos_estadoCtas', this, 'normal');
	else
		location.href = 'https://'+site_url+'/'+uriBase+'/tarjeta';
}


function div_otro_motivo(objSelect){
	var motivo = objSelect.options[objSelect.selectedIndex].value;
	if(motivo == 3)
		$('otro_motivo').style.display="block";
	else
		$('otro_motivo').style.display="none";
}

function trsClave(clave){
	nueva = 225+'A'+clave+'B';
	return nueva;
}

function cambiarClave() {
	//alert('Clave Enviada Exitosamente');
	var claveActual = $('ipt_clave_actual').value;
	var nuevaClave = $('ipt_nueva_clave').value;
	var rpt_nuevaClave = $('ipt_repite_clave').value;
	var rutClte = $('ciclte').value;
	var tmp = '';
        var ruta = '/'+uriBase+'/tarjeta/recibe_cambio_clave/'+rutClte+'/'+claveActual;
        //alert(ruta);
	if(nuevaClave != rpt_nuevaClave)
		alert('Debe repetir la misma Clave');
	else
	{
		if(ajaxActivo == false)
		{
			ajaxActivo = true;
			$('cargando').style.display = "block";			
        		$('form_cambio_clave').action = ruta;
        		//$('form_adicional').submit();
        		$('form_cambio_clave').send({method:'post', onComplete : function(e) {
						    tmp = e.split('|');
						    $('cargando').style.display = "none";
						    ajaxActivo = false;		
						    if(tmp[0] == 'VAL' || tmp[0] == 'CON')		
                	                            	alert(e);
						    else
						    {
							$('respuesta_cambio').innerHTML = tmp[1];		
							$('form_cambio').style.display = 'none';
						        $('respuesta_cambio').style.display = 'block';
							if(tmp[0] == 'OK')
								self.setTimeout("cerrar_sesion()", 4000);
						    }		
                	                        }
                	                        });
		}	

	}
}

function cerrar_sesion(){
	//alert('/'+uriBase+'/tarjeta/salir');
	location = '/'+uriBase+'/tarjeta/salir';
	//alert('sesion cerrada');
}

function solicitudAdicional() {
	var rutClte = $('rut_clte').value;
	var email_contac = $('ipt_email_adi').value;
	var resp = '';		
	var rutadef = $('form_adicional').action;
	var ruta = $('form_adicional').action+'/'+rutClte;
	//alert(ruta);

	$('form_adicional').action = ruta;
	//$('form_adicional').submit();
	if(rutClte == '')
		alert('Debe ingresar rut');
	else
	{
		if(!rutEstaCorrecto($('ipt_rut_adi')))
			alert('Rut Incorrecto');
		else
		{
			if(emailCheck(email_contac))
			{
        		$('form_adicional').send({method:'post', onComplete : function(e) {
					    resp = e.split('|');
					    if(resp[0] == 'OK')
					    {
					    	$('ipt_rut_adi').value = '';
					    	$('ipt_email_adi').value = '';
					    	$('ipt_nombres_adi').value = '';
					    	$('ipt_paterno_adi').value = '';
					    	$('ipt_materno_adi').value = '';
					   	$('ipt_particular_adi').value = '';
					    	$('ipt_oficina_adi').value = '';
					     	document.location.href='/'+uriBase+'/tarjeta';
					     } 	
                                             alert(resp[1]);
                                        }
                                        });
			}
			else
				alert('Email no Valido');
		}			
	}				
					
	$('form_adicional').action = rutadef;
}

var recalculado = false;
function altura_verdadera() {
	/* fiximg(); */
	if($('envoltura_emp'))
		return false;
	var altMain = getHt('main');
	var altSide = getHt('boxSidebar');
	var msg_inf = $('msg_inf');
	var dif_zona_oculta = 0;
	//alert('altMain '+altMain+' y altSide '+altSide+' recalculado '+recalculado);
	//alert('zona '+dif_zona_oculta);
	if(altMain > altSide)
		setHt('boxSidebar', altMain);
	if(altMain < altSide)
	{
		//setHt('main', altSide);
		if((altSide - altMain) > 100)
			msg_inf.style.marginTop = (altSide - altMain) + "px";
		/*altMain = altSide - 80;
		setHt('main', altMain);*/
	}
	
	recalculado = false;
}

function setHt(obj, ht) {
	$(obj).setStyle("height", ht);
}

function getHt(obj) {
	var tamano = $(obj).getSize();
	tamano = tamano.size.y;
	//var tam_total = (tam_box+70);
	//alert(tam_box);
	//if(bar_total)
	return tamano;
}

function conserva_altura_emp() {
	var altMainEmp = getHt('main_empresa');
	if(altMainEmp < 450)
		setHt('main_empresa', 370);
	if($('bnr_indicadores') && window.gecko)
		$('bnr_indicadores').setStyle('display', 'block');
	if(!$('boxSidebar')) {
		agregaAncho('main_empresa', 220);
	}
}

function recorre_largo_lineaPunteada(){
	var div = $$('.titul_opt');
	div.each(function(item, i){
			largo_lineaPunteada(item);
		}
	);
}

function largo_lineaPunteada(obj) {
        var tamano = obj.getSize();
		
	var alt_div = tamano.size.y;
	//alert('contenido:'+obj.innerHTML+' y altura:'+alt_div);
	if(!window.ie)
	{
		var id = obj.id.replace('divt', 'lineap');
		setHt(id, 18);
	}
	
	if(alt_div >= 24)
	{
		//alert('mayor 13'+alt_div);
		var id = obj.id.replace('divt', 'lineap');
		setHt(id, 30);
	}	
}

function quitaAncho(obj, pix) {
	var ancho = parseInt($(obj).getStyle("width"));
	ancho = ancho - pix;
	$(obj).setStyle("width", ancho);
}

function agregaAncho(obj, pix) {
	var ancho = parseInt($(obj).getStyle("width"));
	ancho = ancho + pix;
	$(obj).setStyle("width", ancho);

}

function ajustesIE6() {
	if(window.ie6) {
		theBody = document.getElementsByTagName("BODY")[0];
		//theBody.style.margin = '0px';
		agregaAncho("envoltura", 5);
	}
}

function actualiza_antecedentes(){
        $('form_antecedentes').send({method:'post', onComplete : function(e) {
					    e = e.replace('nn', 'ñ');
					    tmp = e.split('|');
					    if(tmp[0] == 'VAL')	
                                            	alert(tmp[1]);
					    else
					    {
                                                 $('respuesta_antec').innerHTML = tmp[1];
                                                 $('div_antecedentes').style.display = 'none';
                                                 $('respuesta_antec').style.display = 'block';
						 $('div_btn_volver').style.display = 'block';
						 $('msg_cliente').style.display = 'block'; /*mensage al clte, no es el de pie de pag */
					    }	 	
                                        }
                                        });
}

function is_number_c(e) {
	tecla = (document.all) ? e.keyCode : e.which;
	if (tecla==8 ||  tecla==0) 
		return true;
	patron = /\d/; // Solo acepta números
	te = String.fromCharCode(tecla);
	return patron.test(te);
}

function popup_FS(URL) {
        xwidth = 1010; 
        xheight = 700;
        xleft =(getViewportWidth() - xwidth) / 2;
        xtop = (getViewportHeight() - xheight) / 2;

        props = 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,fullscreen=1,width='
                 + xwidth+',height='+xheight+',top='+xtop+',left='+xleft;
        if(URL.slice(0,4) != 'http')
                nURL = '/img'+URL;
        else
                nURL = URL;
        popup = window.open(nURL, 'popup', props);
        return true;
}

var muestraMsjContactRRHH = false;
function elijeMotivos(tipo, area) {
	var p = listaMotivos.length;
	var nuevoMotivo = new Element('select');
	nuevoMotivo.id = 'Sl_motivos_reemplazo';
	var j=0;
	for(var i=0; i<p; i++) {
		var sel = listaMotivos[i];
		if(tipo == 'ATENCION' && sel[0] == 'OTROS')
			continue;
		if((tipo == 'CONSULTA' || tipo == 'ATENCION') && area == 'RRHH') {
			if(!muestraMsjContactRRHH) {
				muestraMsjContactRRHH = true;
				alert('Se dirigira tu solicitud al sitio La Polar correspondiente');
			}
			location.href="http://stc.laborum.cl/lapolar/index.html";
		}
		if(sel[2].indexOf(tipo) != -1 || sel[2] == '*') {
			if(sel[3].indexOf(area) != -1 || sel[3] == '*') {
				var stOption = new Element('option');
				stOption.setAttribute('value', sel[0]);
				stOption.setAttribute('text', sel[1]);
				nuevoMotivo.options[j] = stOption;
				nuevoMotivo.options[j].text = sel[1];
				j++;
			}
		}
	}
	var divPadre = $('Sl_motivos').parentNode;
	divPadre.replaceChild(nuevoMotivo, $('Sl_motivos'));
	$('Sl_motivos_reemplazo').id = 'Sl_motivos';
	$('Sl_motivos').name = 'Sl_motivos';
}


var tipoContactenos = '';
var areaContactenos = '';
function elijeTipo(obj) {
	tipoContactenos = obj.value;
	$('parrafoArea').setStyle('display', 'block');
	$('parrafoDatos').setStyle('display', 'none');
}

function elijeArea(obj) {
	areaContactenos = obj.value;
	elijeMotivos(tipoContactenos, areaContactenos);
	$('parrafoDatos').setStyle('display', 'block');

}

function envia_contacto() {
        var rut_contac = $('ipt_rut_contacto').value;
        var nom_contac = $('ipt_nom_contacto').value;
        var dir_contac = $('ipt_dir_contac').value;
	var fon_contac = $('ipt_fono_contac').value;
	var cel_contac = $('ipt_celu_contac').value;
	if($('slComuna'))
		var comuna_contac = $('slComuna').value;
	else
		var comuna_contac = '0';
        var email_contac = $('ipt_email_contac').value;
        var comentario = $('text_contac').value;
	var objform = $('form_contactenos');

	var slTienda = $('Sl_tiendas').value;
	var slMotivo = $('Sl_motivos').value;
	var slDptos = $('Sl_dptos').value;
	var userLogin = $('conectado').value;

	var correcto = false;
	var mensaje = '';

	
	if(mensaje == '' && slMotivo == -1)
		mensaje = 'Debe seleccionar el motivo de su consulta';
	if(mensaje == '' && slTienda == -1)
		mensaje = 'Debe seleccionar la tienda que tiene relacion con su consulta';
	if(mensaje == '' && slDptos == -1)
		mensaje = 'Debe seleccionar el departamento relacionado con su consulta';
	if(userLogin == 'no') {
		if(mensaje == '' && rut_contac == '')
			mensaje = 'Debe introducir su RUT en el espacio indicado para ello';
		if(mensaje == '' && rut_contac == '0')
			mensaje = 'Debe introducir su RUT correctamente, en el espacio indicado para ello';
	}
	if(mensaje == '' && fon_contac == '')
		mensaje = 'Debe introducir su telefono';
	
	if(userLogin == 'no') {
		if(mensaje == '' && nom_contac == '')
			mensaje = 'Debe introducir su nombre completo';
	}
	if(mensaje == '' && dir_contac == '')
		mensaje = 'Debe introducir su direccion (calle y numero)';
	if(mensaje == '' && comuna_contac == '0')
		mensaje = 'Debe elegir region y comuna donde esta ubicado su domicilio';
	if(mensaje == '' && email_contac == '')
		mensaje = 'Debe introducir su email';
	if(mensaje == '' && comentario == '')
		mensaje = 'Debe introducir su comentario';
	if(mensaje == '') {
		if(userLogin == 'no') {
			if(!rutEstaCorrecto($('ipt_rut_contacto')))
				mensaje = 'Rut Incorrecto';
		}
		if(!emailCheck(email_contac))
			mensaje = 'Email Incorrecto';
			
		if(mensaje == '') {
			correcto = true;
			objform.submit();
		}
	}
	if(!correcto)
		alert(mensaje);
}

function boletaElectronica(objDiv){
	var tmpBoleta = objDiv.id.split('_');
	var numBoleta = tmpBoleta[1];
	//alert('numBoleta: '+numBoleta);
	var rut = 'rutEmis='+$('rut_clte').value;
	var servicio = $('uri_servicio').value;
	var tmpMonto = $('monto_'+numBoleta).value.split('$');
	var monto = '&monto='+ tmpMonto[1].replace(',', '');
	var tmpFecha = $('fech_'+numBoleta).value.split('-');
	var anho = '&anho='+tmpFecha[2];
	var mes = '&mes='+tmpFecha[1];
	var dia = '&dia='+tmpFecha[0];
	var site_url = $('siteUrl').value;
	var uriBase = $('uri_base').value;		
	var enviaconsulta = '&SUBMIT=Enviar+consulta';
	var ruta_servicio = servicio+rut+'&folio='+numBoleta+monto+anho+mes+dia+enviaconsulta;
	generaPopup(ruta_servicio, 480, 550);
	
}

/* antes_envio_encuesta
 *
 * Verifica entradas del cliente en la encuesta
 *
 */
function antes_envio_encuesta() {
	var momento1 = $('momento1').checked;
	var momento2 = $('momento2').checked;
	var respuesta1 = $('respuesta1').checked;
	var respuesta2 = $('respuesta2').checked;
	var atencion1 = $('atencion1').checked;
	var atencion2 = $('atencion2').checked;
	var atencion3 = $('atencion3').checked;

	var mens = false;
	if(!atencion1 && !atencion2 && !atencion3)
		mens= 'Debe calificar la atencion recibida como "muy buena", "regular" o "mala"';
	if(!respuesta1 && !respuesta2)
		mens = 'Debe contestar si la respuesta recibida fue satisfactoria';
	if(!momento1 && !momento2)
		mens = 'Debe responder si fue contactado antes o despues de 48 hrs';
	
	if(mens) {
		alert(mens);
		mens = false;
	} else
		mens = true;
		
	
	return mens;
}


/* revol()
 *
 * Revuelve cadenas
 *
 */
var revol = function (cadena) {
	if(cadena == '')
		return '';
		
	var car = new Array();
	car[0] = Math.floor(Math.random() * 9);
	car[1] = Math.floor(Math.random() * 9);

	var l = cadena.length;
	for(var i=0; i < l; i++) {
		car[i+2] = parseInt(cadena.charAt(i));
		if(car[i+2] < 9)
			car[i+2] = car[i+2] + 1;
		else
			car[i+2] = 'A';
	}
	i = i+2;
	
	
	car[i] = Math.floor(Math.random() * 9);
	i++;
	car[i] = Math.floor(Math.random() * 9);
	
	var resultado = '';
	for(var i=0; i < car.length; i++)
		resultado += ''+car[i];
		
	return resultado
}

function popup_Ctg(URL, height, width) {
        xwidth = width;
        xheight = height;
        xleft =(getViewportWidth() - xwidth) / 2;
        xtop = (getViewportHeight() - xheight) / 2;

        props = 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width='
                 + xwidth+',height='+xheight+',top='+xtop+',left='+xleft;
        if(URL.slice(0,4) != 'http') 
                nURL = '/img'+URL;
        else
                nURL = URL; 
        popup = window.open(nURL, 'popup', props);
        return true;
}

function fn_false() {
        return false;
}

function envia_eecc(){
	if(emailCheck($('ipt_email').value))
	{
		if(emailCheck($('ipt_rpt_email').value))
		{
			if($('ipt_email').value != $('ipt_rpt_email').value)
				alert('El email confirmado es distinto');
			else
			{
				if($('check_eecc').checked == true)
				{
                               		ajaxActivo = true;
                                	$('cargando').style.display = "block";
        				$('form_eecc').send({method:'post', onComplete : function(e) {
									$('cargando').style.display = "none";
									$('form_correo').innerHTML = e;
									//alert(e);
									//document.location.href='/'+uriBase+'/tarjeta';
                               						ajaxActivo = false;
                                				 }
                                				 });

                                        /*$('form_eecc').submit();
                                        ajaxActivo = false;*/
					 
				}
				else
					alert('Para recibir su estado de cuenta vía e-mail debe marcar la aceptación en el recuadro');
			}
		}
		else	
                	alert('Confirmacion de Email Incorrecto');
	}
	else
		alert('Email Incorrecto');	
}

function envia_cambioMail(){

	if(emailCheck($('ipt_nuevoMail').value))
	{
		if(emailCheck($('ipt_confirma_email').value))
		{
			if($('ipt_nuevoMail').value != $('ipt_confirma_email').value)
				alert('El email confirmado es distinto');
			else
			{
				ajaxActivo = true;
				$('cargando').style.display = "block";		
                                $('form_cambioMail').send({method:'post', onComplete : function(e) {
                                                                    $('cargando').style.display = "none";
                                                                    //alert(e);
                                                                    //document.location.href='/'+uriBase+'/tarjeta';
								    $('main').innerHTML = e;	
                                                                    ajaxActivo = false;
                                                              }
                                                              });
			}
		}
		else
			alert('Confirmacion de Email Incorrecto');
	}
	else
		alert('Email Incorrecto');								
}

function noTieneDeuda() {
	var monto = parseInt($('fwp').TBK_MONTO.value,10);
	if(monto == 0)
		return true;
	else
		return false;
}

function verificarDonacion() {
	if(rutEstaCorrecto($('rut')))
		return true;
	else {
		alert('Debe ingresar su RUT, y este debe estar correcto');
		return false;
	}
}

var mediosPagoShow = false;
var cuentaVeces = 1;
function pagoGenerico() {
	if(noTieneDeuda()) {
		alert('No tienes monto pendiente por pagar');
		return;
	}
	if(!mediosPagoShow)
		mostrarMediosPagos();
	cuentaVeces++;
	if(cuentaVeces == 4) {
		$$('.itemMedioPago').each(function(elem, i) {
						elem.setStyle('display', 'block');
					});
	}
}

function mostrarMediosPagos() {
	mediosPagoShow = true;
	$('mediosPago').setStyle('display', 'block');
}

var errPagoCuenta = false;
var iniciaPago = false
function pagaCuentaMC(){
	if(iniciaPago)
		return;
	iniciaPago = true;
	var ruta = 'https://'+$('site_url').value+'/'+$('u_base').value+'/tarjeta/obtSecTran';
	var rutaAnterior = $('fmc').action;
	$('fmc').action = ruta;
	$('fmc').send({onComplete:  function(e) 
			{
				if(e == '') {
					errPagoCuenta = true;
					alert('Se ha producido un error en el pago de Cuenta. '
					     +'Favor intente de nuevo en algunos minutos');
				} else {
					var str = e.split('|');

					$('xmlmcp').value = resuelveXML($('xmlmcp').value, str);
					
					$('fmc').action = rutaAnterior;
					$('fmc').submit();
				}
			}
	});
}

var errPagoCuentaWP = false;
var iniciaPagoWP = false
function pagaCuentaWP(){
	if(iniciaPagoWP)
		return;
	iniciaPagoWP = true;
	var ruta = 'https://'+$('site_url').value+'/'+$('u_base').value+'/tarjeta/obtSecWP';
	var rutaAnterior = $('fwp').action;
	$('fwp').action = ruta;
	$('fwp').send({onComplete:  function(e) 
			{
				if(e == '') {
					errPagoCuentaWP = true;
					alert('Se ha producido un error en el pago de Cuenta. '
					     +'Favor intente de nuevo en algunos minutos');
				} else {
					var str = e.split('|');

					$('TBK_ORDEN_COMPRA').value = resuelveWP(str, 1);
					$('TBK_URL_EXITO').value = resuelveWP(str, 2);
					
					$('fwp').action = rutaAnterior;
					$('fwp').submit();
				}
			}
	});
}

function resuelveXML(xml, variables) {
	var idTran = variables[1];
	var pagRet = variables[2];
	var checkS = variables[3];
	xml = xml.replace('{idtran}', idTran);
	xml = xml.replace('{pagRetorno}', pagRet);
	xml = xml.replace('{checksum}', checkS);
	return xml;
}

function resuelveWP(variab, tipo) {
	switch(tipo) {
		case 1:
			var idTran = variab[1];
			return idTran;
			break;
		case 2:
			var pagRet = variab[2];
			return pagRet;
			break;
	}
}

function imprime_comprobante() {
	var url = location.href;
	var url = url + '/imprime';
	generaPopup(url, 500, 500);
}

function guarda_comprobante() {
	var url = location.href;
	var url = url + '/pdf';
	generaPopup(url, 500, 500);
}



function desinscribeMail(){

	ajaxActivo = true;
	$('cargando').style.display = "block";
	$('form_confirmaCodigo').send({method:'post', onComplete : function(e) {
					$('cargando').style.display = "none";
					tmp = e.split('|');
					if(tmp[0] == 'OK')
						$('main').innerHTML = tmp[1];
					else
						alert(tmp[1]);

					ajaxActivo = false;
                                      }
                                      });
}

function muestra_cuadroLogin(){
	
	var a = obtiene_aleat();
	
	var ruta = '/'+uriBase+'/tarjeta/estas_conectado?'+a;
	var objAjax = new Ajax (ruta, {method:'get', onComplete : function(e) {
                                                     $('form_cuadro_login').innerHTML = e;
						     altura_verdadera();
                                                     }
                                                     }).request();

}

function envia_formRRHH(){
	
	var objform = document.getElementById('formulario_rrhh');
	objform.submit();
}

function menu_barra_empresa(idObj) {
	var ruta = 'http://'+$('url_del_sitio').value+'/'+$('uriBase').value+'/empresa/'+idObj.id; 	
	document.location.href = ruta;
	//alert(ruta);
}

function poneRojo(obj){
	obj.style.color="#FF0000";
}

function poneGris(obj){
	obj.style.color="#A4A4A4";
}

function cambia_mapa(id){
	var uri_base = $('url_del_sitio').value;
	var base_social = $('uribase_social').value;	
	//var uri_base = 'desarrollob2c.lapolar.cl';
	//var base_social = 'social'
	$('gmap').src= 'http://'+ uri_base+'/' + base_social +'/mapas/novedades/'+ id + '/gmap';
	$('ubicacion').selectedIndex = id;
	//$('tiendaActual').innerHTML = 'Tienda '+$('ubicacion')[$('ubicacion').selectedIndex].text;
}

function envia_form_seguros(){
	var rut = $('ipt_rut_seguro');
	var url_sitio = $('site_url').value;
	var ubase = $('u_base').value;
	var objform = $('form_seguro_soap');
	if(!rutEstaCorrecto(rut))
		alert('Rut incorrecto');
	else
	{
        	if(!emailCheck($('ipt_email_seguro').value))
                	alert('Email Incorrecto');
		else
			objform.submit();	
	}	
}

function envia_form_corredora(){
	var camposOK = true;
	var direccion = $('direccion').value;
	var nombre = $('nombre').value;
	var celular = $('celular').value;
	var fonofijo = $('telefonofijo').value;
	if(nombre == '' || celular == '' || fonofijo == '')
		camposOK = false;
	var largo_dire = direccion.length;
        var rut = $('rut');
        var objform = $('form_corredoraSeguro');
        if(!rutEstaCorrecto(rut))
                alert('Rut incorrecto');
        else
        {
                if(!emailCheck($('email').value))
                        alert('Email Incorrecto');
                else
		{
			if(camposOK)
			{
				if(largo_dire > 0 && largo_dire <= 50)
                        		objform.submit();
				else
					alert('Debe completar su direccion y debe ser menor a 50 caracteres');
			}
			else
				alert('Debe llenar todos los campos');
			
		}	
        }
}

/**
        *
        *  MD5 (Message-Digest Algorithm)
        *  http://www.webtoolkit.info/
        *
        **/

var MD5 = function (string) {

	function RotateLeft(lValue, iShiftBits) {
        	return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));
        }

        function AddUnsigned(lX,lY) {
        	var lX4,lY4,lX8,lY8,lResult;
                lX8 = (lX & 0x80000000);
                lY8 = (lY & 0x80000000);
                lX4 = (lX & 0x40000000);
                lY4 = (lY & 0x40000000);
                lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
                if (lX4 & lY4)
		{
                	return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
                }
                if (lX4 | lY4)
		{
                	if (lResult & 0x40000000)
			{
                		return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
                	}
			else
			{
                		return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
                	}
                }
		else
		{
                	return (lResult ^ lX8 ^ lY8);
                }
	}

       	function F(x,y,z) { return (x & y) | ((~x) & z); }
        function G(x,y,z) { return (x & z) | (y & (~z)); }
        function H(x,y,z) { return (x ^ y ^ z); }
        function I(x,y,z) { return (y ^ (x | (~z))); }

        function FF(a,b,c,d,x,s,ac) {
        	a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
                return AddUnsigned(RotateLeft(a, s), b);
        };

        function GG(a,b,c,d,x,s,ac) {
        	a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
                return AddUnsigned(RotateLeft(a, s), b);
        };

        function HH(a,b,c,d,x,s,ac) {
        	a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
                return AddUnsigned(RotateLeft(a, s), b);
        };

        function II(a,b,c,d,x,s,ac) {
        	a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
                return AddUnsigned(RotateLeft(a, s), b);
        };

        function ConvertToWordArray(string) {
        	var lWordCount;
                var lMessageLength = string.length;
                var lNumberOfWords_temp1=lMessageLength + 8;
                var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64;
                var lNumberOfWords = (lNumberOfWords_temp2+1)*16;
                var lWordArray=Array(lNumberOfWords-1);
                var lBytePosition = 0;
                var lByteCount = 0;
                while ( lByteCount < lMessageLength )
		{
                	lWordCount = (lByteCount-(lByteCount % 4))/4;
                        lBytePosition = (lByteCount % 4)*8;
                        lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount)<<lBytePosition));
                        lByteCount++;
                }
                lWordCount = (lByteCount-(lByteCount % 4))/4;
                lBytePosition = (lByteCount % 4)*8;
                lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition);
                lWordArray[lNumberOfWords-2] = lMessageLength<<3;
                lWordArray[lNumberOfWords-1] = lMessageLength>>>29;
                return lWordArray;
	};

        function WordToHex(lValue) {
        	var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;
                for (lCount = 0;lCount<=3;lCount++)
		{
                	lByte = (lValue>>>(lCount*8)) & 255;
                        WordToHexValue_temp = "0" + lByte.toString(16);
                        WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);
                }
                return WordToHexValue;
        };

        function Utf8Encode(string) {
        	string = string.replace(/\r\n/g,"\n");
                var utftext = "";

                for (var n = 0; n < string.length; n++)
		{
        		var c = string.charCodeAt(n);
                        if (c < 128)
			{
                        	utftext += String.fromCharCode(c);
                        }
                        else if((c > 127) && (c < 2048))
			{
                        	utftext += String.fromCharCode((c >> 6) | 192);
                                utftext += String.fromCharCode((c & 63) | 128);
                        }
                        else
			{
                        	utftext += String.fromCharCode((c >> 12) | 224);
                                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                                utftext += String.fromCharCode((c & 63) | 128);
                        }

		}

                return utftext;
	};

        var x=Array();
        var k,AA,BB,CC,DD,a,b,c,d;
        var S11=7, S12=12, S13=17, S14=22;
        var S21=5, S22=9 , S23=14, S24=20;
        var S31=4, S32=11, S33=16, S34=23;
        var S41=6, S42=10, S43=15, S44=21;

        string = Utf8Encode(string);

        x = ConvertToWordArray(string);

        a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;

        for (k=0;k<x.length;k+=16)
	{
        	AA=a; BB=b; CC=c; DD=d;
                a=FF(a,b,c,d,x[k+0], S11,0xD76AA478);
                d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756);
                c=FF(c,d,a,b,x[k+2], S13,0x242070DB);
                b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);
                a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);
                d=FF(d,a,b,c,x[k+5], S12,0x4787C62A);
                c=FF(c,d,a,b,x[k+6], S13,0xA8304613);
                b=FF(b,c,d,a,x[k+7], S14,0xFD469501);
                a=FF(a,b,c,d,x[k+8], S11,0x698098D8);
                d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);
                c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);
                b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);
                a=FF(a,b,c,d,x[k+12],S11,0x6B901122);
                d=FF(d,a,b,c,x[k+13],S12,0xFD987193);
                c=FF(c,d,a,b,x[k+14],S13,0xA679438E);
                b=FF(b,c,d,a,x[k+15],S14,0x49B40821);
                a=GG(a,b,c,d,x[k+1], S21,0xF61E2562);
                d=GG(d,a,b,c,x[k+6], S22,0xC040B340);
                c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);
                b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);
                a=GG(a,b,c,d,x[k+5], S21,0xD62F105D);
                d=GG(d,a,b,c,x[k+10],S22,0x2441453);
                c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);
                b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);
                a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);
                d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);
                c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87);
                b=GG(b,c,d,a,x[k+8], S24,0x455A14ED);
                a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);
                d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);
                c=GG(c,d,a,b,x[k+7], S23,0x676F02D9);
                b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);
                a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942);
                d=HH(d,a,b,c,x[k+8], S32,0x8771F681);
                c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);
                b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);
                a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);
                d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);
                c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);
                b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);
                a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);
                d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA);
                c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085);
                b=HH(b,c,d,a,x[k+6], S34,0x4881D05);
                a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039);
                d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);
                c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);
                b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665);
                a=II(a,b,c,d,x[k+0], S41,0xF4292244);
                d=II(d,a,b,c,x[k+7], S42,0x432AFF97);
                c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);
                b=II(b,c,d,a,x[k+5], S44,0xFC93A039);
                a=II(a,b,c,d,x[k+12],S41,0x655B59C3);
                d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92);
                c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);
                b=II(b,c,d,a,x[k+1], S44,0x85845DD1);
                a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F);
                d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);
                c=II(c,d,a,b,x[k+6], S43,0xA3014314);
                b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);
                a=II(a,b,c,d,x[k+4], S41,0xF7537E82);
                d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);
                c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB);
                b=II(b,c,d,a,x[k+9], S44,0xEB86D391);
                a=AddUnsigned(a,AA);
                b=AddUnsigned(b,BB);
                c=AddUnsigned(c,CC);
                d=AddUnsigned(d,DD);
	}

        var temp = WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);

        return temp.toLowerCase();
}
