﻿function PreventDefaultAction(e) {
	if ((typeof (e) != 'undefined') && (e.preventDefault)) {
        e.preventDefault();
    }
}

function OpenModal(targetModalID, e) {
    var jQueryTargetModalID;

    //PreventDefaultAction(e);

    jQueryTargetModalID = '#' + targetModalID;

    $(jQueryTargetModalID).modal();   
    
    return false;
}

function GetMatchingFormElements(baseTargetID) {
    return $('body').filter(
        function() {
            var id = $(this).attr('id');

            return id.match("([A-Za-z0-9_\-]+)?" + baseTargetID);
        }
    );
}

function MutuallyExclusiveCheckbox(sender, baseTargetID) {
    var checkboxes;

    // if it's unchecked, we don't care
    if (!sender.checked) {
        return;
    }

    checkboxes = GetMatchingFormElements(baseTargetID);

    // uncheck all the matching checkboxes
    for (var i = 0; i < checkboxes.length; i++) {
        if (sender != checkboxes[i]) {
            checkboxes[i].checked = false;
        }
    }
}

function AddFriendAsMailRecipient(targetID, sender, e) {
    var recipientsText, recipients;
    var targetJQueryID;
    var newRecipient;
    var unique;

    targetJQueryID = '#' + targetID;

    recipientsText = jQuery.trim($(targetJQueryID).val());

    newRecipient = sender.html();

    // firstly ensure the name isn't already in the list
    recipients = recipientsText.split(',');

    unique = true;

    for (var i = 0; i < recipients.length; i++) {
        if (jQuery.trim(recipients[i]) == newRecipient) {
            unique = false;
        }
    }

    if (unique) {
        if (recipientsText.length > 0 && recipientsText[recipientsText.length - 1] != ',') {
            recipientsText += ', ';
        }

        recipientsText += newRecipient;

        $(targetJQueryID).val(recipientsText);
    }
    
    return false;
}

function ResponseMessageModal(targetModalID, source, e) {
    return OpenModal(targetModalID, e);
}

function AddFriendConfirmationModal(targetModalID, source, e) {
    return OpenModal(targetModalID, e);
}

function BlockMemberModal(targetModalID, source, e) {
    return OpenModal(targetModalID, e);
}

function AcceptFriendRequestModal(targetModalID, source, e) {
    return OpenModal(targetModalID, e);
}

function IgnoreFriendRequestModal(targetModalID, source, e) {
    return OpenModal(targetModalID, e);
}

function RemoveFriendConfirmationModal(targetModalID, source, e) {
    return OpenModal(targetModalID, e);
}

function ReportCommentAbuseModal(targetModalID, source, e) {
    return OpenModal(targetModalID, e);
}

function DeleteCommentModal(targetModalID, source, e) {
    return OpenModal(targetModalID, e);
}

function DeleteMessageConfirmationModal(targetModalID, source, e) {
    return OpenModal(targetModalID, e);
}

function DeleteImageConfirmationModal(targetModalID, source, e) {
    return OpenModal(targetModalID, e);
}

function DeleteFavouriteItemConfirmationModal(targetModalID, source, e) {
    return OpenModal(targetModalID, e);
}

function DeleteArticleModal(targetModalID, source, e) {
    return OpenModal(targetModalID, e);
}

function DeleteItemModal(targetModalID, source, e) {
    return OpenModal(targetModalID, e);
}

function UnBlockMemberModal(targetModalID, source, e) {
    return OpenModal(targetModalID, e);
}

function DeleteMarkedMessagesModal_Inbox(targetModalID, source, e) {
    return OpenModal(targetModalID, e);
}

function DeleteMarkedMessagesModal_Sentbox(targetModalID, source, e) {
    return OpenModal(targetModalID, e);
}

function DeleteMessageModalConfirmation(targetModalID, source, e) {
    return OpenModal(targetModalID, e);
}

function DeleteVideoConfirmationModal(targetModalID, source, e) {
    return OpenModal(targetModalID, e);
}

function OpenDeactiveAccountModal(targetModalID, source, e) {
    return OpenModal(targetModalID, e);
}

function DeleteGalleryConfirmationModal(targetModalID, source, e) {
    return OpenModal(targetModalID, e);
}

function DeleteGalleryImageConfirmationModal(targetModalID, source, e) {
    return OpenModal(targetModalID, e);
}

function DeleteContentItemConfirmation(targetModalID, source, e)
{
    return OpenModal(targetModalID, e);
}

function PasswordStrengthMeter_AddWatch(targetFieldID, meterPanelID) {
    var jQueryTargetFieldID = '#' + targetFieldID;
    var jQueryMeterPanelID = '#' + meterPanelID;

    $(jQueryTargetFieldID).keyup(
        function(e) {
            var strengthCounter = 0, passwordStrength;
            var fieldValue;
            var reSpecialChars, reDigits;
            var strengthDescription;

            if (e.keyCode == 16 || e.keyCode == 46 || e.keyCode == 8) // shift || delete || backspace
            {
                return;
            }

            fieldValue = $(jQueryTargetFieldID).val();

            reSpecialChars = new RegExp(/[^A-Za-z0-9]+/);
            reDigits = new RegExp(/[0-9]+/);

            strengthDescription = new Array();
            strengthDescription[0] = "Weakest";
            strengthDescription[1] = "Weak";
            strengthDescription[2] = "Mediocre";
            strengthDescription[3] = "Strong";
            strengthDescription[4] = "Strongest";

            alert("fieldValue: " + fieldValue);

            // min length
            if (fieldValue.length > 6) {
                strengthCounter++;
            }

            // lowercase and uppercase
            if (fieldValue.length > 0 && fieldValue != fieldValue.toLowerCase()) {
                strengthCounter++;
            }

            // special chars
            if (fieldValue.match(reSpecialChars)) {
                strengthCounter++;
            }

            // digits
            if (fieldValue.match(reDigits)) {
                strengthCounter++;
            }

            passwordStrength = Math.round((strengthCounter / (strengthDescription.length - 1)) * 100);

            $(jQueryMeterPanelID).css("width", passwordStrength + "%").html(strengthDescription[strengthCounter]);
        }
    );
}

function SelectMessageBoxMessages(cb, messageCbClass) {
    if ($(cb).is(':checked')) {
        $('#lblSelectAllMessages').html('Deselect All');
    }
    else {
        $('#lblSelectAllMessages').html('Select All');
    };

    $('.' + messageCbClass).attr('checked', $(cb).is(':checked'));
}

// on load actions
$(document).ready(
    function() {
        /*
        $(".mail .compose .contacts ul li a").click(
        function() 
        {
        var input = $(".mail .compose .form li input:first");
        var array = (input.val() != "") ? input.val().split(", ") : new Array();

		        array.push($(this).text());

		        input.val(array.join(", "));

		        return false;
        }
        );
        */

    }
);