Component.NeverEndingQuizMultipleChoiceAnswer=Class.create({initialize:function(A){this.element=$(A);
$(A).observe("click",this.onClick.bindAsEventListener(this));
$(A).observe("mouseover",this.onMouseover.bindAsEventListener(this));
$(A).observe("mouseout",this.onMouseout.bindAsEventListener(this));
this.choice=$(A).readAttribute("choice");
},onClick:function(B){var A=B.element().readAttribute("id");
$("choiceId").setAttribute("value",A);
console.debug("choiceId ="+A,$("choiceId"),B.element());
B.stop();
B.target.fire("nemq:answer",{answer:this.choice});
var C=Form.serialize($("answerForm"));
new Ajax.Request("/quiz.sv",{parameters:C,onComplete:function(D){$("quizAnswer").update(D.responseText);
quizQuestionWidget.handleNextQuestion();
}});
},onMouseover:function(A){this.element.addClassName("hover");
},onMouseout:function(A){this.element.removeClassName("hover");
}});
var doFlash=false;
var quizQuestionWidget={STATES:{READY:0,LOADING_BATCH:1,BATCH_FAILURE:7,BATCH_TIMEOUT:8,LOADING_QUESTION:2,QUESTION_FAILURE:9,QUESTION_TIMEOUT:10,EMPTY:3,DISABLED:4,RATING_QUESTION:5,REGISTRATION:6},index:-1,options:{throttle:2,regprompt:false},questions:new Array(),rateLastQuestion:false,handleBatch:function(){if(this.state==quizQuestionWidget.STATES.DISABLED){this.paint();
return ;
}this.state=this.STATES.LOADING_BATCH;
this.paint();
var A="gameAction=getNextBatch";
new Ajax.Request("/quiz.sv",{parameters:A,onSuccess:this.onBatchSuccess.bind(this),onFailure:this.onBatchFailure.bind(this),onTimeout:this.onBatchTimeout.bind(this)});
},handleResetBatch:function(){this.index=-1;
this.rateLastQuestion=false;
this.questions.clear();
this.state=this.STATES.LOADING_BATCH;
this.paint();
var A="gameAction=getNextBatch&strict=1";
new Ajax.Request("/quiz.sv",{parameters:A,onSuccess:this.onBatchSuccess.bind(this),onFailure:this.onBatchFailure.bind(this),onTimeout:this.onBatchTimeout.bind(this)});
},onBatchSuccess:function(A){A.responseText.evalScripts();
if(this.questions.length>this.index+1){this.handleNextQuestion();
}else{this.handleEmpty();
}},onBatchFailure:function(A){this.state=this.STATES.BATCH_FAILURE;
this.paint();
},onBatchTimeout:function(A){this.state=this.STATES.BATCH_TIMEOUT;
this.paint();
},handleNextQuestion:function(){if(this.state==quizQuestionWidget.STATES.DISABLED){this.paint();
return ;
}if(this.rateLastQuestion){var B=new Date();
if(this.options.throttle>0&&B.getMilliseconds()%this.options.throttle==0){this.rateLastQuestion=false;
this.state=this.STATES.RATING_QUESTION;
this.paint();
return ;
}}if(this.state!=this.STATES.REGISTRATION&&this.options.regprompt&&(this.index%100==9||this.index%100==19)){Tracker.tag("NEMQAnonRegPrompt"+this.index);
this.state=this.STATES.REGISTRATION;
this.paint();
if(this.index%100==19){this.options.regprompt=false;
}if(this.index%100==19){$("regmessage").innerHTML="OK, this is the last time we'll ask.  Would you like to save?";
}return ;
}this.state=this.STATES.LOADING_QUESTION;
this.paint();
if(this.index+1<this.questions.length){this.index+=1;
var A="gameAction=getNextQuestion&questionId="+this.questions[this.index];
if(quizQuestionWidget.firstChoice!=null&&this.index==0){A+="&choiceId="+quizQuestionWidget.firstChoice;
}new Ajax.Request("/quiz.sv",{parameters:A,onComplete:this.onQuestionSuccess.bind(this),onFailure:this.onQuestionFailure.bind(this),onTimeout:this.onQuestionTimeout.bind(this)});
}else{setTimeout(this.handleBatch.bind(this),1000);
}},onQuestionSuccess:function(A){new Component.Binder($("quizQuestion").update(A.responseText));
this.state=this.STATES.READY;
this.paint();
if(this.index>0){document.fire("ads:refresh");
if(!currentUser.isLoggedIn()){Tracker.tag("NEMQAnon");
}else{Tracker.tag("NEMQ");
}doFlash=false;
}},onQuestionFailure:function(A){this.state=this.STATES.QUESTION_FAILURE;
this.paint();
},onQuestionTimeout:function(A){this.state=this.STATES.QUESTION_TIMEOUT;
this.paint();
},reportBadQuestion:function(A){var B="gameAction=reportBadQuestion&questionId="+A;
new Ajax.Updater("badQuestionLink","/quiz.sv",{parameters:B});
},handleEmpty:function(){this.state=this.STATES.EMPTY;
this.paint();
},handleDisable:function(){this.state=this.STATE.DISABLED;
this.paint();
},paint:function(){switch(this.state){case this.STATES.READY:$("quizBatchLoading").hide();
$("quizQuestionLoading").hide();
$("quizEmpty").hide();
$("quizDisabled").hide();
$("quizRating").hide();
$("quizRegistration").hide();
$("quizQuestion").show();
break;
case this.STATES.LOADING_BATCH:$("quizQuestionLoading").hide();
$("quizEmpty").hide();
$("quizQuestion").hide();
$("quizDisabled").hide();
$("quizRating").hide();
$("quizRegistration").hide();
$("quizBatchLoading").show();
break;
case this.STATES.BATCH_FAILURE:$("quizBatchLoading").update("The request to retrieve a batch of quiz questions failed.  Please refresh your browser and try again.");
break;
case this.STATES.BATCH_TIMEOUT:$("quizBatchLoading").update("The request to retrieve a batch of quiz questions timed out.  Please refresh your browser and try again.");
break;
case this.STATES.LOADING_QUESTION:$("quizBatchLoading").hide();
$("quizEmpty").hide();
$("quizQuestion").hide();
$("quizDisabled").hide();
$("quizRating").hide();
$("quizRegistration").hide();
$("quizQuestionLoading").show();
break;
case this.STATES.QUESTION_FAILURE:$("quizQuestionLoading").update("The request to a quiz question failed.  Please refresh your browser and try again.");
break;
case this.STATES.QUESTION_TIMEOUT:$("quizQuestionLoading").update("The request to retrieve a quiz question timed out.  Please refresh your browser and try again.");
break;
case this.STATES.EMPTY:$("quizBatchLoading").hide();
$("quizQuestionLoading").hide();
$("quizQuestion").hide();
$("quizDisabled").hide();
$("quizRating").hide();
$("quizRegistration").hide();
$("quizEmpty").show();
break;
case this.STATES.DISABLED:$("quizBatchLoading").hide();
$("quizQuestionLoading").hide();
$("quizQuestion").hide();
$("quizEmpty").hide();
$("quizRating").hide();
$("quizRegistration").hide();
$("quizDisabled").show();
break;
case this.STATES.RATING_QUESTION:Element.setStyle("th2up",{border:"1px solid #fff"});
Element.setStyle("th2down",{border:"1px solid #fff"});
$("quizBatchLoading").hide();
$("quizQuestionLoading").hide();
$("quizQuestion").hide();
$("quizEmpty").hide();
$("quizDisabled").hide();
$("quizRegistration").hide();
$("quizRating").show();
break;
case this.STATES.REGISTRATION:$("quizBatchLoading").hide();
$("quizQuestionLoading").hide();
$("quizQuestion").hide();
$("quizEmpty").hide();
$("quizDisabled").hide();
$("quizRegistration").show();
break;
}}};
var quizAnswerWidget={handleEnter:function(B,A){if(B.keyCode==Event.KEY_RETURN&&A=="movies"){this.handleMovieSearch();
return false;
}else{if(B.keyCode==Event.KEY_RETURN&&A=="actors"){this.handleActorSearch();
return false;
}else{return true;
}}},handleMovieSearch:function(){$("submitBtn").disabled=true;
var A="gameAction=searchMovies&"+Form.Element.serialize($("msearch"));
new Ajax.Request("/quiz.sv",{parameters:A,onComplete:this.processSearch.bind(this)});
},handleActorSearch:function(){$("submitBtn").disabled=true;
var A="gameAction=searchActors&"+Form.Element.serialize($("asearch"));
new Ajax.Request("/quiz.sv",{parameters:A,onComplete:this.processSearch.bind(this)});
},processSearch:function(A){$("submitBtn").disabled=false;
$("searchResults").update(A.responseText);
},handleSkipAnswer:function(B){var A="gameAction=submitAnswer&questionId="+B;
new Ajax.Request("/quiz.sv",{parameters:A,onComplete:this.processAnswer.bind(this)});
quizQuestionWidget.handleNextQuestion();
},handleAnswer:function(B){var A=Form.serialize($("answerForm"));
new Ajax.Request("/quiz.sv",{parameters:A,onComplete:this.processAnswer.bind(this)});
quizQuestionWidget.handleNextQuestion();
},processAnswer:function(A){$("quizAnswer").update(A.responseText);
},enable:function(){$("submitBtn").enable();
}};
var quizRatingWidget={THUMBS_UP:1,THUMBS_DOWN:2,THUMBS_NONE:3,message:"Saved - Thanks!",handleUp:function(C,B,A){$(B+"message").update(this.message);
Element.setStyle(B+"up",{border:"1px solid #000"});
Element.setStyle(B+"down",{border:"1px solid #ffc"});
this.handleVote(C,this.THUMBS_UP);
if(A){quizQuestionWidget.handleNextQuestion();
}},handleDown:function(C,B,A){$(B+"message").update(this.message);
Element.setStyle(B+"up",{border:"1px solid #ffc"});
Element.setStyle(B+"down",{border:"1px solid #000"});
this.handleVote(C,this.THUMBS_DOWN);
if(A){quizQuestionWidget.handleNextQuestion();
}},handleVote:function(C,A){var B="rateAction=rateQuestion&questionId="+C+"&thumbsId="+A;
new Ajax.Request("/rate.sv",{parameters:B});
}};
var quizInviteWidget={handleInvite:function(){if(!TextUtils.isValidEmail($F("email"))){alert("Please enter a valid email address.");
return ;
}var A=Form.serialize($("inviteForm"));
$("inviteBtn").disabled=true;
$("email").disabled=true;
new Ajax.Request("/invite/action/manual/send",{parameters:A,asynchronous:true,onComplete:this.processInvite.bind(this)});
Tracker.tag("AjaxQuizInvitation");
},processInvite:function(A){Element.show($("inviteSentMessage"));
$("email").value="Email another";
$("email").disabled=false;
$("inviteBtn").disabled=false;
},handleFocus:function(){Element.hide($("inviteSentMessage"));
if($F("email")=="Email a friend to play"||$F("email")=="Email another"){$("email").value="";
}}};
var quizPlayersWidget={STATES:{OFF:0,PLAYERS_ON:1,FRIENDS_ON:2},playersDirty:true,friendsDirty:true,state:0,handlePlayers:function(){if(this.state==this.STATES.PLAYERS_ON){this.state=this.STATES.OFF;
}else{this.state=this.STATES.PLAYERS_ON;
}if(this.state==this.STATES.PLAYERS_ON&&this.playersDirty){var A="refreshPlayers=";
new Ajax.Request("/quiz.sv",{parameters:A,onComplete:this.processPlayers.bind(this)});
}this.paint();
},processPlayers:function(A){$("players").update(A.responseText);
this.playersDirty=false;
setTimeout(function(){quizPlayersWidget.playersDirty=true;
},60000);
},refreshFriends:function(){var A="refreshFriends=";
new Ajax.Request("/quiz.sv",{parameters:A,onComplete:this.processFriends.bind(this)});
},handleFriends:function(){if(this.state==this.STATES.FRIENDS_ON){this.state=this.STATES.OFF;
}else{this.state=this.STATES.FRIENDS_ON;
}if(this.state==this.STATES.FRIENDS_ON&&this.friendsDirty){var A="refreshFriends=";
new Ajax.Request("/quiz.sv",{parameters:A,onComplete:this.processFriends.bind(this)});
}this.paint();
},processFriends:function(A){$("friends").update(A.responseText);
this.friendsDirty=false;
setTimeout(function(){quizPlayersWidget.friendsDirty=true;
},60000);
},paint:function(){switch(this.state){case this.STATES.OFF:$("players").hide();
$("friends").hide();
Element.removeClassName("playersLink","selected");
Element.removeClassName("friendsLink","selected");
break;
case this.STATES.PLAYERS_ON:$("friends").hide();
Element.removeClassName("friendsLink","selected");
$("players").show();
Element.addClassName("playersLink","selected");
break;
case this.STATES.FRIENDS_ON:$("players").hide();
Element.removeClassName("playersLink","selected");
$("friends").show();
Element.addClassName("friendsLink","selected");
break;
}}};
function showq(){var A="";
for(i=0;
i<quizQuestionWidget.questions.length;
i++){A+="["+quizQuestionWidget.questions[i]+"]";
}A+="{position = "+quizQuestionWidget.index+"}";
$("q").update(A);
}var ChatLink={visible:true,toggle:function(){ChatLink.visible=!ChatLink.visible;
if(ChatLink.visible){$("chatShowHideLink").update("Hide All");
$("quizChatComments").show();
}else{$("chatShowHideLink").update("Show Comments");
$("quizChatComments").hide();
}}};
Component.QuizQuestionForm=Class.create(Component.Form,{onSubmit:function(A){if(!TextUtils.hasText($F(this.element.down("textarea")))){A.stop();
new View.ErrorPopup(this.element,{title:"Whoops",content:"Don't forget to provide a question :)"});
return false;
}else{this.element.down("input[type=submit]").disable();
return true;
}}});
var QuestionContentTypeWidget=Class.create();
QuestionContentTypeWidget.prototype={initialize:function(){Event.observe($("contentType"),"change",this.handleChange.bind(this));
},handleChange:function(){$("contentI").hide();
$("contentA").hide();
$("contentV").hide();
switch($F("contentType")){case"I":$("contentI").show();
break;
case"A":$("contentA").show();
break;
case"V":$("contentV").show();
break;
}}};
var QuestionAnswerTypeWidget=Class.create();
QuestionAnswerTypeWidget.prototype={initialize:function(){Event.observe($("answerType"),"change",this.handleChange.bind(this));
},handleChange:function(){$("answerC").hide();
$("answerM").hide();
$("answerP").hide();
switch($F("answerType")){case"C":$("answerC").show();
break;
case"M":$("answerM").show();
break;
case"P":$("answerP").show();
break;
}}};
var SearchWidget=Class.create();
SearchWidget.prototype={STATES:{READY:0,SEARCHING:1},setOptions:function(A){this.options={parent:"search",action:"searchMovies",url:"/myoq.sv"};
Object.extend(this.options,A||{});
},initialize:function(A){this.setOptions(A);
this.search=$A($(this.options.parent).getElementsByClassName("search")).first();
Event.observe(this.search,"focus",this.handleFocus.bind(this));
Event.observe(this.search,"blur",this.handleBlur.bind(this));
Event.observe(this.search,"keypress",this.handleEnter.bind(this));
this.text=this.search.value;
this.button=$A($(this.options.parent).getElementsByClassName("jbutton")).first();
Event.observe(this.button,"click",this.handleSearch.bind(this));
this.results=$A($(this.options.parent).getElementsByClassName("results")).first();
this.loading=$A($(this.options.parent).getElementsByClassName("loading")).first();
},handleFocus:function(){if($F(this.search)==this.text){this.search.value="";
}},handleBlur:function(){if(!TextUtils.hasText($F(this.search))){this.search.value=this.text;
}},handleEnter:function(A){if(A.keyCode==Event.KEY_RETURN){this.handleSearch();
Event.stop(A);
return false;
}else{return true;
}},handleSearch:function(){var A="quizAction="+this.options.action+"&"+Form.Element.serialize(this.search);
new Ajax.Request(this.options.url,{parameters:A,onComplete:this.processSearch.bind(this)});
this.state=this.STATES.SEARCHING;
this.paint();
},processSearch:function(A){$(this.results).update(A.responseText);
this.state=this.STATES.READY;
this.paint();
},paint:function(){switch(this.state){case this.STATES.READY:$(this.loading).hide();
$(this.results).show();
break;
case this.STATES.SEARCHING:$(this.results).hide();
$(this.loading).show();
break;
}}};
var buttonToggle=0;
function flashSaveButton(){if($("saveButton")){if(doFlash){if(buttonToggle==0){$("saveButton").style.background="#ffffff";
$("saveButton").style.color="#dd3333";
buttonToggle=1;
}else{$("saveButton").style.background="#dd3333";
$("saveButton").style.color="#ffffff";
buttonToggle=0;
}}setTimeout("flashSaveButton()",1000);
}}Component.Overlay=Class.create({initialize:function(A){this.element=$(A);
this.element.observe("link:click",this.onClose.bind(this));
},onShow:function(A){this.overlay=new Element("div");
this.element.insert(this.overlay);
new View.Overlay(this.overlay,this.options);
new Component.Binder(this.overlay);
this.overlay.addClassName("overlayComponent");
this.overlay.setStyle({height:this.element.offsetHeight-20+"px"});
},onClose:function(A){this.overlay.remove();
}});
Component.AdOverlay=Class.create(Component.Overlay,{initialize:function($super,A){$super(A);
var B=this.element.readAttribute("ids");
if(B!=""){this.ids=B.strip().split(" ");
}this.counter=0;
document.observe("ads:refresh",this.onShow.bind(this));
},onShow:function($super,A){this.counter++;
if(this.counter==3&&this.ids!=null&&this.ids.size()>0){this.options={placement:this.ids.shift()};
$super(A);
setTimeout(this.onClose.bind(this),30000);
this.counter=0;
}}});
View.Overlay=Class.create(View.TemplateView,{template:new Template("<div class='overlayMessage'>A message from our sponsor(will automatically close in 30 seconds)</div><iframe src='/static/ads/ad.html?tag=Flixster_NEMQ_440x364&pid=#{placement}' width=440 height=385 marginwidth=0 marginheight=0 frameborder=0 scrolling=no></iframe><a class='overlayLink' component='Link' href='#'>Close</a><img style='visibility:hidden;width:0px;height:0px;' src='/api/v1/analytics.pixel?tag=#{placement}&event=Impression&auth_user="+currentUser.id+">")});




