// JavaScript Document

function _vis_opt_match_wildcard(to_match, pattern, return_val) //if return val = true, function returns values from to_match in *
{

	if(typeof(return_val)=="undefined") { return_val = false; }
	
	if(!return_val)
	{

		to_match  = _vis_opt_remove_www(to_match);
		
		pattern = _vis_opt_remove_www(pattern);
		
		if(pattern.indexOf("?")==-1 && pattern.indexOf("=")==-1) //if thing to match does not have ?, remove all query parameters
		{
			//remove everything after ?_utm etc
		
			to_match = to_match.replace(/^(.*)(\?.*)$/,"$1");
		
		}
	
		if(to_match.charAt(to_match.length-1)=="/") //remove forward slash from thing to match
		{
			to_match = to_match.substring(0, to_match.length-1);
		
		}
	
		if(pattern.charAt(pattern.length-1)=="/") //remove forward slash from pattern
		{
			pattern = pattern.substring(0, pattern.length-1);
		
		}
	}
	
	var escaped_pattern = _vis_opt_regex_escape(pattern);
	
	escaped_pattern = escaped_pattern.replace(/\*/g, "(.*)");
	
	escaped_pattern = "^" + escaped_pattern + "$";
	
	var pattern_to_match = new RegExp(escaped_pattern, 'g');
	
	if(return_val)
	{
		
			return(pattern_to_match.exec(to_match));

	}
	
	var matches = pattern_to_match.test(to_match);
	
	
	if(!matches)
	{
		if(pattern.search(/\*/)==-1) //if no * is contained, then maybe href is filename while pattern is full_url/href
		{
					
			var full_url = _vis_opt_to_abs_url(to_match);
					
			if(full_url==pattern)
			{
						
				return true;
			} else
			{
						
				return false;	
			}
					
		} else
		{
					
			return false;
		}
	
	} else {
		return true;
	}
}


function _vis_opt_remove_www(to_match)
{
			//remove www from to_match
		

		matches = to_match.match(/(https?):\/\/(www\.)?(.*)/);

		if(matches && matches.length==4)
		{

			to_match = matches[1]+"://"+matches[3];

		}
		
		return to_match;
	
	
}

