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 ) ;

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("|");
		
		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 formErrOutput(objErrors){
	var message = objErrors.generalError + '<br />';
	
	if (objErrors.fieldErrors) {
		for (var ii = 0; ii < objErrors.fieldErrors.length; ii++)
			message += (ii + 1) + ': Campo "' + objErrors.fieldErrors[ii].field.title + '" ' + objErrors.fieldErrors[ii].errorMessage + "<br />";
	}
	
	var outputDiv = document.getElementById("errOutput");
	
	if(outputDiv != null){
		outputDiv.innerHTML = message;
		outputDiv.style.display = "block";
	}
}


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];}
};



function SearchNewsDate(){
	var MonthYear = document.getElementById("ArchiveNews").value;
	objmodMbizAjaxPage.showAjaxPage('tdContentNewsList','noticias','List&MonthYear='+ MonthYear);
}

function SearchNewsStr(){
	var ArchiveSearch = document.getElementById("ArchiveSearch").value;
	objmodMbizAjaxPage.showAjaxPage('tdContentNewsList','noticias','List&ArchiveSearch='+ ArchiveSearch);
}

function SearchDicasStr(){
	var ArchiveSearch = document.getElementById("ArchiveSearch").value;
	objmodMbizAjaxPage.showAjaxPage('tdContentDicasList','dicas','List&ArchiveSearch='+ ArchiveSearch);
}

function ReceitaPrint(ReceitaId){

	objMasterBiz.popup('http://www.moinhosaojorge.com.br/exec.php?mod=receitas&type=Print&ReceitaId=' + ReceitaId ,screen.availWidth-10,(screen.availHeight-200),false,true,true,'Impressao_Receita','resizable=yes, scrollbars=yes, toolbar=no, location=yes, menubar=yes, status=no');

}

function SearchAllStr(){
	var Search = document.getElementById("Search").value;
	
	if (Search.length >= 3 ) {
		objmodMbizAjaxPage.showAjaxPage('tdContent','busca','Mount&Search='+ Search);
	}else{
	
		alert('Por favor,\ninsira uma palavra com no mínimo 3 caracteres.');
	
	}
	
}

var modMbizAjaxPage = function(strInstanceName)
{

	return {
		init : function(div)
		{
			var container = document.getElementById(div);
			var lnks = container.getElementsByTagName('a');


			for(var i=0,len=lnks.length;i<len;i++) {

				if (lnks[i].getAttribute('rel') != null){

					if (lnks[i].onclick == null) {

							lnks[i].onclick = function() {

								eval(strInstanceName).getAjaxFnc(this);

								return false;

							}
					}
				}
			}

			var map, x;
		    map = container.getElementsByTagName('area');
		    for(x=0;x<map.length;x++){

				if (map[x].getAttribute('rel') != null){

					if (map[x].onclick == null) {

						map[x].onclick = function() {
							eval(strInstanceName).getAjaxFnc(this);
							return false;
						}
					}
				}
		     }
		},
		showAjaxPage : function(content,mod,type){
			var url = 'http://www.moinhosaojorge.com.br/exec.ajax.php?mod='+ mod +'&type='+ type;
			objMasterBiz.GetE(content).innerHTML = objMasterBiz.GetE('LoadAjax').innerHTML;
			var myAjax = new Ajax.Updater( content, url, { method: 'get', evalScripts : true });
		},
		getAjaxFnc : function(obj){

			if (obj.getAttribute('rel') != null){

				var myString = obj.getAttribute('rel');
				var myArray = myString.split(' ');

				if (myArray[0] == 'mbizAjaxPage' ) {

					eval(strInstanceName).showAjaxPage('tdContent',myArray[1].substr(4),myArray[2].substr(4) );

				}else if (myArray[0] == 'mbizAjaxSubPage' ) {
					eval(strInstanceName).showAjaxPage(myArray[1].substr(4),myArray[2].substr(4),myArray[3].substr(4));
				}

			}

		}
	}
}


