packages feed

paprika-0.1.0.1: static/ctrl/default.js

window.addEventListener( 'load', function(event){

    var commands = new Array('s','f','b','fl','fr','bl','br','tl','tr');
    var ws = new WebSocket('ws://' + window.location.host + '/default');
    
    document.getElementById('title').style.background = '#FF0000';
    ws.onopen = function() {
	document.getElementById('title').style.background = '#00FF00';
    };
	
    ws.onclose = function(event) {
	document.getElementById('title').style.background = '#FF0000';
    };
	
    ws.onmessage = function(event) {
	console.log('onmessage: ' + event.data);
	var json = JSON.parse(event.data);
	if(json.type === 'command') {
	    if (json.name === 'al') {
		document.getElementById('al').value = json.level;
	    } else if(json.name === 'ar') {
		document.getElementById('ar').value = json.level;
	    } else {
	    for(var i = 0; i < commands.length; i++) {
		var cmd = commands[i];
		var elem = document.getElementById(cmd);
		if(cmd === json.name){
		    elem.style.background = '#FF9090';
		}else{
		    elem.style.background = '';
		}
	    }
	    }
	}
    };

    function clickListenerGen(cmd){
	var listener = function(event) {
	    var data = { type: 'command', name: cmd};
	    var json = JSON.stringify(data);
	    ws.send(json);
	}
	return listener;
    }
    
    for(var i = 0; i < commands.length; i++) {
	var cmd = commands[i];
	document.getElementById(cmd).addEventListener('click', clickListenerGen(cmd));	
    }
    

    document.getElementById('al').addEventListener('change', function(event){
	var lev  = parseInt(document.getElementById('al').value);
	var data = { type: 'command', name: 'al', level: lev};
	var json = JSON.stringify(data);
	ws.send(json);
    });
    
    document.getElementById('ar').addEventListener('change', function(event){
	var lev  = parseInt(document.getElementById('ar').value);
	var data = { type: 'command', name: 'ar', level: lev};
	var json = JSON.stringify(data);
	ws.send(json);
    });	
    
}, false );