﻿var MSG_DELETE_PROFILE = 'Are you sure you want to delete this profile?';
var MSG_ARE_YOU_SURE = 'Are you sure?';

function confirmAction(msg,additionalMsg,onOk,onCancel)
{
    var m = msg;
    if(!additionalMsg.blank())
        m+=additionalMsg;
    
    var b = confirm(m);
        
    if(b)
        if(onOk != undefined)
            onOk();
    else
        if(onCancel != undefined)
            onCancel();
    
}


function submitForm(url,params)
{
    if($('formErr'))
        $('formErr').style.display='none';
        
    var ajax = new Ajax.Request(url, 
        {
            method: 'get'
            ,parameters: params
            ,onSuccess: submitFormSuccess
            ,onFailure: submitFormFailure
        });
}
function submitFormSuccessMutiple(response)
{
    for(var i=0;i<response.actions.length;i++)
        performAction(response.actions[i]);
            
}
function performAction(action)
{
    try
    {
        if(action.valid)
        {
            switch(action.action)
            {
                case 'refresh':
                    document.location.reload();
                    break;
                case 'redirect':
                    document.location.href=action.url;
                    break;
                case 'top_close':
                    if(window)
                        if(window.top)
                            window.top.close();
                    break;
                case 'dhtml_append':
                    appendHtml(action.elementId,action.html);
                    break;
                case 'dhtml_replace':
                    replaceHtml(action.elementId,action.html);
                    break;
                case 'dhtml_set_input_value':
                    setInputValue(action.elementId,action.html);
                    break;
                case 'dhtml_clear_inputs':
                    clearInputs(action.elementId);
                    break;
                case 'dhtml_clear_selects':
                    clearSelects(action.elementId);
                    break;
                case 'effect_appear':
                    effectAppear(action.elementId);
                    break;
                case 'effect_highlight':
                    effectHighlight(action.elementId);
                    break;
                case 'effect_slidedown':
                    effectSlideDown(action.elementId);
                    break;
                case 'effect_slideup':
                    effectSlideUp(action.elementId);
                    break;
                case 'effect_grow':
                    effectGrow(action.elementId);
                    break;
                case 'effect_fade':
                    effectFade(action.elementId);
                    break;
                case 'effect_hide':
                    effectHide(action.elementId);
                    break;
                case 'effect_pulsate_and_fade':
                    effectPulsateAndFade(action.elementId);
                    break;
                case 'effectbyclass_fade':
                    effectByClassFade(action.elementId,action.className);
                    break;
                case 'test1':
                    var e = $(action.elementId);
                    
                    new Effect.Pulsate(e,{queue:'front'});
                    new Effect.Fade(e,{queue:'end'});
                    
                    break;
                case 'effect_pulsate':
                    effectPulsate(action.elementId);
                    break;
                case 'alert':
                    alert(action.message);
                    break;
                case 'message':
                    if($('formErrSpan'+formNumber) && $('formErr'+formNumber))
                    {
                        $('formErrSpan'+formNumber).innerHTML = action.message;
                        $('formErr'+formNumber).appear();
                    }
                    else
                    {
                        alert(action.message);
                    }
                    break;
            }
        }
        else
        {
            if($('formErrSpan'+formNumber) && $('formErr'+formNumber))
            {
                $('formErrSpan'+formNumber).innerHTML = action.message;
                $('formErr'+formNumber).appear();
            }
            else
            {
                alert(action.message);
            }
        }
    }
    catch(ex)
    {
        alert('an action failed: ' + action.action);
    }
}
function effectHide(id)
{
    if($(id))
        $(id).hide();
}
function setInputValue(id,value)
{
    if($(id))
        $(id).value = value;
}
function effectAppear(id)
{
    if($(id))
        $(id).appear();
}
function effectHighlight(id)
{
    if($(id))
        $(id).highlight({duration:1.5});
}
function effectSlideDown(id)
{
    if($(id))
        $(id).slideDown();
}
function effectPulsateAndFade(id)
{
    var e = $(id);
    if(e)
    {
        new Effect.Pulsate(e,{queue:'front'});
        new Effect.Fade(e,{queue:'end'});
    }
}
function effectSlideUp(id)
{
    if($(id))
        $(id).slideUp();
}
function effectPulsate(id)
{
    if($(id))
        $(id).pulsate();
}
function effectGrow(id)
{
    if($(id))
        $(id).grow();
}
function effectFade(id)
{
    if($(id))
        $(id).fade();
}
function effectByClassFade(idToSkip,className)
{
    var selector = '*.' + className;
    $$(selector).each(function(item)
    {
        if(item.id != idToSkip)
            new Effect.Fade(item); 
    });
}
function replaceHtml(id,html)
{
    if($(id))
        $(id).innerHTML=html;
    else
        alert('cannot find element ' + id);
}
function clearInputs(elementId)
{
    var ids = elementId.split(',');
    for(var i=0;i<ids.length;i++)
        if($(ids[i]))
            $(ids[i]).value='';
}
function clearSelects(elementId)
{
    var ids = elementId.split(',');
    for(var i=0;i<ids.length;i++)
        if($(ids[i]))
            $(ids[i]).selectedIndex = 0;
}
function appendHtml(id,html)
{
    if($(id))
        $(id).innerHTML+=html;
    else
        alert('cannot find element ' + id);
}
var formNumber = '';
function submitFormSuccess(response)
{
    var json;
    try
    {
        json = response.responseText.evalJSON();
        if(json.formNumber)
            formNumber = json.formNumber.toString();
        else
            formNumber = '';
            
        if(json.actions)
            submitFormSuccessMutiple(json);
        else
            performAction(json);
    }
    catch(ex)
    {
        alert('invalid json');
        alert(ex);
    }
}
function submitFormFailure(response)
{
    if($('formErrSpan'+formNumber) && $('formErr'+formNumber))
    {
        //$('formErrSpan').innerHTML = 'there was an error...please try again later';
        $('formErrSpan'+formNumber).innerHTML = response.responseText;
        $('formErr'+formNumber).appear();
    }
    else
    {
        alert(response.responseText);
    }
}

function prepareAddForm(url,params)
{

    if($('loading'))
        $('loading').show();

    submitForm(url,params);
}