
(function(){var quiz={_cookieName:'quiz_tracker',_cookieDomain:'.howstuffworks.com',_cookiePath:'/',quizId:null,questionId:null,answerId:null,isCorrect:null,originalUrl:null,title:null,image:null,requireCaptcha:false,initIntroPage:function()
{var that=this;this.waitUntilPageInfoLoads(function(){if(that.requireCaptcha)
{that.clearCookie();$('#startQuizBtn,#startQuizImg').click(function()
{var href=$(this).attr('href');that.showCaptcha(function(){that.initCookie();window.location=href;});return false;});}
else
{that.initCookie();}});},initQuestionPage:function()
{var that=this;if(this.redirectOnBadCookie())
{return;}
this.waitUntilPageInfoLoads(function(){that.recordAnswer();that.updateCorrectScoreBoard();that.showNextButton();});},initResultsPage:function()
{var that=this;if(this.redirectOnBadCookie())
{return;}
this.waitUntilPageInfoLoads(function(){that.loadChallengers();that.updateCorrectScoreBoard();that.updateFinalScoreValues();if(that.requireCaptcha)
{that.showCaptcha(function(){that._resultsActionsAfterPageInfo();});}
else
{that._resultsActionsAfterPageInfo();}});},_resultsActionsAfterPageInfo:function()
{this.saveScore();this.showUserSpecificBlocks();if(HSW.sm.pageInfo.user.id==0)
{this.login();}
else
{if(HSW.sm.pageInfo.user.auth_type=='facebook')
{$().ready(function()
{HSW.quiz.showFacebookPublishDialog();});}}},showNextButton:function()
{$('#quizNextPage').css({'visibility':'visible'});},waitUntilPageInfoLoads:function(callback)
{var interval=setInterval(function()
{if(HSW.sm.pageInfo)
{callback();clearInterval(interval);}},50);},showCaptcha:function(callback)
{$(document).ready(function(){HSW.quiz.captcha.showModal('quizModal','<p class="bold">We\'re glad you\'re enjoying our quizzes!</p>',callback);});},showFacebookPublishDialog:function()
{var that=this;this.waitUntilPageInfoLoads(function(){var cookieData=that.readCookie();var attachment={'name':that.title,'href':(that.originalUrl+'#mkcpgn=fb10'),'caption':'{*actor*} added '+cookieData['correct']+' points by completing the '+that.title+' from HowStuffWorks.com. Can you beat that score?'};var actionLinks=[{'text':'Join GetStuff','href':'http://www.howstuffworks.com/#mkcpgn=fb10'}];if(that.image)
{attachment['media']=[{'type':'image','src':that.image,'href':(that.originalUrl+'#mkcpgn=fb10')}];}
HSW.sm.loadFacebookConnect(function()
{FB.Connect.streamPublish('',attachment,actionLinks,null,null);});var omniVars='&c46=quiz+game&v50=quiz+game&events=event46,event48';if(HSW.cookies.exists('user_type')&&HSW.cookies.exists('user_id'))
{var user_value=encodeURIComponent(HSW.cookies.user_type.value.toLowerCase())+' : facebook';omniVars+='&c45='+user_value+'&v49='+user_value;omniVars+='&c50='+HSW.cookies.user_id.value;}
HSW.sm.sendTags('Quiz Share Results',omniVars,this,'',true);});},loadChallengers:function()
{$.ajax({type:'GET',url:'/ajax/get-quiz-challengers/',dataType:'html',cache:true,error:function()
{HSW.sm.showOutageModal();},success:function(results){$('#quizResultsChallengers').html(results);HSW.sm.FacebookInit();HSW.sm.follow.parsePage();}});},saveScore:function()
{var that=this;var cookieData=this.readCookie();if(HSW.sm.pageInfo.user.id!=0)
{if(cookieData['processed']==0)
{$.ajax({type:'GET',url:'/ajax/save-quiz-score/',dataType:'json',cache:false,error:function()
{HSW.sm.showOutageModal();},success:function(results)
{if(results['status'])
{cookieData['processed']=1;that.saveCookie(cookieData);HSW.sm.pageInfo.user.score+=parseInt(cookieData['correct']);}
$('#quizFinalGetStuffScore').html(HSW.sm.pageInfo.user.score);}});}
else
{$('#quizFinalGetStuffScore').html(HSW.sm.pageInfo.user.score);}}},showUserSpecificBlocks:function()
{if(HSW.sm.pageInfo.user.id==0)
{$('#quizAnonymousLogin').css('display','block');}
else
{$('#quizUserGetSmartScore').css('display','block');}},recordAnswer:function()
{var cookieData=this.readCookie();if(this.isCorrect!==null&&!cookieData[this.questionId])
{cookieData[this.questionId]=this.answerId;if(this.isCorrect==true)
{cookieData['correct']=parseInt(cookieData['correct'])+1;}
else
{cookieData['wrong']=parseInt(cookieData['wrong'])+1;}
this.saveCookie(cookieData);}},updateCorrectScoreBoard:function()
{var cookieData=this.readCookie();if(cookieData['correct'])
{var correctScore=cookieData['correct'];var output='';if(correctScore.length==1)
{correctScore='0'+correctScore;}
for(i=0;i<correctScore.length;++i)
{var char=correctScore.charAt(i);output+='<span style="display: inline-block; background: #fff url(\'http://static.howstuffworks.com/en-us/default/quiz/score-digit-gradient.gif\') repeat; border: solid 1px #aaa; font-size: 20px; font-weight: bold; margin-left: 1px; padding: 0px 3px;">'+char+'</span>';}
$('#quizScoreCounter').html(output);$('#quizScoreCounterBlock').css({'display':'none','visibility':'visible'});$('#quizScoreCounterBlock').fadeIn('fast');}},updateFinalScoreValues:function()
{var cookieData=this.readCookie();if(cookieData['correct'])
{$('#quizFinalCorrectScore').html(cookieData['correct']);}},redirectOnBadCookie:function()
{var redirect=false;if(!HSW.cookies.exists(this._cookieName))
{redirect=true;}
var cookieValues=this.readCookie();if(cookieValues['quizId']&&cookieValues['quizId']!=this.quizId)
{redirect=true;}
if(redirect)
{location.href=this.originalUrl;}
return redirect;},login:function()
{var that=this;$(document).ready(function(){var getScoreText='\
     <div class="sm borderGrayBottom borderDashed tenPaddingTopBottom ">\
      <div class="textAlignCenter" style="font-size: 18px; font-weight: bold; margin-bottom: 5px;">\
       Save your score!\
      </div>\
      <div class="textAlignCenter" style="font-size: 12px;">\
       <img src="http://static.howstuffworks.com/en-us/default/quiz/header-save-score.gif" />\
      </div>\
     </div>\
    ';that.waitUntilOmnitureLoads(function(){HSW.sm.login.showModalFacebookProminent(null,null,getScoreText);});});},waitUntilOmnitureLoads:function(callback)
{var timer=0,timeout=5000;var interval=setInterval(function()
{if(typeof s_account!='undefined')
{callback();clearInterval(interval);}
if(timer>timeout)
{clearInterval(interval);}
timer+=50;},50);},redirectToProfile:function()
{location.href='http://getstuff.howstuffworks.com/profile/getsmart/';},initCookie:function()
{var contents=[];contents.push('quizId:'+this.quizId);contents.push('correct:'+0);contents.push('wrong:'+0);contents.push('processed:'+0);contents.push('omniEnd:'+0);HSW.cookies.add(this._cookieName);HSW.cookies[this._cookieName].value=contents.join('|');HSW.cookies[this._cookieName].domain=this._cookieDomain;HSW.cookies[this._cookieName].path=this._cookiePath;HSW.cookies[this._cookieName].set();},readCookie:function()
{var values=[];if(HSW.cookies.exists(this._cookieName))
{var splitValue=HSW.cookies[this._cookieName].value.split('|');for(i in splitValue)
{var additionalSplit=splitValue[i].split(':');values[additionalSplit[0]]=additionalSplit[1];}}
return values;},saveCookie:function(valueArray)
{var finalValue='';var keyValuePairs=[];for(key in valueArray)
{keyValuePairs.push(key+':'+valueArray[key]);}
finalValue=keyValuePairs.join('|');HSW.cookies[this._cookieName].value=finalValue;HSW.cookies[this._cookieName].domain=this._cookieDomain;HSW.cookies[this._cookieName].path=this._cookiePath;HSW.cookies[this._cookieName].set();},clearCookie:function()
{if(HSW.cookies.exists(this._cookieName))
{HSW.cookies[this._cookieName].domain=this._cookieDomain;HSW.cookies[this._cookieName].path=this._cookiePath;HSW.cookies[this._cookieName].remove();}}};HSW.quiz=quiz;})();(function(){HSW.quiz.initIntroPage=function()
{this.clearCookie();this.initCookie();};HSW.quiz.initQuestionPage=function()
{if(this.redirectOnBadCookie())
{return;}
this.recordAnswer();this.showNextButton();};HSW.quiz.initResultsPage=function()
{if(this.redirectOnBadCookie())
{return;}
this.updateFinalScoreValues();};HSW.quiz.updateFinalScoreValues=function()
{var cookieData=this.readCookie();if(cookieData['correct'])
{$('#quizScoreGraphic').html('<img src="http:/static.howstuffworks.com/en-us/recipes/tlc/tlc-cooking-quiz-scoring-template-'
+(cookieData['correct']<=10?cookieData['correct']:10)
+'v.gif" />');$('#quizCorrectScore').html(cookieData['correct']);$('#quizWrongScore').html(cookieData['wrong']);$('#quizPercent').html(Math.floor((parseInt(cookieData['correct']))/(parseInt(cookieData['correct'])+parseInt(cookieData['wrong']))*100));}};})();