
    /*$RCSfile: validateURL.js,v $ $Rev: 376673 $ $Date: 2006-02-10 13:42:31 +0000 (Fri, 10 Feb 2006) $ */
    /**
    * Check to see if fields are a valid URL.
    * Fields are not checked if they are disabled.
    * <p>
    * @param form The form validation is taking place on.
    */
    function validateUrl(form) {
        var bValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();

        var oUrl = eval('new ' + jcv_retrieveFormName(form) +  '_url()');

        for (var x in oUrl) {
            if (!jcv_verifyArrayElement(x, oUrl[x])) {
                continue;
            }
            var field = form[oUrl[x][0]];
            if (!jcv_isFieldPresent(field)) {
              continue;
            }
            if ((field.type == 'hidden' || 
                 field.type == 'text' ||
                 field.type == 'textarea') &&
                (field.value.length > 0)) {
                if (!jcv_checkUrl(field.value)) {
                    if (i == 0) {
                        focusField = field;
                    }
                    fields[i++] = oUrl[x][1];
                    bValid = false;
                }
            }
        }
        if (fields.length > 0) {
            jcv_handleErrors(fields, focusField);
        }
        return bValid;
    }


    function jcv_checkUrl(urlStr) {
        if (urlStr.length == 0) {
            return true;
        }
        
		var urlPat = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/;
        //var urlPat = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
        var matchArray = urlStr.match(urlPat);
        if (matchArray==null) {
            return false;
        }
        return true;
        
    }

