﻿
$(document).ready(function()
{
    $('#frmLoading').hide(); $('#frm').show(); $('#comment1').val('Comment for Condition 1'); $('#condition1').val('Condition-1'); $('#expression1').val('Expression-1'); $('#else1').val('null()'); addCustomEvents(1); $('#txtFieldName').bind("change", function(e) { genCode(); }); $('a[name=lnkAdd]').bind("click", function(e) { addFieldSet(); }); $('a[name=lnkDel]').bind("click", function(e) { removeFieldSet(); }); $('#chkIncludeComments').bind("change click", function(e) { genCode(); }); genCode(); $('a[name=lnkDel]').attr('disabled', 'disabled'); $('#tabs').tabs(); $('.styled_button').hover(function() { $(this).addClass('ui-state-hover'); }, function() { $(this).removeClass('ui-state-hover'); }); $('#lnkImport').click(function()
    { importCode(); }); $('#lnkCopyToClipboard').click(function()
    { window.clipboardData.setData('text', genCode()); alert(SyntaxHighlighter.config.strings.copyToClipboardConfirmation); }); $('#help_FileName').dialog({ autoOpen: false, width: 600, buttons: { "Ok": function()
    { $(this).dialog("close"); }, "Cancel": function()
    { $(this).dialog("close"); } }
    }); $('#lnkHelp_FileName').click(function()
    { $('#help_FileName').dialog('open'); return false; });
}); function addCustomEvents(target)
{
    $('#comment' + target).bind("change", function(e)
    { genCode(); }); $('#condition' + target).bind("change", function(e)
    { genCode(); }); $('#expression' + target).bind("change", function(e)
    { genCode(); }); $('#else' + target).bind("change", function(e)
    { genCode(); });
}
function multiString(str, x)
{
    var r = ''; if (x > 0)
    {
        for (var i = 0; i < x; i++)
        { r += str; } 
    }
    return r;
}
function hil()
{ SyntaxHighlighter.config.clipboardSwf = 'library/flash/2.1.364/clipboard.swf'; SyntaxHighlighter.highlight(); }
function removeFieldSet()
{
    var num = $('.clonedInput').length; $('#input' + num).remove(); $('#btnAdd').attr('disabled', ''); $('#else' + (num - 1)).attr('disabled', ''); $('#label-else' + (num - 1)).show(); $('#else' + (num - 1)).show(); if (num - 1 == 1)
    { $('a[name=lnkDel]').attr('disabled', 'disabled'); }
    genCode();
}
function addFieldSet()
{ var num = $('.clonedInput').length; var newNum = new Number(num + 1); var newElem = $('#input' + num).clone().attr('id', 'input' + newNum); newElem.children(':first').children(':eq(0)').attr('id', 'label-comment' + newNum).attr('for', 'comment' + newNum); newElem.children(':first').children(':eq(1)').attr('id', 'comment' + newNum).attr('name', 'comment' + newNum); newElem.children(':first').children(':eq(3)').attr('id', 'label-condition' + newNum).attr('for', 'condition' + newNum); newElem.children(':first').children(':eq(4)').attr('id', 'condition' + newNum).attr('name', 'condition' + newNum); newElem.children(':first').children(':eq(6)').attr('id', 'label-expression' + newNum).attr('for', 'expression' + newNum); newElem.children(':first').children(':eq(7)').attr('id', 'expression' + newNum).attr('name', 'expression' + newNum); newElem.children(':first').children(':eq(9)').attr('id', 'label-else' + newNum).attr('for', 'else' + newNum); newElem.children(':first').children(':eq(10)').attr('id', 'else' + newNum).attr('name', 'else' + newNum); newElem.children(':first').children(':eq(1)').attr('value', 'Comment for Condition ' + newNum); newElem.children(':first').children(':eq(4)').attr('value', 'enter your condition here (' + newNum + ')'); newElem.children(':first').children(':eq(7)').attr('value', 'enter your expression here (' + newNum + ')'); newElem.children(':first').children(':eq(10)').attr('value', 'enter your else-expression here (only for the last one) - ' + newNum); $('#else' + num).attr('disabled', 'disabled'); $('#else' + num).hide(); $('#label-else' + num).hide(); $('#input' + num).after(newElem); addCustomEvents(newNum); $('#input' + newNum).css('margin-left', (10 * newNum) + 'px'); $('a[name=lnkDel]').attr('disabled', ''); genCode(); }
function genCode()
{
    var result = ""; var fieldName = $('#txtFieldName').val(); var pattern = "{5}{6}if({0}{3},{1}{4},{2})"; var num = $('.clonedInput').length; var formatting = $("input[@name='rdoFormatting']:checked").val(); var doComments = $('#chkIncludeComments').is(':checked'); result = pattern; for (i = 1; i < (num + 1); i++)
    {
        result = result.replace('{0}', $('#condition' + i).val()); result = result.replace('{1}', $('#expression' + i).val()); if (i < num)
        { result = result.replace('{2}', pattern); }
        else
        { result = result.replace('{2}', $('#else' + i).val()); }
        var y = i - 1; switch (formatting)
        {
            case "0": result = result.replace('{3}', ''); result = result.replace('{4}', ''); result = result.replace('{5}', ''); result = result.replace('{6}', ''); break; case "1": if (doComments)
                { result = result.replace('{5}', '\n' + multiString('\t', y) + '// ' + $('#comment' + i).val()); }
                else
                { result = result.replace('{5}', ''); }
                result = result.replace('{3}', '\n' + multiString('\t', i)); result = result.replace('{4}', '\n' + multiString('\t', i)); result = result.replace('{6}', '\n' + multiString('\t', y)); break; case "2": if (doComments)
                { result = result.replace('{5}', '\n' + multiString('\t', y) + '// ' + $('#comment' + i).val()); }
                else
                { result = result.replace('{5}', ''); }
                result = result.replace('{3}', ''); result = result.replace('{4}', ''); result = result.replace('{6}', '\n' + multiString('\t', y)); break; default: break;
        } 
    }
    result = result + '{10}as ' + fieldName; if (formatting > 0)
    { result = result.replace('{10}', '\n'); }
    else
    { result = result.replace('{10}', ' '); }
    var finalResult = "// ************************************************************************\n"; finalResult += "// Revisit http://www.qlikblog.at/tools/ for adding other nested-ifs\n"; finalResult += "// ************************************************************************"; if (formatting == 0)
    { finalResult += "\n"; }
    finalResult += result + "\n"; finalResult += "// ************************************************************************\n"; $('#divResult').html('<pre name=\"code\" class=\"brush:qvl\">' + finalResult + '</pre>'); hil(); return finalResult;
}
function toggleFieldsetStyle(elem)
{
    if ($(elem).css('backgroundColor') == 'transparent')
    { $(elem).css('backgroundColor', '#fcf0ba'); }
    else
    { $(elem).css('backgroundColor', 'transparent'); } 
}