﻿function BK(){
	this.registeredObjects = [];
}

function BK_process(msg){
	if(!$BK.isArray(msg)) return;
	
	switch(msg[0]){
		case 'getNetPage':
			this.getNetPage(msg[1]);
			break;
			
		default:
			break;
	}
	
	if($BK.passToRegisteredObjects(msg)){
		// réussite
	} else {
		// échec
	}
}

function BK_passToRegisteredObjects(o){
	for(var i = 0; i < this.registeredObjects.length; i++){
		if(this.registeredObjects[i].process(msg)){
			return true;
		}
	}
	
	return false;
}

function BK_isArray(o){
	return o instanceof Array;
}

function BK_registerObject(o){
	for(var i = 0; i < this.registeredObjects.length; i++){
		if(this.registeredObjects[i] == o) return false;
	}

	this.registeredObjects.push(o);
	
	return true;
}

function BK_passToRegisteredObjects(msg){
	for(var i = 0; i < this.registeredObjects.length; i++){
		if(this.registeredObjects[i].process(msg)) return true;
	}
	
	return false;
}

function BK_readXML(data,o){
	$.ajax({
		url: data.URL,
		dataType: data.dataType,
		type: data.type,
		success: function(xml){
			o.receiveData($(xml),data.dataType);
		}
	});
}

function BK_getNetPage(msg){
	var page = msg[0];
	
	document.location.href = page;
}

function BK_nothing(){
	return false;
}

BK.prototype.process					= BK_process;
BK.prototype.registerObject				= BK_registerObject;
BK.prototype.passToRegisteredObjects	= BK_passToRegisteredObjects;
BK.prototype.isArray					= BK_isArray;
BK.prototype.readXML					= BK_readXML;
BK.prototype.getNetPage					= BK_getNetPage;
BK.prototype.nothing					= BK_nothing;

$BK = new BK();
