
function card(id,name,rotation)
{var id=id;var name=name;var image_height=ReadingData["Reading"]["CardHeight"];var image_width=ReadingData["Reading"]["CardWidth"];var image_folder=ReadingData["Reading"]["DeckPath"];this.get_id=function(){return id}
this.get_name=function(){return name}
this.get_image_height=function(){return image_height}
this.get_image_width=function(){return image_width}
this.get_image_folder=function(){return image_folder}
this.set_name=function(new_name)
{name=new_name;}
this.set_image_folder=function(new_image_folder)
{image_folder=new_image_folder;}
this.rotation=rotation;}
card.prototype.get_image_path=function()
{if(this.rotation=="upright")
return"/"+this.get_id()+".jpg";else
return"/"+this.rotation+"/"+this.get_id()+"-"+this.rotation+".jpg";}
card.prototype.get_large_image_src=function(position)
{return this.get_image_folder()+"full_size"+this.get_image_path();}
card.prototype.get_card_image_src=function(position)
{if(typeof card_slot_angles=="undefined"){return this.get_image_folder()+"table_card"+this.get_image_path();}else{my_angle=card_slot_angles[position];}
if(!my_angle||my_angle==0){return this.get_image_folder()+"table_card"+this.get_image_path();}else{return image_rotated_url+'?deg='+my_angle+'&tarot_deck='+selectedDeckID+'&tarot_card='+this.get_id();}}
card.prototype.get_ghost_image_src=function(position)
{if(typeof card_slot_angles=="undefined"){return this.get_image_folder()+"ghost.jpg";}else{my_angle=card_slot_angles[position];}
if(!my_angle||my_angle==0){return this.get_image_folder()+"ghost.jpg";}else{return image_rotated_url+'?deg='+my_angle+'&tarot_deck='+selectedDeckID;}}
card.prototype.appendtodiv=function(target_div)
{if(!document.getElementById(target_div)){return;}
inames[inames.length]=target_div;var card=new Image();card.src=this.get_large_image_src(target_div);card.prototype=this.get_large_image_src(target_div);card.alt=this.get_name();var temp=picked_cards.length+1;picked_cards[picked_cards.length]=card;var i=document.createElement("IMG");i.src=this.get_ghost_image_src(target_div);i.name=target_div+"_img";i.id=target_div+"_img";if(typeof disableFlipCards=='undefined'||!disableFlipCards){i.style.cursor="pointer";i.onclick=function(){flip_over(temp)};}
document.getElementById(target_div).appendChild(i);document.getElementById(target_div).appendChild(document.createElement("BR"));}
document.write('<script type="text/javascript" src="/js/jstween/Tween.js"></script>');document.write('<script type="text/javascript" src="/js/jstween/OpacityTween.js"></script>');document.write('<script type="text/javascript" src="/js/jstween/Sequence.js"></script>');function deck()
{var self=this;var fan_interval;this.fan=function()
{self.fan_interval=window.setInterval(self.reveal,5);}
this.reveal=function()
{if(self.fan_count==self.all_cards){document.getElementById('rshuffle').style.visibility="hidden";window.clearInterval(self.fan_interval)
self.reveal_set_asides();}
else{var i=document.createElement("IMG");i.src=self.deck_path+"ghost.jpg";i.id=self.fan_count;i.onclick=self.cardevent;i.className="fan_card";if(self.pick_number>0){i.className+="_"+self.pick_number;}
i.style.position="absolute";i.style.left=self.ghost_position+"px";i.onmouseover=raise_card;if(typeof product_id!='undefined'){i.style.filter="Alpha(opacity=100)";if(self.fan_count>self.all_cards-self.set_aside_cards-1){i.style.visibility="hidden";}}
self.ghost_position=self.ghost_position+self.fan_spacing;document.getElementById("fan_container").appendChild(i);self.fan_count++;}}
this.empty_fan=function()
{my_fan_container=document.getElementById("fan_container");for(var r=0;r<self.active_cards;r++){my_image_to_remove=document.getElementById(r);my_fan_container.removeChild(my_image_to_remove);}
self.ghost_position=self.ghost_position-(self.fan_spacing*self.active_cards);self.fan_count=0;self.fan_spacing=34;}
this.pick_number=0;this.fan_count=0;this.fan_spacing=3;this.skip_motion=false;if(typeof product_id!='undefined'){this.fan_spacing=3;}
this.all_cards=0;this.cards_set=false;this.set_aside_cards=0;this.active_cards=0;this.mix_deck_count=14;this.mc=0;this.cards=new Array();this.picked_cards_access=new Array();this.deck_path=ReadingData["Reading"]["DeckPath"];this.position_count=ReadingData["Reading"]["Position_Count"];this.nocardspicked=0;this.ghost_position=0;this.ghost_position0=0;this.mixdeck_interval=0;this.card_names_by_id=new Array();this.pick_complete=false;this.cardevent=function(e){mydeck.pick_card(this.id);if(mydeck.position_count==mydeck.nocardspicked)
{if(typeof product_id!='undefined'){document.getElementById('fan_cover').style.filter="Alpha(opacity=0)";var my_seq1=new Sequence();my_seq1.addChild(new OpacityTween(document.getElementById('fan_cover'),Tween.bounceEaseOut,0,1,1.2));my_seq1.onMotionFinished=function(){};my_seq1.start()}else{}}};this.revealed=0;}
deck.prototype.pickSpecificCard=function(card_number)
{var u=0;while(u<this.cards.length){if(this.cards[u].get_id()==card_number){mydeck.pick_card(u);break;}
u=u+1;}}
deck.prototype.makeDeck=function()
{var cname=new Array();this.all_cards=deck_data["deck"]["card_name"].length;this.active_cards=deck_data["deck"]["card_name"].length;for(var cardArCounter=0;cardArCounter<this.all_cards;cardArCounter++)
{cname.push(deck_data["deck"]["card_name"][cardArCounter]);}
this.cards=new Array();for(var n=0;n<cname.length;n++)
{var cardn=new card(n,cname[n],"upright");this.cards[this.cards.length]=cardn;}}
deck.prototype.process_set_asides=function(){if(typeof set_asides!='undefined'){for(var t=0;t<set_asides.length;t++){this.setCardAside(set_asides[t],t+1);}}}
deck.prototype.reveal_set_asides=function(){this.skip_motion=true;for(var g=0;g<this.set_aside_cards;g++){array_position=this.all_cards-(g+1);mydeck.pick_card(array_position);}
if(typeof selectedDeckID!='undefined'){}
this.skip_motion=false;}
deck.prototype.setCardAside=function(card_number,position)
{var u=0;while(u<this.active_cards){if(this.cards[u].get_id()==card_number){var last_slot=this.active_cards-1;if(u!=last_slot){temp=this.cards[u];this.cards[u]=this.cards[last_slot];this.cards[last_slot]=temp;}
this.set_aside_cards++;this.active_cards--;break;}
u=u+1;}}
deck.prototype.reveal_mixdeck=function()
{for(this.mc=0;this.mc<this.mix_deck_count;this.mc++){var card_sub_type=mydeck.mc%2;if(card_sub_type==0){card_sub_type+=2;}
var card_sub_div="rshuffle"+card_sub_type;var i=document.createElement("IMG");i.src=mydeck.deck_path+"ghost.jpg";i.id='mix'+mydeck.mc;i.onclick="javascript:steps_display()";i.style.position="absolute";i.style.left=mydeck.ghost_position0+"px";i.className="mix_card"+card_sub_type;i.style.border="1px solid white";mydeck.ghost_position0+=0;document.getElementById(card_sub_div).appendChild(i);}
document.getElementById('rshuffle').style.visibility="visible";}
deck.prototype.add_adjacent_cards=function(position_name,id_num)
{var i=document.createElement("IMG");i.src=this.cards[1].get_ghost_image_src(position_name);i.className="adjacent_cards";i.id="adjacent_card"+id_num;document.getElementById('rshuffle').appendChild(i);}
var deckjson;function successfunction(msg)
{deckjson=msg.data;deck_data["deck"]["card_name"]=deckjson['result']["cards"]["card_name"];ReadingData["Reading"]["DeckPath"]=deckjson['result']['deck_path']+"/";mydeck.makeDeck();for(i=0;i<=78;i++)
{$("#"+i).attr("src",ReadingData["Reading"]["DeckPath"]+"ghost.jpg");}
for(i=0;i<=3;i++)
{if($("#position"+i+"_img").css('cursor')=="pointer")
{change_picked_cards_deck(ReadingData["Reading"]["Deck"])
$("#position"+i+"_img").attr("src",ReadingData["Reading"]["DeckPath"]+"ghost.jpg");}
else
{$("#position"+i+"_img").attr("src",ReadingData["Reading"]["DeckPath"]+"full_size/"+i+".jpg");}}}
deck.prototype.change_deck=function(new_deck_id)
{selectedDeckID=new_deck_id;var params={};params[gadgets.io.RequestParameters.CONTENT_TYPE]=gadgets.io.ContentType.JSON;var feedurl;feedurl="http://feeds.tarot.com/f/ws/deckdata/deckid/"+new_deck_id+"/?partner=viz&key=2fae913ecc625545&type=json";gadgets.io.makeRequest(feedurl,successfunction,params);}
deck.prototype.upright_shuffle=function(n)
{var i,j,k;var temp;for(i=0;i<n;i++)
for(j=0;j<this.active_cards;j++){k=Math.floor(Math.random()*this.active_cards);temp=this.cards[j];this.cards[j]=this.cards[k];this.cards[k]=temp;}}
deck.prototype.rotate_shuffle=function(n)
{var i,j,k;var temp;var crotation=new Array("upright","right","reversed","left");for(i=0;i<n;i++)
for(j=0;j<this.cards.length;j++){k=Math.floor(Math.random()*this.cards.length);temp=this.cards[j];this.cards[j]=this.cards[k];this.cards[k]=temp;this.cards[k].rotation=crotation[Math.floor(Math.random()*crotation.length)];}}
deck.prototype.prune_cards=function()
{var i,q;var num_cards=this.position_count;for(i=0;i<num_cards;i++){q=i+1;keep_card_position_num=this.picked_cards_access[document["main"]["card_"+q+"_tarot"].value];temp=this.cards[i];this.cards.splice(i,1,this.cards[keep_card_position_num]);this.cards.splice(keep_card_position_num,1,temp);this.picked_cards_access[document["main"]["card_"+q+"_tarot"].value]=i;this.picked_cards_access[this.cards[keep_card_position_num].get_id()]=keep_card_position_num;}
this.cards.splice(num_cards,this.all_cards-num_cards);this.empty_fan();this.cards_set=true;this.all_cards=num_cards;this.active_cards=num_cards;this.set_aside_cards=0;set_asides.splice(0,set_asides.length);}
deck.prototype.picked_cards_shuffle=function()
{var r,b;for(r=0;r<this.position_count;r++){b=r+1;my_card_container=document.getElementById("position"+b);my_image_to_remove=document.getElementById("position"+b+"_img");my_card_container.removeChild(my_image_to_remove);}
document.getElementById('step1').style.display='block';document.getElementById('step2').style.display='none';document.getElementById('step3').style.display='none';document.getElementById('rshuffle').style.visibility='visible';document.getElementById('flashcontent').style.visibility='visible';document.getElementById('flashcontent').style.display='block';document.getElementById('your_concerns').style.background='transparent url(http://gfx.tarot.com/images/product/en_us/'+product_id+'/backgrounds/shuffle.jpg) no-repeat';document.getElementById('deck_change_select1').style.display='none';var url="/flash/tarot/"+product_id+"/shuffle02.swf?version="+(new Date()).getTime();var so=new SWFObject(url,"flash_shuffle2","697","215","7.0","#FFFFFF",true);so.addVariable("cardimg","http://gfx.tarot.com/images/decks/"+selectedDeckID+"/ghost.jpg");so.addVariable("nCards",8);so.write("flashcontent");}
deck.prototype.showcard=function(i)
{return this.cards[i].get_name()+"["+this.cards[i].get_image_path()+"]";}
deck.prototype.reassign_spread_id=function()
{if(this.pick_number>0){document.getElementById("spread").id="spread_"+this.pick_number;var r,b;for(r=0;r<this.position_count;r++){b=r+1;document.getElementById("position"+b).id="position"+b+'_'+this.pick_number;}
fan_spread_offsets[0]=-335;fan_spread_offsets[1]=30;document.getElementById("fan_container").style.marginTop="50px";document.getElementById("fan_container").style.left="-130px";}}
deck.prototype.put_pick_into_form=function(position_number,n){if(document["hidden_form"]){document["hidden_form"]["TF_card"+position_number].value=this.cards[n].get_id();}else{document["main"]["card_"+position_number+"_tarot"].value=this.cards[n].get_id();}
this.picked_cards_access[this.cards[n].get_id()]=n;var rotation_temp;switch(this.cards[n].rotation){case"upright":rotation_temp="u";break;case"right":rotation_temp="r";break;case"reversed":rotation_temp="d";break;case"left":rotation_temp="l";break;}
if(document["hidden_form"]){document["hidden_form"]["TF_rotations"].value=document["hidden_form"]["TF_rotations"].value+rotation_temp;}else{if(document["main"]["card_"+position_number+"_rotation"]){document["main"]["card_"+position_number+"_rotation"].value=document["main"]["card_"+position_number+"_rotation"].value+rotation_temp;}}}
deck.prototype.pick_card=function(n)
{if(this.nocardspicked==this.position_count)
{alert("You have already picked all the cards you need");}
else
{this.nocardspicked++;var current_card=this.nocardspicked;card_div="position"+current_card;if(this.pick_number>0){card_div=card_div+"_"+this.pick_number;}
this.cards[n].appendtodiv(card_div);if(typeof product_id!='undefined'&&!this.skip_motion){fan_container_x=$("#fan_container").offset().left;card_y=$('#'+card_div).offset().top;card_x=$('#'+card_div).offset().left;card_h=$('#0').css("height");card_h=parseInt(card_h.split('px')[0]);card_w=$('#0').css("width");if(card_w.match('auto')){card_w=Math.floor(card_h*0.70);}else{card_w=parseInt(card_w.split('px')[0]);if(card_w>card_h){card_w=Math.floor(card_h*0.70);}}
my_y=parseInt(card_y)+fan_spread_offsets[1];my_x=parseInt(card_x)-fan_spread_offsets[0]-fan_container_x;new_x=n*this.fan_spacing-15;grow_factor=1.5;big_h=Math.floor(card_h*grow_factor);big_w=Math.floor(card_w*grow_factor);document.getElementById("fan_cover").style.display="block";document.getElementById(n).onclick=null;document.getElementById(n).style.width=big_w;document.getElementById(n).style.height=big_h;var my_seq0=new Sequence();my_seq0.addChild(new Tween(document.getElementById(n).style,'left',Tween.regularEaseOut,n*this.fan_spacing,new_x,0.3,'px'));my_seq0.addChild(new Tween(document.getElementById(n).style,'width',Tween.regularEaseOut,big_w,card_w,0.1,'px'));my_seq0.addChild(new Tween(document.getElementById(n).style,'left',Tween.regularEaseOut,new_x,my_x,0.5,'px'));my_seq0.addChild(new OpacityTween(document.getElementById(n),Tween.bounceEaseOut,100,99,0.2));my_seq0.addChild(new OpacityTween(document.getElementById(n),Tween.bounceEaseOut,99,0,0.1));if(current_card!=this.position_count){my_seq0.onMotionFinished=function(){document.getElementById("fan_cover").style.display="none";};}
my_seq0.start();var my_seq=new Sequence();my_seq.addChild(new Tween(document.getElementById(n).style,'top',Tween.regularEaseOut,0,-15,0.3,'px'));my_seq.addChild(new Tween(document.getElementById(n).style,'height',Tween.regularEaseOut,big_h,card_h,0.1,'px'));my_seq.addChild(new Tween(document.getElementById(n).style,'top',Tween.regularEaseOut,-15,my_y,0.7,'px'));my_seq.addChild(new OpacityTween(document.getElementById(card_div),Tween.bounceEaseOut,0,100,0.1));next_card=current_card+1;if(next_card>this.position_count){next_card='reveal';}
my_seq.start()}else{document.getElementById(n).style.visibility="hidden";if(typeof product_id!='undefined'){document.getElementById("fan_cover").style.display="none";}}
if(document.getElementById(card_div))
{document.getElementById(card_div).style.display="block";document.getElementById(card_div).style.visibility="visible";if(typeof product_id!='undefined'&&this.skip_motion){document.getElementById(card_div).style.filter="Alpha(opacity=100)";}}
this.put_pick_into_form(current_card,n);if(current_card==this.position_count)
{this.pick_complete=true;if(typeof product_id!='undefined'){if(product_id==68000&&this.pick_number<1){this.pick_number++;document.getElementById("scroll_image").style.filter="Alpha(opacity=100)";var my_seq5=new Sequence();my_seq5.addChild(new OpacityTween(document.getElementById('scroll_image'),Tween.bounceEaseOut,100,0,2));my_seq5.onMotionFinished=function(){mydeck.prune_cards();mydeck.picked_cards_shuffle();mydeck.reassign_spread_id();};my_seq5.start();this.pick_complete=false;this.nocardspicked=0;}else if(product_id==68000&&this.pick_number>0){flip_all_hidden();document.getElementById("flashcontent2").style.display="block";run_flash_continue();}}}}}
document.write('<script type="text/javascript" src="/js/jstween/Tween.js"></script>');function about_your_deck(deckId){var file="/tarot/deck-details.php?deckID="+deckId+"&shuffled=1";newWindow(file,499,381,100,100,'help','no','yes');}
function readingHelp(spreadID,context){var file="/tarot/help.php?spreadID="+spreadID+"&context="+context;newWindow(file,381,381,100,100,'help','no','yes');}
function readingHelp2(stup_id,context){var file="/tarot/help_standard.php?stup_id="+stup_id+"&context="+context;newWindow(file,381,381,100,100,'help_standard','no','yes');}
function change_subject()
{document.getElementById('TF_question_hidden').value=document.getElementById('question_txt').value;}
function stop_shuffle()
{var id=document.getElementById("rshuffle");id.src=shuffle_off_img;}
function raise_card(){var increase_height='0px';var my_card=new Tween(this.style,'top',Tween.regularEaseInOut,0,9,0.4,'px');if(typeof my_card!='undefined'){my_card.start();}}
function show_blowup(){document.getElementById('card_blowup').src=this.prototype;document.getElementById('card_blowup_container').style.display='block';my_position=this.name.match(/\d+/);document.getElementById('card_blowup_container').style.background='url("http://gfx.tarot.com/images/product/en_us/'+product_id+'/backgrounds/rollovers/'+my_position+'.gif") no-repeat';}
function hide_blowup(){document.getElementById('card_blowup_container').style.display='none';}
function complete_hover(e){var btn=document.getElementById('complete_btn');if(e.type=='mouseover')
btn.src=complete_reading_img.src;else if(e.type=="mouseout")
btn.src="http://gfx.tarot.com/images/tarot2/nav-btns/karmacoinbag-anim-off.gif";}
function steps_display(e)
{var target;var myClass;var imgsrc;if(e.srcElement){target=e.srcElement.id;myClass=e.srcElement.className;}
else if(e.target){target=e.target.id;myClass=e.target.className;}else if(e='rshuffle'){target='rshuffle';}
if(target=='rshuffle'||target=='flash_shuffle'||target=='flash_shuffle2'||myClass=='mix_card1'||myClass=='mix_card2'||target=='skip_shuffle'||target=='rshuffle_text')
{document.getElementById('step1').style.display="none";document.getElementById('step2').style.display="block";if(document.getElementById('fan_cover')){document.getElementById('fan_cover').style.display='none';}
spread_div='spread';if(mydeck.pick_number>0){spread_div=spread_div+'_'+mydeck.pick_number;}
if(document.getElementById(spread_div)){document.getElementById(spread_div).style.display="block";}}}
function shuffle_assign_cards(e)
{var type=ReadingData['Reading']['ShuffleType'];mydeck.upright_shuffle(1);}
function shuffle_event_handler(e)
{var type=ReadingData['Reading']['ShuffleType'];var target;var imgsrc;if(e.srcElement){target=e.srcElement.id;imgt=e.srcElement;}
else if(e.target){target=e.target.id;imgt=e.target;}
if(type=='mandala')
{imgt.src=shuffle_img.src;mydeck.rotate_shuffle(1);}
else
{imgt.src=shuffle_img.src;mydeck.upright_shuffle(1);}}
var picked_cards=new Array();var inames=new Array();function flip_all()
{if(mydeck.position_count==mydeck.nocardspicked)
{var flip_interval=window.setInterval(flip_all_helper,7);}
else
{alert("Please pick more cards to continue with this reading");}
return false;}
var flipped_count=0;var flipped=new Array();flip_interval=0;function flip_all_helper()
{if(flipped_count==mydeck.position_count)
{window.clearInterval(flip_interval);}
else
{flipped_count++;flip_over(flipped_count);}}
function flip_over(num){num=num-1;for(var i=0;i<flipped.length;i++)
{if(flipped[i]==num)
{return i;}}
if(mydeck.position_count!=mydeck.nocardspicked)
{alert("Please Pick All Your Cards");return;}
else{if(document.images){document.images[inames[num]+"_img"].src=picked_cards[num].src;document.images[inames[num]+"_img"].alt=picked_cards[num].alt;document.images[inames[num]+"_img"].prototype=picked_cards[num].prototype;card_name_container=document.getElementById(inames[num]+'_txt');card_name_container.innerHTML=document.images[inames[num]+"_img"].alt;document.images[inames[num]+"_img"].onclick=null;if(typeof product_id!='undefined'){if(typeof disableFlipCards=='undefined'){if(num!=2&&num!=6){}}
card_name_container.style.display='none';if(flipped.length+1==mydeck.position_count)
{}}
document.images[inames[num]+"_img"].style.cursor='default';mydeck.revealed++;flipped[flipped.length]=num;}}}
function flip_all_hidden(){for(var g=0;g<mydeck.position_count;g++){flipped[g]=g;}}
function present_submit_page(){document.getElementById('scroll_container3').style.display='none';document.getElementById('your_concerns').style.background='url("http://gfx.tarot.com/images/product/en_us/'+product_id+'/backgrounds/purchase.jpg") no-repeat';document.getElementById('complete_btn_container').style.display="block";document.getElementById('help_button_hdr').href="javascript:readingHelp2("+product_id+", '');";document.getElementById('help_button_ftr').href="javascript:readingHelp2("+product_id+", '');";}
function change_picked_cards_deck(new_deck)
{var total_cards_picked=picked_cards.length;var new_card_back=new Image();var new_card_face=new Image();for(var i=1;i<=total_cards_picked;i++)
{var card_img_div_id="position"+i;if(mydeck.pick_number>0){card_img_div_id=card_img_div_id+'_'+mydeck.pick_number;}
var card_img_div=document.getElementById(card_img_div_id);if(document["hidden_form"]){var card_id=document["hidden_form"]["TF_card"+i].value;}else{var card_id=document["main"]["card_"+i+"_tarot"].value;}
var card_name_div_id=document.getElementById(card_img_div_id+"_txt");var card_name_str=mydeck.card_names_by_id[card_id];var cur_img_obj=document.getElementById(card_img_div_id+"_img");var card_in_deck=mydeck.picked_cards_access[card_id];new_card_face.src=mydeck.cards[card_in_deck].get_card_image_src(card_img_div_id);new_card_face.prototype=mydeck.cards[card_in_deck].get_large_image_src(card_img_div_id);new_card_back.src=mydeck.cards[card_in_deck].get_ghost_image_src(card_img_div_id);picked_cards[i-1].src=new_card_face.src;picked_cards[i-1].prototype=new_card_face.prototype;picked_cards[i-1].alt=card_name_str;var flipped_test=false;for(var q=0;q<flipped.length;q++)
{if(flipped[q]==i-1)
{flipped_test=true;break;}}
if(flipped_test&&typeof disableFlipCards=='undefined')
{cur_img_obj.src=new_card_face.src;cur_img_obj.prototype=new_card_face.prototype;cur_img_obj.alt=card_name_str;card_name_div_id.innerHTML=card_name_str;}else{cur_img_obj.src=new_card_back.src;}}}
function complete_reading(){var newdeck='';if(mydeck.position_count!=mydeck.nocardspicked){alert("You must finish choosing your cards before you can complete your reading.");return;}
if(mydeck.revealed!=mydeck.position_count){alert("You must finish revealing your cards before you can complete your reading.");return;}
if(typeof document.forms["hidden_form"]!='undefined'){document.hidden_form.submit();}else{document.getElementById("default_submit").click();}}