var objMasterBiz 		= new Object() ;
var sAgent 				= navigator.userAgent.toLowerCase() ;

objMasterBiz.BrowserInfo			= new Object() ;
objMasterBiz.BrowserInfo.IsIE		= ( sAgent.indexOf("msie") != -1 ) ;
objMasterBiz.BrowserInfo.IsGecko	= !objMasterBiz.BrowserInfo.IsIE ;
objMasterBiz.BrowserInfo.IsSafari	= ( sAgent.indexOf("safari") != -1 ) ;
objMasterBiz.BrowserInfo.IsNetscape	= ( sAgent.indexOf("netscape") != -1 ) ;

// adiciona o mtodo trim()  classe String
String.prototype.trim = function()
{
	var varToTrim = this;
	
    while (varToTrim.substring(0, 1) == ' ')
        varToTrim = varToTrim.substring(1, varToTrim.length);

    while (varToTrim.substring(varToTrim.length - 1, varToTrim.length) == ' ')
        varToTrim = varToTrim.substring(0, varToTrim.length - 1);

    return varToTrim;
};

function $id(strID)
{
	return document.getElementById(strID);
}

function verify()
{
	var cmp, args = verify.arguments;
	
	for (var i = 0; i < args.length; i++)
	{
		cmp = $id(args[i]);
		
		if ( cmp.value.trim() == '' )
		{
			alert('O campo ' + cmp.title + ' é obrigatório!');
			cmp.focus();
			return false;
			break;
		}
	}
	
	return true;
}

objMasterBiz.frmVerifyMaxLength = function (obj,max){
	var sCampo = new String(obj.value);
	if(sCampo.length > max){
		obj.value = '';
		obj.value = sCampo.substr(0,max);
	}
};

objMasterBiz.popup = function(strUrl, intLargura, intAltura, bolClosePopUp ,bolAntiPopUp, bolCentralizar,strNome,strPropriedades)
{
	var largura      = (intLargura > 0) ? (intLargura) : (750);
	var altura       = (intAltura  > 0) ? (intAltura)  : (500);
	var propriedades = (strPropriedades != '') ? (', ' + strPropriedades) : ('');
	var top  = 10;
	var left = 10;

	if (bolCentralizar !== false)
	{
		left = (screen.width  - largura) / 2;
		top  = (screen.height - altura ) / 2;
	}
	propriedades = 'width=' + largura + ', height=' + altura + ',top=' + top + ', left=' + left + propriedades;

	var popwin = window.open(strUrl,strNome, propriedades);
    if ((bolAntiPopUp == true) && (popwin == null))
	{
	    alert('Seu navegador possui bloqueador de pop-up.\n Por favor habilite a abertura de pop-up para este \n endereço e atualize esta página.');
	    return false;
	}
	if (bolClosePopUp == true)
	{
		popwin.close();
	}
	else
	{
		popwin.focus();
		return popwin;
	}
};


objMasterBiz.returnTabs = function (id)
 {

	document.getElementById(id).tabber.tabShow(0);
 };


objMasterBiz.CenterPopUp = function(intLargura, intAltura,bolCentralizar) {
    var top  = 10;
    var left = 10;
	if (bolCentralizar !== false)
	{
		left = (screen.width  - intLargura) / 2;
		top  = (screen.height - intAltura) / 2;
	}
    parent.window.resizeTo(intLargura,intAltura);
    parent.window.moveTo(left,top);
};

objMasterBiz.ButtonStyle = function (sItem,sStyle) {
	sItem.className = sStyle ;
	return true;
};

objMasterBiz.GoTo = function (link)
{
    if (objMasterBiz.BrowserInfo.IsIE ) {window.location.href =link;}
	else {document.location = link;}
	return false;
};


objMasterBiz.caModuleLine = function (objCheck){
	var frm = document.getElementById("EditInclude");
	for(var i = 0;i <frm.elements.length;i++){
		var e=frm.elements[i];
		if ((e.getAttribute('tipo') == objCheck.getAttribute('tipo') ) && (e.type=='checkbox'))
		{
			e.checked= objCheck.checked;
		}
	}
};


objMasterBiz.caAll = function (objCheck){
	var frm = document.getElementById("EditInclude");
	for(var i = 0;i <frm.elements.length;i++){
		var e=frm.elements[i];
		if ((e.name != 'all') && (e.type=='checkbox'))
		{
			e.checked= objCheck.checked;
		}
	}
};

/*
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
*/

objMasterBiz.ShowHide = function (id_layer){
	if( document.getElementById(id_layer).style.display=='none' ){
		document.getElementById(id_layer).style.display = '';
	}
	else{
		document.getElementById(id_layer).style.display = 'none';
	}
};

objMasterBiz.Show = function (id_layer){
	document.getElementById(id_layer).style.display = '';
};

objMasterBiz.Hide = function (id_layer){
	document.getElementById(id_layer).style.display = 'none';
};


objMasterBiz.CenterDiv = function(objID) {

	var width 	= objMasterBiz.GetE(objID).offsetWidth;
	var height 	= objMasterBiz.GetE(objID).offsetHeight;
    var left 	= (window.innerWidth - width) / 2;
	var top  	= (window.innerHeight  - height) / 2;

	objMasterBiz.GetE(objID).style.top 	= top + 'px';
	objMasterBiz.GetE(objID).style.left 	= left + 'px';

};

objMasterBiz.doInnerHTML = function (elem, stringHTML) {
   try {
	  var iistringHTML = '<div>';
 	  iistringHTML += stringHTML ;
	  iistringHTML += '</div>';

      var children = elem.childNodes;

      for (var i = 0; i <children.length; i++) {
         elem.removeChild(children[i]);
      }

      var nodes = new DOMParser().parseFromString(iistringHTML,'application\/xhtml+xml').documentElement;
      var range = document.createRange();
      range.selectNodeContents(elem);
      range.deleteContents();

      for (var i = 0; i <nodes.childNodes.length; i++) {
         elem.appendChild(document.importNode(nodes.childNodes[i], true));
      }
      return true;
      } catch (e) {
         try {
            elem.innerHTML = stringHTML;
            return true;
         }
      catch(ee) {
         return false;
      }
   }
};

objMasterBiz.CheckForm = function (objFrm)
{
	if (validateForm(objFrm,false,false,false,false,4)){
		return true;
		}
	else {
		return false;
	}
};

/*
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
*/

objMasterBiz.GetE = function ( elementId )
{
	return document.getElementById( elementId )  ;
};

objMasterBiz.SetAttribute = function ( element, attName, attValue )
{
	if (!element) { return false ;}
	if ( attValue == null || attValue.length == 0 ) element.removeAttribute( attName, 0 ) ;			// 0 : Case Insensitive
	else element.setAttribute( attName, attValue, 0 ) ;	// 0 : Case Insensitive
};

objMasterBiz.GetAttribute = function ( element, attName, valueIfNull )
{
	var oAtt = element.attributes[attName];
	if ( oAtt == null || !oAtt.specified ) return valueIfNull ? valueIfNull : '' ;
	var oValue ;

	if ( !( oValue = element.getAttribute( attName, 2 ) ) ) oValue = oAtt.nodeValue ;
	return ( oValue == null ? valueIfNull : oValue ) ;
};

objMasterBiz.createElement = function (element) {
  if (typeof document.createElementNS != 'undefined') {
    return document.createElementNS('http://www.w3.org/1999/xhtml', element);
  }
  if (typeof document.createElement != 'undefined') {
    return document.createElement(element);
  }
  return false;
};

objMasterBiz.StringReplace = function (S,OldPattern,NewPattern) {
  return S.replace(OldPattern,NewPattern);
};

objMasterBiz.getKey = function (strChave)
{
	var querystring = document.location.search;
	var expressao   = eval('/(?:&)*' + strChave.toLowerCase() + '=([^\&]+)(?:&)*/i');
	var regexp      = expressao.exec(querystring);

	if (regexp != null) {
		if (querystring.length > 0)
			return regexp[1]; else
			return false;
	}
};

/*
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
*/

var objXMLHttpRequest 		= false;
var	returnXMLHttpRequest	= '';
objMasterBiz.AJAXGetRequest = function (url, fcn) {

        objXMLHttpRequest = false;

        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            objXMLHttpRequest = new XMLHttpRequest();
            if (objXMLHttpRequest.overrideMimeType) {
                objXMLHttpRequest.overrideMimeType('text/xml');
                // See note below about this line
            }
        } else if (window.ActiveXObject) { // IE
            try {
                objXMLHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    objXMLHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!objXMLHttpRequest) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }

        if (fcn != "")
        {
			if (objMasterBiz.BrowserInfo.IsIE)
			{
				objXMLHttpRequest.onreadystatechange = fcn;
			} else {
				objXMLHttpRequest.onreadystatechange = eval(fcn);
			}
		} else {
        	objXMLHttpRequest.onreadystatechange = objMasterBiz.ReturnContents;
		}

        objXMLHttpRequest.open('GET', url, true);
        objXMLHttpRequest.send(null);

    }

objMasterBiz.ReturnContents = function () {
        if (objXMLHttpRequest.readyState == 4) {
            if (objXMLHttpRequest.status == 200) {
				returnXMLHttpRequest = objXMLHttpRequest.responseText;
            } else {
				returnXMLHttpRequest = 'There was a problem with the request.';
            }
        }
};

//objMasterBiz.addEvent(window, "load", objMasterBiz.initPopUp);


// formata um campo contra um padrao especificado
// padroes disponíveis:
// número = number, moeda = currency, date = data, somente letras = letter, telefone = phone, nao permitir código html = code
// exemplo, o campo aceita apenas números: <input type="text" name="nome" onblur="format(this, 'number');">
objMasterBiz.Format = function(obj, format_type)
{
    var formatted_value;

    switch (format_type)
    {
        case 'number':
            formatted_value = obj.value.replace(/[^0-9]/g, '');
        break;

        case 'percent':
            formatted_value = obj.value.replace(/[^0-9,]/g, '');
        break;

        case 'currency':
            formatted_value = obj.value.replace(/[^0-9\.,]/g, '');
        break;

        case 'date':
            formatted_value = obj.value.replace(/\-/g, '/');
            formatted_value = formatted_value.replace(/[^0-9\/]/g, '');
        break;

        case 'letter':
            formatted_value = obj.value.replace(/[^\w ]/g, '');
        break;

        case 'phone':
            formatted_value = obj.value.replace(/[^0-9\- ]/g, '');
        break;

        case 'code':
            formatted_value = obj.value.replace(/[<>'"]/g, '');
        break;

        case 'email':
            formatted_value = obj.value.replace(/[^\@\a-zA-Z0-9\.\-\_]/g, '');
        break;
        
        case 'alpha':
            formatted_value = obj.value.replace(/[^A-Za-z0-9 ]/g, '');
        break;
        
        case 'space':
            formatted_value = obj.value.replace(/[ ]/g, '');
        break;
    }

    obj.value = formatted_value;
};

objMasterBiz.isEmail = function(email){
	var regex = /^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/;

	if (regex.test(email))
	{
		return true;
	}
	
	return false;
};

//Funçao de validaçao de CNPJ
objMasterBiz.isCnpj = function(s)
{
	s = limpaString(s);

	var a = new Array();
	var b = new Number;

	var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
	
	for (i=0; i<12; i++)
	{
		a[i] = s.charAt(i);
		b += a[i] * c[i+1];
	}
	
	if ((x = b % 11) < 2)
	{
		a[12] = 0;
	} else {
		a[12] = 11-x;
	}
	
	b = 0;
	for (y=0; y<13; y++)
	{
		b += (a[y] * c[y]);
	}
	
	if ((x = b % 11) < 2)
	{
		a[13] = 0;
	} else {
		a[13] = 11-x;
	}
	
	if ((s.charAt(12) != a[12]) || (s.charAt(13) != a[13]))
	{
		return false;
	}
	
	return true;
};

objMasterBiz.validaFormGlobal = function (conf, msg){
	msgErro = "";
	
	if (msg != undefined)
	{
		msgErro += msg;
	}
	
	var arrCampoConf = new Array();
	arrCampoConf = conf.split(",");
	
	for (i = 0; i < arrCampoConf.length; i++)
	{
		arrCampo = new Array();
		arrCampo = arrCampoConf[i].split("|");
		
		if (document.getElementById(arrCampo[1]) === null) {
			alert('Campo' + arrCampo[1] + ' não existe!');
			return false;
		}
		
		switch(arrCampo[0])
		{
			case "select":
				if (document.getElementById(arrCampo[1]).selectedIndex == 0)
				{
					msgErro += "- Selecione uma opçao para " + document.getElementById(arrCampo[1]).getAttribute("title") + "\n";
				}
				break;
			
			case "text":
				if (document.getElementById(arrCampo[1]).value == "")
				{
					msgErro += "- Preencha o campo " + document.getElementById(arrCampo[1]).getAttribute("title") + "\n";
				}
				break;
			
			case "date":
				if (!isDate(document.getElementById(arrCampo[1]).value))
				{
					msgErro += "- Coloque uma data válida no campo " + document.getElementById(arrCampo[1]).getAttribute("title") + "\n";
				}
				break;
				
			case "email":
				if (document.getElementById(arrCampo[1]).value == "")
				{
					msgErro+= "- Preencha o campo " + document.getElementById(arrCampo[1]).getAttribute("title") + "\n";
				} else {
					if (!objMasterBiz.isEmail(document.getElementById(arrCampo[1]).value))
					{
						msgErro += "- E-mail inválido no campo " + document.getElementById(arrCampo[1]).getAttribute("title") + "\n";
					}
				}
				break;
			case "cnpj":
				if (document.getElementById(arrCampo[1]).value == "")
				{
					msgErro+= "- Preencha o campo " + document.getElementById(arrCampo[1]).getAttribute("title") + "\n";
				} else {
					if (!objMasterBiz.isCnpj(document.getElementById(arrCampo[1]).value))
					{
						msgErro += "- CNPJ inválido no campo " + document.getElementById(arrCampo[1]).getAttribute("title") + "\n";
					}
				}
				break;				
		}
	}
	
	if (msgErro != "")
	{
		alert("Atençao!\n" + msgErro);
		return false;
	}
	
	return true;
};

objMasterBiz.Mascara = function(_RefObjeto, _Modelo){

    var valorAtual = _RefObjeto.value;
    var valorNumerico = '';
    var nIndexModelo = 0;
    var nIndexString = 0;
    var valorFinal = '';
    var adicionarValor = true;


      // limpa a string valor atual para verificar
      // se todos os caracteres sao números
      for (i=0;i<_Modelo.length;i++){
        if (_Modelo.substr(i,1) != '#'){
          valorAtual = valorAtual.replace(_Modelo.substr(i,1),'');
      }}

      // verifica se todos os caracteres sao números
      for (i=0;i<valorAtual.length;i++){
        if (!isNaN(parseFloat(valorAtual.substr(i,1)))){
          valorNumerico = valorNumerico + valorAtual.substr(i,1);
      }}
      
      // aplica a máscara ao campo informado usando
      // o modelo de máscara informado no script
      for (i=0;i<_Modelo.length;i++){

        if (_Modelo.substr(i,1) == '#'){
          if (valorNumerico.substr(nIndexModelo,1) != ''){
            valorFinal = valorFinal + valorNumerico.substr(nIndexModelo,1);
            nIndexModelo++;nIndexString++;
          }
            else {
              adicionarValor = false;
        }}

          else {
            if (adicionarValor && valorNumerico.substr(nIndexModelo,1) != ''){
            valorFinal = valorFinal + _Modelo.substr(nIndexString,1);
            nIndexString++;
          }}
      }

      _RefObjeto.value = valorFinal;
};


function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
};

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
};

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
};

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
};
