﻿
k=document,$ie=!!k.all;
//if(!$ie||(!$ie&&navigator.appVersion<6.0))window.location.href="http://localhost/GesConWeb/NoBrowser.aspx";
if(!window.Event)Event=new Object();if(!window.Element)Element=new Object();if(!window.Position)Position=new Object();if(!window.Field)Field=new Object();if(!window.Form)Form=new Object();
String.prototype.trim=function(type){switch(type){case undefined:return this.replace(/^(\s|\xA0)*/,'').replace(/(\s|\xA0)*$/,'');break;case 'alpha':return this.replace(/[A-Za-záéíóúüàâãêôõçÁÉÍÓÚÜÀÃÂÊÔÕÇ]/gi,'');break;case 'number':return this.replace(/\d/gi,'');break;}}
String.prototype.mask=function(m){var m,l=(m=m.split('')).length,s=this.split(''),j=0,h='';for(var i=-1;++i<l;)if(m[i]!='#'){if(m[i]=='\\'&&(h+=m[++i]))continue;h+=m[i];i+1==l&&(s[j-1]+=h,h='');}else{if(!s[j]&&!(h=''))break;(s[j]=h+s[j++])&&(h='');}return s.join('')+h;}  
Number.prototype.money=function(c,d,t){var m=(c=Math.abs(c)+1?c:2,d=d||",",t=t||".",/(\d+)(?:(\.\d+)|)/.exec(this+"")),x=m[1].length>3?m[1].length%3:0;return(x?m[1].substr(0,x)+t:"")+m[1].substr(x).replace(/(\d{3})(?=\d)/g,"$1"+t)+(c?d+(+m[2]||0).toFixed(c).substr(2):"");};
String.prototype.truncate=function(len,trunc){var len=len||30,trunc=trunc||'...';return this.length>len?this.slice(0,len-trunc.length).concat(trunc):this;}
String.prototype.Int=function(){return parseInt(this);}
String.prototype.removeSpaces=function(){return this.replace(/ /ig,'');}
String.prototype.escQuotes=function(){return this.replace(/(["'\\])/g,"\\$1");}
String.prototype.unescQuotes=function(){return this.replace(/\\(.)/g,"$1");}
String.prototype.quoteMeta=function(){return this.replace(/([\\[{^])/g,"\\$1");}
String.prototype.badChars=function(){return this.search(/[ ~!@#$%^&*()_+|`\-=\\{}[\]:";'<>,.\/?]/)!=-1;}
String.prototype.quote=function(quoteType){var quote=quoteType?"'":'"';return quote+this+quote;}
Array.prototype.indexOf=function(param){for(var i=this.length;i--;)if(this[i]==param)return i;return -1;}
Array.prototype.random=function(){return this[Math.floor(Math.random()*this.length)];}
Array.prototype.removeAt=function(a){return this.splice(a,1);}
Array.prototype.insert=function(a,b){this.splice(a,0,b);}
Array.prototype.clear=function(){if(this.length>0)this.splice(0,this.length);}
Array.prototype.iterate=function(func){for(var i=0;i<this.length;i++)func(this[i],i);}
Object.extend=function(destination,source){for(property in source)destination[property]=source[property];return destination;}
Function.prototype.bind=function(object){var __method=this;return function(){return __method.apply(object, arguments);}}
Function.prototype.bindAsEventListener=function(object){var __method=this;return function(event){__method.call(object,event||window.event);}}
//String.format=function(pattern,format){var match=pattern.match(/({.*})/g),brace=(er=RegExp.$1).split(":");if(brace.length>1){if(brace[1].charAt(0).toLowerCase()=='c');return pattern.$R(er,'R$ '+format.money());else if(brace[1].charAt(0).toLowerCase()=='n'){var n = /(\d+)(?:(\.\d+)|)/.exec(format+'');return pattern.$R(er,n[1]+''+n[2].substring(0,parseInt(brace[1].charAt(1))+1));}}else return pattern.$R(er,format);return null};
if(!Array.prototype.each)Array.prototype.each=Array.prototype.iterate;
/*FUNCTIONS BASICS*/
function $c(array){var nArray=[];for(var i=0;i<array.length;i++) nArray.push(array[i]);return nArray;}
function Try(){var returnValue;for(var i=arguments.length;i--;)try{returnValue=arguments[i]();break;}catch(e){}return returnValue;}
function $(){var elements=[];for(var o,i=0;i<arguments.length,o=arguments[i];i++){if(typeof o=='string')o=k.getElementById(o);elements.push(o);}return elements.length<2?elements[0]:elements;}
document.getElementsByClassName=function(className,parentElement){var elements=[],children=$(parentElement).getElementsByTagName('*');for(var o,i=children.length;i--;){o=children[i];if(o.className.match(new RegExp("(^|\\s)"+className+"(\\s|$)")))elements.push(o);}return elements;}
function fixOnload(){if(/WebKit/i.test(navigator.userAgent)){var _timer=setInterval(function(){if(/loaded|complete/.test(document.readyState)){clearInterval(_timer);if(init==Function)init();}},10);}}
/*OBJECTS*/
Class={
  create:function(){return function(){this.initialize.apply(this,arguments);}}
};
Event={
  KEY_BACKSPACE: 8, KEY_TAB:  9, KEY_RETURN:13,
  KEY_ESC:      27, KEY_LEFT:37, KEY_UP:    38,
  KEY_RIGHT:    39, KEY_DOWN:40, KEY_DELETE:46,
  element:     function(event){return event.target||event.srcElement;},
  code:        function(event){return event.keyCode||event.which;},
  isLeftClick: function(event){return (((event.which)&&(event.which==1))||((event.button)&&(event.button==1)));},
  pointerX:    function(event){return event.pageX||(event.clientX+(k.documentElement.scrollLeft||k.body.scrollLeft||0));},
  pointerY:    function(event){return event.pageY||(event.clientY+(k.documentElement.scrollTop||k.body.scrollTop||0));},
  pointer:     function(event){return {x:this.pointerX(event),y:this.pointerY(event)};},
  stop:        function(event){if(event.preventDefault){event.preventDefault();event.stopPropagation();}else{event.returnValue=false;event.cancelBubble=true;}},
  add:         function(o,e,f,s){var r=o[r="_"+(e="on"+e)]=o[r]||(o[e]?[[o[e],o]]:[]),a,c,d;r[r.length]=[f,s||o],o[e]=function(e){
					try{(e=e||event).preventDefault||(e.preventDefault=function(){e.returnValue=false;});e.stopPropagation||(e.stopPropagation=function(){e.cancelBubble=true;});e.target||(e.target=e.srcElement||null);e.key=(e.which+1||e.keyCode+1)-1||0;}
					catch(f){}for(d=1,f=r.length;f;r[--f]&&(a=r[f][0],o=r[f][1],a.call?c=a.call(o,e):(o._=a,c=o._(e),o._= null),d&=c!==false));return e=null,!!d;}},
  remove:      function(o,e,f,s){for(var i=(e=o["_on"+e]||[]).length;i;)if(e[--i]&&e[i][0]==f&&(s||o)==e[i][1])return delete e[i];return false;}
};
Element={
  visible:     function(element){return $(element).style.display!='none';},
  toggle:      function(){for(var i=0;i<arguments.length;i++){var element=$(arguments[i]);this[this.visible(element)?'hide':'show'](element);}},
  hide:        function(){for(var i=0;i<arguments.length;i++)$(arguments[i]).style.display='none';},
  show:        function(){for(var i=0;i<arguments.length;i++)$(arguments[i]).style.display='';},
  remove:      function(element){(element=$(element)).parentNode.removeChild(element);},
  className:   function(element){return $(element).className||null;},
  addClassName:function(element,className){!($(element)&&className)?null:$(element).className+=' '+className;},
  removeClassName:function(element,className){!(el=$(element))&&!className?null:el.className=el.className.replace(new RegExp('(^|\\s)'+className+'(\\s|$)'),'');},
  passValueTo: function(value,toId){!(el=$(toId)&&value)?null:el.value=value;},
  getOffSet:   function(o,s){for(var r={x:o.offsetLeft,y:o.offsetTop,h:o.offsetHeight,w:o.offsetWidth};(o=o.offsetParent)&&(!s||!/relative/i.test(o.style.position));r.x+=o.offsetLeft,r.y+=o.offsetTop);return r;},
  hasClassName:function(element,className){element=$(element);if(!element)return;var hasClass=false;element.className.split(' ').each(function(cn){if(cn==className)hasClass=true;});return hasClass;},
  cleanWhitespace:function(element){element=$(element);$c(element.childNodes).each(function(node){if(node.nodeType==3&&!/\S/.test(node.nodeValue))Element.remove(node);});}
};
Position={
  cumulativeOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;}while(element);return[valueL,valueT];}
};
Field={
  clear:       function(){for(var i=0;i<arguments.length;i++)$(arguments[i]).value='';},
  focus:       function(element){$(element).focus();},
  present:     function(){for(var i=0;i<arguments.length;i++)if($(arguments[i]).value=='')return false;return true;},
  select:      function(element){$(element).select();},
  activate:    function(element){(element=$(element)).focus();if(element.select)element.select();}
};

$F=Form.getValue;
Form={
  elementsCache:        false,
  getElements:          function(form,o){if(this.elementsCache&&!o) return this.elementsCache;var elements=new Array(),form=$(form);for(var tagName in this.serialize){var tagElements=form.getElementsByTagName(tagName);for(var i=0;i<tagElements.length;i++)elements.push(tagElements[i]);}this.elementsCache=elements;return elements;},
  getInputs:            function(form,typeName,name){var inputs=$(form).getElementsByTagName('input');if(!typeName&&!name)return inputs;var matchingInputs=new Array();for(var i=0;i<inputs.length;i++){var input=inputs[i];if((typeName&&input.type!=typeName)||(name&&input.name!=name))continue;matchingInputs.push(input);}return matchingInputs;},
  disable:              function(form){for(var element,elements=this.getElements(form),i=elements.length;i--;){(element=elements[i]).blur();element.disabled = 'true';}},
  enable:               function(form){for(var element,elements=this.getElements(form),i=elements.length;i--;)elements[i].disabled=false;alert(elements.length)},
  findFirstElement:     function(form){for(var o=this.getElements(form),i=0;i<o.length;i++)if(o[i].type!='hidden'&&!o[i].disabled)return o[i];},
  findFirstElementFocus:function(form){for(var o=this.getElements(form),i=0;i<o.length;i++)if(o[i].type!='hidden'&&o[i].type!='button'&&o[i].type!='image'&&!o[i].disabled)return o[i];  },
  focusFirstElement:    function(form){Field.activate(this.findFirstElementFocus(form));},
  reset:                function(form){$(form).reset();},
  getValue:             function(element){var method=(element=$(element)).tagName.toLowerCase();var parameter=Form.serialize[method](element);if(parameter)return parameter[1];},
	  serialize:{
		input:        function(element){switch(element.type.toLowerCase()){case 'submit':case 'hidden':case 'password':case 'text':return this.serialize.textarea(element);case 'checkbox':case 'radio':return this.serialize.inputSelector(element);}return false;},
		inputSelector:function(element){if(element.checked)return[element.name,element.value];},
		textarea:     function(element){return[element.name,element.value];},
		select:       function(element){return this.serialize[element.type=='select-one'?'selectOne':'selectMany'](element);},
		selectOne:    function(element){var value='',opt,index=element.selectedIndex;if(index>=0){opt=element.options[index];value=opt.value||opt.text;}return[element.name,value];},
		selectMany:   function(element){var value=[];for(var i=0;i<element.length;i++){var opt=element.options[i];if(opt.selected)value.push(opt.value||opt.text);}return[element.name,value];}
	  },//end serialize
  checkAll:function(form,checkboxesName,checked){for(var ckbs=Form.getInputs(form,'checkbox',checkboxesName),i=ckbs.length;i--;)ckbs[i].checked=checked;  },
 /** @param obj is the HTML select list * @param text is the text of the new item * @param value is the value of the new item * @param selected is whether or not the item should be selected.*/
  addOption:function(element,text,value,selected){var o=$(element);if(o&&o.options){o.options[o.options.length]=new Option(text,value,false,selected);}}, 
 /*@param selectList is the HTML select list * @param values is a javascript array with values. * @param selectedItem is the item that should be selected*/
  populateDropDown:function(element,values,selectedItem){this.removeAllOptions(element);for(var i=0;i<values.length;i++)this.addOption(element,values[i],i,(i==selectedItem));},
 /*removes all items from a select list * @param obj is an HTML select list */
  removeAllOptions:function(element){var o=$(element);if(o&&o.options){for(var i=(o.options.length-1);i>=0;i--)o.options[i]=null;o.selectedIndex=-1;}}
};

//--------- traduz os botões do crystal
var nmcontrolereport="";
function OperationsRelatorio(){   
    if((nmcontrolereport!="") && $(nmcontrolereport)){
       var objs = $(nmcontrolereport).document.getElementsByTagName("input");      
       for(var i=0;i<objs.length;i++){
           if(objs[i].title){       
               if (objs[i].title=="Export")
               objs[i].title = "Exportar";       
               else if (objs[i].title=="Print")
               objs[i].title = "Imprimir"; 
               else if (objs[i].title=="Show/Hide Group Tree")
               objs[i].title = "Mostrar/Esconder Grupo"; 
               else if (objs[i].title=="First")
               objs[i].title = "Primeira"; 
               else if (objs[i].title=="Prev")
               objs[i].title = "Anterior"; 
               else if (objs[i].title=="Next")
               objs[i].title = "Próxima"; 
               else if (objs[i].title=="Last")
               objs[i].title = "Ultima"; 
               else if (objs[i].title=="Go To")
               objs[i].title = "Ir para"; 
               else if (objs[i].title=="Up")
               objs[i].title = "Subir"; 
               else if (objs[i].title=="Find")
               objs[i].title = "Procurar";                
           }
       }        
       var objslinks = $(nmcontrolereport).document.getElementsByTagName("a");
       for(var i=0;i<objslinks.length;i++){
           if (objslinks[i].href && objslinks[i].href=="http://www.businessobjects.com/"){
           objslinks[i].outerHTML="";           
           }
       }    
       
        //--------------- mostrar mensagem de "Nenhum registro encontrado" -----------------
        
        //Para funcionar corretamente, é necessário alguns ajustes no Relatório:
        //  1.  Criar uma fórmula que teste se um DatabaseFieldObject não é nulo. IMPORTANTE escolher um campo 
        //      definido como NOT NULL. Código da fórmula: "not isnull(CAMPO_NOT_NULL)"
        //  2.  Inserir um objeto da fórmula criada na seção PagoeHeader. 
        //  3.  Atribuir o CSS "temRegistro" ao objeto criado. 
        //  4.  Selecionar a cor de fonte branca para o objeto criado. 
        //          *   Foi necessário esse passo 4 porque ao imprimir o relatório esse javascript não é executado,
        //              então ficava aparecendo o texto do objeto na impressão. A alternativa encontrada foi
        //              deixar a fonte branca. Se alguém tiver uma solução melhor... :)

       var objslinks = $(nmcontrolereport).document.getElementsByTagName("span");
       for(var i=0;i<objslinks.length;i++){
           if (objslinks[i].className && objslinks[i].className=="temRegistro"){           
               objslinks[i].style.display="none";           
               if(objslinks[i].innerText=="False"){                               
               alert('Nenhum registro encontrado!');    
               history.go (-1);          
               }
               else 
               $(nmcontrolereport).style.display="block";
           }
       }    
         
   }   
    }
    
if (document.all)
window.attachEvent("onload",OperationsRelatorio);
else
window.addEventListener("load", OperationsRelatorio, false);    

