﻿var btnPush = null;
var running = false;
var inputID = null;
var ddlActivity = null;

function Push_Down(_inputID)
{
    if (!running)
    {
        SetButton(1);
    }
}

function Push_Up(_inputID)
{
    inputID = '#' + _inputID;
    ddlActivity = $('#ddlActivity');
    
    if (!running)
    {
        SetButton(2);
        PushUrl();
    }
}


function PushUrl()
{
    // init
    running = true;
    HidePreview();
    HideWarning();     
    ResetAllInputs();
    ShowProgress();

    // validate entries
    var tbxUrl = $(inputID);
    var tbxCustomUrl = $('#tbxCustomUrl');
    var tbxPasscode = $('#tbxPasscode');

    var encodedUrl = $.URLEncode(tbxUrl.val());
    var activityOpt = ddlActivity.val();

    var jsonData = "url=" + encodedUrl + "&custom=" + tbxCustomUrl.val() + "&pass=" + tbxPasscode.val() + "&active=" + activityOpt;

    // submit
    ajaxCall = $.ajax({
        type: "POST",
        url: "handler/push_json.ashx",
        data: jsonData,
        cache: false,
        dataType: "json",
        success: OnPush_Success,
        error: OnPush_Error
    });
}

function OnPush_Success(data)
{
    switch (data.ResultCode)
    {
        case -1:
            ShowWarning("Warning!", data.ResultMessage);
            break;
        case -4:
            ShowWarningForUrl();
            ShowWarning("Warning!", data.ResultMessage);
            break;
        case -2:
        case -3:
        case -5:
            ShowWarningForCustomUrl();
            ShowWarning("Warning!", data.ResultMessage);
            break;
        case -6:
            ShowWarningForPasscode();
            ShowWarning("Warning!", data.ResultMessage);
            break;
        case -20:
            ShowWarningForUrl();
            ShowWarning("Warning!", data.ResultMessage);
            break;
        default:
            //ShowStatus("Success! " + data.ResultMessage);
            DisplayPreview(data);
           
            break;
    }
    
    HideProgress();
    SetButton(0);
    
    running = false;
}

function ResetAllInputs()
{
    var tbxUrl = $(inputID);
    var tbxCustomUrl = $('#tbxCustomUrl');
    var tbxPasscode = $('#tbxPasscode');
    tbxUrl.css("border", "1px solid #AAAAAA");
    tbxCustomUrl.css("border", "1px solid #AAAAAA");
    tbxPasscode.css("border", "1px solid #AAAAAA");

    var imgUrl = $('#imgCheckUrl');
    imgUrl.attr("src", "content/icons/empty.png");
    var imgCustomUrl = $('#imgCheckCustomUrl');
    imgCustomUrl.attr("src", "content/icons/empty.png");
    var imgPasscodeUrl = $('#imgCheckPasscode');
    imgPasscodeUrl.attr("src", "content/icons/empty.png");
}

function ShowWarningForUrl()
{
    var tbxUrl = $(inputID);
    tbxUrl.css("border", "1px solid #FF0000");
    var imgUrl = $('#imgCheckUrl');
    imgUrl.attr("src", "content/icons/check.png");
}

function ShowWarningForCustomUrl()
{
    var tbxCustomUrl = $('#tbxCustomUrl');
    tbxCustomUrl.css("border", "1px solid #FF0000");
    var imgCustomUrl = $('#imgCheckCustomUrl');
    imgCustomUrl.attr("src", "content/icons/check.png");
}

function ShowWarningForPasscode()
{
    var tbxPasscode = $('#tbxPasscode');
    tbxPasscode.css("border", "1px solid #FF0000");
    var imgPasscodeUrl = $('#imgCheckPasscode');
    imgPasscodeUrl.attr("src", "content/icons/check.png");
}

function ShowWarning(_caption, _text)
{
    var warningBox      = $('#divWarning');
    var warningCaption  = $('#lblWarningCaption');
    var warningText = $('#lblWarningText');
    warningCaption.html(_caption);
    warningText.html(_text);
    warningBox.show();
}

function HideWarning()
{
    var warningBox = $('#divWarning');
    warningBox.hide();
}

function HidePreview()
{
    var preview = $('#divPushDisplay');
    preview.hide();
}
function DisplayPreview( data )
{
    try
    {
        var template = $('#divTemplate').html();
        var preview = $('#divPushDisplay');
        $(template).bindTo(data.Push, { root: 'data', fillTo: '#divPushDisplay' });
        preview.show();

        // copy it to the clipboard
        var isChecked = $('#cbxCopyToClipboard').attr('checked');
        if (isChecked)
        {
            var clipBoardData = "http://apu.sh/" + data.Push.ShortUrl;
            //CopyToClipboard(clipBoardData);
            $.copy(clipBoardData);
        }
    }
    catch (_ex)
    {
            alert(_ex.message);
    }
    
}

function OnPush_Error(xhr, ajaxOptions, thrownError)
{
    ShowWarning("Error: General system failure!", "Please contact the support team!");
    HideProgress();
    SetButton(0);    
    running = false;
}

function SetButton(state)
{
    var btnPush = $('#btnPush');
  
    switch (state)
    {
        case 1:
            btnPush.css("class", "clPushButton_on");
            btnPush.attr("src", "content/icons/btn_push_on.png");
            break;
        case 2:
            btnPush.css("class", "clPushButton_off");
            btnPush.attr("src", "content/icons/btn_push_dis.png");
            break;
        default:
            btnPush.css("class", "clPushButton_off");
            btnPush.attr("src", "content/icons/btn_push_off.png");
            break;
    }
}

function ResetStats(url)
{
    alert('Reset feature is currently deactivated!');
}

function ShowStatus(_text)
{
    var lblStatus = $('#lblStatus');
    lblStatus.html(_text);
}


function ShowProgress()
{
    var imgProgress = $('#imgProgress');
    imgProgress.attr("src", "content/icons/spinner.gif");
}
function HideProgress()
{
    var imgProgress = $('#imgProgress');
    imgProgress.attr("src", "content/icons/empty.png");
}
// - 




