Event.observe(window, 'load', initOnLoad, false); var diff_server_client = 0; function initOnLoad() { requestTime(); $$('span.countdown').each( function( span ) { // Auktion endet 26.11.2009 18:00:00 Uhr var data = span.title.substr( 14, 19 ).split( " " ); var date = data[0].split( "." ); var time = data[1].split( ":" ); new CountDown( span.id, new Date( parseInt( date[2], 10 ), parseInt( date[1], 10 ) - 1, parseInt( date[0], 10 ), parseInt( time[0], 10 ), parseInt( time[1], 10 ), parseInt( time[2], 10 ), 0 ).getTime() ); } ); } function requestTime() { new Ajax.Request( '/ajax/microtime.php', { onComplete: getTime, method: 'get', parameters: { 't': new Date().getTime() } } ); } function getTime( transport ) { var server = transport.responseText; var send = transport.request.parameters.t; var receive = new Date().getTime(); diff_server_client = server - ( ( send + receive ) / 2 ); } var CountDown = Class.create( { initialize: function( span_id, end_time ) { this.end_time = end_time; this.span_id = span_id; this.intervalID = window.setInterval( function() { this.updateText(); }.bind( this ), 500 ); }, updateText: function() { var diff = this.end_time - ( new Date().getTime() + diff_server_client ); if ( diff > 0 ) { var d = Math.floor( diff / ( 1000 * 60 * 60 * 24 ) ); diff = diff - d * 1000 * 60 * 60 * 24; var h = Math.floor( diff / ( 1000 * 60 * 60 ) ); diff = diff - h * 1000 * 60 * 60; var m = Math.floor( diff / ( 1000 * 60 ) ); diff = diff - m * 1000 * 60; var s = Math.floor( diff / 1000 ); var e = d == 1 ? '' : 'e'; $(this.span_id).update( d + " Tag" + e + " " + h + " Std " + m + " Min " + s + " Sek " ); } else { $(this.span_id).update( 'Auktion ist beendet!' ); window.clearInterval( this.intervalId ); } } } ); function checkBid( elem ) { elem.value = elem.value.gsub( /\./, ',' ); elem.value = elem.value.gsub( /[^0-9,]/, '' ); var data = elem.value.split( ',' ); if ( data[1] != undefined && data[1].length > 2 ) { elem.value = data[0] + "," + data[1].substr( 0, 2 ); } } function submitBid( form ) { if( form.elements['bid'].value.length == 0 ) { return false; } var data = form.elements['bid'].value.split( ',' ); if ( data[1] == undefined ) { form.elements['bid'].value = form.elements['bid'].value + ",00"; } else if ( data[1].length == 1 ) { form.elements['bid'].value = form.elements['bid'].value + "0"; } return confirm( "Gebot über " + form.elements['bid'].value + " Euro abgeben?" ); }