/*
 * Following methods implement the server communication. 
 */



/*
 * Following methods are legacy fakes. Need to get replaced one after another with real server-communication.
 */

/**
 * holds calling information
 */
var sessionData = new Object();

// starts the fake-ajax-call
function searchForIdAction (deviceView, ID) {
	var ran;
	if (!sessionData.searchForId) sessionData.searchForId = new Array();
	// find a free slot
	do {
		ran = Math.round(Math.random()*10000);
	} while (sessionData.searchForId[ran] != undefined);

	// save session data
	sessionData.searchForId[ran] = {device : deviceView,
									id: ID
									};

	deviceView.message = "Installiere ...";
	deviceView.model.setField('state','searching');

	// make server call :)
	setTimeout('foundId('+ran+')', 2500);
}

// may or may not find the given id
function foundId(index) {
	// even numbers are found, odd not.
	var idInt = parseInt(sessionData.searchForId[index].id.replace(/-/g, ''));
	if (idInt % 2 != 0) {
		sessionData.searchForId[index].device.message = "Ger&auml;t mit ID " + sessionData.searchForId[index].id + " ("+idInt+") konnte nicht gefunden werden.";
		sessionData.searchForId[index].device.model.setField('state','new');
	} else {
		sessionData.searchForId[index].device.message = "Ger&auml;t "+ sessionData.searchForId[index].id + " ("+idInt+") installiert.";
		sessionData.searchForId[index].device.model.deviceID = idInt ;
		sessionData.searchForId[index].device.model.setField('name','Ger&auml;t '+ idInt);
		sessionData.searchForId[index].device.model.setField('state','need-details');
	}
	sessionData.searchForId[index] = undefined;
}

// simple fake-ajax-starter
function saveDeviceDetails(deviceView, type, vendor, model) {
	var ran;
	if (!sessionData.saveDetails) sessionData.saveDetails = new Array();
	// find a free slot
	do {
		ran = Math.round(Math.random()*10000);
	} while (sessionData.saveDetails[ran] != undefined);

	sessionData.saveDetails[ran] = {device: deviceView, type: type, vendor: vendor, model: model};
	deviceView.message = "Wird gespeichert...";
	deviceView.model.setField('state','saving');
	setTimeout('detailsSaved('+ ran + ')', 2500);
}

// saves the details of the device, does always succeed.
function detailsSaved(index) {
	var sObj = sessionData.saveDetails[index];
	sObj.device.model.setField('deviceType', sObj.type);
	sObj.device.model.setField('deviceVendor', sObj.vendor);
	sObj.device.model.setField('deviceModel', sObj.model);
	sObj.device.model.setField('name', sObj.vendor + ' ' + sObj.model);
	sObj.device.model.setField('state', 'final');

	sessionData.saveDetails[index] = undefined;
}