
g_strNamingPrefix = "ctl00_RegistrationContentPlaceHolder_ctl00_"; // Main site
//g_strNamingPrefix = "Registration1_"; // local box development

// #############################################################################
// ###### Start: Validation  ######

// Fired from the onload event
function checkParticipantValidation()
{
    // If we are in the Add Participants page
    // Determined by existance of wrapped div called PRSAddNewParticipant
    var divParticipantPanel = document.getElementById(g_strNamingPrefix + 'PRSAddNewParticipant');
    if (divParticipantPanel != null) {
        ChangeValidationState(IsParticipantValidationRequired());
    }
}

function IsParticipantValidationRequired(){
    var participants = document.getElementById('ctl00_RegistrationContentPlaceHolder_ctl00_fsParticipantList');
    if (!participants) {
        return true;
          }
  
    var txbFirstName = document.getElementById(g_strNamingPrefix + "txbAddNewParticipantFirstName");
    var txbLastName = document.getElementById(g_strNamingPrefix + "txbAddNewParticipantLastName");

    if(txbFirstName.value != '' && txbLastName.value != ''){
        return true;
    }
    return false;
}

function ChangeValidationState(enable){

    var spans = document.body.getElementsByTagName("span");

    for (var i=0; i < spans.length; i++) {
        var element = spans[i];
        if ((element.id.toLowerCase()).indexOf("validator") > 0) {
            if (typeof ValidatorEnable == 'function') {
                ValidatorEnable(element, enable);
            }
        }
    }
}

// ###### End: Validation  ######
// #############################################################################
 
 // Uncheck the course checkbox for this person
 // Remove the div for this person from the appropriate course
 // Remove the text from the tokenised list of participant course mappings
 function unmapParticipant(strParticipantId, strCourseInstanceId)
 {
 //alert("unmapParticipant() method call - strParticipantId=" + strParticipantId + " , strCourseId=" + strCourseId); 
 /*
     Course checkbox id = "ckb_participant_course_"[course id] - e.g ckb_participant_course_10
     Participant div in a course = "div_course_participant_"[participant id] - e.g div_course_participant_1
 */
    // Uncheck the relevant checkbox
    var objCheckboxPC = document.getElementById("ckb_participant_course_" + strParticipantId + "_" + strCourseInstanceId);
    objCheckboxPC.checked = false; // may have to remove the attribute instead
    
    //alert("Attempting to remove participant with course id = " + strCourseId + "| participant id = " + strParticipantId);
    
    var objDivCP = document.getElementById("div_course_participant_" + strCourseInstanceId + "_" + strParticipantId);
    
    // IE is not picking up the element with the id = 
    
    //alert("Attempting to obtain element with Id = " + "div_course_participant_" + strCourseId + "_" + strParticipantId);
    
    
    if (objDivCP == null)
    {
        alert("Failed. Object is NULL");
    }
    
    //alert("Attempting to remove child");
    objDivCP.parentNode.removeChild(objDivCP);  
    //alert("Child removed");    
 }
 
 // Append the new participant, if necessary
 function mapParticipant_Original(strParticipantId, strCourseInstanceId, strParticipantName)
 {
 
 //alert("Attempting to find object with id = " + "div_cart_course_" + strCourseId);
 
    // Only append the participant to the course if it's not already there
	var objDivPC = document.getElementById("div_cart_course_" + strCourseInstanceId);	   
    
    
    /*
    Ahh.... problem. We are not adding tables under tables. We are trying
    to add table rows. So, I will need to try to set the innerhtml of 
    a table element... mmm... yuk!
    
    */
    var strNewParticipantForCourseHTML = objDivPC.innerHTML;

    // Only add the table row if it doesn't exist already
    // We therefore, need to id a table row per course participant
    var objTR = document.getElementById("div_course_participant_" + strCourseInstanceId + "_" + strParticipantId);

    if (objTR == null)
    {
        // BC Warning - cross browser probs possibly
        intNumSiblings = objDivPC.childNodes.length;
        
        var strOddOrEven = "Even";
        if  ((intNumSiblings % 2) == 0)
            strOddOrEven = "Odd";
            
        //alert("num children of this parent = " + objTR.parentNode.childNodes.length);    
    
        strNewParticipantForCourseHTML += "<tr id='div_course_participant_" + strCourseInstanceId + "_" + strParticipantId + "'><td><table class='tblCourseParticipant" + strOddOrEven + "'><tr><td class='tdPersonImageContainer' valign='middle'><img alt='Person Image' src='../Images/peeps.png' class='imgPerson' /></td>";
        strNewParticipantForCourseHTML += "<td class='tdParticipantName'>";
        strNewParticipantForCourseHTML += strParticipantName;
        strNewParticipantForCourseHTML += "</td><td align='right'>";
        strNewParticipantForCourseHTML += "<img alt='Delete Image' onclick='unmapParticipant(" + strParticipantId + "," + strCourseInstanceId + ")' class='imgDelete' src='../Images/delete.gif'/>";
        strNewParticipantForCourseHTML += "</td></tr></table></td></tr>";

//        strNewParticipantForCourseHTML += "<div id='div_course_participant_" + strCourseId + "_" + strParticipantId + "' class='person'>";
//        strNewParticipantForCourseHTML += "<img onmouseover='style.cursor = \"pointer\"' onclick='unmapParticipant(" + strParticipantId + "," + strCourseId + ")' class='deleteImage' src='../Images/delete.gif' width='16' height='16'/>";
//        strNewParticipantForCourseHTML += "<img class='imagefloatmeleft' src='../Images/Female.jpg' width='18' height='28'/>"
//	    strNewParticipantForCourseHTML += "<span class='participant_name'>" + strParticipantName + "</span>"; // Need to get hold of this name, too
//	    strNewParticipantForCourseHTML += "</div>";
	   
	   
	   //debugAlert(strNewParticipantForCourseHTML);
	    
	    //debugAlert(strNewParticipantForCourseHTML);
	    	        	
        objDivPC.innerHTML = strNewParticipantForCourseHTML;
        

    }
}


function mapParticipant(strParticipantId, strCourseInstanceId, strParticipantName)
{
    var objDivPC = document.getElementById("div_cart_course_" + strCourseInstanceId);	   
    var strNewParticipantForCourseHTML = objDivPC.innerHTML;

    // Only add the table row if it doesn't exist already
    // We therefore, need to id a table row per course participant
    var objTR = document.getElementById("div_course_participant_" + strCourseInstanceId + "_" + strParticipantId);

    if (objTR == null)
    {
        // BC Warning - cross browser probs possibly
        intNumSiblings = objDivPC.childNodes.length;
        
        var strOddOrEven = "Even";
        if  ((intNumSiblings % 2) == 0)
            strOddOrEven = "Odd";
                
/*
		<div class="divCourseParticipant">
            <img class="imgCourseParticipant" src="../Images/peeps.png" alt="Person Image" />
            <img class="imgDeleteCourseParticipant" onclick="unmapParticipant('1,10')" src="../Images/delete.gif" alt="Delete Image" />
            <span>Ben Churchward 4</span>            
		</div>
*/
        strNewParticipantForCourseHTML += "<div class='divCourseParticipant" + strOddOrEven + "' id='div_course_participant_" + strCourseInstanceId + "_" + strParticipantId + "'>";
        strNewParticipantForCourseHTML += "<div style='float:left'><img class='imgCourseParticipant' src='../Images/peeps.png' alt='Person Image' /></div>";
        strNewParticipantForCourseHTML += "<div style='float:left'><img class='imgDeleteCourseParticipant' onclick='unmapParticipant(" + strParticipantId + "," + strCourseInstanceId + ")' src='../Images/delete.gif' alt='Delete Image' />";
        strNewParticipantForCourseHTML += "<span>" + strParticipantName + "</span>";
        strNewParticipantForCourseHTML += "</div></div>"

        objDivPC.innerHTML = strNewParticipantForCourseHTML;
    }
}




 // Alternative adding new participant using the DOM
 function mapParticipant_NEW(strParticipantId, strCourseInstanceId, strParticipantName)
 {
    var objDivPC = document.getElementById("div_cart_course_" + strCourseInstanceId);	
    var strNewParticipantForCourseHTML = objDivPC.innerHTML;

//debugAlert("tagname of objDivPC = " + objDivPC.tagName); // TD currently

    // Only add the table row if it doesn't exist already. We therefore, need to id a table row per course participant
    var objTR = document.getElementById("div_course_participant_" + strCourseInstanceId + "_" + strParticipantId);

    if (objTR == null)
    {    
        intNumSiblings = objDivPC.childNodes.length;
        
        var strOddOrEven = "Even";
        if  ((intNumSiblings % 2) == 0)
            strOddOrEven = "Odd";
        
        var strTRId = "div_course_participant_" + strCourseInstanceId + "_" + strParticipantId;
       
        // This should give a ref to a new inserted row in the table
        //var elmTROuter = objDivPC.insertRow(-1); // zero for the time being
        var elmTROuter = document.createElement('tr');
        
        elmTROuter.setAttribute("id", strTRId);
        
        var elmTDOuter = document.createElement('td');
        var elmTable = document.createElement('table');
        elmTable.setAttribute("class", "tblCourseParticipant" + strOddOrEven);
        
        var elmTRParticipant = document.createElement('tr');                
        
        var elmTDPerson = document.createElement('td');
        elmTDPerson.setAttribute("class", "tdPersonImageContainer");
        elmTDPerson.setAttribute("valign", "middle");
        
        var elmImagePerson = document.createElement('img');                
        elmImagePerson.setAttribute("alt", "Person Image");
        elmImagePerson.setAttribute("src", "../Images/peeps.png");
        elmImagePerson.setAttribute("class", "imgPerson");

        
        //var elmTRParticipantName = document.createElement('tr');
        var elmTDParticipantName = document.createElement('td');
        elmTDParticipantName.setAttribute("class", "tdParticipantName");
        
        var ndeParticipantName = document.createTextNode(strParticipantName);

        //elmTDParticipantName.nodeValue = strParticipantName;
        
        //var elmTRDelete = document.createElement('tr');
        
        var elmTDDelete = document.createElement('td');
        elmTDDelete.setAttribute("align", "right");


        var elmImageDelete = document.createElement('img');                
        elmImageDelete.setAttribute("alt", "Delete Image");
        elmImageDelete.setAttribute("src", "../Images/delete.gif");
        elmImageDelete.setAttribute("class", "imgDelete");
        elmImageDelete.setAttribute("onclick", "unmapParticipant('" + strParticipantId + "','" + strCourseInstanceId + "')");

        // Construct the dom hierarchy
        elmTROuter.appendChild(elmTDOuter);
        elmTDOuter.appendChild(elmTable);
        elmTable.appendChild(elmTRParticipant);
        elmTRParticipant.appendChild(elmTDPerson);
        elmTDPerson.appendChild(elmImagePerson);
        elmTRParticipant.appendChild(elmTDParticipantName);
        elmTDParticipantName.appendChild(ndeParticipantName);
        elmTRParticipant.appendChild(elmTDDelete);
        elmTDDelete.appendChild(elmImageDelete);
        
        //elmTDParticipantName.innerText = "BOB"; //strParticipantName;
        
        //objDivPC.innerHTML = strNewParticipantForCourseHTML;
       
        objDivPC.appendChild(elmTROuter); // Not working in IE. It is working, but not displaying
        // if add and then hit next step, the mappings added do get saved. 
        
        //debugAlert(elmTROuter.innerHTML);
    }
 
 }

 
 // triggered by onclick event on the checkbox
 function changeParticipantMapping(strParticipantId, strCourseInstanceId, strParticipantName)
 {
     /*
     Checkbox id = ckb_participant_course_[participant id]_[course_id]
     e.g. ckb_participant_course_1_10
     */
 
    var strCheckboxId = "ckb_participant_course_" + strParticipantId + "_" + strCourseInstanceId; 
     
    var objCheckbox = document.getElementById(strCheckboxId); 
 
    if (objCheckbox.checked)
        mapParticipant(strParticipantId, strCourseInstanceId, strParticipantName)
    else
        unmapParticipant(strParticipantId, strCourseInstanceId)
 }
 
 function getMappings()
 {
    // Loop through all of the checkbox elements and locate those in format:
    // "ckb_participant_course_" + strParticipantId + "_" + strCourseId;    
    var strAllMappings = "";
    var arrayInputElements = document.getElementsByTagName("input");
    for (var i=0;i<arrayInputElements.length;i++)
    {        
        var strCurrentElementId = arrayInputElements[i].id;        
        var strCurrentElement23Chars = strCurrentElementId.substring(0, 23);         
        if (strCurrentElement23Chars == "ckb_participant_course_")
        {
            if (arrayInputElements[i].checked == true)
            {
                if (strAllMappings != "")
                {
                    strAllMappings += ",";
                }   
                strAllMappings += arrayInputElements[i].id.substring(23);
            }
        }
    }
    document.getElementById(g_strNamingPrefix + "hdnPCMappings").value = strAllMappings;
}
 
function debugAlert(strContents)
{		
	//var myAlertWindow = window.open();
	//myAlertWindow.document.write(strContents);	  
  	  	
  	//document.getElementById("txaDebug").value = strContents;

  	//txaDebug.value = txaDebug.value + "\n\n" + strContents;
	//txaDebug.style.focus = true;
}
 