﻿function SetAutoTick()
{
	TickAll();
}

clearit = 0;
function TickAll()
{
	clearit = setTimeout('TickAll()', 1000);	
	DoTick();
}

function GotLotData(res)
{
//    alert(res.value);
//    alert(res.error.Message);
    var response = res.value;   
    if (response == null)
    {
        return;
    }
    
    var theItemData = response.split(';');
    var j=0;

	var FIELD_SIZE = 12;
	var len = theItemData.length - 1;
	var numItems = Math.floor((len / FIELD_SIZE));
    var vusername = document.getElementById("loginuser").value;
    var rookie = document.getElementById("rookie").value;
    var limit = document.getElementById("limit").value;
    var currentLotId = new Array();
    
    var numBidsLeft = document.getElementById("NumberBidsLeft");
    if (numBidsLeft != null)
    {
        numBidsLeft.innerHTML = theItemData[j++];
    }
    else
    {
        j++;
    }
    
    rookie = theItemData[j++];
    limit = theItemData[j++];
        
    for (i = 0; i < numItems; i++)
    {
        currentLotId[i] = theItemData[3 + (i * FIELD_SIZE)];
    }
    
    var numFreeMainSpaces = 0;
    var freeMainSpaces = new Array(50);
	for (i = 0; i < lotAuctionId.length; i++)
	{
	    var found = false;
	    if ((lotAuctionId[i] != undefined) && (lotAuctionId[i] != -1))
	    {
	        for (k=0; k<currentLotId.length; k++)
	        {
	            if (lotAuctionId[i] == currentLotId[k])
	            {
	                document.getElementById("BB_DAT"+i).style.display="";
	                found = true;
	                break;
	            }
	        }
	        
	        if (!found)
	        {
                lotAuctionId[i] = -1;
                document.getElementById("IMAGE_DAT"+i).src = "images/comingsoon.png";
                document.getElementById("TITLE_DAT"+i).innerHTML = "";
                document.getElementById("IMAGE_LINK_DAT"+i).href="#";
		        document.getElementById("TOPB_DAT"+i).style.visibility="hidden";
		        document.getElementById("HIGHBID_DAT"+i).style.zIndex="-1";
		        document.getElementById("HIGHBID_DAT"+i).style.visibility="hidden";
	            document.getElementById("TIME_DAT"+i).innerHTML = "";
	            document.getElementById("ROOKIE_DAT"+i).style.display="none";
	            document.getElementById("COLLECTIBLE_DAT"+i).style.display="none";
	            document.getElementById("SHORT_DESC_DAT"+1).innerHTML="";
	            document.getElementById("RETAIL_DAT"+i).innerHTML="";
	            document.getElementById("HIGH_BIDDER_DAT"+i).innerHTML="";
	            document.getElementById("BID_INCREMENT_DAT"+i).innerHTML="";
	            
	            if (i<numberMainLots)
	            {
	                freeMainSpaces[numFreeMainSpaces++]=i;
	            }
	        }
	    }
	}

    var currentFreeMainSpace=0;
    for (i=0;i<numItems;i++)
	{
        var position = -1;
		var id = theItemData[j++];
		currentLotId[i] = id;
	    for (k=0; k < lotAuctionId.length; k++)
	    {
	        if (lotAuctionId[k] == id)
	        {
	            position = k;
	            
	            if ((position>=numberMainLots) && (numFreeMainSpaces>0))
	            {
	                position=freeMainSpaces[currentFreeMainSpace++];
	                switchLots(position, k, vusername);
	                numFreeMainSpaces--;
	                lotAuctionId[k] = -1;
                    document.getElementById("IMAGE_DAT"+k).src = "images/comingsoon.png";
                    document.getElementById("TITLE_DAT"+k).innerHTML = "";
                    document.getElementById("IMAGE_LINK_DAT"+k).href="#";
		            document.getElementById("TOPB_DAT"+k).style.visibility="hidden";
		            document.getElementById("HIGHBID_DAT"+k).style.zIndex="-1";
		            document.getElementById("HIGHBID_DAT"+k).style.visibility="hidden";
	                document.getElementById("TIME_DAT"+k).innerHTML = "";
	                document.getElementById("ROOKIE_DAT"+k).style.display="none";
	                document.getElementById("COLLECTIBLE_DAT"+k).style.display="none";
	                document.getElementById("SHORT_DESC_DAT"+1).innerHTML="";
	                document.getElementById("RETAIL_DAT"+k).innerHTML="";
	                document.getElementById("HIGH_BIDDER_DAT"+k).innerHTML="";
	                document.getElementById("BID_INCREMENT_DAT"+k).innerHTML="";
	            }
	            
	            break;
	        }
	    }
	    
	    if (position == -1)
	    {
	        for (k=0; k < lotAuctionId.length; k++)
	        {
	            if ((lotAuctionId[k]==undefined) || (lotAuctionId[k] == -1))
	            {
	                position=k;
	                break;
	            }
	        }
	    }
	    
		var previousAuctionId = lotAuctionId[position];
		var previousHighBidder = lotHighBidder[position];
		var previousHighBid = lotCurrBid[position];

	    lotAuctionId[position] = id;
	    lotTimeLeft[position] = theItemData[j++];
	    lotTitle[position] = theItemData[j++];
	    lotImage[position] = theItemData[j++];
	    lotCurrBid[position] = theItemData[j++];
	    lotNextBid[position] = theItemData[j++];
	    lotBidValue[position] = theItemData[j++];
	    lotHighBidder[position] = theItemData[j++];
	    lotRookie[position] = theItemData[j++];
	    lotCollectible[position] = theItemData[j++];
	    lotShortDesc[position] = theItemData[j++];
	    lotRetailPrice[position] = theItemData[j++];
	        
	    if ((previousAuctionId == undefined) || (previousAuctionId != lotAuctionId[position]))
	    {
            document.getElementById("IMAGE_DAT"+position).src = "LotImages/"+lotImage[position]+"_sm.jpeg";

            var t = document.createElement('div');
            t.innerHTML = "<a href='lotdetail.aspx?lotid="+lotAuctionId[position]+ "'>"+lotTitle[position]+"</a>";
            
            document.getElementById("TITLE_DAT"+position).appendChild(t);
            document.getElementById("IMAGE_LINK_DAT"+position).href = "lotdetail.aspx?lotid="+lotAuctionId[position];
            document.getElementById("SHORT_DESC_DAT"+position).innerHTML = lotShortDesc[position];
            document.getElementById("RETAIL_DAT"+position).innerHTML = lotRetailPrice[position];
            document.getElementById("HIGH_BIDDER_DAT"+position).innerHTML = lotHighBidder[position];
            document.getElementById("BID_INCREMENT_DAT"+position).innerHTML = lotBidValue[position];

	        if (lotRookie[position] == 1)
	        {
	            document.getElementById("ROOKIE_DAT"+position).style.display="";
	        }
	        else
	        {
	            document.getElementById("ROOKIE_DAT"+position).style.display="none";
	        }
    	    
	        if (lotCollectible[position] == 1)
	        {
	            document.getElementById("COLLECTIBLE_DAT"+position).style.display="";
	        }
	        else
	        {
	            document.getElementById("COLLECTIBLE_DAT"+position).style.display="none";
	        }
	    }
	    	    
		//Check to see if the Previous Bid is Different from the Current Bid.  If Different, Flash the new Price
		if (previousHighBid != lotCurrBid[position])
		{
			FlashPrice(position);
		}

        var displayBidType = 1;
        var myTime = lotTimeLeft[position];
	    if (!myTime || (myTime==undefined)) 
	    {
	        myTime = 0;
	    }
    	
    	var elemColor = (myTime < 10 ? "red" : "#000040");
    		
	    if (myTime == 2) 
	    {
		    thedisplay = "going...";
		    displayBidType = 1;
	    }
	    else if (myTime==1) 
	    {
		    thedisplay = "GOING...";
		    displayBidType = 1;
	    }
	    else if (myTime == 0) 
	    {
		    thedisplay = "GOING...";
		    displayBidType = 2;
	    }
	    else if (myTime < 0)
	    {
		    thedisplay = "Gone";
		    displayBidType = 2;
	    }
	    else
	    {
		    thedisplay = intToTime(myTime);
	    }
    	
	    if (lotAuctionId[position] == -1)
	    {
	        thedisplay = "";
	    }
    	
    	var elem = document.getElementById("TIME_DAT"+position);
	    elem.innerHTML = thedisplay;
	    elem.style.color = elemColor;
	
	    // I am the high bidder!
	    if ((lotHighBidder[position] == vusername) || (lotAuctionId[position] == -1))
		{
		    displayBidType = 2;
		    if (lotHighBidder[position] == vusername)
		    {
			    document.getElementById("TOPB_DAT"+position).style.visibility="visible";
			    document.getElementById("HIGHBID_DAT"+position).style.zIndex="3000";
			    document.getElementById("HIGHBID_DAT"+position).style.visibility="visible";
		    }
		    else
		    {
			    document.getElementById("TOPB_DAT"+position).style.visibility="hidden";
			    document.getElementById("HIGHBID_DAT"+position).style.zIndex="-1";
			    document.getElementById("HIGHBID_DAT"+position).style.visibility="hidden";
		    }
		}
		else
		{
		    document.getElementById("TOPB_DAT"+position).style.visibility="hidden";
		    document.getElementById("HIGHBID_DAT"+position).style.zIndex="-1";
		    document.getElementById("HIGHBID_DAT"+position).style.visibility="hidden";
		}
		
		if ((rookie == "0") && (lotRookie[position] == "1") && (document.getElementById("loginuser").value != "0"))
		{
		    displayBidType = 2;
		}
		
		if (limit == "1")
		{
		    displayBidType = 3;
		}
		
		DisplayBid(position, lotAuctionId[position], lotCurrBid[position], previousHighBid, lotNextBid[position], displayBidType)
	}
	
	for (var i=0; i<lotAuctionId.length; i++)
	{
	    if (document.getElementById("BB_DAT"+i) == null)
	    {
	        break;
	    }
	    
        if (lotAuctionId[i] == -1)
        {
            if (i < numberMainLots)
            {
                var replacementFound=false;
                for(j=numberMainLots; j<lotAuctionId.length; j++)
                {
                    if (lotAuctionId[j]!=-1)
                    {
                        replacementFound=true;
                        switchLots(i, j, vusername);
                        for (k=j+1; k<lotAuctionId.length; k++, j++)
                        {
                            if (document.getElementById("BB_DAT"+k) == null)
                            {
                                break;
                            }
                            
                            switchLots(j, k, vusername);
                        }
                        
                        lotAuctionId[j] = -1;
                        document.getElementById("BB_DAT"+j).style.display="none";
	                    break;
                    }
                }
                
                if (!replacementFound)
                {
                    document.getElementById("TIME_DAT"+i).innerHTML = "&nbsp;";
                    document.getElementById("ROOKIE_DAT"+i).style.display="none";
                    document.getElementById("IMAGE_DAT"+i).src = "images/comingsoon.png";
                    document.getElementById("TITLE_DAT"+i).innerHTML = "Coming Soon";
                    document.getElementById("IMAGE_LINK_DAT"+i).href="#";
                }
            }
            else if (i >= numberMainLots)
            {
                document.getElementById("BB_DAT"+i).style.display="none";
            }
        }
	}
}

function switchLots(i, j, vusername)
{
    document.getElementById("IMAGE_DAT"+i).src = "LotImages/"+lotImage[j]+"_sm.jpeg";
    document.getElementById("TITLE_DAT"+i).innerHTML = "<a href='lotdetail.aspx?lotid="+lotAuctionId[j]+ "'>"+lotTitle[j]+"</a>";
    document.getElementById("IMAGE_LINK_DAT"+i).href = "lotdetail.aspx?lotid="+lotAuctionId[j];
    document.getElementById("SHORT_DESC_DAT"+i).innerHTML = lotShortDesc[j];
    document.getElementById("RETAIL_DAT"+i).innerHTML = lotRetailPrice[j];
    document.getElementById("HIGH_BIDDER_DAT"+i).innerHTML = lotHighBidder[j];
    document.getElementById("BID_INCREMENT_DAT"+i).innerHTML = lotBidValue[j];
    document.getElementById("ROOKIE_DAT"+i).style.display=(lotRookie[j] == 1 ? "" : "none");
    document.getElementById("COLLECTIBLE_DAT"+i).style.display=(lotCollectible[j] == 1 ? "" : "none");
    document.getElementById("TOPB_DAT"+i).style.visibility=(lotHighBidder[j] == vusername ? "visible" : "hidden");
    document.getElementById("HIGHBID_DAT"+i).style.zIndex=(lotHighBidder[j] == vusername ? "3000" : "-1");
    document.getElementById("HIGHBID_DAT"+i).style.visibility=(lotHighBidder[j] == vusername ? "visible" : "hidden");

    var displayBidType = 1;
    var myTime = lotTimeLeft[j];
    if (!myTime || (myTime==undefined)) 
    {
        myTime = 0;
    }
	
	var elemColor = (myTime < 10 ? "red" : "#000040");
		
    if (myTime == 2) 
    {
	    thedisplay = "going...";
	    displayBidType = 1;
    }
    else if (myTime==1) 
    {
	    thedisplay = "GOING...";
	    displayBidType = 1;
    }
    else if (myTime == 0) 
    {
	    thedisplay = "GOING...";
	    displayBidType = 2;
    }
    else if (myTime < 0)
    {
	    thedisplay = "Gone";
	    displayBidType = 2;
    }
    else
    {
	    thedisplay = intToTime(myTime);
    }
	
	var elem = document.getElementById("TIME_DAT"+i);
    elem.innerHTML = thedisplay;
    elem.style.color = elemColor;
        
    lotAuctionId[i] = lotAuctionId[j];
    lotTimeLeft[i] = lotTimeLeft[j];
    lotTitle[i] = lotTitle[j];
    lotImage[i] = lotImage[j];
    lotCurrBid[i] = lotCurrBid[j];
    lotHighBidder[i] = lotHighBidder[j];
    lotNextBid[i] = lotNextBid[j];
    lotBidValue[i] = lotBidValue[j];
    lotRookie[i] = lotRookie[j];
    lotCollectible[i] = lotCollectible[j];
    lotShortDesc[i] = lotShortDesc[j];
    lotRetailPrice[i] = lotRetailPrice[j];
    lastval[i] = lastval[j];
    
    FlashPrice(i);
}

function DisplayBid(position, auctionId, currentBid, previousHighBid, bidAmount, value)
{
    if ((value != lastval[position]) || (currentBid != previousHighBid))
    {
        lastval[position] = value;

        if (value == 1)
        {
            document.getElementById("BIDB_DAT"+position).src = "images/bid_idle.png";
            document.getElementById("BIDB_DAT"+position).onclick = function tempFnc() { ClickBidButton(auctionId, bidAmount); };
            document.getElementById("BIDB_DAT"+position).onmouseover = function tempFnc1() { TrackBidButton(position,1); };
            document.getElementById("BIDB_DAT"+position).onmouseout = function tempFnc0() { TrackBidButton(position,0);	};
            document.getElementById("BIDB_DAT"+position).onmousedown = function tempFnc2() { TrackBidButton(position,2); };
            document.getElementById("BIDB_DAT"+position).onmouseup = function tempFnc3() { TrackBidButton(position,3); };
        }
        else if (value == 2)
        {
            document.getElementById("BIDB_DAT"+position).src = "images/bid_grayedout.png";
            document.getElementById("BIDB_DAT"+position).onclick = ""; 
            document.getElementById("BIDB_DAT"+position).onmouseover = "";
            document.getElementById("BIDB_DAT"+position).onmouseout = "";
            document.getElementById("BIDB_DAT"+position).onmousedown = "";
            document.getElementById("BIDB_DAT"+position).onmouseup = "";
        }
        else if (value == 3)
        {
            document.getElementById("BIDB_DAT"+position).src = "images/bid_limit.png";
            document.getElementById("BIDB_DAT"+position).onclick = ""; 
            document.getElementById("BIDB_DAT"+position).onmouseover = "";
            document.getElementById("BIDB_DAT"+position).onmouseout = "";
            document.getElementById("BIDB_DAT"+position).onmousedown = "";
            document.getElementById("BIDB_DAT"+position).onmouseup = "";
        }
    }
}

function intToTime(theNumber)
{
    var days = Math.floor(theNumber / 86400);
    theNumber -= days * 86400;
    
	var hrs= Math.floor(theNumber / 3600);
	theNumber -= hrs * 3600;

	var minutes = Math.floor(theNumber / 60);
	theNumber -= minutes * 60;
	
	if (hrs < 10) hrs = "0"+hrs;
	if (minutes < 10) minutes = "0"+minutes;
	if (theNumber < 10) theNumber = "0"+theNumber;
	
	if (days > 0)
	{
	    return days+":"+hrs+":"+minutes+":"+theNumber;
	}

	return hrs+":"+minutes+":"+theNumber;
}

function TrackBidButton(position, inout)
{
	elem=document.getElementById("BIDB_DAT"+position);
	$username = document.getElementById("loginuser").value;	
	
	if($username == "0")
	{
		$loggedin = false;
	}
	else
	{
		$loggedin = true;
	}
	switch ($loggedin)
	{
		case true:
			switch(inout)
				{
				case 0:
					elem.src="images/bid_idle.png";
					break;
				case 1:		// mouse in
					elem.src="images/bidhi.png";
					break;
				case 2:		// mouse down
					elem.src="images/bid_mousedown.png";
					break;
				case 3:		// mouse up - back to normal
					elem.src="images/bid_idle.png";
					break;
				}
			break;
		case false:
			if (inout==1)	// mouse is in
			{
				for (i=0;i<10;i++)
				{
					anelem=document.getElementById("BIDB_DAT"+i);
					if (anelem)
					{
    					anelem.src="images/bid_onmouseover.png";
    			    }
				}
			}
			else if (inout==0)
			{
				for (i=0;i<10;i++)
				{
					anelem=document.getElementById("BIDB_DAT"+i);
					if (anelem)
					{
					    anelem.src="images/bid_idle.png";
					}
				}
			}
			
			break;
	}
}

function ClickBidButton(auctionId, bidAmount)
{
	$username = document.getElementById("loginuser").value;
	if ($loggedin)
	{
    	PerformBid($username, auctionId, BidResult);
		DoTick();
	}
	else
	{
	    Login();
	}
}

function BidResult(res)
{
    if (res.error != null)
    {
        if (res.error.Message == "OUT OF BIDS")
        {
            window.location="BuyBids.aspx?out=1";
        }
        else
        {
	        alert(res.error.Message);
	    }
    }
}

function FlashPrice(position)
{
	document.getElementById("BID_DAT"+position).innerHTML = "Current Bid: $" + lotCurrBid[position];
	document.getElementById("HIGH_BIDDER_DAT"+position).innerHTML = lotHighBidder[position];
	(new Spry.Effect.Highlight(document.getElementById("BID_DAT"+position), {from:'#EF0000', to:'#FFFFFF', restoreColor: '#FFFFFF'})).start();
}

var lotAuctionId = new Array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
            -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
            -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
            -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
            -1,-1,-1,-1,-1,-1,-1,-1,-1,-1);
var lotTimeLeft = new Array(50);
var lotTitle = new Array(50);
var lotImage = new Array(50);
var lotCurrBid = new Array(50);
var lotHighBidder = new Array(50);
var lotNextBid = new Array(50);
var lotBidValue = new Array(50);
var lotRookie = new Array(50);
var lotCollectible = new Array(50);
var lotShortDesc = new Array(50);
var lotRetailPrice = new Array(50);
var lastval = new Array (-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1);
var numberMainLots = 12;
