/*****************************************************************************************/
/* Serviços ajax
/*****************************************************************************************/

function getCheckedExtension(elm){
    for(i = 0; i < elm.length; i++)
        if(elm[i].checked){
            return elm[i].value;
        }
}

/*
* Usa um serviço ajax para verificar a disponibilidade de um dominio
* e dar sugestões, caso o mesmo não esteja disponível
* O serviço ajax retorna uma resposta JSON
*/
// especifico para o registro
function verificarDisponibilidadeRegistrar(){
    var status = $('dominioStatus');
    Element.show('dominioStatus');
    status.innerHTML = "Aguarde...";
    var url="/ajax/thajax.php";
    var pars = "acao=whois&dominio=" + $F('dominio_registrar') + "." + $F('extensao');
    var myAjax = new Ajax.Request(
			url, 
			{
				method: 'get', 
				parameters: pars, 
				onComplete: showResponse
			});
    function showResponse(originalRequest)
    {

        var status = $('dominioStatus');
        var dominio = eval("(" + originalRequest.responseText + ")");
        var html;
        
        if(dominio.disponivel) {
       
            html =  "<h3>Dom&iacute;nio<\/h3><table width=\'90%\' border=\'0\' cellspacing=\'2\' cellpadding=\'4\'><tr><td  width=\"17\"><img src=\'/img/hospedagem_novo/btn_seta.gif\' width=\"4\" height=\"8\" border=\"0\" /><\/td><td>" + $F('dominio_registrar') + "." + $F('extensao') +" dispon&iacute;vel<\/td><td><a href='javascript:mostraRegistro();'><img src=\"/img/botoes/btn_escolher.gif\" alt=\"registrar\" width=\"65\" height=\"16\" border=\"0\" /><\/a><\/td><\/tr>";
       } else{
            html = "<h3>Dom&iacute;nio indispon&iacute;vel<\/h3><p>"+ $F('dominio_registrar') + "." + $F('extensao') +" n&atilde;o dispon&iacute;vel<\/p>";
            if(dominio.sugestoes.length > 0) {
                html += "<h3>Sugest&otilde;es de dom&iacute;nios similares:<\/h3>";
                html += "<table width=\'90%\' border=\'0\' cellspacing=\'2\' cellpadding=\'4\'>"
                for(var i=0; i < dominio.sugestoes.length; i++){
                     html += "<tr><td  width=\"17\"><img src=\'/img/hospedagem_novo/btn_seta.gif\' width=\"4\" height=\"8\" border=\"0\" /><\/td><td>" + dominio.sugestoes[i] + "<\/td><td><a href='javascript:sugestaoRegistro(\""+ dominio.sugestoes[i] +"\");mostraRegistro();'><img src=\"/img/botoes/btn_escolher.gif\" alt=\"registrar\" width=\"65\" height=\"16\" border=\"0\" /><\/a><\/td><\/tr>";
                }
                html += "<\/table>";

            }
        }
        status.innerHTML = html;
	}
}


function verificarDisponibilidadeTransferir(){
    var status = $('dominioStatus');
    Element.show('dominioStatus');
    status.innerHTML = "Aguarde...";
    var url="/ajax/thajax.php";
    var pars = "acao=whois&dominio=" + $F('dominio_registrar') + "." + $F('extensao');
    var myAjax = new Ajax.Request(
			url, 
			{
				method: 'get', 
				parameters: pars, 
				onComplete: showResponse
			});
    function showResponse(originalRequest)
	{

        var status = $('dominioStatus');
        var dominio = eval("(" + originalRequest.responseText + ")");
        var html;
        if(dominio.disponivel) {
          html = "<h3>Dom&iacute;nio dispon&iacute;vel para registro<\/h3><p>O dom&iacute;nio " + $F('dominio_registrar') + "." + $F('extensao') + " encontra-se dispon&iacute;vel e pode ser <a href='/registro/?capa=sim&dominio=" + $F('dominio_registrar') + "&extensao=" + $F('extensao') +"'>registrado na p&aacute;gina de registro<\/a>.<\/p>";
        } else{
          html =  "<h3>Dom&iacute;nio dispon&iacute;vel para transfer&ecirc;ncia<\/h3><p>Por favor, confirme que o dom&iacute;nio " 
          + $F('dominio_registrar') + "." + $F('extensao') 
          + " &eacute; neste caso ser&aacute; poss&iacute;vel transfer&iacute;-lo.</p><ul class=\'seta_laranja\'><li><a href='javascript:submitForm();'>sim, sou o propriet&aacute;rio do dom&iacute;nio.<\/a><\/li>" 
          + "<li>n&atilde;o sou propriet&aacute;rio deste dom&iacute;nio. <a href='/transferencia/index.php'>Quero fazer outra pesquisa.<\/a><\/li><\/ul>";
             
        }
        status.innerHTML = html;
	}
}


/*
* Usa ums serviço ajax para tentar localizar um determinado cep.
* Caso ache, preenche os campos correspondente ao endereço.
* O serviço ajax retorna uma resposta JSON.
*/
function localizarCep(){
    var url="/ajax/thajax.php";
    var pars = "acao=getEndereco&cep=" + $F('cep') ;
    var status = $('emailStatus');
    Element.show('emailStatus');
    status.innerHTML = "Aguarde, carregando...";
    
    mostraCampos();
    is_disponivel = true;
    
    var myAjax = new Ajax.Request(
			url, 
			{
				method: 'get', 
				parameters: pars, 
				onComplete: showResponse
			});
    function showResponse(originalRequest)
	{
        
        Element.hide('emailStatus');
       
       
        
       
        var endereco = eval("(" + originalRequest.responseText + ")");
        $('endereco').value = endereco.rua;
        $('bairro').value = endereco.bairro;
        $('cidade').value = endereco.cidade;
		$('uf').value = endereco.estado;
	    //mostraCampos();
        //is_disponivel = true;
    }
}

function isDisponivel() {
    is_disponivel = true;
}

function notIsDisponivel() {
    is_disponivel = false;
}

function setIndexByExtensao(extensao){
		var listBox = $('extensao');
		var options = listBox.getElementsByTagName('option');
		switch(extensao){
            case "com":
                listBox.selectedIndex = 5;
            break;
            case "info":
                listBox.selectedIndex = 2;
            break;
            case "org":
                listBox.selectedIndex = 1;
            break;
            case "net":
                listBox.selectedIndex = 4;
            break;
            case "biz":
                listBox.selectedIndex = 6;
            break;
            case "name":
                listBox.selectedIndex = 7;
            break;
        }
}



function esconderStatus(){
    Element.hide('dominioStatus');
}

function setResponsavel(){
	if($('responsavel').checked == true){
		$('nome_responsavel').disabled = true;
	} else {
		$('nome_responsavel').disabled = false;
	}
}
function temPerfil(){
	$('nome').disabled = true;
	$('documento').disabled = true;
	$('telefone_area').disabled = true;
	$('telefone').disabled = true;
	$('endereco').disabled = true;
	$('endereco_numero').disabled = true;
	$('endereco_complemento').disabled = true;
	$('cep').disabled = true;
	$('bairro').disabled = true;
	$('cidade').disabled = true;
	$('uf').disabled = true;

	$('thuser').disabled = false;
	$('thpass').disabled = false;

}
function naoTemPerfil(){
	$('nome').disabled = false;
	$('documento').disabled = false;
	$('telefone_area').disabled = false;
	$('telefone').disabled = false;
	$('endereco').disabled = false;
	$('endereco_numero').disabled = false;
	$('endereco_complemento').disabled = false;
	$('cep').disabled = false;
	$('bairro').disabled = false;
	$('cidade').disabled = false;
	$('uf').disabled = false;

	$('thuser').disabled = true;
	$('thpass').disabled = true;

}

//var Campo = function
function Campo(n){
    this.validadores = new Array();
    this.nome = n;
    this.inserirValidador = function(v){
        this.validadores.push(v);
    }
    this.validar = function(){
        for(var i = 0; i < this.validadores.length; i++){
            try{
				//alert(this.nome);
                this.validadores[i].validar($(this.nome));
            }
            catch(e){
                return e.message;
            }
        }
    }
}

function Exception(message){
    this.message = message;
}

function NotEmptyValidator(){
    this.validar = function(s){
        if(s.value.length == 0) throw new Exception("Este campo nao pode ser vazio");
    }
}
//       NotCheckedValidator
function NotCheckedValidator(){
    this.validar = function(c){
        if(c.checked == false){
		 throw new Exception("Este campo nao pode ser vazio");
		}
    }
}

function NotSelectedValidator(){
    this.validar = function(c){
        if(c.selected == false){
		 throw new Exception("Este campo nao pode ser vazio");
		}
    }
}


function CPFValidator(){
    this.validar = function(s){
        if(s.value.length == 0) throw new Exception("Este campo nao pode ser vazio");
    }
}


/*

	$('endereco').disabled = false;
	$('endereco_numero').disabled = false;
	$('cep').disabled = false;
	$('bairro').disabled = false;
	$('cidade').disabled = false;
	$('uf').disabled = false;

	$('thuser').disabled = true;
	$('thpass').disabled = true;

*/
function highlight(e){
    $(e).style.setProperty('background-color','#DDBB66',null);
}
function unhighlight(e){
    $(e).style.setProperty('background-color','#FFFFFF',null);
}

function abreCEP() {
    
    var load = window.open('index.php?step=cep','','scrollbars=yes,menubar=no,height=330,width=350,resizable=no,toolbar=no,location=no,status=no');
} 


 
function mostraCampos() {
     
    if(($('radioCPF').checked || $('radioCNPJ').checked) && ($('nome').value !=='') && ((($('documentoCPF').value !=='')) || ($('documentoCNPJ').value !=='')) ) { 
       // Element.hide('idwarning');
        Element.show('endereco1');
        Element.show('endereco2'); 
        Element.show('endereco3'); 
        Element.show('idtelefone');
        Element.show('idtitulo');
        Element.show('idpadders');
        Element.show('idemail');
        Element.show('idemailalternativo');
        Element.show('idresponsavel');
        Element.show('idtelefones');
        Element.show('idinput');
    } else {
    //Element.show('idwarning');
    
    }
    
} 

 
function copiaCampo(form) {

    if(form.documento[0].checked) {
        $('nome_responsavel').value = $('nome').value;
     }
    
    if(form.documento[1].checked) {
        $('nome_responsavel').value = $('nome').value;
     }
}


function pessoaFisica() {
    Element.show('idtrdocumentoCPF');
    Element.hide('idtrdocumentoCNPJ');
    Element.show('idNome');
    Element.hide('idRazao');
    Element.show('idtrnome');
    Element.show('idCEP');
    $('documentoCPF').focus();
}

function pessoaJuridica() {

    Element.show('idtrdocumentoCNPJ');
    Element.hide('idtrdocumentoCPF');
    Element.show('idRazao');
    Element.hide('idNome');
    Element.show('idtrnome');
    Element.show('idCEP');
    $('documentoCNPJ').focus();
}


//alterar para extensao_internacional 
function sugestao(dominio) {
    var divide = dominio.split('.');
    var inicio = divide[0];
    var fim = divide[1];
    
    $('extensao').selected = true;
   
   
   var val = 0;

for( i = 0; i < document.assinar.extensao.length; i++ )
   {
        if( document.assinar.extensao.checked == true )
        val = document.assinar.extensao[i].value;
    }

  
  setCheckedValue(document.assinar.extensao, divide[1]);
   
   
}

function sugestaoRegistro(dominio) {
    var divide = dominio.split('.');
    var inicio = divide[0];
    var fim = divide[1];
    
    $('extensao').value = divide[1];
}



function setCheckedValue(radioObj, newValue) {
	if(!radioObj)
		return;
	var radioLength = radioObj.length;
	if(radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for(var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		if(radioObj[i].value == newValue.toString()) {
			radioObj[i].checked = true;
		}
	}
}


 
 
function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}




 function Select_Value_Set(dominio) {
    var divide = dominio.split('.');
    var inicio = divide[0];
    var fim = divide[1];
        
        
         eval('SelectObject = document.' + 
              'extensao' + ';');
         for(index = 0; 
             index < SelectObject.length; 
             index++)
            {
            if(SelectObject[index].value == divide[1])
               SelectObject.selectedIndex = index;
            }
         }
         
       
function abreChat() {    
    var load = window.open('http://chat.tehospedo.com.br/ver/request.php?l=desenvolve&x=1&deptid=0&page=0','','scrollbars=yes,menubar=no,height=430,width=470,resizable=no,toolbar=no,location=no,status=no');
} 

function porqueEscolher() {    
    var load = window.open('/hospedagem/?acao=porqueescolher','','scrollbars=auto,menubar=no,height=350,width=480,resizable=yes,toolbar=no,location=no,status=no');
}  
function comoHospedar() {    
    var load = window.open('/hospedagem/?acao=comohospedar','','scrollbars=auto,menubar=no,height=350,width=480,resizable=yes,toolbar=no,location=no,status=no');
}   
  


 
function validaDocumento() {
    if ((isCpfCnpj($F('documentoCNPJ'))) || (isCpfCnpj($F('documentoCPF')))) {
           
		    if ($('nome').value == '') {
		        Element.show('alertaDocumento');
		         $('alertaDocumento').innerHTML = "Informe seu nome";
		               
		    } else if (!validaCep()) {
		         Element.show('alertaDocumento');
		         $('alertaDocumento').innerHTML = "Preencha corretamente seu CEP";
		               
		    } else {
		    		$('alertaDocumento').innerHTML = "";
		            Element.hide('alertaDocumento');
		            localizarCep();
		            //mostraCampos();
		    }
    
        
   } else {
   			Element.show('alertaDocumento');
           // if(($('radioCPF')).checked)
               // $('alertaDocumento').innerHTML = "Preencha corretamente os dados de seu CPF";
        
            // if(($('radioCNPJ')).checked)
           $('alertaDocumento').innerHTML = "Preencha corretamente os dados de seu documento";
   }
   
    
} 


function validaCep() {
    s = $F('cep');
    if ((s.length < 8) || (isNaN(s.replace("-","0"))))  {		
        return false; 
    } else {
        return true;    
    }
}

function validaTelefoneArea() {
    s = $F('telefone_area');
	if (s.length != 2) {		
        return false; 
    } else {
        return true;    
    }
}

function validaTelefone() {
    s = $F('telefone');
	if (s.length != 8) {		
        return false; 
    } else {
        return true;    
    }
}
/**
 * @author Márcio d'Ávila
 * @version 1.01, 2004
 *
 * PROTÓTIPOS:
 * método String.lpad(int pSize, char pCharPad)
 * método String.trim()
 *
 * String unformatNumber(String pNum)
 * String formatCpfCnpj(String pCpfCnpj, boolean pUseSepar, boolean pIsCnpj)
 * String dvCpfCnpj(String pEfetivo, boolean pIsCnpj)
 * boolean isCpf(String pCpf)
 * boolean isCnpj(String pCnpj)
 * boolean isCpfCnpj(String pCpfCnpj)
 */


var NUM_DIGITOS_CPF  = 11;
var NUM_DIGITOS_CNPJ = 14;
var NUM_DGT_CNPJ_BASE = 8;


/**
 * Adiciona método lpad() à classe String.
 * Preenche a String à esquerda com o caractere fornecido,
 * até que ela atinja o tamanho especificado.
 */
String.prototype.lpad = function(pSize, pCharPad)
{
	var str = this;
	var dif = pSize - str.length;
	var ch = String(pCharPad).charAt(0);
	for (; dif>0; dif--) str = ch + str;
	return (str);
} //String.lpad


/**
 * Adiciona método trim() à classe String.
 * Elimina brancos no início e fim da String.
 */
String.prototype.trim = function()
{
	return this.replace(/^\s*/, "").replace(/\s*$/, "");
} //String.trim


/**
 * Elimina caracteres de formatação e zeros à esquerda da string
 * de número fornecida.
 * @param String pNum
 *      String de número fornecida para ser desformatada.
 * @return String de número desformatada.
 */
function unformatNumber(pNum)
{
	return String(pNum).replace(/\D/g, "").replace(/^0+/, "");
} //unformatNumber


/**
 * Formata a string fornecida como CNPJ ou CPF, adicionando zeros
 * à esquerda se necessário e caracteres separadores, conforme solicitado.
 * @param String pCpfCnpj
 *      String fornecida para ser formatada.
 * @param boolean pUseSepar
 *      Indica se devem ser usados caracteres separadores (. - /).
 * @param boolean pIsCnpj
 *      Indica se a string fornecida é um CNPJ.
 *      Caso contrário, é CPF. Default = false (CPF).
 * @return String de CPF ou CNPJ devidamente formatada.
 */
function formatCpfCnpj(pCpfCnpj, pUseSepar, pIsCnpj)
{
	if (pIsCnpj==null) pIsCnpj = false;
	if (pUseSepar==null) pUseSepar = true;
	var maxDigitos = pIsCnpj? NUM_DIGITOS_CNPJ: NUM_DIGITOS_CPF;
	var numero = unformatNumber(pCpfCnpj);

	numero = numero.lpad(maxDigitos, '0');
	if (!pUseSepar) return numero;

	if (pIsCnpj)
	{
		reCnpj = /(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})$/;
		numero = numero.replace(reCnpj, "$1.$2.$3/$4-$5");
	}
	else
	{
		reCpf  = /(\d{3})(\d{3})(\d{3})(\d{2})$/;
		numero = numero.replace(reCpf, "$1.$2.$3-$4");
	}
	return numero;
} 
//formatCpfCnpj


/**
 * Calcula os 2 dígitos verificadores para o número-efetivo pEfetivo de
 * CNPJ (12 dígitos) ou CPF (9 dígitos) fornecido. pIsCnpj é booleano e
 * informa se o número-efetivo fornecido é CNPJ (default = false).
 * @param String pEfetivo
 *      String do número-efetivo (SEM dígitos verificadores) de CNPJ ou CPF.
 * @param boolean pIsCnpj
 *      Indica se a string fornecida é de um CNPJ.
 *      Caso contrário, é CPF. Default = false (CPF).
 * @return String com os dois dígitos verificadores.
 */
function dvCpfCnpj(pEfetivo, pIsCnpj)
{
	if (pIsCnpj==null) pIsCnpj = false;
	var i, j, k, soma, dv;
	var cicloPeso = pIsCnpj? NUM_DGT_CNPJ_BASE: NUM_DIGITOS_CPF;
	var maxDigitos = pIsCnpj? NUM_DIGITOS_CNPJ: NUM_DIGITOS_CPF;
	var calculado = formatCpfCnpj(pEfetivo, false, pIsCnpj);
	calculado = calculado.substring(2, maxDigitos);
	var result = "";

	for (j = 1; j <= 2; j++)
	{
		k = 2;
		soma = 0;
		for (i = calculado.length-1; i >= 0; i--)
		{
			soma += (calculado.charAt(i) - '0') * k;
			k = (k-1) % cicloPeso + 2;
		}
		dv = 11 - soma % 11;
		if (dv > 9) dv = 0;
		calculado += dv;
		result += dv
	}

	return result;
} 

//dvCpfCnpj


/**
 * Testa se a String pCpf fornecida é um CPF válido.
 * Qualquer formatação que não seja algarismos é desconsiderada.
 * @param String pCpf
 *      String fornecida para ser testada.
 * @return <code>true</code> se a String fornecida for um CPF válido.
 */
function isCpf(pCpf)
{
	var numero = formatCpfCnpj(pCpf, false, false);
	var base = numero.substring(0, numero.length - 2);
	var digitos = dvCpfCnpj(base, false);
	var algUnico, i;

	// Valida dígitos verificadores
	if (numero != base + digitos) return false;

	/* Não serão considerados válidos os seguintes CPF:
	 * 000.000.000-00, 111.111.111-11, 222.222.222-22, 333.333.333-33, 444.444.444-44,
	 * 555.555.555-55, 666.666.666-66, 777.777.777-77, 888.888.888-88, 999.999.999-99.
	 */
	algUnico = true;
	for (i=1; i<NUM_DIGITOS_CPF; i++)
	{
		algUnico = algUnico && (numero.charAt(i-1) == numero.charAt(i));
	}
	return (!algUnico);
} //isCpf


/**
 * Testa se a String pCnpj fornecida é um CNPJ válido.
 * Qualquer formatação que não seja algarismos é desconsiderada.
 * @param String pCnpj
 *      String fornecida para ser testada.
 * @return <code>true</code> se a String fornecida for um CNPJ válido.
 */
function isCnpj(pCnpj)
{
	var numero = formatCpfCnpj(pCnpj, false, true);
	var base = numero.substring(0, NUM_DGT_CNPJ_BASE);
	var ordem = numero.substring(NUM_DGT_CNPJ_BASE, 12);
	var digitos = dvCpfCnpj(base + ordem, true);
	var algUnico;

	// Valida dígitos verificadores
	if (numero != base + ordem + digitos) return false;

	/* Não serão considerados válidos os CNPJ com os seguintes números BÁSICOS:
	 * 11.111.111, 22.222.222, 33.333.333, 44.444.444, 55.555.555,
	 * 66.666.666, 77.777.777, 88.888.888, 99.999.999.
	 */
	algUnico = numero.charAt(0) != '0';
	for (i=1; i<NUM_DGT_CNPJ_BASE; i++)
	{
		algUnico = algUnico && (numero.charAt(i-1) == numero.charAt(i));
	}
	if (algUnico) return false;

	/* Não será considerado válido CNPJ com número de ORDEM igual a 0000.
	 * Não será considerado válido CNPJ com número de ORDEM maior do que 0300
	 * e com as três primeiras posições do número BÁSICO com 000 (zeros).
	 * Esta crítica não será feita quando o no BÁSICO do CNPJ for igual a 00.000.000.
	 */
	if (ordem == "0000") return false;
	return (base == "00000000"
		|| parseInt(ordem, 10) <= 300 || base.substring(0, 3) != "000");
} 

//isCnpj


/**
 * Testa se a String pCpfCnpj fornecida é um CPF ou CNPJ válido.
 * Se a String tiver uma quantidade de dígitos igual ou inferior
 * a 11, valida como CPF. Se for maior que 11, valida como CNPJ.
 * Qualquer formatação que não seja algarismos é desconsiderada.
 * @param String pCpfCnpj
 *      String fornecida para ser testada.
 * @return <code>true</code> se a String fornecida for um CPF ou CNPJ válido.
 */
function isCpfCnpj(pCpfCnpj)
{
	var numero = pCpfCnpj.replace(/\D/g, "");
	if (numero.length > NUM_DIGITOS_CPF)
		return isCnpj(pCpfCnpj)
	else
		return isCpf(pCpfCnpj);
} //isCpfCnpj

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

var ns4 = document.layers;

function getLeft(Elem) {
        if (ns4) {
                var elem = getObjNN4(document, Elem);
                return elem.pageX;
        } else {
                var elem;
                if(document.getElementById) {
                        var elem = document.getElementById(Elem);
                } else if (document.all){
                        var elem = document.all[Elem];
                }
                xPos = elem.offsetLeft;
                tempEl = elem.offsetParent;
                while (tempEl != null) {
                        xPos += tempEl.offsetLeft;
                        tempEl = tempEl.offsetParent;
                }
                return xPos;
        }
}
function getTop(Elem) {
        if (ns4) {
                var elem = getObjNN4(document, Elem);
                return elem.pageY;
        } else {
                if(document.getElementById) {   
                        var elem = document.getElementById(Elem);
                } else if (document.all) {
                        var elem = document.all[Elem];
                }
                yPos = elem.offsetTop;
                tempEl = elem.offsetParent;
                while (tempEl != null) {
                        yPos += tempEl.offsetTop;
                        tempEl = tempEl.offsetParent;
                }
                return yPos;
        }
}

