/** * @author pviojo */ Function.prototype.closure = function(scope){ return (function(fn,scope){ return function(o){ return fn.call(scope,o); } }(this,scope)) } String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); }; /** * @author pviojo */ var Listener = new Class({ suscribe:function(e,fn,scope){ if (!this.listenersEv){ this.listenersEv={}; } if (!this.listenersEv[e]){ this.listenersEv[e]=[]; } this.listenersEv[e].push({fn:fn,scope:scope}); }, fire:function(e, data){ if (data == undefined){ data = null; } if (this.listenersEv && this.listenersEv[e]){ var lst = this.listenersEv[e]; var n = lst.length; for (var i = 0; i < n; i++){ if (lst[i].fn && lst[i].scope){ lst[i].fn.call( lst[i].scope, data ); } } } } }); /** * @author pviojo */ var ListenerObj = { suscribe:function(e,fn,scope){ if (!this.listenersEv){ this.listenersEv={}; } if (!this.listenersEv[e]){ this.listenersEv[e]=[]; } this.listenersEv[e].push({fn:fn,scope:scope}); }, fire:function(e, data){ if (data == undefined){ data = null; } if (this.listenersEv && this.listenersEv[e]){ var lst = this.listenersEv[e]; var n = lst.length; for (var i = 0; i < n; i++){ if (lst[i].fn && lst[i].scope){ lst[i].fn.call( lst[i].scope, data ); } } } } }; /** * Funcionalidades comunes a todos los controladores: * - Multiples Páginas * * @param {Object} * id */ var CommonController = Listener.extend({ selectedPage:"Home", showLoading:function(){ $.blockUI(); }, hideLoading:function(){ $.unblockUI(); }, hidePage:function(id){ if ($(this.mainContainer+" .page"+id).length > 0) { $(this.mainContainer+" .page"+this.selectedPage).hide(); this.selectedPage = null; } }, showPage:function(id) { if ($(this.mainContainer+" .page"+id).length > 0) { if(this.selectedPage && this.selectedPage!=id){ $(this.mainContainer+" .page"+this.selectedPage).hide() } if (!this.selectedPage || this.selectedPage!=id){ $(this.mainContainer+" .page"+id).show() this.selectedPage = id; } } }, createPage:function(id){ if ($(this.mainContainer+" .page"+id).length==0){ $(this.mainContainer).append('
'); } return this.getPage(id); }, getPage:function(id){ return $(this.mainContainer+" .page"+id); } }) var ObjectUI = { loadDeclarativeOptions:function(obj){ aux={}; for(i in this.settings){ if (obj.getAttribute && obj.getAttribute(i)){ aux[i] = obj.getAttribute(i).trim(); if (parseFloat(aux[i])){ aux[i] = parseFloat(aux[i]); } if(aux[i]=="false"){ aux[i] = false; } if(aux[i]=="true"){ aux[i] = true; } } } return aux; } } var processTemplate=function(template,item){ var re = new RegExp("\{[^\}]*\}","gim") var tokens=template.match(re); for (var i = 0; i < tokens.length; i++){ if (typeof(tokens[i])=="string" && tokens[i]!=template){ var token=tokens[i].replace("{","").replace("}",""); var a = token.split("."); baseItem = item; for (var j = 0; j < a.length; j++){ if (baseItem[a[j]]){ baseItem=baseItem[a[j]]; } else { baseItem=""; break; } } template = template.replace(tokens[i],baseItem); } } return template; } if (svweb == undefined){ var svweb = {}; } package = function() { var a=arguments; var o=null; var i, j, d; for (i=0; i(1000*Logger.limit.time)) || (Logger._msgsToLog[i].length>=Logger.limit.n)){ Logger._sendToServer(); } }, _sendToServer:function(){ Logger._lastLoggedTime = (new Date().getTime()); $.ajax( { type:"POST", url:Logger.logUrl, data:Logger._msgsToLog, scope:this, global:false, success:function(o){ } } ) Logger._msgsToLog = {}; } } package("controllers.common"); svweb.controllers.common.MultiActionController = CommonController.extend({ initialize:function(options){ this.serviceParamName = "_action"; this._initialize(options); this.selectedPage=StringUtils.capitalize(options.method); }, /* * Must be implemented */ _initialize:function(options){}, load:function(options){ var pageName = StringUtils.capitalize(options.method); var targetUrl; if (options.url){ var targetUrl = options.url; } else { var targetUrl = this.url+"?" + this.serviceParamName + "=" + options.method; } var type = "POST"; if (options.type){ type = options.type; } this.showLoading(), $.ajax( { type:type, url:targetUrl, data:options.data || {}, scope:this, expects:".page"+pageName, success:function(o){ $('#JT').remove(); var page = this.scope.createPage(pageName) page.html(this.scope.getExpected(o, this.expects)); this.scope.showPage(pageName); // this.scope._initialize({method:StringUtils.uncapitalize(pageName)}); this.scope._initialize({method:StringUtils.uncapitalize(pageName), flagCambioPlan:options.flagCambioPlan}); }, complete:function(r,s){ this.scope.hideLoading(); } } ) }, getExpected:function(o,expects,includeRoot){ var obj = $("#tmp"); obj[0].innerHTML=o; var html = $(expects,obj); if (!includeRoot && html.length>0){ html = html.children() } obj.empty(); return html; } }); /** * Parse an uri returning an URI object * * @param {String} * uri String * @return {URI} URI Object */ var parseUri = function (source) { var o = parseUri.options, value = o.parser[o.strictMode ? "strict" : "loose"].exec(source); for (var i = 0, uri = {}; i < 14; i++) { uri[o.key[i]] = value[i] || ""; } uri[o.q.name] = {}; uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { if ($1) uri[o.q.name][$1] = $2; }); return uri; }; parseUri.options = { strictMode: false, key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], q: { name: "queryKey", parser: /(?=.)&?([^&=]*)=?([^&]*)/g }, parser: { strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ } }; /** * String Utils functions * */ var StringUtils = { /** * Capitalize an string * * @param {String} * str * @return {String} */ capitalize:function(str){ if (str.length>0){ return str.substring(0,1).toUpperCase()+str.substring(1); } return str; }, /** * UnCapitalize an string * * @param {String} * str * @return {String} */ uncapitalize:function(str){ if (str.length>0){ return str.substring(0,1).toLowerCase()+str.substring(1); } return str; }, /** * Converts an lower_case_underscore_separated to CamelCase * * @param {String} * str * @return {String} */ camelize:function(str){ var tokens = str.split(/_/); var aux=""; for(var i=0;i 0){ var selOption = $("option:eq(0)",obj); obj.empty(); if (selOption){ obj.append(selOption); } else { if (options.useDefault){ obj.append(''); } } if (options.data){ for (var i = 0; i < options.data.length; i++) { obj.append(''); } } } $(obj)[0].selectedIndex = 0; } } var startLoadingComponent = function (options){ if (options.obj && $(options.obj).length>0 && $(".cmp_loading",$(options.obj).parent()).length==0){ $(options.obj).after(''); } } var endLoadingComponent = function (options){ if (options.obj && $(options.obj).length>0){ $(".cmp_loading",$(options.obj).parent()).remove(); } } /** * Compara dos objetos */ var equals = function(a,b){ if (!a || !b){ return false; } for(i in a){ if (a[i]){ if (!b[i] || b[i]!=a[i]){ return false; } } } for(i in b){ if (b[i]){ if (!a[i] || b[i]!=a[i]){ return false; } } } return true; } function getCenter(sel){ return { top:parseInt((($(window).height()-$(sel).height())/2)+$(window).scrollTop()), left:parseInt((($(window).width()-$(sel).width())/2)+$(window).scrollLeft())+10 }; } function setCenter(sel){ var pos = getCenter(sel); $(sel).css({top:pos.top,left:pos.left}); }; /* * Marca un hit en la pgina actual -- Corrección al código certifica pviojo * 2007-11-06 */ function customTagCertifica(cnt, iSiteId, sPath) { $(cnt).html('Certifica.com') } /** * Carga un combobox */ function loadSelect(obj, data){ if ($(obj).length > 0){ var selOption = $("option:eq(0)", obj); $(obj).empty(); if (selOption){ $(obj).append(selOption); } for (var i = 0; i < data.length; i++) { $(obj).append(''); } $(obj)[0].selectedIndex = 0; if ($(obj).attr("onLoadValue")){ $(obj).val($(obj).attr("onLoadValue")); $(obj).attr("onLoadValue",null); } } } /** * Determina si un objeto es un array */ function isArray(testObject) { return testObject && !(testObject.propertyIsEnumerable('length')) && typeof testObject === 'object' && typeof testObject.length === 'number'; } function formatMoney(strValue, useDec, moneyChar){ if (moneyChar==undefined){ moneyChar = "$"; } if (useDec) { return _formatCurrency2Dec(strValue,".",moneyChar); } return _formatCurrency(strValue,".",moneyChar); } function _formatCurrency(strValue,thousandsSep,moneyChar) { if(thousandsSep==undefined){ thousandsSep = "."; } strValue = strValue.toString().replace(".","").replace(",","."); dblValue = parseFloat(strValue); var k=Math.pow(10,0); blnSign = (dblValue == (dblValue = Math.abs(dblValue))); dblValue = Math.floor(dblValue*k+0.50000000001); dblValue = Math.floor(dblValue/k).toString(); for (var i = 0; i < Math.floor((dblValue.length-(1+i))/3); i++) dblValue = dblValue.substring(0,dblValue.length-(4*i+3))+thousandsSep+ dblValue.substring(dblValue.length-(4*i+3)); return (((moneyChar)?moneyChar:'')+((blnSign)?'':'-')+ dblValue); } function _formatCurrency2Dec(strValue,thousandsSep,moneyChar) { if(thousandsSep==undefined){ thousandsSep = "."; } strValue = strValue.toString().replace(".","").replace(",","."); dblValue = parseFloat(strValue); var k=Math.pow(10,2); blnSign = (dblValue == (dblValue = Math.abs(dblValue))); dblValue = Math.floor(dblValue*k+0.50000000001); intCents = dblValue%k; strCents = intCents.toString(); dblValue = Math.floor(dblValue/k).toString(); if(intCents<10) strCents = "0" + strCents; for (var i = 0; i < Math.floor((dblValue.length-(1+i))/3); i++) dblValue = dblValue.substring(0,dblValue.length-(4*i+3))+thousandsSep+ dblValue.substring(dblValue.length-(4*i+3)); if (dblValue == "0") { dblValue = "" }; return (((moneyChar)?moneyChar:'')+((blnSign)?'':'-')+ dblValue + ',' + strCents); } function replaceAll(Source,stringToFind,stringToReplace){ var temp = Source; var index = temp.indexOf(stringToFind); while(index != -1){ temp = temp.replace(stringToFind,stringToReplace); index = temp.indexOf(stringToFind); } return temp; } function convertirUnicode(string) { string=replaceAll(string,'á','\u00E1'); string=replaceAll(string,'Á','\u00C1'); string=replaceAll(string,'é','\u00E9'); string=replaceAll(string,'É','\u00C9'); string=replaceAll(string,'í','\u00ED'); string=replaceAll(string,'Í','\u00CD'); string=replaceAll(string,'ó','\u00F3'); string=replaceAll(string,'Ó','\u00D3'); string=replaceAll(string,'ú','\u00FA'); string=replaceAll(string,'Ú','\u00DA'); string=replaceAll(string,'ñ','\u00F1'); string=replaceAll(string,'Ñ','\u00D1'); return string; } function eliminarDivContratarServicioPrincipal() { $(".pageContratarSPpaso1").remove(); $(".pageContratarSPpaso2").remove(); $(".pageContratarSPpaso3").remove(); $(".pageContratarSPpaso4").remove(); $(".pageContratarSPpaso5").remove(); $(".pageContratarSPpaso6").remove(); $(".pageContratarSPpaso7").remove(); $(".pageContratarSPpaso8").remove(); $(".pageContratarSPpaso9").remove(); } function eliminarDivOtroDomicilio() { $(".pageOtroDomicilio01").remove(); $(".pageOtroDomicilio02").remove(); $(".pageOtroDomicilio03").remove(); $(".pageOtroDomicilio04").remove(); $(".pageOtroDomicilio05").remove(); $(".pageOtroDomicilio06").remove(); $(".pageOtroDomicilio07").remove(); $(".pageOtroDomicilio08").remove(); $(".pageOtroDomicilio09").remove(); $(".pageOtroDomicilio10").remove(); $(".pageOtroDomicilio11").remove(); } function eliminarDivCambioDePlan() { $(".pageCambiarPlan01").remove(); $(".pageCambiarPlan02").remove(); $(".pageCambiarPlan03").remove(); $(".pageCambiarPlan04").remove(); $(".pageCambiarPlan05").remove(); $(".pageCambiarPlan06").remove(); $(".pageCambiarPlan07").remove(); } function eliminarDivDboxMasCanales() { $(".pageContratarDboxPaso1").remove(); $(".pageContratarDboxPaso2").remove(); $(".pageContratarDboxPaso3").remove(); $(".pageContratarDboxPaso4").remove(); $(".pageContratarDboxPaso5").remove(); $(".pageContratarDboxPaso6").remove(); } UTF8 = { encode: function(s){ for(var c, i = -1, l = (s = s.split("")).length, o = String.fromCharCode; ++i < l; s[i] = (c = s[i].charCodeAt(0)) >= 127 ? o(0xc0 | (c >>> 6)) + o(0x80 | (c & 0x3f)) : s[i] ); return s.join(""); }, decode: function(s){ for(var a, b, i = -1, l = (s = s.split("")).length, o = String.fromCharCode, c = "charCodeAt"; ++i < l; ((a = s[i][c](0)) & 0x80) && (s[i] = (a & 0xfc) == 0xc0 && ((b = s[i + 1][c](0)) & 0xc0) == 0x80 ? o(((a & 0x03) << 6) + (b & 0x3f)) : o(128), s[++i] = "") ); return s.join(""); } } function validarRutTipoDocumento( Objeto ) { var tmpstr = ""; var intlargo = Objeto.value if(String(Objeto.value).lastIndexOf("-") == -1) { return false; } if (intlargo.length> 0) { crut = Objeto.value largo = crut.length; if ( largo <2 ) { //alert('rut inválido') //Objeto.focus() return false; } for ( i=0; i 2 ) rut = crut.substring(0, largo - 1); else rut = crut.charAt(0); dv = crut.charAt(largo-1); if ( rut == null || dv == null ) return 0; var dvr = '0'; suma = 0; mul = 2; for (i= rut.length-1 ; i>= 0; i--) { suma = suma + rut.charAt(i) * mul; if (mul == 7) mul = 2; else mul++; } res = suma % 11; if (res==1) dvr = 'k'; else if (res==0) dvr = '0'; else { dvi = 11-res; dvr = dvi + ""; } if ( dvr != dv.toLowerCase() ) { //alert('El Rut Ingreso es Invalido') //Objeto.focus() return false; } //alert('El Rut Ingresado es Correcto!') return true; } } ;