/***************************************************************************

	Author 			:Charles B. Cossé 
	
	Email			:ccosse@asymptopia.org
	
	Website			:http://www.asymptopia.org
	
	Copyright		:(C) 2004-2005 Asymptopia Software.
	
 ***************************************************************************/
						//file:mv03.js
/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version. (Please note that if you use this *
 *   code you must give credit by including the Author and Copyright       *
 *   info at the top of this file).                                        *
 ***************************************************************************/
function make_cookie_string(){
	cs="";
	for(midx=0;midx<M;midx++){
		for(nidx=0;nidx<N;nidx++){
			cs+=xcells[midx][nidx].VALUE;
			if(midx==M-1 && nidx==N-1){;}
			else cs+=",";//use toPrecision() here!! (or maybe better on load)
		}
	}
	return cs;
}
function update_times_table(midx,nidx,newvalue){
	//assuming these are always floats 
	xcells[midx][nidx].removeChild(xcells[midx][nidx].lastChild);
	xcells[midx][nidx].appendChild(document.createTextNode(newvalue));
	xcells[midx][nidx].VALUE=parseFloat(newvalue);
}
function get_times_table(){
	//called after times_to_cells
	timesTable=document.createElement("table");
	timesTable.cellPadding="0";
	timesTable.cellSpacing="1";
	timesTable.style.backgroundColor="AAAAAA";
	timesTable.style.color="0000AA";

	xrows=new Array();
	xcells=new Array();
	for(midx=0;midx<M;midx++){
		xcells[midx]=new Array();
		xrows[midx]=timesTable.insertRow(midx);
		xrows[midx].align="center";
		for(nidx=0;nidx<N;nidx++){
			xcells[midx][nidx]=xrows[midx].insertCell(nidx);
			xcells[midx][nidx].bgColor="AAFFAA";
			xcells[midx][nidx].setAttribute("height",cellsize);
			xcells[midx][nidx].setAttribute("width",cellsize);
			xcells[midx][nidx].left=nidx*cellsize;
			xcells[midx][nidx].top=midx*cellsize;
			if(midx==0 && nidx>0 && nidx<N-2){
				xcells[midx][nidx].appendChild(document.createTextNode(cells[midx][nidx]));
				xcells[midx][nidx].VALUE=cells[midx][nidx];
			}
			else if(midx==0 && nidx==N-2){
				xcells[midx][nidx].appendChild(document.createTextNode(cells[midx][nidx]));
				xcells[midx][nidx].VALUE=cells[midx][nidx];
			}
			else if(0<midx && midx<M-1 && nidx==N-1){
				var b;
				if(navigator.appName=="Konqueror")b=document.createElement("button");
				else b=document.createElement("input");
				b.type="submit";//calls add_keyword_to_session
				b.id=midx; 
				b.value=cells[midx][nidx];
				if(navigator.appName=="Microsoft Internet Explorer")b.attachEvent("onclick",redo);
				else b.addEventListener("click",redo,false);
				b.style.height=cellsize;
				b.style.width=cellsize;
			
				xcells[midx][nidx].appendChild(b);
				xcells[midx][nidx].VALUE=cells[midx][nidx];
			}
			else if(nidx==0 && midx>0 && midx <M-1){
				xcells[midx][nidx].appendChild(document.createTextNode(cells[midx][nidx]));
				xcells[midx][nidx].VALUE=cells[midx][nidx];
			}
			else if(nidx==0 && midx==M-1){
				xcells[midx][nidx].appendChild(document.createTextNode(cells[midx][nidx]));
				xcells[midx][nidx].VALUE=cells[midx][nidx];
				//alert(xcells[midx][nidx].value);
			}
			else{
				if(cells[midx][nidx]==0){}
				else xcells[midx][nidx].appendChild(document.createTextNode(cells[midx][nidx]));
				xcells[midx][nidx].VALUE=cells[midx][nidx];
			}
		}
	}

	return timesTable;	
}
function times_to_cells(){
	//these could be floats,strings, etc; need to handle w.r.t. M,N;
	var times=theCookie.times.split(',');
	var tidx=0;
	var cells=new Array();
	for(midx=0;midx<M;midx++){
		cells[midx]=new Array();
		for(nidx=0;nidx<N;nidx++){

			//cells[midx][nidx]=null;
			if(midx==M-1 && nidx==N-1){
				cells[midx][nidx]=parseInt(times[tidx]);//"0"->0
			}
			else if(midx==0 && nidx>0 && nidx<N-2){
				cells[midx][nidx]=parseInt(times[tidx]);//"string" -> Number
			}
			else if(midx==0 && nidx==N-2){
				cells[midx][nidx]=times[tidx];//"string" 
				//times+="TOTAL,";
			}
			else if(0<midx && midx<M-1 && nidx==N-1){
				cells[midx][nidx]=times[tidx];//"redo"
			}
			else if(nidx==0 && midx>0 && midx <M-1){
				cells[midx][nidx]=times[tidx];//" midx+'x' "
				//times+=midx+"x,";
			}
			else if(nidx==0 && midx==M-1){
				cells[midx][nidx]=times[tidx];//"string" 
				//times+="TOTAL,";
			}
			else{
				cells[midx][nidx]=parseFloat(times[tidx]);//interior time values
			}
			tidx++;

		}
	}
	return cells;
}
function create_default_times(){
	var times="";
	for(midx=0;midx<M;midx++){
		for(nidx=0;nidx<N;nidx++){
			
			if(midx==M-1 && nidx==N-1){
				times+="0";
			}
			else if(midx==0 && nidx>0 && nidx<N-2){
				times+=nidx+",";
			}
			else if(midx==0 && nidx==N-2){
				times+="TOTAL,";
			}
			else if(0<midx && midx<M-1 && nidx==N-1){
				times+="redo,";
			}
			else if(nidx==0 && midx>0 && midx <M-1){
				times+=midx+"x,";
			}
			else if(nidx==0 && midx==M-1){
				times+="AVG,";
			}
			else{
				times+="0,";
			}
						
		}
	}
	return times;
}
