var xmlHttp;

// Ajax object to get connection
function GetXmlHttpObject()
{
    var xmlHttp=null;
    try
      {
      // Firefox, Opera 8.0+, Safari
      xmlHttp=new XMLHttpRequest();
      }
    catch (e)
      {
      // Internet Explorer
      try
        {
        xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
      catch (e)
        {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
      }
    return xmlHttp;
}
/*
function CancelChangeEventFee()
{
    document.all.EventFee.innerHTML = document.all.InpEventFee.value;
    document.all.InpEventFee.value = "";
}

// ShowChangeEventFee - Give option of changing the fee
function ShowChangeEventFee()
{
    xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null)
    {
      alert ("Your browser does not support AJAX!");
      return false;
    }
    var url = "viewjob.php?jid=" + document.all.CUR_JID.value + "&getfeeoptions=t";
    xmlHttp.onreadystatechange=ShowChangeEventFeeReturn;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);

    return false;
}

function ShowChangeEventFeeReturn()
{
    var FrmHTML = "";

    // Wait until we get to ready state before processing
    if(xmlHttp.readyState != 4)
        window.setTimeout("ShowChangeEventFeeReturn();", 250);
    else
    {
        if(!document.all.InpEventFee.value)
            document.all.InpEventFee.value = document.all.EventFee.innerHTML;

        FrmHTML += "<select id=NewEventFee class=selectbox>";
        FrmHTML += xmlHttp.responseText;
        FrmHTML += "</select> <input type=button class=submit value=Change onClick=\"return ChangeEventFee();\">";
        FrmHTML += " <input type=button class=submit value=Cancel onClick=\"CancelChangeEventFee();\">";

        document.all.EventFee.innerHTML = FrmHTML;
    }
    return false;
}
*/
function ShowAddSlideshow()
{
    xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null)
    {
      alert ("Your browser does not support AJAX!");
      return false;
    }
    var url = "viewjob.php?jid=" + document.all.CUR_JID.value + "&ShowSlideshow=t";
    xmlHttp.onreadystatechange=ShowAddSlideshowReturn;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);

    return false;
}

function ShowAddSlideshowNext()
{
    var TotalSlides, SlideshowName;
    var i, ch;
    var SlidesName = "";

    xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null)
    {
      alert ("Your browser does not support AJAX!");
      return false;
    }

    TotalSlides = document.all.total_slides.value;
    SlideshowName = document.all.slideshow_name.value;

    // Replace all non numeric / alpha characters with _
    for(i=0;i<SlideshowName.length;i++)
    {
        ch = SlideshowName.charCodeAt(i);
        if( (ch > 47 && ch < 58) || (ch > 64 && ch < 91) || (ch > 96 && ch < 123) )
            SlidesName += SlideshowName.charAt(i);
        else
            SlidesName += "_";
    }

    var url = "viewjob.php?jid=" + document.all.CUR_JID.value + "&ShowSlideshow=t&total_slides=" + TotalSlides + "&slideshow_name=" + SlidesName;
    //alert(url);
    xmlHttp.onreadystatechange=ShowAddSlideshowReturn;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);

    return false;
}

function ShowAddSlideshowReturn()
{
    var FrmHTML = "";

    // Wait until we get to ready state before processing
    if(xmlHttp.readyState != 4)
        window.setTimeout("ShowAddSlideshowReturn();", 250);
    else
    {
        //if(!document.all.InpEventFee.value)
        //    document.all.InpEventFee.value = document.all.EventFee.innerHTML;

        FrmHTML += xmlHttp.responseText;

        document.all.AddSlideshowDiv.innerHTML = FrmHTML;
    }
    return false;
}

function StartSlideUpload(TotalSlides)
{
    var ErrList = "";
    var i;

    // Verify all slides are there and correct
    for(i=1;i<=TotalSlides;i++)
    {
        // If no slide selected, add error now
        if(!document.all['slide' + i].value)
            ErrList += "Missing Slide #" + i + "\n";
        else
            if(document.all['slide' + i].value.toLowerCase().indexOf(".jpg") == -1 && document.all['slide' + i].value.toLowerCase().indexOf(".jpeg") == -1)
                ErrList +=  "Slide #" + i + " must end in .JPG or .JPEG\n";
    }

    // If any errors, return now
    if(ErrList)
    {
        alert(ErrList);
        return false;
    }

    // Now start upload process (note that we get a slideshow ID after the first submit
    SubmitNextSlide(0,1);
}

function SubmitNextSlide(SlideShowID, SlideNum)
{
    // Update slideshow ID if given
    if(SlideShowID) document.all['slideshow_id' + SlideNum].value = SlideShowID;

    // Now just submit the appropriate form
    document.all['SlidesUpload' + SlideNum].submit();

    // Update previous slide as successfully uploaded
    if(SlideNum > 1) ShowSlideUploaded(SlideNum - 1);

    return false;
}

function FinishedSubmittingSlides(JobID, SlideNum)
{
    ShowSlideUploaded(SlideNum);

    //alert(JobID + " - " + SlideNum);

    window.setTimeout("window.location.reload();", 3000);
}

function ShowSlideUploaded(SlideNum)
{
    document.all['SlideUploaded' + SlideNum].innerHTML = "<span class=smtext><font color=#009900><b>Uploaded</b>";
}

function ChangeEventFee()
{
    xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null)
    {
      alert ("Your browser does not support AJAX!");
      return false;
    }
    var url = "viewjob.php?jid=" + document.all.CUR_JID.value + "&changefee=" + document.all.NewEventFee.value;
    xmlHttp.onreadystatechange=ChangeEventFeeReturn;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);

    return false;
}

function ShowAddPresentation()
{
    var FrmHTML = "";

    FrmHTML = "<form method=post action=viewjob.php onSubmit=\"return ValidatePresentation('add_pres_');\"><span class=ProfTitle>Add New Presentation Link:</span> <br>";
    FrmHTML += "<input type=hidden name=jid value=" + document.all.CUR_JID.value + ">";
    FrmHTML += "<input type=hidden name=NewPresentation value=true>";

    // Create form with blank fields
    FrmHTML += GetPresLinkHTML("add_pres_", "", "http://", "");

    FrmHTML += "<input type=submit class=submit value=\"Save New Link\">";
    FrmHTML += " <input type=button class=submit value=Cancel onClick=\"document.all.AddPresLink.style.display = 'none';\">";
    FrmHTML += "</form>";

    // Now show form
    document.all.AddPresLink.style.display = '';
    document.all.AddPresLink.innerHTML = FrmHTML;

    //document.bgColor = "#330000";

    return false;
}

// Open link in new window
function OpenLink(LinkLoc)
{
    var Link = eval("document.all." + LinkLoc + ".value");

    window.open(Link, "_blank");
    return false;
}

// Create web link form with given fields
function GetPresLinkHTML(FldPrefix, WebTitle, WebLink, WebDescription)
{
    var WebHTML = "";

    WebHTML += "<table border=0 cellpadding=0 cellspacing=5>";
    WebHTML += "<tr><td class=subtitle align=right><b>Title:</b></td><td><input size=23 class=textbox type=text name=" + FldPrefix + "title value=\"" + WebTitle + "\"></td></tr>";
    WebHTML += "<tr><td class=subtitle align=right valign=top><b>Link:</b></td><td valign=top><input size=23 class=textbox type=text name=" + FldPrefix + "link value=\"" + WebLink + "\">";
    WebHTML += " <a href=. onClick=\"return OpenLink('" + FldPrefix + "link');\"><span class=EditLink>Test Link</span></a>";
    WebHTML += "</td></tr>";
    //WebHTML += "<tr><td class=subtitle align=right><b>Description:</b></td><td><textarea class=textbox rows=5 cols=27 name=" + FldPrefix + "description>" + WebDescription + "</textarea></td></tr>";

    WebHTML += "</table>";

    return WebHTML;
}

// Delete a web link
function DeletePresLink(WebLinkID)
{
    if(!confirm("Are you sure you want to delete this presentation link?"))
        return false;

    // Send info to server.
    xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null)
    {
      alert ("Your browser does not support AJAX!");
      return false;
    }
    var url = "viewjob.php?jid=" + document.all.CUR_JID.value + "&deletepreslink=" + WebLinkID;
    xmlHttp.onreadystatechange=DeletePresLinkReturn;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);

    return false;
}

// Erase deleted web link from screen
function DeletePresLinkReturn()
{
    // Wait until we get to ready state before processing
    if(xmlHttp.readyState != 4)
        window.setTimeout("DeletePresLinkReturn();", 250);
    else
    {
        document.all["PresLink" + xmlHttp.responseText].style.display = 'none';
    }

    return false;
}
/*
function ChangeEventFeeReturn()
{
    var FrmHTML = "";
    var EventFee;
    var MarginHTML = "";

    // Wait until we get to ready state before processing
    if(xmlHttp.readyState != 4)
        window.setTimeout("ChangeEventFeeReturn();", 250);
    else
    {
        document.all.InpEventFee.value = "";
        var ParmsSplit = xmlHttp.responseText.split("|");

        document.all.EventMargin.value = ParmsSplit[0];
        FrmHTML += "<b>" + ParmsSplit[1] + "</b> ";
        FrmHTML += "<a href=# onClick=\"return ShowChangeEventFee();\">Change</a>";

        document.all.EventFee.innerHTML = FrmHTML;

        // Now change margin message
        EventFee = "$" + ParmsSplit[0];
        if(ParmsSplit[0] == 100 * (ParmsSplit[0] / 100))
            EventFee += ".00";

        if(ParmsSplit[0] > 0.00)
            MarginHTML = "Group Margin: " + EventFee + "  <span class=smtext>(minus 5% handling fee)</span>";
        else
            MarginHTML = "";

        document.all.MarginMessage.innerHTML = MarginHTML;
    }

    return false;
}
*/
// ShowEdit - Set edit mode on given field without ajax request
function ShowEdit(EdtCtrl, FldSize)
{
    //if(document.all.itef.value == 'T')
    //{
    //    alert('Test event is for demo purposes only. If this were a live paid event, you could change all of these settings.');
    //    return false;
    //}

    var InpHTML = "";

    // Get html for cancel
    if(!document.all['Inp' + EdtCtrl].value)
        document.all['Inp' + EdtCtrl].value = document.all[EdtCtrl].innerHTML;

    // Now build input box
    InpHTML += "<input size=" + FldSize + " class=textbox type=text id=Inp" + EdtCtrl + '0 value=\\\"' + document.all['Parms' + EdtCtrl].value + '\\\">';

    // Now add save and cancel buttons
    InpHTML += " <input class=submit type=button value=Save onClick=" + '\\\"SaveEdit(' + "'" + EdtCtrl + "', 1, 1);" + '\\\">';
    InpHTML += " <input class=submit type=button value=Cancel onClick=" + '\\\"CancelEdit(' + "'" + EdtCtrl + "');" + '\\\">';

    // Now set edit box parms
    var Eval1 = "document.all." + EdtCtrl + ".innerHTML = \"" + InpHTML + "\";";
    eval(Eval1);

    return false;
}

// CancelEdit - Cancel without ajax request
function CancelEdit(EdtCtrl)
{
    document.all[EdtCtrl].innerHTML = document.all['Inp' + EdtCtrl].value;
    document.all['Inp' + EdtCtrl].value = "";

    return false;
}

// Set Edit mode on given field
function GetEdit(EdtCtrl)
{
    xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null)
    {
      alert ("Your browser does not support AJAX!");
      return false;
    }
    var url = "viewjob.php?jid=" + document.all.CUR_JID.value + "&getedit=" + EdtCtrl;
    xmlHttp.onreadystatechange=GetEditReturn;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);

    return false;
}

// Process return info from ajax to set edit mode
function GetEditReturn()
{
    // Wait until we get to ready state before processing
    if(xmlHttp.readyState != 4)
        window.setTimeout("GetEditReturn();", 250);
    else
    {
        var ParmsSplit = xmlHttp.responseText.split("|");
        var ParmSplit;
        var InpHTML = "";
        var NumInputs;
        var cols_rows;
        var DoPost = "";

        // Cycle through all inputs
        for(NumInputs = 0; NumInputs < ParmsSplit.length;NumInputs++)
        {
            // Get params for current input
            ParmSplit = ParmsSplit[NumInputs].split("~");

            // If setting an edit box, do it now
            if(ParmSplit[0] == "EditBox")
            {
                InpHTML += "<input size=" + ParmSplit[3] + " class=textbox type=text id=Inp" + ParmSplit[1] + NumInputs + ' value=\\\"' + ParmSplit[2] + '\\\">';
                InpHTML += ParmSplit[4];
            }
            if(ParmSplit[0] == "TextArea")
            {
                cols_rows = ParmSplit[3].split(".");
                InpHTML += "<textarea cols=" + cols_rows[0] + " rows=" + cols_rows[1] + " class=textbox id=Inp" + ParmSplit[1] + NumInputs + ">";
                InpHTML += ParmSplit[2] + "</textarea><br>";
                DoPost = "Post";
                //alert(InpHTML);
            }
        }

        // Now add save and cancel buttons
        InpHTML += " <input class=submit type=button value=Save onClick=" + '\\\"SaveEdit' + DoPost + '(' + "'" + ParmSplit[1] + "', " + NumInputs + ", 1);" + '\\\">';
        InpHTML += " <input class=submit type=button value=Cancel onClick=" + '\\\"SaveEdit' + DoPost + '(' + "'" + ParmSplit[1] + "', " + NumInputs + ", 0);" + '\\\">';


        // Now set edit box parms
        var Eval1 = "document.all." + ParmSplit[1] + ".innerHTML = \"" + InpHTML + "\";";
        eval(Eval1);
    }
}

function CreateEditLink(EdtCtrl)
{
    var FldSize = 32;

    // If this is a short field, set size appropriately
    if(EdtCtrl == "SlotMinutes" || EdtCtrl == "BreakSeconds") FldSize = 3;
    var RetHTML = " <span class=\\\"EditLink\\\"><a href=\\\".\\\" onClick=\\\"return ShowEdit('" + EdtCtrl + "', " + FldSize + ");\\\">Edit</a></span>";

    return RetHTML;
}

// Call ajax function on save request
function SaveEdit(EdtCtrl, NumInputs, SaveType)
{
    var NewVal = "";
    var i;

    // Concatenate all inputs tied to this div together
    for(i=0;i<NumInputs;i++)
    {
        if(i) NewVal += "|";
        NewVal += eval("document.all.Inp" + EdtCtrl + i + ".value");
    }
    // Send info to server. SaveType=1 means save, SaveType=0 means cancel (i.e., get previous)
    xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null)
    {
      alert ("Your browser does not support AJAX!");
      return false;
    }
    var url = "viewjob.php?jid=" + document.all.CUR_JID.value + "&savetype=" + SaveType + "&saveedit=" + EdtCtrl +"&val=" + escape(NewVal);
    xmlHttp.onreadystatechange=SaveEditReturn;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);

    return false;
}

// Call ajax function on save request - via post
function SaveEditPost(EdtCtrl, NumInputs, SaveType)
{
    var NewVal = "";
    var Params = "";
    var FieldValue;
    var i;

    // Concatenate all inputs tied to this div together
    for(i=0;i<NumInputs;i++)
    {
        if(i) NewVal += "|";
        FieldValue = document.all['Inp' + EdtCtrl + i].value.replace(/"/g, "'");
        NewVal += FieldValue;
        //NewVal += eval("document.all.Inp" + EdtCtrl + i + ".value");
    }
    // Send info to server. SaveType=1 means save, SaveType=0 means cancel (i.e., get previous)
    xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null)
    {
      alert ("Your browser does not support AJAX!");
      return false;
    }
    var url = "viewjob.php";

    Params = "jid=" + document.all.CUR_JID.value + "&";
    if(SaveType)
        Params += "savetype=" + SaveType + "&saveedit=" + EdtCtrl +"&val=" + escape(NewVal);
    else
        Params += "savetype=" + SaveType + "&saveedit=" + EdtCtrl +"&val=x";

    xmlHttp.onreadystatechange=SaveEditReturn;
    xmlHttp.open("POST",url,true);
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.setRequestHeader("Content-length", Params.length);
    xmlHttp.setRequestHeader("Connection", "close");
    xmlHttp.send(Params);

    return false;
}

// Clear out Control
function ClearControl(EdtCtrl)
{
    // First confirm
    if(!confirm('Are you sure you want to clear this field?'))
        return false;

    xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null)
    {
      alert ("Your browser does not support AJAX!");
      return false;
    }
    var url = "viewjob.php?jid=" + document.all.CUR_JID.value + "&savetype=1&saveedit=" + EdtCtrl +"&val=";
    xmlHttp.onreadystatechange=SaveEditReturn;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);

    return false;

}

// Return handler for Ajax save request
function SaveEditReturn()
{
    // Wait until we get to ready state before processing
    if(xmlHttp.readyState != 4)
        window.setTimeout("SaveEditReturn();", 250);
    else
    {
        var ParmSplit = xmlHttp.responseText.split("~");
        var svReturn = "";

        // If plainbox, simply set the box and reset the edit control
        if(ParmSplit[0] == "PlainBox")
        {
            svReturn = "document.all." + ParmSplit[1] + ".innerHTML = \"" + ParmSplit[2] + CreateEditLink(ParmSplit[1]) + "\";";
            eval(svReturn);

            // Also reset input params to new value
            document.all['Inp' + ParmSplit[1]].value = "";
            document.all['Parms' + ParmSplit[1]].value = ParmSplit[2];

            // If user changed conversation length or max # conversations, update calculations
            if(ParmSplit[1] == "SlotMinutes" || ParmSplit[1] == "MaxConversations")
                UpdateNetworkingTimes();
        }

        // If plainhtml, simply display the given parm without edit control
        if(ParmSplit[0] == "PlainHTML")
        {
            svReturn = "document.all." + ParmSplit[1] + ".innerHTML = \"" + ParmSplit[2] + "\";";
            eval(svReturn);
        }
    }
}

// Edit summary
function ShowEditDescription()
{
    GetEdit('Description');

    return false;
}

// Edit Video
function ShowEditVideo()
{
    GetEdit('Video');

    return false;
}

// Open link in new window
function OpenLink(LinkLoc)
{
    var Link = eval("document.all." + LinkLoc + ".value");

    window.open(Link, "_blank");
    return false;
}

function AJXShow(PID)
{
    var ViewURL = "/app/blitz/event_ajx_requests.php?jid=" + document.all.CUR_JID.value + "&pid=" + PID;

    xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null)
    {
      alert ("Your browser does not support AJAX!");
      return false;
    }
    xmlHttp.onreadystatechange=AJXShowReturn;
    xmlHttp.open("GET",ViewURL,true);
    xmlHttp.send(null);

    return false;
}

function AJXShowReturn()
{
    // Wait until we get to ready state before processing
    if(xmlHttp.readyState != 4)
        window.setTimeout("AJXShowReturn();", 250);
    else
    {
        //alert (xmlHttp.responseText);
        var Parms = xmlHttp.responseText.split("|");
        var FrmHTML = "";

        // Enable display on correct div
        document.all['ShowReview' + Parms[0]].style.display = "";
        document.all['ShowReview' + Parms[0]].border = 1;

        FrmHTML = "<table bgcolor=#064265 cellpadding=1 cellspacing=1 width=435><td width=435><table bgcolor=#ffffff cellspacing=0 cellpadding=0 width=433><td width=433>";
        FrmHTML += "<table border=0 cellpadding=0 cellspacing=0><tr><td width=400></td><td class=smtext>";
        FrmHTML += "<a href=. onClick=\"return CloseAJXShow(" + Parms[0] + ");\">(Close)</a>&nbsp;</td></tr><tr><td colspan=2 valign=top>";
        FrmHTML += Parms[1];
        FrmHTML += "</td></tr></table>";
        FrmHTML += "</td></table></td></table>";

        document.all['ShowReview' + Parms[0]].innerHTML = FrmHTML;
    }

    return false;
}

function CloseAJXShow(UsrID)
{
    document.all['ShowReview' + UsrID].innerHTML = "";
    document.all['ShowReview' + UsrID].style.display = "none";

    return false;
}


