var xdblang = 'pt-br';
// version 2005-07-20
// english
if(xdblang != undefined && xdblang == 'en-us'){
    var xdblabels = {noless:"It's not possible to exclude another ",nomore:"It's not possible to insert more ",wait:'The form is being sent, please wait.',wrong_phone:'O número deve ser escrito no formato (dd) dddd-dddd',max_chars1:'This field should contain ',max_chars2:' characters at most. Exceeding this limit will truncate the result.',wrong_email :'You must fill in a valid email address.',wrong_date : 'The date must be inserted in the format yyyy-mm-dd',wrong_datetime : 'The date must be inserted in the format yyyy-mm-dd hh:ii:ss',wrong_int : 'This field only accepts numbers as input.',confirm_delete : 'Do you really want to delete the document? \nAll the references toit will be lost.',confirm_record_delete : 'Do you really want to delete the record? \nAll the information and references to it will be lost.',confirm_copy_delete : 'Really?',confirm_cancel : 'Do you want to cancel your choice?',field : 'The field "',not_empty : '" cannot be empty.',not_selected : '" must be selected.',lang : 'en-us'};
} else {
    var xdblabels = {noless:'Não é possível excluir mais ',nomore:'Não é possível inserir mais ',wait:'O formulário está sendo submetido, por favor aguarde.',wrong_phone:'O número deve ser escrito no formato (dd) dddd-dddd',max_chars1:'Este campo deve conter ',max_chars2:' caracteres no máximo. O que estiver acima deste limite será truncado.',wrong_email :'Você precisa preencher um email válido.',wrong_date : 'A data deve ser inserida no formato dd/mm/aaaa',wrong_datetime : 'A data deve ser inserida no formato aaaa-mm-dd hh:mm:ss',wrong_int : 'Este campo aceita apenas números.',confirm_delete : 'Deseja realmente apagar o documento? \nTodas as informações e referências a ele \nserão perdidas.',confirm_record_delete : 'Deseja realmente apagar o registro? \nTodas as informações e referências a ele \nserão perdidas.',confirm_copy_delete : 'Deseja realmente apagar a c=pia do registro?',confirm_cancel : 'Deseja cancelar a escolha?',field : 'O campo "',not_empty : '" não pode ser vazio.',not_selected : '" deve estar selecionado.',lang : 'pt-br'};
}
var editor = new Array();
var base_url = '';
var oldvalues = [];
var xdb_sent = false;
var xdb_modified = false;
var xdboptions = new Array();
var xdbnames = new Array();
var xdbinfo = new Object();
// calendar
var xdbstyle = { color:'#000066',background:'#eeeef6' };
var xdbnewstyle = { color:'#6666cc',background:'#333366' };
var xdbmarks = new Array();

var xVersion='3.14.1',xOp7=false,xOp5or6=false,xIE4Up=false,xNN4=false,xUA=navigator.userAgent.toLowerCase();
if(window.opera){
  xOp7=(xUA.indexOf('opera 7')!=-1 || xUA.indexOf('opera/7')!=-1);
  if (!xOp7) { xOp5or6=(xUA.indexOf('opera 5')!=-1 || xUA.indexOf('opera/5')!=-1 || xUA.indexOf('opera 6')!=-1 || xUA.indexOf('opera/6')!=-1);}
} else if(document.layers) { xNN4=true;
} else {xIE4Up=document.all && xUA.indexOf('msie')!=-1 && parseInt(navigator.appVersion)>=4;}

function send(x)
{
    if (xdb_sent || xdbhttp_sent) {
        alert(xdblabels.wait);
        return false;
    } else {
        xdb_sent = true;
        window.setTimeout("xdb_sent = false;", 10000);
    }
    
    
    if (editor != null) {
        for (i=0; i < editor.length; i++) {
           	editor[i]._textArea.value = editor[i].getHTML();
       	}
   	}    
    xdbquiet = false;
    for ( i = 0; i < x.elements.length; i++ ) {
        var y = x.elements[i];
        if (!xdb_checkrequired(y)) {
            xdb_sent = false;
            return false;
            break;
        }
    }
    x.submit();
    return false;
}

function xdb_filter(str, formel)
{
    for(var i=0;i< xdboptions.length;i++){
        var fops = new Array();
        var filter = false;
        //if(xDef(formel.elements[xdboptions[i].name + '_0']) && formel.elements[xdboptions[i].name + '_0'].type == 'chckbox'){

        // radio
   	    if(xdboptions[i].filterby == str && formel.elements[xdboptions[i].filterby] != undefined && formel.elements[xdboptions[i].filterby].type == undefined) {
   	        // radio
   	        var fvalue = '';
  	        for (j = 0; j < formel.elements.length; j++) {
   	            if (formel.elements[j].name === str && formel.elements[j].type != undefined && formel.elements[j].type == 'radio' && formel.elements[j].checked) {
   	                fvalue = formel.elements[j].value;
   	            }
   	        }
            filter = true;
            fops = [fvalue];
        
        // select
        } else if (xdboptions[i].filterby == str && xDef(formel.elements[xdboptions[i].filterby]) && formel.elements[xdboptions[i].filterby].type.search(/^select\-/) > -1){
            filter = true;
            var fop = formel.elements[xdboptions[i].filterby].options;
            var fops = new Array();
  	        for (j = 0; j < fop.length; j++) {
   	            if (fop[j].selected === true) {
   	                fops[fops.length] = fop[j].value;
   	            }
   	        }
   	    
   	    // simple input
   	    } else if(xdboptions[i].filterby == str && xDef(xdboptions[i].value) && xDef(formel.elements[xdboptions[i].filterby])){
            filter = true;
            fops = xdb_formelement_value(xdboptions[i].filterby, formel);
    	} else if(xdboptions[i].filterby == str && xdbnames[str] != undefined){
            filter = true;
            var fvalue = ''
  	        for (j = 0; j < xdbnames[str].length; j++) {
  	            fvalue = xdb_formelement_value(xdbnames[str][j], formel);
   	            if (fvalue[0] != undefined) {
   	                for (k = 0; k < fvalue.length; k++) {
       	                fops.push(fvalue[k]);
       	            }
   	            }
   	        }
   	    } else if(xdboptions[i].filterby == str && xDef(formel.elements[xdboptions[i].filterby])){
            filter = true;
            fops = xdb_formelement_value(xdboptions[i].filterby, formel);
    	}
        if(filter && xDef(formel.elements[xdboptions[i].name]) && xdboptions[i].action != undefined){
            var applyfilter = false;
            if(xdboptions[i].value != undefined){
                xdboptions[i].values = [xdboptions[i].value];
            }
            if(xdboptions[i].values != undefined && xdboptions[i].values.length > 0) {
      	        for (j = 0; j < fops.length; j++) {
          	        for (k = 0; k < xdboptions[i].values.length; k++) {
          	            if(xdboptions[i].values[k] == fops[j]){
          	                applyfilter = true;
          	                break;
          	            }
          	        }
       	        }
            }
            if(xdboptions[i].action == 'hide'){
                if(applyfilter){
                    xChangeVisibility('f_' + xdboptions[i].name, 'none');
                } else {
                    xChangeVisibility('f_' + xdboptions[i].name, 'block');
                }
            } else if(xdboptions[i].action == 'display'){
                if(!applyfilter){
                    xChangeVisibility('f_' + xdboptions[i].name, 'none');
                } else {
                    xChangeVisibility('f_' + xdboptions[i].name, 'block');
                }
            } else if(xdboptions[i].action == 'disable'){
                if(applyfilter){
                    xdb_disable(formel.elements[xdboptions[i].name]);
                } else {
                    xdb_enable(formel.elements[xdboptions[i].name]);
                }
            } else if(xdboptions[i].action == 'enable'){
                if(!applyfilter){
                    xdb_disable(formel.elements[xdboptions[i].name]);
                } else {
                    xdb_enable(formel.elements[xdboptions[i].name]);
                }
            }
        } else if(filter && xDef(formel.elements[xdboptions[i].name]) && formel.elements[xdboptions[i].name].type.search(/^select\-/) > -1){
            var op = formel.elements[xdboptions[i].name].options;
            var ops = new Array();
            var opt =  '';
  	        for (j = 0; j < op.length; j++) {
   	            if (op[j].selected === true) {
   	                ops[ops.length] = op[j].value;
   	            }
   	            if (op[j].value == '') {
   	                opt = op[j].text;
   	            }
   	        }
   	        while(op.length > 0) {
   	            op[0] = null;
   	        }
   	        if(formel.elements[xdboptions[i].name].type.search(/^(select\-multiple|checkbox)/) < 0){
   	            op[op.length] = new Option(opt, '');
   	        }
   	        var nop = xdboptions[i].values;
   	        var uop = new Object();
  	        for (var j = 0; j < nop.length; j++) {
  	            for(var k=0;k < fops.length;k++) {
  	                if (fops[k] == nop[j].filter && uop[nop[j].key] != nop[j].value) {
  	                    // add option
  	                    uop[nop[j].key] = nop[j].value;
  	                    var opl = op.length;
  	                    op[opl] = new Option(nop[j].value, nop[j].key);
  	                    for(var l=0;l < ops.length;l++){
  	                        if (ops[l] == nop[j].key){
  	                            // mark as selected
  	                            op[opl].selected = true;
  	                        }
  	                    }
  	                }
  	            }
   	        }
        } else if(filter && xDef(formel.elements[xdboptions[i].name + '_0']) && formel.elements[xdboptions[i].name + '_0'].type == 'checkbox'){
            /*
            var ops = new Array();
            j = 0;
            while(xDef(formel.elements[xdboptions[i].name + '_' + j])){
	            ops[ops.length] = formel.elements[xdboptions[i].name + '_' + j].value;
	            j++;
   	        }*/
   	        var nop = xdboptions[i].values;
  	        for (var j = 0; j < nop.length; j++) {
  	            for(var k=0;k < fops.length;k++) {
  	                if (fops[k] == nop[j].filter) {
  	                    // let visible [xdboptions[i].name + '__' + nop[j].key]
  	                    xChangeVisibility(xdboptions[i].name + '__' + nop[j].key, 'block');
  	                } else {
 	                    xChangeVisibility(xdboptions[i].name + '__' + nop[j].key, 'none');
 	                    // enable the delection from hidden divs when filter-action != hide
  	                }
  	            }
   	        }
            
        }
    }
}

function xdb_disable(formel)
{
    formel.disabled = true;
    formel.style.background = '#cccccc';
    formel.style.color = '#666666';
}
function xdb_enable(formel)
{
    formel.disabled = false;
    formel.style.background = '';
    formel.style.color = '';
}

function xdb_insertfield(fieldname, maxf, label)
{
    if(xdbformfields != undefined && xdbformfields[fieldname].text != ''){
        if(maxf > 0 && xdbformfields[fieldname].count == maxf){
            alert(xdblabels.nomore + label);
            return true;
        }
        var num = xdbformfields[fieldname].count;
        while(xGetElementById('xdbformfield_' + fieldname + '_' + num)){
            num++;
            if(num > 1000){
                break;
            }
        }
        /*
        var newdiv = xdb_get_html('xdbformfield_' + fieldname + '_' + (num + 1));
        if(newdiv !== false){
            */
            var text = xdbformfields[fieldname].text.replace(/««number»»/g, num);
            //xdb_write_html(text, 'xdbformfield_' + fieldname + '_' + (num + 1));
            xdb_appendaselement(text, 'xdbformfield_' + fieldname);
            xChangeVisibility('xdbformfield_' + fieldname + '_' + num, 'block');
            /*
        } else {
            var text = xdb_get_html('xdbformfield_' + fieldname + '_' + num) + xdbformfields[fieldname].text.replace(/««number»»/g, num + 1);
            //xdb_write_html(text, 'xdbformfield_' + fieldname + '_' + num);
            xdb_appendaselement(text, 'xdbformfield_' + fieldname);
            xChangeVisibility('xdbformfield_' + fieldname + '_' + num, 'block');
        }*/
        xdbformfields[fieldname].count = xdbformfields[fieldname].count + 1;
        return true;
    }
}

function xdb_deletefield(fieldname, minf, label)
{
	var argv = xdb_deletefield.arguments;  
	var argc = xdb_deletefield.arguments.length;  

    if(xdbformfields != undefined && xdbformfields[fieldname].text != ''){
        if(minf >= 0 && xdbformfields[fieldname].count == minf){
            alert(xdblabels.noless + label);
            return true;
        }
    	var num = (argc > 3) ? argv[3] : xdbformfields[fieldname].count;  
        xdb_write_html('', 'xdbformfield_' + fieldname + '_' + num);
        xChangeVisibility('xdbformfield_' + fieldname + '_' + num, 'none');
        xdbformfields[fieldname].count = xdbformfields[fieldname].count - 1;
        return true;
    }
}

function xdb_delete_html(identifier)
{
    if (document.getElementById) {
        var x = document.getElementById(identifier);
        alert(x.outerHTML);
        x.outerHTML = '';
    } else if (document.all) {
        var x = document.all[identifier];
        x.outerHTML = '';
    } else if (document.layers) {
        var x = document.layers[identifier];
        x.document.open();
        x.document.write('');
        x.document.close();
    }
}

function xdb_write_html(text,identifier)
{
    if (document.getElementById) {
        var x = document.getElementById(identifier);
        x.innerHTML = '';
        x.innerHTML = text;
    } else if (document.all) {
        var x = document.all[identifier];
        x.innerHTML = text;
    } else if (document.layers) {
        var x = document.layers[identifier];
        text2 = '<p class="testclass">' + text + '</p>';
        x.document.open();
        x.document.write(text2);
        x.document.close();
    }
}

function xdb_appendaselement(text,identifier)
{
	el = document.createElement('div');

    if (document.getElementById) {
        var x = document.getElementById(identifier);
        el.innerHTML = text;
        x.appendChild(el);
    } else if (document.all) {
        var x = document.all[identifier];
        el.innerHTML = text;
        x.appendChild(el);
    } else if (document.layers) {
        var x = document.layers[identifier];
        text2 = '<div>' + text + '</div>';
        x.document.open();
        x.document.write(text2);
        x.document.close();
    }
}

function xdb_get_html(identifier)
{
    if (document.getElementById) {
        var x = document.getElementById(identifier);
        if(x != undefined){
            return x.innerHTML;
        } else {
            return false;
        }
    } else if (document.all) {
        var x = document.all[identifier];
        if(x != undefined){
            return x.innerHTML;
        } else {
            return false;
        }
    } else if (document.layers) {
        var x = document.layers[identifier];
        if(x != undefined){
            return x.value;
        } else {
            return false;
        }
    }
}
function send_page(arr, x, pg1, pg2)
{
    xdbquiet = false;
    for ( i = 0; i < arr.length; i++ ) {
        var y = x.elements[arr[i]];
        if (!xdb_checkrequired(y)) {
            return false;
            break;
        }
    }
    if (pg1 != false && pg1 != '') {
        xChangeVisibility(pg1);
    }
    if (pg2 != false && pg2 != '') {
        xChangeVisibility(pg2);
    }
    return false;
}

var xdbformvalue = '';
function xdb_checkrequired(y)
{
    var concat = (xdbformvalue != '')?('&'):('');
    if (xNN4) {return true;}
    if (xDef(y.getAttribute('required')) && xDef(y.getAttribute('label'))) {
        var required = false;
        var elabel = y.getAttribute('label');
        if (y.getAttribute('required') == "yes") { required = true; }
        var etype = y.type;
        if(etype == 'password') {
            xdbformvalue += concat + y.name + '=' + encodeURIComponent(y.value);
            if (required && y.value.search(/^\s*$/) > -1) { if(!xdbquiet){alert(xdblabels.field + elabel + xdblabels.not_empty);}; return false; }
        } else if (etype == 'checkbox' || etype == 'radio') {
            var checked = false;
            if (etype == 'radio') {
                for(var iii=0; iii < y.form[y.name].length; iii++) {
                    if (y.form[y.name][iii].checked) {
                        xdbformvalue += concat + y.name + '=' + encodeURIComponent(y.form[y.name][iii].value);
                        checked = true;
                        //break;
                    }
                }
            } else {
                // looping for all elements to check matching names
                var elname = y.name.replace(/\[[0-9]*\]/g, '_');
                var curname = '';
                for(var iii=0; iii < y.form.elements.length; iii++) {
                    if (!xDef(y.form.elements[iii].type) || y.form.elements[iii].type != 'checkbox') {
                        continue;
                    }
                    curname = y.form.elements[iii].name.replace(/\[[0-9]*\]/g, '_')
                    if (curname != '' && y.form.elements[iii].type == 'checkbox' && curname == elname && y.form.elements[iii].checked) {
                        checked = true;
                        if(y.value == y.form.elements[iii].value && y.name == y.form.elements[iii].name){
                            concat = (xdbformvalue != '')?('&'):('');
                            xdbformvalue += concat + y.name + '=' + encodeURIComponent(y.value);
                        }
                    }
                }
            }
            if (required && !checked) { if(!xdbquiet){alert(xdblabels.field + elabel + xdblabels.not_empty);}; return false; }
        } else if(etype == 'select-one') {
            xdbformvalue += concat + y.name + '=' + encodeURIComponent(y.value);
            if(required && !y.options.selectedIndex) { if(!xdbquiet){alert(xdblabels.field + elabel + xdblabels.not_selected);}; return false; }
        } else if(etype == 'select-multiple') {
            var ok = false;
    	    var op = y.options;
    	    for (j = 0; j < op.length; j++) {
    	        if (op[j].selected === true) {
                    concat = (xdbformvalue != '')?('&'):('');
                    xdbformvalue += concat + y.name + '=' + encodeURIComponent(op[j].value);
    	            ok = true;
    	            //break;
    	        }
    	    }
            if(required && !ok) { if(!xdbquiet){alert(xdblabels.field + elabel + xdblabels.not_selected);}; return false; }
        } else {
            xdbformvalue += concat + y.name + '=' + encodeURIComponent(y.value);
            if (required && y.value.search(/^\s*$/) > -1) { if(!xdbquiet){alert(xdblabels.field + elabel + xdblabels.not_empty);}; return false; }
        }
    }
    return true;
}

function check (el, elform)
{
    xdb_modified = true;
    if (el == "") {
        return;
    }
    var oldvalue = "";
    invalidchars = /[^a-z0-9\_\-\.\/]/gi;
    emailpatt = /^ *[0-9a-z\.\-\_]+\@[0-9a-z\.\-\_]+ *$/i;
    datepatt = /^(([0-9]{4}\-[0-9]{2}\-[0-9]{2})|([0-9]{2}\/[0-9]{2}\/[0-9]{4}))/;
    datetimepatt = /^(([0-9]{4}\-[0-9]{2}\-[0-9]{2}[\T ][0-9]{2}:[0-9]{2}:[0-9]{2})|([0-9]{2}\/[0-9]{2}\/[0-9]{4}))/;
    if (el == "email") {
        if (elform.value.search(emailpatt) == -1) {
            alert(xdblabels.wrong_email);
            elform.value = oldvalue;
        }
    } else if (el == "integer") {
        if (elform.value.search(/[^0-9]/) > -1) {
            alert(xdblabels.wrong_int);
            elform.value = elform.value.replace(/[^0-9]/g, "");
        }
    } else if (el == "phone") {
        var phone = elform.value.replace(/[^0-9]/g, "");
        if (phone.length > 8) {
            elform.value = "(" + phone.substr(0, 2) + ") " + phone.substr(2, 4) + "-" + phone.substr(6);
        } else {
            alert(xdblabels.wrong_phone);
            elform.value = oldvalue;
        }
    } else if (el == "date") {
        if (elform.value.search(datepatt) < 0 && elform.value != "") {
            alert(xdblabels.wrong_date);
            elform.value = oldvalue;
        }
    } else if (el == "date-time") {
        if (elform.value.search(datepatt) >= 0 && elform.value != "") {
            var zeros = "00";
            var now = new Date();
            alert(xdblabels.wrong_datetime);
            elform.value += "T" + zeros.substr(now.getHours().toString()) + now.getHours().toString() + ":" + zeros.substr(now.getSeconds().toString()) + now.getSeconds().toString();
        } else if (elform.value.search(datetimepatt) < 0 && elform.value != "") {
            alert(xdblabels.wrong_datetime);
            elform.value = oldvalue;
        }
    } else if (el != 'bool' && xDef(elform.getAttribute('maxlength')) && elform.getAttribute('maxlength') > 0 && elform.value.length > elform.getAttribute('maxlength')) {
        alert(xdblabels.max_chars1 + elform.getAttribute('maxlength') + xdblabels.max_chars2);
    }
}

function xChangeVisibility(identifier) {
	var argv = xChangeVisibility.arguments;  
	var argc = xChangeVisibility.arguments.length;  
	var xv = (argc > 1) ? argv[1] : null;  
    var objeto = xGetStyleObj(identifier);
    if(objeto) {
        if (xv != null){
            objeto.display = xv;
        } else if (objeto.display == "none") {
            objeto.display = "block";
        } else {
            objeto.display = "none";
        }
        return true;
    } else {
        return false;
    }
} // change_visibility

function xGetStyleObj(e) {
    if(document.getElementById && document.getElementById(e)) {
        return document.getElementById(e).style;
    } else if (document.all && document.all(e)) {
        return document.all(e).style;
    } else if (document.layers && document.layers[e]) {
        return document.layers[e];
    } else {
        return false;
    }
} // xGetStyleObj

function xDef() {
  for(var i=0; i<arguments.length; ++i){if(typeof(arguments[i])=='undefined') return false;}
  return true;
}

function xdb_autotab(elfield, nextid){
    if (elfield.getAttribute && elfield.value.length == elfield.getAttribute('maxlength')){
        var x = elfield.form;
        var next = false;
        for (i=0;i<x.elements.length;i++) {
            if(x.elements[i].type != 'hidden'){
                if(next){
                    x.elements[i].focus();
                    return true;
                } else if (x.elements[i].name == elfield.name){
                    next = true;
                }
            }
        }
    }
}

function xdb_formelement_value(idstr, x)
{
    var value = new Array();
    for (i=0;i<x.elements.length;i++) {
        if (x.elements[i].name != '' && x.elements[i].name == idstr) {
			var ft = x.elements[i].type;
			if(ft == 'password') {
			    value[value.length] = x.elements[i].value;
			} else if(ft == 'checkbox' || ft == 'radio'){
			    if (x.elements[i].checked) {
                    value[value.length] = x.elements[i].value;
                }
            } else if(ft == 'select-one' || ft == 'select-multiple') {
			    var op = x.elements[i].options;
			    for (k = 0; k < op.length; k++) {
			        if (op[k].selected) {
                        value[value.length] = op[k].value;
			        }
			    }
			} else { value[value.length] = x.elements[i].value; }
        }
    }
    return value;
}

function xdb_formreset(x)
{
    for (i=0;i<x.elements.length;i++) {
        if (x.elements[i].name != '') {
			var ft = x.elements[i].type;
			if(ft == 'password') {
			    x.elements[i].value = '';
			} else if(ft == 'hidden' && x.elements[i].value != '-1') {
			    continue;
			} else if(ft == 'checkbox' || ft == 'radio'){
			    x.elements[i].checked = false;
            } else if(ft == 'select-one' || ft == 'select-multiple') {
			    x.elements[i].selectedIndex = '';
			    var op = x.elements[i].options;
			    for (k = 0; k < op.length; k++) {
                    op[k].selected = false;
			    }
			} else { x.elements[i].value = ''; }
        }
    }
    return false;
}

function xdb_parsepost(post, x)
{
    for (i=0;i<x.elements.length;i++) {
        for (j=0;j<post.length;j++) {
            if (x.elements[i].name != "" && x.elements[i].name == post[j].name) {
				ft = x.elements[i].type;
				if(ft == 'password') {}
				else if(ft == 'checkbox' || ft == 'radio') { if (x.elements[i].value == post[j].value) { x.elements[i].checked = true; post.splice(j, 1)} }
				else if(ft == 'select-one' || ft == 'select-multiple') {
				    var op = x.elements[i].options;
				    for (k = 0; k < op.length; k++) {
				        if (op[k].value == post[j].value) {
				            op[k].selected = true;
				            break;
				        }
				    }
				}
				else { x.elements[i].value = post[j].value; }
                break;
            }
        }
    }
}

// calendar functions
function xdbmark(datestr)
{
    var objname = 'd' + datestr.replace(/\-/g, '');
    //alert(objname);
    if(xdbmarks.length > 1){
        xdbunfill();
        xdbfill(objname);
    } else if(xdbmarks.length > 0){
        if (xdbdates(xdbmarks[xdbmarks.length -1], objname.substr(1))){
            xdbfill(objname);
        }
    } else {
        xdbfill(objname);
    }
}
function xdbdates(datefrom, dateend)
{
    var fdate = new Date(datefrom.substr(0,4),datefrom.substr(4,2) -1,datefrom.substr(6,2));
    var tdate = new Date(dateend.substr(0,4), dateend.substr(4,2) -1, dateend.substr(6,2));
    var ft = 0;
    var tt = 0;
    var objname = '';
    tt = tdate.valueOf();
    ft = fdate.valueOf();
    var fbigger = false;
    var fmod = 1;
    if(fdate.valueOf() > tdate.valueOf()){
        fbigger = true;
        fmod = -1;
    }
    
    var y = 0;
    while((!fbigger && ft < tt) || (fbigger && ft > tt)){
        ft = ft + (86400000 * fmod);
        tdate.setTime(ft);
        y = tdate.getYear();
        if (y < 1000){ y=(y >= 100)?(y + 1900):('20' + y);};
        objname = 'd' + y;
        objname += (tdate.getMonth() > 8)?(tdate.getMonth() +1):('0'+ (tdate.getMonth() + 1));
        objname += (tdate.getDate() > 9)?(tdate.getDate()):('0'+tdate.getDate());
        if (!xdbfill(objname)) {
            return false;
            break;
        }
    }
    return true;
}
function xdbfill(objname)
{
    xdbmarks[xdbmarks.length] = objname.substr(1);
    var obj = xGetStyleObj(objname);
    if(obj) {
        obj.color = xdbnewstyle.color;
        obj.background = xdbnewstyle.background;
        return true;
    }
    return false;
}
function xdbunfill()
{
    var objname = '';
    var obj = new Object();
    while(xdbmarks.length > 0){
        objname = "d" + xdbmarks.pop();
        obj = xGetStyleObj(objname);
        if(obj) {
            obj.color = xdbstyle.color;
            obj.background = xdbstyle.background;
        }
    }
}

function xdb_displayinline(el, text)
{
    if (!(el=xGetElementById(el))) return null;
	var iframe = document.createElement("iframe");
	el.appendChild(iframe);

	if (!xIE4Up) {
		iframe.style.borderWidth = "1px";
	}
	var doc = iframe.contentWindow.document;
	if (!doc) {
	}
	doc.open();
	doc.write(text);
	doc.close();
}

function xdb_popup(text)
{
    var xwindow=window.open('', 'xwindow', 'scrollbars=yes,width=175, height=300');
    xwindow.document.writeln(text);
    xwindow.document.close();
    //onClick="window3.document.writeln('Hey there'); window3.document.close()">
    //onClick="window3.close()">
}


function xdb_popinfo(e, elref)
{
    style = xChangeVisibility(e);
    var objeto = xGetStyleObj(e);
    if(objeto) {
        objeto.display = "block";
    }
    setTimeout('document.onclick=function(){var objeto = xGetStyleObj("' + e + '");if(objeto){objeto.display="none";document.onclick=function(){};};};', 100);
    if (!(el=xGetElementById(e))) return null;
    if(elref == undefined){ return null; }
    if (!(elref=xGetElementById(elref))) return null;
    xMoveTo(el, xPageX(elref), xPageY(elref) -60);
}

/* xt functions */
function xGetElementById(e) {
  if(typeof(e)!='string') return e;
  if(document.getElementById) e=document.getElementById(e);
  else if(document.all) e=document.all[e];
  else if(document.layers) e=xLayer(e);
  else e=null;
  return e;
}
function xParent(e,bNode){
  if (!(e=xGetElementById(e))) return null;
  var p=null;
  if (!bNode && xDef(e.offsetParent)) p=e.offsetParent;
  else if (xDef(e.parentNode)) p=e.parentNode;
  else if (xDef(e.parentElement)) p=e.parentElement;
  else if (xDef(e.parentLayer)){if (e.parentLayer!=window) p=e.parentLayer;}
  return p;
}
function xStr(s) {
  return typeof(s)=='string';
}
function xNum(n) {
  return typeof(n)=='number';
}
// Appearance:
function xShow(e) {
  if(!(e=xGetElementById(e))) return;
  if(e.style && xDef(e.style.visibility)) e.style.visibility='visible';
  else if(xDef(e.visibility)) e.visibility='show';
}
function xHide(e) {
  if(!(e=xGetElementById(e))) return;
  if(e.style && xDef(e.style.visibility)) e.style.visibility='hidden';
  else if(xDef(e.visibility)) e.visibility='hide';
}
function xZIndex(e,uZ) {
  if(!(e=xGetElementById(e))) return 0;
  if(e.style && xDef(e.style.zIndex)) {
    if(xNum(uZ)) e.style.zIndex=uZ;
    uZ=parseInt(e.style.zIndex);
  }
  else if(xDef(e.zIndex)) {
    if(xNum(uZ)) e.zIndex=uZ;
    uZ=e.zIndex;
  }
  return uZ;
}
function xColor(e,sColor) {
  if(!(e=xGetElementById(e))) return '';
  var c='';
  if(e.style && xDef(e.style.color)) {
    if(xStr(sColor)) e.style.color=sColor;
    c=e.style.color;
  }
  return c;
}
function xBackground(e,sColor,sImage) {
  if(!(e=xGetElementById(e))) return '';
  var bg='';
  if(e.style) {
    if(xStr(sColor)) {
      if(!xOp5or6) e.style.backgroundColor=sColor;
      else e.style.background=sColor;
    }
    if(xStr(sImage)) e.style.backgroundImage=(sImage!='')? 'url('+sImage+')' : null;
    if(!xOp5or6) bg=e.style.backgroundColor;
    else bg=e.style.background;
  }
  else if(xDef(e.bgColor)) {
    if(xStr(sColor)) e.bgColor=sColor;
    bg=e.bgColor;
    if(xStr(sImage)) e.background.src=sImage;
  }
  return bg;
}
// Position:
function xMoveTo(e,iX,iY) {
  xLeft(e,iX);
  xTop(e,iY);
}
function xLeft(e,iX) {
  if(!(e=xGetElementById(e))) return 0;
  var css=xDef(e.style);
  if (css && xStr(e.style.left)) {
    if(xNum(iX)) e.style.left=iX+'px';
    else {
      iX=parseInt(e.style.left);
      if(isNaN(iX)) iX=0;
    }
  }
  else if(css && xDef(e.style.pixelLeft)) {
    if(xNum(iX)) e.style.pixelLeft=iX;
    else iX=e.style.pixelLeft;
  }
  else if(xDef(e.left)) {
    if(xNum(iX)) e.left=iX;
    else iX=e.left;
  }
  return iX;
}
function xTop(e,iY) {
  if(!(e=xGetElementById(e))) return 0;
  var css=xDef(e.style);
  if(css && xStr(e.style.top)) {
    if(xNum(iY)) e.style.top=iY+'px';
    else {
      iY=parseInt(e.style.top);
      if(isNaN(iY)) iY=0;
    }
  }
  else if(css && xDef(e.style.pixelTop)) {
    if(xNum(iY)) e.style.pixelTop=iY;
    else iY=e.style.pixelTop;
  }
  else if(xDef(e.top)) {
    if(xNum(iY)) e.top=iY;
    else iY=e.top;
  }
  return iY;
}
function xPageX(e) {
  if (!(e=xGetElementById(e))) return 0;
  if (xDef(e.pageX)) return e.pageX;
  var x = 0;
  while (e) {
    if (xDef(e.offsetLeft)) x += e.offsetLeft;
    e = xDef(e.offsetParent) ? e.offsetParent : null;
  }
  return x;
}
function xPageY(e) {
  if (!(e=xGetElementById(e))) return 0;
  if (xDef(e.pageY)) return e.pageY;
  var y = 0;
  while (e) {
    if (xDef(e.offsetTop)) y += e.offsetTop;
    e = xDef(e.offsetParent) ? e.offsetParent : null;
  }
//  if (xOp7) return y - document.body.offsetTop; // v3.14, temporary hack for opera bug 130324
  return y;
}
function xOffsetLeft(e) { // v3.14, see x_nn4.js
  if (!(e=xGetElementById(e))) return 0;
  if (xDef(e.offsetLeft)) return e.offsetLeft;
  else return 0;
}
function xOffsetTop(e) {
  if (!(e=xGetElementById(e))) return 0;
  if (xDef(e.offsetTop)) return e.offsetTop;
  else return 0;
}
function xScrollLeft(e) {
  var offset=0;
  if (!(e=xGetElementById(e))) {
    if(xDef(window.pageXOffset)) offset=window.pageXOffset;
    else if(document.documentElement && document.documentElement.scrollLeft) offset=document.documentElement.scrollLeft;
    else if(document.body && xDef(document.body.scrollLeft)) offset=document.body.scrollLeft;
  }
  else { if (xNum(e.scrollLeft)) offset = e.scrollLeft; }
  return offset;
}
function xScrollTop(e) {
  var offset=0;
  if (!(e=xGetElementById(e))) {
    if(xDef(window.pageYOffset)) offset=window.pageYOffset;
    else if(document.documentElement && document.documentElement.scrollTop) offset=document.documentElement.scrollTop;
    else if(document.body && xDef(document.body.scrollTop)) offset=document.body.scrollTop;
  }
  else { if (xNum(e.scrollTop)) offset = e.scrollTop; }
  return offset;
}
// Size:
function xResizeTo(e,uW,uH) {
  xWidth(e,uW);
  xHeight(e,uH);
}
function xWidth(e,uW) {
  if(!(e=xGetElementById(e))) return 0;
  if (xNum(uW)) { // v3.13.1
    if (uW<0) uW = 0;
    else uW=Math.round(uW);
  }
  else uW=0;
  var css=xDef(e.style);
  if(css && xDef(e.offsetWidth) && xStr(e.style.width)) {
    if(uW) xSetCW(e, uW);
    uW=e.offsetWidth;
  }
  else if(css && xDef(e.style.pixelWidth)) {
    if(uW) e.style.pixelWidth=uW;
    uW=e.style.pixelWidth;
  }
  else if(xDef(e.clip) && xDef(e.clip.right)) {
    if(uW) e.clip.right=uW;
    uW=e.clip.right;
  }
  return uW;
}
function xHeight(e,uH) {
  if(!(e=xGetElementById(e))) return 0;
  if (xNum(uH)) { // v3.13.1
    if (uH<0) uH = 0;
    else uH=Math.round(uH);
  }
  else uH=0;
  var css=xDef(e.style);
  if(css && xDef(e.offsetHeight) && xStr(e.style.height)) {
    if(uH) xSetCH(e, uH);
    uH=e.offsetHeight;
  }
  else if(css && xDef(e.style.pixelHeight)) {
    if(uH) e.style.pixelHeight=uH;
    uH=e.style.pixelHeight;
  }
  else if(xDef(e.clip) && xDef(e.clip.bottom)) {
    if(uH) e.clip.bottom=uH;
    uH=e.clip.bottom;
  }
  return uH;
}
function xGetCS(ele,sP){return parseInt(document.defaultView.getComputedStyle(ele,'').getPropertyValue(sP));}
function xSetCW(ele,uW){
  var pl=0,pr=0,bl=0,br=0;
  if(xDef(document.defaultView) && xDef(document.defaultView.getComputedStyle)){
    pl=xGetCS(ele,'padding-left');
    pr=xGetCS(ele,'padding-right');
    bl=xGetCS(ele,'border-left-width');
    br=xGetCS(ele,'border-right-width');
  }
  else if(xDef(ele.currentStyle,document.compatMode)){
    if(document.compatMode=='CSS1Compat'){
      pl=parseInt(ele.currentStyle.paddingLeft);
      pr=parseInt(ele.currentStyle.paddingRight);
      bl=parseInt(ele.currentStyle.borderLeftWidth);
      br=parseInt(ele.currentStyle.borderRightWidth);
    }
  }
  else if(xDef(ele.offsetWidth,ele.style.width)){ // ?
    ele.style.width=uW+'px';
    pl=ele.offsetWidth-uW;
  }
  if(isNaN(pl)) pl=0; if(isNaN(pr)) pr=0; if(isNaN(bl)) bl=0; if(isNaN(br)) br=0;
  var cssW=uW-(pl+pr+bl+br);
  if(isNaN(cssW)||cssW<0) return;
  else ele.style.width=cssW+'px';
}
function xSetCH(ele,uH){
  var pt=0,pb=0,bt=0,bb=0;
  if(xDef(document.defaultView) && xDef(document.defaultView.getComputedStyle)){
    pt=xGetCS(ele,'padding-top');
    pb=xGetCS(ele,'padding-bottom');
    bt=xGetCS(ele,'border-top-width');
    bb=xGetCS(ele,'border-bottom-width');
  }
  else if(xDef(ele.currentStyle,document.compatMode)){
    if(document.compatMode=='CSS1Compat'){
      pt=parseInt(ele.currentStyle.paddingTop);
      pb=parseInt(ele.currentStyle.paddingBottom);
      bt=parseInt(ele.currentStyle.borderTopWidth);
      bb=parseInt(ele.currentStyle.borderBottomWidth);
    }
  }
  else if(xDef(ele.offsetHeight,ele.style.height)){ // ?
    ele.style.height=uH+'px';
    pt=ele.offsetHeight-uH;
  }
  if(isNaN(pt)) pt=0; if(isNaN(pb)) pb=0; if(isNaN(bt)) bt=0; if(isNaN(bb)) bb=0;
  var cssH=uH-(pt+pb+bt+bb);
  if(isNaN(cssH)||cssH<0) return;
  else ele.style.height=cssH+'px';
}
function xClip(e,iTop,iRight,iBottom,iLeft) {
  if(!(e=xGetElementById(e))) return;
  if(e.style) {
    if (xNum(iLeft)) e.style.clip='rect('+iTop+'px '+iRight+'px '+iBottom+'px '+iLeft+'px)';
    else e.style.clip='rect(0 '+parseInt(e.style.width)+'px '+parseInt(e.style.height)+'px 0)';
  }
  else if(e.clip) {
    if (xNum(iLeft)) { e.clip.top=iTop; e.clip.right=iRight; e.clip.bottom=iBottom; e.clip.left=iLeft; }
    else { e.clip.top=0; e.clip.right=xWidth(e); e.clip.bottom=xHeight(e); e.clip.left=0; }
  }
}
// Window:
function xClientWidth() {
  var w=0;
  if(xOp5or6) w=window.innerWidth;
  else if(!window.opera && document.documentElement && document.documentElement.clientWidth) // v3.12
    w=document.documentElement.clientWidth;
  else if(document.body && document.body.clientWidth)
    w=document.body.clientWidth;
  else if(xDef(window.innerWidth,window.innerHeight,document.height)) {
    w=window.innerWidth;
    if(document.height>window.innerHeight) w-=16;
  }
  return w;
}
function xClientHeight() {
  var h=0;
  if(xOp5or6) h=window.innerHeight;
  else if(!window.opera && document.documentElement && document.documentElement.clientHeight) // v3.12
    h=document.documentElement.clientHeight;
  else if(document.body && document.body.clientHeight)
    h=document.body.clientHeight;
  else if(xDef(window.innerWidth,window.innerHeight,document.width)) {
    h=window.innerHeight;
    if(document.width>window.innerWidth) h-=16;
  }
  return h;
}
// Animation:
function xSlideTo(e,x,y,uTime) {
  if (!(e=xGetElementById(e))) return;
  if (!e.timeout) e.timeout = 25;
  e.xTarget = x; e.yTarget = y; e.slideTime = uTime; e.stop = false;
  e.yA = e.yTarget - xTop(e); e.xA = e.xTarget - xLeft(e); // A = distance
  e.B = Math.PI / (2 * e.slideTime); // B = period
  e.yD = xTop(e); e.xD = xLeft(e); // D = initial position
  var d = new Date(); e.C = d.getTime();
  if (!e.moving) xSlide(e);
}
function xSlide(e) {
  if (!(e=xGetElementById(e))) return;
  var now, s, t, newY, newX;
  now = new Date();
  t = now.getTime() - e.C;
  if (e.stop) { e.moving = false; }
  else if (t < e.slideTime) {
    setTimeout("xSlide('"+e.id+"')", e.timeout);
    s = Math.sin(e.B * t);
    newX = Math.round(e.xA * s + e.xD);
    newY = Math.round(e.yA * s + e.yD);
    xMoveTo(e, newX, newY);
    e.moving = true;
  }  
  else {
    xMoveTo(e, e.xTarget, e.yTarget);
    e.moving = false;
  }  
}
// Event:
function xAddEventListener(e,eventType,eventListener,useCapture) {
  if(!(e=xGetElementById(e))) return;
  eventType=eventType.toLowerCase();
  if((!xIE4Up && !xOp7) && e==window) {
    if(eventType=='resize') { window.xPCW=xClientWidth(); window.xPCH=xClientHeight(); window.xREL=eventListener; xResizeEvent(); return; }
    if(eventType=='scroll') { window.xPSL=xScrollLeft(); window.xPST=xScrollTop(); window.xSEL=eventListener; xScrollEvent(); return; }
  }
  var eh='e.on'+eventType+'=eventListener';
  if(e.addEventListener) e.addEventListener(eventType,eventListener,useCapture);
  else if(e.attachEvent) e.attachEvent('on'+eventType,eventListener);
  else if(e.captureEvents) {
    if(useCapture||(eventType.indexOf('mousemove')!=-1)) { e.captureEvents(eval('Event.'+eventType.toUpperCase())); }
    eval(eh);
  }
  else eval(eh);
}
function xRemoveEventListener(e,eventType,eventListener,useCapture) {
  if(!(e=xGetElementById(e))) return;
  eventType=eventType.toLowerCase();
  if((!xIE4Up && !xOp7) && e==window) {
    if(eventType=='resize') { window.xREL=null; return; }
    if(eventType=='scroll') { window.xSEL=null; return; }
  }
  var eh='e.on'+eventType+'=null';
  if(e.removeEventListener) e.removeEventListener(eventType,eventListener,useCapture);
  else if(e.detachEvent) e.detachEvent('on'+eventType,eventListener);
  else if(e.releaseEvents) {
    if(useCapture||(eventType.indexOf('mousemove')!=-1)) { e.releaseEvents(eval('Event.'+eventType.toUpperCase())); }
    eval(eh);
  }
  else eval(eh);
}
function xEvent(evt) { // cross-browser event object prototype
  this.type = '';
  this.target = null;
  this.pageX = 0;
  this.pageY = 0;
  this.offsetX = 0;
  this.offsetY = 0;
  this.keyCode = 0;
  var e = evt ? evt : window.event;
  if(!e) return;
  if(e.type) this.type = e.type;
  if(e.target) this.target = e.target;
  else if(e.srcElement) this.target = e.srcElement;
  else if(xNN4) this.target = xLayerFromPoint(e.pageX, e.pageY);
  if(xOp5or6) { this.pageX = e.clientX; this.pageY = e.clientY; }
  else if(xDef(e.pageX,e.pageY)) { this.pageX = e.pageX; this.pageY = e.pageY; } // v3.14
  else if(xDef(e.clientX,e.clientY)) { this.pageX = e.clientX + xScrollLeft(); this.pageY = e.clientY + xScrollTop(); }
  if(xDef(e.offsetX,e.offsetY)) { this.offsetX = e.offsetX; this.offsetY = e.offsetY; }
  else if(xDef(e.layerX,e.layerY)) { this.offsetX = e.layerX; this.offsetY = e.layerY; }
  else { this.offsetX = this.pageX - xPageX(this.target); this.offsetY = this.pageY - xPageY(this.target); }
  if (e.keyCode) { this.keyCode = e.keyCode; } // for moz/fb, if keyCode==0 use which
  else if (xDef(e.which)) { this.keyCode = e.which; }
}
function xResizeEvent() { // window resize event simulation
  if (window.xREL) setTimeout('xResizeEvent()', 250);
  var cw = xClientWidth(), ch = xClientHeight();
  if (window.xPCW != cw || window.xPCH != ch) { window.xPCW = cw; window.xPCH = ch; if (window.xREL) window.xREL(); }
}
function xScrollEvent() { // window scroll event simulation
  if (window.xSEL) setTimeout('xScrollEvent()', 250);
  var sl = xScrollLeft(), st = xScrollTop();
  if (window.xPSL != sl || window.xPST != st) { window.xPSL = sl; window.xPST = st; if (window.xSEL) window.xSEL(); }
}
// end x.js

/* Simple AJAX Code-Kit (SACK) */
/* ©2005 Gregory Wild-Smith */
/* www.twilightuniverse.com */
/* Software licenced under a modified X11 licence, see documentation or authors website for more details */

var xdbhttp = '';
var xdbhttp_sent = false;
var xdbautosave_timeout = '';
var xdbmsg_timeout = '';
var xdbquiet = false;

function whenLoading(){
    //alert('Sending data');
    return false;
	var e = document.getElementById('replaceme'); 
	e.innerHTML = "<p>Sending Data...</p>";
}

function whenLoaded(){
    //alert('Data sent');
    return false;
	var e = document.getElementById('replaceme'); 
	e.innerHTML = "<p>Data Sent...</p>";
}

function whenInteractive(){
    //alert('Getting data');
    return false;
	var e = document.getElementById('replaceme'); 
	e.innerHTML = "<p>getting data...</p>";
}

function whenCompleted(){
    xdbhttp_sent = false;
    if(xdbmsg_timeout != ''){
        clearTimeout(xdbmsg_timeout);
    }
    //xdbmsg_timeout = window.setTimeout("xdb_write_html('', 'xdbformmsg');", 5000);
    //xdbformmsg
    //alert('Data received:' + xdbhttp.responseStatus[0] + xdbhttp.responseStatus[1]);
    return false;
	var e = document.getElementById('sackdata'); 
	if (ajax.responseStatus){
		var string = "<p>Status Code: " + ajax.responseStatus[0] + "</p><p>Status Message: " + ajax.responseStatus[1] + "</p><p>URLString Sent: " + ajax.URLString + "</p>";
	} else {
		var string = "<p>URLString Sent: " + ajax.URLString + "</p>";
	}
	e.innerHTML = string;	
}

function xdb_autosave_delayed(x)
{
    if(xdbautosave_timeout != ''){
        clearTimeout(xdbautosave_timeout);
    }
    xdbautosave_timeout = window.setTimeout("xdb_autosave(document['" + x.name + "'])", 1000);
}

function xdb_autosave(x){
    if(typeof(xdbhttp) == 'string'){
        xdbhttp = new xdb_xmlhttp();
    }
    if (xdbhttp_sent || xdb_sent) {
        return false;
    } else {
        xdbhttp_sent = true;
        //window.setTimeout("xdb_sent = false;", 10000);
    }
    if (editor != null) {
        for (i=0; i < editor.length; i++) {
            editor[i]._textArea.value = editor[i].getHTML();
        }
    }
    xdbformvalue = '';
    xdbquiet = true;
    for ( i = 0; i < x.elements.length; i++ ) {
        var y = x.elements[i];
        if (!xdb_checkrequired(y)) {
            xdbhttp_sent = false;
            return false;
            break;
        }
    }
	//var varsString = "textareadata=" + formel.mytext.value;
	//ajax.setVar("myExampleVar", "myExampleData"); // alternate method of setting data to be parsed.
	xdbhttp.requestFile = x.action;
	xdbformvalue += '&xdb-autosave=' + encodeURIComponent(x.name);
	xdbhttp.method = 'POST';
	// element to write the response into: xdbhttp.element = 'replaceme';
	xdbhttp.element = 'xdbformmsg';
	xdbhttp.onLoading = whenLoading;
	xdbhttp.onLoaded = whenLoaded; 
	xdbhttp.onInteractive = whenInteractive;
	xdbhttp.onCompletion = whenCompleted;
	xdbhttp.runAJAX(xdbformvalue);
}

function xdb_xmlhttp(file){
	this.AjaxFailedAlert = "Your browser does not support the enhanced functionality of this website, and therefore you will have an experience that differs from the intended one.\n";
	this.requestFile = file;
	this.method = "POST";
	this.URLString = "";
	this.encodeURIString = false;
	this.execute = false;

	this.onLoading = function() { };
	this.onLoaded = function() { };
	this.onInteractive = function() { };
	this.onCompletion = function() { };

	this.createAJAX = function() {
		try {
			this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (err) {
				this.xmlhttp = null;
			}
		}
		if(!this.xmlhttp && typeof XMLHttpRequest != "undefined")
			this.xmlhttp = new XMLHttpRequest();
		if (!this.xmlhttp){
			this.failed = true; 
		}
	};
	
	this.setVar = function(name, value){
		if (this.URLString.length < 3){
			this.URLString = name + "=" + value;
		} else {
			this.URLString += "&" + name + "=" + value;
		}
	}
	
	this.encVar = function(name, value){
		var varString = encodeURIComponent(name) + "=" + encodeURIComponent(value);
	return varString;
	}
	
	this.encodeURLString = function(string){
		varArray = string.split('&');
		for (i = 0; i < varArray.length; i++){
			urlVars = varArray[i].split('=');
			if (urlVars[0].indexOf('amp;') != -1){
				urlVars[0] = urlVars[0].substring(4);
			}
			varArray[i] = this.encVar(urlVars[0],urlVars[1]);
		}
	return varArray.join('&');
	}
	
	this.runResponse = function(){
		eval(this.response);
	}
	
	this.runAJAX = function(urlstring){
		this.responseStatus = new Array(2);
		if(this.failed && this.AjaxFailedAlert){ 
			alert(this.AjaxFailedAlert); 
		} else {
			if (urlstring){ 
				if (this.URLString.length){
					this.URLString = this.URLString + "&" + urlstring; 
				} else {
					this.URLString = urlstring; 
				}
			}
			if (this.encodeURIString){
				var timeval = new Date().getTime(); 
				this.URLString = this.encodeURLString(this.URLString);
				this.setVar("rndval", timeval);
			}
			if (this.element) { this.elementObj = document.getElementById(this.element); }
			if (this.xmlhttp) {
				var self = this;
				if (this.method == "GET") {
					var totalurlstring = this.requestFile + "?" + this.URLString;
					this.xmlhttp.open(this.method, totalurlstring, true);
				} else {
					this.xmlhttp.open(this.method, this.requestFile, true);
				}
				if (this.method == "POST"){
  					try {
						this.xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded')  
					} catch (e) {}
				}

				this.xmlhttp.send(this.URLString);
				this.xmlhttp.onreadystatechange = function() {
					switch (self.xmlhttp.readyState){
						case 1:
							self.onLoading();
						break;
						case 2:
							self.onLoaded();
						break;
						case 3:
							self.onInteractive();
						break;
						case 4:
							self.responseXML = self.xmlhttp.responseXML;
						    if(self.responseXML != undefined && self.responseXML != null){
						        var response = self.responseXML.documentElement;
						        self.response = response.getElementsByTagName('message')[0].firstChild.data;
						        if(response.getElementsByTagName('action') != undefined && response.getElementsByTagName('action').length > 0){
						            eval(response.getElementsByTagName('action')[0].firstChild.data);
						        }
						    } else {
    							self.response = self.xmlhttp.responseText;
						    }
							self.responseStatus[0] = self.xmlhttp.status;
							self.responseStatus[1] = self.xmlhttp.statusText;
							self.onCompletion();
							if(self.execute){ self.runResponse(); }
							if (self.elementObj) {
								var elemNodeName = self.elementObj.nodeName;
								elemNodeName.toLowerCase();
								if (elemNodeName == "input" || elemNodeName == "select" || elemNodeName == "option" || elemNodeName == "textarea"){
									self.elementObj.value = self.response;
								} else {
									self.elementObj.innerHTML = self.response;
								}
							}
							self.URLString = "";
						break;
					}
				};
			}
		}
	};
this.createAJAX();
}

function xdb_redirect(str)
{
    window.location.href=str;
}

function xdb_message(str)
{
    str += (xdb_getcookie('xdbmessage') != null)?(xdb_getcookie('xdbmessage')):('');
    if (xdb_setcookie('xdbmessage', str, null, '/')) {
        return true;
    }
    return false;
}

function xdb_setcookie(name, value) {
	var argv = xdb_setcookie.arguments;  
	var argc = xdb_setcookie.arguments.length;  
	var expires = (argc > 2) ? argv[2] : null;  
	var path = (argc > 3) ? argv[3] : null;  
	var domain = (argc > 4) ? argv[4] : null;  
	var secure = (argc > 5) ? argv[5] : false;  
	document.cookie = name + "=" + escape (value) + 
	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
	((path == null) ? "" : ("; path=" + path)) +  
	((domain == null) ? "" : ("; domain=" + domain)) +    
	((secure == true) ? "; secure" : "");
	return true;
}

function xdb_getcookie_val(offset) {  
	var endstr = document.cookie.indexOf (";", offset);  
	if (endstr == -1) { endstr = document.cookie.length; }
	return unescape(document.cookie.substring(offset, endstr));
}

function xdb_getcookie(name) {  
	var arg = name + "=";  
	var alen = arg.length;  
	var clen = document.cookie.length;  
	var i = 0;  
	while (i < clen) {    
		var j = i + alen;    
		if (document.cookie.substring(i, j) == arg) return xdb_getcookie_val(j);    
		i = document.cookie.indexOf(" ", i) + 1;    
		if (i == 0) break;   
	}  
	return null;
}

function xdb_confirm(msg)
{
	var argv = xdb_confirm.arguments;  
	var argc = xdb_confirm.arguments.length;  
	var obj = (argc > 1) ? argv[1] : null;
	var trueaction = (argc > 2)?(argv[2]):("window.location.href='" + obj.href + "';");
	var falseaction = (argc > 3)?(argv[3]):("window.location.href='" + obj.href + "';");
	var obj = (argc > 1) ? argv[1] : null;
    
    var box = xGetElementById('xdbmsgbox');
    if (!box) {
    	var box = document.createElement('div');
    	box.id = 'xdbmsgbox';
        box.style.position = 'absolute';
        document.body.appendChild(box);
    }
    str = msg.replace("\n", "<br />");
    str += '<form name="xdbconfirm" action="#" onsubmit="return false;"><input type="button" value="Sim" onclick="'+trueaction+'" />&#160;<input type="button" value="Não" onclick="'+falseaction+'" /></form>';
    box.innerHTML = str;
    xChangeVisibility('xdbmsgbox', 'block');
    setTimeout("document.onclick=function(){xChangeVisibility('xdbmsgbox', 'none');document.onclick=null;};", 100);
    if(obj){
        var xpos = xPageX(obj);
        if ((xClientWidth()- xWidth(box)) < xpos){
            xpos = xClientWidth() - xWidth(box);
        }
        xMoveTo(box, xpos, xPageY(obj));
    }
}


function showFlashMap(curl) {
	var x = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="100%" height="350" id="mapa" align="middle">';
	x += '<param name="allowScriptAccess" value="sameDomain" />';
	x += '<param name="movie" value="/_media/mapa.swf' + curl + '" />';
	x += '<param name="play" value="false" />';
	x += '<param name="loop" value="false" />';
	x += '<param name="menu" value="false" />';
	x += '<param name="quality" value="high" />';
	x += '<param name="salign" value="lt" />';
	x += '<param name="bgcolor" value="#d1dcf0" />';
	x += '<embed id="ffmap" src="/_media/mapa.swf' + curl + '" play="false" loop="false" menu="false" quality="high" salign="lt" bgcolor="#d1dcf0" width="100%" height="355" name="mapa" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
	x += '</object>';
	document.write(x);
	
	var mp = document.getElementById('mapa');
	var w = screen.availWidth;
	if (w <= 800 ){
		mp.height = 405;
		
		if (!(navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0)){
			var mpff = document.getElementById('ffmap');
			mpff.height = 415; 
		}
	} 
}

function mapaPermuta() {
	if (document.getElementById('customMap').style.display == 'none') {
		document.getElementById('customMap').style.display = 'block';
		document.getElementById('divMapa').style.display = 'none';
		document.getElementById('mNButton').style.backgroundColor = '#EE8000';
		document.getElementById('mGButton').style.backgroundColor = '#FFB441';
	} else {
		document.getElementById('customMap').style.display = 'none';
		document.getElementById('divMapa').style.display = 'block';		
		document.getElementById('divMapa').style.visibility = 'visible';
		document.getElementById('mNButton').style.backgroundColor = '#FFB441';
		document.getElementById('mGButton').style.backgroundColor = '#EE8000';
	}
}

function mButtonOver(button) {
	var b = document.getElementById(button).style.backgroundColor;
	if ((b == 'rgb(255, 180, 65)') || (b == '#ffb441'))
		document.getElementById(button).style.backgroundColor = '#FFAA30';
}

function mButtonOut(button) {
	var b = document.getElementById(button).style.backgroundColor;
	if ((b == 'rgb(255, 170, 48)') || (b == '#ffaa30'))
		document.getElementById(button).style.backgroundColor = '#FFB441';
}

function mapaBuscaCoordenadas(elemento_pai){
	
	arquivo = 'http://www.redecomep.rnp.br/mapaservices/MapaBuscaCoordenadas.php?el='+elemento_pai.id;
    var Xwindow = window.open(arquivo, 'xwindow', 'scrollbars=no,width=600, height=500');
    
}
