// myETests.js
var jsonRaterDtlsObj;
var jsonAltFormatReports;

function initRaterJSON(){
    jsonRaterDtlsObj = json_parse(raterDetailsJSON);
}

function initAltFormatJSON() {
    jsonAltFormatReports = json_parse(altFormatJSON);
}

function initRaterTypeJSON(){
    jsonRaterTypesObj = json_parse(raterTypesJSON);
}

function takeAct(a, v) {
    var f = eval('document.frm'+a);

    if (v==null) f.act.value=a.toLowerCase();
    else f.act.value=v;

    f.submit();
}

function assessDetails(q) {
    var f = document.frmAssessmentDetails;

    f.qstId.value = q;
    f.submit();
}

function rateeAssess(r) {
    var f = document.frmRateeDetails;

    f.rateeId.value = r;
    f.submit();
}

function otherAssess(){
    var block = document.getElementById('otherAssessment');
    if (block.className=="hideEditBlock") block.className = 'showEditBlock';
    else if (block.className=="showEditBlock") block.className = 'hideEditBlock';
}

function hideReport(respId){
//    var formObj = document.frmPayParams;
//    formObj.testId.value='';

    var objLink = document.getElementById('linkReport'+respId);
    objLink.innerHTML = "<a href='#' class='contentLinks' onclick='showGetReport("+respId+")'>get Report</a>";

    var objReport = document.getElementById('showReport'+respId);

    newBlock = "<div class='hideEditBlock'></div>"
    objReport.innerHTML = newBlock;
}

function deactivateOtherReports() {
    var j;
    var editObj;
    var myCancel = new RegExp(/cancel/);
    for (j=0; j<jsonReportObj.length; j++){
        editObj = document.getElementById('linkReport'+jsonReportObj[j].reportId);

        if ( (editObj!=null) && myCancel.test(editObj.innerHTML))
          hideReport(jsonReportObj[j].reportId);
    }
}

function chkReportFormat(testId) {
    var altFormat = false;
    for (j=0; j<jsonAltFormatReports.length; j++){
        if (testId==jsonAltFormatReports[j]) altFormat = true;
    }
    return altFormat;
}

function showGetReport(respId){
    deactivateOtherReports();
    deactivateOtherDetails();

    var offset = findReport(respId);
    var altFormat = chkReportFormat(jsonReportObj[offset].testId);
//    var formObj = document.frmPayParams;
    var objLink = document.getElementById('linkReport'+respId);
    objLink.innerHTML = "<a href=\"javascript:hideReport("+respId+")\" class='contentLinks'>cancel</a>";

    if (altFormat) {
        var htmlViewReport = '&nbsp;';
        var pdfViewReport = "<div style='width: 120px; text-align: center;'><a href=\"javascript:makeReport('View', "+jsonReportObj[offset].reportId+");\" class='link4'>&nbsp;View&nbsp;PDF&nbsp;Report</a></div>";
        var pdfMailReport = "<div style='width: 120px; text-align: center;'><a href=\"javascript:makeReport('Mail', "+jsonReportObj[offset].reportId+");\" class='link4'>Mail&nbsp;PDF&nbsp;Report</a></div>";
    } else {
        var htmlViewReport = (jsonReportObj[offset].testId<100)?"<div style='width: 120px; text-align: center;'><a href=\"javascript:showReport('html', "+jsonReportObj[offset].reportId+" , "+jsonReportObj[offset].testId+" );\" class='link4'>View&nbsp;HTML&nbsp;Report</a></div>":"&nbsp;";
        var pdfViewReport = "<div style='width: 120px; text-align: center;'><a href=\"javascript:showReport('view', "+jsonReportObj[offset].reportId+" , "+jsonReportObj[offset].testId+" );\" class='link4'>&nbsp;View&nbsp;PDF&nbsp;Report</a></div>";
        var pdfMailReport = "<div style='width: 120px; text-align: center;'><a href=\"javascript:showReport('mail', "+jsonReportObj[offset].reportId+" , "+jsonReportObj[offset].testId+" );\" class='link4'>Mail&nbsp;PDF&nbsp;Report</a></div>";
    }

    var objReport = document.getElementById('showReport'+respId);
    newBlock = "\n                  <div class='showEditBlock'>\n"+
"                  <div style='width: 33%; float: left;' class='showEditRow'>"+pdfViewReport+"</div>\n"+
"                  <div style='width: 34%; float: left;' class='showEditRow'>"+htmlViewReport+"</div>\n"+
"                  <div style='width: 33%; float: left;' class='showEditRow'>"+pdfMailReport+"</div>\n"+
"                  </div>\n";

    objReport.innerHTML = newBlock;
}

function findRater(raterId){
    var j;
    var offset = -1;
    for (j=0; j<jsonRaterDtlsObj.length; j++){
        if(raterId==jsonRaterDtlsObj[j].raterId) offset=j;
    }
    return offset;
}
/*
function checkRatee(raterId) {

}
*/
function hideRateeDetails(rateeId){
//    var formObj = document.frmPayParams;
//    formObj.testId.value='';

    var objLink = document.getElementById('rateeDetails'+rateeId);
    objLink.innerHTML = "<a href='#' class='contentLinks' onclick='showRateeDetails("+rateeId+")'>details</a>";

    var editBlock = document.getElementById('editOption'+rateeId);
    var objRatee = document.getElementById('showDetails'+rateeId);

    newBlock = "<div class='hideEditBlock'></div>"
    editBlock.className = "hideEditBlock";
    objRatee.innerHTML = newBlock;

    document.getElementById('nameRater'+rateeId).innerHTML = '';
    document.getElementById('linkRater'+rateeId).value = '' ;
    document.getElementById('showRaterLink'+rateeId).className = "hideEditBlock";
}

function deactivateOtherDetails() {
    var j;
    var editObj;
    var myCancel = new RegExp(/hide/);
    for (j=0; j<jsonRaterDtlsObj.length; j++){
        editObj = document.getElementById('rateeDetails'+jsonRaterDtlsObj[j].rateeId);

        if ((editObj!=null) && myCancel.test(editObj.innerHTML))
          hideRateeDetails(jsonRaterDtlsObj[j].rateeId);
    }
}

function showRateeDetails(rateeId){
    deactivateOtherDetails();
    deactivateOtherReports();

//    var formObj = document.frmPayParams;
    var objLink = document.getElementById('rateeDetails'+rateeId);
    objLink.innerHTML = "<a href=\"javascript:hideRateeDetails("+rateeId+")\" class='contentLinks'>hide</a>";

    var editBlock = document.getElementById('editOption'+rateeId);

    var objRatee = document.getElementById('showDetails'+rateeId);
    newBlock = "\n                  <div class='showEditBlock' style='text-align: left;'>\n"+
"                  <div style='width: 18%; float: left; padding-left: 3px;' class='showEditRowHead'>Rater Name</div>\n"+
"                  <div style='width: 28%; float: left;' class='showEditRowHead'>Rater Email</div>\n"+
"                  <div style='width: 18%; float: left;' class='showEditRowHead'>Actions</div>\n"+
"                  <div style='width: 18%; float: left;' class='showEditRowHead'>Rater Role (Date)</div>\n"+
"                  <div style='width: 16%; float: left;' class='showEditRowHead'>&nbsp;</div>\n"+
"                  </div>\n";

    for (j=0; j<jsonRaterDtlsObj.length; j++){
        if (rateeId==jsonRaterDtlsObj[j].rateeId){
//            var raterResp = (jsonRaterDtlsObj[j].raterRespId==0)?'Pending':jsonRaterDtlsObj[j].raterType+'<BR>\n('+jsonRaterDtlsObj[j].raterRespDatestamp+')';
            var raterResp = (jsonRaterDtlsObj[j].raterRespId==0)?jsonRaterDtlsObj[j].raterType:jsonRaterDtlsObj[j].raterType+'<BR>\n('+jsonRaterDtlsObj[j].raterRespDatestamp+')';
            var raterAction = (jsonRaterDtlsObj[j].raterRespId!=0)?'n.a.':'<a href="javascript:showRaterLink('+jsonRaterDtlsObj[j].raterId+');">Get Link</a>';
            newBlock += "\n                  <div>\n"+
"                  <div style='width: 18%; float: left; padding-left: 5px;' class='showEditRow'>"+jsonRaterDtlsObj[j].raterName+"</div>\n"+
"                  <div style='width: 28%; float: left;' class='showEditRow'>"+jsonRaterDtlsObj[j].raterMail+"</div>\n"+
"                  <div style='width: 18%; float: left; line-height: 16px;' class='showEditRow'>"+raterAction+"</div>\n"+
"                  <div style='width: 18%; float: left;' class='showEditRow'>"+raterResp+"</div>\n"+
"                  <div style='width: 16%; float: left;' class='showEditRow'>&nbsp;</div>\n"+
"                  </div>\n";

        }
    }

    editBlock.className = "showEditBlock";
    objRatee.innerHTML = newBlock;

//    if (jsonPayParamsObj[offset].paidStatus=='paid') formObj.paidStatus.checked=true;

//    formObj.testId.value=test;
//    formObj.prodCode.focus();
}

function actEdit(e) {
    var o = findRater(e.value)
    if (jsonRaterDtlsObj[o].editables.length) {
        for (j=0; j<jsonRaterDtlsObj[o].editables.length; j++){
            var eleEdit = jsonRaterDtlsObj[o].editables[j]+e.value;
            switch (jsonRaterDtlsObj[o].editables[j]) {
                case 'raterName':
                    if (e.checked) {
                        document.getElementById(eleEdit).innerHTML = "<INPUT TYPE='text' NAME='"+eleEdit+"' VALUE=\""+eval('jsonRaterDtlsObj[o].'+jsonRaterDtlsObj[o].editables[j])+"\" SIZE=20>"
                    }else{
                        document.getElementById(eleEdit).innerHTML = eval('jsonRaterDtlsObj[o].'+jsonRaterDtlsObj[o].editables[j])
                    }
                break;

                case 'raterMail':
                    if (e.checked) {
                        document.getElementById(eleEdit).innerHTML = "<INPUT TYPE='text' NAME='"+eleEdit+"' VALUE='"+eval('jsonRaterDtlsObj[o].'+jsonRaterDtlsObj[o].editables[j])+"' SIZE=30>"
                    }else{
                        document.getElementById(eleEdit).innerHTML = eval('jsonRaterDtlsObj[o].'+jsonRaterDtlsObj[o].editables[j])
                    }
                break;

                case 'raterType':
                    if (e.checked) {
                        var selOptList = "<SELECT NAME='"+eleEdit+"'>";
                        for (k=0; k<jsonRaterTypesObj.length; k++){
                            if (jsonRaterTypesObj[k].typeText !=eval('jsonRaterDtlsObj[o].'+jsonRaterDtlsObj[o].editables[j]) )
                                selOptList += "<OPTION VALUE='"+jsonRaterTypesObj[k].typeValue+"'>"+jsonRaterTypesObj[k].typeText+"</OPTION>";
                            else
                                selOptList += "<OPTION VALUE='"+jsonRaterTypesObj[k].typeValue+"' SELECTED>"+jsonRaterTypesObj[k].typeText+"</OPTION>";
                        }
                        selOptList += "</SELECT>";
                        document.getElementById(eleEdit).innerHTML = selOptList;
                    }else{
                        document.getElementById(eleEdit).innerHTML = eval('jsonRaterDtlsObj[o].'+jsonRaterDtlsObj[o].editables[j])
                    }
                break;

                case 'raterDelete':
                    if (e.checked) {
                        document.getElementById(eleEdit).innerHTML = "<a href='javascript:deleteRater("+jsonRaterDtlsObj[o].raterId+")'>delete Rater</a>";
                    } else {
                        document.getElementById(eleEdit).innerHTML = '&nbsp;';
                    }
                break;
            }

        }
    }
//alert(e.checked)
//alert('for ' + e.value + ' found '+ jsonRaterDtlsObj[o].editables.length + ' item(s) to edit')


}

function deleteRater(id){
//    var o = findRater(id);
    var f = document.frmEditRaters;
//alert(eval("f.raterName"+id+".value"))
    eval("f.raterName"+id+".value=''")
    eval("f.raterName"+id+".disabled="+true)
    eval("f.raterMail"+id+".value=''")
    eval("f.raterMail"+id+".disabled="+true)
}

function showRaterLink(id) {
    var o = findRater(id);
//alert('showRaterLink'+jsonRaterDtlsObj[o].rateeId);
    document.getElementById('showRaterLink'+jsonRaterDtlsObj[o].rateeId).className = 'showEditBlock';
    document.getElementById('nameRater'+jsonRaterDtlsObj[o].rateeId).innerHTML = jsonRaterDtlsObj[o].raterName;
    document.getElementById('linkRater'+jsonRaterDtlsObj[o].rateeId).value = jsonRaterDtlsObj[o].raterLink
}

function changeCalButton(s){
//'Extend...'
    document.getElementById('f-calendar-trigger-1').innerHTML = s;
}

function takeTest(a, v) {
    var f = eval('document.frm'+a);

    f.act.value=a.toLowerCase();
    f.test.value=v;

    f.submit();
}