var clickdelay = 400;
var xznPagLoading = true; 
var last2click = new Date();
var xzninternal = false;
var toks = ':__:';
var tok = ':_:';
var submitted = false;
 	function setChange(field)  
	{
		if ( field.className+'' == '' )
		{
			field.className = 'Xobrig';
			return;
		}
		if ( field.className.indexOf('X') == 0 )
			return;
		field.className = 'X' + field.className;

	}
	function checkObrigatorio( form )
	{ 
		var ok = true;
		for (var j = 0; j < form.elements.length;j++)  
		{ 
			if (  ( (form.elements[j].type == 'text' ) || (form.elements[j].type == 'textarea' )
				 	|| ( (form.elements[j].type == 'select-one' ) && ( form.elements[j].style.visibility != 'hidden' ) ) )  && 
			    ( form.elements[j].className.indexOf('obr') >= 0 ) ) 
			{
				if (  ( ( (form.elements[j].type == 'select-one' ) && (form.elements[j].value == 'null') ) ||
                                ( form.elements[j].value == '' ) 
			    	      ) &&  
					( (form.elements[j].type == 'select-one' ) || ((form.elements[j].name + '_').substring(0, 1) != '_' ) )
				   )
		          	{  
						form.elements[j].style.backgroundColor='#ff8888';
					//var nome = form.elements[j].name.split("___");
					//var ind = (nome.length>1)?1:0;
					//nome = nome[ind].split("__");
					ok = false;
			      } // else form.elements[j].style.backgroundColor='';
		 	}  
		}
		if (!ok)
			alert('ERRO: campo(s) obrigatório(s) não foi(ram) preenchido(s)');  
		return ok;	
	}

	function submitAll( mode )
	{  
		if(submitted) {alert('processando... aguarde.'); return false;} //double click;
		submitted = true;
		var msg = document.getElementById("divfim");
		if (msg == null) 
			msg = document.getElementById("_msg");
		msg.style.visibility = 'visible';
		msg.style.display = 'block';
		msg.innerHTML = '';
	
		msg.innerHTML = '<img id="imgloading" border="0" src="../xazan/img/loading.gif">';
		//+ msg.innerHTML;
		var exec = false;	var erro = false;
		var acoes = ''; var mudados = '';
		var naomudados = ''; var chaves = '';
		
		var tok = ':_:';	var toks = ':__:';
		var results = '';
		for (var i = 0; i < document.forms.length; i++ )
		{	
			var mudou = false; 
			var mudado='';  var chave='';
			var t1='', t2='';

			
			var ok = true;
	    	for (var j = 0; j < document.forms[i].elements.length; j++ )
			{ 
				if (document.forms[i].elements[j].className.indexOf('X') == 0)
				{
					if (!mudou)
					if ( (document.forms[i].onsubmit+'').indexOf('checkValid')>=0 )
					{
						var xknum = (document.forms[i].onsubmit+'').split('checkValid')[1].split('(')[0];
						xzninternal=true;																			  
						eval('ok = checkValid'+xknum+'(document.forms['+i+']);');
						xzninternal=false;
					}


					   mudou=true;mudado+=t1+document.forms[i].elements[j].name+'='+Trim(document.forms[i].elements[j].value);t1=tok;}
				if (document.forms[i].elements[j].name.indexOf('k_e_y') >= 0)
				   {chave+=t2+document.forms[i].elements[j].name+'='+document.forms[i].elements[j].value;t2=tok;}
		  	} 
		  	if ( mudou )
			{
				if ( checkObrigatorio( document.forms[i]) )
				{


					if ( ok )
		 			{ 
					  var ind = document.forms[i].action.indexOf('?')+1;
					  acoes += toks+document.forms[i].action.substring(ind).replace(/&/g,tok);
					  mudados += toks+mudado;

					  chaves += toks+chave;
					  naomudados += toks;
					  // procura nao mudados
					  var t3=''	
		    			  for (var j = 0; j < document.forms[i].elements.length; j++ ) {
					    if (((document.forms[i].elements[j].className.indexOf('obrig') == 0)
					    ||   (document.forms[i].elements[j].className.indexOf('opcion') == 0))
					    &&  (document.forms[i].elements[j].name.indexOf('k_e_y') == -1))
					       {naomudados+=t3+document.forms[i].elements[j].name+'='+Trim(document.forms[i].elements[j].value);t3=tok;}
					  }
					  exec = true;
					}
					else	{ erro = true; break; }
				}  
		 	}
		}
		if ( erro ) {
			submitted = false; 
			return false; 
		}
		if (! exec) { 
			if (mode!='_coletiv=1') 
				alert('nenhuma mudança efetuada!'); msg.style.display='none'; submitted = false; return false;}
		else {
			if ( ! _isAJAX ) {
				mudados = mudados.replace(/&/g,'#amp;');
				naomudados = naomudados.replace(/&/g,'#amp;');
				window.open('cmd?comando=WizOperColetiv&_numses='+_ses+
					'&mudados='+mudados.substring(4)+'&chaves='+chaves.substring(4)+
					'&naomudados='+naomudados.substring(4)+'&acoes='+acoes.substring(4),
					'winxz','status=no,menubar=no,toolbar=no,width=400,height=400,scrollable=yes');
			} 
			else {
				results = jsonrpc.SqlColetivMng.execute(acoes.substring(4),mudados.substring(4),naomudados.substring(4),chaves.substring(4));
				if (results.toUpperCase().indexOf('ERR') >= 0)
					alert('resultado:\n'+results);//.replace(/<br>/g,'\n'));
				else {
					window.status=results.replace(/\n/g,' ');
				}
				
			}
		}
		return true;
	}
   	function updForm(i, acoes, mudados, naomudados, chaves, erro, exec) {
		var tok = ':_:';	
		var mudou = false; 
		var mudado='';  var chave='';
		var t1='', t2='';
		var ok = true;
	    for (var j = 0; j < document.forms[i].elements.length; j++ )
		{ 
			if (document.forms[i].elements[j].className.indexOf('X') == 0)
			{
				   
					if (!mudou)
					if ( (document.forms[i].onsubmit+'').indexOf('checkValid')>=0 )
					{
						var xknum = (document.forms[i].onsubmit+'').split('checkValid')[1].split('(')[0];
						xzninternal=true;																			  
						eval('ok = checkValid'+xknum+'(document.forms['+i+']);');
						xzninternal=false;
					}				   
				   
				   mudou=true;mudado+=t1+document.forms[i].elements[j].name+'='+Trim(document.forms[i].elements[j].value);t1=tok;
			}
			if (document.forms[i].elements[j].name.indexOf('k_e_y') >= 0)
			   {chave+=t2+document.forms[i].elements[j].name+'='+document.forms[i].elements[j].value;t2=tok;}
	  	} 
	  	if ( mudou )
		{ 
		
			if ( checkObrigatorio( document.forms[i]) )
			{

				if ( ok )
	 			{ 
				  var ind = document.forms[i].action.indexOf('?')+1;
				  acoes += toks+document.forms[i].action.substring(ind).replace(/&/g,tok);
				  mudados += toks+mudado;
				  chaves += toks+chave;
				  naomudados += toks;
				  // procura nao mudados
				  var t3=''	
	    			  for (var j = 0; j < document.forms[i].elements.length; j++ ) {
				    if (((document.forms[i].elements[j].className.indexOf('obrig') == 0)
				    ||   (document.forms[i].elements[j].className.indexOf('opcion') == 0))
				    &&  (document.forms[i].elements[j].name.indexOf('k_e_y') == -1))
				       {naomudados+=t3+document.forms[i].elements[j].name+'='+Trim(document.forms[i].elements[j].value);t3=tok;}
				  }
				  exec = true;
				}
				else	{ erro = true; return false; }
			}  
	 	}
		return acoes + toks +  mudados + toks + naomudados + toks + chaves;
	}
	function checkDate( userDate, userFormat ) {
		if (userDate.length == 0)
			return true;
 		var parts = userDate.split( '/' );
		if ( parts.length < 3)
			return false;
		var iD = userFormat.indexOf('d');
		var iM = userFormat.indexOf('M');
		if (iM > iD)
			return isValidDate(parts[0], parts[1], parts[2]);
		else
			return isValidDate(parts[1], parts[0], parts[2]);
	}
    
	function isValidDate(day, month, year) {
	    	if (month < 1 || month > 12) {
            		return false;
        	}
        	if (day < 1 || day > 31) {
            	   return false;
        	}
        	if ((month == 4 || month == 6 || month == 9 || month == 11) &&
            	(day == 31)) {
            	   return false;
        	}
        	if (month == 2) {
            	   var leap = (year % 4 == 0 &&
                  (year % 100 != 0 || year % 400 == 0));
            	   if (day>29 || (day == 29 && !leap)) {
                      return false;
            	   }
        	}
		if ( (''+year).length != 4)
			return false;
		else
		if (year > 2050)
			return false;
		else
		if (year < 1900)
			return false;
       	return true;
	}

	function Maiusculo(val) {
   		Valor = val.value;
		//if (Valor !== Valor.toUpperCase())
    		//{
			val.value = Valor.toUpperCase();
     		//}

	}

	function Minusculo(val) {
   		Valor = val.value;
		//if (Valor !== Valor.toLowerCase())
    		//{
			val.value = Valor.toLowerCase();
     		//}
	}

	function updateReg( regName, compo, delim, order ) {
		var reg = getFormElement(compo.form, regName.name);
		var regval = reg.value;
            var part = (compo.type=='checkbox')?getFormElement(compo.form, compo.name.substring(1)):compo;
		while ( regval.split(delim).length <= order )
			 regval+=delim;
		var vals = regval.split(delim);
		vals[order] = part.value;
		regval =  vals[0];
		for ( i = 1; i < vals.length; i++ )
			regval += delim + vals[i];
		reg.value = eval('regval.replace(/' + delim + '$/,\'\')');
		reg.className = 'Xobrig';
	}

	function keyAcel(ev) {
    	   ev = ev || window.event;          // gets the event in ie or ns
    	   kCode = ev.keyCode || ev.which;   // gets the keycode in ie or ns
 
    	   if ( ev.altKey || ev.ctrlKey ) {
 		var fname;
 		if (document.all)
 		   fname = document.activeElement.form;
 		else
 		if (ev.target)
			fname = ev.target.form;
		else
		if (ev.srcElement) fname = ev.srcElement.form;
 
 		
		var pressedKey = String.fromCharCode(kCode).toUpperCase();
 		if (fname!=null)
 		{
 			for(i=0;i<fname.elements.length;i++)
 			 	if ( (fname.elements[i].type == 'submit') || (fname.elements[i].type == 'button') )
 			    for(j=0;j< (''+fname.elements[i].value).length;j++)
 			 		if ( pressedKey == (''+fname.elements[i].value).substring(j,j+1) )
 			 		{
 			 			fname.elements[i].click();
 			 			return false;
 			 		}
 		}
		if (document.getElementById('btn_pagina') != null) {
			var btn=document.getElementById('btn_pagina');
		    	for(j=0;j< (''+btn.value).length;j++)
 			   if ( pressedKey == (''+btn.value).substring(j,j+1) )
 			   {
 			 	btn.click();
 			 	return false;
 			   }

		}
        }
     }

function getBar2(e) {
	last2click = new Date();

	var divmenu = document.getElementById('menuConteiner');
  	if ( divmenu != null)
  		divmenu.style.visibility='hidden';
	if (navigator.userAgent.indexOf('MSIE 6')>0)
      	document.getElementById('_content').style.visibility = 'visible';		
		
}
function getBar(e) {
		
  if ( (new Date()).getTime() - last2click.getTime() > clickdelay )
     return;

var IE = document.all?true:false;
  if (IE) { 
    if (document.activeElement.form!=null) return true;
    tempX = event.clientX + document.body.scrollLeft;
    tempY = event.clientY + document.body.scrollTop;
  } else {  
    if (e.target.form != null) return true;
    tempX = e.pageX;
    tempY = e.pageY;
  }  
  // catch possible negative values in NS4
  if (tempX < 0){tempX = 0}
  if (tempY < 0){tempY = 0}
  
  var divbar = document.getElementById('xztitbar');
  var divpai = divbar.parentNode;
  while ((divpai.tagName!='DIV') && (divpai.tagName!='BODY')) divpai=divpai.parentNode;
  var bar = document.getElementById('xztitbar').style;
  bar.position = 'absolute';
  //document.appendChild(document.getElementById('xztitbar'));
  if (IE) { 
  	bar.left = tempX - findPosX(divpai);
  	bar.top  = tempY - findPosY(divpai);
  } else {
  	bar.left = ( tempX - findPosX(divpai) ) + 'px';
  	bar.top  = ( tempY - findPosY(divpai) ) + 'px';	  
 }
  bar.visibility = 'visible';
  return true;
}
function setGetBar() {
	document.ondblclick=getBar2;
	document.onclick=getBar;
	
}
function getFormElement(form, nome) {
	for(i=0;i<form.elements.length;i++)
		if (form.elements[i].name==nome)
			return form.elements[i];
	return null;
}
function Trim(str){return str.replace(/^\s+|\s+$/g,"");}
function showHint(field, hint) {
	//alert(hint);
	var divhint = document.createElement('DIV');
	divhint.innerHTML= hint;
	divhint.style.position='absolute';
	divhint.style.display='inline';
	//alert(findPosY(field));
	//divhint.style.top=findPosY(field);//+15;
	divhint.className = 'bar';
	field.parentNode.appendChild(divhint);
}
function removeHint(field) {field.parentNode.removeChild(field.parentNode.lastChild);}
function findPosX(obj)
  {
    var curleft = 0;
    if(obj.offsetParent)
        while(1)
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }
function findPosY(obj)
  {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }
function xznRefresh( nses, lastupd ) {
	if (_isAJAX)
		if ( lastupd != jsonrpc.xazanses.getSisVal(nses, 'last_update') )
			location.reload(true);
}
  
function xznInit( sis, nses, lastupd ) {
	xznRefresh( nses, lastupd );
}
function ctrSubmit( form ) {
    if  ( _isAJAX )  {
			jsonrpc.xazanses.setSesVal(_ses+'', '_curForm', form.action  );
			jsonrpc.xazanses.setSesVal(_ses+'', '_prevPag', document.location.search  );
	}
	
	if (form.action.indexOf('_replaceLocation=1') >= 0) { 
		if (form.action.indexOf('?')<0) form.action+='?'; else form.action+='&';
		for(var i = 0; i < form.elements.length; i++)
			form.action+=form.elements[i].name+'='+form.elements[i].value+'&';
		document.location.replace( form.action ); 
		return false;
	}
	return true;
}



