
var cardInfos=new Array();var numCardsRequested=0;var kTotalCards=8;var interval;var offset=0;var kWidth=147;var firstTime=true;function updateCardAnimation(){var kCardAnimSpeed=1;offset+=kCardAnimSpeed;if(offset>=kWidth){offset=0;}
for(i=0;i<kTotalCards;++i){setDivOffset(i,offset);}
if(offset==0){shiftCardContents();}}
function setDivOffset(index,offset){var div=getDiv(index);div.style.left=(index-1)*kWidth+offset+"px";}
function startChangeCardsAnimation(){interval=setInterval(updateCardAnimation,100);}
function getNumCardsInFlight(){return cardInfos.length+numCardsRequested;}
function onChangeCardsTimer(){if(getNumCardsInFlight()<10){requestGetCards();}
if(cardInfos.length==0)return;}
function shiftCardContents(){for(i=kTotalCards-1;i>=1;i--){shiftCardImage(i-1,i);shiftCardAuthor(i-1,i);shiftCardName(i-1,i);shiftCardType(i-1,i);}
setNewCardInfo(0);}
function setNewCardInfo(indexOfCard){var cardInfo=getNewCardInfo();setCardImage(indexOfCard,cardInfo.image,cardInfo.id);setCardAuthor(indexOfCard,cardInfo.author);setCardName(indexOfCard,cardInfo.name);setCardType(indexOfCard,cardInfo.type);}
function shiftCardAuthor(sourceAuthorSlot,destAuthorSlot)
{var sourceDiv=getAuthorDiv(sourceAuthorSlot);var destDiv=getAuthorDiv(destAuthorSlot);destDiv.innerHTML=sourceDiv.innerHTML;}
function shiftCardName(sourceNameSlot,destNameSlot)
{var sourceDiv=getNameDiv(sourceNameSlot);var destDiv=getNameDiv(destNameSlot);destDiv.innerHTML=sourceDiv.innerHTML;}
function shiftCardID(sourceIDSlot,destIDSlot)
{var sourceDiv=getIDDiv(sourceIDSlot);var destDiv=getIDDiv(destIDSlot);destDiv.innerHTML=sourceDiv.innerHTML;}
function shiftCardType(sourceTypeSlot,destTypeSlot)
{var sourceDiv=getTypeDiv(sourceTypeSlot);var destDiv=getTypeDiv(destTypeSlot);destDiv.innerHTML=sourceDiv.innerHTML;}
function shiftCardImage(sourceImageSlot,destImageSlot){var sourceDiv=getImageDiv(sourceImageSlot);var destDiv=getImageDiv(destImageSlot);destDiv.innerHTML=sourceDiv.innerHTML;}
function getNewCardInfo(){if(cardInfos.length==0){return new function(){this.id=500521158180;this.name='Willosaur';this.image='http://static.spore.com/static/thumb/500/521/158/500521158180.png';this.type='CREATURE';this.author='blukker';}}
else{var retval=cardInfos[0];cardInfos.shift();return retval;}}
function setCardImage(index,cardImage,cardID){var imageDiv=getImageDiv(index);var urlhtml='<a href="/sporepedia#qry=sast-'+cardID+'"><img style="visibility: visible; margin-top:4px; background-color: rgb(255, 255, 255); width: 127px; height: 128px;" src="'+cardImage+'"></a>';imageDiv.innerHTML=urlhtml;}
function setCardAuthor(index,cardAuthor){var authorDiv=getAuthorDiv(index);authorDiv.innerHTML='<a href="/view/myspore/'+cardAuthor+'">'+cardAuthor+'</a>';}
function setCardName(index,cardName){var nameDiv=getNameDiv(index);nameDiv.innerHTML=cardName;}
function setCardType(index,cardType){var typeDiv=getTypeDiv(index);typeDiv.innerHTML='<div class="'+cardType+'></div>';}
function imageURLparser(cardImage){cardImage=cardImage.substr(0,35)+':8080'+cardImage.substr(35);return cardImage;}
function getDiv(index){var elementID="FC_Box_"+index;return document.getElementById(elementID);}
function getImageDiv(index){var elementID="FC_Box_"+index+"_image";return document.getElementById(elementID);}
function getAuthorDiv(index){var elementID="FC_Box_"+index+"_author";return document.getElementById(elementID);}
function getTypeDiv(index){var elementID="FC_Box_"+index+"_type";return document.getElementById(elementID);}
function getIDDiv(index){var elementID="FC_Box_"+index+"_id";return document.getElementById(elementID);}
function getNameDiv(index){var elementID="FC_Box_"+index+"_name";return document.getElementById(elementID);}
function startChangeCardsTimer(){var kTimeBetweenChaningCards=1*1000;window.setInterval(onChangeCardsTimer,kTimeBetweenChaningCards);}
function randomRangeInt(start,end){var range=end-start;return Math.floor(Math.random()*range)+start;}
function onXMLRequestReadyStateChange(xhr,responseFn,errorFn){var kResponseReceived=4;if(xhr.readyState==kResponseReceived){var kResponseSuccess=200;if(xhr.status==kResponseSuccess){responseFn(xhr.responseXML);}
else{errorFn(xhr.status);}
xhr.onreadystatechange=null;}}
function sendXMLRequest(url,responseFn,errorFn){var xhr=new XMLHttpRequest();xhr.onreadystatechange=function(){onXMLRequestReadyStateChange(xhr,responseFn,errorFn);};xhr.open("GET",url,true);xhr.send(null);}
function print(text){}
function parseCardXML(responseXML){var assetsNode=responseXML.getElementsByTagName("assets")[0];if(assetsNode==null){return;}
var assetNodes=assetsNode.getElementsByTagName("asset");for(j=0;j<assetNodes.length;j++){var asset=assetNodes[j];var author=asset.getElementsByTagName("author")[0];var name=asset.getElementsByTagName("name")[0];var image=asset.getElementsByTagName("thumb")[0];var type=asset.getElementsByTagName("type")[0];var id=asset.getElementsByTagName("id")[0];var typeString=getTextContent(type);if(typeString=="ADVENTURE"){continue;}
cardInfos[cardInfos.length]=new function(){this.id=getTextContent(id);this.name=getTextContent(name);this.image=getTextContent(image);this.type=getTextContent(type);this.author=getTextContent(author);}}}
function getTextContent(element){if(typeof element.textContent!="undefined"){return element.textContent;}
return element.text;}
var kNumCardsPerGet=10;function handleGetCardsResponse(responseXML){numCardsRequested-=kNumCardsPerGet;parseCardXML(responseXML);if(firstTime==true&&cardInfos.length>8){fillAllCards();firstTime=false;}}
function fillAllCards()
{for(var i=0;i<kTotalCards;i++){setNewCardInfo(i);}}
function handleGetCardsResponseError(errorCode){numCardsRequested-=kNumCardsPerGet;}
function requestGetCards(){var numTotalFeatured=1660;var randomCardSet=randomRangeInt(0,numTotalFeatured/kNumCardsPerGet);var numToGet=kNumCardsPerGet;var numStart=randomCardSet*kNumCardsPerGet;print("cardset request:"+randomCardSet);var sporeURL="/rest/assets/search/FEATURED/"+numStart+"/"+numToGet;sendXMLRequest(sporeURL,handleGetCardsResponse,handleGetCardsResponseError);numCardsRequested+=kNumCardsPerGet;}
function runFeaturedCards(){print("hello world");requestGetCards();startChangeCardsTimer();startChangeCardsAnimation();}
