﻿// This script is used in providing error messages in tooltips for form-validation

var tooltipManager = null; //Ref to tooltipManager

// Hashtable to store error messages by error in regex validators, use on page.
// Example: validationMessages["email"] = '<%= this.GetTranslation("INVALIDEMAIL.PAGENAME.WEBSHOP.ISI") %>';

validationMessages = {};

function onValidationCompare(sender, args) {
    var thisControl = args.get_input();
    var controls = sender.get_targetControlIDs();

    for (var i=0; i < controls.length; i++) {
        var otherControl = $get(controls[i]);
        if (otherControl.value != thisControl.get_value()) {
            showErrorTip($get(thisControl.get_id()), validationMessages['password']);
            return false;
        }
    }
}

//Handles validation input errors
function onValidationError(sender, args) {
    var eleId = args.get_targetInput().get_id();
    var ele = $get(eleId);
    
    //Get error message from global variables
    if (sender._translatedErrorMessage == null) {
        // Save translated error message to attribute for later use
        sender._translatedErrorMessage = validationMessages[sender.get_errorMessage()];
        // Set error message to nothing to prevent showing error inside the input
        sender._errorMessage = "";
    }
    errMsg = sender._translatedErrorMessage;
    
    if (errMsg == null || errMsg == "")
        errMsg = "Invalid entry";
        
    showErrorTip(ele, errMsg);
    return false;
}

function showErrorTip(element, msg) {
    //Init tooltipmanager reference (if necessary)
    if (tooltipManager == null)
        tooltipManager = $find("ctl00_pageContentPlaceHolder_ttpManager");
    if (!tooltipManager) return;

    //Find the tooltip for this element if it has been created
    var tooltip = tooltipManager.getToolTipByElement(element);

    //Create a tooltip if no tooltip exists for such element
    if (!tooltip)
        tooltip = tooltipManager.createToolTip(element);

    tooltip.set_content(msg);
    tooltip.show();
}

//Handle the OnKeyPress event of RadInput
function onClientTextChanged(sender, args) {
    //Hide any open tips on typing
    HideTooltip();
}

//Hides the open ToolTip (if there is one)
function HideTooltip() {
    var tip = Telerik.Web.UI.RadToolTip.getCurrent();
    if (tip) tip.hide();
}
