//---------------------------------------------
function FocusFirst(oForm)
{
	
	
	if("" + oForm == "unknown" || oForm == null ) return;
	for(var i=0; i < oForm.elements.length; i++)
	{
		
		if(oForm.elements[i].type.toLowerCase()!="hidden" && !oForm.elements[i].disabled) 
			{oForm.elements[i].focus(); return;}
		
	}
	
}

//---------------------------------
function FormatNumber(val)
{

    val = "" + val;
	var num = parseFloat(val.replace(",", "."))
	var sign = "";
	if(isNaN(num) || num == 0)
		{
			num = "0,00"
		}
	else
		{
			
			num = Math.round(num * 100);
			if(num<0) sign = "-";
			num = "" + Math.abs(num)

			num = "000".substr(0, 3-num.length) + num;
			num = sign + num.substr(0, num.length-2) + "," + num.substr(num.length-2);
		}
	return num;
}
//---------------------------------
function CalcCol(obj)
{
var name = obj.id;
var objects = document.all(name);
var sum = 0;
var num;

var oSum = document.all(name + "_sum");
if(objects != null)
	{
	if(""+objects.length!="undefined")
		{
			for (var i=0; i<objects.length; i++)
			{
				num = parseFloat(objects[i].value.replace(',','.'));
				if (!isNaN(num)) sum += num;
			}
		}
			else
		{
				num = parseFloat(objects.value.replace(',','.'));
				if (!isNaN(num)) sum += num;
		}
	}


if(oSum != null ) oSum.innerText = FormatNumber(sum);

}

//-----------------------------------
function GetValue(name)
{
	var obj = document.all(name);
	if(obj==null) return 0;
	num = parseFloat(obj.innerText.replace(",", "."));
	if(isNaN(num)) num = 0;
	return num;
}
//-----------------------------------
function SetValue(name, value)
{
	var obj = document.all(name);
	if(obj==null) return;
	obj.innerText = "" + value;
}
//-----------------------------------

function CalcOverall(Sections, obj)
{
var overall = 0;

for(var i=0; i <Sections.length; i++)
	{
		CalcSection = Sections[i];
		var num;
		oSum = document.all(CalcSection);
		if (oSum != null)
		{
			num = parseFloat(oSum.innerText.replace(",", "."))
			if (!isNaN(num))	overall += num;
			
		}
	}

 if(obj != null ) obj.innerText = FormatNumber(overall);

}

//-------------------------------------------------------
function KeyCheck(obj)
{
	if(event.keyCode!=13) return true;
	var objs = document.all(obj.id);
	if (objs==null) return true;
	for(var i=0; i<objs.length; i++)
	{
		if(objs[i]==obj) if("" + objs[i+1] != "undefined") objs[i+1].focus();
	}
	
}


//-------------------------------------------------------
function isFloat(obj, format)
{

		if((event.keyCode==13 || event.keyCode == 9 || event.keyCode == 189) && obj.value=="") return true;
//	alert(event.keyCode)
		var chrCode = event.keyCode;
		if (chrCode==110) chrCode = 46;
		if (chrCode > 90) chrCode = chrCode - 48;
		
		if(val=="-") return true;
		var val = obj.value.replace(",", ".") + String.fromCharCode(chrCode);

		if(format=="int") val = parseInt(val); else val = parseFloat(val);
		if (isNaN(val))  return false;
		return true;
}

//-------------------------------------------------
function Repair(obj, format)
{
		if(obj.value=='') 
		{
			obj.value = '0,00';
			return;
		}
		if(format=="int") 
		{	
			var val = parseInt(obj.value);
			if(isNaN(val)) val = 0;
			obj.value = val;
		}
		else obj.value = FormatNumber(obj.value)
		
}
//-------------------------------------------------
    function FormatDate(i, delKey,direction) {
	if(i.value=="") return;
      if (i.value.length < 10) {
      	if (delKey!=9) { //tab
    	  	if(delKey!=8 && delKey!=46 && delKey!=16 &&  !(delKey>36 && delKey<41)){ //if the delete, backspace, shift, are not the keys that caused the keyup event.
      			var fieldLen = i.value.length
       			if ((delKey >= 48 && delKey <= 57) || (delKey >= 96 && delKey <=105)) {
       				if (fieldLen == 2 || fieldLen == 5) {
          				i.value = i.value + ".";
    		     	}
       			} else {
       				if (direction == "up") {
         				if (i.value.length == 0) {
          					i.value = ""
    	     			} else {
    		      			i.value = i.value.substring(0,i.value.length-1)
    	   				}
        			}
    	 		}
      			i.focus()
    	  	}
     	} else {
     		if (direction == "down") {
    	 		CheckDate(i)
      		}
      	}
     }
    }
//-------------------------------------------------
    function CheckDate(THISDATE) {
    	var err=0
    	a=THISDATE.value
		if(a=="") return;
    	if (a.length < 8) err=2
    	b = a.substring(0, 2)// day
    	c = a.substring(2, 3)// '.'
    	d = a.substring(3, 5)// month
    	e = a.substring(5, 6)// '.'
    	f = a.substring(6, 10)// year

    	if (b<1 || b>31) err = 2
    	if (d<1 || d>12) err = 2
    	if (d==4 || d==6 || d==9 || d==11){
    		if (b==31) err=2
    	}
    	if (d==2){
    		var g=parseInt(f/4)
    		if (isNaN(g)) {
    			err=2
    		}
    		if (b>29) err=3
    		if (b==29 && ((f/4)!=parseInt(f/4))) err=13
    	}
	
    	if (err==1) {
    		alert('Вы ввели ' + THISDATE.value + ' - в выбранном вами месяце нет 31 числа ... Попробуйте набрать снова!');
    	}
    	if (err==2) {
    		alert('Вы ввели ' + THISDATE.value + ' - Вас не смущает эта дата ? Нам кажется, что допущена ошибка...  Попробуйте набрать снова!');
    	}
    	if (err==3) {
    		alert('Вы ввели ' + THISDATE.value + ' - в феврале не бывает более 29 дней ... Попробуйте набрать снова !');
    	}
    	if (err==13) {
    		alert('Вы ввели ' + THISDATE.value + ' - в этом году в феврале не было 29 числа ... Попробуйте набрать снова!');
    	}

		if(err!=0)
		{

//		    		THISDATE.value = "";
    		THISDATE.focus();
    		THISDATE.select();

		}
    }


