Thumb

Filmwise Invisibles Answer Checker

By Mark Husson Last update Jul 29, 2009 — Installed 552 times. Daily Installs: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

There are 3 previous versions of this script.

// ==UserScript==
// @name	  		Filmwise Invisibles Answer Checker
// @author			Mark Husson <mhusson atte gmail dought com>
// @namespace		http://michaelhusson.com/mark/greasemonkey/#filmwiseAnswerCheck
// @description		Adds a "Check Answer" Icon next to each movie field in Filmwise's Invisibles. Clicking that icon will tell you if your answer was right or not.
// @include	 		http://filmwise.com/invisibles/invisible_*
// @include	 		http://www.filmwise.com/invisibles/invisible_*
// ==/UserScript==  

var inputArray = document.getElementsByTagName("input");
var imgFw = "data:image/gif;base64,R0lGODlhEAAQAOYAAAAAAP///wEBAgMFBwUICwgOExgsOwUJDAwVHAcMEBgtPBcrOUmGsk6Rvk2NukyLuC9XclKWxjprjDhnhz5zlDNeelql1DlohkyKsgcOEhAeJg4aIVyp11qm0yxRZxgsOF+v3FSawlOZwB85SDBYbl6u2WO442Gz31GXuixRZVmly0WAnWjA62a852W65FSbvhYoMRgtN2W75V6w1UuLqkmIpmjB6k2PrUiFojRgdWrE7lmlx0iFoRIhKB87RzJecQgPEgMGBwABAQECAv7+/v39/fz8/Pf39/Hx8e3t7evr6+rq6ufn59vb29nZ2dXV1cLCwr29vbu7u7q6uri4uLa2trS0tLGxsYmJiYeHh4WFhYSEhIGBgYCAgF5eXlJSUk9PT0tLS0hISCwsLB4eHhsbGxcXFwICAv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAGgALAAAAAAQABAAAAeOgAGCgkZdZl1Fg4qDRkMGDAoCiYuDTQgOEQ8LVZSDSAQTDRIFTJ2DURoQGZymAUcDFRQfU60BSAcYFhdetVgjHB0eWq1JCSIgIRtOrVspJyUkXLVlKiYoQUtKUKZnMi0vAl1AMVSdYTUsLis5NDhgnVYwNjr0OjxfnURCPjczOz89pJgickUMmTFZniwKBAA7";
var imgQm = "data:image/gif;base64,R0lGODlhEAAQAOYAAAAAAP///+Xo61treKjK45q50Gp+jYeWoZajrZWirMfP1efr7mV6iazQ6KrO5qnM5KjL46TG3qHC2Zy905q60JKwxX2XqXaOn6jK4n6XqXePoKLC2ZOwxWyBkHGBjJelr6vQ6KvR6KjN5G6Gla3T6qzR6KrP5oiluIGdrnyWp19yfnSGkYeXoZelrpW3y11zf6/X7q7V7KzT6qnQ5pe5zYqpu4CdroWjtF9zf19yfXWJlMjR1pm/0llverHc8rDa8J3C1pq/0lpwe7Lc8rHa8K/Y7oytvoWltWqDkFlueXGLmJyut5mqs8rU2YqtvrXj+KjS5qbQ5J/H2oiru3+frn6erWyHlLTh9rPf9LHd8rDc8K/b76nT56bP46TN4JC0xY6xwomru2Z/i7Ld8q/a7q3X63GLl6a8xputtcvW24quvbXj93+frXOPmmN6hHiPmYyhqpuutufs7v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAHMALAAAAAAQABAAAAfjgAGCAQoJHgMDHgkKg4MCCAYZFRsSHBYGCAKOLBcUBBgQBKIFFweaAS0aEQ+sDCmsDxEaLQE7HRMOJg4OFie7uhMdOx8oISAhxiAlIMwhDTYfKzQyJDLULjUk1dY0KzkiMeHhNyPi4SIqODNF7EVAL0ZFMDDsMzg6QT9E+khI+vr7guhgcmRIlixgkvDIMsQHwzFHmDQx4wULljA9ymA5YxGLFyVNAqCpsuUKFCFirHy5cmVLFTSCFsBhE+UJFzVOyKzpQgXOgkFylrSZIkWLFilT2iyR00hQmjhv3Lh5EydNo0AAOw%3D%3D";

function init() {
	if(typeof(inputArray[0] != "undefined")){
		var j = 0;
		for(var i=0;i<inputArray.length-1;i++){
			if(inputArray[i].getAttribute("type") == "text" && j<8){
				inputArray[i].size = inputArray[i].size - 2;
			
				var ansChk = document.createElement('img');
				ansChk.setAttribute('id', inputArray[i].name+'img');
				ansChk.setAttribute('src', imgQm);
				ansChk.setAttribute('style', 'position:relative;top:4px;margin-left:6px;width:16;height:16;cursor:pointer;');
				ansChk.setAttribute('title', 'Click to Check Answer');
				ansChk.setAttribute('onclick', "checkAnswer(this.parentNode.getElementsByTagName('input')[0])");
		
				inputArray[i].parentNode.insertBefore(ansChk, inputArray[i].nextSibling);
		
				j++;
			}
		}
		document.body.innerHTML += '<iframe id="hiddenIframe" name="hiddenIframe" src="about:blank" type="hidden" style="display:none;"></iframe>';	
	}
}

function runRequest(url, elem) {
	//var req = new XMLHttpRequest();
	//req.open("GET", url, true);
	//req.onreadystatechange = function() {
	//	if (req.readyState == 4) {
	//		var rt = req.responseText;
	//		var hiddenDiv = document.createElement("div");
	//		hiddenDiv.setAttribute("style","display:none;");
	//		hiddenDiv.innerHTML = rt;
	//	}
	//}
	//req.send(null);
	
	// Let's try this without ajax...
	hiddenIframe.document.location = url;
	myElem = elem;
	setTimeout(myAlert, 2000);
}

function myAlert(elem) {
	if(hiddenIframe.document.location == "about:blank"){
		setTimeout("myAlert()", 2000);
	}else{
		var URLString = "" + hiddenIframe.document.location;
		var indx = URLString.indexOf("score=");
		if (indx != -1) {
			var tmp = URLString.substring(indx + 6, URLString.length)
			indx = tmp.indexOf("&");
			if (indx != -1) { 
				var score = tmp.substring(0, indx); 
			}else { 
				var score = "oops"; 
			}
		}
		document.getElementById(myElem.name+"img").src = "data:image/gif;base64,R0lGODlhEAAQAOYAAAAAAP///+Xo61treKjK45q50Gp+jYeWoZajrZWirMfP1efr7mV6iazQ6KrO5qnM5KjL46TG3qHC2Zy905q60JKwxX2XqXaOn6jK4n6XqXePoKLC2ZOwxWyBkHGBjJelr6vQ6KvR6KjN5G6Gla3T6qzR6KrP5oiluIGdrnyWp19yfnSGkYeXoZelrpW3y11zf6/X7q7V7KzT6qnQ5pe5zYqpu4CdroWjtF9zf19yfXWJlMjR1pm/0llverHc8rDa8J3C1pq/0lpwe7Lc8rHa8K/Y7oytvoWltWqDkFlueXGLmJyut5mqs8rU2YqtvrXj+KjS5qbQ5J/H2oiru3+frn6erWyHlLTh9rPf9LHd8rDc8K/b76nT56bP46TN4JC0xY6xwomru2Z/i7Ld8q/a7q3X63GLl6a8xputtcvW24quvbXj93+frXOPmmN6hHiPmYyhqpuutufs7v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAHMALAAAAAAQABAAAAfjgAGCAQoJHgMDHgkKg4MCCAYZFRsSHBYGCAKOLBcUBBgQBKIFFweaAS0aEQ+sDCmsDxEaLQE7HRMOJg4OFie7uhMdOx8oISAhxiAlIMwhDTYfKzQyJDLULjUk1dY0KzkiMeHhNyPi4SIqODNF7EVAL0ZFMDDsMzg6QT9E+khI+vr7guhgcmRIlixgkvDIMsQHwzFHmDQx4wULljA9ymA5YxGLFyVNAqCpsuUKFCFirHy5cmVLFTSCFsBhE+UJFzVOyKzpQgXOgkFylrSZIkWLFilT2iyR00hQmjhv3Lh5EydNo0AAOw%3D%3D";
		
		if(score == 1){
			myElem.style.backgroundColor = "#BCF5BC";
			myElem.style.borderWidth = "1px";
			myElem.style.borderColor = "#7F9DB9";
			myElem.style.borderStyle = "solid";
		}else if(score == 0){
			myElem.style.backgroundColor = "#E7BCBC";
			myElem.style.borderWidth = "1px";
			myElem.style.borderColor = "#7F9DB9";
			myElem.style.borderStyle = "solid";
		}
		hiddenIframe.document.location == "about:blank";
	}
}

function checkAnswer(elem) {
	var imgThrobber = "data:image/gif;base64,R0lGODlhEAAQAKIAAAAAABgYGDExMUpKSmNjY4SEhK2trQAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgAAACwAAAAAEAAQAAADRQi617cQhKDcA8asOevNmcJREaiJZISdarsIggsZBRzLtGHLWKHfPBrPNRi4CoVFsahCIhVLI4BAUDiTUCmVasWqttVIAgAh+QQFCgAAACwAAAAAEAAQAAADRAi60bEQCKHcA+esOevNmcJREaiJZISdarsMgwsZBhzLdA3LQL7zPQOwRSC4DIVFsahC0hRLI6CQnDqVUipVgXRpq5AEACH5BAUKAAAALAAAAAAQABAAAANECLrSshCModwDIaw5682ZwlERqIlkhJ1quxCECx0HHMt0DctAvvO9A7BVKLgMhkWxqEIiFUsjwCB1JqHVwnN6VWm1qgQAIfkEBQoAAAAsAAAAABAAEAAAA0YIutOzEBCi3ANCrDnrzZnCURGoiWSEnWq7FIULBQEcy3QNy0C+870AsGW4qQ6HRbF4RCYBhaXCYFA4nwDqlFoFIF3cLiQBACH5BAUKAAAALAAAAAAQABAAAANECLrUtBCUotwDY6w5682ZwlERqIlkhJ1quxipCwhCAcszDRs4LRg8XE7YAroCgRcwCEEiFcvg4aBwJqHSKRXwbGm3kAQAIfkEBQoAAAAsAAAAABAAEAAAA0QIutW1EJgHHCVkzamawli3RQCYKYZBfufqSuqrDEMau3SdyvkuA7Tf6nBwCQQLIpF0PCqURUAgoGgin9HptHolaamRBAAh+QQFCgAAACwAAAAAEAAQAAADQgi6Vr0QGKOcq4VNKnn5WTdFABh2JJauy3GwC0G4LyvPLnznMCD3qUBgNRgshEJSsahADgECgWJpbD6j0WmVhJVGEgAh+QQFCgAAACwAAAAAEAAQAAADRQi61rYQnKPcA6asOevNmcJREXhJZIRpagsFgQsVBRzLdA3LQL7zPRYwIhC4CIRFsahCIhVLI2AwUDiTUCmVasWqttVIAgA7";
	document.getElementById(elem.name+"img").src = imgThrobber;
	baseUrl = "http://www.filmwise.com/cgi-bin/score.cgi?name=&form="+document.getElementsByTagName('input')[0].value+"&redirect="+document.getElementsByTagName('input')[1].value+"&";
	url = baseUrl + elem.name + "=" + elem.value;
	//alert(elem.name + "=" + elem.value);
	runRequest(url, elem);
}

function embedFunction(s) {
document.body.appendChild(document.createElement('script')).innerHTML=s.toString().replace(/([\s\S]*?return;){2}([\s\S]*)}/,'$2');
}

embedFunction(checkAnswer);
embedFunction(runRequest);
embedFunction(myAlert);


window.addEventListener('load', init, true);