//Version: 1.2


function nrcIE(){
	if (document.all){
		return false;
	}
}

function nrcNS(e){
	if(document.layers||(document.getElementById&&!document.all)){ 
		if (e.which==2||e.which==3){
			return false;
		}
			
	}
} 

if (document.layers){
	document.captureEvents(Event.MOUSEDOWN);
	document.onmousedown=nrcNS;
}else{
	document.onmouseup=nrcNS;document.oncontextmenu=nrcIE;
}
	document.oncontextmenu=new Function("return false");
		
//Funcion que cambia la action del formulario y la redirecciona hacia otro
//Controller
function goToController(controller) {
	var frm = document.forms['mensajeForm'];
	frm.action = controller;
	frm.submit();
}

function validarEntero() {
	if (event.keyCode < 48 || event.keyCode > 57 ) 
		event.returnValue = false;
}

//Antiguo isEmail
function validarEmail(e) {   
    ok = "1234567890qwertyuiop[]asdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM";
    for(i=0; i < e.length ;i++){
        if(ok.indexOf(e.charAt(i))<0){ 
            return (false);
        }	
    } 
    re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
    re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    if (!e.match(re) && e.match(re_two)) {
        return (-1);		
    } 
}


function timer(funcion, tiempoMiliSeg) {   
 //Se invocar? a la funcion cuando hayan transcurrido tiempoMiliSeg milisegundos.
   //setTimeout('window.close()',10000)
   setTimeout(funcion,tiempoMiliSeg);
}


function trim(cadena) { 
    return ( String(cadena).replace(/[\s]/g,"") ); 
}


function esTextoNumerico(poTexto, pbVacio, psTitulo, numCaracteres) {
//poTexto: texto ingresado
	if (pbVacio == true){
		if (trim(poTexto.value) == "" ){
			alert("Debe ingresar n?mero de " + psTitulo);
			poTexto.focus();
			return false;
		}
	}

	if (trim(poTexto.value) != ""){
		if (isNaN(poTexto.value) || poTexto.value.length != numCaracteres){
                        alert("Debe ingresar un n?mero de "+psTitulo+" v?lido y de " + numCaracteres + " d?gitos");
			poTexto.focus();
			return false;
		}
	}
	return true;
}


function ValidarStr(psCadena){
	var sValido = "ABCDEFGHIJKLMNOPQRSTUVWYXZ0123456789abcdefghijklmnopqrstuvwxyz\#$%&()='*+}{[]-:,.;????????????!???";
	for (i = 0 ; i <= psCadena.length - 1; i++){	
		if (sValido.indexOf(psCadena.substring(i,i+1),0) == -1){
			psCadena = psCadena.replace(psCadena.substring(i,i+1)," ");
		} 
	}	
	return psCadena;
}











function noEspacios(myfield, e, dec)
{
var key;
var keychar;

if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);

if ((key==null) || (key==0) || (key==8) ||
    (key==9) || (key==13) || (key==27) )
   return true;
else if ((("0123456789abcdefghijklmn?opqrstuvwxyzABCDEFGHIJKLMN?OPQRSTUVWXYZ'?????-#").indexOf(keychar) > -1))
   return true;

else if (dec && (keychar == "."))
   {
   myfield.form.elements[dec].focus();
   return false;
   }
else
   return false;
}

function formatdateKeyUp(inp,e) {
    var k = e.keyCode
    if ((k>=37)&&(k<=40)) return
    if ((k==8)||(k==46)) return
    var d = inp.value
    d = d.replace(/[^0-9\/]/g,"");
	d = d.replace(/\/{2,}/g,"/");
    var n = d
	if ( (d.length == 2) && ( d.charAt(1) == '/') )  n = '0'+d.charAt(0)+'/'; 
	else if ( (d.length == 5) && ( d.charAt(4) == '/') )  n = d.substr(0,3)+"0"+d.charAt(3)+"/"; 
	else if ( (d.length > 6) && ( d.charAt(d.length-1) == '/') ) n = d.substr(0,d.length-1); 
	else if (  (d.length == 6) && ( d.charAt(4) == '/') ) n = d.substr(0,4) + d.charAt(5); 
	else if ( d.charAt(0) == '/' ) n=d.substr(1);  
	else if ( d.charAt(1) == '/' ) n=d.charAt(0)+d.substr(2); 
	else if ( d.charAt(4) == '/' ) n=d.substr(0,4)+d.substr(5); 
    inp.value = n
}

var count, ch, key;
var dia, mes, anho;
var str = new String();

function formatdate(field, e)
{        
	str = field.value;
	count = str.length;			

	if (window.event){
	   key = window.event.keyCode;
	   shift = window.event.shiftKey
	}else {	
		if (e){
		   key = e.which
		   shift = e.SHIFT_MASK	
		}else{
		   return true;
		}
	}

	if (shift && key==55)
		key = 111		
	if( ( key < 48 || key > 57 ) && ( key < 96 || key > 105 ) )
	{
		switch( key )
		{
			case 8:
				if( count == 2 || count == 5 )
					field.value = str.substring(0,count - 1);
				break;
			case 13:
				break;
			case 46:
				break;
			case 111:
			if( count == 2 )
			{
				dia = str.substring(0,1);
				if( dia < 10 )
					dia = '0' + dia;
				
				field.value = dia + '/';
			}
			if( count == 5 )
			{
				mes = str.substring(3,4);
				if( mes < 10 )
					mes = '0' + mes;
					field.value = dia + '/' + mes + '/';
			}

			if( count == 4 || count == 7 )
				field.value = str.substring(0, count-1);
				break;
			default:
				break;
		}
	}	
	else
	{
		if( count > 1 )
		{
			dia = str.substring(0,2);
			mes = str.substring(3,5);
			anho = str.substring(6,10);
			
			// Formateamos el dia
			if( dia > "31" || dia=="00")
			{
				dia = dia.substring(0,1);
				count --;
			}
			// Formateamos el mes
			if( mes > "12" || mes=="00")
			{
				mes = mes.substring(0,1);
				count --;
			}
			//Formateamos el anio 
			if ( count > 6 )
			{	if (anho == 0)
				{	anho = ""
					count--;
				}
			}	
			if ( count == 10 )
			{	if (anho < 1000)
				{	anho = ""
					count--;
				}
			}	
			str = dia;
			if( count > 1 )
				str = str + '/' + mes;
				
			if( count > 4 )
				str = str + '/' + anho;
		
			field.value = str;
		}
	}
	
}

function removeOptions(htmlSelectObject)    {
    if (htmlSelectObject.length != 0)   {
        for(var i=0; i< htmlSelectObject.options.length ; ++i)   {
            htmlSelectObject.options[i]=null;
            --i;
	}
    }
}

function addOption(htmlSelectObject,newOptionValue,newOptionText)   {
    newIndex=htmlSelectObject.options.length;     
    htmlSelectObject.options[newIndex] = new Option(newOptionText,newOptionValue);
    return newIndex;
}

function selectOptionByValue(htmlSelectObject,optionValue)  {
    var obj =  htmlSelectObject;
    for( i = 0 ; i < obj.length; i++ )
        if( obj.options[i].value == optionValue )   {   
            obj.options[i].selected = true;
            break;
	}
}

function selectOptionByIndex(htmlSelectObject,optionIndex)  {
    htmlSelectObject.selectedIndex = optionIndex;
}

function trim(psString) {   
    return ( String(psString).replace(/[\s]/g,"") ); 
}


function isChar(pString)    {
	var ok = "yes";	var temp;
        var valid = "abcdefghijklmn?opqrstuvwxyzABCDEFGHIJKLMN?OPQRSTUVWXYZ";
	for (var i=0; i< pString.length ; i++) 	{
                temp = "" + pString.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") ok = "no";
	}
	if (ok == "no") {return (false);} else {return (true);}
}

function isCharX(pString)    {
	var ok = "yes";	var temp;
        var valid = "abcdefghijklmn?opqrstuvwxyzABCDEFGHIJKLMN?OPQRSTUVWXYZ'?????-#!$%&/()=???";
	for (var i=0; i< pString.length ; i++) 	{
                temp = "" + pString.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") ok = "no";
	}
	if (ok == "no") {return (false);} else {return (true);}
}

function isEmpty(pString)   {
    if (trim(pString)==""){ return (true);}
    else {
	   if (!validateNotStringTo(pString,'<>')) {return (true)};
	   return (false);
	}
}


function validateStringTo(pString, alphabet){
    var ok = "yes"; var temp;
    var valid = alphabet;
    for (var i=0; i< pString.length ; i++)  {
        temp = "" + pString.substring(i, i+1);
        if (valid.indexOf(temp) == "-1") ok = "no";
    }
    if (ok == "no") {return (false);} else {return (true);}
}
 
function validateNotStringTo(pString,alphabet) {
    var ok = "yes"; var temp;
    var valid = alphabet;
    for (var i=0; i< pString.length ; i++)  {
        temp = "" + pString.substring(i, i+1);
        if (valid.indexOf(temp) != "-1") {
            ok= "no";
        }
    }
    if (ok == "no") {return (false);} else {return (true);}
}

function longitudMinima( obj, min ){ 
    if (trim(obj.value).length < min) return false;
    return true;
}

function validaNumeroRuc(numRuc) {
    //if ( numRuc.length > 11 ) return (false);
    valor=numRuc;
    suma = 0;
    x = 6;
    for (i=0; i< valor.length-1;i++)
    {    if ( i == 4 ) x = 8;
         digito = valor.charAt(i) - '0';
         x--;
         if ( i==0 ) suma += (digito*x)
         else suma += (digito*x);
    }
    resto = suma % 11;
    resto = 11 - resto;
    if ( resto >= 10) resto = resto - 10;
    if ( resto != valor.charAt( valor.length-1 ) - '0' )
    {   return false;
    }
    return true;
}

function valdate(xname) { 
    var Day, Month, Year;
    var Fecha = xname.value;

    Day = getvalue(Fecha,1,"/");
    Month = getvalue(Fecha,2,"/");
    Year = getvalue(Fecha,3,"/");

    if ((isNumber(Day) && isNumber(Month) && isNumber(Year) && (Year.length==4)&& (Day.length<=2) && (Month.length<=2)) ||((Month==2) && (Day<=29)))    {
        if ((Day!=0)&&(Month!=0)&&(Year!=0)&&(Month<=12)&&(Day<=31)&&(Month!=2))
            return true;
        else if((Month==2)&&(Day<=29)&&((Year%4)==0)&&((Year % 100)!=0))
            return true;
        else if((Month==2)&&(Day<=29)&&((Year%400)==0))
            return true;
        else if((Month==2)&&(Day<=28))
            return true;
        else    {
            if(Month > 12) {
                alert('El campo de mes debe ser m?ximo de 12.');  
            }
            else if(Year.length!=4) {
                alert("El a?o debe tener 4 cifras.");
            }
            else if((Month==2)&&(Day==29)&&((Year%4)==0)&&(Year%100)==0) {
                alert('A?o no bisiesto.');
            }
            else
                alert("Fecha no v?lida.");
            xname.focus();
            xname.select();
            return false;
        }
    }
    else    {
        alert("Fecha no v?lida.");
        xname.focus();
        xname.select();
        return false;
    }
}

function isNumber(pString)  {
	var ok = "yes";	var temp;
        var valid = "0123456789"; 
	for (var i=0; i< pString.length ; i++) 	{
                temp = "" + pString.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") ok = "no";
	}
	if (ok == "no") {return (false);} else {return (true);}
}


function validateYearDelta(strDate,intDelta){
    var Day, Month, Year;
    var fechaActual = new Date();
    var anioActual = fechaActual.getFullYear();
    Day = getvalue(strDate,1,"/");
    Month = getvalue(strDate,2,"/");
    Year = getvalue(strDate,3,"/");
    if ( parseInt(parseInt(Year) + parseInt(intDelta)) > parseInt(anioActual) )
        return false;
    else
        return true;
}

function validateDateMask(strDate) {
    if (mask(strDate,'##/##/####')!=1)  {
        return false;
    }
    else return true;
}
 
function getvalue(strData, intFieldNumber, separator)   { 
    var intCurrentField, intFoundPos, strValue, strNames;
    var bool = false;
    strNames = strData;
    intCurrentField = 0;
    while( (intCurrentField != intFieldNumber)&& !bool )    {
        intFoundPos = strNames.indexOf(separator);
        intCurrentField = intCurrentField + 1;
        if (intFoundPos != 0)   { 
            strValue = strNames.substring(0,intFoundPos);
            strNames = strNames.substring(intFoundPos + 1, strNames.length);
        }
        else    { 
            if(intCurrentField == intFieldNumber)
                strValue = strNames;
            else
                strValue = ""; 
            bool = true;
        }
    }
    if(strValue!="")
        return strValue;
    else
        return strNames;
}

function SortD(box){
    var temp_opts = new Array();
    var temp = new Object();
    var temp2 = new Object();
    for(var i=0; i<box.options.length; i++){
        temp_opts[i] = box.options[i];
    }
    for(var x=0; x<temp_opts.length-1; x++){
        for(var y=(x+1); y<temp_opts.length; y++){
            if(temp_opts[x].text > temp_opts[y].text){
                temp = temp_opts[x].text;
                temp2 = temp_opts[x].value;
                temp_opts[x].text = temp_opts[y].text;
                temp_opts[x].value = temp_opts[y].value;
                temp_opts[y].text = temp;
                temp_opts[y].value = temp2;
            }
        }
    }
    for(var i=0; i<box.options.length; i++){
        box.options[i].value = temp_opts[i].value;
        box.options[i].text = temp_opts[i].text;
    }
}

function selected( obj, ivalue )
{
    for( i = 1; i < obj.length; i++ )
        if( obj.options[i].value == ivalue )
	{
            obj.options[i].selected = true;
            break;
	}
}

function mask (InString, Mask)  {
 LenStr = InString.length;
 LenMsk = Mask.length;
 if ((LenStr==0) || (LenMsk==0))
  return(0);
 if (LenStr!=LenMsk)
  return(0);
 TempString=""
 for (Count=0; Count<=InString.length; Count++)  {
  StrChar = InString.substring(Count, Count+1);
  MskChar = Mask.substring(Count, Count+1);
  if (MskChar=='#') {
   if(!isNumberChar(StrChar))
    return(0);
  }
  else if (MskChar=='?') {
   if(!isAlphabeticChar(StrChar))
    return(0);
  }
  else if (MskChar=='!') {
   if(!isNumOrChar(StrChar))
    return(0);
  }
  else if (MskChar=='*') {
  }
  else {
   if (MskChar!=StrChar)
    return(0);
  }
 }
 return (1);
}
 
function isAlphabeticChar (InString)  {
 if(InString.length!=1)
  return (false);
 InString=InString.toLowerCase();
 RefString="abcdefghijklmnopqrstuvwxyz";
 if (RefString.indexOf (InString.toLowerCase(), 0)==-1)
  return (false);
 return (true);
}
 
function isNumberChar (InString)  {
 if(InString.length!=1)
  return (false);
 RefString="1234567890";
 if (RefString.indexOf (InString, 0)==-1)
  return (false);
 return (true);
}
 
function isNumOrChar (InString)  {
 if(InString.length!=1)
  return (false);
 InString=InString.toLowerCase();
 RefString="1234567890abcdefghijklmnopqrstuvwxyz";
 if (RefString.indexOf (InString, 0)==-1) 
  return (false);
 return (true);
}

function charsonly(myfield, e, dec)
{
var key;
var keychar;
 
if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);
 
if ((key==null) || (key==0) || (key==8) ||
    (key==9) || (key==13) || (key==27) )
   return true;
 
else if ((("abcdefghijklmn?opqrstuvwxyzABCDEFGHIJKLMN?OPQRSTUVWXYZ'?????-#!$%&/()=???").indexOf(keychar) > -1))
   return true;
 
else if (dec && (keychar == "."))
   {
   myfield.form.elements[dec].focus();
   return false;
   }
else
   return false;
}

function charsonly2(myfield, e, dec)
{
var key;
var keychar;
 
if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);
 
if ((key==null) || (key==0) || (key==8) ||
    (key==9) || (key==13) || (key==27) )
   return true;
 
else if ((("abcdefghijklmn?opqrstuvwxyzABCDEFGHIJKLMN?OPQRSTUVWXYZ'?????-#!$%&/()=??? ").indexOf(keychar) > -1))
   return true;
 
else if (dec && (keychar == "."))
   {
   myfield.form.elements[dec].focus();
   return false;
   }
else
   return false;
}

function numbersonly(myfield, e, dec)
{
var key;
var keychar;
 
if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);
 
if ((key==null) || (key==0) || (key==8) ||
    (key==9) || (key==13) || (key==27) )
   return true;
 
else if ((("0123456789").indexOf(keychar) > -1))
   return true;
 
else if (dec && (keychar == "."))
   {
   myfield.form.elements[dec].focus();
   return false;
   }
else
   return false;
}

function masksonly(cadena, myfield, e, dec)
{
var key;
var keychar;
 
if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);
 
if ((key==null) || (key==0) || (key==8) ||
    (key==9) || (key==13) || (key==27) )
   return true;

else if (((cadena).indexOf(keychar) > -1))
   return true;
 
else if (dec && (keychar == "."))
   {
   myfield.form.elements[dec].focus();
   return false;
   }
else
   return false;
}

function compareDates(ptext1,ptext2)
{	 
var xdd;
var xmm;
var xyy;

var dd1 = 0;
var mm1 = 0;
var yy1 = 0;

var dd2 = 0;
var mm2 = 0;
var yy2 = 0;

	xdd = ptext1.substr(0,2);
	xmm = ptext1.substr(3,2);
	xyy = ptext1.substr(6,4);

	dd1 = parseInt(xdd, 10);
	mm1 = parseInt(xmm, 10);
	yy1 = parseInt(xyy, 10);            
	
	xdd = ptext2.substr(0,2);
	xmm = ptext2.substr(3,2);
	xyy = ptext2.substr(6,4);

	dd2 = parseInt(xdd, 10);
	mm2 = parseInt(xmm, 10);
	yy2 = parseInt(xyy, 10);            

	if (   (yy1 == yy2)  && (mm1 == mm2)  && (dd1==dd2)  )
		return 0;

	if (yy1 > yy2)
		return 1;

	if (yy2 > yy1)
		return -1;		

	if (mm1 > mm2)		
		return 1;
	if (mm1 < mm2)
		return -1;
		
	if (dd1 > dd2)
		return 1;
	if (dd1 < dd2)
		return -1;

}  

function cutToSize(field,maxlen)
{
    if (field.value.length > maxlen) {
        alert("La longitud maxima permitida es de "+maxlen+ " caracteres");
        field.value = field.value.substring(0, maxlen);
        field.focus();
        field.select();
        return (false);
    }
    else {return (true)};
}

function numbersonly_dec(obj,e) {
if (window.event)
   keyCode = window.event.keyCode;
else if (e)
   keyCode = e.which;
else
   return true;
 
    sNumber = obj.value;
    if (!((keyCode > 47) && (keyCode < 58)) &&
  !(keyCode == 46)) {
  window.event.keyCode = 0;
 }
 else if (keyCode == 46) {
  var strTest = new String(sNumber);
  if (strTest.search(/\./) != -1) window.event.keyCode = 0;
 }
}

function decimalcheck(obj,nums,decs) {
  var ok = "yes";
  var temp;
  var valid = "0123456789.";
  var field = obj;
  for (var i=0; i<field.value.length; i++)
  { temp = "" + field.value.substring(i, i+1);
   if (valid.indexOf(temp) == "-1") ok = "no";
  }
  if (ok == "no")
  { alert("El campo solo debe contener numeros decimales");
   field.focus();
   field.select();
   return;
  }
 
        sValue = obj.value;
  if (sValue == '.') {
   alert("Debe colocar numeros decimales");
   obj.select();
   obj.focus();
   return ;
  }
        if (sValue.indexOf('.') == -1) sValue += ".";
        numtext = sValue.substring(0, sValue.indexOf('.'));        
        dectext = sValue.substring(sValue.indexOf('.')+1, sValue.length);        
        error = "";
        if (numtext.length > nums){
   error +="Se acepta un maximo de "+nums+" digitos antes del decimal.\n";
   obj.select();
   obj.focus();
        }
        if (dectext.length > decs){
   error +="Se acepta un maximo de "+decs+" decimal(es).\n";
   obj.select();
   obj.focus();
        }
        if (error != "") alert(error);
}

function llenaPaises( objeto, opcion )   {
    if (objeto.length != 0)   { 
        for(var i=1; i < objeto.options.length ; ++i) {
            objeto.options[i]=null;
            --i;
	}
    }
    var x0;
    var x1;
    var x2;		
    for (var j=0; j < d.length; j++) {
        x0 = d[j][0];
	x1 = d[j][1];
	x2 = d[j][2];
	if (opcion == '1') { objeto.options[objeto.options.length] = new Option(x1,x0); }
        else if (opcion=='2') { objeto.options[objeto.options.length] = new Option(x2,x0); }
    }
    SortD(objeto);
}

function openPoliticas() {
	window.open("http://www.claro.com.pe/portalTimWebApp/application?origin=mensajesms.jsp&event=bea.portal.framework.internal.refresh&pageid=TIM&evento=politicasTim.link&sms=707",'ventana','scrollbars=yes, width=700, height=500, toolbar=yes, status=no,resizable=yes');
}

function openMacromedia() {
	window.open("http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash");
}

function openPortalClaro() {
	window.open("http://www.claro.com.pe/");
}

function openPortalIdeas() {
	window.open("http://www.ideasclaro.com.pe/");
}