function bestViewRow(id2, class2) {
    //for (i=1; i <= 6; i++) {
    //document.getElementById('row'+i).className = class;
    //}
    var tmp = document.getElementById(id2);
    tmp.className = class2;
}

function windowFullPrint(theURL, winName) {
    var w = screen.width;
    var h  = screen.height;

    window.open(theURL, winName, "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, width="+w+", height="+h+"");
}

function abrirJanela(url, janela, atr) {
    if (atr == 'S') {
        window.open(url,janela,'scrollbars=no,status=no,width=750,height=530,left=20,top=10,resizable=no');
    }	else {
        window.open(url,janela,'');
    }
}


function validarER(op, valor, c) {
    if (op == 'data') {
  
        var reg = /^((0[1-9]|[12]\d)\/(0[1-9]|1[0-2])|30\/(0[13-9]|1[0-2])|31\/(0[13578]|1[02]))\/\d{4}$/;
  
    } else if (op == 'hora') {
    
        var reg = /^([0-1]\d|2[0-3]):[0-5]\d$/;
        
    } else if (op == 'email') {
    
        var reg = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
       
    } else if (op == 'cpf') {

        var cpf = valor;
        var reg = /^\d{3}.\d{3}.\d{3}-\d{2}$/i;
        if(!reg.test(cpf)){
            var invalido = 'sim';
        }
    
        cpf = remove(cpf, ".");
        cpf = remove(cpf, "-");
    
        if (cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999") {
            var invalido = 'sim';
        }
    
        soma = 0;
        for(i = 0; i < 9; i++)
            soma += parseInt(cpf.charAt(i)) * (10 - i);
        resto = 11 - (soma % 11);
        if(resto == 10 || resto == 11)
            resto = 0;
        if(resto != parseInt(cpf.charAt(9))) {
            var invalido = 'sim';
        }
        soma = 0;
        for(i = 0; i < 10; i ++)
            soma += parseInt(cpf.charAt(i)) * (11 - i);
        resto = 11 - (soma % 11);
        if(resto == 10 || resto == 11)
            resto = 0;
        if(resto != parseInt(cpf.charAt(10))){
            var invalido = 'sim';
        }
        
    }
  
    if (invalido == 'sim' && valor != '') {
        alert('Valor inválido para este campo.');
        c.value = '';
        c.focus();
    } else {
        if (reg.test(valor) == false && valor != '') {
            alert('Valor inválido para este campo.');
            c.value = '';
            c.focus();
        }
    }
}
 
function mascara(o,f){
    v_obj=o
    v_fun=f
    setTimeout("execmascara()",1)
}

function execmascara(){
    v_obj.value=v_fun(v_obj.value)
}


function soLetras(v){
    return v.replace(/\d/g,"") //Remove tudo o que não é Letra
}

function soLetrasMA(v){
    v=v.toUpperCase() //Maiúsculas
    return v.replace(/\d/g,"") //Remove tudo o que não é Letra ->maiusculas
}

function soLetrasMI(v){
    v=v.toLowerCase() //Minusculas
    return v.replace(/\d/g,"") //Remove tudo o que não é Letra ->minusculas
}

function soNumeros(v){
    return v.replace(/\D/g,"") //Remove tudo o que não é dígito
}

function soValorMonetario(v){
    v=v.replace(/\D/g,"") //Remove tudo o que não é dígito
    v=v.replace(/(\d{1})(\d{1,2})$/,"$1.$2") //Remove tudo o que não é dígito
    return v
}

function apenastelefone(v){
    v=v.replace(/\D/g,"") //Remove tudo o que não é dígito
    v=v.replace(/^(\d\d)(\d)/g,"($1) $2") //Coloca parênteses em volta dos dois primeiros dígitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2") //Coloca hífen entre o quarto e o quinto dígitos
    return v
}
// TELEFONE SEM DDD
function apenastelefone2(v){
    v=v.replace(/\D/g,"") //Remove tudo o que não é dígito
    v=v.replace(/(\d{4})(\d)/,"$1-$2") //Coloca hífen entre o quarto e o quinto dígitos
    return v
}

function cpfvalidar(v){
    v=v.replace(/\D/g,"") //Remove tudo o que não é dígito
    v=v.replace(/(\d{3})(\d)/,"$1.$2") //Coloca um ponto entre o terceiro e o quarto dígitos
    v=v.replace(/(\d{3})(\d)/,"$1.$2") //Coloca um ponto entre o terceiro e o quarto dígitos
    //de novo (para o segundo bloco de números)
    v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2") //Coloca um hífen entre o terceiro e o quarto dígitos
    return v
}

function cepvalidar(v){
    v=v.replace(/\D/g,"") //Remove tudo o que não é dígito
    v=v.replace(/^(\d{5})(\d)/,"$1-$2") //Esse é tão fácil que não merece explicações
    return v
}

function cnpjvalidar(v){
    v=v.replace(/\D/g,"") //Remove tudo o que não é dígito
    v=v.replace(/^(\d{2})(\d)/,"$1.$2") //Coloca ponto entre o segundo e o terceiro dígitos
    v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3") //Coloca ponto entre o quinto e o sexto dígitos
    v=v.replace(/\.(\d{3})(\d)/,".$1/$2") //Coloca uma barra entre o oitavo e o nono dígitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2") //Coloca um hífen depois do bloco de quatro dígitos
    return v
}

function romanos(v){
    v=v.toUpperCase() //Maiúsculas
    v=v.replace(/[^IVXLCDM]/g,"") //Remove tudo o que não for I, V, X, L, C, D ou M
    //Essa é complicada! Copiei daqui: http://www.diveintopython.org/refactoring/refactoring.html
    while(v.replace(/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,"")!="")
        v=v.replace(/.$/,"")
    return v
}

function data(v){
    v=v.replace(/\D/g,"") //Remove tudo o que não é dígito
    v=v.replace(/(\d{2})(\d)/,"$1/$2") //Coloca um ponto entre o segundo e o terceiro dígitos
    v=v.replace(/(\d{2})(\d)/,"$1/$2") //Coloca um ponto entre o quarto e o quinto dígitos
    //v=v.replace(/^[0-3]?\d\/[01]?\d\/(\d{2}|\d{4})$/)
    v=v.replace(/^((0[1-9]|[12]\d)\-(0[1-9]|1[0-2])|30\-(0[13-9]|1[0-2])|31\-(0[13578]|1[02]))\-\d{4}$/)
    //v=v.replace(/^(0[1-9]|[012][0-9]|3[01])/\-(0[1-9]|1[012])/\-([12][0-9]{3})/,"")
    return v
}


//valida formato de hora 00:00 até 23:59 com mascara
//criada em 2008-04-15 15:57
//er=/^(([01][\d])|([2][0-3]))([0-5][\d])/ //ereg que valida a hora(nao usada aqui)
function hora(v){
    v=v.replace(/\D/g,"") //Remove tudo o que não é dígito
    v=v.replace(/^[^012]/,"") //valida o primeiro dígito #
    v=v.replace(/^([2])([^0-3])/,"$1") //valida o segundo dígito ##
    v=v.replace(/^([\d]{2})([^0-5])/,"$1")//valida o terceiro dígito ###
    v=v.replace(/(\d{2})(\d)/,"$1:$2") //Coloca dois ponto entre o segundo e o terceiro dígitos ##:##
    v=v.substr(0,5) //Remove digitos extras (aceita no max 5 caracteres(contando o ':' no meio) )
    return v
}

function datatime(v){
    v=v.replace(/\D/g,"") //Remove tudo o que não é dígito
    v=v.replace(/(\d{2})(\d)/,"$1/$2") //Coloca um ponto entre o segundo e o terceiro dígitos
    v=v.replace(/(\d{2})(\d)/,"$1/$2") //Coloca um ponto entre o quarto e o quinto dígitos
    v=v.replace(/(\d{2})(\d)/,"$3:$4") //Coloca um ponto entre o quarto e o quinto dígitos
   // v=v.replace(/^((0[1-9]|[12]\d)\-(0[1-9]|1[0-2])|30\-(0[13-9]|1[0-2])|31\-(0[13578]|1[02]))\-\d{4}$/)
    return v
}

function site(v){
    //Esse sem comentarios para que você entenda sozinho ;-)
    v=v.replace(/^http:\/\/?/,"")
    dominio=v
    caminho=""
    if(v.indexOf("/")>-1)
        dominio=v.split("/")[0]
    caminho=v.replace(/[^\/]*/,"")
    dominio=dominio.replace(/[^\w\.\+-:@]/g,"")
    caminho=caminho.replace(/[^\w\d\+-@:\?&=%\(\)\.]/g,"")
    caminho=caminho.replace(/([\?&])=/,"$1")
    if(caminho!="")dominio=dominio.replace(/\.+$/,"")
    v="http://"+dominio+caminho
    return v
}

function remove(str, sub) {
    i = str.indexOf(sub);
    r = "";
    if (i == -1) return str;
    r += str.substring(0,i) + remove(str.substring(i + sub.length), sub);
    return r;
}

function CheckAll() {
    for (var i=0;i<document.pageform.elements.length;i++) {
        var e = document.pageform.elements[i];
        if (e.type == 'checkbox' && e.name != 'allbox') {
            e.checked = document.pageform.allbox.checked;
        }
    }
}


<!-- Início da Função FormataReais -->
documentall = document.all;
/*
* função para formatação de valores monetários retirada de
* http://jonasgalvez.com/br/blog/2003-08/egocentrismo
*/

function formatamoney(c) {
    var t = this; if(c == undefined) c = 2;		
    var p, d = (t=t.split("."))[1].substr(0, c);
    for(p = (t=t[0]).length; (p-=3) >= 1;) {
        t = t.substr(0,p) + "" + t.substr(p);
    }
    
    return t+"."+d+Array(c+1-d.length).join(0);
}

String.prototype.formatCurrency=formatamoney

function demaskvalue(valor, currency){
    /*
* Se currency é false, retorna o valor sem apenas com os números. Se é true, os dois últimos caracteres são considerados as 
* casas decimais
*/
    var val2 = '';
    var strCheck = '0123456789';
    var len = valor.length;
    if (len== 0){
        return 0.00;
    }

    if (currency ==true){
        /* Elimina os zeros à esquerda
		* a variável  <i> passa a ser a localização do primeiro caractere após os zeros e 
		* val2 contém os caracteres (descontando os zeros à esquerda)
		*/
		
        for(var i = 0; i < len; i++)
            if ((valor.charAt(i) != '0') && (valor.charAt(i) != ',')) break;
		
        for(; i < len; i++){
            if (strCheck.indexOf(valor.charAt(i))!=-1) val2+= valor.charAt(i);
        }

        if(val2.length==0) return "0.00";
        if (val2.length==1)return "0.0" + val2;
        if (val2.length==2)return "0." + val2;
		
        var parte1 = val2.substring(0,val2.length-2);
        var parte2 = val2.substring(val2.length-2);
        var returnvalue = parte1 + "." + parte2;
        return returnvalue;
		
    }
    else{
        /* currency é false: retornamos os valores COM os zeros à esquerda,
			* sem considerar os últimos 2 algarismos como casas decimais 
			*/
        val3 ="";
        for(var k=0; k < len; k++){
            if (strCheck.indexOf(valor.charAt(k))!=-1) val3+= valor.charAt(k);
        }
        return val3;
    }
}

function reais(obj,event){

    var whichCode = (window.Event) ? event.which : event.keyCode;
    /*
Executa a formatação após o backspace nos navegadores !document.all
*/
    if (whichCode == 8 && !documentall) {
        /*
Previne a ação padrão nos navegadores
*/
        if (event.preventDefault){ //standart browsers
            event.preventDefault();
        }else{ // internet explorer
            event.returnValue = false;
        }
        var valor = obj.value;
        var x = valor.substring(0,valor.length-1);
        obj.value= demaskvalue(x,true).formatCurrency();
        return false;
    }
    /*
Executa o Formata Reais e faz o format currency novamente após o backspace
*/
    FormataReais(obj,'.',',',event);
} // end reais


function backspace(obj,event){
    /*
Essa função basicamente altera o  backspace nos input com máscara reais para os navegadores IE e opera.
O IE não detecta o keycode 8 no evento keypress, por isso, tratamos no keydown.
Como o opera suporta o infame document.all, tratamos dele na mesma parte do código.
*/

    var whichCode = (window.Event) ? event.which : event.keyCode;
    if (whichCode == 8 && documentall) {
        var valor = obj.value;
        var x = valor.substring(0,valor.length-1);
        var y = demaskvalue(x,true).formatCurrency();

        obj.value =""; //necessário para o opera
        obj.value += y;
	
        if (event.preventDefault){ //standart browsers
            event.preventDefault();
        }else{ // internet explorer
            event.returnValue = false;
        }
        return false;

    }// end if
}// end backspace

function FormataReais(fld, milSep, decSep, e) {
    var sep = 0;
    var key = '';
    var i = j = 0;
    var len = len2 = 0;
    var strCheck = '0123456789';
    var aux = aux2 = '';
    var whichCode = (window.Event) ? e.which : e.keyCode;

    //if (whichCode == 8 ) return true; //backspace - estamos tratando disso em outra função no keydown
    if (whichCode == 0 ) return true;
    if (whichCode == 9 ) return true; //tecla tab
    if (whichCode == 13) return true; //tecla enter
    if (whichCode == 16) return true; //shift internet explorer
    if (whichCode == 17) return true; //control no internet explorer
    if (whichCode == 27 ) return true; //tecla esc
    if (whichCode == 34 ) return true; //tecla end
    if (whichCode == 35 ) return true;//tecla end
    if (whichCode == 36 ) return true; //tecla home

    /*
O trecho abaixo previne a ação padrão nos navegadores. Não estamos inserindo o caractere normalmente, mas via script
*/

    if (e.preventDefault){ //standart browsers
        e.preventDefault()
    }else{ // internet explorer
        e.returnValue = false
    }

    var key = String.fromCharCode(whichCode);  // Valor para o código da Chave
    if (strCheck.indexOf(key) == -1) return false;  // Chave inválida

    /*
Concatenamos ao value o keycode de key, se esse for um número
*/
    fld.value += key;

    var len = fld.value.length;
    var bodeaux = demaskvalue(fld.value,true).formatCurrency();
    fld.value=bodeaux;

    /*
Essa parte da função tão somente move o cursor para o final no opera. Atualmente não existe como movê-lo no konqueror.
*/
    if (fld.createTextRange) {
        var range = fld.createTextRange();
        range.collapse(false);
        range.select();
    }
    else if (fld.setSelectionRange) {
        fld.focus();
        var length = fld.value.length;
        fld.setSelectionRange(length, length);
    }
    return false;

}
//Fim da Função FormataReais -->

var keyTime, keyStr = '', allOpts, lastElement;
var agt = navigator.userAgent.toLowerCase();
//var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_gecko = (agt.indexOf("gecko") != -1);
function populate(srcEvent)
{
    var element = (srcEvent)? ((srcEvent.target)? srcEvent.target : srcEvent.srcElement) : window.event.srcElement;
    if(lastElement != element)
    {
        allOpts = new Array();
        for(var i = 0; i < element.options.length; i++)
            allOpts[i] = element.options[i].text.toLowerCase();
        lastElement = element;
    }
}
function setSelection(srcEvent)
{
    var myEvent = (srcEvent)? srcEvent : window.event;
    var element = (myEvent.target)? myEvent.target : myEvent.srcElement;
    var keyCode = myEvent.keyCode;
    // messy JS keycodes force me to preprocess. Note: I use a US keyboard, other keyboards may vary?
    if((keyCode > 47 && keyCode < 58) || (keyCode > 64 && keyCode < 91 || keyCode == 32)) ; // space or alphanumerical characters, leave them alone
    else if(keyCode > 95 && keyCode < 106) keyCode -= 48; // keypad numbers
    else if(keyCode > 105 && keyCode < 112) keyCode -= 64; // keypad '+', '-', '/', '*', '.'
    else if(keyCode > 187 && keyCode < 192) keyCode -= 144; // '/', '.', ',', '-'
    else if(keyCode > 218 && keyCode < 222) keyCode -= 128; // '\', '[', ']'
    else
    {
        switch(keyCode)
        {
            case 187: keyCode = 61; break; // '='
            case 222: keyCode = 39; break; // '''
            case 192: keyCode = 96; break; // '`'
            case 186: keyCode = 59; break; // ';'
            default: return; // do not process non printable characters (unfortunately backspace cannot be supported because browsers like IE interpret backspace as go back a page in history)
        }
    }
    var currentKey = String.fromCharCode(keyCode).toLowerCase();
    var idx, currentSIdx = element.selectedIndex, useOld = false;
    var newTime = new Date().getTime();
    if(keyTime != null && newTime - keyTime < 1500) // do type-ahead if two keys were pressed within 500 milliseconds (0.5 second, one can change this value for customization)
    {
        keyStr += currentKey;
        idx = findIdx();
        if(idx == -1) return; // not found, keep current selection then (leave the incorrect keyStr alone)
    }
    else // unfortunately we seem to have to handle default browser behavior too
    {
        keyStr = currentKey;
        // behavior should be: if next option is available and begins with the same character, select the next option
        // when there is either no more option, or no more option that begins with the same character as the current option,
        // then select the first option that starts with the currentKey
        idx = currentSIdx + 1;
        if(idx >= allOpts.length || allOpts[idx].length == 0 || allOpts[idx].charAt(0) != keyStr)
            idx = findIdx();
    }
    if(idx >= 0) // if keyStr is found in an option, select the option
    {
        element.options[currentSIdx].selected = false;
        // gecko-based browsers have a very strange bug that strikes when user presses
        // the same character multiple times (like 'AAA', 'BBBB'), which could be "fixed"
        // in a strange way too (actually the idx > 0 test is not even necessary!)
        // first make a pattern to check if it's same character multiple times
        var pattern = new RegExp('^' + keyStr.charAt(0) + '+$', "i");
        if(is_gecko && pattern.test(keyStr) && idx > 0) element.options[idx-1].selected = true;
        else element.options[idx].selected = true;
    }
    keyTime = newTime;
}

function findIdx()
{
    // full scan to find the smallest idx that match string keyStr (case-insensitive)
    var len = keyStr.length;
    for(var i = 0; i < allOpts.length; i++)
        if(allOpts[i].length >= len && allOpts[i].substring(0, len) == keyStr)
            return i;
    return -1;
}


// JavaScript Document

function ajaxInit() {
    var req;
    try {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e) {
        try {
            req = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(ex) {
            try {
                req = new XMLHttpRequest();
            } catch(exc) {
                alert("Esse browser não tem recursos para uso do Ajax");
                req = null;
            }
        }
    }

    return req;
}

function Inicio() {
    var ajax = ajaxInit();
    if(ajax)
    {
        document.getElementById("Conteudo").innerHTML = '<br>Aguarde... carregando conteúdo!<br><br>';
        var dt = new Date();
        ajax.open("GET", "page_novidades.php?Rnd=" + encodeURI(Math.random() + "_" + dt.getTime()), true);
        ajax.onreadystatechange = function() {
            if(ajax.readyState == 4)
            {
                if(ajax.status == 200)
                {
                    document.getElementById("Conteudo").innerHTML = ajax.responseText;
                }
                else
                {
                    alert(ajax.statusText);
                }
            }
        }
        ajax.send(null);
    }
}

function Open_Financial(Page, ID_SELECT, Div) {
    var ajax = ajaxInit();
    if(ajax)
    {
        document.getElementById(Div).innerHTML = '<br>Aguarde... carregando conteúdo!<br><br>';
        document.getElementById('AncTop').focus();
        var dt = new Date();
        ajax.open("GET", Page + ".php?ID_SELECT=" + ID_SELECT + "&Rnd=" + encodeURI(Math.random() + "_" + dt.getTime()), true);
        ajax.onreadystatechange = function() {
            if(ajax.readyState == 4)
            {
                if(ajax.status == 200)
                {
                    document.getElementById(Div).innerHTML = ajax.responseText;
                }
                else
                {
                    alert(ajax.statusText);
                }
            }
        }
        ajax.send(null);
    }
}

function Send_Form(Page, ID_SELECT, Div) {
    var ajax = ajaxInit();
    if(ajax)
    {
        document.getElementById(Div).innerHTML = '<br>Aguarde... carregando conteúdo!<br><br>';
        document.getElementById('AncTop').focus();
        var dt = new Date();
        ajax.open("POST", Page + ".php?ID_SELECT=" + ID_SELECT + "&Rnd=" + encodeURI(Math.random() + "_" + dt.getTime()), true);
        ajax.onreadystatechange = function() {
            if(ajax.readyState == 4)
            {
                if(ajax.status == 200)
                {
                    document.getElementById(Div).innerHTML = ajax.responseText;
                }
                else
                {
                    alert(ajax.statusText);
                }
            }
        }
        ajax.send(null);
    }
}


function SubConteudo(Page) {
    var ajax = ajaxInit();
    if(ajax)
    {
        document.getElementById("SubConteudo").innerHTML = 'Aguarde... carregando conteúdo!';
        var dt = new Date();
        ajax.open("GET", "page_" + Page + ".php?Rnd=" + encodeURI(Math.random() + "_" + dt.getTime()), true);
        ajax.onreadystatechange = function() {
            if(ajax.readyState == 4)
            {
                if(ajax.status == 200)
                {
                    document.getElementById("SubConteudo").innerHTML = ajax.responseText;
                }
                else
                {
                    alert(ajax.statusText);
                }
            }
        }
        ajax.send(null);
    }
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
    window.open(theURL,winName,features);
}

function Send_Financial_Gait()
{
    //Verifica Form
    var FORM = document.FormGait;

    if(FORM.Gait.value == "")
    {
        alert("Andamento de Cobrança\n ------------------------------------------------\n Preencha o campo Andamento, por favor.\n");
        FORM.Gait.focus();
    }
    else
    {
        FORM.action = 'enviamsg.php';
        FORM.submit();
    }
}


function SaveGait() {
{
    var Gait = document.getElementById('Gait').value; //Note que as variáveis são resgatadas pela função getElementById.
    var IDClient = document.getElementById('ID_SELECT').value;
    var exibeResultado = document.getElementById('andamentos');

    var ajax = ajaxInit(); // Inicia o Ajax.
    ajax.open("GET", "financial_screen_recovery_client_gait.php?Gait=" + Gait +"&ID_SELECT=" + IDClient, true); // Envia o termo da busca como uma querystring, nos possibilitando o filtro na busca.
    ajax.onreadystatechange = function()
    {
        if(ajax.readyState == 1) // Quando estiver carregando, exibe: carregando...
        {
            exibeResultado.innerHTML = "Inserindo";
        }
        if(ajax.readyState == 4) // Quando estiver tudo pronto.
        {
            if(ajax.status == 200)
            {
                var resultado = ajax.responseText;
                exibeResultado.innerHTML = resultado;
            }
            else
            {
                exibeResultado.innerHTML = "Erro nas funções do Ajax";
            }
        }
    }
    ajax.send(null); // submete
    document.getElementById("Gait").value= "";//limpa os campos
    document.getElementById("Gait").setFocus=true;

}
}

function evalJson(value) {
    eval("var string = "+value+";");
    return string;
}

function PrintElementID(id, pg) {
    var oPrint, oJan, oContent;
    oPrint = window.document.getElementById(id).innerHTML;
    oJan   = window.open(pg);

    oContent = "<html><head><title>Imprimir</title><link href=\"css/layout.css\" rel=\"stylesheet\" type=\"text/css\" /><style>img { display: none; } table { font-family: Tahoma, Verdana, Arial; font-size: 11px; }</style></head><body>" + oPrint + "</body></html>";

    oJan.document.write(oContent);
    oJan.history.go();
    oJan.window.print();
}