function showdiv( id , state)
{
  var obj = document.getElementById(id);
  if (state)
    obj.style.display = 'inline';
  else
    obj.style.display = 'none'; 	
}

function limpa_form( id_form )
{
	
	var doClean = confirm("Deseja realmente limpar as informações contidas neste formulário?");
	var frm_obj = document.getElementById(id_form);
	if (doClean)
	{
	 for (x=0;x<frm_obj.elements.length;x++)
	 {
		  if (frm_obj.elements[x].type!="button")
		   frm_obj.elements[x].value = "";			  	 	  
		  if (frm_obj.elements[x].type=="checkbox")
	     frm_obj.elements[x].checked = false; 
	 }
	} 
  
  
}

function get_params( f )
{
 var params="";
 var x,y;
  	
 for (x=0;x<f.elements.length;x++)
 {
  if (f.elements[x].type=="radio" && f.elements[x].checked)
  {
    params = params + "&"+ escape(f.elements[x].name)+"="+escape(f.elements[x].value);	  			
  }
  else if (f.elements[x].type=="checkbox" && f.elements[x].checked)
  {
  	params = params + "&"+ escape(f.elements[x].name)+"="+escape(f.elements[x].value);  			
  }	 
  else if (f.elements[x].type=="select-one") 
  {	
  	for (y=0;y<f.elements[x].length;y++)
  	{
  	  if (f.elements[x].options[y].selected) 
  	    params = params + "&"+ escape(f.elements[x].name)+"="+escape(f.elements[x].options[y].text);  			
  	}
  	   
   }   	   			
   else if (f.elements[x].type!="radio" && f.elements[x].type!="checkbox" && f.elements[x].type!="select-one")
   {	
  	 params = params + "&"+ escape(f.elements[x].name)+"="+escape(f.elements[x].value);	  	  
   }    	    	    
  }
 return params; 
}

function GetXMLHttpRequest()
{
 var xmlHttp = null;
 try
 {
    // Firefox, Opera 8.0+, Safari
    xmlHttp = new XMLHttpRequest();
 }
 catch (e)
 {
    // Internet Explorer
    try
    {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
      try
      {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (e)
      {
          alert("Seu navegador não é compatível com AJAX!");
          return false;
      }
    }
  }
	
	return xmlHttp;
}

function ajax_open( method_type , page_to_load , dest_id, loading_id, params )
{
  
  var xmlhttp = GetXMLHttpRequest();
  var path="";
  
  if (xmlhttp.overrideMimeType) 
   { 
            xmlhttp.overrideMimeType('text/xml; charset=iso-8859-1'); 
   }  
  
  
  xmlhttp.onreadystatechange = function()
  {	
  	if (xmlhttp.readyState == 1)
    {
    	if (loading_id!="")
       document.getElementById(loading_id).style.display = "inline";      
    }
    if (xmlhttp.readyState == 4)
    {
      if (dest_id!="")
       document.getElementById(dest_id).innerHTML = xmlhttp.responseText;             
      if (loading_id!="")
       document.getElementById(loading_id).style.display = "none";
    }  	
  }
  
  
  if ((method_type!="GET") && (method_type!="POST")) method_type = "GET";
  
  if (method_type=="GET")
 	{
 	path = page_to_load+"?sid="+Math.random()*100;         	
    path = path + params;    
    xmlhttp.open(method_type,path,true);
    xmlhttp.send(null); 
  }
  else if (method_type=="POST")
  {
   xmlhttp.open(method_type,page_to_load,true);
   xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   xmlhttp.setRequestHeader("Content-length", parseInt(params.length));
   xmlhttp.setRequestHeader("Connection", "close"); 	
   xmlhttp.send(params); 	
  }	  	
}


function trim(s) 
{
 for (var i= 0; (s.charAt(i) == " ") && (i <= s.length); i++);
     for (var j= s.length; (s.charAt(j - 1) == " ") && (j > 0); j--);
     return s.substr(i, j - i);
}

 //v 2.0 
 function valid_form ( f )
 {
 	   f = document.getElementById(f);
     
     for(a=0;a<f.elements.length;a++)
     {
      
      if(f.elements[a].tagName=="INPUT")
      {
        f.elements[a].value = trim(f.elements[a].value)  
        if (f.elements[a].value == "") 
        {         	
        	//alert(f.elements[a].value);
          alert("Você deve preencher todos os campos antes de submeter este formulário");
          f.elements[a].focus();
          return false;          
        }    
      }
      else if (f.elements[a].tagName=="TEXTAREA")
      {
        f.elements[a].value = trim(f.elements[a].value)  
        if (f.elements[a].value == "") 
        {         	
        	//alert(f.elements[a].value);
          alert("Você deve preencher todos os campos antes de submeter este formulário");
          f.elements[a].focus();
          return false;          
        }    
      }        
     }
     
     return true; 
      
 }
 
 function valid_enquete_form( f )
 {
   var frmObj = document.getElementById(f);
   
   if (trim(frmObj.pergunta.value)=="")
   {
    alert("Você deve informar qual é a pergunta desta Enquete!");
    frmObj.pergunta.focus();
    return false;
   }
   else if (trim(frmObj.idenquete.value)=="")
   {
   	alert("Você deve informar um ID para sua Enquete, caso não saiba como fazer clique em [Sugerir]!");
   	frmObj.idenquete.focus();
    return false;
   }	 
   else if (trim(frmObj.qtdresp.value)=="")
   {
   	alert("Você deve informar quantas perguntas existirão para esta enquete!");
   	frmObj.qtdresp.focus();
    return false;
   }
   else if (isNaN(frmObj.qtdresp.value))
   {
   	alert("Somente números são permitidos no campo Qtde de Respostas!");
    frmObj.qtdresp.focus();
    return false; 	   	
   }
   else if ((frmObj.qtdresp.value<1)||(frmObj.qtdresp.value>99))	
   {	
   	alert("Informe a quantidade de respostas desejadas num intervalo entre [1..99]");
    frmObj.qtdresp.focus();
   	return false;
   }	
   else return true;	  

 }
 
 


//=========== FUNÇÕES DRAG & DROP 
// Baseado no trabalho (Generic Drag) de BrainJar.com

function Browser() 
{

  var ua, s, i;

  this.isIE    = false;
  this.isNS    = false;
  this.version = null;

  ua = navigator.userAgent;

  s = "MSIE";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  // Treat any other "Gecko" browser as NS 6.1.

  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }
}

var browser = new Browser();

// Global object to hold drag information.

var dragObj = new Object();
dragObj.zIndex = 0;

function dragStart(event, id) 
{

  var el;
  var x, y;

  // If an element id was given, find it. Otherwise use the element being
  // clicked on.

  if (id)
    dragObj.elNode = document.getElementById(id);
  else {
    if (browser.isIE)
      dragObj.elNode = window.event.srcElement;
    if (browser.isNS)
      dragObj.elNode = event.target;

    // If this is a text node, use its parent element.

    if (dragObj.elNode.nodeType == 3)
      dragObj.elNode = dragObj.elNode.parentNode;
  }

  // Get cursor position with respect to the page.

  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }

  // Save starting positions of cursor and element.

  dragObj.cursorStartX = x;
  dragObj.cursorStartY = y;
  dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10);
  dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  10);

  if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0;
  if (isNaN(dragObj.elStartTop))  dragObj.elStartTop  = 0;

  // Update element's z-index.

  dragObj.elNode.style.zIndex = ++dragObj.zIndex;

  // Capture mousemove and mouseup events on the page.

  if (browser.isIE) {
    document.attachEvent("onmousemove", dragGo);
    document.attachEvent("onmouseup",   dragStop);
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS) {
    document.addEventListener("mousemove", dragGo,   true);
    document.addEventListener("mouseup",   dragStop, true);
    event.preventDefault();
  }
}

function dragGo(event) 
{

  var x, y;

  // Get cursor position with respect to the page.

  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }

  // Move drag element by the same amount the cursor has moved.

  dragObj.elNode.style.left = (dragObj.elStartLeft + x - dragObj.cursorStartX) + "px";
  dragObj.elNode.style.top  = (dragObj.elStartTop  + y - dragObj.cursorStartY) + "px";

  if (browser.isIE) {
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS)
    event.preventDefault();
}

function dragStop(event) 
{

  // Stop capturing mousemove and mouseup events.

  if (browser.isIE) {
    document.detachEvent("onmousemove", dragGo);
    document.detachEvent("onmouseup",   dragStop);
  }
  if (browser.isNS) {
    document.removeEventListener("mousemove", dragGo,   true);
    document.removeEventListener("mouseup",   dragStop, true);
  }
}


/*	
 function getCalendarDate()
{
   var months = new Array(13);
   months[0]  = "Janeiro";
   months[1]  = "Fevereiro";
   months[2]  = "Março";
   months[3]  = "Abril";
   months[4]  = "Maio";
   months[5]  = "Junho";
   months[6]  = "Julho";
   months[7]  = "Agosto";
   months[8]  = "Setembro";
   months[9]  = "Outubro";
   months[10] = "Novembro";
   months[11] = "Dezembro";
   var now         = new Date();   
   var monthnumber = now.getMonth();
   var monthname   = months[monthnumber];
   var monthday    = now.getDate();      
   var year        = now.getYear();
   if(year < 2000) { year = year + 1900; }
   var dateString = monthday + " de " +  monthname + " de " + year;
   
   return dateString;
} 
	//alert(getCalendarDate());
	
	
	
 // formatedDate segue o seguinte padrão: (yyyy/mm/dd)	
 function sub_days( dataObj, qtdDaysToSub )
 {
 	 var day,month,year,resultDate,now;
 	
  try
  {
   day = dataObj.getDate();
   month = dataObj.getMonth();
   year = dataObj.getYear();
   if(year < 2000) { year = year + 1900; }
   resultDate = new Date(year,month,day-qtdDaysToSub);
  } 
  catch(err)
  {
  	now = new Date();
  	day = now.getDate();
  	month = now.getMonth();
  	year = now.getYear();
  	if(year < 2000) { year = year + 1900; }
  	resultDate = new Date(year,month,day-qtdDaysToSub);  	
  } 
  
  return resultDate;
 
 }
 
 //var now = new Date(); 
 //datasub = sub_days(now,365); 
 //alert(datasub.getDate()+"/"+(datasub.getMonth()+1)+"/"+(datasub.getYear()+1900));
 	
 //retornaData();
	*/
	
	
function randomString( strSize ) {
	var chars = "ABCDEFGHIJKLMNOPQRSTUVWXTZ";
	var string_length = strSize;
	var randomstring = '';
	for (var i=0; i<string_length; i++) {
		var rnum = Math.floor(Math.random() * chars.length);
		randomstring += chars.substring(rnum,rnum+1);
	}
	return randomstring;
}
	
function randomString_aja() {
	var chars = "0123456789";
	var string_length = 6;
	var randomstring = '';
	for (var i=0; i<string_length; i++) {
		var rnum = Math.floor(Math.random() * chars.length);
		randomstring += chars.substring(rnum,rnum+1);
	}
	return "AJA"+randomstring;
}



function sugerir_id( id_destino )
{
   var obj = document.getElementById(id_destino);
   
   var min_num = 1;
   var max_num = 100;    
   var qtd_num=0; 
   
   while(qtd_num < min_num||qtd_num > max_num)
   {
     qtd_num = prompt("Você deseja gerar um ID com quantos caracteres?","6");
     if (qtd_num==null)
     {
       alert("Você deve informar um valor entre "+min_num+" e "+max_num);	     		
     }	
     else if (isNaN(qtd_num)) 
     {
      alert("Você deve informar um número, "+qtd_num+" não é um número válido!"); 
      qtd_num = 0;
     }
     else if (qtd_num < min_num) 
     {
       alert("O número "+qtd_num+" é menor que "+min_num+", informe um valor entre "+min_num+" e "+max_num);    	
     }	
     else if (qtd_num > max_num) 
     {
       alert("O número "+qtd_num+" é maior que "+max_num+", informe um valor entre "+min_num+" e "+max_num);	     	
     }	
    
   } 
   obj.value = randomString(qtd_num);  	
}	
	
	
function sugerir_id_aja ( id_destino )
{
  document.getElementById(id_destino).value = randomString_aja(); 	
}	
	
	
function opacity(id, opacStart, opacEnd, millisec) {
	//speed for each frame
	var speed = Math.round(millisec / 100);
	var timer = 0;

	//determine the direction for the blending, if start and end are the same nothing happens
	if(opacStart > opacEnd) {
		for(i = opacStart; i >= opacEnd; i--) {
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	} else if(opacStart < opacEnd) {
		for(i = opacStart; i <= opacEnd; i++)
			{
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	}
}

function opacityClose(id, opacStart, opacEnd, millisec) {
	//speed for each frame
	var speed = Math.round(millisec / 100);
	var timer = 0;

	//determine the direction for the blending, if start and end are the same nothing happens
	if(opacStart > opacEnd) {
		for(i = opacStart; i >= opacEnd; i--) {
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	} else if(opacStart < opacEnd) {
		for(i = opacStart; i <= opacEnd; i++)
			{
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
		document.getElementById(id).style.display = 'none';
	}
  
  

}


//change the opacity for different browsers
function changeOpac(opacity, id) {
	var object = document.getElementById(id).style; 
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
}

function shiftOpacity(id, millisec) {
	//if an element is invisible, make it visible, else make it ivisible
	if(document.getElementById(id).style.opacity == 0) {
		opacity(id, 0, 100, millisec);
	} else {
		opacity(id, 100, 0, millisec);
	}
}

function blendimage(divid, imageid, imagefile, millisec) {
	var speed = Math.round(millisec / 100);
	var timer = 0;
	
	//set the current image as background
	document.getElementById(divid).style.backgroundImage = "url(" + document.getElementById(imageid).src + ")";
	
	//make image transparent
	changeOpac(0, imageid);
	
	//make new image
	document.getElementById(imageid).src = imagefile;

	//fade in image
	for(i = 0; i <= 100; i++) {
		setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed));
		timer++;
	}
}

function currentOpac(id, opacEnd, millisec) {
	//standard opacity is 100
	var currentOpac = 100;
	
	//if the element has an opacity set, get it
	if(document.getElementById(id).style.opacity < 100) {
		currentOpac = document.getElementById(id).style.opacity * 100;
	}

	//call for the function that changes the opacity
	opacity(id, currentOpac, opacEnd, millisec)
}	

function placeFocus() {
if (document.forms.length > 0) {
var field = document.forms[0];
for (i = 0; i < field.length; i++) {
if ((field.elements[i].type == "text") || (field.elements[i].type == "textarea") || (field.elements[i].type.toString().charAt(0) == "s")) {
document.forms[0].elements[i].focus();
break;
         }
      }
   }
}


function isNumberKey(evt)
{
   var charCode = (evt.which) ? evt.which : evt.keyCode
   if ((charCode < 48 || charCode > 57))
    return false;

   return true;
}

function addFav( link, titulo)
 {
  var url = link;   // "URL DA PAGINA";
  var title = titulo;  //"TITULO DA PAGINA ";

  if (window.sidebar) 
   window.sidebar.addPanel(title, url,"");
  else if(window.opera && window.print)
  {
   var mbm = document.createElement('a');
   mbm.setAttribute('rel','sidebar');
   mbm.setAttribute('href',url);
   mbm.setAttribute('title',title);
   mbm.click();
  }
  else if(document.all)
  {
  	window.external.AddFavorite(url, title);
  }
}
