var Fit = {Groove:0,GrooveAndProtrusion:1,BottomStop:2,TopStop:3};
var Aspect = {FullCircle:1,HalfCircle:2,QuarterCircle:4};
var Container = {Any:00,Drum55:01,Drum50:02,Pail5:11,Pail1:12,Cart300:21,Cart24:31,Cart12:32,Cart6:33,Syringe55:41,Syringe30:42,Syringe10:43,Syringe5:44};
var Tip = {Any:00,Taper:1250,Straight500:500,Straight1000:1000,Straight1500:1500};


    function Debug(s) {
        if (s=="") document.getElementById('debug').innerHTML="";
        document.getElementById('debug').innerHTML=document.getElementById('debug').innerHTML+"<br />"+s;
    }
    function SetImage(id,value,title) {
        document.getElementById(id+"Image").src="functions/pic.php?noshadow=true&copyright=0&s="+value;
        document.getElementById(id+"Title").innerHTML=title;
    }


    function Round(InNumber,NumPlaces) {
        var k = Math.pow(10,NumPlaces);
        var n = Number(InNumber)*k;
        return Math.round(n)/k;
    }

    function GetValue(id) {
        try {
	        if (LastUnit[id]==undefined) LastUnit[id] = 1;
			return eval(document.getElementById(id).value) * LastUnit[id];
		} catch (e) {
		    Debug("Error Reading "+id);
		}
    }

    function PutValue(id,value) {
        try {
	        if (ShowResult(id)) return;
	        if (document.getElementById(id).selectedIndex == undefined) {
		        var v = Round(value / LastUnit[id],8);
		        v = (isNaN(v)?"":v);
			    document.getElementById(id).value=v;
	        } else {
	            var x = document.getElementById(id);
	            for (var i = 0; i < x.length; i++) {
	                if (eval(x.options[i].value) == value) {
	                   x.options[i].selected = true;
	                   return;
	                }
	            }
	        }
        } catch (e) {
          Debug("Error Writing "+id);
        }
    }

    function SetUnit(text) {
        var i;
        var e = document.getElementsByTagName('select');
        for (i = 0; i < e.length; i++) {
            for(var j = 0; j<e[i].options.length; j++) {
                if (e[i].options[j].text==text) {
                   e[i].selectedIndex=j;
	               var id = e[i].id;
                   ChangeUnit(id.substr(0,id.length-4));
				   break;
                }
            }
        }

    }

    function ChooseDefault() {
        switch (eval(document.getElementById('defaultSystem').value)) {
            case 0:  //---
                 break;
            case 1:  //Metric
                 SetUnit('mm');
                 SetUnit('kPa');
                 SetUnit('cc');
                 SetUnit('mm2');
                 break;
            case 2:  //English
                 SetUnit('in');
                 SetUnit('psi');
                 SetUnit('in2');
                 break;
        }
    }

    var LastUnit= new Array();
    function SaveLastUnit() {
        var i;
        var e = document.getElementsByTagName('select');
        for (i = 0; i < e.length; i++) {
            var s=e[i].id;
            if (s.substr(s.length-4)=='Unit') {
             	LastUnit[s.substring(0,s.length-4)]=e[i].value;
            }
        }

    }

    function ChangeUnit(id) {
        var v = GetValue(id);
		SaveLastUnit();
		PutValue(id,v);
    }

    function SendResults() {
        var s = "session.php?";
        for (var id in LastUnit) {
           	s += "&"+id+"="+GetValue(id);
        }
        GetURL(s);
    }

    function ShowResult(id) {
        if (LastUnit[id]==undefined) LastUnit[id] = 1;
        if (Results[id]==undefined) return false;
        var v = Round(Results[id] / LastUnit[id],12);
		document.getElementById(id).value= (isNaN(v)?"":v);
		return true;
    }


    var InUse = false;
    var Results = new Array();
    var Timer;
    function CommonCalc(n,file) {
	   	if (InUse) return;
		InUse=true;
		clearTimeout(Timer);
        Timer=setTimeout('CalculateResults("'+n+'","'+file+'")',500);
		InUse=false;
    }


    function CalculateResults(n,f) {
        var URL = f+"?calc=1"+n;
        var e = document.getElementsByTagName('select');
        var s;
        Debug('');

        //Get all the selectable Values
        for (i = 0; i < e.length; i++) {
            s=e[i].id;
            if (s.substr(s.length-4)!='Unit') {
             	URL+="&"+s+"="+GetValue(s);
            }
        }

        //Get all the input values
        e = document.getElementsByTagName('input');
        for (i = 0; i < e.length; i++) {
            s = e[i].id;
            if (s.length==0) continue;
         	URL+="&"+s+"="+GetValue(s);
        }

        //Get Results
        Results = new Array();
        eval(GetURL(URL));

        //Show Results
        for(var x in Results) {
            ShowResult(x);
        }

        //Send Results
        SendResults();
    }

document.write("Measurement System:<select id='defaultSystem' onclick='javascript:ChooseDefault()'><option value='0'>---</option><option value='1'>Metric</option><option value='2'>English</option></select>");

