var empty_re = /[ \f\n\r\t\v]/g;
	function MinChangeElem( elem_min, elem_frac )
		{ 
			 min = document.getElementById( elem_min).value;
			 if ( !CheckNum( min) ) {
			  min = "0";
			 }
			 if ( min != "0" && min.charAt(0) == "0" ) {
			  min = min.charAt(1);
			 }
			 min = parseInt(min);
			 if ( !CheckNumLimit( min, 59) ) {
			  alert("Значение минут должно быть от 0 до 59");
			  min = 0;
			 }
			 frac = Math.ceil( min*100/60);
			 if ( frac < 10 ) {
			  frac = "0" + frac;
			 } 
			 field = document.getElementById( elem_frac);
			 field.value = frac;
		}
	function MinChange( pr )
		{ 
			if (pr == "lo") {
			 MinChangeElem( "loesmin","loesfrac");
			} else { 
			 MinChangeElem( "laesmin","laesfrac");
			} 
		}
	function FracChangeElem( elem_min, elem_frac )
		{ 
			 frac = document.getElementById(elem_frac).value;
			 if ( !CheckNum(frac) ) {
			  frac = "0";
			 }
			 if ( frac != "0" && frac.charAt(0) == "0" ) {
			  frac = frac.charAt(1);
			 }
			 frac = parseInt(frac);
			 field = document.getElementById(elem_min);
			 field.value = Math.floor(frac*60/100);
			 if ( frac < 10 ) {
			  frac = "0" + frac;
			 }
			 field = document.getElementById(elem_frac);
			 field.value = frac;
		}
	function FracChange( pr )
		{ 
			if (pr == "lo") {
			 FracChangeElem("loesmin","loesfrac");
			} else { 
			 FracChangeElem("laesmin","laesfrac");
			} 
		}
	function CheckNumLimit( num, limit )
		{ 
			if ( num >= 0 && num <= limit ) {
			  return true;
			} else {
			 return false; 
			} 
		}
	function CheckNum( num )
		{ 
			i = 0;
			while (i < num.length) {
			 if ( num.charAt(i) < "0" || num.charAt(i) > "9" ) {
			  return false;
			 }
			 i++;
			}
			return true; 
		}
	// Функция проверки ввода значений
	function CheckForm() {
		arrErrors = new Array();
		CheckValue("loes", -360, 360, "Укажите географическую долготу ЗС", "Значение географической долготы ЗС должно быть от -360 до 360 град.");
		CheckValue("laes", -90, 90, "Укажите географическую широту ЗС", "Значение географической широты ЗС должно быть от -90 до 90 град.");
		if ( arrErrors.length == 0 ) {
			return true;
		} else {
			errMsg = "";
			for( var i=0; i < arrErrors.length; i++ )
				errMsg += arrErrors[i].msg + "\n";
			alert( errMsg );
			return false;
			}
	}
	function CheckValue( elementID, val_lo, val_hi, ErrorMsgEmpty, ErrorMsgValue ) {
		var oElement = document.getElementById( elementID);
		var sValue = oElement.value.replace(empty_re, "" );
		
		if (  sValue == "" ) {
			var errorObj = new Object();
			errorObj.elem = oElement;
			errorObj.msg =ErrorMsgEmpty;
			arrErrors.push( errorObj);
		} else {
			var oValue = parseInt( oElement.value);
			if ( isNaN(oValue) || oValue <= val_lo || oValue >= val_hi) {
				var errorObj = new Object();
				errorObj.elem = oElement;
				errorObj.msg =ErrorMsgValue;
				arrErrors.push( errorObj);
			}    
		}
	}
	function CalcDegrees(f) {
		n=f.sel_sat.selectedIndex;
		//alert(n)
		losat=f.sel_sat.options[n].value;
		//alert(losat);
		laes = parseInt(document.getElementById("laes").value);
		laesfrac = parseInt(document.getElementById("laesfrac").value);
		loes = parseInt(document.getElementById("loes").value);
		loesfrac = parseInt(document.getElementById("loesfrac").value);
			with (Math) {
				laes = ( laes+laesfrac/100 )*PI/180;
				loes = ( loes+loesfrac/100 )*PI/180;
				losat = losat*PI/180;
			
				El = atan((cos(loes-losat)*cos(laes)-0.15126)/sqrt(1-cos(loes-losat)*cos(loes-losat)*cos(laes)*cos(laes)))*180/PI;
				Az = 180+atan(tan(loes-losat)/sin(laes))*180/PI;
				t_ = 90+atan(tan(laes)/sin(losat-loes))*180/PI;
				
				if ( t_ > 90 )
				  t_ = t_ - 180;
			}
			answer = El + ""; 
			document.calc_sat.angle.value = answer.substring(0,answer.indexOf(".")+4);
			answer = Az + ""; 
			document.calc_sat.azimut.value = answer.substring(0,answer.indexOf(".")+4);
			answer = t_ + "";
			document.calc_sat.line_polar.value = answer.substring(0,answer.indexOf(".")+4);
			return true;
	}
