diff --git a/cod_registration/cod-registration-confirm.tpl.php b/cod_registration/cod-registration-confirm.tpl.php
new file mode 100755
index 0000000000000000000000000000000000000000..e84e0420c2a2c75a4acef4e34add7e9f6edf09c4
--- /dev/null
+++ b/cod_registration/cod-registration-confirm.tpl.php
@@ -0,0 +1,3 @@
+<div id="registration-page">
+  Confirmed!
+</div>
\ No newline at end of file
diff --git a/cod_registration/cod-registration-pdf.tpl.php b/cod_registration/cod-registration-pdf.tpl.php
new file mode 100755
index 0000000000000000000000000000000000000000..692a5231f93f82f7b8269b35ead3fd8cf47aa9b3
--- /dev/null
+++ b/cod_registration/cod-registration-pdf.tpl.php
@@ -0,0 +1,81 @@
+<?php
+// $Id: page.tpl.php,v 1.1.2.5 2010/04/08 07:02:59 sociotech Exp $
+?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+  <title><?php print $head_title; ?></title>
+
+  <style>
+@page { margin: 0in 0in 0in 0in;}
+
+#container {
+  position: absolute;
+  background: transparent;
+  top: 0;
+  left: 0;
+  width: 1050px;
+  height: 1050px;
+  z-index: 0;
+}
+
+div.first-name {
+  color: #000000;
+  width: 1070px;
+  text-align: center;
+  margin-top: 0px;
+  font-size: 20pt;
+  height: 180px;
+  font-weight: bold;
+  font-family: 'Helvetica';
+}
+
+div.last-name {
+  color: #000000;
+  width: 1070px;
+  text-align: center;
+  font-size: 18pt;
+  font-family: 'Helvetica';
+  height: 190px;
+}
+
+div.company1 {
+  color: #000000;
+  width: 1070px;
+  text-align: center;
+  font-size: 12pt;
+  font-weight: lighter;
+  font-family: 'Helvetica';
+  height: 245px;
+}
+
+div.barcode {
+  margin-top: 0px;
+  text-align: center;
+}
+
+p.center_tag {
+    margin-top:50px;
+    margin-left:50px;
+}
+</style>
+</head>
+<body>
+  <div id="container">
+    <div class="first-name">
+      <?php print $content['username']['first']; ?>
+    </div>
+    <div class="last-name">
+      <?php print $content['username']['last']; ?>
+    </div>
+    <!--
+    <div class="company1">
+      <span><?php print $content['company']; ?></span>
+    </div>
+    -->
+    <div class="barcode">
+      <?php print $content['qr_code']; ?>
+    </div>
+  </div>
+</body>
+</html>
diff --git a/cod_registration/cod_registration.default_mobile_codes_presets.inc b/cod_registration/cod_registration.default_mobile_codes_presets.inc
new file mode 100644
index 0000000000000000000000000000000000000000..5989ba4a004acef59c9a1a138765833490742586
--- /dev/null
+++ b/cod_registration/cod_registration.default_mobile_codes_presets.inc
@@ -0,0 +1,29 @@
+<?php
+/**
+ * @file
+ * cod_registration.default_mobile_codes_presets.inc
+ */
+
+/**
+ * Implements hook_default_mobile_codes_preset().
+ */
+function cod_registration_default_mobile_codes_preset() {
+  $export = array();
+
+  $preset = new stdClass();
+  $preset->disabled = FALSE; /* Edit this to true to make a default preset disabled initially */
+  $preset->api_version = 2;
+  $preset->name = 'cod_registration_qrcode';
+  $preset->provider = 'phpqrcode';
+  $preset->defaults = array(
+    'ecc' => 'L',
+    'size' => '8',
+    'margin' => '0',
+  );
+  $preset->extras = array(
+    'image_style' => '',
+  );
+  $export['cod_registration_qrcode'] = $preset;
+
+  return $export;
+}
diff --git a/cod_registration/cod_registration.features.field.inc b/cod_registration/cod_registration.features.field.inc
new file mode 100644
index 0000000000000000000000000000000000000000..43d720e63b048d223a96ae3c32b33de6b7569f98
--- /dev/null
+++ b/cod_registration/cod_registration.features.field.inc
@@ -0,0 +1,293 @@
+<?php
+/**
+ * @file
+ * cod_registration.features.field.inc
+ */
+
+/**
+ * Implements hook_field_default_fields().
+ */
+function cod_registration_field_default_fields() {
+  $fields = array();
+
+  // Exported field: 'field_collection_item-field_profile_checkin-field_checkin_group_ref'.
+  $fields['field_collection_item-field_profile_checkin-field_checkin_group_ref'] = array(
+    'field_config' => array(
+      'active' => '1',
+      'cardinality' => '1',
+      'deleted' => '0',
+      'entity_types' => array(),
+      'field_name' => 'field_checkin_group_ref',
+      'field_permissions' => array(
+        'type' => '0',
+      ),
+      'foreign keys' => array(
+        'node' => array(
+          'columns' => array(
+            'target_id' => 'nid',
+          ),
+          'table' => 'node',
+        ),
+      ),
+      'indexes' => array(
+        'target_id' => array(
+          0 => 'target_id',
+        ),
+      ),
+      'locked' => '0',
+      'module' => 'entityreference',
+      'settings' => array(
+        'handler' => 'base',
+        'handler_settings' => array(
+          'behaviors' => array(
+            'views-select-list' => array(
+              'status' => 0,
+            ),
+          ),
+          'sort' => array(
+            'type' => 'none',
+          ),
+          'target_bundles' => array(
+            'event' => 'event',
+          ),
+        ),
+        'target_type' => 'node',
+      ),
+      'translatable' => '0',
+      'type' => 'entityreference',
+    ),
+    'field_instance' => array(
+      'bundle' => 'field_profile_checkin',
+      'default_value' => NULL,
+      'deleted' => '0',
+      'description' => '',
+      'display' => array(
+        'default' => array(
+          'label' => 'above',
+          'module' => 'entityreference',
+          'settings' => array(
+            'link' => FALSE,
+          ),
+          'type' => 'entityreference_label',
+          'weight' => 0,
+        ),
+      ),
+      'entity_type' => 'field_collection_item',
+      'field_name' => 'field_checkin_group_ref',
+      'label' => 'Group Reference',
+      'required' => 0,
+      'settings' => array(
+        'user_register_form' => FALSE,
+      ),
+      'widget' => array(
+        'active' => 1,
+        'module' => 'options',
+        'settings' => array(),
+        'type' => 'options_select',
+        'weight' => '31',
+      ),
+    ),
+  );
+
+  // Exported field: 'field_collection_item-field_profile_checkin-field_checkin_type'.
+  $fields['field_collection_item-field_profile_checkin-field_checkin_type'] = array(
+    'field_config' => array(
+      'active' => '1',
+      'cardinality' => '1',
+      'deleted' => '0',
+      'entity_types' => array(),
+      'field_name' => 'field_checkin_type',
+      'field_permissions' => array(
+        'type' => '2',
+      ),
+      'foreign keys' => array(
+        'tid' => array(
+          'columns' => array(
+            'tid' => 'tid',
+          ),
+          'table' => 'taxonomy_term_data',
+        ),
+      ),
+      'indexes' => array(
+        'tid' => array(
+          0 => 'tid',
+        ),
+      ),
+      'locked' => '0',
+      'module' => 'taxonomy',
+      'settings' => array(
+        'allowed_values' => array(
+          0 => array(
+            'vocabulary' => 'checkin_types',
+            'parent' => '0',
+          ),
+        ),
+      ),
+      'translatable' => '0',
+      'type' => 'taxonomy_term_reference',
+    ),
+    'field_instance' => array(
+      'bundle' => 'field_profile_checkin',
+      'default_value' => NULL,
+      'deleted' => '0',
+      'description' => '',
+      'display' => array(
+        'default' => array(
+          'label' => 'above',
+          'module' => 'taxonomy',
+          'settings' => array(),
+          'type' => 'taxonomy_term_reference_link',
+          'weight' => 1,
+        ),
+      ),
+      'entity_type' => 'field_collection_item',
+      'field_name' => 'field_checkin_type',
+      'label' => 'Checkin type',
+      'required' => 0,
+      'settings' => array(
+        'user_register_form' => FALSE,
+      ),
+      'widget' => array(
+        'active' => 1,
+        'module' => 'options',
+        'settings' => array(),
+        'type' => 'options_select',
+        'weight' => '32',
+      ),
+    ),
+  );
+
+  // Exported field: 'field_collection_item-field_profile_checkin-field_checkin_value'.
+  $fields['field_collection_item-field_profile_checkin-field_checkin_value'] = array(
+    'field_config' => array(
+      'active' => '1',
+      'cardinality' => '1',
+      'deleted' => '0',
+      'entity_types' => array(),
+      'field_name' => 'field_checkin_value',
+      'field_permissions' => array(
+        'type' => '2',
+      ),
+      'foreign keys' => array(),
+      'indexes' => array(
+        'value' => array(
+          0 => 'value',
+        ),
+      ),
+      'locked' => '0',
+      'module' => 'list',
+      'settings' => array(
+        'allowed_values' => array(
+          0 => '',
+          1 => '',
+        ),
+        'allowed_values_function' => '',
+      ),
+      'translatable' => '0',
+      'type' => 'list_boolean',
+    ),
+    'field_instance' => array(
+      'bundle' => 'field_profile_checkin',
+      'default_value' => array(
+        0 => array(
+          'value' => 0,
+        ),
+      ),
+      'deleted' => '0',
+      'description' => '',
+      'display' => array(
+        'default' => array(
+          'label' => 'above',
+          'module' => 'list',
+          'settings' => array(),
+          'type' => 'list_default',
+          'weight' => 2,
+        ),
+      ),
+      'entity_type' => 'field_collection_item',
+      'field_name' => 'field_checkin_value',
+      'label' => 'Checked In',
+      'required' => 0,
+      'settings' => array(
+        'user_register_form' => FALSE,
+      ),
+      'widget' => array(
+        'active' => 1,
+        'module' => 'options',
+        'settings' => array(
+          'display_label' => 1,
+        ),
+        'type' => 'options_onoff',
+        'weight' => '33',
+      ),
+    ),
+  );
+
+  // Exported field: 'user-user-field_profile_checkin'.
+  $fields['user-user-field_profile_checkin'] = array(
+    'field_config' => array(
+      'active' => '1',
+      'cardinality' => '-1',
+      'deleted' => '0',
+      'entity_types' => array(),
+      'field_name' => 'field_profile_checkin',
+      'field_permissions' => array(
+        'type' => '2',
+      ),
+      'foreign keys' => array(),
+      'indexes' => array(),
+      'locked' => '0',
+      'module' => 'field_collection',
+      'settings' => array(
+        'hide_blank_items' => 1,
+        'path' => '',
+      ),
+      'translatable' => '0',
+      'type' => 'field_collection',
+    ),
+    'field_instance' => array(
+      'bundle' => 'user',
+      'default_value' => NULL,
+      'deleted' => '0',
+      'description' => '',
+      'display' => array(
+        'default' => array(
+          'label' => 'above',
+          'module' => 'field_collection',
+          'settings' => array(
+            'add' => 'Add',
+            'delete' => 'Delete',
+            'description' => TRUE,
+            'edit' => 'Edit',
+            'view_mode' => 'full',
+          ),
+          'type' => 'field_collection_view',
+          'weight' => 22,
+        ),
+      ),
+      'entity_type' => 'user',
+      'field_name' => 'field_profile_checkin',
+      'label' => 'Check-in',
+      'required' => 0,
+      'settings' => array(
+        'user_register_form' => 0,
+      ),
+      'widget' => array(
+        'active' => 0,
+        'module' => 'field_collection',
+        'settings' => array(),
+        'type' => 'field_collection_embed',
+        'weight' => '25',
+      ),
+    ),
+  );
+
+  // Translatables
+  // Included for use with string extractors like potx.
+  t('Check-in');
+  t('Checked In');
+  t('Checkin type');
+  t('Group Reference');
+
+  return $fields;
+}
diff --git a/cod_registration/cod_registration.features.inc b/cod_registration/cod_registration.features.inc
new file mode 100644
index 0000000000000000000000000000000000000000..67f7fda1f848250c952f4a67631941f92298bdda
--- /dev/null
+++ b/cod_registration/cod_registration.features.inc
@@ -0,0 +1,22 @@
+<?php
+/**
+ * @file
+ * cod_registration.features.inc
+ */
+
+/**
+ * Implements hook_ctools_plugin_api().
+ */
+function cod_registration_ctools_plugin_api() {
+  list($module, $api) = func_get_args();
+  if ($module == "mobile_codes" && $api == "default_mobile_codes_presets") {
+    return array("version" => "2");
+  }
+}
+
+/**
+ * Implements hook_views_api().
+ */
+function cod_registration_views_api() {
+  return array("version" => "3.0");
+}
diff --git a/cod_registration/cod_registration.features.taxonomy.inc b/cod_registration/cod_registration.features.taxonomy.inc
new file mode 100644
index 0000000000000000000000000000000000000000..d3ca4f51050bf73fd9ac30f1c64e0ecc3fbe589e
--- /dev/null
+++ b/cod_registration/cod_registration.features.taxonomy.inc
@@ -0,0 +1,36 @@
+<?php
+/**
+ * @file
+ * cod_registration.features.taxonomy.inc
+ */
+
+/**
+ * Implements hook_taxonomy_default_vocabularies().
+ */
+function cod_registration_taxonomy_default_vocabularies() {
+  return array(
+    'checkin_types' => array(
+      'name' => 'Checkin Types',
+      'machine_name' => 'checkin_types',
+      'description' => 'Event Checkin Types',
+      'hierarchy' => '0',
+      'module' => 'taxonomy',
+      'weight' => '0',
+      'rdf_mapping' => array(
+        'rdftype' => array(
+          0 => 'skos:ConceptScheme',
+        ),
+        'name' => array(
+          'predicates' => array(
+            0 => 'dc:title',
+          ),
+        ),
+        'description' => array(
+          'predicates' => array(
+            0 => 'rdfs:comment',
+          ),
+        ),
+      ),
+    ),
+  );
+}
diff --git a/cod_registration/cod_registration.info b/cod_registration/cod_registration.info
new file mode 100644
index 0000000000000000000000000000000000000000..1a8bcf0ca6fe148d2be066686491c096b63b8303
--- /dev/null
+++ b/cod_registration/cod_registration.info
@@ -0,0 +1,33 @@
+name = COD Multi-Event Registration
+description = COD custom registration pages.
+package = COD
+project = cod_registration
+core = 7.x
+version = "7.x-1.0"
+dependencies[] = commerce
+dependencies[] = mobile_codes
+dependencies[] = email_ajax_check
+dependencies[] = print_pdf
+dependencies[] = ctools
+dependencies[] = entityreference
+dependencies[] = features
+dependencies[] = field_collection
+dependencies[] = field_sql_storage
+dependencies[] = list
+dependencies[] = mobile_codes
+dependencies[] = options
+dependencies[] = taxonomy
+dependencies[] = views
+features[ctools][] = mobile_codes:default_mobile_codes_presets:2
+features[ctools][] = views:views_default:3.0
+features[features_api][] = api:1
+features[field][] = field_collection_item-field_profile_checkin-field_checkin_group_ref
+features[field][] = field_collection_item-field_profile_checkin-field_checkin_type
+features[field][] = field_collection_item-field_profile_checkin-field_checkin_value
+features[field][] = user-user-field_profile_checkin
+features[mobile_codes_presets][] = cod_registration_qrcode
+features[taxonomy][] = checkin_types
+features[views_view][] = cod_registration_checkin
+files[] = cod_registration.module
+files[] = cod_registration.print.inc
+
diff --git a/cod_registration/cod_registration.module b/cod_registration/cod_registration.module
new file mode 100644
index 0000000000000000000000000000000000000000..afa68ec33a45aaddcd0fdfbafc8d31105f340fdb
--- /dev/null
+++ b/cod_registration/cod_registration.module
@@ -0,0 +1,575 @@
+<?php
+
+define('MAIN_EVENT',2977);
+define('ACCOUNT_SPONSOR',5);
+
+include_once 'cod_registration.features.inc';
+
+/*
+ * Implementation of hook_menu().
+ */
+function cod_registration_menu() {
+  $items = array();
+
+  $items['node/%node/cod_registration'] = array(
+    'title'             => 'Registration',
+    'access callback'   => 'cod_registration_reg_perms',
+    'page callback'     => 'drupal_get_form',
+    'page arguments'    => array('cod_registration_wizard', 1),
+    'type'              => MENU_CALLBACK,
+  );
+
+  $items['node/%node/checkin/%user'] = array(
+    'title'             => 'Registration',
+    'access callback'   => 'cod_registration_reg_perms',
+    'page callback'     => 'drupal_get_form',
+    'page arguments'    => array('cod_registration_checkin', 1,3),
+    'type'              => MENU_CALLBACK,
+  );
+
+  return $items;
+}
+
+function cod_registration_reg_perms($uid = NULL) {
+  return TRUE;
+}
+
+function cod_registration_theme() {
+  return array (
+      'cod_registration_markup' => array(
+          'variables' => array('reg_type' => NULL),
+          'template' => 'registration-markup',
+      ),
+      'cod_registration_link' => array(),
+      'cod_registration_confirm' => array(
+        'variables' => array('content' => NULL),
+        'template' => 'cod-registration-confirm',
+      ),
+      'cod_registration_pdf' => array(
+        'variables' => array('content' => NULL),
+        'template' => 'cod-registration-pdf',
+      ),
+   );
+}
+
+/*
+ * Blocks!
+*/
+function cod_registration_block_info() {
+  // set up an empty array which will contain the block contents
+  $blocks = array();
+
+  // Generate listing of blocks from this module, for the admin/block page
+  $blocks['cod_registration_link'] = array(
+    'info' => t('Registration')
+  );
+
+  // return the built content
+  return $blocks;
+}
+
+/**
+* Implement hook_block_view()
+*
+* Generate HTML for the user_role_summary block
+* @param op the operation from the URL
+* @param delta offset
+* @returns block HTML
+*/
+function cod_registration_block_view($delta) {
+  // set up an empty array which will contain the block contents
+  $block = array();
+  switch($delta) {
+    case 'cod_registration_link':
+      $block['content'] = theme('cod_registration_link');
+      // Generate our block content
+      $block['subject'] = "";
+
+      break;
+  }
+    // return the built content
+  return $block;
+}
+
+function theme_cod_registration_link() {
+  global $user;
+
+  if(isset($user->uid) && $user->uid != 0) {
+    $account = user_load($user->uid);
+    $node = node_load(MAIN_EVENT);
+    if($og_membership = og_get_membership('node', $node->nid, 'user', $user->uid)) {
+      $string = t("You are registered");
+      if(isset($account->roles[ACCOUNT_SPONSOR])) {
+        $string .= ' and a sponsor';
+      }
+    }
+    else {
+      $string = 'Register now';
+      $reg_path = 'node/2977/cod_registration';
+    }
+  } else {
+    $string = 'Register now';
+    $reg_path = 'node/2977/cod_registration';
+  }
+
+  if(isset($reg_path)) {
+    return l($string,$reg_path);
+  }
+  else {
+    return $string;
+  }
+}
+
+/*
+ * Mollom integration
+ */
+function cod_registration_mollom_form_list() {
+  $forms['cod_registration_wizard'] = array(
+    'title' => 'COD Registration Form',
+  );
+  return $forms;
+}
+
+function cod_registration_mollom_form_info() {
+  $form_info = array(
+    'mode' => MOLLOM_MODE_CAPTCHA,
+  );
+  return $form_info;
+}
+
+function _cod_registration_steps() {
+  return array(
+      1 => array(
+        'form' => 'user_login',
+      ),
+      2 => array(
+        'form' => 'cod_registration_event',
+      ),
+    );
+}
+
+/*
+ * Registration Checkin Page. Marks the user as checked in and prints a badge if they want.
+ */
+function cod_registration_checkin($form, &$form_state, $group, $account) {
+  module_load_include('inc', 'cod_registration', 'cod_registration.print');
+
+  $form['checkin'] = array(
+    '#markup' => t('Almost checked-in, please select which item you wish to check in for'),
+  );
+  $form['field_checkin_group_ref'] = array(
+    '#type' => 'value',
+    '#value' => $group->nid,
+  );
+  $form['account'] = array(
+    '#type' => 'value',
+    '#value' => $account->uid,
+  );
+  $voc = taxonomy_vocabulary_machine_name_load('checkin_types');
+  $tree = taxonomy_get_tree($voc->vid);
+  $options = array('_none' => t('- None -'));
+  foreach($tree as $term) {
+    $options[$term->tid] = $term->name;
+  }
+  $form['field_checkin_type'] = array(
+    '#type' => 'select',
+    '#options' => $options,
+    '#default_value' => 862,
+    '#value_key' => 'tid',
+  );
+  $form['print'] = array(
+    '#type' => 'submit',
+    '#value' => t('Print Badge'),
+    '#submit' => array('cod_registration_checkin_submit', 'cod_registration_confirmation_print_submit'),
+  );
+  $form['noprint'] = array(
+    '#type' => 'submit',
+    '#value' => t('Check-in'),
+  );
+
+  //custom submit functions for some sanity checking. Probably could use some more sanity
+  //nothing we really need to validate at this point
+  $form['#submit'][] = 'cod_registration_checkin_submit';
+
+  return $form;
+}
+
+function cod_registration_checkin_submit($form, &$form_state) {
+  $account = user_load($form_state['values']['account']);
+  //error_log(print_r($form_state,true));
+
+  $og_membership = og_get_membership('node', 2977, 'user', $account->uid);
+  if(!$og_membership) {
+    //error_log(print_r($og_membership,true));
+    // Add the user to the group
+    og_group('node', 2977, array(
+        "entity type"       => "user",
+        "entity"        => $account,
+        "membership type"   => OG_MEMBERSHIP_TYPE_DEFAULT,
+    ));
+
+    // Changes the users role in the group (1 = non-member, 2 = member, 3 = administrator member)
+    og_role_grant('node', 2977, $account->uid, 2);
+  }
+  foreach($account->field_profile_checkin[LANGUAGE_NONE] AS $checkin_fields) {
+    if($field_collection_item = field_collection_item_load($checkin_fields['value'])) { // Load that field collection item.
+      if($field_collection_item->field_checkin_group_ref[LANGUAGE_NONE][0]['target_id'] == $form_state['values']['field_checkin_group_ref'] &&
+         $field_collection_item->field_checkin_type[LANGUAGE_NONE][0]['tid'] ==  $form_state['values']['field_checkin_type'] &&
+         $field_collection_item->field_checkin_value[LANGUAGE_NONE][0]['value'] == 1) {
+         drupal_set_message("You're already checked in");
+         return;
+      }
+    }
+  }
+
+  $values = array();
+  $values['field_name'] = 'field_profile_checkin';
+  $values['field_checkin_group_ref'][LANGUAGE_NONE][0]['target_id'] = $form_state['values']['field_checkin_group_ref'];
+  $values['field_checkin_type'][LANGUAGE_NONE][0]['tid'] = $form_state['values']['field_checkin_type'];
+  $values['field_checkin_value'][LANGUAGE_NONE][0]['value'] = 1;
+
+  $field_collection_item = entity_create('field_collection_item', $values);
+  $field_collection_item->setHostEntity('user', $account);
+  $field_collection_item->save();
+}
+
+/*
+ * Registration forms
+ */
+function cod_registration_wizard($form, &$form_state, $node) {
+  global $user;
+  form_load_include($form_state, 'inc', 'user', 'user.pages');
+
+  // Initialize a description of the steps for the wizard.
+  if (empty($form_state['step'])) {
+    //pass the login step if the user is already logged in
+    if(isset($user->uid) && $user->uid > 0) {
+      //We're doing a checkin new registration, do some quick security checks and make a new user form
+      if(check_plain($_GET['checkin'] == '1')) {
+        $form_state['step'] = 2;
+      } else if($og_membership = og_get_membership('node', $node->nid, 'user', $user->uid)) {
+        drupal_set_message(t("You're already registered for @node", array('@node' => $node->title)));
+        drupal_goto();
+      }
+      $form_state['step'] = 2;
+    } else {
+      $form_state['step'] = 1;
+    }
+    // This array contains the function to be called at each step to get the
+    // relevant form elements. It will also store state information for each
+    // step.
+    $form_state['step_information'] = _cod_registration_steps();
+  }
+  $step = &$form_state['step'];
+  drupal_set_title(t('@event Registration: Step @step', array('@event' => $node->title, '@step' => $step)));
+
+  // Call the function named in $form_state['step_information'] to get the
+  // form elements to display for this step.
+  $form = $form_state['step_information'][$step]['form']($form, $form_state, $node);
+
+  $form['node'] = array(
+    '#type' => 'value',
+    '#value' => $node->nid,
+  );
+
+  // Show the 'previous' button if appropriate. Note that #submit is set to
+  // a special submit handler, and that we use #limit_validation_errors to
+  // skip all complaints about validation when using the back button. The
+  // values entered will be discarded, but they will not be validated, which
+  // would be annoying in a "back" button.
+  if ($step > 1) {
+    $form['prev'] = array(
+      '#type' => 'submit',
+      '#value' => t('Previous'),
+      '#name' => 'prev',
+      '#submit' => array('cod_registration_wizard_previous_submit'),
+      '#limit_validation_errors' => array(),
+    );
+  }
+
+  // Show the Next button only if there are more steps defined.
+  if ($step < count($form_state['step_information'])) {
+    // The Next button should be included on every step
+    $form['next'] = array(
+      '#type' => 'submit',
+      '#value' => t('Next'),
+      '#name' => 'next',
+      '#weight' => 100,
+      '#submit' => array('cod_registration_wizard_next_submit'),
+    );
+    $active = 'next';
+  }
+  else {
+    // Just in case there are no more steps, we use the default submit handler
+    // of the form wizard. When this button is clicked, the
+    // grasmash_registration_wizard_submit handler will be called.
+    $form['finish'] = array(
+      '#type' => 'submit',
+      '#value' => t('Finish'),
+      '#submit' => array('cod_registration_wizard_submit'),
+    );
+    $active = 'finish';
+  }
+  if($step == 1) {
+    $form['next']['#validate'] = array('cod_registration_user_login_name_validate');
+    $form['#validate'] = $form['next']['#validate'];
+  }
+  else {
+    $form[$active]['#validate'] = array();
+    // Include each validation function defined for the different steps.
+    // First, look for functions that match the form_id_validate naming convention.
+    if (function_exists($form_state['step_information'][$step]['form'] . '_validate')) {
+      $form[$active]['#validate'] = array($form_state['step_information'][$step]['form'] . '_validate');
+    }
+    // Next, merge in any other validate functions defined by child form.
+    if (isset($form['#validate'])) {
+      $form[$active]['#validate'] = array_merge($form[$active]['#validate'], $form['#validate']);
+      unset($form['#validate']);
+    }
+  }
+
+  // Let's do the same thing for #submit handlers.
+  // First, look for functions that match the form_id_submit naming convention.
+  if (function_exists($form_state['step_information'][$step]['form'] . '_submit')) {
+    $form[$active]['#submit'][] = $form_state['step_information'][$step]['form'] . '_submit';
+  }
+  // Next, merge in any other submit functions defined by child form.
+  if (isset($form['#submit'])) {
+    // It's important to merge in the form-specific handlers first, before
+    // grasmash_registration_wizard_next_submit clears $form_state['values].
+    $form[$active]['#submit'] = array_merge($form['#submit'], $form[$active]['#submit']);
+    unset($form['#submit']);
+  }
+  return $form;
+}
+
+/**
+ * Build form elements for step 2.
+ */
+function cod_registration_event(&$form, &$form_state, $node)  {
+  global $user;
+
+  //user is logged in, show profile form and not registration form
+  if(isset($user->uid) && $user->uid > 0 && check_plain($_GET['checkin']) != 1) {
+    $account = user_load($user->uid);
+    $form = user_profile_form($form, $form_state, $account);
+
+    // Attach field widgets, and hide the ones where the 'user_register_form'
+    // setting is not on.
+    //$langcode = entity_language('user', $form['#user']);
+    //field_attach_form('user', $form['#user'], $form, $form_state, $langcode);
+    foreach (field_info_instances('user', 'user') as $field_name => $instance) {
+      if (empty($instance['settings']['user_register_form'])) {
+        $form[$field_name]['#access'] = FALSE;
+      }
+    }
+    $form['account']['name']['#type'] = $form['account']['mail']['#type'] = $form['account']['pass']['#type'] = $form['account']['current_pass']['#type'] = 'value';
+  }
+  else {
+    $form = user_register_form($form, $form_state);
+
+    if(check_plain($_GET['checkin']) == 1) {
+      $form['administer_users']['#value'] = FALSE;
+      unset($form['account']['pass']); //unset the form because thats how it should look if the user was anon. Not #access=False
+      $form['account']['roles']['#access'] = FALSE;
+      $form['account']['status']['#access'] = FALSE;
+      $form['account']['notify']['#access'] = FALSE;
+      $form['checkin'] = array(
+        '#type' => 'value',
+        '#value' => '1',
+      );
+    }
+
+    if(module_exists('email_ajax_check')) {
+      email_ajax_check_form_user_register_form_alter($form, $form_state);
+    }
+    if(module_exists('profile2')) {
+      profile2_form_user_register_form_alter($form, $form_state);
+    }
+    if(module_exists('profile')) {
+      profile_form_alter($form, $form_state, 'user_register_form');
+      $form['Attendance']['#weight'] = 3;
+    }
+  }
+
+  $form['#groups']['group_profile_attendance']->format_settings['formatter'] = 'open';
+  $form['#fieldgroups']['group_profile_attendance']->format_settings['formatter'] = 'open';
+
+  $form['registration_type'] = array(
+    '#type' => 'radios',
+    '#title' => t('Registration Options'),
+    '#required' => TRUE,
+    '#options' => array('free' => "Free Registration", 'sponsored' => "Individual Sponsor ($60). Includes (1) T-Shirt, and Lunches for both days"),
+    '#weight' => -10,
+  );
+
+  $form['og_node'] = array(
+    '#type' => 'value',
+    '#value' => $node->nid,
+  );
+  return $form;
+}
+
+/*
+ * Form Alters
+ */
+function cod_registration_form_cod_registration_wizard_alter(&$form, &$form_state) {
+  if($form_state['step'] == 1) {
+    $form['name']['#required'] = 0;
+    $form['pass']['#required'] = 0;
+    $form['name']['#description'] = t("If you have a username/password from previous years, enter it now. Otherwise hit 'next'");
+    $form['next']['#value'] = t('Login and continue');
+    $form['newuser'] = array(
+      '#type' => 'submit',
+      '#value' => t('Continue as new user'),
+      '#name' => 'next',
+      '#submit' => array('cod_registration_wizard_next_submit'),
+      '#weight' => 100,
+    );
+    $form['reset'] = array(
+      '#type' => 'submit',
+      '#value' => t('Reset my password'),
+      '#name' => 'next',
+      '#submit' => array('cod_registration_wizard_next_submit'),
+      '#weight' => 101,
+    );
+  }
+  unset($form['actions']);
+  $form['next']['#weight'] = $form['prev']['#weight'] = $form['finish']['#weight'] = 100;
+}
+function cod_registration_form_alter(&$form, &$form_state, $form_id) {
+  if($form_id == 'cod_registration_wizard' && $form_state['step'] == 1) {
+    //unset mollom
+    unset($form['mollom']);
+    foreach($form['#validate'] AS $key => $validate) {
+      if(strpos($validate,'mollom_') === 0) {
+        unset($form['#validate'][$key]);
+      }
+    }
+    foreach($form['#submit'] AS $key => $validate) {
+      if(strpos($validate,'mollom_') === 0) {
+        unset($form['#submit'][$key]);
+      }
+    }
+  }
+}
+
+/*
+ * Form Validations
+ */
+function cod_registration_user_login_name_validate(&$form, &$form_state) {
+  /*
+   * Because we need to break out of the validation if the username is missing or password is wrong, we're going to call the step-1 validation steps within here
+   */
+  if ($form_state['values']['next'] == t('Login and continue')) {
+    user_login_name_validate($form, $form_state);
+    user_login_authenticate_validate($form, $form_state);
+    user_login_final_validate($form, $form_state);
+  }
+  else if ($form_state['values']['next'] == t('Reset my password')) {
+    drupal_goto('user/password');
+  }
+}
+
+/*
+ * Submit Handlers
+ */
+function cod_registration_user_login_name_submit(&$form, &$form_state) {
+//  user_login_finalize($form_state);
+}
+
+function cod_registration_wizard_previous_submit($form, &$form_state) {
+  $current_step = &$form_state['step'];
+  $form_state['step_information'][$current_step]['stored_values'] = $form_state['values'];
+  if ($current_step > 1) {
+    $current_step--;
+    $form_state['values'] = $form_state['step_information'][$current_step]['stored_values'];
+  }
+  $form_state['rebuild'] = TRUE;
+}
+
+function cod_registration_wizard_next_submit($form, &$form_state) {
+  $current_step = &$form_state['step'];
+  $form_state['step_information'][$current_step]['stored_values'] = $form_state['values'];
+
+  if ($current_step < count($form_state['step_information'])) {
+    $current_step++;
+    if (!empty($form_state['step_information'][$current_step]['stored_values'])) {
+      $form_state['values'] = $form_state['step_information'][$current_step]['stored_values'];
+    }
+    else {
+      $form_state['values'] = array();
+    }
+    $form_state['rebuild'] = TRUE;  // Force rebuild with next step.
+    return;
+  }
+}
+
+function cod_registration_event_submit($form, &$form_state) {
+
+}
+
+// And now comes the magic of the wizard, the function that should handle all the
+// inputs from the user on each different step.
+/**
+ * Wizard form submit handler.
+ * - Saves away $form_state['values']
+ * - Process all the form values.
+ *
+ * This demonstration handler just do a drupal_set_message() with the information
+ * collected on each different step of the wizard.
+ *
+ * @param $form
+ * @param $form_state
+ *
+ * @ingroup form_example
+ */
+function cod_registration_wizard_submit($form, &$form_state) {
+  $group_node = node_load($form_state['values']['og_node']);
+  $account = user_load($form_state['user']->uid);
+
+  // Add the user to the group
+  og_group('node', $group_node->nid, array(
+      "entity type"       => "user",
+      "entity"        => $account,
+      "membership type"   => OG_MEMBERSHIP_TYPE_DEFAULT,
+  ));
+
+  // Changes the users role in the group (1 = non-member, 2 = member, 3 = administrator member)
+  og_role_grant('node', $group_node->nid, $account->uid, 2);
+  //drupal_set_message("Saved user @uid to group @nid", array('@uid' => $account->uid, '@nid' => $group_node->nid));
+
+  $current_step = &$form_state['step'];
+  $form_state['step_information'][$current_step]['stored_values'] = $form_state['values'];
+  $node = node_load($form_state['values']['og_node']);
+  if(isset($form_state['values']['registration_type']) && $form_state['values']['registration_type'] == 'sponsored') {
+    drupal_set_message(t("Successfully registered for @node. Please continue checking out to be an individual sponsor", array("@node" => $node->title)));
+    cod_registration_add_to_cart($form_state['values']['uid'], $form_state);
+  }
+  else {
+    drupal_set_message(t("Successfully registered for @node!", array("@node" => $node->title)));
+    if($form_state['values']['checkin'] == 1) {
+      $form_state['redirect'] = 'node/'.$group_node->nid.'/checkin/'.$account->uid;
+    }
+  }
+}
+
+function cod_registration_add_to_cart($uid, &$edit = NULL) {
+  //hardcoded to individual sponsors for now.
+  $pid = 5;
+  if ($product = commerce_product_load($pid) ) {
+    global $user;
+    $logged_in = user_load($user->uid);
+    $account = user_load($uid);
+    if($logged_in->uid != $account->uid) {
+      $user = $account;
+      user_login_finalize($form_state);
+    }
+    $order = commerce_cart_order_load($user->uid);
+    // commerce_cart_order_empty($order);
+    $line_item = commerce_product_line_item_new($product, 1, 0);
+    $line_item->field_ticket_type['und'][]['value'] = 0;
+    $line_item = commerce_cart_product_add($uid, $line_item, FALSE);
+    drupal_goto('checkout');
+  }
+}
\ No newline at end of file
diff --git a/cod_registration/cod_registration.print.inc b/cod_registration/cod_registration.print.inc
new file mode 100644
index 0000000000000000000000000000000000000000..f3b3705cd88d1fac1e83af15e78805449bd5b39d
--- /dev/null
+++ b/cod_registration/cod_registration.print.inc
@@ -0,0 +1,85 @@
+<?php
+
+function cod_registration_confirmation_print_submit($form, $form_state) {
+  $account = user_load($form_state['values']['account']);
+
+  if ($form_state['clicked_button']['#value'] == 'Print Badge') {
+    $content['username']['first'] = $account->field_profile_first[LANGUAGE_NONE][0]['value'];
+    $content['username']['last'] = $account->field_profile_last[LANGUAGE_NONE][0]['value'];
+    //$content['company'] = $account->field_profile_org[LANGUAGE_NONE][0]['value'];
+    //get vcard data
+    $vcard = vcard_get($account);
+    $vcard_text = $vcard->fetch();
+
+    $content['qr_code'] = theme('mobilecode', array('data' => $vcard_text, 'attributes' => array('#preset' => 'cod_registration_qrcode')));
+    $output = theme('cod_registration_pdf', array('content' => $content));
+
+    _sendtopdf($output, $account);
+    exit();
+  }
+}
+
+function _sendtopdf($output, $account) {
+  require_once(drupal_get_path('module', 'print_pdf') . '/print_pdf.pages.inc');
+  require_once(drupal_get_path('module', 'print') . '/print.pages.inc');
+  $print = array();
+  $print['submitted'] = '';
+  $print['title'] = 'Badge';
+  $print['taxonomy'] = '';
+  // Disable caching for generated PDFs, as Drupal doesn't ouput the proper headers from the cache
+  $GLOBALS['conf']['cache'] = FALSE;
+  $print_pdf_pdf_tool = variable_get('print_pdf_pdf_tool', PRINT_PDF_PDF_TOOL_DEFAULT);
+
+  // Img elements must be set to absolute
+  $pattern = '!<(img\s[^>]*?)>!is';
+  $content = preg_replace_callback($pattern, '_print_rewrite_urls', $output);
+
+  // Send to printer option causes problems with PDF
+  $print['sendtoprinter'] = '';
+
+//  $node = $print['node'];
+//  $html = theme('print_page', $print, PRINT_PDF_FORMAT, $node);
+  $html = $content;
+
+  // Convert the a href elements, to make sure no relative links remain
+  $pattern = '!<(a\s[^>]*?)>!is';
+  $html = preg_replace_callback($pattern, '_print_rewrite_urls', $html);
+  // And make anchor links relative again, to permit in-PDF navigation
+  $html = preg_replace("!${base_url}/" . PRINTPDF_PATH . "/.*?%2523!", '#', $html);
+
+  $pdf_filename = 'cod_badge_' . $account->name . '.pdf';
+/*
+  if (headers_sent()) {
+    die("Unable to stream pdf: headers already sent");
+  }
+ // header("Cache-Control: private");
+  header("Content-Type: application/pdf");
+
+  $attachment = "inline";
+
+  header("Content-Disposition: $attachment; filename=\"$pdf_filename\"");
+  */
+  //$pdf_filename = str_replace(' ', '_', $path) .'.pdf';
+
+  if (basename($print_pdf_pdf_tool) == 'dompdf_config.inc.php') {
+    _print_pdf_dompdf($print, $html, $pdf_filename);
+  }
+  elseif (basename($print_pdf_pdf_tool) == 'tcpdf.php') {
+    _print_pdf_tcpdf($print, $html, $pdf_filename);
+  }
+  elseif (substr(basename($print_pdf_pdf_tool, '.exe'), 0, 11) == 'wkhtmltopdf') {
+    _print_pdf_wkhtmltopdf($print, $html, $pdf_filename);
+  }
+  else {
+    return drupal_not_found();
+  }
+/*
+  $nodepath = (isset($node->path)) ? drupal_get_normal_path($node->path) : 'node/'. $path;
+  db_query("UPDATE {print_pdf_page_counter} SET totalcount = totalcount + 1, timestamp = %d WHERE path = '%s'", time(), $nodepath);
+  // If we affected 0 rows, this is the first time viewing the node.
+  if (!db_affected_rows()) {
+    // We must create a new row to store counters for the new node.
+    db_query("INSERT INTO {print_pdf_page_counter} (path, totalcount, timestamp) VALUES ('%s', 1, %d)", $nodepath, time());
+  }
+  */
+}
\ No newline at end of file
diff --git a/cod_registration/cod_registration.views_default.inc b/cod_registration/cod_registration.views_default.inc
new file mode 100644
index 0000000000000000000000000000000000000000..1c1f5393538f81c6a1885e91723fff92f193a843
--- /dev/null
+++ b/cod_registration/cod_registration.views_default.inc
@@ -0,0 +1,208 @@
+<?php
+/**
+ * @file
+ * cod_registration.views_default.inc
+ */
+
+/**
+ * Implements hook_views_default_views().
+ */
+function cod_registration_views_default_views() {
+  $export = array();
+
+  $view = new view();
+  $view->name = 'cod_registration_checkin';
+  $view->description = '';
+  $view->tag = 'default';
+  $view->base_table = 'users';
+  $view->human_name = 'cod_registration_checkin';
+  $view->core = 7;
+  $view->api_version = '3.0';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+
+  /* Display: Master */
+  $handler = $view->new_display('default', 'Master', 'default');
+  $handler->display->display_options['title'] = 'Registration Checkin';
+  $handler->display->display_options['use_more_always'] = FALSE;
+  $handler->display->display_options['access']['type'] = 'role';
+  $handler->display->display_options['access']['role'] = array(
+    8 => '8',
+  );
+  $handler->display->display_options['cache']['type'] = 'none';
+  $handler->display->display_options['query']['type'] = 'views_query';
+  $handler->display->display_options['exposed_form']['type'] = 'basic';
+  $handler->display->display_options['pager']['type'] = 'mini';
+  $handler->display->display_options['pager']['options']['items_per_page'] = '20';
+  $handler->display->display_options['pager']['options']['offset'] = '0';
+  $handler->display->display_options['pager']['options']['id'] = '0';
+  $handler->display->display_options['style_plugin'] = 'table';
+  $handler->display->display_options['style_options']['columns'] = array(
+    'name' => 'name',
+  );
+  $handler->display->display_options['style_options']['default'] = '-1';
+  $handler->display->display_options['style_options']['info'] = array(
+    'name' => array(
+      'sortable' => 0,
+      'default_sort_order' => 'asc',
+      'align' => '',
+      'separator' => '',
+      'empty_column' => 0,
+    ),
+  );
+  /* Header: Global: Text area */
+  $handler->display->display_options['header']['area']['id'] = 'area';
+  $handler->display->display_options['header']['area']['table'] = 'views';
+  $handler->display->display_options['header']['area']['field'] = 'area';
+  $handler->display->display_options['header']['area']['content'] = '<a href="/node/!1/cod_registration?checkin=1">Register and Check-in New Users</a>';
+  $handler->display->display_options['header']['area']['format'] = 'full_html';
+  $handler->display->display_options['header']['area']['tokenize'] = TRUE;
+  /* Field: User: Uid */
+  $handler->display->display_options['fields']['uid']['id'] = 'uid';
+  $handler->display->display_options['fields']['uid']['table'] = 'users';
+  $handler->display->display_options['fields']['uid']['field'] = 'uid';
+  $handler->display->display_options['fields']['uid']['label'] = '';
+  $handler->display->display_options['fields']['uid']['exclude'] = TRUE;
+  $handler->display->display_options['fields']['uid']['element_label_colon'] = FALSE;
+  $handler->display->display_options['fields']['uid']['link_to_user'] = FALSE;
+  /* Field: User: First name */
+  $handler->display->display_options['fields']['field_profile_first']['id'] = 'field_profile_first';
+  $handler->display->display_options['fields']['field_profile_first']['table'] = 'field_data_field_profile_first';
+  $handler->display->display_options['fields']['field_profile_first']['field'] = 'field_profile_first';
+  /* Field: User: Last name */
+  $handler->display->display_options['fields']['field_profile_last']['id'] = 'field_profile_last';
+  $handler->display->display_options['fields']['field_profile_last']['table'] = 'field_data_field_profile_last';
+  $handler->display->display_options['fields']['field_profile_last']['field'] = 'field_profile_last';
+  /* Field: User: E-mail */
+  $handler->display->display_options['fields']['mail']['id'] = 'mail';
+  $handler->display->display_options['fields']['mail']['table'] = 'users';
+  $handler->display->display_options['fields']['mail']['field'] = 'mail';
+  $handler->display->display_options['fields']['mail']['link_to_user'] = 'user';
+  /* Field: User: Name */
+  $handler->display->display_options['fields']['name']['id'] = 'name';
+  $handler->display->display_options['fields']['name']['table'] = 'users';
+  $handler->display->display_options['fields']['name']['field'] = 'name';
+  $handler->display->display_options['fields']['name']['label'] = '';
+  $handler->display->display_options['fields']['name']['alter']['word_boundary'] = FALSE;
+  $handler->display->display_options['fields']['name']['alter']['ellipsis'] = FALSE;
+  /* Field: User: Roles */
+  $handler->display->display_options['fields']['rid']['id'] = 'rid';
+  $handler->display->display_options['fields']['rid']['table'] = 'users_roles';
+  $handler->display->display_options['fields']['rid']['field'] = 'rid';
+  /* Field: Global: Custom text */
+  $handler->display->display_options['fields']['nothing']['id'] = 'nothing';
+  $handler->display->display_options['fields']['nothing']['table'] = 'views';
+  $handler->display->display_options['fields']['nothing']['field'] = 'nothing';
+  $handler->display->display_options['fields']['nothing']['label'] = '';
+  $handler->display->display_options['fields']['nothing']['alter']['text'] = 'Checkin';
+  $handler->display->display_options['fields']['nothing']['alter']['make_link'] = TRUE;
+  $handler->display->display_options['fields']['nothing']['alter']['path'] = 'node/!1/checkin/[uid]';
+  $handler->display->display_options['fields']['nothing']['element_label_colon'] = FALSE;
+  /* Sort criterion: User: Created date */
+  $handler->display->display_options['sorts']['created']['id'] = 'created';
+  $handler->display->display_options['sorts']['created']['table'] = 'users';
+  $handler->display->display_options['sorts']['created']['field'] = 'created';
+  $handler->display->display_options['sorts']['created']['order'] = 'DESC';
+  /* Contextual filter: OG membership: Group ID */
+  $handler->display->display_options['arguments']['gid']['id'] = 'gid';
+  $handler->display->display_options['arguments']['gid']['table'] = 'og_membership';
+  $handler->display->display_options['arguments']['gid']['field'] = 'gid';
+  $handler->display->display_options['arguments']['gid']['default_action'] = 'not found';
+  $handler->display->display_options['arguments']['gid']['default_argument_type'] = 'fixed';
+  $handler->display->display_options['arguments']['gid']['summary']['number_of_records'] = '0';
+  $handler->display->display_options['arguments']['gid']['summary']['format'] = 'default_summary';
+  $handler->display->display_options['arguments']['gid']['summary_options']['items_per_page'] = '25';
+  $handler->display->display_options['arguments']['gid']['specify_validation'] = TRUE;
+  $handler->display->display_options['arguments']['gid']['validate']['type'] = 'og';
+  /* Filter criterion: User: Active */
+  $handler->display->display_options['filters']['status']['id'] = 'status';
+  $handler->display->display_options['filters']['status']['table'] = 'users';
+  $handler->display->display_options['filters']['status']['field'] = 'status';
+  $handler->display->display_options['filters']['status']['value'] = '1';
+  $handler->display->display_options['filters']['status']['group'] = 1;
+  $handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
+  /* Filter criterion: User: First name (field_profile_first) */
+  $handler->display->display_options['filters']['field_profile_first_value']['id'] = 'field_profile_first_value';
+  $handler->display->display_options['filters']['field_profile_first_value']['table'] = 'field_data_field_profile_first';
+  $handler->display->display_options['filters']['field_profile_first_value']['field'] = 'field_profile_first_value';
+  $handler->display->display_options['filters']['field_profile_first_value']['operator'] = 'contains';
+  $handler->display->display_options['filters']['field_profile_first_value']['exposed'] = TRUE;
+  $handler->display->display_options['filters']['field_profile_first_value']['expose']['operator_id'] = 'field_profile_first_value_op';
+  $handler->display->display_options['filters']['field_profile_first_value']['expose']['label'] = 'First name';
+  $handler->display->display_options['filters']['field_profile_first_value']['expose']['operator'] = 'field_profile_first_value_op';
+  $handler->display->display_options['filters']['field_profile_first_value']['expose']['identifier'] = 'field_profile_first_value';
+  $handler->display->display_options['filters']['field_profile_first_value']['expose']['remember_roles'] = array(
+    2 => '2',
+    1 => 0,
+    8 => 0,
+    6 => 0,
+    5 => 0,
+    4 => 0,
+    12 => 0,
+    17 => 0,
+    13 => 0,
+    14 => 0,
+    15 => 0,
+    18 => 0,
+    16 => 0,
+    19 => 0,
+  );
+  /* Filter criterion: User: Last name (field_profile_last) */
+  $handler->display->display_options['filters']['field_profile_last_value']['id'] = 'field_profile_last_value';
+  $handler->display->display_options['filters']['field_profile_last_value']['table'] = 'field_data_field_profile_last';
+  $handler->display->display_options['filters']['field_profile_last_value']['field'] = 'field_profile_last_value';
+  $handler->display->display_options['filters']['field_profile_last_value']['operator'] = 'contains';
+  $handler->display->display_options['filters']['field_profile_last_value']['exposed'] = TRUE;
+  $handler->display->display_options['filters']['field_profile_last_value']['expose']['operator_id'] = 'field_profile_last_value_op';
+  $handler->display->display_options['filters']['field_profile_last_value']['expose']['label'] = 'Last name';
+  $handler->display->display_options['filters']['field_profile_last_value']['expose']['operator'] = 'field_profile_last_value_op';
+  $handler->display->display_options['filters']['field_profile_last_value']['expose']['identifier'] = 'field_profile_last_value';
+  $handler->display->display_options['filters']['field_profile_last_value']['expose']['remember_roles'] = array(
+    2 => '2',
+    1 => 0,
+    8 => 0,
+    6 => 0,
+    5 => 0,
+    4 => 0,
+    12 => 0,
+    17 => 0,
+    13 => 0,
+    14 => 0,
+    15 => 0,
+    18 => 0,
+    16 => 0,
+    19 => 0,
+  );
+  /* Filter criterion: User: E-mail */
+  $handler->display->display_options['filters']['mail']['id'] = 'mail';
+  $handler->display->display_options['filters']['mail']['table'] = 'users';
+  $handler->display->display_options['filters']['mail']['field'] = 'mail';
+  $handler->display->display_options['filters']['mail']['operator'] = 'contains';
+  $handler->display->display_options['filters']['mail']['exposed'] = TRUE;
+  $handler->display->display_options['filters']['mail']['expose']['operator_id'] = 'mail_op';
+  $handler->display->display_options['filters']['mail']['expose']['label'] = 'E-mail';
+  $handler->display->display_options['filters']['mail']['expose']['operator'] = 'mail_op';
+  $handler->display->display_options['filters']['mail']['expose']['identifier'] = 'mail';
+  $handler->display->display_options['filters']['mail']['expose']['remember_roles'] = array(
+    2 => '2',
+    1 => 0,
+    8 => 0,
+    6 => 0,
+    5 => 0,
+    4 => 0,
+    12 => 0,
+    17 => 0,
+    13 => 0,
+    14 => 0,
+    15 => 0,
+    18 => 0,
+    16 => 0,
+    19 => 0,
+  );
+
+  /* Display: Page */
+  $handler = $view->new_display('page', 'Page', 'page');
+  $handler->display->display_options['path'] = 'node/%/checkin';
+  $export['cod_registration_checkin'] = $view;
+
+  return $export;
+}
