function popup(url,janela,atributos)
{
	var w= window.open(url,janela,removeStr(atributos," "));
}

function popupPrint(url,width,height)
{
	var w, h;
	if( arguments.length < 2)
	{
		w= 640  ; h= 480;
	}else{
		w= width; h= height;
	}
	popup(url,'PrintWind'+random(1,9999),'left=0,top=0,width='+w+',height='+h+',directories=no,location=no,menubar=no,resizable=no,scrollbars=yes,status=no');
}

function popupPrintAuto(arg1,arg2,arg3, arg4)
{
	var print_logo, width, height, css;
	var nargs= arguments.length;

	if( arg1)
	{
		if( isNaN(parseInt(arg1,10)) )  // is not a number?
		{
			print_logo= arg1;
			width= arg2;
			if( arg3) height= arg3;
			if( arg4) css= arg4;
		}else{
			width= arg1;
			if( arg2) height= arg2;
			if( arg3) css= arg3;
		}
	}
	var b= new Browser();
	if( b.isIE())
	{
		var pagePrintIE= "/ITE/common/print_ie/printIE.html?rand="+random(1,9999);
		if( print_logo)
			pagePrintIE= pagePrintIE+ "&print_logo="+ print_logo;
		if( css)
			pagePrintIE= pagePrintIE+ "&css="+ css;
		var call= "popupPrint(\""+ pagePrintIE + "\""+
		        (arguments.length > 0?","+width+","+height:"") + ")";
		eval(call);
	}else{
		var href=String(document.location.href);
		/********************************************************/
		/* Codigo especifico para desenvolvimento via Transform */
		/********************************************************/
		var i;
		var pesq= "/ITE/servlets/Transform?xml=";
		if( (i=href.indexOf(pesq))!= -1)
		{
			var iXsl= href.indexOf("&xsl=");
			var change= href.substring(i+pesq.length,iXsl); 
			href= changeStr(href,change,change+"_print");	
			href= changeStr(href,".xml_print","_print.xml");
		}
		/***********************************************************/
		href+= (href.indexOf("?")== -1)?"?media=print":"&media=print";
		var call= "popupPrint(\"" +href+ "\"" +  
		          (arguments.length > 0?","+width+","+height:"") + ")";
		eval(call);
	}
}

function random(r1, r2) {
  if (r2 > r1) return (Math.round(Math.random()*(r2-r1))+r1);
  else return (Math.round(Math.random()*(r1-r2))+r2);
}

function trim(s)
{
   var retVal = "";
   var start = 0;
   var str= String(s);
	if( str== null || str.length == 0)
		return "";
   while ((start < str.length) && (str.charAt(start) == ' ')) {
   ++start;
   }
   var end = str.length;
   while ((end > 0) && (str.charAt(end - 1) == ' ')) 
	{
   	--end;
   }
   retVal = str.substring(start, start + end);
   return retVal;
}

function autoSkip(field, orientation)
{
	var indCampo= -1;
	var form= field.form;
	// Obtendo posicao do campo no formulario
	for(i=0; i < form.elements.length; i++)
	{
		if (field == form.elements[i] ) 
		{
			indCampo= i; break;
		}
	}
	focusCampByPos(form, indCampo, orientation);
}

function autoFocus(form)
{
	var formulario= arguments.length==0?document.forms[0]:form;
	focusCampByPos(formulario, -1);
}

function focusCampByPos(form, indCampo, orientation)
{	
	var orient=  (orientation?orientation:"down");
	var indNext= (orient == "down"?1:-1);

	// Caso seja o ultimo componente nao foca em ninguem.
   if( ( typeof form.elements[indCampo+indNext]) == "undefined")
   {
		if( indCampo!= -1) form.elements[indCampo].blur();
      return;
   }
	//Procurando proximo campo para setar foco.
   for(i=indCampo+indNext; i < form.elements.length; i=i+indNext)
   {
      tipo= form.elements[i].type;
      if((tipo=='text' || tipo=='password' || tipo=='select-one') && !form.elements[i].disabled)
      {
         form.elements[i].focus();
			return;
      }
   }
	// Caso nao consiga focar em ninguem, sai do campo...
	form.elements[indCampo].blur();
}

function isNumeric( value)
{
	var reNumeric= new RegExp("^[0-9]+$");
	return reNumeric.test(value);
}

function isAlfaNumeric( value)
{
	return isAlfaOrAlfaNumeric( value, true);
}

function isAlfa( value)
{
	return isAlfaOrAlfaNumeric( value, false);
}

function isAlfaOrAlfaNumeric( value, alfanumeric)
{
	var valor= String(value);
	//--
	var acentosMinusc= 'áéíóúçãõâêôà';
	var acentosMaiusc= 'ÁÉÍÓÚÇÃÕÂÊÔÀ';
	var reNumeric= new RegExp("[0-9]");
	var reAlfa= new RegExp("[A-Za-z]");
	for( var i=0; i< valor.length; i++)
	{
		var letra= new String(valor.charAt(i));
		if( !reAlfa.test(letra)) 
		{
			if( (acentosMinusc.indexOf(letra) == -1) &&
				 (acentosMaiusc.indexOf(letra) == -1))
			{
				if(alfanumeric) // Se tipo e' alfanumerico, ainda pode ser numero.
				{
					if( !reNumeric.test(letra)) return false;
				}else return false;                                
			}
		}
	}
	return true;
}

function invertStr(str)
{
	// Inverte o string S
	var temp="";
	for (var i=0; i<str.length; i++){
		temp=str.charAt(i)+temp
	}
	return temp;
}

function removeStr(source, arg)
{
	var ind, tam, values;
	var dst= String(source);
	if( typeof arg == "string")
		values= new Array(arg);
	else
		values= arg;
	for(var i=0; i< values.length; i++)
	{
		tam= String(values[i]).length;
		while( (ind= dst.indexOf(values[i]))!= -1)
			dst= dst.substring(0,ind) + dst.substring(ind + tam);
	}
	return dst;
}

function isFloatNumber(number)
{
	var re= /^\d+(,\d+|\d*)$/;
	return re.test(number);
}

function repeatStr(source, str, size, direction)
{
	var ret= String(source);
	if( !direction) direction= "left";
   //-- Preenche com a string "str" a esquerda --//
	while(ret.length < size)
	{
		if( String(direction).toLowerCase() == "right")
			ret+= str;
		else
			ret= str + ret;
	}
	return ret;
}

function changeStr(source, strOrig, strDest)
{
	var ind;
	var lastind=0;
	var lengthOrig= String(strOrig).length;
	var dst= new String("");
	while( (ind= source.indexOf(strOrig,lastind))!= -1)
	{
		dst+= (source.substring(lastind,ind) + strDest);
		lastind= ind+lengthOrig;
	}
	dst+= source.substring(lastind);
	return dst;
}

function justNumbersStr(str)
{
	// Deixa so' os digitos no numero
	var digitos = "0123456789";
	var temp = "";
	var digito = "";
   for (var i=0; i<str.length; i++){
      digito = str.charAt(i);
      if (digitos.indexOf(digito)!= -1)
      {
         temp+= digito;
      }
   }
   return temp;
}

function onlySameNumber(str)
{
   var prim= str.charAt(0);
   var numbers= new String("0123456789");
   if (numbers.indexOf(prim) == -1)
      return false;
   for( var i=1; i< str.length; i++)
   {
      if( str.charAt(i) != prim)
         return false;
   }
   return true;
}

function NumberTo(str)
{
	var wrkCampo = '';
	var wrkCaracter = '';

	for ( var i=0; i < str.length; i++ )
	{
		wrkCaracter = str.substring(i, i+1);
		if ( wrkCaracter == '.' )
			continue;
		wrkCampo += wrkCaracter;
	}
	return (Number(virgulaToponto(wrkCampo)));
}

function virgulaToponto(expr) 
{
	var localvir = expr.indexOf(',');
	if ( localvir == -1 )
	{
		return expr;
	} else {
		return expr.substring(0, localvir) + '.' + expr.substring(localvir + 1, expr.length);
	}
}

function pontoTovirgula(expr)
{
	var localpt = expr.indexOf('.');
	if ( localpt == -1 )
	{
		return expr;
	} else {
		return expr.substring(0, localpt) + ',' + expr.substring(localpt + 1, expr.length);
	}
}

function vldData(vpDia, vpMes, vpAno)
{
	var dtaValida = new DateObj((vpDia + '/' + vpMes + '/' + vpAno));

	if ( dtaValida == 'undefined' )
	{
		return 0;
	}

	return dtaValida.isValid;
}

