function bid(id)
{

	if(!logged_in)
		document.location = BASE_URL + 'register';
	else if(!bid_count)
		alert('Please purchase more bids before bidding.');
//	else if(enforce_daily)
//		alert("Congratulations!!\r\n\r\n You have reached your maximum auction wins for the day.\r\n\r\n  Thank you for your business, we will see you tomorrow!");
//	else if(enforce_monthly)
//		alert("Congratulations!!\r\n\r\n You have reached your maximum auction wins for the last 30 days.\r\n\r\n Thank you for you business, we will see you tomorrow!");
	else if($('bid_btn'+id).title == 'active')
	{
		var req = new Request({
				link: 'chain',
				method: 'get',
				url: BASE_PATH + 'bid/index/id/'+id,
				//update: $('test'+id),
				onComplete: function(response){
					 var chunk = response.split('|');

					if(chunk[0] == 'enforce')
					{
						Mediabox.open(BASE_URL + 'auction/enforce', 'Win Limit Reached!', '525 225');
					}
					else if(chunk[0] == 'verify')
					{
						Mediabox.open(BASE_URL + 'auction/verify', 'Verify Your Account', '525 325');
					}
					else if(chunk[0] == 'platinum')
					{
						Mediabox.open(BASE_URL + 'auction/platinum', 'Go Platinum!', '545 445');
					}
					else
					{
						 var current_bid = bids[id];
						 bids[id] = chunk[0];//(bids[id]*1 + .01);
						 bidders[id] = chunk[1];
						 bid_count = chunk[2]*1;

						 $('bid_count').innerHTML = bid_count;
						 if(bid_count <= 10)
							$('bid_count').addClass('red');

						if(chunk[3]*1 == 1)//turbo auction
						{
							//$('bid'+id).innerHTML = 'Your Bids: ' + chunk[4];
						}
						else
						{
							$('bid'+id).innerHTML = '$' + (bids[id]*1).toFixed(2);
							$('bidder'+id).innerHTML = bidders[id];
							if(current_bid != bids[id])
							{
								flashBid(id);
								if(product_page)
									handleProductPage(id,(bids[id]*1).toFixed(2),true);
							}
							topSauce(id,true);
						}
					}

					if(bid_count == 0)
						toggleAuctions('off');
				}
		}).send();
	}
}

function toggleAuctions(typ)
{
	var dis = (typ == 'on') ? 0 : 1;

	$$('a.bid_btn_holder').each(function(el) {
		el.title = (dis) ? 'disabled' : 'active';
	});
}

function topSauce(id,tf)
{
	//handleBigs(id,0);
	$('topsauce_'+id).style.display = (tf) ? 'block' : 'none';
}

var timeFormat = new Class({
    Implements: [Options],
    options: {
        hr_factor : 3600,
        min_factor : 60
    },

    getTime : function(theNumber) {
	hrs= Math.floor(theNumber / this.options.hr_factor) ;
	theNumber -= hrs * this.options.hr_factor;

	minutes = Math.floor(theNumber / this.options.min_factor);
	theNumber -= minutes * this.options.min_factor;

	if (hrs<10) hrs = "0"+hrs;
	if (minutes<10) minutes = "0"+minutes;
	if (theNumber<10) theNumber = "0"+theNumber;

	return hrs+":"+minutes+":"+theNumber;
    }
});

function enforce()
{
	var req = new Request({
		link: 'chain',
		method: 'get',
		url: BASE_PATH + 'enforce',
		onComplete: function(response){
			var chunks = response.split('|');
			if(chunks[0] == 'refresh')
			{
				 hardRefresh();
				 return;
			}
//			enforce_daily = chunks[0];
//			enforce_monthly = chunks[1];
		}
	}).send();
}

function balance()
{
	var req = new Request({
		link: 'chain',
		method: 'get',
		url: BASE_PATH + 'balance',
		data : {
			//'auction_list' : auctions.clean().join(',')
		},
		onComplete: function(response){
			if(response)
			{
				var pieces = response.split(';');
				for(i=0;i<pieces.length;i++)
				{
					if(product_page)
						document.location = BASE_URL;

					var chunk = pieces[i].split('|');
					var auc_id = chunk[0];
					var active_id = chunk[1];
					$('auction_'+auc_id).set('id','auction_'+active_id);
					var req2 = new Request.HTML({
						link: 'chain',
						method: 'get',
						url: BASE_PATH + 'new',
						data : {
							'id' : active_id
						},
						update: $('auction_'+active_id),
						onComplete: function(response){
							//auctions.splice(auc_id,1).clean();
							//auctions.erase(auc_id);
						}
					}).send();
				}

				var req = new Request.HTML({
					link: 'chain',
					method: 'get',
					url: BASE_PATH + 'nextup',
					update: $('nextups'),
					onComplete: function(response){
					}
				}).send();

				var req = new Request.HTML({
					link: 'chain',
					method: 'get',
					url: BASE_PATH + 'recent',
					update: $('recents'),
					onComplete: function(response){
					}
				}).send();
			}
		}
	}).send();
}

function nextAuction()
{
	setTimeout('nextAuction()',10000);
	balance();
}

function runEnforce()
{
	setTimeout('runEnforce()',30000);
	enforce();
}

function run()
{
    timeout_id = setTimeout('run()',1000);
    call();
}

function stop()
{
    clearTimeout(timeout_id);
}

function flashBid(id)
{
    $('bid'+id).set('morph', { link: 'chain',duration: 300 });
	if(product_page)
		$('bid'+id).morph('.highlight_prod').morph('.bid_prod');
	else
		$('bid'+id).morph('.highlight').morph('.bid');
}

function hardRefresh()
{
	document.location = BASE_URL;
}

function loadNewAuction(id)
{
	var req = new Request({
		link: 'chain',
		method: 'get',
		url: BASE_PATH + 'next',
		data : {
			'id' : id
		},
		onComplete: function(response){
			var pieces = response.split('|');
			var current_id = pieces[0];
			var next_id = pieces[1];
			var pos = pieces[2];

			var req2 = new Request.HTML({
				link: 'chain',
				method: 'get',
				url: BASE_PATH + 'new',
				data : {
					'current_id' : current_id,
					'next_id' : next_id,
					'pos' : pos
				},
				update: $('auction_'+current_id),
				onComplete: function(response){
					$('auction_'+current_id).set('id','auction_'+next_id);
				}
			}).send();
		}
	}).send();
}
function handleBigs(id,t)
{
	var t_time = 'turbo';
	//var t_time = 'instruct';

	if(t == 4)
		t_time = 'go';
	else if(t <= -16)
		t_time = 'winner';
	else if(t <= -2)
		t_time = 'loader';
	else if(t <= 0)
		t_time = 'time_up';
	else if(t <= 3)
		t_time = t;
	else if(t <= 8)
		t_time = 'set';
	else if(t <= 15)
		t_time = 'ready';

	if(t_time == 'loader' || t_time == 'winner')
	{
		if(t >= -3 || t_time == 'winner')
		{
			$('prod_img'+id).innerHTML = '<div style="width:100px;height:100px;">&nbsp;</div>';
			$('turbo_numbers_'+id).innerHTML = '<div class="num_' + t_time + '"><div id="turbo_auc_winner"></div></div>';
		}
	}
	else
		$('turbo_numbers_'+id).innerHTML = '<div class="num_' + t_time + '"></div>';
}

function handleProductPage(a_id,bid,diff)
{
	$('bid'+a_id+'_prod').innerHTML = '$' + bid;
	$('savings'+a_id).innerHTML = '$' + (msrp-bid).toFixed(2);

	if(diff)
	{
		var req = new Request.HTML({
			link: 'chain',
			method: 'get',
			data: {
				id : a_id
			},
			url: BASE_PATH + 'history',
			update: $('recent_activity'),
			onComplete: function(response){

				}
		}).send();
	}
}

function call()
{
    var req = new Request({
                link: 'chain',
                method: 'get',
                url: BASE_PATH + 'update/',
                data : {
                    //all_times : times.join(';')
                },
                //update: $('clock1'),
                onComplete: function(response){
                     //alert(response);
                     var pieces = response.split(';');

                     for(i=0;i<pieces.length;i++)
                     {
						 var chunk = pieces[i].split('|');
                         var auc_id = chunk[0];
						 //if(chunk[3]*1 <= 0)
							// alert(chunk);

						 if($defined($('auction_'+auc_id)))
						 {
							var do_blink = (bids[auc_id]*1 != chunk[1]*1);
							var dis_btn = true;
							var remaining = chunk[3];
							var is_turbo = (chunk[4]*1 == 1) ? true : false;
							bids[auc_id] = chunk[1];
							bidders[auc_id] = chunk[2];
							times[auc_id] = chunk[3];

							if(is_turbo)
							{
								//handleBigs(auc_id,times[auc_id]);
								//$('clock'+auc_id).innerHTML = 'Your Bids: ' + chunk[5];
								//$('bid'+auc_id).innerHTML = 'Your&nbsp;Bids: ' + chunk[5];
								//$('bid'+auc_id).innerHTML = '$' + (bids[auc_id]*1).toFixed(2);

								if(times[auc_id] == 6)
									remaining = 'READY';
								else if(times[auc_id] == 5)
									remaining = 'SET';
								else if(times[auc_id] > 6)
									remaining = 'GET READY';


								//$('bidder'+auc_id).innerHTML = t.getTime(times[auc_id]);

								if(times[auc_id] <= 4 && times[auc_id] > 0)
								{
									dis_btn = false;
									if(times[auc_id] == 4)
										remaining = 'GO!';
									else
										remaining = t.getTime(times[auc_id]);
								}
								else if(times[auc_id] <= 0)
								{
									remaining = 'TIMES UP!';
									if(times[auc_id] <= -2 && times[auc_id] >= -8)
										handleBigs(auc_id,times[auc_id]);
									if(times[auc_id] <= -16 && $defined(chunk[6]) && $defined(chunk[7]))
									{
										handleBigs(auc_id,times[auc_id]);
										var win_name = $defined(chunk[6]) ? chunk[6] : ' ';
										var win_bids = $defined(chunk[7]) ? chunk[7] : ' ';
										$('turbo_auc_winner').innerHTML = '<div>' + win_name + '<br />' + win_bids + ' bids</div>';
									}
									else if(times[auc_id] <= -11 && times[auc_id] > -16)
									{
										$('bid'+auc_id).innerHTML = 'Your&nbsp;Bids: ' + chunk[5];
									}
								}
								$('clock'+auc_id).innerHTML = remaining;
							}
							else
							{
								if((chunk[2]+'').toLowerCase() != username && $('topsauce_'+auc_id).style.display == 'block')
									topSauce(auc_id,false);

								if(times[auc_id] < 0)
								{
									if(times[auc_id] < -3)
									{
										remaining = 'SOLD';
									}
									else
									{
										remaining = 'ONE';
									}
								}
								else
								{
									switch(times[auc_id]*1)
									{
										case 3 : remaining = 'THREE'; break;
										case 2 : remaining = 'TWO'; break;
										case 1 : remaining = 'ONE'; break;
										case 0 : remaining = 'ONE'; break;
										default: remaining = t.getTime(times[auc_id]); break;
									}
									if((chunk[2]+'').toLowerCase() != username)
										dis_btn = false;
								}

								$('bid_btn'+auc_id).title = (dis_btn) ? 'disabled' : 'active';

								//$('bid_btn'+auc_id).disabled = dis_btn;

								$('clock'+auc_id).innerHTML = remaining;
								$('bid'+auc_id).innerHTML = '$' + (bids[auc_id]*1).toFixed(2);
								if(product_page)
									handleProductPage(auc_id,(bids[auc_id]*1).toFixed(2),do_blink);
								$('bidder'+auc_id).innerHTML = (bids[auc_id]*1 > 0) ? bidders[auc_id] : 'No Bids';

								if(times[auc_id] <= 10)
									$('clock'+auc_id).addClass('red');
								else
									$('clock'+auc_id).removeClass('red');

								if(do_blink)
								{
									flashBid(auc_id);
								}
							}//else standard auction

							$('bid_btn'+auc_id).title = (dis_btn) ? 'disabled' : 'active';
						 }//if $defined
                     }//for
                }
        }).send();
}

function resetBidCount(bid)
{
	bid_count = bid;
}