
var debugHelper = 0;

var saveButtonID = "";
var nextAccordionLevel = -1;

function doPostback(sender, id, SuccessHandler)
{
    saveButtonID = id;
    return AjaxPostback(sender, SuccessHandler, RequestFailed, startTicker, stopTicker);
}

var ImgSaveRegSucceededDbg="";
function ImgSaveRegSucceeded(transport)
{
    ImgSaveRegSucceededDbg="ImgSaveRegSucceeded(transport)";
    var json = "";
    try {
        json = transport.responseText.evalJSON();
    } catch(e){
        if(e instanceof SyntaxError)
        {
            ImgSaveRegSucceededDbg+="Malformed json response";
        } else {
            ImgSaveRegSucceededDbg+="Unable to parse json response text!";
        }
        throw e;
    }
    
    if(json.message != null) {
        ImgSaveRegSucceededDbg += "Setting result message\n";
        $('ajax_result_'+saveButtonID).innerHTML = json.message;
        $('ajax_result_'+saveButtonID).show();
    } else {
        ImgSaveRegSucceededDbg += "Clearing result message\n";
        $('ajax_result_'+saveButtonID).innerHTML = "";
        $('ajax_result_'+saveButtonID).hide();
    }
    
    ImgSaveRegSucceededDbg += "All good so far\n";
    if(json.field_updates == null) return;
    ImgSaveRegSucceededDbg += "field_updates != null\n";
    var fields = json.field_updates.split("|");
    if(fields == null || fields.length == 0) return;
    ImgSaveRegSucceededDbg += "fields.length: "+fields.length+"\n";
    var focus_set = false;
    for(var i=0;i<fields.length;i++)
    {
        var cmds = fields[i].split("=");
        if($(cmds[0]) == null)
        {
            ImgSaveRegSucceededDbg += "Field not found.\n";
        }
        else if(cmds[1] == "highlight")
        {
            $(cmds[0]).up().addClassName('mistake');
            ImgSaveRegSucceededDbg += cmds[0]+".up().addClassName('mistake');\n";
            if(!focus_set)
            {
                $(cmds[0]).focus();
                focus_set = true;
                ImgSaveRegSucceededDbg += "Focus set on "+cmds[0]+": highlight\n";
            }
        }
        else
        {
            $(cmds[0]).up().removeClassName('mistake');
            ImgSaveRegSucceededDbg += cmds[0]+".up().removeClassName('mistake');\n";
        }
    }
    ImgSaveRegSucceededDbg += "All input fields updated.\n";

    if( json.result == "success")
    {
        try {
            $('RegisterSkipButton').hide();
            $('RegisterNextButton').show();
        } catch(e){
            SaveRegisterSucceededDbg += "Could not update the buttons: \n";
        }
    }

    var reApplySuperSleight = false;
    try
    {
        if(json.save_button_image != null && json.save_button_id != null)
        {
            ImgSaveRegSucceededDbg += "Rewriting save button "+json.save_button_id+" to "+json.save_button_image+"\n";
            $(json.save_button_id).src = json.save_button_image;
            reApplySuperSleight = true;
            ImgSaveRegSucceededDbg += "Button image rewritten: "+json.save_button_image+"\n";
        } else {
            ImgSaveRegSucceededDbg += "Button image not changed\n";
        }
        if(json.page_header_login_status != null)
        {
            ImgSaveRegSucceededDbg += "Switching page_header_login_status\n";
            $('page_header_login_status').innerHTML = json.page_header_login_status;
        }
        if(json.registration_header != null && json.registration_header_label_id)
        {
            ImgSaveRegSucceededDbg += "Changing registration_header\n";
            $(json.registration_header_label_id).innerHTML = json.registration_header;
        }
        if(json.registration_intro_body != null && json.registration_intro_label_id != null)
        {
            ImgSaveRegSucceededDbg += "Changing registration_intro_label_id\n";
            ImgSaveRegSucceededDbg += "$(json.registration_intro_label_id).innerHTML = json.registration_intro_body;\n";
            ImgSaveRegSucceededDbg += "$("+json.registration_intro_label_id+").innerHTML = '"+json.registration_intro_body+"';\n";
            $(json.registration_intro_label_id).innerHTML = json.registration_intro_body;
        }
        if(json.pnlPasswordFields != null)
        {
            ImgSaveRegSucceededDbg += "Hiding pnlPasswordFields\n";
            $(json.pnlPasswordFields).hide();
        }
        if(json.email_textbox_id != null)
        {
            ImgSaveRegSucceededDbg += "Disabling email_textbox_id\n";
            $(json.email_textbox_id).disable();
        }
        if(json.terms_checkbox_id != null)
        {
            ImgSaveRegSucceededDbg += "Disabling terms_checkbox_id\n";
            $(json.terms_checkbox_id).disable();
        }
    }
    catch(e)
    {
        ImgSaveRegSucceededDbg += "Unable to apply all page changes.\n";
        ImgSaveRegSucceededDbg += e.message+"\n";
    }
    
    if(reApplySuperSleight)
    {
        // this is only ever required in IE5.5 + IE6
        try
        {
            if(supersleight != null)
            {
                ImgSaveRegSucceededDbg += "SuperSleight != null\n";
                supersleight.run();
                ImgSaveRegSucceededDbg += "SuperSleight reapplied\n";
            }
            else
            {
                ImgSaveRegSucceededDbg += "SuperSleight == null\n";
            }
        } catch(e) {
            ImgSaveRegSucceededDbg += "SuperSleight reapply failed:\n";
            ImgSaveRegSucceededDbg += e.message;
        }
    }
}

var SaveSucceededDbg="";
function SaveSucceeded(transport)
{
    SaveSucceededDbg="";
    var json = transport.responseText.evalJSON();
    if(json.message != null) {
        SaveSucceededDbg += "Setting result message\n";
        $('ajax_result_'+saveButtonID).innerHTML = json.message;
        $('ajax_result_'+saveButtonID).show();
    } else {
        SaveSucceededDbg += "Clearing result message\n";
        $('ajax_result_'+saveButtonID).innerHTML = "";
        $('ajax_result_'+saveButtonID).hide();
    }
    if(json.result == "success")
    {
        if(nextAccordionLevel >= 0)
        {
            // setTimeout( "setTopLevel(nextAccordionLevel)", 3000);
        }
    }
}

function RequestFailed(msg)
{
    $('ajax_result_'+saveButtonID).innerHTML = msg;
    $('ajax_result_'+saveButtonID).show();
}

function startTicker()
{
    $('ajax_ticker_'+saveButtonID).show();
}

function stopTicker()
{
    $('ajax_ticker_'+saveButtonID).hide();
}


