/*	Each time the page is refreshed, the 3 input parameters are passed to the style sheet.
	The input numbers are validated to ensure that they are positive integers. The
	validated number or a default is written back to the input box. I gave the javaScript 
	function parseInt its second optional parameter as 10 otherwise it treats numbers with 
	leading zeros as octal (base 8). For example, parseInt(0011)=9 but parseInt(0011,10)=11.
*/
	
	var source = null;
	var style = null;
	var transformer = null;

function init(formObj){
	source = new ActiveXObject("MSXML2.DOMDocument");
	source.async=false;
	source.load('prime.xml');
	
	style = new ActiveXObject("MSXML2.FreeThreadedDOMDocument");
	style.async=false;
	style.load('prime.xsl');

	transformer = new ActiveXObject("MSXML2.XSLTemplate");
	transformer.stylesheet = style.documentElement;
	refresh(formObj);
}

function refresh(formObj){	
	var startNum = validateInput(formObj.startNo.value);	
	var colNum = validateInput(formObj.columns.value);
	var rowNum = validateInput(formObj.rows.value);

	if(startNum==0){
		formObj.startNo.value=1000;
	}
	else{
		formObj.startNo.value=startNum;
	}
	if(colNum==0){
		formObj.columns.value=12;
	}
	else{
		formObj.columns.value=colNum;
	}	
	if(rowNum==0){
		formObj.rows.value=10;
	}
	else{
		formObj.rows.value=rowNum;
	}	

	var startNo=formObj.startNo.value -1;	
	var columns=formObj.columns.value;
	var rows=formObj.rows.value;

	var xslproc = transformer.createProcessor();
	xslproc.input = source;
	xslproc.addParameter("start", startNo, "");
	xslproc.addParameter("cols", columns, "");
	xslproc.addParameter("rows", rows, "");
	xslproc.transform();
	displayArea.innerHTML = xslproc.output;

	window.scrollTo(0,0);
}

function validateInput (inputVal){
	var inputString = inputVal.toString();
	var validString="";

	for(i=0; i<inputString.length; i++){
		var thisChar = inputString.charAt(i);
		if (thisChar >= "0" && thisChar <= "9"){
			validString += thisChar;
		}
	}
	var answer=((parseInt(validString,10))>0)? parseInt(validString,10):0;
	return answer;
}


