// function validate_student_emailing()
// {
//     access_type = getElement('form_id').access_type
//     alert(access_type)
// }

function toggle_freejoin_mode(obj) {
    function _set_row_display(elem, display) {
        var tr = getFirstParentByTagAndClassName(elem, "TR");
        setDisplayForElement(display, tr);
    }

    // // student emailing options
      var permit = getElement('id_student_emailing_0');
      var enforce = getElement('id_student_emailing_2');

    if (obj.value == 'casual') {
        _set_row_display("id_namelist", 'none');
        _set_row_display("id_nameorder_0", 'none');

         enforce.disabled = false;
    } else {
        _set_row_display("id_namelist", 'table-row');
        _set_row_display("id_nameorder_0", 'table-row');

         enforce.disabled = true;
         if (enforce.checked)
             permit.checked = true;
    }

}

function check_access_mode(obj){
	     var permit = getElement('id_student_emailing_0');
         var enforce = getElement('id_student_emailing_2');
         var formal= getElement('id_access_type_0');
		 if(obj.value == 'enforce' && formal.checked){
			  enforce.disabled = true;
			  permit.checked = true;
		 }
}


function getMethods(obj) {
  var result = [];
  for (var id in obj) {
    try {
      //if (typeof(obj[id]) == "function") {
        result.push(id + ": " + obj[id].toString());
      //}
    } catch (err) {
      result.push(id + ": inaccessible");
    }
  }
  return result;
}


StudentSet = {
    coteachMsg: null, // Init this field in the template with translation: "Co-teach request has been sent"
    copyMsg: null, // Init this field in the template with translation: "Copy request has been sent"
layerID: "popup-layer-student-chart",
studentset_id: null,
//tm: null,

    coteachRequest: function(url, elem) {
        var df = Ajax.load_xhr(url);
        df.addCallback(function () {
            elem.parentNode.innerHTML = StudentSet.coteachMsg;
        });
    },

    copy: function (url, elem) {
        var df = Ajax.load_xhr(url);
        df.addCallback(function (resp) {
            var copyUrl = resp['copy_url'];
            if (copyUrl != null) {
                document.location = copyUrl;
            } else {
                elem.parentNode.innerHTML = StudentSet.copyMsg;
            }
        });
    },

showChart: function(content) {
    getElement('id_student_chart').innerHTML = content;
},

showGlass: function(){
	var glasslayer=getElement(glassID);
	var scroll_top=false;
	var timedelay = 100; // ms
	if (glasslayer) {
            setGlassHeight(StudentSet.layerID, scroll_top);
            LoadTimer = window.setTimeout('toggleLayerByTimer(' + scroll_top + ')',timedelay);
            showedLayer = StudentSet.layerID;
			showElement(glasslayer);
        }
},

hideGlass: function(){
	var glasslayer=getElement(glassID);

	if (glasslayer) {
			hideElement(glasslayer);
        }
},

hideChart: function(){
   hideElement(StudentSet.layerID);
   StudentSet.hideGlass();
},


studentChart: function (div, studentset_id, student_id) {
	getElement('chart_div').innerHTML = '';
	StudentChartLib.get_grades(studentset_id);

	StudentSet.showGlass();

        hideElement(StudentSet.layerID);


        var url = '/teacher/results/student/chart/' + studentset_id + '/' + student_id + '/';

        var df = Ajax.load_json(url,
                            {});


        df.addCallback(function(doc) {
                           StudentSet.showChart(doc.content);
                           showElement(StudentSet.layerID);
                           YPGoogleChart.data.removeRows(0, YPGoogleChart.data.getNumberOfRows());
                           for (var i=0;i<doc.data.length;i++) {
                              if (doc.data[i].score=='') doc.data[i].score = null;
                              if (doc.data[i].avg=='') doc.data[i].avg = null;
                              if (doc.data[i].st_trend=='') doc.data[i].st_trend = null;
                              if (doc.data[i].set_trend=='') doc.data[i].set_trend = null;
			      if (doc.data[i].target=='') doc.data[i].target = null;

                              YPGoogleChart.data.addRow([
					new Date(doc.data[i].days),
					{v:doc.data[i].score, f:'('+doc.data[i].score+'%)'+'\n'+doc.data[i].tip},
					{v:doc.data[i].avg,  f:'('+doc.data[i].avg+'%)'},
					{v:doc.data[i].st_trend,  f:'('+doc.data[i].st_trend+'%)'},
					{v:doc.data[i].set_trend,  f:'('+doc.data[i].set_trend+'%)'},
					{v:doc.data[i].target,  f:'('+doc.data[i].target+'%)'}
					]);
                           }

			   YPGoogleChart.scheme_name = StudentChartLib.gradescheme_name;
                           YPGoogleChart.drawChart();
			   callLater(1, StudentChartLib.fixChartLabels);
                       });

},

onChangeScheme: function(obj) {
    var url = '/teacher/studentset/ajax/gradescheme/';
    var avg_grade_id = obj.id;
    var p = avg_grade_id.indexOf('scheme');
    avg_grade_id = avg_grade_id.substr(0,p);

    var gg = getElement(avg_grade_id);
    df = loadJSONDoc(url, {gradescheme_id: obj.value});
    df.addCallback(function(result) {
        replaceChildNodes(gg);
        var data_ = eval('(' + result.content + ')');
        forEach(data_, function(file_obj) {
            var opt = OPTION({'value': file_obj[0]}, file_obj[1]);
            appendChildNodes(gg, opt);
            });
    });
    df.addErrback(function(err) {
        replaceChildNodes(gg);
    });
}
}
