var NN;
 if (navigator.appName == "Netscape") {NN = true;} else {NN = false;}

var nowday;
var nowmon;
var nowyear;

var days_in_month = Array(31,28,31,30,31,30,31,31,30,31,30,31);

var limit = 7;

var sday;
var syear;
var smon;
var eday;
var eyear;
var emon;

function init_vars(year,mon,day) {
  nowyear=year;
  nowmon=mon;
  nowday=day;
}

function leap_year_check(year) {
   var feb_days = 28;
   if ( (year % 4 != 0) || (year % 100 == 0) && (year % 400 != 0) ) {feb_days = 28;} else {feb_days = 29;}
   days_in_month[1] = feb_days;
}

function check_date(year,mon,day) {
  leap_year_check(year);
  if (mon < 1 || mon > 12) {return false;}
  else if (day < 1 || day > days_in_month[mon-1]) {return false;}
  return true;
}

function Delta_Days(year1,mon1,day1,year2,mon2,day2) {
   var delta_days = 0;

   if (!check_date(year1,mon1,day1)) {return 0;}
   if (!check_date(year2,mon2,day2)) {return 0;}
   
   if (year2 < year1) {return -1;}
   else if (year2 == year1 && mon2 < mon1) {return -1;}
   else if (year2 == year1 && mon2 == mon1 && day2 < day1) {return -1;}
   else if (year2 == year1 && mon2 == mon1 && day2 == day1) {return 0;}
    else
    {

     if ( (year2-year1) >= 1 )
      {
       for (var cyear = year1+1; cyear < year2; cyear++)
        {
         leap_year_check(cyear);
         for (var i = 0; i < 12; i++) {delta_days += days_in_month[i];}
        }

       leap_year_check(year1);
       delta_days += days_in_month[mon1-1]-day1;
       delta_days += day2;

       for (var m = mon1+1; m <= 12; m++)
        {  delta_days += days_in_month[m-1];  }

       leap_year_check(year2);
       for (var m = 1; m < mon2; m++)
        {  delta_days += days_in_month[m-1];  }

       return delta_days;
      } else {
       leap_year_check(year1);

       if (mon1 < mon2)
        {
         delta_days += days_in_month[mon1-1]-day1;
         delta_days += day2;

         for (var m = mon1+1; m < mon2; m++)
          {  delta_days += days_in_month[m-1];  }

        } else {
         delta_days += day2-day1;
        }

       return delta_days;
      }

    }
}

function Del_Delta_Days(year, mon, day, daysback)
 {
  leap_year_check(year);

  for (var i = 1; i <= daysback; i++)
   {
    if (day > 1) {day = day-1;}
     else if (mon > 1) {mon = mon-1; day = days_in_month[mon-1];}
      else {year = year-1; leap_year_check(year); mon = 12; day = days_in_month[mon-1];}
   }

  var retarr = Array(year,mon,day);
  return retarr;
 }

function test_for_excel(formName) {
if (document.forms[formName].data_format.options[document.forms[formName].data_format.selectedIndex].value == "EXCEL") {document.forms[formName].separator.value = ',';} else {document.forms[formName].separator.value = 'TAB';}
}

function check_to_disable(formName) {
 if (!NN)
  {
   if (document.forms[formName].virtual.selectedIndex == 0) {document.forms[formName].sposob.disabled = true;}
   if (document.forms[formName].virtual.selectedIndex != 0) {document.forms[formName].sposob.disabled = false;}
  }
}

function check_to_browser(formName) {
 if (NN && document.forms[formName].virtual.selectedIndex == 0)
  {
     document.forms[formName].sposob.blur();
         alert('Сначала вы должны выбрать пункт\n\"заполн\ять пустые интервалы\"');
         document.forms[formName].virtual.focus();
  }
}

function set_limit(formName)
 {

   if (formName == "exportForm")
    {
         var myper = document.forms[formName].period.value;
         myper = myper*1;
         if (myper >= 60) { limit = 30; } else { limit = 7; }
        }
        else
        {
         limit = 7;
        }
        
 }
 
function set_date(year,mon,day,formName,en)
 {
   var yearobj = document.forms[formName].elements['y'+en];
   var monobj = document.forms[formName].elements['m'+en];
   var dayobj = document.forms[formName].elements['d'+en];
   
   for (var i = 0; i < yearobj.options.length; i++)
    { if ((yearobj.options[i].value)*1 == year*1) {yearobj.options[i].selected = true; break;} }

   for (var i = 0; i < monobj.options.length; i++)
    { if ((monobj.options[i].value)*1 == mon*1) {monobj.options[i].selected = true; break;} }

   var day_exists = false;
   for (var i = 0; i < dayobj.options.length; i++)
    { if ((dayobj.options[i].value)*1 == day*1) {dayobj.options[i].selected = true; day_exists = true; break;} }
   if (!day_exists) { dayobj.options[dayobj.options.length-1].selected = true; }
   
 
 }

function get_dates(formName)
 {
  syear = document.forms[formName].y1.options[document.forms[formName].y1.selectedIndex].value;
  eyear = document.forms[formName].y2.options[document.forms[formName].y2.selectedIndex].value;
  smon = document.forms[formName].m1.options[document.forms[formName].m1.selectedIndex].value;
  emon = document.forms[formName].m2.options[document.forms[formName].m2.selectedIndex].value;
  sday = document.forms[formName].d1.options[document.forms[formName].d1.selectedIndex].value;
  eday = document.forms[formName].d2.options[document.forms[formName].d2.selectedIndex].value;

  syear = syear*1;
  eyear = eyear*1;
  smon = smon*1;
  emon = emon*1;
  sday = sday*1;
  eday = eday*1;
  nowyear = nowyear*1;
  nowmon = nowmon*1;
  nowday = nowday*1;
  
 }
 
function check_last_days(formName)
 {
   if (document.forms[formName].lastdays.value == "") {document.forms[formName].lastdays.value = "0";}
   var lastday = document.forms[formName].lastdays.value;
   var normal = true;
   
   set_limit(formName);
   
   for (var i = 0; i < lastday.length; i++)
    {
      if (!(lastday.charAt(i) == "0" ||
              lastday.charAt(i) == "1" ||
              lastday.charAt(i) == "2" ||
              lastday.charAt(i) == "3" ||
              lastday.charAt(i) == "4" ||
              lastday.charAt(i) == "5" ||
              lastday.charAt(i) == "6" ||
              lastday.charAt(i) == "7" ||
              lastday.charAt(i) == "8" ||
              lastday.charAt(i) == "9")) {normal = false; break;}
        }

   if (!normal) {document.forms[formName].lastdays.value = "0"; lastday = 0;}
    else { set_date(nowyear,nowmon,nowday,formName,2); }
   
   lastday = lastday*1;
   if (formName != "dailyForm" && lastday > limit) {document.forms[formName].lastdays.value = limit; lastday = limit;}
   
   get_dates(formName);
   var delta = Delta_Days(eyear, emon, eday, nowyear, nowmon, nowday);
   var myd = Array(3);
   
   if (delta == 0)
    {
     myd = Del_Delta_Days(nowyear, nowmon, nowday, lastday);
         var setyear = myd[0];
         var setmon = myd[1];
         var setday = myd[2];
         if (normal) {set_date(setyear,setmon,setday,formName,1);}
        }
        
 }
 
function check_and_set(formName)
 {
   get_dates(formName);

   set_limit(formName);

   leap_year_check(syear);
   if (document.forms[formName].d1.value > days_in_month[smon-1])
    { set_date(syear, smon, days_in_month[smon-1], formName, 1); }

   leap_year_check(eyear);
   if (document.forms[formName].d2.value > days_in_month[emon-1])
    { set_date(eyear, emon, days_in_month[emon-1], formName, 2); }

   get_dates(formName);
   
   var delta = Delta_Days(eyear, emon, eday, nowyear, nowmon, nowday);

   if (delta == 0)
    {
         delta = Delta_Days(syear, smon, sday, eyear, emon, eday);
         if ((formName != "dailyForm" && delta > limit) || delta == -1)
           {delta = 0;}
            document.forms[formName].lastdays.value = delta;
        }
         else {document.forms[formName].lastdays.value = 0;}
 }
 
function check_form(formName)
 {
   get_dates(formName);
   set_limit(formName);
   
   var delta = Delta_Days(syear, smon, sday, eyear, emon, eday);

   if (delta > limit && formName != 'dailyForm')
    {
          alert("Разница в дн\ях между конечной и начальной датой равна "+delta+",\nмаксимально возможна\я разница - "+limit+" дней.\nСократите промежуток пожалуйста!");
          document.forms[formName].d1.focus();
          return false;
        }
        
   if (Delta_Days(syear, smon, sday, nowyear, nowmon, nowday) == -1)
    {
          alert("Начальна\я дата позже текущей даты!");
          document.forms[formName].d1.focus();
          return false;
        }
        
   if (Delta_Days(eyear, emon, eday, nowyear, nowmon, nowday) == -1)
    {
          alert("Конечна\я дата позже текущей даты!");
          document.forms[formName].d2.focus();
          return false;
        }

   if (delta == -1)
    {
          document.forms[formName].d1.focus();
          return confirm("Начальна\я дата позже конечной, продолжить?");
        }

   return true; 
 } 

function submit_form(formName)
{
  var form=formName;
  if (form == "exportForm") {alert("Экспорт intraday только дл\я клиентов");}
  else if (form == "tickbytickForm") {alert("Экспорт tick by tick только дл\я клиентов");}
  else if (form == "dailyForm")    {
   var s = document.sourceselect.sourcename;
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ //test for MSIE x.x;
		var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number
		if ((ieversion == 8) || (ieversion == 7) || (ieversion == 6)) { // for IE 6, 7, 8
			if ( !s.options[s.selectedIndex].value ) {
			   alert("Только дл\я клиентов");        
			} else {
			   if (check_form(form)) {document.forms[form].submit();}	
			}
		} else { // for IE 9
			if ( !s.options[s.selectedIndex].hasAttribute("value") ) {
			   alert("Только дл\я клиентов");
			} else {
				if (check_form(form)) {document.forms[form].submit();}
			}
		}
	} else {// for other browsers
		if ( !s.options[s.selectedIndex].hasAttribute("value") ) {
		   alert("Только дл\я клиентов");
		} else {
			if (check_form(form)) {document.forms[form].submit();}
		}
	}
  }
}

function redirect_to(url)
{
location.href = url.options[url.selectedIndex].value;
}

function href_to(selectForm)
{
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ //test for MSIE x.x;
		var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number
		if ((ieversion == 8) || (ieversion == 7) || (ieversion == 6)) { // for IE 6, 7, 8
			if ( !selectForm.options[selectForm.selectedIndex].value ) {
				alert("Только дл\я клиентов");        
			} else {
				location.href = selectForm.options[selectForm.selectedIndex].value;
			}
		} else { // for IE 9
			if ( !selectForm.options[selectForm.selectedIndex].hasAttribute("value") ) {
				alert("Только дл\я клиентов");
			} else {
				location.href = selectForm.options[selectForm.selectedIndex].value;
			}
		}
	} else {// for other browsers
		if ( !selectForm.options[selectForm.selectedIndex].hasAttribute("value") ) {
			alert("Только дл\я клиентов");
		} else {
			location.href = selectForm.options[selectForm.selectedIndex].value;
		}
	}
}

function client_href_to(source)
{
 var url="/expdocs/"+source+".shtml";
 location.href=url;
}
 

