var RemoteValidation = (function()
{
	var remoteValidation = {};
	
    window.CheckMasterMemberIDExists = function(id)
    {
        return false;
    };

    window.CaptchaCodeMatches = function(
        formField,
        encodedString,
        clientInput,
        numChars,
        resetImage,
        imageId,
        textVarName,
        imageUrlStub,
        key)
    {
        var valid = false;

        var xml = (
            "<Captcha EncodedString=\"" +
            encodedString +
            "\" ClientInput=\"" +
            clientInput +
            "\" NumberOfCharacters=\"" +
            numChars +
            "\" Key=\"" +
            key +
            "\"></Captcha>");

        var returnData = 'false';
        var newKey = '';

        if (typeof (RemoteScriptingCall) == 'function')
        {
            var sReturn = RemoteScriptingCall(
                (ContentProviderUrl +
                    '/xcommon/services/Validation.asmx'),
                xml,
                'CaptchaCodeMatches',
                'http://www.bizbuysell.com/Validation',
                'ResponseData');

            if ((sReturn) &&
                (sReturn.documentElement) &&
                (sReturn.documentElement.hasChildNodes) &&
                (sReturn.documentElement.firstChild != null))
            {
                returnData = (
                    (typeof (sReturn.documentElement.firstChild.text) != 'undefined') ?
                    sReturn.documentElement.firstChild.text :
                    sReturn.documentElement.firstChild.textContent);

                newKey = sReturn.documentElement.firstChild.getAttribute('NewMatchString');
            }
        }

        if (returnData.toLowerCase() == 'true')
        {
            valid = true;
        }

        if (resetImage)
        {
            var imgLoc = document.getElementById(imageId);

            imgLoc.src = imageUrlStub + newKey;

            eval(
                textVarName +
                " = '" +
                newKey +
                "'");

            eval(
                formField +
                ".value = '" +
                newKey +
                "'");
        }

        return valid;
    };

    window.StripHtmlContent = function(
        content)
    {
        var xml = (
            "<HtmlToCheck><![CDATA[" +
            content +
            "]]></HtmlToCheck>");

        var returnData = '';

        if (typeof (RemoteScriptingCall) == 'function')
        {
            var sReturn = RemoteScriptingCall(
                (ContentProviderUrl +
                    '/xcommon/services/Validation.asmx'),
                xml,
                'StripHtmlContent',
                'http://www.bizbuysell.com/Validation',
                'ResponseData');

            if ((sReturn) &&
                (sReturn.documentElement) &&
                (sReturn.documentElement.hasChildNodes) &&
                (sReturn.documentElement.firstChild != null))
            {
                returnData = (
                    (typeof (sReturn.documentElement.firstChild.text) != 'undefined') ?
                    sReturn.documentElement.firstChild.text :
                    sReturn.documentElement.firstChild.textContent);
            }
        }

        return returnData;
    };

    window.ValidateUniqueEmailAddress = function(
        txtEmailAddressClientID,
        txtPasswordClientID,
        validationGroup,
		validationAnchorName,
		forgotPasswordUrl)
    {
        var result = 'false';

        var txtEmailAddress = document.getElementById(
            txtEmailAddressClientID);

        var txtPassword = document.getElementById(
            txtPasswordClientID);

        var isValid = false;

        if ((txtEmailAddress) &&
            (txtPassword))
        {
            var emailAddress = txtEmailAddress.value.replace(
                /^\\s+|\\s+$/g,
                '');

            var xml = (
                '<CheckIsEmailAddressValidForNewUser EmailAddress="' +
                    emailAddress +
                '" Password="' +
                    txtPassword.value +
                '" />');

            if (typeof (RemoteScriptingCall) == 'function')
            {
                var sReturn = RemoteScriptingCall(
                    (ContentProviderUrl +
                        '/xcommon/services/Validation.asmx'),
                    xml,
                    'CheckIsEmailAddressValidForNewUser',
                    'http://www.bizbuysell.com/Validation',
                    'ResponseData');
            }

            if ((sReturn) &&
                (sReturn.documentElement))
            {
                if (sReturn.documentElement.hasChildNodes)
                {
                    result = sReturn.documentElement.firstChild.getAttribute('value');
                }
            }

            isValid = (result.toLowerCase() == 'true')

            if (!isValid)
            {
                if (typeof (validationGroup) == 'undefined')
                {
                    validationGroup = '';
                }
                
                if (typeof (validationAnchorName) == 'undefined')
                {
                    validationAnchorName = '';
                }

                var errorMessage = (
			        emailAddress +
			        ' is already a registered user on BizBuySell.');

                if ((typeof (forgotPasswordUrl) != 'undefined') &&
			        (forgotPasswordUrl != null) &&
			        (forgotPasswordUrl != ''))
                {
                    if (forgotPasswordUrl.match('[%Email%]') != null)
                    {
                        forgotPasswordUrl = forgotPasswordUrl.replace(
                            '[%Email%]',
                            emailAddress);
                    }

                    errorMessage += (
				        ' If you forgot your password, click <a href="' +
				        forgotPasswordUrl +
				        '">here</a>.');
                }

                var addErrorMessageFunctionCall = (
			        'Add' +
			        validationGroup +
			        'ErrorMessage(errorMessage);');

                eval(
                    addErrorMessageFunctionCall);

                errorMessage = (
			        emailAddress +
			        ' is already a registered user on BizBuySell.');

                var errorList = (
			        '<ClientSideErrorList><ClientSideError PageUrl="http://www.bizbuysell.com/valrpt/signup/SignUp.aspx" ErrorSourceName="" ErrorTypeID="0" ErrorMessage="' +
			        errorMessage +
			        '" InputData="' +
			        emailAddress +
			        '"></ClientSideError></ClientSideErrorList>');

                TrackErrorList(
				    errorList);

                top.location = (
			        '#' +
			        validationAnchorName);
            }
        }

        return isValid;
    };
    
    remoteValidation.IsValidDate = function(
		sDate)
	{
		var isValid = false;
		
		try
		{
			var oDate = new Date(sDate);
			
			isValid = ((oDate.getMonth() + 1) == sDate.match(/(0+)?(\d{1,2})/)[2] && 
				oDate.getDate() == sDate.substr(sDate.indexOf('/') + 1).match(/(0+)?(\d{1,2})/)[2] && 
				oDate.getFullYear() == sDate.substr(sDate.lastIndexOf('/') + 1).match(/^\d{4}/))
		}
		catch(exception)
		{
		}
		
		return isValid; 
	};
    
    remoteValidation.ValidateConfirmationFields = function(
		fieldOneClientID,
		fieldTwoClientID)
	{
		var valid = true;
		
		var fieldOne = document.getElementById(
			fieldOneClientID);
			
		var fieldTwo = document.getElementById(
			fieldTwoClientID);
			
		if ((fieldOne != null) &&
			(typeof(fieldOne.value) != 'undefined') &&
			(fieldTwo != null) &&
			(typeof(fieldTwo.value) != 'undefined'))
		{
			if ((fieldOne.value != '') ||
				(fieldTwo.value != ''))
			{
				valid = (fieldOne.value == fieldTwo.value);
			}
		}
		
		return valid;
	};

	remoteValidation.ValidateMinimumValueLength = function(
		fieldClientID,
		minLength)
	{
		var valid = true;
		
		var field = document.getElementById(
			fieldClientID);
			
		if ((field != null) &&
			(typeof(field.value) != 'undefined') &&
			(field.value != ''))
		{
			valid = (field.value.length >= minLength);
		}
		
		return valid;
	};

	remoteValidation.ValidateMaximumValueLength = function(
		fieldClientID,
		maxLength)
	{
		var valid = true;
		
		var field = document.getElementById(
			fieldClientID);
			
		if ((field != null) &&
			(typeof(field.value) != 'undefined') &&
			(field.value != ''))
		{
			valid = (field.value.length <= maxLength);
		}
		
		return valid;
	};
    
    return remoteValidation;
})();
