﻿/// <reference path="../../../Scripts/jquery-1.4.1.js" />


function AttachDatepicker() {
    $(".date").datepicker(
                {
                    dateFormat: 'dd/mm/yy',
                    onSelect: function () {
                        $('[controltovalidate=' + this.id + ']').each(function () {
                            ValidatorValidate(this);
                        })
                    },
                    buttonImage: '/Admin/images/icons/calendar.gif',
                    buttonImageOnly: true,
                    showOn: 'both'
                });
}


function AttachDateTimepicker() {
    var r1 = $("#minDate").length > 0 ? new Date($("#minDate")[0].value) : -1000000;
    var r2 = $("#maxDate").length > 0 ? new Date($("#maxDate")[0].value) : 1000000;
    $(".datetime").datetimepicker(
                {
                    dateFormat: 'dd/mm/yy',
                    timeFormat: 'hh:mm',
                    hourGrid: 4,
                    minuteGrid: 10,
                    numberOfMonths: 2,
                    minDate: r1,
                    maxDate: r2,
                    onSelect: function () {
                        $('[controltovalidate=' + this.id + ']').each(function () {
                            ValidatorValidate(this);
                        })
                    },
                    buttonImage: '/Admin/images/icons/calendar.gif',
                    buttonImageOnly: true,
                    showOn: 'both'
                });
}

function AttachCopyValueAction() {
    $(document).ready(function () {
        $(".copySource").keyup(function () {
            var source = $(this).val();
            $(".copyTarget").val(source);
            applyFilterUrlCode();
        });
        
    });
}

function AttachCopyValueAction1() {
    $(document).ready(function () {
        $(".copySource1").keyup(function () {
            var source = $(this).val();
            $(".copyTarget1").val(source);
            applyFilterUrlCode();
        });
    });
}

function AttachValidatorCallout() {
    (function ($) {
        $(document).ready(function () {
            $.updnValidatorCallout.attachAll();
        });
    })(jQuery);
}

function AttachValidatorTooltip() {
    $('.validate').tooltip('.tooltip');
    //$('.validate').append('&nbsp;'); // this is done because doesn't display properly empty span.
}

$(document).ready(function () {
    AttachDatepicker();
    AttachDateTimepicker();
    AttachValidatorTooltip();
    AttachUrlCodeFilter();
    //AttachValidatorCallout();

    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);

    function EndRequestHandler(sender, args) {
        AttachDatepicker();
        AttachDateTimepicker();
        AttachValidatorTooltip();
        AttachUrlCodeFilter();
        //AttachValidatorCallout();
    }
});


function BrowseFileManager(inputId) {
//    CKFinder.popup("/CMSContent/", 800, 500, SetFileField);
    var finder = new CKFinder();
    finder.selectActionFunction = SetFileField;
    finder.selectActionData = inputId;
    finder.basePath = "/CMSContent/";
    finder.popup(800, 600);
    return false;
}

function SetFileField(fileUrl, data) {
    document.getElementById(data["selectActionData"]).value = fileUrl;
}

function selectAll(objId, objIdToCheck) {
    var source = $("#" + objId);
    var checked_status = source[0].checked;
    $("." + objIdToCheck + " input:checkbox").each(function () {
        this.checked = checked_status;
    });
}


//----------- CONTROL URLCODE INPUT TEXT---------------------

function AttachUrlCodeFilter() {
    $(document).ready(function () {
        $(".filterUrlCode").keypress(function (event) {
            event.preventDefault();
            var source = $(".filterUrlCode").val();
            $(".filterUrlCode").val(source + filterCharForUrlCode(event.keyCode));
        });
    });
}

function applyFilterUrlCode() {
    var source = $(".filterUrlCode").val();
    var text = "";
    if (source != null) {
        if (source.length > 0) {
            for (var i = 0; i < source.length; i++) {
                text += filterCharForUrlCode(source.charCodeAt(i));
            }
        }
        $(".filterUrlCode").val(text);
    }
 }

function filterCharForUrlCode(charCode) {
    var keyChar = String.fromCharCode(charCode);
    if (/[a-zA-Z0-9]/.test(keyChar)) {
        return keyChar;
    }
    else {
        if (charCode >= 192 && charCode <= 197) {
            return "A";
        }
        else if (charCode >= 200 && charCode <= 203) {
            return "E";
        }
        else if (charCode >= 210 && charCode <= 214) {
            return "O";
        }
        else if (charCode >= 217 && charCode <= 220) {
            return "U";
        }
        else if (charCode >= 224 && charCode <= 229) {
            return "a";
        }
        else if (charCode >= 232 && charCode <= 235) {
            return "e";
        }
        else if (charCode >= 236 && charCode <= 239) {
            return "i";
        }
        else if (charCode >= 240 && charCode <= 246) {
            return "o";
        }
        else if (charCode >= 249 && charCode <= 252) {
            return "u";
        }
        else if (charCode == 253 || charCode == 255) {
            return "y";
        }
        else if (charCode == 231) {
            return "c";
        }
        else if (charCode == 221) {
            return "Y";
        }
        else if (charCode == 209) {
            return "N";
        }
        else if (charCode == 158) {
            return "z";
        }
        else if (charCode == 159) {
            return "Y";
        }
        else if (charCode == 32 || charCode == 45 ) {
            return "-";
        }
        else {
            return "";
        }
    }
}


var returnValueOfModalDialog = "";

//SHOW MODAL DIALOG JQUERY
var $dialog = null;

jQuery.showModalDialog = function (options) {

    var defaultOptns = {
        url: null,
        dialogArguments: null,
        height: 'auto',
        width: 'auto',
        position: 'center',
        resizable: true,
        scrollable: true,
        onClose: function () { },
        returnValue: null,
        doPostBackAfterCloseCallback: false,
        postBackElementId: null
    };

    var fns = {
        close: function () {
            opts.returnValue = $dialog.returnValue;
            $dialog = null;
            opts.onClose();
            if (opts.doPostBackAfterCloseCallback) {
                postBackForm(opts.postBackElementId);
            }
        },
        adjustWidth: function () { $frame.css("width", "100%"); }
    };

    // build main options before element iteration

    var opts = $.extend({}, defaultOptns, options);

    var $frame = $('<iframe id="iframeDialog" />');

    if (opts.scrollable)
        $frame.css('overflow', 'auto');

    $frame.css({
        'padding': 0,
        'margin': 0,
        'padding-bottom': 10
    });

    var $dialogWindow = $frame.dialog({
        autoOpen: true,
        modal: true,
        width: opts.width,
        height: opts.height,
        resizable: opts.resizable,
        position: opts.position,
        overlay: {
            opacity: 0.5,
            background: "black"
        },
        close: fns.close,
        resizeStop: fns.adjustWidth
    });

    $frame.attr('src', opts.url);
    fns.adjustWidth();

    $frame.load(function () {
        if ($dialogWindow) {

            var maxTitleLength = 50;
            var title = $(this).contents().find("title").html();

            if (title.length > maxTitleLength) {
                title = title.substring(0, maxTitleLength) + '...';
            }
            $dialogWindow.dialog('option', 'title', title);
        }
    });

    $dialog = new Object();
    $dialog.dialogArguments = opts.dialogArguments;
    $dialog.dialogWindow = $dialogWindow;
    $dialog.returnValue = null;
}

function postBackForm(targetElementId) {
    var theform;
    theform = document.forms[0];
    theform.__EVENTTARGET.value = targetElementId;
    theform.__EVENTARGUMENT.value = "";
    theform.submit();
}
