﻿var LengthArray=new Array();
LengthArray[0]=new calcData(1,0,"('метр')");
LengthArray[1]=new calcData(0.01,0,"('сантиметр')");
LengthArray[2]=new calcData(0.001,0,"('миллиметр')");
LengthArray[3]=new calcData(0.3048,0,"('фут')");
LengthArray[4]=new calcData(0.0254,0,"('дюйм')");
LengthArray[5]=new calcData(0.9144,0,"('ярд')");

var MassArray=new Array();
MassArray[0]=new calcData(0.001,0,"('грамм')");
MassArray[1]=new calcData(1,0,"('килограмм')");
MassArray[2]=new calcData(1000,0,"('тонна')");


var TemperatureArray=new Array();
TemperatureArray[0]=new calcData(1,0,"('Цельсий')");
TemperatureArray[1]=new calcData(0.555555555555556,-32,"('Фаренгейт')");

var VolumeArray=new Array();
VolumeArray[0]=new calcData(1,0,"('Ньютон (Н)')");
VolumeArray[1]=new calcData(1000,0,"('килоНьютон (кН)')");
VolumeArray[2]=new calcData(1000000,0,"('МегаНьютон (МН)')");
VolumeArray[3]=new calcData(9.81,0,"('килограмм силы (кгс)')");
VolumeArray[4]=new calcData(9810,0,"('тонна силы (тс)')");

var VolumeDryArray=new Array();
VolumeDryArray[0]=new calcData(1.0,0,"('Н*м')");
VolumeDryArray[1]=new calcData(1000,0,"('кН*м')");
VolumeDryArray[2]=new calcData(9.81,0,"('кгс*м')");
VolumeDryArray[3]=new calcData(0.0981,0,"('кгс*см')");

var AreaArray=new Array();
AreaArray[0]=new calcData(1,0,"('метр"+String.fromCharCode(178)+"')");
AreaArray[1]=new calcData(0.0001,0,"('сантиметр"+String.fromCharCode(178)+"')");
AreaArray[2]=new calcData(0.000001,0,"('миллиметр"+String.fromCharCode(178)+"')");
AreaArray[3]=new calcData(0.09290304,0,"('фут"+String.fromCharCode(178)+"')");
AreaArray[4]=new calcData(0.00064516,0,"('дюйм"+String.fromCharCode(178)+"')");
AreaArray[5]=new calcData(0.8361274,0,"('ярд"+String.fromCharCode(178)+"')");

var SpeedArray=new Array();
SpeedArray[0]=new calcData(1.0,0,"('об/мин')");
SpeedArray[1]=new calcData(9.54,0,"('рад/с')");
SpeedArray[2]=new calcData(57.2957795,0,"('град/с')");

var AngleArray=new Array();
AngleArray[0]=new calcData(1.0,0,"('градус')");
AngleArray[1]=new calcData(57.2957795,0,"('радиан')");

// var CTArray=new Array("('Area', 'Area')","('Length', 'Length')","('Mass', 'Mass')","('Temperature', 'Temperature')","('Volume Liquid', 'Volume')","('Volume Solid', 'VolumeDry')","('Volume Piled Wood', 'VolumeWood')");
var CTArray=new Array("('крутящий момент', 'VolumeDry')", "('сила', 'Volume')", "('частота вращения', 'Speed')", "('угол', 'Angle')", "('длина', 'Length')", "('масса', 'Mass')", "('площадь', 'Area')", "('температура', 'Temperature')");

function calcData(c,b,a) { 
	this.conv=c;
	this.adj=b;
	this.calc2=a
}

function PopulateComboBox(vType,sInitUnit){
	var oLocation=document.getElementById("uc_conversiontype");
	var vOpt1;
	var vNumUnits;
	var oTypeArray;
	var vSelected;
	var vNonCalc;
	oTypeArray=eval(vType+"Array");
	vNumUnits=oTypeArray.length;
	vNonCalc=vType.substring(0,2);
	if(vNonCalc=="CT"){
		for(var i=0;i<vNumUnits;i++){
			vOpt1=eval("new Option"+oTypeArray[i]);
			oLocation.options[i]=vOpt1
		}
		oLocation.options[0].selected=true
	} else { 
		for(var j=0;j<vNumUnits;j++){
			vOpt1=eval("new Option"+oTypeArray[j].calc2);
			oLocation.options[j]=vOpt1;
			if(oLocation.options[j].text==sInitUnit){
				oLocation.options[j].selected=true;
				vSelected=true;
			}
		}
		if(vSelected!=true){
			oLocation.options[0].selected=true
		}
	}
}

function loadCategory(){
	var a="CT";
	PopulateComboBox(a,"");
	PopulateUnitTypes("")
}

function PopulateUnitTypes(sInitUnit){
	var oSelected=document.getElementById("uc_conversiontype");
	//var oInForm=document.forms[0];
	var oSelectedArray;
	var vLength;
	var vOpt1;
	var vOpt2;
	var vSelected;
	oSelectedArray=eval(oSelected.options[oSelected.selectedIndex].value+"Array");
	vLength=oSelectedArray.length;
	vSelected=false;
	
	for(var i=0;i<vLength;i++){
		while(vLength< document.getElementById("uc_ResultUnit").length){
			document.getElementById("uc_SourceUnit").options[vLength-i]=null;
			document.getElementById("uc_ResultUnit").options[vLength-i]=null
		}
		vOpt1 = eval("new Option"+oSelectedArray[i].calc2);
		vOpt2 = eval("new Option"+oSelectedArray[i].calc2);
		document.getElementById("uc_SourceUnit").options[i]=vOpt1;
		document.getElementById("uc_ResultUnit").options[i]=vOpt2;
		
		if(document.getElementById("uc_SourceUnit").options[i].text==sInitUnit){
			document.getElementById("uc_SourceUnit").options[i].selected=true;
			document.getElementById("uc_ResultUnit").options[i].selected=true;
			vSelected=true;
		}
	}
	if(vSelected!=true){
		document.getElementById("uc_SourceUnit").options[0].selected=true;
		document.getElementById("uc_ResultUnit").options[0].selected=true;
	}
	
	document.getElementById("uc_txtSourceQty").value = "";
	document.getElementById("uc_txtResultQty").value = "";
}

function CalculateNow(){
	var vCategoryIndex;
	var vCategoryValue;
	var oSearch;
	var vInputValue;
	var vSConv;
	var vSAdj;
	var vTConv;
	var vTAdj;
	var vResult;
	var x;
	var y;
	
	vInputValue = document.getElementById("uc_txtSourceQty").value;
	
	//Check ifthe input value is numeric
	if(IsNumeric(vInputValue)) {
		vCategoryIndex = document.getElementById("uc_conversiontype").options.selectedIndex;
		vCategoryValue = document.getElementById("uc_conversiontype").options[vCategoryIndex].value;
		oSearch = eval(vCategoryValue+"Array");
		
		x = document.getElementById("uc_SourceUnit").selectedIndex;
		vSConv = oSearch[x].conv;
		vSAdj = oSearch[x].adj;
		
		y = document.getElementById("uc_ResultUnit").selectedIndex;
		vTConv = oSearch[y].conv;
		vTAdj = oSearch[y].adj;
		
		vResult = roundResult(-1*(-vInputValue-vSAdj)*vSConv*1/vTConv-vTAdj,6);
	} else {
		vResult = "invalid quantity";
	}
	document.getElementById("uc_txtResultQty").value = vResult;
}

function IsNumeric(sText) {
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
 
   for (i = 0; i < sText.length && IsNumber == true; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
      {
         IsNumber = false;
      }
   }
   return IsNumber;
}


function roundResult(b,a){
	a=(!a?6:a);
	return Math.round(b*Math.pow(10,a))/Math.pow(10,a)
};

window.onload = loadCategory;

