// Работа с оценками
var gAnketsID,gLessonID,gSelYear,gSelMonth,gDayN,gNumInDay,gEvID,gMarkValue;
var gDefColor;

function menuMark(AnketsID,LessonID,SelYear,SelMonth,DayN,wmmark,wmmname,wmmdate,OldMark) { // Открыть меню оценок
  gAnketsID=AnketsID;
  gLessonID=LessonID;
  gSelYear=SelYear;
  gSelMonth=SelMonth;
  gDayN=DayN;
  gDefColor=$('.d'+DayN).css('background-color');
  document.getElementById(wmmdate).innerHTML=OldMark+DayN+"."+SelMonth+"."+SelYear+"г";
  var wmmname=document.getElementById(wmmname);
  if ((gAnketsID>0)&&(gLessonID>0)) {
     wmmname.innerHTML=document.getElementById('ha'+AnketsID+'x'+LessonID).innerHTML;
//     $('tr').css({{backgroundColor:"#ffffff"}});
     $('#l'+LessonID).css({backgroundColor:'#e0e0f0'});
     $('#l'+AnketsID).css({backgroundColor:'#e0e0f0'});
  } else {
     wmmname.innerHTML='Группа';
  }
  $('.d'+DayN).css({backgroundColor:'#e0e0f0'});
  if (wmmname.innerHTML.length>12) {
     wmmname.title=wmmname.innerHTML;
     wmmname.innerHTML=wmmname.innerHTML.substr(0,11)+'.';
  } else wmmname.title='';
  var mx1=mCur.x;
  var my1=mCur.y;
  var mwx1=mx1-(document.documentElement.scrollLeft||document.body.scrollLeft)+90;
  if (mwx1>document.body.clientWidth) mx1=mx1-mwx1+document.body.clientWidth;
  var mwy1=my1-(document.documentElement.scrollTop||document.body.scrollTop)+270;
  if (mwy1>document.body.clientHeight) my1=my1-mwy1+document.body.clientHeight;
  wmmark.style.left=mx1;
  wmmark.style.top=my1;
  wmmark.style.visibility='visible';
}

function menuAddMark(AnketsID,LessonID,SelYear,SelMonth,DayN) { // Открыть меню добавления оценок
  var wmmark = document.getElementById('wmmark');
  sitedisable('wmmark');
  menuMark(AnketsID,LessonID,SelYear,SelMonth,DayN,wmmark,'wmmname','wmmdate','');
}

function menuEdMark(AnketsID,LessonID,SelYear,SelMonth,DayN,NumInDay,NumInArray,EvID) { // Открыть меню изменения оценок
  gNumInDay=NumInDay;
  gEvID=EvID;
  var wmmark = document.getElementById('wmedm');
  sitedisable('wmedm');
  if (ArrEv.length>0) var mName=ArrEv1[NumInArray].mName;
  else var mName='';
  menuMark(AnketsID,LessonID,SelYear,SelMonth,DayN,wmmark,'wmename','wmedate',mName+': ');
  return false;
}

function setColorCB(el) {
  if (el.value>0) {
    gDefColor='transparent';
    if (el.checked) $('#l'+el.value).css({backgroundColor:"#f0f0f7"});
    else $('#l'+el.value).css({backgroundColor:gDefColor});
  }
}

function setColorAllCB() {
  var cbList= document.getElementsByTagName('input');
  for (i=0;i<cbList.length;i++) if (cbList[i].type=='checkbox') setColorCB(cbList[i]);
}

function checkAll(checked) {
  var cbList= document.getElementsByTagName('input');
  for (i=0;i<cbList.length;i++) if (cbList[i].type=='checkbox') cbList[i].checked = checked;
  setColorAllCB();
}

function hideEl(el) {
  gNumInDay=0;
  gEvID=0;
  document.getElementById(el).style.visibility='hidden';
  $('.d'+gDayN).css({backgroundColor:gDefColor});
  setColorAllCB();
}

function askMess(MarkValue,dname) {
  hideEl('wmedm');
  hideEl('wmmark');
  gMarkValue=MarkValue;
  var winmess=document.getElementById('wmess');
  winmess.style.left=(document.body.clientWidth/2)-150+(document.documentElement.scrollLeft||document.body.scrollLeft);
  winmess.style.top=(document.documentElement.scrollTop||document.body.scrollTop)+100;
  if (dname) document.getElementById('wmhead').innerHTML='<h1>'+dname+'</h1>';
//  document.getElementById('wmsavbut').href=dlink;
  winmess.style.visibility='visible';
}

function discussionMark() {
  location.href='?show=forum&&cmd=mark&user='+gAnketsID+'&mark='+gEvID+'&year='+gSelYear+'&month='+gSelMonth+'&day='+gDayN;
}

window.onbeforeunload=function () { // подтверждение выхода
  if (document.getElementById('SavPanel').style.visibility=='visible') {
    alert('ВНИМАНИЕ!!!\nЕсли Вы покинете эту страницу сейчас,\nданные не будут сохранены!\nРекомендуем, сначала, сохранить данные!');
    return false;
  }
}

// ******************** Добавление оценок! *****************************

var ArrEv=[], ArrEv1=[];

function undoMark() { // отменить последнее изменение
  if (ArrEv.length>0) {
    var Ev=ArrEv.pop();
    var Ev1=ArrEv1.pop();
    var DivEl1=document.getElementById('div'+Ev['el']);
    DivEl1.innerHTML=Ev1['oldHtml'];
  }
  if (ArrEv.length==0) $('#SavPanel').attr('style','visibility:hidden');
}

function addMarkCheck(MarkValue,MarkName) { // добавить оценки (групповое добавление)
  if (gLessonID==0) {
    var El=document.getElementsByTagName('input');
    for (var i=0; i < El.length; i++)
      if ((El[i].checked)&&(El[i].value>0)) {
         gLessonID=El[i].value;
         addMark(MarkValue,MarkName);
      }
    gLessonID=0;
  } else if (gAnketsID==0) {
    var El=document.getElementsByTagName('input');
    for (var i=0; i < El.length; i++)
      if ((El[i].checked)&&(El[i].value>0)) {
         gAnketsID=El[i].value;
         addMark(MarkValue,MarkName);
      }
    gAnketsID=0;
  } else addMark(MarkValue,MarkName);
  hideEl('wmmark');
  hideEl('wmedm');
}

function addMark(MarkValue,MarkName) { // добавить оценку
  var Ev = {mValue:0,el:'',id:'',numInDay:0,mess:''}; // последнее событие редактирования оценок
  var Ev1 = {oldHtml:'',mName:''}; // последнее событие редактирования оценок для отката
  var SelElName='x'+gAnketsID+'x'+gLessonID+'x'+gSelYear+'x'+gSelMonth+'x'+gDayN;
  var DivEl1=document.getElementById('div'+SelElName);
  // сохраним в массиве событий
  Ev1['oldHtml']=DivEl1.innerHTML;
  Ev['mValue']=MarkValue;
  Ev1['mName']=MarkName;
  Ev['el']=SelElName;
  Ev['id']=''; // новая оценка
  // Выведем в таблицу
  if (DivEl1.innerHTML!='&nbsp;') {DivEl1.innerHTML=DivEl1.innerHTML+'<br/>';}
    else {DivEl1.innerHTML='';}
  // подсчитаем ко-во строк
  count=$('#div'+SelElName+' a').length;
  Ev['numInDay']=count;
  // выведем в таблицу
  DivEl1.innerHTML=DivEl1.innerHTML+"<a onclick='menuEdMark("+gAnketsID+","+gLessonID+","+gSelYear+","+
     gSelMonth+","+gDayN+","+count+","+ArrEv.length+",0)' title='Добавлено сейчас'>"+MarkName+'</a>';
  ArrEv.push(Ev);
  ArrEv1.push(Ev1);
  $('#SavPanel').attr('style','visibility:visible');
}

function deleteMark() { // удалим оценку
  var Ev = {mValue:0,el:'',id:'',numInDay:0,mess:''}; // последнее событие удаления оценок
  var Ev1 = {oldHtml:'',mName:''}; // последнее событие удаления оценок для отката
  var SelElName='x'+gAnketsID+'x'+gLessonID+'x'+gSelYear+'x'+gSelMonth+'x'+gDayN;
  var DivEl1=document.getElementById('div'+SelElName);
  // сохраним в массиве событий
  Ev1['oldHtml']=DivEl1.innerHTML;
  Ev['el']=SelElName;
  Ev['mValue']=18; // код команды удаления
  Ev['id']=gEvID;
  Ev['numInDay']=gNumInDay;
  // Выведем в таблицу
  var el=$('#div'+SelElName+' a')[gNumInDay];
  $(el).css({'text-decoration':'line-through','color':'red'});
  $(el).attr('title','Удалено');
  ArrEv.push(Ev);
  ArrEv1.push(Ev1);
  $('#SavPanel').attr('style','visibility:visible');
  hideEl('wmmark');
  hideEl('wmedm');
}

function remMark() { // комментируем оценку или добавляем сообщение
  var Ev = {mValue:0,el:'',id:'',numInDay:0,mess:''}; // последнее событие
  var Ev1 = {oldHtml:'',mName:''}; // последнее событие для отката
  var SelElName='x'+gAnketsID+'x'+gLessonID+'x'+gSelYear+'x'+gSelMonth+'x'+gDayN;
  var DivEl1=document.getElementById('div'+SelElName);
  // сохраним в массиве событий
  Ev1['oldHtml']=DivEl1.innerHTML;
  Ev['mValue']=gMarkValue;
  Ev['el']=SelElName;
  Ev['mess']=$('#wmessed').attr('value');
  Ev['id']=''; // новая оценка
  // Выведем в таблицу
  if (gMarkValue==17) { // это сообщение
    Ev1['mName']='с';
    if (DivEl1.innerHTML!='&nbsp;') {DivEl1.innerHTML=DivEl1.innerHTML+'<br/>';}
      else {DivEl1.innerHTML='';}
    // подсчитаем ко-во строк
    count=$('#div'+SelElName+' a').length;
    Ev['numInDay']=count;
    DivEl1.innerHTML=DivEl1.innerHTML+"<a onclick='menuEdMark("+gAnketsID+","+gLessonID+","+gSelYear+","+gSelMonth+","+gDayN+
       ","+count+","+ArrEv.length+",0)' title='Сообщение: "+Ev['mess']+"'>"+Ev1['mName']+'</a>';
  }
  if (gMarkValue==19) { // это комментарий к оценке
     var el=$('#div'+SelElName+' a')[gNumInDay];
     $(el).attr('title','Коментарий: '+Ev['mess']);
  }
  // выведем в таблицу
  ArrEv.push(Ev);
  ArrEv1.push(Ev1);
  $('#SavPanel').attr('style','visibility:visible');
}

function remMarkCheck() { // добавить сообщения (групповое добавление)
  if (gLessonID==0) {
    var El=document.getElementsByTagName('input');
    for (var i=0; i < El.length; i++)
      if ((El[i].checked)&&(El[i].value>0)) {
         gLessonID=El[i].value;
         remMark();
      }
    gLessonID=0;
  } else if (gAnketsID==0) {
    var El=document.getElementsByTagName('input');
    for (var i=0; i < El.length; i++)
      if ((El[i].checked)&&(El[i].value>0)) {
         gAnketsID=El[i].value;
         remMark();
      }
    gAnketsID=0;
  } else remMark();
  $('#wmessed').attr('value','');
  hideEl('wmess');
}

function saveMark() { // сохраним все изменения
  var s_json=$.toJSON(ArrEv);
  $.post('ajax.php?mrk=1',{mark:s_json}, function (data) {
    alert(data);
  }, 'text' );
  for (i=0;ArrEv.length>0;i++) {
    ArrEv.pop();
    ArrEv1.pop();
  }
  $('#SavPanel').attr('style','visibility:hidden');
}




