//scripts for surchargedFlow.html
//10/2/2009
//jquery and dom are used interchageably even to do the same task-but is ok

	function createTable()
	{
		addtable("t",3,12);
		$('tr:eq(2)').css('background-color','#FAEBD7');
		var k=12;
		while(k){k--;
			write('t',1,k,'-');
		}

		//insert unit selectors
		//	function unit_convert(col,startrow,selector_index)

		var s1='<SELECT id="flow_unit2" style="background-color: white; width: 100px" onchange="unit_convert(6,4,5)"><OPTION value="0.6464124">MGD<OPTION value="448.8">GPM<OPTION SELECTED value="1.0">CFS<OPTION value="0.028316847">cu. m/s</select>'
		cell('t',2,6).html(s1);

		var s2='<SELECT id="velocity_unit" style="background-color: white; width: 100px" onchange="unit_convert(8,4,6)"><OPTION SELECTED value="1.0">ft/s<OPTION value="1/3.28084">m/s<OPTION value="3600/5280">Mi/hr</select>'
		cell('t',2,8).html(s2);
	
		var s3='<SELECT id="depth_unit" style="background-color: white; width: 100px" onchange="unit_convert(12,4,7)"><OPTION selected value="1.0">Feet<OPTION value="12.0">Inch<OPTION value="0.3048">Meter</SELECT>'
		cell('t',2,12).html(s3);

		//results to table

		write('t',0,0,'S. No.')
		write('t',0,1,'Pipe Length')
		write('t',0,2,'Width or Dia')
		write('t',0,3,'Height or Dia')
		write('t',0,4,'Manning\'s n')
		write('t',0,5,'Flow')
		write('t',0,6,'Minor Losses<br/>Factor, k')
		write('t',0,7,'Velocity')
		write('t',0,8,'Friction<br/>Slope, S<sub>f</sub>')
		write('t',0,9,'Frictional<br/>Head Loss, H<sub>f</sub>')
		write('t',0,10,'Velocity<br/>Head Loss, HL<sub>v</sub>')
		write('t',0,11,'Total HL')
		
		//third row to contain col numbers
		var k=12;
		while(k){k--;
			write('t',2,k,'('+eval(k+1)+')')
		}
		write('t',2,0,"-")

		cell('t',2,2).text('ft')
		cell('t',2,3).text('ft')
		cell('t',2,4).text('ft')
		cell('t',2,10).text('ft')
		cell('t',2,11).text('ft')

		//add slope toggle button
		gt('td')[20].innerHTML='<INPUT TYPE="button" VALUE="slope toggle" onClick="toggleSlope()">'
		gt('caption')[0].innerHTML='Head Loss Calculation for Surcharged Pipes'

	}

	function updateTable(resultArray)
	{

		var res=resultArray;
		//console.log(res);
		var decimals=document.getElementById('decimal_set').value;

		//circular?
		var circular=document.getElementById('radio1').checked;

		var r=get('tr').length+1;


		//cell('t',r,1).text(r-3);	//S. No on 1st col
		if(circular)
			{cell('t',r,1).html('&Oslash '+eval(r-3));}	//S. No on 1st col
		else
			{cell('t',r,1).html('&#35 '+eval(r-3));}	//S. No on 1st col


		for(var c=2;c<13;c++){
			//option bases are different for array (=0) and column(=1)
			var k=c-2;
			//console.log(k+': \t'+c+' :\t '+res[k])

			datawrite('t',r,c,res[k].toString())	//send data to be stored as value but do not show 
								//toString added to assure that 0 value is also sent to value; otherwise 0.0 could not be stored as value!!
		}

		changeDecimals();	//show data
	}

	function calcSurchargedFlow()
	{	
		//read data form
		var b=eval($('#width').val())/$('#widthunit').val();
		var t=eval($('#height').val())/$('#heightunit').val();
		var linearFeet=eval($('#pipeLength').val())

		var Q=eval($('#flow').val())*gd('flow_unit1').value;

		var n=eval($('#manning').val())
		var k=eval($('#k').val())

		//which radio button is selected?
		if (document.getElementById('radio1').checked==true){
			//cl('CIRCULAR PIPE')
			var p=new CircularPipe(b,n,0.5)	//pipe slope is meaningless
		}
		else
		{	
			//cl('RECTANGULAR PIPE')
			var p=new RectangularPipe(b,t,n,0.5)	//pipe slope is meaningless
		}

		var results=[];
		results=p.surchargedHeadLoss(Q,linearFeet,k);
		//console.log(results);

		updateTable(results);
		calcEquivCircularDia();
		addLatexEquation();
	}

	function addLatexEquation(){
		if(document.getElementById('radio1').checked==true){
			//toWindow('myWindow',eqn1(createDataObject()));	//circular pipe
			$('#equation').html('<hr />' + eqn1(createDataObject()));
		}else{
			//toWindow('myWindow',eqn2(createDataObject()));	//rectangular pipe
			$('#equation').html('<hr />' + eqn2(createDataObject()));
		}
	}

	function createDataObject(){
		//read data form

		var linearFeet=eval($('#pipeLength').val());
		var Q=eval($('#flow').val())*gd('flow_unit1').value;
		var n=eval($('#manning').val());
		var k=eval($('#k').val());

		//which radio button is selected?
		if (document.getElementById('radio1').checked==true){
			//cl('CIRCULAR PIPE')
			var t=eval($('#height').val())/$('#heightunit').val();
			return {n:n, Q:Q, D:t, L:linearFeet, k:k};		
		}
		else
		{	
			//cl('RECTANGULAR PIPE')
			var b=eval($('#width').val())/$('#widthunit').val();
			var t=eval($('#height').val())/$('#heightunit').val();
			var w=eval($('#height').val())/$('#heightunit').val();
			return {n:n, Q:Q, W:b, H:t, L:linearFeet, k:k};		
		}
	}

	function unit_convert(col,startrow,selector_index)
	{	
		var converter=eval($('select:eq('+selector_index+')').val());

		var decimals=gd('decimal_set').value;

		//console.log('converter = '+converter);
		//console.log('decimals = '+decimals);

		//find the last row index
		var rows=countRow('t');
		
		for(var k=startrow;k<=rows;k++)
		{
			var c=cell('t',k,col);
			c.css('background','pink');
			var x=c.attr('value')*1.0;
			//console.log('val = '+x);
			var y=(x*converter).toFixed(decimals);
			//console.log('y = '+y)
			c.text(y);
		}
	}

	function syncronizePipe()
	{
		if (gd('radio1').checked)
		{	
			//console.log('Deactivate height and show same as diameter');
			var w=gd('width').value;
			gd('widthtext').innerHTML=' Diameter';
			gd('heighttext').innerHTML=' Diameter';
			
			gd('height').value=w;
			gd('heightunit')[gd('widthunit').selectedIndex].selected=1;

			gd('height').disabled=1;
			gd('heightunit').disabled=1;
			$('#equivalent').hide('slow'); //eqv circular dia
		}
		else
		{
			//console.log('Activate height');
			gd('height').disabled=0;
			gd('heightunit').disabled=0;
			gd('widthtext').innerHTML=' Width';
			gd('heighttext').innerHTML=' Height';
			$('#equivalent').show('slow'); //eqv circular dia
		}
	}

	function changeDecimals()
	{
		//revert unit changer
		gd('flow_unit2').selectedIndex=2;
		gd('velocity_unit').selectedIndex=0;
		gd('depth_unit').selectedIndex=0;

		var decimals=gd('decimal_set').value;
		var rows=gt('tr').length;
		var cols=[6,8,12];
		for(var c=0;c<3;c++){
			unit_convert(cols[c],4,5+c);
		}

		var cols=[2,3,4,5,7,9,10,11];
		for(var c=0;c<8;c++){
			for(var r=4;r<rows+1;r++)
			{
				var mycell=cell('t',r,cols[c]);
				var x=mycell.attr('value')*1.0;
				var y=x.toFixed(decimals);
				mycell.text(y);
			}
		}		
	}

	function calcEquivCircularDia(){
		//calculate equivalent circular dia
		//read data form
		var b=eval($('#width').val())/$('#widthunit').val();
		var t=eval($('#height').val())/$('#heightunit').val();
		var pipe=new RectangularSection(b,t)
		var f=$('#equivdia_unit').val()
		var eqvDia=(pipe.getEquivalentCircular()*f).toFixed(3)
		$('#diameter').val(eqvDia)
	}

	function toggleSlope(){
		var reg=/in/gi;	//regular expression
		var decimals=gd('decimal_set').value;		

		for(r=4;r<gt('tr').length+1;r++)
		{
			    var c=cell('t',r,9);
			var s=c.text()
			    var x=c.attr('value')*1.0;

			if(s.match(reg))
				{c.text(x.toFixed(decimals))}
			else
			   {c.text('1 in '+(1/x).toFixed(0));}		//optional unit for friction loss 1 ft per x ft

		}
	}


