﻿jQuery(document).ready(function() {
    jQuery("img.contactVariantInfo").each(function(pos, el) {//needs to hide information block if it empty(A.Kostyuk)
        var pel = el.parentNode;
        if (pel) {
            var txtel = jQuery(pel).find(".tooltip");
            if (txtel) {
                var txt = txtel[0].innerText || txtel[0].textContent;
                txt = (txt ? txt : "").replace(/^\s\s*/, '').replace(/\s\s*$/, '');

                if (txt.length < 1)
                    jQuery(el).hide();
            }
        }
    });
    jQuery("img.contactVariantInfo").tooltip({ effect: 'slide', position: "bottom right" });

    //show input field for contact where

    jQuery("div.contactpatterninfo .txtSenderContactId").bind({
        change: function() {
            showSenderContactToolTip(this.parentNode.parentNode, this, false); //li element as param
        },
        keyup: function() {
            showSenderContactToolTip(this.parentNode.parentNode, this, false); //li element as param
        },
        blur: function() {
            showSenderContactToolTip(this.parentNode.parentNode, this, false); //li element as param
        }
    });

    jQuery("span.chkPMContactBy input").bind(
            {
                change: function() {
                    showEditContactId(this.parentNode, this, true);
                }
            }
        );



    jQuery("span.chkPMContactBy input").each(function(pos, el) {//show first time visible elements-which checked
        showEditContactId(this.parentNode, this);
    });
});

function showEditContactId(el, chkbox, isClientSideEvent) {
    //
    var divEl = el.parentNode;
    var liEl = divEl ? divEl.parentNode : null;
    if (liEl) {
        jQuery(liEl).find("div.contactpatterninfo .isPostBack").val("0");
        var txtcontrol = jQuery(liEl).find("div.contactpatterninfo .txtSenderContactId");
        var txtcontrolParent = jQuery(liEl).find("div.contactpatterninfo");
        var txtpattern = jQuery(liEl).find("div.contactpatterninfo .sInfPatten");
        if (txtcontrol.length == 1 && txtpattern.length == 1 && String(txtpattern.val()).length > 0) {
            if (chkbox && chkbox.checked) txtcontrolParent.show();
            else txtcontrolParent.hide();
            //show tool tip text
            showSenderContactToolTip(liEl, txtcontrol, isClientSideEvent);
        }
    }
}

function showSenderContactToolTip(liEl, txtcontrol, isClientSideEvent) {
    var isReg = false;
    var isPostBack = jQuery(liEl).find("div.contactpatterninfo .isPostBack");
    var txtpattern = jQuery(liEl).find("div.contactpatterninfo .sInfPatten");
    txtcontrol = jQuery(txtcontrol);
    if (txtpattern.length == 1 && String(txtpattern.val()).length > 0) {
        isReg = true; //if pattern exist - then client should fill contact id field
        isReg = CheckRegExpr(liEl, txtcontrol.val(), isReg, isClientSideEvent); //regular expression should be checked only if pattern exist
        showToolTip(liEl, txtcontrol, isReg, txtpattern);
    }
}

function CheckRegExpr(liEl, txtvalue, inputValid, isClientSideEvent) {
    var isError = inputValid;
    var regVal = jQuery(liEl).find("div.contactpatterninfo .regVal");
    var errorMsg = jQuery(liEl).find("div.contactpatterninfoerrormessage.contactpatterninfoerrormessage");
    var resValidator = jQuery(liEl).find("div.contactpatterninfo .isValidInput");

    txtvalue = txtvalue == null ? "" : txtvalue;
    if (!regVal.val().IsNullOrEmpty()) {
        var re = new RegExp(regVal.val());
        isError = !txtvalue.match(re);
    } else
        isError = (txtvalue.length < 1);

    if (errorMsg.length > 0) {//show or hide error message
        if ((isError && !isClientSideEvent) || (isError && isClientSideEvent && txtvalue.length > 0)) errorMsg.show();
        else errorMsg.hide();
    }
    if (resValidator.length > 0)
        if (isError) resValidator.val("0");
    else resValidator.val("1");
    return isError;
}

function showToolTip(liEl, txtcontrol, isError, tooltipattern) {
    if (tooltipattern.length > 0) {
        if (!isError) {
            var tooltip = "";
            //                    if (String(tooltipattern.val()).indexOf("[#contact#]") > -1) tooltip = String(tooltipattern.val()).replace("[#contact#]", txtcontrol.val());
            //                    else tooltip = String(tooltipattern.val()) + txtcontrol.val();
            //                    txtcontrol.attr("title", tooltip);
            //                    var tooltiphtml = "<a target='_blank' href='" + tooltip + "'>" + tooltip + "</a>";
            //                    jQuery(liEl).find("div.contactpatterninfo .contacttooltip").html(tooltiphtml);
        }
        else tooltipattern.html("");
    }
}

