﻿/* ScreenState library v0.1 */

 // screen state object
 function ScreenState() {
	this.inputsValues = new Array();
	this.inputsChecks = new Array();
	
	this.selectsValues = new Array();
 }
 
 
 // the parentElement parameter defines from which element we will
// start looking at for child nodes. It should be in the form 'element.class' ex.(td.LeftTableCellContent) .
function saveScreenState(parentElement) {
	var screenState = new ScreenState();
	
	var searchString = parentElement + ' ';
	
	var tmp;
	
	tmp = $$(searchString + 'input');
	for(var i = 0; i < tmp.size(); i++) {
		screenState.inputsValues[i] = tmp[i].value;
		screenState.inputsChecks[i] = tmp[i].checked;
	}
	
	tmp = $$(searchString + 'select');
	for(var i = 0; i < tmp.size(); i++) {
		screenState.selectsValues[i] = tmp[i].value;
	}
	
	return screenState;
}

function loadScreenState(oldScreenState, parentElement) {
	var searchString = parentElement + ' ';
	
	var newInputs = $$(searchString + 'input');
	var newSelects = $$(searchString + 'select');
	
	for(var i = 0; i < oldScreenState.inputsValues.size(); i++) {
		newInputs[i].value = oldScreenState.inputsValues[i];
		newInputs[i].checked = oldScreenState.inputsChecks[i];
	}
	
	for(var i = 0; i < oldScreenState.selectsValues.size(); i++) {
		newSelects[i].value = oldScreenState.selectsValues[i];
	}

	searchChanged = false;
}


