var IAS = {}; Ajax = {}; IAS.Collection = {}; IAS.Debug = {}; IAS.UI = {}; function $(ctrlID) { return document.getElementById(ctrlID); } function $$( ctrl, attr ) { if( ctrl ) { if( ctrl[attr] ) return ctrl[attr] if( ctrl.attributes && ctrl.attributes[attr] ) return ctrl.attributes[attr].value; } return null; } Function.Empty = function(){}; Function.prototype.GetName = function(obj) { if( this.name ) return this.name; var fn = this.toString(); //Safari ou tipo anonimo if( fn == '[function]' ) { var cn = obj.constructor; if( cn == String ) this.name = 'String'; else if( cn == Number ) this.name = 'Number'; else if( cn == Function ) this.name = 'Function'; else if( cn == Date ) this.name = 'Date'; else if( cn == Error ) this.name = 'Error'; else if( cn == Boolean ) this.name = 'Boolean'; else if( cn == Array ) this.name = 'Array'; else this.name = 'Object'; return this.name; } var start = fn.indexOf( 'function' ) + 9; for(;fn.charAt(start) == ' ';) start++; var end = start; while( fn.charAt(end) != ' ' && fn.charAt(end) != '(' ) end++; this.name = fn.substring( start, end ) return this.name; } IAS.Debug.ShowProperties = function(obj, showFunctions) { for( var prop in obj ) if( obj.constructor != Function || (showFunctions && obj.constructor == Function) ) alert( String.Format( '{0}: {1}', prop, obj[prop] ) ); } IAS.CookieManager = new function() { this.Set = function(name, value, f){ if(!f) value = escape(value); document.cookie = String.Format( '{0}={1};expires=Fri, 31 Dec 2099 23:59:59 GMT;path={2};', name, value, page.ApplicationName.length==0?'/':page.ApplicationName ); } this.Get = function(name){ var cookies = document.cookie.split('; '); var rt = null; for (var i=0; i < cookies.length; i++) { var cookie = cookies[i].split('='); if (name == cookie[0]) { rt = unescape(cookies[i].substring(name.length+1)); break; } } return rt; } this.Delete = function(name){ document.cookie = name + '=; expires=Fri, 21 Dec 1976 04:31:24 GMT;'; } this.SaveObject = function(name, obj){ this.Set( name, obj.Serialize() ); } this.LoadObject = function(name){ return eval( '('+this.Get(name)+')' ); } } Math.Round = function( valor, casasDecimais ) { var v = Math.pow(10, casasDecimais); return Math.round(v*valor)/v; } function ListAutoComplete(ctrl, jsFeeder) { var value = ctrl.value.Trim(); if( !value.length ) { $(ctrl.id + '_list').style.display = 'none'; return; } if( ctrl.LastValue == value ) return; ListAutoComplete.Control = ctrl; ctrl.LastValue = value; if(jsFeeder) ListAutoCompleteEnd( jsFeeder(ctrl) ); else Ajax.GetAutoCompleteList( $$(ctrl,'TypeName'), value, ListAutoCompleteEnd ) } function ListAutoCompleteEnd(list) { var ctrl = ListAutoComplete.Control; var container = $(ctrl.id + '_list'); if( !list.length ) { container.style.display = 'none'; return; } var p = page.GetPosition( ctrl ); container.style.top = (p[0] + ctrl.clientHeight + 7) + 'px'; container.style.left = p[1] + 'px'; container.style.width = (ctrl.clientWidth+1) + 'px'; container.style.display = ''; var sb = new IAS.StringBuilder(); for(var i=0; i{1}", ctrl.clientWidth, list[i], ctrl.id)); container.innerHTML = sb.toString(); } function AutoCompleteSelect(id, text) { $(id).value = text; $(id+'_list').style.display = 'none'; } //DefaulJavaScripts var Validadores = {}; Validadores.ValidaEmail = function(email) { return !email || !email.length || email.match('^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$') != null; } Validadores.ValidaNumero = function(st) { for(var i=0; i= '0') && (c <= '9')); } Validadores.ValidaCPF = function( valor ) { return Validadores.ValidaCPF_CNPJ( valor, 1 ); } Validadores.ValidaCNPJ = function( valor ) { return Validadores.ValidaCPF_CNPJ( valor, 2 ); } Validadores.ValidaCPF_CNPJ = function(campo,pType) { if( campo == null || campo.Trim() == '' ) return false; var campo_filtrado = '', valor_1 = ' ', valor_2 = ' ', ch = ''; var valido = false; for (i = 0; i < campo.length; i++) { ch = campo.substring(i, i + 1); if (ch >= '0' && ch <= '9') { campo_filtrado = campo_filtrado.toString() + ch.toString() valor_1 = valor_2; valor_2 = ch; } if ((valor_1 != ' ') && (!valido)) valido = !(valor_1 == valor_2); } if (!valido) campo_filtrado = '12345678912'; if (campo_filtrado.length < 11) { for (i = 1; i <= (11 - campo_filtrado.length); i++){campo_filtrado = '0' + campo_filtrado;} } if(pType <= 1) { if ( ( campo_filtrado.substring(9,11) == Validadores.__checkCPF( campo_filtrado.substring(0,9) ) ) && ( campo_filtrado.substring(11,12)=='') ) return true; } if((pType == 2) || (pType == 0)) if (campo_filtrado.length >= 14) if ( campo_filtrado.substring(12,14) == Validadores.__checkCNPJ( campo_filtrado.substring(0,12) ) ) return true; return false; } Validadores.__checkCNPJ = function(vCNPJ) { var mControle = ''; var aTabCNPJ = new Array(5,4,3,2,9,8,7,6,5,4,3,2); for (i = 1 ; i <= 2 ; i++){ mSoma = 0; for (j = 0 ; j < vCNPJ.length ; j++) mSoma = mSoma + (vCNPJ.substring(j,j+1) * aTabCNPJ[j]); if (i == 2 ) mSoma = mSoma + ( 2 * mDigito ); mDigito = ( mSoma * 10 ) % 11; if (mDigito == 10 ) mDigito = 0; mControle1 = mControle ; mControle = mDigito; aTabCNPJ = new Array(6,5,4,3,2,9,8,7,6,5,4,3); } return( (mControle1 * 10) + mControle ); } Validadores.__checkCPF = function(vCPF) { var mControle = '' var mContIni = 2, mContFim = 10, mDigito = 0; for (j = 1 ; j <= 2 ; j++){ mSoma = 0; for (i = mContIni ; i <= mContFim ; i++) mSoma = mSoma + (vCPF.substring((i-j-1),(i-j)) * (mContFim + 1 + j - i)); if (j == 2 ) mSoma = mSoma + ( 2 * mDigito ); mDigito = ( mSoma * 10 ) % 11; if (mDigito == 10) mDigito = 0; mControle1 = mControle; mControle = mDigito; mContIni = 3; mContFim = 11; } return( (mControle1 * 10) + mControle ); } Validadores.ValidaData = function(data) { if( !data || !data.length ) return null; var dataArray = data.Split('/-.'); if( dataArray.length != 3 ) return null; if( !Validadores.ValidaNumero( (dataArray[0]||'.').TrimStart('0') ) || !Validadores.ValidaNumero( (dataArray[1]||'.').TrimStart('0') ) || !Validadores.ValidaNumero( (dataArray[2]||'.').TrimStart('0') ) ) return null; var dia = parseInt( dataArray[0].TrimStart('0') ); var mes = parseInt( dataArray[1].TrimStart('0') ); var ano = parseInt( dataArray[2].TrimStart('0') ); if( ano <= 60 ) ano += 2000; else if( ano > 60 && ano <= 99 ) ano += 1900; if( dia == 0 || mes == 0 || ano == 0 || mes > 12 ) return null; if( (ano > 99 && ano < 1900) || (ano > 2099) ) return null; try { mes--; var dt = new Date( ano, mes, dia); if( dt.getDate() != dia || dt.getMonth() != mes || dt.getFullYear() != ano ) return null; return dt; } catch(err) { return null; } } Validadores.ValidaDataHora = function( dataHora ) { var partes = dataHora.Split(' '); if( partes.length != 2 ) return null; var data = Validadores.ValidaData( partes[0] ); if( !data ) return null; var horaArray = partes[1].Split(':'); if( horaArray.length < 2 || horaArray.length > 3 ) return null; var hora = 0; var minuto = 0; var segundo = 0; var hora = parseInt( horaArray[0].TrimStart('0') )||0; var minuto = parseInt( horaArray[1].TrimStart('0') )||0; var segundo = ((horaArray.length==3)?horaArray[2].TrimStart('0'):0)||0; if( hora < 0 || hora > 23 ) return null; if( minuto < 0 || minuto > 59 ) return null; if( segundo < 0 || segundo > 59 ) return null; data.setHours(hora); data.setMinutes(minuto); data.setSeconds(segundo); return data; } //Validadores IAS.UI.ListControl = {}; IAS.UI.ListControl.Functions = {}; IAS.UI.ListControl.Functions.SetSelectedValue = function(value) { if( String.IsNullOrEmpty(value) ) { this.selectedIndex = 0; return; } var i =0; while( iindex; i--) this.options[i] = new Option(this.options[i-1].text, this.options[i-1].value); this.options[index] = new Option( text, value ); return this.options[index]; } IAS.UI.ListControl.Functions.Bind = function(dataSource, valueProperty, textProperty, selectOption, preserveItems, p1, p2, p3) { if(!dataSource.GetEnumerator) return; drop = this; if(!preserveItems) drop.options.length = 0; if( selectOption ) drop.Add('', selectOption); var en = dataSource.GetEnumerator(); while( en.MoveNext() ) { drop.Add( valueProperty?en.Current[valueProperty]:en.Current, textProperty?en.Current[textProperty]:en.Current ); if( p1 ) drop.options[drop.options.length-1][p1] = en.Current[p1]; if( p2 ) drop.options[drop.options.length-1][p2] = en.Current[p2]; if( p3 ) drop.options[drop.options.length-1][p3] = en.Current[p3]; } } IAS.UI.ListControl.Functions.DataBind = function(dataSource, textProperty, valueProperty, selectOption, preserveItems, p1, p2, p3) { this.Bind(dataSource, valueProperty, textProperty, selectOption, preserveItems, p1, p2, p3); } IAS.UI.ListControl.Functions.CopyTo = function(drop, onlySelectedItems, copyCallBack) { for(var i=0; i 2 ) rt = rt.substring( 0, rt.length-2 ); return rt+' }'; } //Object String.Empty = ''; String.None = 'none'; String.prototype.Capitalize = function() { if( !String.Accents ) String.InitializeAccents(); var t = this; var rt = ''; var oldC = null; for(var i=0; i='a' && oldC<='z') || ( oldC>='A' && oldC<='Z') || (oldC>='0' && oldC<='9') || String.Accents[oldC] ) ) rt += c.toLowerCase(); else rt += c.toUpperCase(); oldC = c; } return rt; } String.prototype.Equals = function( text, ignoreCase ) { var t1 = ignoreCase ? this.toLowerCase() : this; var t2 = ignoreCase ? text.toLowerCase() : text; return t1 == t2; } String.prototype.IsEqualsOrStartsWith = function( text, ignoreCase ) { return this.Equals(text, ignoreCase) || this.StartsWith(text, ignoreCase); } String.prototype.Left = function( tamanho, str ) { var rt = this; if( tamanho < rt.length ) return rt.substr( 0, tamanho ) + (str||''); return rt; } String.prototype.Right = function( t ) { var rt = this; if( rt.length < t ) return rt; return rt.substr( rt.length-t, t ); } String.prototype.TrimStart = function(c) { if( !c ) c = ' '; var rt = this; while(rt.substring(0,1) == c) { rt = rt.substring(1, rt.length); } return rt; } String.prototype.TrimEnd = function(c) { if( !c ) c = ' '; var rt = this; while(rt.substring(rt.length-1, rt.length) == c) { rt = rt.substring(0,rt.length-1); } return rt; } String.prototype.Trim = function(c) { if( !c ) c = ' '; return this.TrimEnd(c).TrimStart(c); } String.prototype.RemoveAccent = function() { if( !String.Accents ) String.InitializeAccents(); var _st = this; var rt = ''; for(var idx=0; idx<_st.length; idx++) { var ch = _st.charAt(idx); ch = (String.Accents[ch] || ch); rt += ch } return rt; } String.InitializeAccents = function() { var accents = {}; accents['á'] = accents['à'] = accents['ã'] = accents['â'] = accents['ä'] = 'a'; accents['Á'] = accents['À'] = accents['Ã'] = accents['Â'] = accents['Ä'] = 'A'; accents['é'] = accents['è'] = accents['ê'] = accents['ë'] = 'e'; accents['É'] = accents['È'] = accents['Ê'] = accents['Ë'] = 'E'; accents['í'] = accents['ì'] = accents['î'] = accents['ï'] = 'i'; accents['Í'] = accents['Ì'] = accents['Î'] = accents['Ï'] = 'I'; accents['ó'] = accents['ò'] = accents['ô'] = accents['õ'] = accents['ö'] = 'o'; accents['Ó'] = accents['Ò'] = accents['Ô'] = accents['Õ'] = accents['Ö'] = 'O'; accents['ú'] = accents['ù'] = accents['û'] = accents['ü'] = 'u'; accents['Ú'] = accents['Ù'] = accents['Û'] = accents['Ü'] = 'U'; accents['ç'] = 'c'; accents['Ç'] = 'C'; accents['ñ'] = 'n'; accents['Ñ'] = 'N'; accents['ÿ'] = accents['ý'] = 'y'; accents['Ý'] = 'Y'; String.Accents = accents; } String.WhenNullOrEmpty = function( text, ifNullValue, notNullFormat ) { if( String.IsNullOrEmpty( text ) ) return ifNullValue; if( notNullFormat ) return String.Format( notNullFormat, text ); return text; } String.prototype.ToString = function(formato) { return this; } String.Parse = function(value) { if( value.ToString ) return value.ToString(); return value.toString(); } String.Concat = function() { var rt = ''; for( var i=0; i= '0') && (c <= '9')); } String.prototype.IsLetter = function(idx) { idx = idx || 0; var c = this.charAt(idx).toLowerCase() || ' '; return ((c >= 'a') && (c <= 'z')); } String.prototype.IsLetterOrDigit = function(idx) { return this.IsLetter(idx) || this.IsDigit(idx); } String.UTF8 = new function() { this.Encode = function (text) { text = text.replace(/\r\n/g,'\n'); var utftext = ''; for (var n = 0; n < text.length; n++) { var c = text.charCodeAt(n); if (c < 128) utftext += String.fromCharCode(c); else if((c > 127) && (c < 2048)) { utftext += String.fromCharCode((c >> 6) | 192); utftext += String.fromCharCode((c & 63) | 128); } else { utftext += String.fromCharCode((c >> 12) | 224); utftext += String.fromCharCode(((c >> 6) & 63) | 128); utftext += String.fromCharCode((c & 63) | 128); } } return utftext; } this.Decode = function (utftext) { var rt = ''; var i = 0; var c = c1 = c2 = 0; while ( i < utftext.length ) { c = utftext.charCodeAt(i); if (c < 128) { rt += String.fromCharCode(c); i++; } else if((c > 191) && (c < 224)) { c2 = utftext.charCodeAt(i+1); rt += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); i += 2; } else { c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2); rt += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3; } } return rt; } } //StringFunctions function AjaxRepeater(id) { var _template = null; var self = this; var _id = id; var _slots = []; this.ItemTemplate = null; this.AlternateItemTemplate = null; this.HeaderTemplate = null; this.FooterTemplate = null; this.SeparatorTemplate = null; this.ContentPlaceHolder = null; AjaxRepeater[_id] = self; this.constructor.BindMethod = { Sync: 0, Async: 1, Fast:2 }; this.constructor.BindItem = function(id, idx){ var rpt = AjaxRepeater[id]; rpt.__BindItem(idx||0); } this.Bind = function( collection, option, bindMethod, option2, option3 ) { if( collection == null ) collection = ''; if( _template != null ) { for( var tpl in _template ) if( _template[tpl] && _template[tpl].length ) this[tpl] = new IAS.UI.Template( _template[tpl] ); _template = null; } if( collection.GetType() != 'Array' && collection.GetEnumerator ) { var en = collection.GetEnumerator(); var c = []; while( en.MoveNext() ) c.push( en.Current ); collection = c; } if( !bindMethod ) this.__BindSync( collection, option ); else if( bindMethod == AjaxRepeater.BindMethod.Async ) this.__BindAsync( collection, option ); } this.__BindSync = function( collection, preservContent ) { //var start = new Date(); var content = new IAS.StringBuilder(); if( this.HeaderTemplate ) content.Append(this.HeaderTemplate.Bind( null, null, collection )); for(var i=0; i= this.DataSource.length ) { if( this.OnBindCompleted ) this.OnBindCompleted(); this.__SyncObject = null; return; } var content = _slots[this.SlotIndex]; if( !content ) { content = document.createElement('span'); _slots[this.SlotIndex] = content; this.ContentPlaceHolder.ContentPH.appendChild( content ); } var c = new IAS.StringBuilder(); for( var i=0; i= 2800 ) { strings.push(accum); accum = ''; } } this.Clear = function() { strings.length = 0; } this.GetLength = function() { return strings.length; } this.toString = function() { if( accum.length ) { strings.push( accum ); accum = ''; } var rt = strings.join(''); strings = [rt]; return rt; } } //StringBuilderJS function $IE6(value1, value2) { return page.IsIE6 ? value1 : value2 } function __QueryString() { this.AllKeys = []; this.Values = []; var subs = window.location.search.substring(1); var queries = subs.split("&"); for (i=0;i 1 ) return; if( this.IsIE ) { document.onclick = RaiseOnClick; return; } window.captureEvents(Event.Click) window.onclick = RaiseOnClick; } this.RemoveOnClick = function(fn) { _onClickHandlers.Remove(fn); } this.GetEventKeyCode = function(ev) { if( ev ) return parseInt(ev.wich||ev.keyCode); return parseInt(event.keyCode); } this.IsNumber = function(e) { var keynum; var keychar; var numcheck; if(window.event) keynum = e.keyCode; else if(e.which) keynum = e.which; keychar = String.fromCharCode(keynum); numcheck = /\d/; return numcheck.test(keychar); } this.CheckNumbers = function(e) { if (e.keyCode == 8 || e.keyCode == 9 || e.keyCode == 46) return true; if (e.keyCode == 37 || e.keyCode == 8 || e.keyCode == 39 || e.keyCode == 40) return true; return this.IsNumber(e); } this.IsLoaded = function() { if( _completed ) return true; if( document.readyState ) { if( document.readyState == 'complete' || document.readyState == 'loaded' ) _completed = true; } return _completed; } this.CreateForm = function( name, action, method, target ) { var frm = document.createElement('form'); frm.action = action; frm.method = method; frm.name = name; frm.target = target; document.body.appendChild(frm); frm.AddField = function(name, value){ frm.appendChild( page.CreateInput(name, 'text', value) ); }; return frm; } this.CreateInput = function( name, type, value ) { var ipt = document.createElement('input'); ipt.type = type; ipt.name = name; ipt.value = value; return ipt; } this.CreateIFrame = function() { var iframe = document.createElement('iframe'); document.body.appendChild(iframe); iframe.style.display = 'none'; return iframe; } this.CreateSpan = function(id) { var rt = document.createElement('span'); rt.name = id; rt.id = id; return rt; } this.GetHistoryControler = function() { if(!_historyController) _historyController = new IAS.UI.Page.HistoryControler(); return _historyController; } this.HideControl = function( controlID ) { _controls[controlID].style.display = 'none'; } this.ShowControl = function(controlID) { _controls[controlID].style.display = ''; } this.Redirect = function(url) { window.location.href = this.ResolveUrl(url); } this.AddControl = function(controlID, name) { name = name || controlID; var ctrl = {}; ctrl.ID = controlID; ctrl.Name = name; _controlsToRegister.Add( ctrl ); if( this.IsLoaded() ) RegisterControls_Internal(); else this.__ListenForOnLoad(); } this.__SetLoadCompleted = function() { if( _completed ) return; _completed = true; this.__ListenForOnLoad(1); } this.__ListenForOnLoad = function(arg) { if( !arg && _isListening ) return; _isListening = true; if( this.IsLoaded() ) { if(this.ListeningTimer) clearTimeout( this.ListeningTimer ); _isListening = false; if( _controlsToRegister.length > 0 ) RegisterControls_Internal(); for(var i=0; i<_loadCallback.length; i++) _loadCallback[i](); for(var i=0; i<_posLoadCallback.length; i++) _posLoadCallback[i](); return; } this.ListeningTimer = setTimeout( 'IAS.UI.Page.Current.__ListenForOnLoad(1)', 5 ); } function RegisterControls_Internal() { for(var i=0; i<_controlsToRegister.length; i++) { var ctrl = document.getElementById(_controlsToRegister[i].ID); if( !ctrl || ctrl.Registered ) continue; ctrl.Registered = true; if( ctrl.tagName.toUpperCase() == 'SELECT' ) ctrl = IAS.UI.ListControl.GetByID(_controlsToRegister[i].ID) GetHierarchy(_controlsToRegister[i].ID)[_controlsToRegister[i].Name] = ctrl; _controls.Add( ctrl ); } } function GetHierarchy( id ) { var rt = IAS.UI.Page.Current; id = id.Split('.'); for(var i=0; i' + onLoadCallback ) if( this.IsLoaded() ) { onLoadCallback(); return; } _loadCallback.push( onLoadCallback ); if( _posLoadCallback.length == 0 && _loadCallback.length == 1 ) this.__ListenForOnLoad(); } this.AddOnPosLoad = function( onLoadCallback ) { if( onLoadCallback.GetType() == 'String' ) onLoadCallback = $L( '() =>' + onLoadCallback ) if( this.IsLoaded() ) { onLoadCallback(); return; } _posLoadCallback.push( onLoadCallback ); if( _posLoadCallback.length == 1 && _loadCallback.length == 0 ) this.__ListenForOnLoad(); } this.ResolveUrl = function(path) { if( path.charAt(0) == '~' ) { path = path.substr(1); if( path.charAt(0) == '/' ) path = path.substr(1); if( page.ApplicationName.length > 0 ) path = page.ApplicationName + '/' + path; } else if( path.charAt(0) != '/' ) path = location.pathname.Left(location.pathname.lastIndexOf('/')+1) + path; if( path.charAt(0) == '/' ) path = path.substr(1); return String.Format( '{0}//{1}/{2}', location.protocol, location.host, path ); } this.FindControl = function( ctrlPath ) { var arr = ctrlPath.Split('.'); var rt = page; for(var i=0; iwindow._hash = '" + s + "'; window.onload = parent.HistoryControler.SyncHash;<\/script>"); d.close(); } this.SyncHash = function() { var s = this._hash; if (s != '' && s != document.location.hash) document.location.hash = s; } } //Page IAS.UI.AjaxWizard = function(id, validateSteps, previousButton, nextButton, finishButton) { var placeHolder = document.getElementById(id); var steps = []; var stepsName = []; var currStep = 0; var visible = false; var _self = this; if(previousButton) { previousButton = document.getElementById(previousButton); previousButton.style.display = 'none'; previousButton.onclick = function(){ _self.Previous(); return false; }; } if(nextButton) { nextButton = document.getElementById(nextButton); nextButton.onclick = function(){ _self.Next(); return false; }; } if(finishButton) { finishButton = document.getElementById(finishButton); finishButton.onclick = function(){ _self.Finish(); return false; }; } for(var i=0; i1&&currStep>0?'':'none'); if( nextButton ) nextButton.style.display = (steps.length>1&&currStep 0 ) { var types = validationType.Split('|'); for(var i = 0; i 0 ) return eval( String.Format('{0}("{1}")', type.substr(7,type.length), value) ); if( value === undefined ) value = null; switch( type.toLowerCase() ) { case 'number': return Validadores.ValidaNumero( value ); case 'date': return Validadores.ValidaData( value ); case 'email': return Validadores.ValidaEmail( value ); case 'cpf': return Validadores.ValidaCPF( value ); case 'cnpj': return Validadores.ValidaCNPJ( value ); case 'required': return (value!=null&&(value||value.toString().length))?true:false; } return true; } var GetAttributeValue = function( attributes, name, caseInsensitive ) { if( !attributes || !attributes.length ) return; if( attributes[name] ) return attributes[name].value; if( caseInsensitive ) name = name.toLowerCase(); for(var i=0; i=0; i--) { if( i!=_int.length-1 && (_int.length-i-1)%3 == 0 ) int = '.' + int; int = _int.charAt(i) + int; } return String.Format('R$ {0},{1}', int, ('0'+Math.round(this.GetDecimal()*100)).Left(2) ); } if( formato == '#.###,##' ) { var _int = this.GetInteger().toString(); var int = ''; for(var i=_int.length-1;i>=0; i--) { if( i!=_int.length-1 && (_int.length-i-1)%3 == 0 ) int = '.' + int; int = _int.charAt(i) + int; } return String.Format('{0},{1}', int, ('0'+Math.round(this.GetDecimal()*100)).Right(2) ); } return this.toString(); } Number.ParseInt = function(value, defaultValue) { if( String.IsNullOrEmpty(value) || !Validadores.ValidaNumero( value ) ) return defaultValue || 0; return parseInt(value); } Number.ParseFloat = function(value, defaultValue) { if( String.IsNullOrEmpty(value) || !Validadores.ValidaNumeroDecimal( value ) ) return defaultValue || 0; return parseFloat(value); } Number.prototype.ToNumber = function() { return this; } //Number Date.Months = [ 'jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', 'out', 'nov', 'dez' ]; Date.MonthsLong = [ 'Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro' ]; Date.prototype.ToString = function(formato) { var ano = 1900 + this.getYear(); ano = ano >= 2000?ano-2000:ano-1900; if( ano < 0 ) ano = 0; ano = ('0'+ano.toString()).Right(2); formato = formato.Replace( 'yyyy', this.getFullYear() ); formato = formato.Replace( 'yy', ano ); formato = formato.Replace( 'MMMM', Date.MonthsLong[this.getMonth()] ); formato = formato.Replace( 'MMM', Date.Months[this.getMonth()] ); formato = formato.Replace( 'MM', ('0'+(this.getMonth()+1)).Right(2) ); formato = formato.Replace( 'dd', ('0'+this.getDate().toString()).Right(2) ); formato = formato.Replace( 'hh', ('0'+Math.abs( this.getHours()-12 ).toString()).Right(2) ); formato = formato.Replace( 'HH', ('0'+this.getHours().toString()).Right(2) ); formato = formato.Replace( 'mm', ('0'+this.getMinutes().toString()).Right(2) ); formato = formato.Replace( 'ss', ('0'+this.getSeconds().toString()).Right(2) ); return formato; } Date.prototype.IsBetween = function( start, end ) { var d = this; return d >= start && d <= end; } Date.Parse = function(data) { var rt = Validadores.ValidaDataHora(data); if( !rt ) rt = Validadores.ValidaData(data); if( !rt ) return null; return rt; } Date.GetFirstDayInMonth = function(p1, p2) { if( p1.GetType() === 'Date' ) return Date.Parse(String.Format('1/{0}/{1}', p1.getMonth()+1, p1.getYear())); return Date.Parse(String.Format('1/{0}/{1}', p1, p2)); } Date.DaysInMonth = function(month, year) { if( month == 12 ) { month = 0; year++; } return Date.Parse( String.Format('1/{0}/{1}', month+1, year) ).SubtractDays(1).getDate(); } Date.IsValidInterval = function(start, end) { var dStart = start; var dEnd = end; if( dStart.GetType() != 'Date' ) { var d1 = start.split('/'); dStart = new Date(d1[2] + '/' + d1[1] + '/' + d1[0]); } if( dEnd.GetType() != 'Date' ) { var d2 = end.split('/'); var dEnd = new Date(d2[2] + '/' + d2[1] + '/' + d2[0]); } return dStart <= dEnd; } Date.prototype.SubtractDays = function(days) { days = days||0; var date = this; return new Date( date - (1000*60*60*24*days) ); } Date.prototype.AddDays = function(days) { days = days||0; var date = this; return new Date( date.valueOf() + (1000*60*60*24*days) ); } Date.prototype.AddMonths = function(months) { var date = this; var day = date.getDate(); var month = date.getMonth()+1; var year = date.getFullYear(); for(var i=0; i i.Name.IsEqualsOrStartsWith(p1, 1)', txtAutoComplete.value); this.SetPage(0); } this.SetPage = function(page) { autoCompleteList.style.display = 'none'; var sb = new IAS.StringBuilder(); var start = page * cols * rows; var end = Math.min( start + (cols*rows), files.length ); for(var i=start; i
{3}
', files[i].UrlThumb, callBackFunction, files[i].Url, files[i].Name, id ); sb.Append(div); } while( ((end) % cols != 0) ) { sb.Append("
 
"); end++; } sb.Append( GetPagingHtml(page) ); ph.innerHTML = sb.toString(); } function GetPagingHtml(page) { var totalPages = parseInt(files.length/(cols*rows)); if( (files.length % (cols*rows)) ) totalPages++; var sb = new IAS.StringBuilder(); sb.Append( "
Páginas:
" ); var start = Math.max( 0, page - 4 ); var end = Math.min(start + 9, totalPages); for(var i=start; i{0}
", i+1 ) ); else sb.Append( String.Format( "
{0}
", i+1, i, id ) ); } sb.Append(""); return sb.toString(); } this.GetFiles = function(fileNameStart) { return allFiles.Select('i => i.Name').Search($L('i => i.IsEqualsOrStartsWith(p1, 1)', fileNameStart)).Top(5); } this.SetPage(0); } IAS.ImageGallery.Create = function(id, rows, cols, callback) { page[id] = new IAS.ImageGallery(id, rows, cols, callback); IAS.ImageGallery[id] = page[id]; } IAS.ImageGallery.IsSelected = function( id, div ) { return IAS.ImageGallery[id].SelectedImage && IAS.ImageGallery[id].SelectedImage.Div == div; } IAS.ImageGallery.Select = function( div, id, callBack, imageName ) { if( IAS.ImageGallery[id].SelectedImage ) IAS.ImageGallery[id].SelectedImage.Div.className = 'tlg_image'; IAS.ImageGallery[id].SelectedImage = { Div: div, Image: imageName }; div.className = 'tlg_image_selected'; callBack(imageName.substr(imageName.lastIndexOf('/')+1)); } //ImageGallery IAS.Enumerator = function(moveNextFn, currentItemFn) { this._MoveNext = moveNextFn; this._CurrentItem = currentItemFn; this.MoveNext = function() { this.Current = this._CurrentItem(); return this._MoveNext(); } this.GetEnumerator = function() { return this; } } IAS.Collection.Stack = function() { this.Index = 0; this.Push = function( item ) { this[this.Index++] = item; } this.Pop = function() { var rt = this[--this.Index]; if( this.Index < 0 ) this.Index = 0; return rt; } } IAS.Collection.Stack.name = 'IAS.Collection.Stack'; Array.prototype.GetEnumerator = function() { var arr = this; var idx = 0; var rt = new IAS.Enumerator( function(){ if(idx >= arr.length) return false; idx++; return true; }, function(){ return arr[idx]; } ); return rt; } Array.prototype.Top = function(count) { var size = Math.min( count, this.length ); var rt = new Array(size); for(var i=0; i= 0; } Array.prototype.FindByProperty = function( value, property ) { for(var i=0; i= this.length || idx < 0) return; for(var i=idx; i obj2) return 1; else if(this < obj2) return -1; return 0; } String.prototype.CompareTo = Object.CompareTo; Number.prototype.CompareTo = Object.CompareTo; Date.prototype.CompareTo = Object.CompareTo; page.Lambdas = {}; function $F(lambda) { if( arguments.length == 1 && page.Lambdas[lambda] ) return page.Lambdas[lambda]; var parts = lambda.split('=>'); var parameters = parts[0].Trim().TrimStart('(').TrimEnd(')').Trim(); parts.RemoveAt(0); parts = parts.join('=>'); var code = String.Format('{0};', parts); if( arguments.length > 1 ) { for(var i=1; i'); var parameters = parts[0].Trim().TrimStart('(').TrimEnd(')').Trim(); parts.RemoveAt(0); parts = parts.join('=>'); var code = String.Format('return {0};', parts); if( arguments.length > 1 ) { for(var i=1; i i1.CompareTo(i2)'); if( sortClause.GetType() == 'Function' ) return sortClause; if( sortClause.indexOf('=>') < 0 ) { var sorts = sortClause.Trim().Split(','); if( sorts.length == 1 ) { var s = sorts[0].Trim().split(' '); if( s.length > 1 && s[1].toLowerCase() == 'desc' ) sortClause = String.Format('i1, i2 => i2.{0}.CompareTo(i1.{0})', s[0]); else sortClause = String.Format('i1, i2 => i1.{0}.CompareTo(i2.{0})', s[0]); } else { var code = 'i1, i2 => '; for(var i =0; i 1 && s[1].toLowerCase() == 'desc' ) code += String.Format('( i2.{0}.CompareTo(i1.{0}) ? i2.{0}.CompareTo(i1.{0}) : ', s[0]); else code += String.Format('( i1.{0}.CompareTo(i2.{0}) ? i1.{0}.CompareTo(i2.{0}) : ', s[0]); } code += '0'; for(var i =0; i i'); if( selectStatement.GetType() == 'String' ) { if( selectStatement.indexOf('=>') < 0 ) selectStatement = String.Format('i => i.{0}', selectStatement); selectStatement = $L.apply(null, arguments); } var rt = []; for(var i=0; i=0; i--) if( whereClause(this[i]) ) return this[i]; return null; } Array.prototype.Distinct = function(comparator, sort) { if( !this.length ) return []; var arr = this; if( sort ) arr = this.OrderBy(comparator); var rt = []; comparator = Array.GetComparator(comparator); if( arr.length > 1 ) if( comparator(arr[0], arr[1]) ) rt.push( arr[0] ); for(var i=0; i this.MaxBorderSize ) { size1 = this.MaxBorderSize -1; size2 = 0; } else if( size2 > this.MaxBorderSize ) { size2 = this.MaxBorderSize -1; size1 = 0; } this.CropArea1.style.height = size1 + 'px'; this.CropArea3.style.height = size2 + 'px'; } this.UpdatePositionV = function(x, y) { if( this.X === null ) this.X = x; var diffX = x - this.X; if( !diffX ) return; var size1 = this.CurrentWidth + diffX; var size2 = this.MaxBorderSize - size1; if( size1 > this.MaxBorderSize ) { size1 = this.MaxBorderSize -1; size2 = 0; } else if( size2 > this.MaxBorderSize ) { size2 = this.MaxBorderSize -1; size1 = 0; } this.CropArea1.style.width = size1 + 'px'; this.CropArea3.style.width = size2 + 'px'; } this.CreateCropArea = function() { var v1 = this.ImageControl.height / this.Height; var v2 = this.ImageControl.width / this.Width; //Não requer crop, imagem perfeita if( v1 == v2 ) { this.CropType = 'None'; return; } if( this.TestSize && (this.ImageControl.height < this.Height || this.ImageControl.width < this.Width) ) { this.ImageControl.style.display = 'none'; alert(String.Format('Tamanho insuficiente para crop.\\r\\nA imagem precisa ser maior ou igual a (H:{0},W:{1})', this.Height, this.Width)); return; } var vMin = Math.min(v1, v2); var vMax = Math.max(v1, v2); $(id+'Image').style.height = (this.ImageControl.height/vMin) + 'px'; $(id+'Image').style.width = (this.ImageControl.width/vMin) + 'px'; this.ImageControl.width = (this.ImageControl.width/vMin); if( vMin == v1 ) this.CreateCropAreaV(); else this.CreateCropAreaH(); } this.CreateCropAreaH = function() { this.CropType = 'Horizontal'; var placeHolder = $(id+'PlaceHolder'); placeHolder.innerHTML = String.Format( "", id, page.ResolveUrl(resourcePath).TrimEnd('/') ); this.Container = $('__'+id); this.CropArea1 = $('__c1_'+id); this.CropArea2 = $('__c2_'+id); this.CropArea3 = $('__c3_'+id); var size = ((this.ImageControl.clientHeight - this.Height)/2); this.CropArea1.style.height = size + 'px'; this.CropArea1.style.width = this.ImageControl.width + 'px'; this.CropArea2.style.height = (this.ImageControl.clientHeight - ((this.ImageControl.clientHeight - this.Height))) + 'px'; this.CropArea2.style.width = this.ImageControl.width + 'px'; this.CropArea3.style.height = size + 'px'; this.CropArea3.style.width = this.ImageControl.width + 'px'; this.Container.style.display = String.Empty; this.MaxBorderSize = size*2; this.UpdatePosition = this.UpdatePositionH; this.CropArea1.style.float = ''; this.CropArea2.style.float = ''; this.CropArea3.style.float = ''; } this.CreateCropAreaV = function() { this.CropType = 'Vertical'; $(id+'PlaceHolder').innerHTML = String.Format( "", id, page.ResolveUrl(resourcePath).TrimEnd('/') ); this.Container = $('__'+id); this.CropArea1 = $('__c1_'+id); this.CropArea2 = $('__c2_'+id); this.CropArea3 = $('__c3_'+id); var size = ((this.ImageControl.clientWidth - this.Width)/2); this.CropArea1.style.width = size + 'px'; this.CropArea1.style.height = this.ImageControl.height + 'px'; this.CropArea2.style.width = (this.ImageControl.width - (size*2)) + 'px'; this.CropArea2.style.height = this.ImageControl.height + 'px'; this.CropArea3.style.width = size + 'px'; this.CropArea3.style.height = this.ImageControl.height + 'px'; this.Container.style.display = String.Empty; this.MaxBorderSize = size*2; this.UpdatePosition = this.UpdatePositionV; } this.GenerateImage = function(serverPath, ErrorCallBack) { var startAt = 0; if( this.CropType == 'Vertical' ) startAt = parseInt(this.CropArea1.style.width); else if( this.CropType == 'Horizontal' ) startAt = parseInt(this.CropArea1.style.height); Ajax.ImageCropperGenerateImage( this.ServerPath, serverPath, this.CropType, this.Height, this.Width, startAt, ErrorCallBack || EndGenerateImage ); } function EndGenerateImage(ex) { if(ex) alert( ex ); } } IAS.ImageCropper.RegisterControl = function(id, height, width, resourcePath) { if( !IAS.ImageCropper.Controls ) IAS.ImageCropper.Controls = {}; var ctrl = new IAS.ImageCropper(id, height, width, resourcePath); page[id] = IAS.ImageCropper.Controls[id] = ctrl; } IAS.ImageCropper.MouseHook = function(id, value) { page[id].X = null; page[id].Y = null; page[id].CurrentHeight = parseInt(page[id].CropArea1.style.height); page[id].CurrentWidth = parseInt(page[id].CropArea1.style.width); if( value ) page.CaptureMouseMove( function(x, y){ page[id].UpdatePosition(x,y) } ); else page.StopCaptureMouseMove(); }//ImageCropper //PriorityAttribute page.ApplicationName = '';