Index: plugins/views_plugin_argument_validate_province.inc
===================================================================
--- plugins/views_plugin_argument_validate_province.inc	(revision 0)
+++ plugins/views_plugin_argument_validate_province.inc	(revision 0)
@@ -0,0 +1,21 @@
+<?php
+
+// $Id$
+
+/**
+ * @file
+ * Views plugin to validate province arguments for the location
+ * module.
+ */
+class views_plugin_argument_validate_province extends views_plugin_argument_validate {
+  function validate_argument($argument) {
+    // Validate that province exists.
+    $provinces = location_get_provinces();
+    if ($argument) {
+      if (!in_array(strtoupper($argument), array_keys($provinces)) && !in_array($argument, array_values($provinces))) {
+	return FALSE;
+      }
+    }
+    return TRUE;
+  }
+}
\ No newline at end of file

Property changes on: plugins/views_plugin_argument_validate_province.inc
___________________________________________________________________
Name: svn:keywords
   + Id

Index: location.views.inc
===================================================================
--- location.views.inc	(revision 172)
+++ location.views.inc	(working copy)
@@ -79,6 +79,22 @@ function location_views_handlers() {
 }
 
 /**
+ * Implementation of hook_views_plugins().
+ */
+function location_views_plugins() {
+  return array(
+    'argument validator' => array(
+      'province' => array(
+        'title' => t('Location: Province'),
+        'handler' => 'views_plugin_argument_validate_province',
+        'path' => drupal_get_path('module', 'location') . '/plugins', // not necessary for most modules
+      ),
+    ),
+  );
+}
+    
+
+/**
  * Implementation of hook_views_data().
  */
 function location_views_data() {
