﻿// ----------------------------------------------------------------------
// IMAGE
// ----------------------------------------------------------------------
function SetDatePicker(id) {
    $('#' + id).datepicker({ dateFormat: 'dd-mm-yy', dayNamesMin: ['M', 'D', 'W', 'D', 'V', 'Z', 'Z'], monthNames: ['Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December'] });
}


// ----------------------------------------------------------------------
// IMAGE
// ----------------------------------------------------------------------
function ImageSelectorAdd(controlId, url, alttext, width, height, imageId) {
    if (controlId != '') {
        controlId += '_';
    }
    $('#' + controlId + 'ImageViewerDiv').html('<img src="' + url + '" alt="' + alttext + '" />');
    $('#' + controlId + 'tbAltText').val(alttext);
    $('#' + controlId + 'tbHeight').val(height);
    $('#' + controlId + 'tbWidth').val(width)
    $('#' + controlId + 'hfOrgHeight').val(height);
    $('#' + controlId + 'hfOrgWidth').val(width);
    $('#' + controlId + 'hfImageId').val(imageId);
    $('#' + controlId + 'hfImageUrl').val(url);
    tb_remove();
}

function ImageSelectorCloseRefresh() {
    window.location.reload(true);
}

function ImageSelectorDelete(controlId) {
    if (controlId != '') {
        controlId += '_';
    }
    $('#' + controlId + 'ImageViewerDiv').html('');
    $('#' + controlId + 'tbAltText').val('');
    $('#' + controlId + 'tbHeight').val('');
    $('#' + controlId + 'tbWidth').val('')
    $('#' + controlId + 'hfOrgHeight').val('');
    $('#' + controlId + 'hfOrgWidth').val('');
    $('#' + controlId + 'hfImageId').val('');
    $('#' + controlId + 'hfImageUrl').val('');
}

function ImageSelectorChangeHeight(controlId) {
    if (controlId != '') {
        controlId += '_';
    }
    var oHeight = $('#' + controlId + 'tbHeight');
    var oWidth = $('#' + controlId + 'tbWidth');
    var orgHeight = $('#' + controlId + 'hfOrgHeight');
    var orgWidth = $('#' + controlId + 'hfOrgWidth');

    if (!isNaN(oHeight.val())) {
        oWidth.val(Math.round((oHeight.val() / orgHeight.val()) * orgWidth.val()));
        ImageSelectorSetImageDimensions(imgPreviewId, txtHeightId, txtWidthId);
    }
}

function ImageSelectorChangeWidth(controlId) {
    if (controlId != '') {
        controlId += '_';
    }
    var oHeight = $('#' + controlId + 'tbHeight');
    var oWidth = $('#' + controlId + 'tbWidth');
    var orgHeight = $('#' + controlId + 'hfOrgHeight');
    var orgWidth = $('#' + controlId + 'hfOrgWidth');

    if (!isNaN(oWidth.val())) {
        oHeight.val(Math.round((oWidth.val() / orgWidth.val()) * orgHeight.val()));
        ImageSelectorSetImageDimensions(controlId);
    }
}

function ImageSelectorSetImageDimensions(controlId) {
    if (controlId != '') {
        controlId += '_';
    }
    $('#' + controlId + 'ImageViewerDiv img').each(function(index) {
        $(this).css('width', $('#' + controlId + 'tbWidth').val() + 'px');
        $(this).css('height', $('#' + controlId + 'tbHeight').val() + 'px');
    });
}

function ImageSelectorCategoryChange(controlId) {
    var dataParams = "{controlId:'" + controlId + "',category:'" + $('#' + controlId + '_ddlCategory').val() + "'}";
    $.ajax({
        type: "POST",
        url: "/CMS/Services/Resources.asmx/GetImageSelectorList",
        data: dataParams,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(data) {
            $('#' + controlId + '_ImageSelectorImageList').html(data.d);
        }
    });
}

function ImageSelectorNewImage() {
    $('#ImageSelectorExistingDiv').css('display', 'none');
    $('#ImageSelectorNew').css('display', 'block');
}

function ImageSelectorShowGallery() {
    $('#ImageSelectorExistingDiv').css('display', 'block');
    $('#ImageSelectorNew').css('display', 'none');
}

// ----------------------------------------------------------------------
// LINK
// ----------------------------------------------------------------------
function LinkPickerAddLink(controlId) {
    if (controlId != '') {
        controlId += '_';
    }
    var link = $('#' + controlId + 'tbLink' + $('#' + controlId + 'ddlLinkType').val()).val();
    $('#' + controlId + 'tbLink').val(link);
    tb_remove();
}

function LinkPickerShowOption(controlId) {
    LinkPickerHideOptions(controlId);
    if (controlId != '') {
        controlId += '_';
    }
    $('#' + controlId + 'LinkPicker' + $('#' + controlId + 'ddlLinkType').val()).css('display', 'block');
}

function LinkPickerHideOptions(controlId) {
    if (controlId != '') {
        controlId += '_';
    }
    $('#' + controlId + 'LinkPickerWebsite').css('display', 'none');
    $('#' + controlId + 'LinkPickerInternet').css('display', 'none');
    $('#' + controlId + 'LinkPickerEmail').css('display', 'none');
    $('#' + controlId + 'LinkPickerFile').css('display', 'none');
    $('#' + controlId + 'LinkPickerImage').css('display', 'none');
}

function LinkPickerAddPageLink(controlId, url) {
    if (controlId != '') {
        controlId += '_';
    }
    $('#' + controlId + 'tbLink' + $('#' + controlId + 'ddlLinkType').val()).val(url);
}

function LinkPickerClose() {
    tb_remove();
}

function TinyLinkPickerAddLink(controlId) {
    var link = $('#tbLink' + $('#ddlLinkType').val()).val();
    var win = tinyMCEPopup.getWindowArg("window");
    win.document.getElementById(tinyMCEPopup.getWindowArg("input")).value = link;
    //    win.document.getElementById("title").value = title;
    tinyMCEPopup.close();
}

// ----------------------------------------------------------------------
// TREE
// ----------------------------------------------------------------------
function TreeSelect(id, url, controlId, valueId) {
    $('#TreeView li div').removeClass('Selected');
    $('#Tree' + id).addClass('Selected');
    LinkPickerAddPageLink(controlId, url);
    $('#' + valueId).val(id);
}

function TreeSelectMove(id, valueId) {
    $('#TreeView li div').removeClass('Selected');
    $('#Tree' + id).addClass('Selected');
    $('#' + valueId).val(id);
}

function TreeMover(id) {
    $('#Tree' + id).addClass('ItemHover');
}

function TreeMout(id) {
    $('#Tree' + id).removeClass('ItemHover');
}


// ----------------------------------------------------------------------
// VALIDATION
// ----------------------------------------------------------------------
function CheckRequiredField(source, args) {
    if (args.Value.length > 0) {
        args.IsValid = true;
    }
    else {
        args.IsValid = false;
    }

    SetErrorClass(source.controltovalidate, args.IsValid);
}

function CheckRequiredFieldPassword(source, args) {
    var passId = source.controltovalidate.replace('tbPasswordRepeat', 'tbPassword');

    if (args.Value.length > 0 && document.getElementById(passId).value == args.Value) {
        args.IsValid = true;
    }
    else {
        args.IsValid = false;
    }

    SetErrorClass(source.controltovalidate, args.IsValid);
    SetErrorClass(passId, args.IsValid);
}

function CheckRequiredFieldTiny(source, args) {
    var txt = document.getElementById(source.controltovalidate);
    tinyMCE.triggerSave();
    args.Value = (txt.value.replace(/^W+/, '')).replace(/W+$/, '');

    if (args.Value.length > 0) {
        args.IsValid = true;
    }
    else {
        args.IsValid = false;
    }

    SetErrorClass(source.controltovalidate + '_valdiv', args.IsValid);
}

function CheckRequiredFieldInt(source, args) {
    var elem = document.getElementById(source.controltovalidate);

    if (/^\d+$/.test(elem.value)) {
        args.IsValid = true;
    }
    else {
        args.IsValid = false;
    }

    SetErrorClass(source.controltovalidate, args.IsValid);
}

function CheckEmail(source, args) {
    var elem = document.getElementById(source.controltovalidate);

    if (/\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/i.test(elem.value)) {
        args.IsValid = true;
    }
    else {
        args.IsValid = false;
    }

    SetErrorClass(source.controltovalidate, args.IsValid);
}

function SetErrorClass(inputId, isValid) {
    var element = document.getElementById(inputId);
    if (isValid) {
        element.className = element.className.replace(' error', '');
        if (element.className == 'error') {
            element.className = '';
        }
    }
    else {
        element.className = element.className.replace(' error', '') + ' error';
    }
}

