/***************************************************
		AJAX
****************************************************/

try{
    xmlhttp = new XMLHttpRequest();
}catch(ee){
    try{
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
        try{
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }catch(E){
            xmlhttp = false;
        }
    }
}
fila=[]
ifila=0

function preload(n, div)
{
	mainFrame = document.getElementById(div);

	mainFrame.innerHTML="<div class='loading'></div>";
	//Adiciona à fila
	fila[fila.length]=[n,div];
	loading=1;
	
	//Se não há conexões pendentes, executa
	if((ifila+1)==fila.length) 
	{
 		load()	
	}
}
function load()
{
   var content

   xmlhttp.open("GET",fila[ifila][0],true);
    
   //xmlhttp.overrideMimeType('text/html');
    
    //Função para tratamento do retorno
    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4){
    
	    content=unescape(xmlhttp.responseText);
	    document.getElementById(fila[ifila][1]).innerHTML=content;
	// alert(content);
	    ifila++;
            if(ifila<fila.length) setTimeout("load()",20);
        }
    }  
    //Executa
    xmlhttp.send(null)    
}

/***************funções comuns*****************/

function change(id)
{
	var o = id.split("=");
	
	var i = o[0].split(";");

	for (var j=0;j<i.length;j++)
	{ 
		var target = document.getElementById(i[j]);
		var label = document.getElementById(i[j]+',label');

		if (label) label.className = o[1];
		if (target)
		{
                	if (o[1] == "hidden") target.disabled = true;
			else target.disabled = false;
		}
	 } 
}
function hideAll(id, target)
{
	var x_axe=document.getElementById(id);
	var links=x_axe.getElementsByTagName("div");
	
	if (target) pshow(target);

	for(var i=0;i<links.length;i++) 
	{
 		if (links[i].getAttribute("inicial") == "true") 
		{
 			links[i].setAttribute("inicial", false);
		}
		else if (links[i].id!=target) hide(links[i].id);
	}

}
function hide(id)
{
	var i = id.split(";");

	for (var j=0;j<i.length;j++)
	{
 		if (document.getElementById(i[j])) document.getElementById(i[j]).style.display = 'none';
	}
}
function pshow(id)
{
	var i = id.split(";");

	for (var j=0;j<i.length;j++)
	{
		if (document.getElementById(i[j])) 
		{
			if (document.getElementById(i[j]).className == "block") document.getElementById(i[j]).style.display = 'block';
			else document.getElementById(i[j]).style.display = 'inline';

			
		}
	}    
}
function hideShow(id)
{
 	if (document.getElementById(id)) 
	{
 		if (document.getElementById(id).style.display == 'none') 
		{
 			pshow(id);
		}
		else hide(id);
	}
}
function mark(id, i)
{
	var tab = document.getElementById(id);
	var link = tab.getElementsByTagName('a');

	for (var j = 0; j < link.length; j++)
	{
        	link[j].style.backgroundColor = ''; 
	}

//	alert(document.getElementById(i).innerHTML);
	document.getElementById(i).style.backgroundColor = '#cccccc';	
}
function setValue(set)
{
	var target;
	var value;

	var fields = set;	
	fields = fields.split(";");
		
	for (var i in fields)
	{
        	target = fields[i].split("=");
		options = target[1].split("|");
		
		if (document.getElementById(target[0])) 
		{
 			for (var j = 0; j < options.length; j++)
			{
				if (options[j])
				{
					document.getElementById(target[0]).value = options[j];
					break;
				}
				else document.getElementById(target[0]).value = '';
			}
                }
	} 
}
function getValue(id)
{
	if (document.getElementById(id))
	{ 
 		var set;
		var field = document.getElementById(id); 

        	if (field.type == "checkbox")
		{
                	if (field.checked) set = field.value;
			else set = 0;
		}
	//	else if (field.value == "") set = "0";
		else set = field.value;

		return set; 
	}

	
}

function tree_open (j)
{
	var i = document.getElementById("i"+j);
	var d = document.getElementById("d"+j).style;

	if (d)
	{
		if (d.display == 'none')
		{
			d.display = 'block';
			if (i) i.src = 'images/minus.gif';

		}
		else
		{
			d.display = 'none';
			if (i) i.src = 'images/plus.gif';
		}

		document.cookie = j + "=" + escape(d.display);
	}
}
function tree_sel (j, k)
{
	if (!k) k = 'mytree' 
	var mytree = document.getElementById(k);
 	var treelink = mytree.getElementsByTagName('table');
 	
 	for (var i = 0; i < treelink.length; i++)
 	{
		treelink[i].className = 'tree_none';
 	}
 	
 	document.getElementById(j).className = 'tree_sel';
}
function flag (j, k, plink)
{
	if (!k) k = "menu";
	if (!document.getElementById(k)) return false;
	var x_axe=document.getElementById(k);
	var links=x_axe.getElementsByTagName("a");
	
	for(var i=0;i<links.length;i++)	links[i].className="";
	

	if (plink && document.getElementById(j)) document.getElementById(j).className="selected" 
	else j.className="selected" 
}
function position(event, id)
{
	x=event.clientX
	y=event.clientY;
	
	var scrOfX = 0, scrOfY = 0;
	if( typeof( window.pageYOffset ) == 'number' ) {
		//Netscape compliant
		scrOfY = window.pageYOffset;
		scrOfX = window.pageXOffset;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		//DOM compliant
		scrOfY = document.body.scrollTop;
		scrOfX = document.body.scrollLeft;
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
		scrOfX = document.documentElement.scrollLeft;
	}

	y = y+scrOfY - 50;

	document.getElementById(id).style.top = y+"px";
//	document.getElementById(id).style.left = x+"px";
}
function formataData (e)
{
	// dd/mm/AAAA
        
	if(typeof(e)=='undefined') var e=window.event;
	source=e.target?e.target:e.srcElement;
	
	//bug Konqueror/Safari correction
	if(source.nodeType==3) source=source.parentNode;

	var i = source;
	var event = e;
														   
	if ((i.value.length >= 3) && (i.value.substr(2,1) != "/")) i.value = i.value.substr(0, 2) + "/" + i.value.substr(2);
	if ((i.value.length >= 6) && (i.value.substr(5,1) != "/")) i.value = i.value.substr(0, 5) + "/" + i.value.substr(5);

	if (i.value.length >= 10)
	{
		i.value = i.value.substr(0,10);

		var next = i.indexValue;

	//	document.forms[p].elements[j+1].focus();
	}
}
function maskMoney(e)
{
	if(typeof(e)=='undefined') var e=window.event;
	source=e.target?e.target:e.srcElement;
	
	//bug Konqueror/Safari correction
	if(source.nodeType==3) source=source.parentNode;

	var i = source;
	var event = e;

	if (event.keyCode==8 || event.keyCode==46) i.value = "";

	if (i.value)
	{
		if (i.value.length <= 2 ) i.value = "0,"+i.value;
		if (i.value.length > 4)
		{
                	var mask = i.value.split(",");
			if (mask[0] == "0") mask[0] = "";
			if (mask[1].length > 2)
			{
                        	mask[0] += mask[1].substr(0,1);
				mask[1] = mask[1].substr(1,2);
			}
			i.value = mask[0]+","+mask[1];
		}
	
	}
														   
//	if ((i.value.length >= 3) && (i.value.substr(2,1) != "/")) i.value = i.value.substr(0, 2) + "/" + i.value.substr(2);
//	if ((i.value.length >= 6) && (i.value.substr(5,1) != "/")) i.value = i.value.substr(0, 5) + "/" + i.value.substr(5);


}
function cpfMask (e)
{
	// 000.000.000-00

	var keynum
	var keychar
	var numcheck 
	
	if(window.event) // IE
	{
		keynum = e.keyCode
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		keynum = e.which
	} 
	keychar = String.fromCharCode(keynum)
	numcheck = /\d/  

	if (!((keynum>47 && keynum<58) || keynum == 8 || keynum == 46)) return false;

	if(typeof(e)=='undefined') var e=window.event;
	source=e.target?e.target:e.srcElement;
	
	//bug Konqueror/Safari correction
	if(source.nodeType==3) source=source.parentNode;         

	i = source;


	if (keynum==8 || keynum==46) i.value = "";

	if ((i.value.length >= 4) && (i.value.substr(3,1) != ".")) i.value = i.value.substr(0, 3) + "." + i.value.substr(3);
	if ((i.value.length >= 8) && (i.value.substr(7,1) != ".")) i.value = i.value.substr(0, 7) + "." + i.value.substr(7);
	if ((i.value.length >= 12) && (i.value.substr(11,1) != "-")) i.value = i.value.substr(0, 11) + "-" + i.value.substr(11);

	if (i.value.length >= 14)
	{
		return false;

	}

}
function formataHora (e)
{
        
	if(typeof(e)=='undefined') var e=window.event;
	source=e.target?e.target:e.srcElement;
	
	//bug Konqueror/Safari correction
	if(source.nodeType==3) source=source.parentNode;

	var i = source; 
	var event = e;

	if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105)) i.value = "";
	
	if ((i.value.length >= 2) && (i.value.substr(2,1) != ":")) i.value = i.value.substr(0, 2) + ":" + i.value.substr(2);
	
	if (i.value.length >= 5)
	{
		i.value = i.value.substr(0,5);

		var next = i.indexValue;

	//	document.forms[p].elements[j+1].focus();
	} 	
}
function soNumero(e)
{ 
	var keynum
	var keychar
	var numcheck
	
	if(window.event) // IE
	{
		keynum = e.keyCode
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		keynum = e.which
	}
	
	keychar = String.fromCharCode(keynum)
	numcheck = /\d/;

	
	if (keynum && !((keynum>47 && keynum<58) || keynum == 8 || keynum == 46)) return false;

//	return !numcheck.test(keychar)
}
function checkDate(e)
{
	if(window.event) // IE
	{
		event = e.keyCode
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		event = e.which
	}

	if(typeof(e)=='undefined') var e=window.event;
	source=e.target?e.target:e.srcElement;
	
	//bug Konqueror/Safari correction
	if(source.nodeType==3) source=source.parentNode;

	var field = source;
	
	var fvalue = field.value;
	var odate  = new Date();
	
	if( fvalue != '' ){
		dd = fvalue.substr( 0, 2 );
		mm = fvalue.substr( 3, 2 );
		yy = fvalue.substr( 6, 4 );
		
		if( ( dd > 31 ) || ( dd == 00 ) ){
		//	alert( 'Data inválida' );
			field.value = '';
		//	field.focus();
			return( false );
		}
		else 
		if( ( mm > 12 ) || ( mm == 00 ) ){
		//	alert( 'Data inválida' );
			field.value = '';
		//	field.focus();
			return( false );
		}
		else{
			if( mm == 02 && dd > 29 )
				x = true;
			else if( mm != 02 && dd > 31 )
				x = true;
			else
				x = false;
			if( x == true ){
			//	alert( 'Data inválida' );
				field.value = '';
			//	field.focus();
				return( false );
			}else if( yy < (odate.getFullYear()-110) || yy > (odate.getFullYear()+110) ){
			//	alert( 'Data inválida' );
				field.value = '';
			//	field.focus();
				return( false );
			} 
		}
	}
	return( true );
}

document.getElementsByAttribute=function(attrN,attrV,multi){
    attrV=attrV.replace(/\|/g,'\\|').replace(/\[/g,'\\[').replace(/\(/g,'\\(').replace(/\+/g,'\\+').replace(/\./g,'\\.').replace(/\*/g,'\\*').replace(/\?/g,'\\?').replace(/\//g,'\\/');
    var
        multi=typeof multi!='undefined'?
            multi:
            false,
        cIterate=document.getElementsByTagName('*'),
        aResponse=[],
        attr,
        re=new RegExp(multi?'\\b'+attrV+'\\b':'^'+attrV+'$'),
        i=0,
        elm;
    while((elm=cIterate.item(i++))){
        attr=elm.getAttributeNode(attrN);
        if(attr &&
            attr.specified &&
            re.test(attr.value)
        )
            aResponse.push(elm);
    }
    return aResponse;
}