Pfandflaschensammler

By Lnny Last update Jul 22, 2009 — Installed 3,180 times.

There are 8 previous versions of this script.

// ==UserScript==
// @name           Pfandflaschensammler
// @namespace      Ornz-zr-hc-Fpbggl
// @author         lmk
// @license        GPL version 3 or any later version; http://www.gnu.org/copyleft/gpl.html
// @copyright      (c) 2009, lmk.
// @description    Nach beendetem Pfandflaschensammeln wird ein Hinweis auf der zuletzt geoeffneten Seite ausgegeben und es kann zur Pfandflaschensammelseite weitergeleited werden.
// @version        0.3.4
// @include        http://*.pennergame.de/*
// @include        http://pennergame.de/*
// @include        http://*.dossergame.co.uk/*
// @include        http://dossergame.co.uk/*
// @include        http://*.menelgame.pl/*
// @include        http://menelgame.pl/*
// ==/UserScript==


/* Automatic click on "start collecting" | Automatischer Klick auf "Sammeln" */
var autoSubmit = true; //false;

/* Alert messages */
var msgDone1 = "Das Pfandflaschensammeln wurde beendet.";	// "Collecting done";
var msgDone2 = "Klicke auf OK um die Aktionsseite zu " + unescape("%F6") + "ffnen.";	// "Click ok to open actions-page";

/* Captcha select title*/
var strTime = "Zeit: ";  // "Time: "; 


/*-*/

var intervalTime = 4000;
var done = " -/-"; // text after counter reached 0:00
var time = String(new Date().getTime());
var counter = done;
var nameHostTime = window.location.host + "-time";
var nameLastCollectTime = window.location.host + "-LastCollectTime";


try{
	counter = document.getElementById("counter2").innerHTML;
}
catch(err){
	submit();
}

if (counter != done){
	GM_setValue(nameHostTime, time); //store time for each domain to prevent multiple run in same domain
	var checkInterval = window.setInterval(check,intervalTime);
}

function submit(){

	if( (window.location.pathname == "/activities/" || window.location.pathname == "/activities/bottle/") && autoSubmit){
		
		var lastCollectTime = GM_getValue(nameLastCollectTime,0);
		
		var evt = document.createEvent("HTMLEvents");
		evt.initEvent("change", true, true);
		
		var timeOptions = document.getElementsByName("time")[0];
		timeOptions.selectedIndex = lastCollectTime;
		timeOptions.dispatchEvent(evt);
		timeOptions.addEventListener( "change",
		                              function(){  GM_setValue(nameLastCollectTime, document.getElementsByName("time")[0].selectedIndex);
		                                           timeOptionsCaptcha.selectedIndex = timeOptions.selectedIndex; },
		                              true );
		
		var timeOptionsCaptcha = timeOptions.cloneNode(true);
		timeOptionsCaptcha.selectedIndex = timeOptions.selectedIndex;
		timeOptionsCaptcha.addEventListener( "change",
		                                     function(){ GM_setValue(nameLastCollectTime, document.getElementsByName("time")[0].selectedIndex);
		                                                 timeOptions.selectedIndex = timeOptionsCaptcha.selectedIndex;},
		                                     true);

		var captchaHolder = document.getElementById("holder");
		var infoText = captchaHolder.insertBefore(document.createElement('p'),captchaHolder.getElementsByTagName("span")[1]);
		infoText.innerHTML = strTime;
		infoText.appendChild(timeOptionsCaptcha);
		infoText.style.margin = "0px";
		infoText.style.marginTop = "8px";
		
		var cancelButton = captchaHolder.getElementsByClassName("cancel")[0];
		cancelButton.style.margin = "0px";
		cancelButton.style.marginLeft = "10px";
		infoText.appendChild(cancelButton);
		
		setTimeout("document.getElementsByName('Submit2')[0].click();", 1000); // fails often if to fast
	}
}

function check(){

	counter = document.getElementById("counter2").innerHTML;
	
	if(GM_getValue(nameHostTime) != time){ //script started somewhere else
		clearInterval(checkInterval);
		return 0;
	}

	if(counter == done){
		if(window.location.pathname == "/activities/" || window.location.pathname == "/activities/bottle/" ){
			setTimeout(reload, 1000);
		} else {
			setTimeout(refer, 1000);
		}
		clearInterval(checkInterval); // stop script
	}
}

function refer(){
	var box = window.confirm( msgDone1 + "\n" + msgDone2 );
		if(box == true){
			window.location.href = window.location.protocol + "//" + window.location.host + "/activities/";
		}
}

function reload(){
	alert(msgDone1);
	window.location.replace( window.location.protocol + "//" + window.location.host + "/activities/" );
}