﻿
function enablePlaydateWiz()
{
        //change wizard title
        $("postWizTitle").innerHTML = "Start playdate";

        //check playdate catGroup
        $("postCG60").checked = true;
        
        //hide first page and display second page
        $("postWiz0").style.display = "none";
        $("postWiz2").style.display = "none";  //ensure the other wiz pages are hidden too
        $("postWiz3").style.display = "none";  
        $("postWiz4").style.display = "none"; 
        
        $("postWiz1").style.display = "block";  
        $("postWiz1BackBut").style.display = "none";
        $("postPlaydateIntroText").style.display = "block";    

        //hide category section on page3
        $("postCatLabel").style.display = "none";
        $("postCheckCat").style.display = "none";
        
        //hide non applicable details fields
        $("postDetailsTableCost").style.display = "none";
        $("postDetailsTableWeb").style.display = "none";
        
        //hide post preview and show next button on page 3
        $("postWiz3PreviewBut").style.display = "none";
        $("postWiz3NextPDBut").style.display = "inline";  
      
}

function disablePlaydateWiz()
{
    //change wizard title
    $("postWizTitle").innerHTML = "Prayer request";

    //uncheck playdate catGroup
    $("postCG60").checked = false;
    
    //hide postWizPD page
    clearWizPD()    
    $("postWizPD").style.display = "none";  
             
    $("postWiz1BackBut").style.display = "inline";
    if (document.all)  {  // round buttons for IE only (Firefox forces a left float on the anchor which makes the buttons uncentered. Attenpts to center on Firefox didn't work
        Nifty("a#postWiz1BackBut", "transparent")
    }

    $("postPlaydateIntroText").style.display = "none";    

    //show category section on page3
    $("postCatLabel").style.display = "block";
    $("postCheckCat").style.display = "block";
    
    //show non playdate details fields
    //$("postDetailsTableCost").style.display = "inline";
    $("postDetailsTableWeb").style.display = "inline";
    
    //show post preview and hide next button on page 3
    $("postWiz3NextPDBut").style.display = "none";      
    $("postWiz3PreviewBut").style.display = "inline";
    
     //re-initialize wiz pages display
    $("postWiz0").style.display = "none";
    $("postWiz1").style.display = "none";
    $("postWiz2").style.display = "block"; 
    $("postWiz3").style.display = "none";  
    $("postWiz4").style.display = "none";  

}

function nextWizPagePD()
{
    valid = validateWiz3();
    if (valid)
    {
        $("postWiz3").style.display = "none"
        $("postWizPD").style.display = "block"  
        $("postPDemails").focus();      
        
        if (($("postFriendsDiv").innerHTML.trims() == "") || ($("postFriendsDiv").innerHTML == null))   //if not empty we are in edit mode and the friends have already been retrieved
        {                                                                                               //trims() removes trailing white spaces which Firefox considers 
            getFriends()
        }
    }
}


function getFriends()
{        
    //$("postFriendsDiv").innerHTML = "Loading... " 
    $("postPickFriendsDiv").style.display = "none";
    PageMethods.getFriendsInfo(myUser.memberID, onGetFriendsResult, onGetFriendsError)

}


    function onGetFriendsResult(resultTable)   //returns memberID, email, display, primaryPic
    {
        if (resultTable.rows)
        {
            $("postPickFriendsDiv").style.display = "block";
            $("postFriendsDiv").innerHTML = "";         //clear "Loading..." text
            for (i=0; i<resultTable.rows.length; i++)
            {
               createFriend($("postFriendsDiv"), resultTable.rows[i].memberID, resultTable.rows[i].email, resultTable.rows[i].display, resultTable.rows[i].primaryPic, "postFriendsCB", "cbFriend")
            }            
        }
        else
        {
            $("postPickFriendsDiv").style.display = "none";

        }
    
    }
    
    function onGetFriendsError()
    {

    }
    

function createFriend(groupDiv, memberID, email, display, primaryPic, cbName, cbID)
{
    myDiv = document.createElement("div")   

    
    str = "<input type='checkbox' name='"+cbName+"' id='"+cbID+memberID+"' class='"+email+"'/>"; //using the class attr to store the email

    if (primaryPic)
         {thumbnail = photoFolder+"/"+mbrFolder+"/t"+primaryPic.slice(1); }
    else {thumbnail = photoFolder+"/"+mbrDefaultThumbnail;}    

    if (display){
            str += "<span><b>"+display+" ("+email+")</b></span>" }
    else {  str += "<span><b>"+email+"</b></span>" }   
    
    str += "<img class='tinyPic' src='" + thumbnail + "' alt=''>"
    
    myDiv.innerHTML = str;
    groupDiv.appendChild(myDiv)
}
    

function backWizPagePD()
{
    $("postWiz3").style.display = "block"
    $("postWizPD").style.display = "none"
}



function fillPostPDCat()
{
    //this function is a take off the fillPostCat() function in post.js
    //this function only fill one cat playdate, not visible and checked by default. It is not used, it exists only to
    //preserve consistency in the handling of the Post wizard
    
    var mycheckbox;
    var mycheckboxname; //category group name of the check box so I can later retrieve them according to selected group (in above list box)
    var myspan;
    var mycbtext;
    var spanid;
    var lb;
    var mydiv
    var str
    
        mycheckboxname = "postCB60"        
        //mycheckbox = document.createElement("<input id='post601' name="+mycheckboxname+" type='checkbox' checked='true'>")
        mycheckbox = createElementWithName("input", mycheckboxname)
        mycheckbox.id = "post601"
        mycheckbox.type = "checkbox"
        //mycheckbox.checked = "true"       //this doesn't work in IE  before the node is appended.

        //create a span so I can style checkbox text specifically 
        myspan = document.createElement('span')
        myspan.id = "postSpan601";
        //create checkbox text within the span
        mycbtext = document.createTextNode("playdate");
        mycbdiv = document.createElement('div')
        mycbdiv.id = "div601"

        mydiv = $("postCheckCat");
        
        mydiv.appendChild(mycbdiv)
        mycbdiv.appendChild(mycheckbox);
        mycbdiv.appendChild(myspan);        
        myspan.appendChild(mycbtext);

        mycheckbox.checked = "true"   //this only works in IE after the node is appended
        $("div601").style.display = "none";
}

function validateWizPD()   //similar function is also in find.js (validateSTFriend)
{
    //check that fields are not empty   
    if (($("postPDemails").value.trims() == "") && (getCheckBoxes("postFriendsCB", "cbFriend").length == 0))   //empty email field and check boxes
    {
        msgBox("Oops!", "Please enter or select invitees.", 300)   
        return false
    }

    //validate emails
    if (($("postPDemails").value != "") && ($("postPDemails").value.trims() != "")) 
    {
        arr = $("postPDemails").value.split(",")
        for (i=0;i<arr.length;i++)
        {
            arr[i] = arr[i].trims()       //trims leading and trailing white spaces in emails
            if (!emailValid(arr[i]))
            {
                msgBox("Oops!", "The following email is not valid: " + arr[i] +".", 300)
                return false
            }
            if (arr[i] == myUser.email)
            {
                msgBox("Oops!", "Please remove your own email (" + arr[i] +") from your friends email list.<br/><br/>You can get copied on the sent email by selecting the 'Email it to me too' check box.", 300)
                return false
            }

        } 
    }
    
    if (isEmpty($("postPDEmailSuject"))) 
    {
        //msgBox("Oops!", "Please provide an email subject for your invite.", 300)     
        //return false
        $("postPDEmailSuject").value = "Playdate Invitation"
    } 
            
    return true;
}

function clearWizPD()
{
    $("postFriendsDiv").innerHTML = "";
    $("postPDemails").value = "";
    $("postPDEmailSuject").value = "";
    $("postPDEmailBody").value = "";
    
}

function enablePDreview()   //modify the review pane from review form to playdate reply form
{
    $("reviewPaneHeader").innerHTML = "Reply"
    $("reviewSectionRating").style.display = "none"
    $("reviewSectionPD").style.display = "block"
    $("reviewSectionTitle").style.display = "none"
    $("reviewDescLabel").innerHTML = "Note:"
    $("reviewPaneDesc").rows = 8;  //shrink the note field which doesn't need to be as big as the review description field.
}

function disablePDreview() //reverse changes made by enablePDreview()
{
    $("reviewPaneHeader").innerHTML = "Review"
    $("reviewSectionRating").style.display = "block"
    $("reviewSectionPD").style.display = "none"
    $("reviewSectionTitle").style.display = "block"
    $("reviewDescLabel").innerHTML = "Review description:"
    $("reviewPaneDesc").rows = 15;
    clearReplies()
}

function clearReplies()
{
    arr = document.getElementsByName("reviewPDradio")  //select all reply radio options
    for (i=0;i<arr.length;i++)
    {
        arr[i].checked = false;  //clear radio options
    }
}

function selectPDreply(selectedNode)
{
    clearReplies()
    selectedNode.checked = true;  
    // populate the reply value into the rater which is re-used in the playdate case to leverage same review functions 
    rater.Value = selectedNode.value
}

function selectNotification(selectedNode)
{
    clearNotification()
    selectedNode.checked = true;  
}

function clearNotification()
{
    arr = document.getElementsByName("postPDnotification")  //select all notification radio options
    for (i=0;i<arr.length;i++)
    {
        arr[i].checked = false;  //clear radio options
    }
}


function enablePlaydateEdit()
{

    $("postWizTitle").innerHTML = "Edit playdate";
    $("postNotificationOptions").style.display = "block";

}

function disablePlaydateEdit()
{
    $("postNotificationOptions").style.display = "none";
    selectNotification(document.getElementById("postNotificationOptions").getElementsByTagName("input")[0])  //reset notification selection to "notify all invitees"
}