﻿function CheckInput(objectId, isRequired, checkType, requiredMessage, typeMessage, alertWidth, showAlert) {
    var checkedObj = eval('$("#' + objectId + '")');
    var checkedValue = '';

    if (isRequired) {
        if (checkedObj[0].tagName == 'INPUT' && checkedObj.val() == '') {
            if (showAlert)
            {
                ShowAlert(objectId, requiredMessage, alertWidth);
            }
            return false;
        }
        if (checkedObj[0].tagName == 'TEXTAREA' && checkedObj.text() == '') {
            if (showAlert) {
                ShowAlert(objectId, requiredMessage, alertWidth);
            }
            return false;
        }
    }
    if (checkType != 'none') {
        switch (checkedObj[0].tagName) {
            case 'INPUT':
                checkedValue = checkedObj.val();
                break;
        }
        if (checkedValue != '') {
            switch (checkType) {
                case 'int':
                    checkedValue = parseInt(checkedValue, 10);
                    if (isNaN(checkedValue) || checkedValue < 0) {
                        if (showAlert) {
                            ShowAlert(objectId, typeMessage, alertWidth);
                        }
                        return false;
                    }
                    break;
                case 'decimal':
                    checkedValue = parseFloat(checkedValue.replace(",", "."));
                    if (isNaN(checkedValue) || checkedValue < 0) {
                        if (showAlert) {
                            ShowAlert(objectId, typeMessage, alertWidth);
                        }
                        return false;
                    }
                    break;
                case 'email':
                    var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
                    if (!pattern.test(checkedValue)) {
                        if (showAlert) {
                            ShowAlert(objectId, typeMessage, alertWidth);
                        }
                        return false;
                    }
                    break;
                case 'phone':
                    var checkedValue = checkedValue.replace(/[\s()+-]|ext\.?/gi, "");
                    if (!((/\d{10,}/i).test(checkedValue))) {
                        if (showAlert) {
                            ShowAlert(objectId, typeMessage, alertWidth);
                        }
                        return false;
                    }
                    break;
            }

            switch (checkedObj[0].tagName) {
                case 'INPUT':
                    checkedObj.val(checkedValue);
                    break;
            }
        }
    }

    HideAlert(objectId);
    return true;
}
    

function ShowAlert(fieldID, alertText, alertWidth) {
    var srcObj = eval('$("#' + fieldID + '")');
    var endObject = eval('$("#' + fieldID + '_End")');
    var insertedObj = eval('$("#' + fieldID + '_Alert")');
    if (insertedObj.html() != null) {
        insertedObj.remove();
    }

    endObject.removeClass('inputRowEndEmpty');
    endObject.addClass('inputRowEndAlert');

    var alertDom = GetAlertTemplate(fieldID + '_Alert', alertWidth, alertText);

    $("body").append(alertDom);
    insertedObj = eval('$("#' + fieldID + '_Alert")');

    var alrtTop = srcObj.offset().top - insertedObj.height();
    var alrtLeft = srcObj.offset().left + srcObj.width();

    insertedObj.css('top', alrtTop);
    insertedObj.css('left', alrtLeft);
    insertedObj.show();
}


function HideAlert(fieldID) {
    var insertedObj = eval('$("#' + fieldID + '_Alert")');
    var endObject = eval('$("#' + fieldID + '_End")');
    if (insertedObj.html() != null) {
        insertedObj.remove();
        endObject.removeClass('inputRowEndAlert');
        endObject.addClass('inputRowEndEmpty');
        return;
    }
}

function HideAllAlerts() {
    $("[id$=_Alert]").remove();
    $("[id$=_End]").removeClass('inputRowEndAlert');
    $("[id$=_End]").addClass('inputRowEndEmpty');
}

function GetAlertTemplate(alertId, alertWidth, alertText) {
    var retVal = '<div id="' + alertId + '" style="position:absolute; display:none; z-index:1000; width:' + alertWidth + 'px;">';
    retVal += '<div style="background-color:White; width:100%; min-height:50px; border-color:#d1d1d1; border-width:1px; border-style:solid; border-bottom-style:none;">';
    retVal += '<div style="margin:10px 10px 0px 10px; font-size:11px; color:#fb3f18; font-weight:bold;">' + alertText + '<br />&nbsp;</div>';
    retVal += '</div><div style="width:100%; background-image:url(images/dot_gray.gif); background-repeat:repeat-x;"><img src="images/alert_bottom_triangle.gif" /></div></div>';
    return retVal;
}

function ShowModalMessage(messageTitle, messageText, messageType)
{
    var blockId = "modal-block";
    var insertedObj = eval('$("#' + blockId + '")');
    if (insertedObj.html() != null) {
        insertedObj.remove();
    }
    var messageDom = GetModalMessageTemplate(blockId, messageTitle, messageText, messageType)
    $("body").append(messageDom);
    
    insertedObj = eval('$("#' + blockId + '")');
    insertedObj.dialog({
        autoOpen: true,
        height: 200,
        width: 400,
        modal: true,
        buttons: {
        'OK': function() {
            insertedObj.dialog("destroy");
            insertedObj.remove();
            }
        },
        close: function() {
            insertedObj.dialog("destroy");
            insertedObj.remove();
        }
    });
    
}

function GetModalMessageTemplate(blockId, messageTitle, messageText, messageType) {
    var retVal = '<div id="' + blockId + '" title="' + messageTitle + '" style="display:none;"><p>';
    
    switch(messageType)
    {
        case "ok":
            retVal += '<span class="ui-icon ui-icon-circle-check" style="float:left; margin:0 7px 50px 0;"></span>';
            break;
        case "alert":
            retVal += '<span class="ui-icon ui-icon-info" style="float:left; margin:0 7px 50px 0;"></span>';
            break;
        case "error":
            retVal += '<span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 50px 0;"></span>';
            break;
    }
    retVal += messageText;
	retVal += '</p></div>';
	return retVal
}

function isValidEmailAddress(emailAddress) {
    var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
    return pattern.test(emailAddress);
}    
        

