window.addEvent('domready', function() {
var gearsOK = $('gears_status_ok');
var gearsUpdating = $('gears_status_updating');
var gearsNotInstalled = $('gears_status_notinstalled');
var gearsNoPermission = $('gears_status_nopermission');
var gearsStatusMessage = $('gears_status_message');
var gearsError = $('gears_status_error');


gears_start();

function gears_start(){
if (!window.google || !google.gears) {
     // Kein Gears installiert
	gearsNotInstalled.show();
	}
else {
	if (!google.gears.factory.hasPermission) {
          gearsNoPermission.addEvent('click',function() {
			var siteName = 'YPD Challenge 10';
			var icon = 'images/myIcon.png';
			var msg = 'Durch Google Gears werden Spielelemente auf dem PC gespeichert und verringern die Ladezeiten bei den Challenges!'
            google.gears.factory.getPermission(siteName, icon, msg);
			if (google.gears.factory.hasPermission) {
				gearsNoPermission.hide();
				launchWorkerPool();
			}
		}).show();
    }
	else {
	launchWorkerPool();
	}
	 
	
}
}
function echoMessage(text){

gearsStatusMessage.setProperty('text',text).show();
}
function launchWorkerPool(){

			
var workerPool = google.gears.factory.create('beta.workerpool');

// Set the message handler for when a worker sends a message
workerPool.onmessage= function(a,b,message) {
		switch(message.body.type){
		case "updating":
			gearsUpdating.show();
			gearsOK.hide();
			echoMessage('Downloading ('+message.body.filesComplete+" von "+message.body.filesTotal+')');
		
		break;
		case "up2date":
			gearsOK.show();
			gearsUpdating.hide();
			echoMessage('Up2Date V'+message.body.storecurrentVersion);
		
		break;
		case "error":
				echoMessage('Error: '+message.body.message);
				console.log(message);
				gearsUpdating.hide();
				gearsOK.hide();
				gearsError.show()
		break;
	
	}
	
	
	
}

// Create a worker from a JavaScript file on another origin
var childWorkerId = workerPool.createWorkerFromUrl('http://staticfiles.ypdpeople.com/nongears/javascript/gears_config.gw');

// Send a message to the worker.  The worker's onmessage handler in worker.js will decide what to do with this
workerPool.sendMessage('YPDCache', childWorkerId);
}
		

});
