//g_rootpath g_CETestsPath, g_CETestsImagesPath &  g_CETestsDocsPath is generated by Peak to locate the application root path
var g_TestsPath = g_rootpath + "/DM/Tests/";

function CETests_SelectFromList(mid, typ, name, list, ids)
{	
	var url =  g_TestsPath + "SelectFromList.aspx?typ=" + typ + "&name=" + name + "&list=" + list.id + "&ids=" + ids.id;
	Peak_PopupPage(null, url, 0, mid, "ItemsWin", 300, 500, 10, 10);
}

function CETests_Add(gridid, mid, media, mode)
{
    var page = g_CETestsPath + "CETestsEdit.aspx";
    if (media != null) 
        page += "?media=" + media;
    var img = g_CETestsImagesPath + "cetest.gif";
    //Peak_OpenPage(gridid, page, id, mid, title/field, img, height, width, mode, top, left, showscroll, showmenu, resizeable)
    Peak_OpenPage(gridid, page, 0, mid, "AddTest", img, 500, 500, mode);
}

function CETests_Edit(gridid, mid, mode)
{
    var page = g_CETestsPath + "CETestsEdit.aspx";
    var img = g_CETestsImagesPath + "cetest.gif";
    //Peak_OpenPage(gridid, page, id, mid, title/field, img, height, width, mode, top, left, showscroll, showmenu, resizeable)
    Peak_OpenPage(gridid, page, -1, mid, "CEID", img, 500, 500, mode);
}

function CETests_CreateMediaTest(gridid, mid, mode)
{
    var media = PeakGrid_GetKeyValue(gridid);
    if (media==null)
        alert("No row was selected");
    else    
        CETests_Add(gridid, mid, media, mode)
}

function CETests_DetailEdit(id, mid, pmid, ceid, mode)
{
    var page = g_TestsPath + "TestsEdit.aspx?ceid=" + ceid + "&pmid=" + pmid;
    var img = g_CETestsImagesPath + "cetest.gif";
    //Peak_OpenPage(gridid, page, id, mid, title/field, img, height, width, mode, top, left, showscroll, showmenu, resizeable)
    Peak_OpenPage(null, page, id, mid, "_"+ceid+" (Test)", img, 500, 500, mode); //Put _ in title to differenciate CETest/Test ids
}

function CETests_Preview(gridid, id, mid, mode)
{
    var page = g_CETestsPath + "Overview.aspx?preview=1";
    var img = g_CETestsImagesPath + "cetest.gif";
    // function Peak_PopupPage(grid, page, id, mid, title, height, width, left, top, showscroll, showmenu, resizeable)
    Peak_PopupPage(gridid, page, id, mid, "CEID", 500, 500, 10, 10, true, false, true);
}

function CETests_TakeTest(id, mid)
{
    var url = g_CETestsPath + "TakeTest.aspx";
    Peak_RedirectPage(url, id, mid);
}

function CETests_TestResults(mid, resid, testid, custid)
{
    var url = g_CETestsPath + "TestResults.aspx?ResultsID="+resid+"&TestID="+testid+"&CustomerID="+custid;
    Peak_RedirectPage(url, 0, mid);
}

function CETests_ContinueTest(id, mid, resid)
{
    var url = g_CETestsPath + "TakeTest.aspx?ResultsID=" + resid;
    Peak_RedirectPage(url, id, mid)
}

function CETests_Filter(gridid, col, val, typ)
{
    PeakGrid_FilterClear(gridid);
    PeakGrid_Filter(gridid, col, val, typ);
}

function ToggleButton(checkbox, button)
{
    document.getElementById(button).disabled = document.getElementById(checkbox).checked ? false : true;
}

function CETests_PrintTranscriptPage()
{
    document.getElementById("rowButtons").style.display = "none";
    window.print();
    document.getElementById("rowButtons").style.display = "block";
}

function CETests_ClosePage()
{
    window.close();
}

function CETests_ToggleElement(element, imageID, appRoot)
{    
    var currentDisplay = document.getElementById(element).style.display;
    document.getElementById(element).style.display = currentDisplay == "block" ? "none" : "block";
    document.getElementById(imageID).src = currentDisplay == "block" ? appRoot + "/Images/expand.gif" : appRoot + "/Images/collapse.gif";
}

function CETests_PrintTranscripts()
{
    var win = window.open(g_CETestsPath + "PrintTranscripts.aspx", "PrintTranscripts", "height=575,width=775,scrollbars=1,resizable=1");
    win.focus();
}

function CETests_Certificate(id, mid, ceid)
{
    var url = g_CETestsPath + "CECertificate.aspx?ceid=" + ceid;
    Peak_PopupPage(null, url, id, mid, "Certificate", 600, 800, 10, 10, true, false, true);
}


function CETests_StartReport(reportButtonID, closeButtonID, waitLabelID)
{
    document.getElementById(reportButtonID).style.display='none';
    document.getElementById(closeButtonID).style.display='none';
    document.getElementById(waitLabelID).style.display='';    
}

function CETests_AcrobatSite()
{
    var url = "http://www.adobe.com/products/acrobat/readstep2.html";
    window.open(url, "Acrobat");
}

function CETests_ResetLibraryFilters(gridID, labelID, lnkFavorites)
{
    document.getElementById(g_libraryRootID + "TextBoxSearch").value = "";
    document.getElementById(g_libraryRootID + "txtCEID").value = "";
    document.getElementById(g_libraryRootID + "DropDownListJournalName").selectedIndex = 0;
    document.getElementById(g_libraryRootID + "DropDownListJournalMonth").selectedIndex = 0;
    document.getElementById(g_libraryRootID + "DropDownListJournalYear").selectedIndex = 0;
    document.getElementById(g_libraryRootID + "DropDownListTOPIC").selectedIndex = 0;
    document.getElementById(g_libraryRootID + "DropDownListCERP").selectedIndex = 0;
    document.getElementById(g_libraryRootID + "DropDownListSYN").selectedIndex = 0;
    // Show the Favorites section again
    var displayval;
    var favDisplay;
	if(document.addEventListener) {//if firefox, opera, safari..
  		displayval = "table-row";
	}
	else {
	  	displayval = "block";
	}
    document.getElementById(gridID).style.display = displayval;
    document.getElementById(labelID).style.display = displayval;
    document.getElementById(lnkFavorites).style.display = "none";    
}

function CETests_ShowFeaturedCEs(gridID, labelID, lnkFavorites)
{
    // Show the Favorites section again
    var displayval;
	if(document.addEventListener) //if firefox, opera, safari..
  		displayval = "table-row";
	else
	  	displayval = "block";
    document.getElementById(gridID).style.display = displayval;
    document.getElementById(labelID).style.display = displayval;
    document.getElementById(lnkFavorites).style.display = "none";  
}

function CETests_ResetTranscriptFilters()
{
    document.getElementById(g_transcriptRootID + "TextBoxTitle").value = "";
    document.getElementById(g_transcriptRootID + "TextBoxProvider").value = "";
    document.getElementById(g_transcriptRootID + "TextBoxDateFrom").value = "";
    document.getElementById(g_transcriptRootID + "TextBoxDateTo").value = "";
    document.getElementById(g_transcriptRootID + "DropDownListStatus").selectedIndex = 0;
    document.getElementById(g_transcriptRootID + "DropDownListCERP").selectedIndex = 0;
    document.getElementById(g_transcriptRootID + "DropDownListSYN").selectedIndex = 0;
}

function CETests_GetEvaluationAnswers(button)
{
    var allObjAnswers = "";
    var allEvalAnswers = "";
    var pos1;
    var pos2;
    var answerId;
    var evalId;

    var hiddenOBJAnswers = document.getElementById(g_hiddenOBJAnswers);
    var hiddenEVALAnswers = document.getElementById(g_hiddenEVALAnswers);
    var hiddenAction = document.getElementById(g_hiddenAction);
    
    if(hiddenOBJAnswers && hiddenEVALAnswers && hiddenAction)
    {
        var elements = document.forms[0].elements;
        // Loop all elements looking for Objectives Answers first (these are all dropdown lists)
        for(i=0; i<elements.length; i++)
        {
            if(elements[i].id.indexOf("OBJID")>=0)
            {
                pos1 = elements[i].id.indexOf("OBJID") + 5;
                answerId = elements[i].id.substr(pos1);
                // Build triple pipe separated string using || to separate OBJ ID from the selected value
                allObjAnswers = allObjAnswers + "|||" + answerId + "||" + elements[i].value;
            }
        }
        
        // Loop all elements looking for Evaluation Answers next (some are dropdowns, some are textboxes)
        for(x=0; x<elements.length; x++)
        {
            if(elements[x].id.indexOf("EVALID")>=0)
            {
                // Check if it is a textbox first
                if(elements[x].type=="text")
                {
                    pos1 = elements[x].id.indexOf("EVALID") + 6;
                    evalId = elements[x].id.substr(pos1);
                    // Build triple pipe separated string using || to separate EVAL ID from the value
                    allEvalAnswers = allEvalAnswers + "|||" + evalId + "||" + elements[x].value;
                }
                else
                {
                    // Now check if it is a dropdown
                    pos1 = elements[x].id.indexOf("EVALID") + 6;
                    evalId = elements[x].id.substr(pos1);
                    // Build triple pipe separated string using || to separate EVAL ID from the selected value
                    allEvalAnswers = allEvalAnswers + "|||" + evalId + "||" + elements[x].value;
                }
            }
        }
        // strip off the leading triple pipes
        hiddenOBJAnswers.value = allObjAnswers.substr(3);
        hiddenEVALAnswers.value = allEvalAnswers.substr(3);
        hiddenAction.value = "Submit";
        // Declaratively fire ASPX validators -- if any controls aren't valid the submit button will not trigger a postback
        Page_ClientValidate();
        if(Page_IsValid)
        {
            button.style.display = "none";
            document.getElementById(g_waitLabel).style.display = "block";
        }
    }
}

function CETests_EnableFeatured(chkFeatured, imgBeginID, imgEndID, txtBeginID, txtEndID)
{
    var enabled = chkFeatured.checked;
    document.getElementById(imgBeginID).value = enabled ? document.getElementById(imgBeginID).value : "";
    document.getElementById(imgEndID).value = enabled ? document.getElementById(imgEndID).value : "";
    document.getElementById(txtBeginID).value = enabled ? document.getElementById(txtBeginID).value : "";
    document.getElementById(txtEndID).value = enabled ? document.getElementById(txtEndID).value : "";
    document.getElementById(imgBeginID).disabled = !enabled;
    document.getElementById(imgEndID).disabled = !enabled;
    document.getElementById(txtBeginID).disabled = !enabled;
    document.getElementById(txtEndID).disabled = !enabled;
    document.getElementById(txtBeginID).style.backgroundColor = enabled==true ? '#ffffff' : '#cccccc';
    document.getElementById(txtEndID).style.backgroundColor = enabled==true ? '#ffffff' : '#cccccc';  
    
}

// TestID, ModuleID
// "resourceLoc" will have slashes replaced by pipe symbols
function CETests_GenerateUrl(gridID)
{
    // the ce tests id will be the ItemID on the destination page
    var ceTestID = PeakGrid_GetKeyValue(gridID);
    var url = "GenerateUrl.aspx?ResLoc=" + "DM|CETests";
    // function Peak_PopupPage(grid, page, id, mid, title, height, width, left, top, showscroll, showmenu, resizeable)
    Peak_PopupPage(null, url, ceTestID, 0, 'GenerateURL', 150, 750, 5, 5, 1, 0, 1);
} 