﻿function AppendDialogToForm(selector) {
    var dialog = $(selector).parent()[0];
    dialog.parentNode.removeChild(dialog);
    $('form').append(dialog);
}

function IsValid(validationGroup) {
    return Page_ClientValidate(validationGroup);
}

var multiCheckBox = {};

function CreateList(checkId) {
    if (!multiCheckBox[checkId])
        multiCheckBox[checkId] = {};
    if (!multiCheckBox[checkId].list) {
        multiCheckBox[checkId].list = new Array();
        multiCheckBox[checkId].UnCheckedList = new Array();
    }
}
function MultiCheckBoxesDefaultValue(checkId, checkedValues, unCheckedValues) {
    CreateList(checkId);
    var list = checkedValues.toString().split(',');
    for (var i = 0; i < list.length; i++)
        multiCheckBox[checkId].list.push(list[i]);

    var list2 = unCheckedValues.toString().split(',');
    for (var i = 0; i < list2.length; i++)
        if (list2[i].length > 0)
        multiCheckBox[checkId].UnCheckedList.push(list2[i]);
}
function ToogleMultiCheckBoxesAll(checkId, state) {
    CreateList(checkId);
}
function ToogleMultiCheckBoxes(checkId, value, hdnFieldId, hdnFieldId2) {
    CreateList(checkId);

    if (multiCheckBox[checkId].list.indexOf(value) >= 0) {
        multiCheckBox[checkId].list.splice(multiCheckBox[checkId].list.indexOf(value), 1);
        multiCheckBox[checkId].UnCheckedList.push(value);
    }
    else {
        multiCheckBox[checkId].list.push(value);
        if (multiCheckBox[checkId].UnCheckedList.indexOf(value) >= 0)
            multiCheckBox[checkId].UnCheckedList.splice(multiCheckBox[checkId].UnCheckedList.indexOf(value), 1);
            
    }
    $('#' + hdnFieldId).val(multiCheckBox[checkId].list.toString());
    $('#' + hdnFieldId2).val(multiCheckBox[checkId].UnCheckedList.toString());
}
function CreateTagWidgetControl(divId, hdnFieldId, btnLabel, addLabel, okLabel, allowAdd, spnShowTagsId, valTxtBoxId, showTags)
{
    var okAction = {
        id: 'okAction',
        label: '',
        defaultAction: true,
        callback:function(tw){
            var selectedTags = tw.getAllTags();
            
            var value = '';
            
            for (var i = 0; i < selectedTags.length; i++)
            {
                var tag = selectedTags[i];
                
                var tagId = $(tag).attr('id');
                tagId = tagId.substring(tagId.lastIndexOf('-') + 1 , tagId.length)
                value = value + tagId + "," + $(tag).text() + "," + ($(tag).hasClass('ui-state-active') ? 'y' : 'n') + ";";
            }
            
            
            
            $('#' + hdnFieldId).val(value);
            if (spnShowTagsId && showTags)
            {
                var showTagsValue = ''
                var checkedTags = tw.getAllCheckedTags();
                
                for (var i = 0; i < checkedTags.length; i++)
                {
                    var tag = checkedTags[i];
                    
                    var tagId = $(tag).attr('id');
                    tagId = tagId.substring(tagId.lastIndexOf('-') + 1 , tagId.length)
                    value = value + tagId + "," + $(tag).text() + "," + ($(tag).hasClass('ui-state-active') ? 'y' : 'n') + ";";
                    
                    if (i == 0)
                        showTagsValue += $(tag).text();
                    else
                        showTagsValue += ", " + $(tag).text();
                    
                }
                
                $('#' + spnShowTagsId).text(showTagsValue);
                $('#' + valTxtBoxId).val(showTagsValue);
                
            }
        }
    };
    
    var addAction = {
        id: 'addAction',
        label: addLabel,
        defaultAction: false,
        callback:function(tw){
            var text = tw.getTextbox().val();
            tw.addTagElement('new_' + new Date().getTime().toString(), text, true);
            tw.getTextbox().val('');
            tw.getTextbox().trigger('keyup');
        }
    };
    
    var tags = new Array();
    var checkedTags = new Array();
    
    var rows = $('#' + hdnFieldId).val().split(';');
    
    for (var i = 0; i < rows.length; i++)
    {
        if (!rows[i])
            continue;
    
        var values = rows[i].split(',');
        
        var isSelected = values[2] == 'y' ? true : false;
        var tag = {'id':values[0], 'label':values[1], 'selected':isSelected };
        tags[tags.length] = tag;
        if (isSelected)
            checkedTags[checkedTags.length] = tag;
    }
    
    var tagCsv = '';
    
    for (var i = 0; i < checkedTags.length; i++)
    {
        if (i == 0)
        {
            tagCsv += checkedTags[i].label;
        }
        else
        {
            tagCsv += ", " + checkedTags[i].label;
        }
    }
    
    $('#' + spnShowTagsId).text(tagCsv);
    
    $('#' + divId).tagWidget(tags, {'okAction':okAction,'addAction':addAction}, {buttonLabel: btnLabel, multiSelect: true});
    
    $('[id$=okAction]', $('#' + divId)).hide();
    
    if (!allowAdd)
        $('[id$=addAction]', $('#' + divId)).hide();
    if (!showTags)
        $('#' + spnShowTagsId).hide();
}

function CreatePagerControl(currentPage, totalPages, pagerContainerId, hdnCurrentPageId, hdnTotalPagesId, btnChangePageId)
{
    currentPage = parseInt(currentPage);
    totalPages = parseInt(totalPages);
    var container = $('#' + pagerContainerId);
    var hdnCurrentPage = $('#' + hdnCurrentPageId);
    var hdnTotalPages = $('#' + hdnTotalPagesId);
    var btnChangePage = $('#' + btnChangePageId);
    
    container.pager({ pagenumber: currentPage, pagecount: totalPages, buttonClickCallback: function(selectedPage){
            hdnCurrentPage.val(selectedPage);
            btnChangePage[0].click();
    }});
}

function OpenDialogAndAppendToForm(dialogSelector) {
    $(dialogSelector).dialog('open');
    AppendDialogToForm(dialogSelector);
}


