<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://dev.metrixstream.com/w/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://dev.metrixstream.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MetrixJustin</id>
		<title>Metrixstream - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://dev.metrixstream.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MetrixJustin"/>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Special:Contributions/MetrixJustin"/>
		<updated>2026-09-12T17:31:50Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.1</generator>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:API:Authentication</id>
		<title>Site:API:Authentication</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:API:Authentication"/>
				<updated>2012-07-03T00:53:19Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Login */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Login =&lt;br /&gt;
&lt;br /&gt;
== Post URL ==&lt;br /&gt;
&lt;br /&gt;
The login post URL can be generated using the getLoginPostUrl() macro, or posting to getBasePostUrl() with an action of login.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  &amp;lt;?cs call:getLoginPostUrl() ?&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
  &amp;lt;?cs call:getBasePostUrl() ?&amp;gt;?action=login&lt;br /&gt;
&lt;br /&gt;
== Required Parameters ==&lt;br /&gt;
  Username&lt;br /&gt;
  Password&lt;br /&gt;
&lt;br /&gt;
== Optional Parameters ==&lt;br /&gt;
  mode&lt;br /&gt;
  continue&lt;br /&gt;
  retry&lt;br /&gt;
&lt;br /&gt;
== Error Handling ==&lt;br /&gt;
A failed form submission will populate MS.error in the retry page HDF with the reason why the form has failed.&lt;br /&gt;
&lt;br /&gt;
== Complete Example ==&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&amp;lt;form action=&amp;quot;&amp;lt;?cs call:getLoginPostUrl() ?&amp;gt;&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;&amp;lt;?cs call:getPageUrl('successPage') ?&amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;retry&amp;quot; value=&amp;quot;&amp;lt;?cs call:getPageUrl('retryPage') ?&amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?cs if:MS.error ?&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;error&amp;quot;&amp;gt;&amp;lt;?cs var:MS.error ?&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;?cs /if ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;label&amp;gt;Username&amp;lt;/label&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;username&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;label&amp;gt;Password&amp;lt;/label&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;password&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Login&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/form&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Signup =&lt;br /&gt;
&lt;br /&gt;
= Logout =&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:API:Authentication</id>
		<title>Site:API:Authentication</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:API:Authentication"/>
				<updated>2012-07-03T00:52:28Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Error Handling */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Login =&lt;br /&gt;
&lt;br /&gt;
== Post URL ==&lt;br /&gt;
&lt;br /&gt;
The login post URL can be generated using the getLoginPostUrl() macro, or posting to getBasePostUrl() with an action of login.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  &amp;lt;?cs call:getLoginPostUrl() ?&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
  &amp;lt;?cs call:getBasePostUrl() ?&amp;gt;?action=login&lt;br /&gt;
&lt;br /&gt;
== Required Parameters ==&lt;br /&gt;
  Username&lt;br /&gt;
  Password&lt;br /&gt;
&lt;br /&gt;
== Optional Parameters ==&lt;br /&gt;
  mode&lt;br /&gt;
  continue&lt;br /&gt;
  retry&lt;br /&gt;
&lt;br /&gt;
== Error Handling ==&lt;br /&gt;
A failed form submission will populate MS.error in the retry page HDF with the reason why the form has failed.&lt;br /&gt;
&lt;br /&gt;
== Complete Example ==&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&amp;lt;form action=&amp;quot;&amp;lt;?cs call:getLoginPostUrl() ?&amp;gt;&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;&amp;lt;?cs call:getPageUrl('successPage') ?&amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;retry&amp;quot; value=&amp;quot;&amp;lt;?cs call:getPageUrl('retryPage') ?&amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?cs if:MS.error ?&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;error&amp;quot;&amp;gt;&amp;lt;?cs var:MS.error ?&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;?cs /if ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;label&amp;gt;Username&amp;lt;/label&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;username&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;label&amp;gt;Password&amp;lt;/label&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;password&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Login&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/form&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:API:Authentication</id>
		<title>Site:API:Authentication</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:API:Authentication"/>
				<updated>2012-07-03T00:51:45Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Complete Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Login =&lt;br /&gt;
&lt;br /&gt;
== Post URL ==&lt;br /&gt;
&lt;br /&gt;
The login post URL can be generated using the getLoginPostUrl() macro, or posting to getBasePostUrl() with an action of login.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  &amp;lt;?cs call:getLoginPostUrl() ?&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
  &amp;lt;?cs call:getBasePostUrl() ?&amp;gt;?action=login&lt;br /&gt;
&lt;br /&gt;
== Required Parameters ==&lt;br /&gt;
  Username&lt;br /&gt;
  Password&lt;br /&gt;
&lt;br /&gt;
== Optional Parameters ==&lt;br /&gt;
  mode&lt;br /&gt;
  continue&lt;br /&gt;
  retry&lt;br /&gt;
&lt;br /&gt;
== Error Handling ==&lt;br /&gt;
A failed form submission will populate MS.error in the retry page HDF&lt;br /&gt;
&lt;br /&gt;
== Complete Example ==&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&amp;lt;form action=&amp;quot;&amp;lt;?cs call:getLoginPostUrl() ?&amp;gt;&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;&amp;lt;?cs call:getPageUrl('successPage') ?&amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;retry&amp;quot; value=&amp;quot;&amp;lt;?cs call:getPageUrl('retryPage') ?&amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?cs if:MS.error ?&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;error&amp;quot;&amp;gt;&amp;lt;?cs var:MS.error ?&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;?cs /if ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;label&amp;gt;Username&amp;lt;/label&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;username&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;label&amp;gt;Password&amp;lt;/label&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;password&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Login&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/form&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:API:Authentication</id>
		<title>Site:API:Authentication</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:API:Authentication"/>
				<updated>2012-07-03T00:51:35Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Login */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Login =&lt;br /&gt;
&lt;br /&gt;
== Post URL ==&lt;br /&gt;
&lt;br /&gt;
The login post URL can be generated using the getLoginPostUrl() macro, or posting to getBasePostUrl() with an action of login.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  &amp;lt;?cs call:getLoginPostUrl() ?&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
  &amp;lt;?cs call:getBasePostUrl() ?&amp;gt;?action=login&lt;br /&gt;
&lt;br /&gt;
== Required Parameters ==&lt;br /&gt;
  Username&lt;br /&gt;
  Password&lt;br /&gt;
&lt;br /&gt;
== Optional Parameters ==&lt;br /&gt;
  mode&lt;br /&gt;
  continue&lt;br /&gt;
  retry&lt;br /&gt;
&lt;br /&gt;
== Error Handling ==&lt;br /&gt;
A failed form submission will populate MS.error in the retry page HDF&lt;br /&gt;
&lt;br /&gt;
== Complete Example ==&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;form action=&amp;quot;&amp;lt;?cs call:getLoginPostUrl() ?&amp;gt;&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;&amp;lt;?cs call:getPageUrl('successPage') ?&amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;retry&amp;quot; value=&amp;quot;&amp;lt;?cs call:getPageUrl('retryPage') ?&amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?cs if:MS.error ?&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;error&amp;quot;&amp;gt;&amp;lt;?cs var:MS.error ?&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;?cs /if ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;label&amp;gt;Username&amp;lt;/label&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;username&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;label&amp;gt;Password&amp;lt;/label&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;password&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Login&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/form&amp;gt;&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:API:Authentication</id>
		<title>Site:API:Authentication</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:API:Authentication"/>
				<updated>2012-07-03T00:45:01Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Login */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Login =&lt;br /&gt;
&lt;br /&gt;
== Post URL ==&lt;br /&gt;
&lt;br /&gt;
== Required Parameters ==&lt;br /&gt;
&lt;br /&gt;
== Optional Parameters ==&lt;br /&gt;
&lt;br /&gt;
== Error Handling ==&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:API:Authentication</id>
		<title>Site:API:Authentication</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:API:Authentication"/>
				<updated>2012-07-03T00:42:43Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: Created page with &amp;quot;= Login =  == Post URL ==  == Required Parameters ==  == Error Handling ==&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Login =&lt;br /&gt;
&lt;br /&gt;
== Post URL ==&lt;br /&gt;
&lt;br /&gt;
== Required Parameters ==&lt;br /&gt;
&lt;br /&gt;
== Error Handling ==&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Forms</id>
		<title>Site:Frontend:Forms</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Forms"/>
				<updated>2012-07-02T16:49:40Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Custom Fields */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
= Parameters =&lt;br /&gt;
&lt;br /&gt;
== Mode ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter sets the response type.&lt;br /&gt;
&lt;br /&gt;
Avaliable modes: xml, json&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;mode&amp;quot; value=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Continue ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a successful form submit.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-successful-page&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Retry ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a unsuccessful form submit. This page will also contain the MS.error HDF value with the error/reason why the form wasn't successful.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-failed-page&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ajax Forms =&lt;br /&gt;
&lt;br /&gt;
The jQuery javascript library offers a simple function to handle your forms using Ajax. This allows you to send form data and get the response from the server without having to reload the page.&lt;br /&gt;
&lt;br /&gt;
== Basic Script ==&lt;br /&gt;
&lt;br /&gt;
The following snippet will listen for a form with the ID of &amp;quot;someFormId&amp;quot; to be submitted.&lt;br /&gt;
&lt;br /&gt;
  $('#someFormId').submit(function(e) {&lt;br /&gt;
    e.preventDefault();&lt;br /&gt;
    var form = $(this):&lt;br /&gt;
            &lt;br /&gt;
    if(form.data('disabled') == 'true') return;&lt;br /&gt;
    form.data('disabled', 'true');&lt;br /&gt;
         &lt;br /&gt;
    $.ajax({&lt;br /&gt;
      type: form.attr('method'),&lt;br /&gt;
      url:  form.attr('action'),&lt;br /&gt;
      data: form.serialize(),&lt;br /&gt;
      success: function(data) {&lt;br /&gt;
        if('ok' == $('status', data).text()) {&lt;br /&gt;
          // Form has returned successfully&lt;br /&gt;
        } else {&lt;br /&gt;
          // Form has returned with an error&lt;br /&gt;
        }&lt;br /&gt;
        form.removeData('disabled');&lt;br /&gt;
      },&lt;br /&gt;
      error: function() {&lt;br /&gt;
        // Could not get data back from the post&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
This script should be placed in the appropriate controller and instantiated only when necessary.&lt;br /&gt;
&lt;br /&gt;
= Custom Fields =&lt;br /&gt;
&lt;br /&gt;
Custom fields can be updated just like other form fields but require different naming. The custom field is prefixed with cst_ followed by the custom field name.&lt;br /&gt;
&lt;br /&gt;
Ex. If a custom field on a user object is &amp;quot;specialNote&amp;quot;, the input name would be &amp;quot;cst_specialNote&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;cst_specialNote&amp;quot; value=&amp;quot;&amp;lt;?cs var:MS.site.user.custom.specialNote.value ?&amp;gt;&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Forms</id>
		<title>Site:Frontend:Forms</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Forms"/>
				<updated>2012-07-02T16:48:54Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
= Parameters =&lt;br /&gt;
&lt;br /&gt;
== Mode ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter sets the response type.&lt;br /&gt;
&lt;br /&gt;
Avaliable modes: xml, json&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;mode&amp;quot; value=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Continue ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a successful form submit.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-successful-page&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Retry ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a unsuccessful form submit. This page will also contain the MS.error HDF value with the error/reason why the form wasn't successful.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-failed-page&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ajax Forms =&lt;br /&gt;
&lt;br /&gt;
The jQuery javascript library offers a simple function to handle your forms using Ajax. This allows you to send form data and get the response from the server without having to reload the page.&lt;br /&gt;
&lt;br /&gt;
== Basic Script ==&lt;br /&gt;
&lt;br /&gt;
The following snippet will listen for a form with the ID of &amp;quot;someFormId&amp;quot; to be submitted.&lt;br /&gt;
&lt;br /&gt;
  $('#someFormId').submit(function(e) {&lt;br /&gt;
    e.preventDefault();&lt;br /&gt;
    var form = $(this):&lt;br /&gt;
            &lt;br /&gt;
    if(form.data('disabled') == 'true') return;&lt;br /&gt;
    form.data('disabled', 'true');&lt;br /&gt;
         &lt;br /&gt;
    $.ajax({&lt;br /&gt;
      type: form.attr('method'),&lt;br /&gt;
      url:  form.attr('action'),&lt;br /&gt;
      data: form.serialize(),&lt;br /&gt;
      success: function(data) {&lt;br /&gt;
        if('ok' == $('status', data).text()) {&lt;br /&gt;
          // Form has returned successfully&lt;br /&gt;
        } else {&lt;br /&gt;
          // Form has returned with an error&lt;br /&gt;
        }&lt;br /&gt;
        form.removeData('disabled');&lt;br /&gt;
      },&lt;br /&gt;
      error: function() {&lt;br /&gt;
        // Could not get data back from the post&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
This script should be placed in the appropriate controller and instantiated only when necessary.&lt;br /&gt;
&lt;br /&gt;
= Custom Fields =&lt;br /&gt;
&lt;br /&gt;
Custom fields can be updated just like other form fields but require different naming.&lt;br /&gt;
&lt;br /&gt;
Ex. If a custom field on a user object is &amp;quot;specialNote&amp;quot;, the input name would be &amp;quot;cst_specialNote&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;cst_specialNote&amp;quot; value=&amp;quot;&amp;lt;?cs var:MS.site.user.custom.specialNote.value ?&amp;gt;&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Controllers</id>
		<title>Site:Frontend:Controllers</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Controllers"/>
				<updated>2012-06-20T17:56:16Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Basic Site Controller */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
A Controller is a javascript class that will manage all the necessary javascript. This class is broken down by functionality and should only be instantiated when necessary.&lt;br /&gt;
&lt;br /&gt;
= Basic Site Controller =&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    function siteController(authUser, publicUser, publicContentId) {&lt;br /&gt;
      this.authUser   = authUser;&lt;br /&gt;
      this.publicUser = publicUser;&lt;br /&gt;
      this.contentId  = publicContentId;&lt;br /&gt;
      this.urls = [];&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
    siteController.prototype.registerUrls = function(urls) {&lt;br /&gt;
      this.urls = urls;&lt;br /&gt;
    };&lt;br /&gt;
  &lt;br /&gt;
    siteController.prototype.registerProfileFunctions = function() {&lt;br /&gt;
      var myThis = this;&lt;br /&gt;
  &lt;br /&gt;
      $('#getUserState').click(function(e) {&lt;br /&gt;
        e.preventDefault();&lt;br /&gt;
        $.ajax({&lt;br /&gt;
          type: 'get',&lt;br /&gt;
          url:  myThis.urls['userStateUrl'],&lt;br /&gt;
          data: {&lt;br /&gt;
            'user': myThis.publicUser&lt;br /&gt;
          },&lt;br /&gt;
          success: function(data) {&lt;br /&gt;
            alert('This user is '+ data.state);&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    };&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Instantiating ==&lt;br /&gt;
&lt;br /&gt;
In the example controller, siteController is instantiated with the authenticated username, the public username, and the public contentId which are stored so they can be accessed throughout the class.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var site = new siteController('Justin', 'Roy', &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;);&lt;br /&gt;
    $(document).ready(function() {&lt;br /&gt;
      site.registerUrls({&lt;br /&gt;
        'userStateUrl' : 'http://example.com/userstate'&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using registerProfileFunctions ==&lt;br /&gt;
&lt;br /&gt;
In the example above, we never created an instance of registerProfileFunctions meaning the getUserState listener is never active.&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
  site.registerProfileFunctions();&lt;br /&gt;
&lt;br /&gt;
Once its active and getUserState is clicked, the script references myThis.urls['userStateUrl'] which was set earlier in the registerUrls function.&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Controllers</id>
		<title>Site:Frontend:Controllers</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Controllers"/>
				<updated>2012-06-20T17:47:16Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Instantiating */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
A Controller is a javascript class that will manage all the necessary javascript. This class is broken down by functionality and should only be instantiated when necessary.&lt;br /&gt;
&lt;br /&gt;
= Basic Site Controller =&lt;br /&gt;
&lt;br /&gt;
== Example Controller ==&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    function siteController(authUser, publicUser, publicContentId) {&lt;br /&gt;
      this.authUser   = authUser;&lt;br /&gt;
      this.publicUser = publicUser;&lt;br /&gt;
      this.contentId  = publicContentId;&lt;br /&gt;
      this.urls = [];&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
    siteController.prototype.registerUrls = function(urls) {&lt;br /&gt;
      this.urls = urls;&lt;br /&gt;
    };&lt;br /&gt;
  &lt;br /&gt;
    siteController.prototype.registerProfileFunctions = function() {&lt;br /&gt;
      var myThis = this;&lt;br /&gt;
  &lt;br /&gt;
      $('#getUserState').click(function(e) {&lt;br /&gt;
        e.preventDefault();&lt;br /&gt;
        $.ajax({&lt;br /&gt;
          type: 'get',&lt;br /&gt;
          url:  myThis.urls['userStateUrl'],&lt;br /&gt;
          data: {&lt;br /&gt;
            'user': myThis.publicUser&lt;br /&gt;
          },&lt;br /&gt;
          success: function(data) {&lt;br /&gt;
            alert('This user is '+ data.state);&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    };&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Instantiating ==&lt;br /&gt;
&lt;br /&gt;
In the example controller, siteController is instantiated with the authenticated username, the public username, and the public contentId which are stored so they can be accessed throughout the class.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var site = new siteController('Justin', 'Roy', &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;);&lt;br /&gt;
    $(document).ready(function() {&lt;br /&gt;
      site.registerUrls({&lt;br /&gt;
        'userStateUrl' : 'http://example.com/userstate'&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Controllers</id>
		<title>Site:Frontend:Controllers</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Controllers"/>
				<updated>2012-06-20T17:38:23Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Instantiating */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
A Controller is a javascript class that will manage all the necessary javascript. This class is broken down by functionality and should only be instantiated when necessary.&lt;br /&gt;
&lt;br /&gt;
= Basic Site Controller =&lt;br /&gt;
&lt;br /&gt;
== Example Controller ==&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    function siteController(authUser, publicUser, publicContentId) {&lt;br /&gt;
      this.authUser   = authUser;&lt;br /&gt;
      this.publicUser = publicUser;&lt;br /&gt;
      this.contentId  = publicContentId;&lt;br /&gt;
      this.urls = [];&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
    siteController.prototype.registerUrls = function(urls) {&lt;br /&gt;
      this.urls = urls;&lt;br /&gt;
    };&lt;br /&gt;
  &lt;br /&gt;
    siteController.prototype.registerProfileFunctions = function() {&lt;br /&gt;
      var myThis = this;&lt;br /&gt;
  &lt;br /&gt;
      $('#getUserState').click(function(e) {&lt;br /&gt;
        e.preventDefault();&lt;br /&gt;
        $.ajax({&lt;br /&gt;
          type: 'get',&lt;br /&gt;
          url:  myThis.urls['userStateUrl'],&lt;br /&gt;
          data: {&lt;br /&gt;
            'user': myThis.publicUser&lt;br /&gt;
          },&lt;br /&gt;
          success: function(data) {&lt;br /&gt;
            alert('This user is '+ data.state);&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    };&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Instantiating ==&lt;br /&gt;
&lt;br /&gt;
In the example controller, siteController is instantiated with the authenticated username, the public username (if avaliable), and the public contentId (if avaliable) which are stored so they can be accessed throughout the class.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var site = new siteController('Justin', 'Roy', &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;);&lt;br /&gt;
    $(document).ready(function() {&lt;br /&gt;
      site.registerUrls({&lt;br /&gt;
        'userStateUrl' : 'http://example.com/userstate'&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Controllers</id>
		<title>Site:Frontend:Controllers</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Controllers"/>
				<updated>2012-06-20T17:37:55Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Instantiating */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
A Controller is a javascript class that will manage all the necessary javascript. This class is broken down by functionality and should only be instantiated when necessary.&lt;br /&gt;
&lt;br /&gt;
= Basic Site Controller =&lt;br /&gt;
&lt;br /&gt;
== Example Controller ==&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    function siteController(authUser, publicUser, publicContentId) {&lt;br /&gt;
      this.authUser   = authUser;&lt;br /&gt;
      this.publicUser = publicUser;&lt;br /&gt;
      this.contentId  = publicContentId;&lt;br /&gt;
      this.urls = [];&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
    siteController.prototype.registerUrls = function(urls) {&lt;br /&gt;
      this.urls = urls;&lt;br /&gt;
    };&lt;br /&gt;
  &lt;br /&gt;
    siteController.prototype.registerProfileFunctions = function() {&lt;br /&gt;
      var myThis = this;&lt;br /&gt;
  &lt;br /&gt;
      $('#getUserState').click(function(e) {&lt;br /&gt;
        e.preventDefault();&lt;br /&gt;
        $.ajax({&lt;br /&gt;
          type: 'get',&lt;br /&gt;
          url:  myThis.urls['userStateUrl'],&lt;br /&gt;
          data: {&lt;br /&gt;
            'user': myThis.publicUser&lt;br /&gt;
          },&lt;br /&gt;
          success: function(data) {&lt;br /&gt;
            alert('This user is '+ data.state);&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    };&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Instantiating ==&lt;br /&gt;
&lt;br /&gt;
In the example controller, siteController is instantiated with the authenticated username, the public username (if avaliable), and the public contentId (if avaliable) which are stored so they can be accessed throughout the class.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var site = new siteController('Justin', 'Roy', &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;);&lt;br /&gt;
    $(document).ready(function() {&lt;br /&gt;
      site.registerUrls({&lt;br /&gt;
        'someUrl':'http://somesite.com'&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Controllers</id>
		<title>Site:Frontend:Controllers</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Controllers"/>
				<updated>2012-06-20T17:37:32Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Instantiating */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
A Controller is a javascript class that will manage all the necessary javascript. This class is broken down by functionality and should only be instantiated when necessary.&lt;br /&gt;
&lt;br /&gt;
= Basic Site Controller =&lt;br /&gt;
&lt;br /&gt;
== Example Controller ==&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    function siteController(authUser, publicUser, publicContentId) {&lt;br /&gt;
      this.authUser   = authUser;&lt;br /&gt;
      this.publicUser = publicUser;&lt;br /&gt;
      this.contentId  = publicContentId;&lt;br /&gt;
      this.urls = [];&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
    siteController.prototype.registerUrls = function(urls) {&lt;br /&gt;
      this.urls = urls;&lt;br /&gt;
    };&lt;br /&gt;
  &lt;br /&gt;
    siteController.prototype.registerProfileFunctions = function() {&lt;br /&gt;
      var myThis = this;&lt;br /&gt;
  &lt;br /&gt;
      $('#getUserState').click(function(e) {&lt;br /&gt;
        e.preventDefault();&lt;br /&gt;
        $.ajax({&lt;br /&gt;
          type: 'get',&lt;br /&gt;
          url:  myThis.urls['userStateUrl'],&lt;br /&gt;
          data: {&lt;br /&gt;
            'user': myThis.publicUser&lt;br /&gt;
          },&lt;br /&gt;
          success: function(data) {&lt;br /&gt;
            alert('This user is '+ data.state);&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    };&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Instantiating ==&lt;br /&gt;
&lt;br /&gt;
In the example controller, siteController is instantiated with the authenticated username, the public username (if avaliable), and the public contentId (if avaliable) which are stored so they can be accessed throughout the class.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var site = new siteController('Justin', 'Roy', '');&lt;br /&gt;
    $(document).ready(function() {&lt;br /&gt;
      site.registerUrls({&lt;br /&gt;
        'someUrl':'http://somesite.com'&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Controllers</id>
		<title>Site:Frontend:Controllers</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Controllers"/>
				<updated>2012-06-20T17:36:16Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
A Controller is a javascript class that will manage all the necessary javascript. This class is broken down by functionality and should only be instantiated when necessary.&lt;br /&gt;
&lt;br /&gt;
= Basic Site Controller =&lt;br /&gt;
&lt;br /&gt;
== Example Controller ==&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    function siteController(authUser, publicUser, publicContentId) {&lt;br /&gt;
      this.authUser   = authUser;&lt;br /&gt;
      this.publicUser = publicUser;&lt;br /&gt;
      this.contentId  = publicContentId;&lt;br /&gt;
      this.urls = [];&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
    siteController.prototype.registerUrls = function(urls) {&lt;br /&gt;
      this.urls = urls;&lt;br /&gt;
    };&lt;br /&gt;
  &lt;br /&gt;
    siteController.prototype.registerProfileFunctions = function() {&lt;br /&gt;
      var myThis = this;&lt;br /&gt;
  &lt;br /&gt;
      $('#getUserState').click(function(e) {&lt;br /&gt;
        e.preventDefault();&lt;br /&gt;
        $.ajax({&lt;br /&gt;
          type: 'get',&lt;br /&gt;
          url:  myThis.urls['userStateUrl'],&lt;br /&gt;
          data: {&lt;br /&gt;
            'user': myThis.publicUser&lt;br /&gt;
          },&lt;br /&gt;
          success: function(data) {&lt;br /&gt;
            alert('This user is '+ data.state);&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    };&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Instantiating ==&lt;br /&gt;
&lt;br /&gt;
In the example controller, siteController is instantiated with the authenticated username, the public username (if avaliable), and the public contentId (if avaliable) which are stored so they can be accessed throughout the class.&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Controllers</id>
		<title>Site:Frontend:Controllers</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Controllers"/>
				<updated>2012-06-20T17:34:51Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
A Controller is a javascript class that will manage all the necessary javascript. This class is broken down by functionality and should only be instantiated when necessary.&lt;br /&gt;
&lt;br /&gt;
= Basic Site Controller =&lt;br /&gt;
&lt;br /&gt;
Example Controller:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    function siteController(authUser, publicUser, publicContentId) {&lt;br /&gt;
      this.authUser   = authUser;&lt;br /&gt;
      this.publicUser = publicUser;&lt;br /&gt;
      this.contentId  = publicContentId;&lt;br /&gt;
      this.urls = [];&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
    siteController.prototype.registerUrls = function(urls) {&lt;br /&gt;
      this.urls = urls;&lt;br /&gt;
    };&lt;br /&gt;
  &lt;br /&gt;
    siteController.prototype.registerProfileFunctions = function() {&lt;br /&gt;
      var myThis = this;&lt;br /&gt;
  &lt;br /&gt;
      $('#getUserState').click(function(e) {&lt;br /&gt;
        e.preventDefault();&lt;br /&gt;
        $.ajax({&lt;br /&gt;
          type: 'get',&lt;br /&gt;
          url:  myThis.urls['userStateUrl'],&lt;br /&gt;
          data: {&lt;br /&gt;
            'user': myThis.publicUser&lt;br /&gt;
          },&lt;br /&gt;
          success: function(data) {&lt;br /&gt;
            alert('This user is '+ data.state);&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    };&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the example controller, siteController is instantiated with the authenticated username, the public username (if avaliable), and the public contentId (if avaliable) which are stored so they can be accessed throughout the class.&lt;br /&gt;
&lt;br /&gt;
The&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
  var site = new siteController('&amp;lt;?cs var:MS.site.auth.username ?&amp;gt;', '&amp;lt;?cs var:MS.activeUser.username ?&amp;gt;', '&amp;lt;?cs var:MS.activeContent.id');&lt;br /&gt;
  $(document).ready(function() {&lt;br /&gt;
    site.registerUrls({&lt;br /&gt;
      'someUrl':'http://somesite.com'&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Controllers</id>
		<title>Site:Frontend:Controllers</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Controllers"/>
				<updated>2012-06-20T17:31:42Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: Created page with &amp;quot;= Introduction =  A Controller is a javascript class that will manage all the necessary javascript. This class is broken down by functionality and should only be instantiated whe...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
A Controller is a javascript class that will manage all the necessary javascript. This class is broken down by functionality and should only be instantiated when necessary.&lt;br /&gt;
&lt;br /&gt;
= Basic Site Controller =&lt;br /&gt;
&lt;br /&gt;
Example Controller:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    function siteController(authUser, publicUser, publicContentId) {&lt;br /&gt;
      this.authUser   = authUser;&lt;br /&gt;
      this.publicUser = publicUser;&lt;br /&gt;
      this.contentId  = publicContentId;&lt;br /&gt;
      this.urls = [];&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    siteController.prototype.registerUrls = function(urls) {&lt;br /&gt;
      this.urls = urls;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    siteController.prototype.registerProfileFunctions = function() {&lt;br /&gt;
      var myThis = this;&lt;br /&gt;
&lt;br /&gt;
      $('#getUserState').click(function(e) {&lt;br /&gt;
        e.preventDefault();&lt;br /&gt;
        $.ajax({&lt;br /&gt;
          type: 'get',&lt;br /&gt;
          url:  myThis.urls['userStateUrl'],&lt;br /&gt;
          data: {&lt;br /&gt;
            'user': myThis.publicUser&lt;br /&gt;
          },&lt;br /&gt;
          success: function(data) {&lt;br /&gt;
            alert('This user is '+ data.state);&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    };&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the example controller, siteController is instantiated with the authenticated username, the public username (if avaliable), and the public contentId (if avaliable) which are stored so they can be accessed throughout the class.&lt;br /&gt;
&lt;br /&gt;
The&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend</id>
		<title>Site:Frontend</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend"/>
				<updated>2012-06-20T17:16:31Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Below you will find links to each particular component of the Frontend Site API. Detailed API information is available by clicking on each link.&lt;br /&gt;
&lt;br /&gt;
=== Main Sections ===&lt;br /&gt;
&lt;br /&gt;
; [[Site:Frontend:BestPractices|Best Practices]]&lt;br /&gt;
; [[Site:Frontend:Controllers|Controllers]]&lt;br /&gt;
; [[Site:Frontend:Forms|Forms]]&lt;br /&gt;
; [[Site:Frontend:Macros|Macros]]&lt;br /&gt;
; [[Site:Frontend:Modules|Modules]]&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Modules</id>
		<title>Site:Frontend:Modules</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Modules"/>
				<updated>2012-06-18T17:42:50Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Listing Content */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Modules contain stand-alone code, files, pages, and page includes required to perform the tasks of the module.&lt;br /&gt;
&lt;br /&gt;
= Module Integration =&lt;br /&gt;
&lt;br /&gt;
== Adding a Module to a Page ==&lt;br /&gt;
After a module is created or imported, it will be listed under Module Integration while editing a site page.&lt;br /&gt;
&lt;br /&gt;
Selecting the module will populate MS.module.data with the contents of the module. Calling MS.module.data on the page will inject the contents onto the page.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;head&amp;gt;&lt;br /&gt;
      &amp;lt;title&amp;gt;Module Test&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
      &amp;lt;?cs var:MS.module.data ?&amp;gt;&lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessing Module Pages ==&lt;br /&gt;
&lt;br /&gt;
Since modules are injected into a parent page, pages within a module need to be called with the '''mpage''' URL parameter.&lt;br /&gt;
&lt;br /&gt;
For example, if your parent page is &amp;quot;auth&amp;quot; and your module page is &amp;quot;login&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
  http://example.com/?page=auth&amp;amp;mpage=login&lt;br /&gt;
&lt;br /&gt;
== Module Only ==&lt;br /&gt;
&lt;br /&gt;
Some modules contain pages that serve up JSON or XML content and should ignore the included header and footer. This can be done by adding the URL parameter &amp;quot;output=moduleonly&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
   http://example.com/?page=auth&amp;amp;mpage=users.json&amp;amp;output=moduleonly&lt;br /&gt;
&lt;br /&gt;
= Creating a Module =&lt;br /&gt;
&lt;br /&gt;
== Common ==&lt;br /&gt;
&lt;br /&gt;
=== Default Page ===&lt;br /&gt;
&lt;br /&gt;
This is the default page that loads when no mpage is set.&lt;br /&gt;
&lt;br /&gt;
=== Autoload ===&lt;br /&gt;
&lt;br /&gt;
Autoloaded modules will be included on every page of the site. This is helpful for caching and including JS and CSS files throughout the site.&lt;br /&gt;
&lt;br /&gt;
=== Key / Value Pairs ===&lt;br /&gt;
&lt;br /&gt;
Key / Value pairs are module-wide variables that can easily be changed. These are often used as settings for the module.&lt;br /&gt;
&lt;br /&gt;
For example, if we have a setting called &amp;quot;show_stats&amp;quot; and want to see if its set to &amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?cs if:'&amp;lt;!show_stats!&amp;gt;' == 'yes' ?&amp;gt;&lt;br /&gt;
    Showing Stats&lt;br /&gt;
  &amp;lt;?cs /if ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Initialization ===&lt;br /&gt;
&lt;br /&gt;
Initialization is the first part of the module that is loaded. If there are any required modules to be loaded before this module you will need to include them here.&lt;br /&gt;
&lt;br /&gt;
If you're using the stack module, all CSS/JS stack includes would be called here&lt;br /&gt;
&lt;br /&gt;
== Javascript Controller ==&lt;br /&gt;
&lt;br /&gt;
Each module that requires javascript should have its own controller. The controller is made up of classes that control different parts of the module. This allows us to only enable functions and listeners that are required on the page, instead of having them always active. This also ensures that when concatenating the javascript file that function and listeners wont overlap.&lt;br /&gt;
&lt;br /&gt;
== Listing Content ==&lt;br /&gt;
&lt;br /&gt;
Listing content relies on the context of module page, not the parent page. For example if the parent page has a context of &amp;quot;My Videos&amp;quot; but the module page doesn't have a context nothing will be listed on the page.&lt;br /&gt;
&lt;br /&gt;
The HDF keys/values will still remain the same, so they can be accessed the same way as a regular page.&lt;br /&gt;
&lt;br /&gt;
Example: Listing the titles of the context Content: All&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?cs each:item = MS.content.items ?&amp;gt;&lt;br /&gt;
    &amp;lt;?cs var:item.title ?&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  &amp;lt;?cs /each ?&amp;gt;&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Modules</id>
		<title>Site:Frontend:Modules</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Modules"/>
				<updated>2012-06-18T17:42:19Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Listing Content */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Modules contain stand-alone code, files, pages, and page includes required to perform the tasks of the module.&lt;br /&gt;
&lt;br /&gt;
= Module Integration =&lt;br /&gt;
&lt;br /&gt;
== Adding a Module to a Page ==&lt;br /&gt;
After a module is created or imported, it will be listed under Module Integration while editing a site page.&lt;br /&gt;
&lt;br /&gt;
Selecting the module will populate MS.module.data with the contents of the module. Calling MS.module.data on the page will inject the contents onto the page.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;head&amp;gt;&lt;br /&gt;
      &amp;lt;title&amp;gt;Module Test&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
      &amp;lt;?cs var:MS.module.data ?&amp;gt;&lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessing Module Pages ==&lt;br /&gt;
&lt;br /&gt;
Since modules are injected into a parent page, pages within a module need to be called with the '''mpage''' URL parameter.&lt;br /&gt;
&lt;br /&gt;
For example, if your parent page is &amp;quot;auth&amp;quot; and your module page is &amp;quot;login&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
  http://example.com/?page=auth&amp;amp;mpage=login&lt;br /&gt;
&lt;br /&gt;
== Module Only ==&lt;br /&gt;
&lt;br /&gt;
Some modules contain pages that serve up JSON or XML content and should ignore the included header and footer. This can be done by adding the URL parameter &amp;quot;output=moduleonly&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
   http://example.com/?page=auth&amp;amp;mpage=users.json&amp;amp;output=moduleonly&lt;br /&gt;
&lt;br /&gt;
= Creating a Module =&lt;br /&gt;
&lt;br /&gt;
== Common ==&lt;br /&gt;
&lt;br /&gt;
=== Default Page ===&lt;br /&gt;
&lt;br /&gt;
This is the default page that loads when no mpage is set.&lt;br /&gt;
&lt;br /&gt;
=== Autoload ===&lt;br /&gt;
&lt;br /&gt;
Autoloaded modules will be included on every page of the site. This is helpful for caching and including JS and CSS files throughout the site.&lt;br /&gt;
&lt;br /&gt;
=== Key / Value Pairs ===&lt;br /&gt;
&lt;br /&gt;
Key / Value pairs are module-wide variables that can easily be changed. These are often used as settings for the module.&lt;br /&gt;
&lt;br /&gt;
For example, if we have a setting called &amp;quot;show_stats&amp;quot; and want to see if its set to &amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?cs if:'&amp;lt;!show_stats!&amp;gt;' == 'yes' ?&amp;gt;&lt;br /&gt;
    Showing Stats&lt;br /&gt;
  &amp;lt;?cs /if ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Initialization ===&lt;br /&gt;
&lt;br /&gt;
Initialization is the first part of the module that is loaded. If there are any required modules to be loaded before this module you will need to include them here.&lt;br /&gt;
&lt;br /&gt;
If you're using the stack module, all CSS/JS stack includes would be called here&lt;br /&gt;
&lt;br /&gt;
== Javascript Controller ==&lt;br /&gt;
&lt;br /&gt;
Each module that requires javascript should have its own controller. The controller is made up of classes that control different parts of the module. This allows us to only enable functions and listeners that are required on the page, instead of having them always active. This also ensures that when concatenating the javascript file that function and listeners wont overlap.&lt;br /&gt;
&lt;br /&gt;
== Listing Content ==&lt;br /&gt;
&lt;br /&gt;
Listing content relies on the context of module page, not the parent page. For example if the parent page has a context of &amp;quot;My Videos&amp;quot; but the module page doesn't have a context nothing will be listed on the page.&lt;br /&gt;
&lt;br /&gt;
The HDF keys/values will still remain the same, so they can be accessed the same way as a regular page.&lt;br /&gt;
&lt;br /&gt;
Example: Listing the titles of the context Content: All&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?cs &lt;br /&gt;
  each:item = MS.content.items ?&amp;gt;&amp;lt;?cs&lt;br /&gt;
    var:item.title ?&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;?cs&lt;br /&gt;
  /each ?&amp;gt;&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Modules</id>
		<title>Site:Frontend:Modules</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Modules"/>
				<updated>2012-06-18T17:42:02Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Listing Content */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Modules contain stand-alone code, files, pages, and page includes required to perform the tasks of the module.&lt;br /&gt;
&lt;br /&gt;
= Module Integration =&lt;br /&gt;
&lt;br /&gt;
== Adding a Module to a Page ==&lt;br /&gt;
After a module is created or imported, it will be listed under Module Integration while editing a site page.&lt;br /&gt;
&lt;br /&gt;
Selecting the module will populate MS.module.data with the contents of the module. Calling MS.module.data on the page will inject the contents onto the page.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;head&amp;gt;&lt;br /&gt;
      &amp;lt;title&amp;gt;Module Test&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
      &amp;lt;?cs var:MS.module.data ?&amp;gt;&lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessing Module Pages ==&lt;br /&gt;
&lt;br /&gt;
Since modules are injected into a parent page, pages within a module need to be called with the '''mpage''' URL parameter.&lt;br /&gt;
&lt;br /&gt;
For example, if your parent page is &amp;quot;auth&amp;quot; and your module page is &amp;quot;login&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
  http://example.com/?page=auth&amp;amp;mpage=login&lt;br /&gt;
&lt;br /&gt;
== Module Only ==&lt;br /&gt;
&lt;br /&gt;
Some modules contain pages that serve up JSON or XML content and should ignore the included header and footer. This can be done by adding the URL parameter &amp;quot;output=moduleonly&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
   http://example.com/?page=auth&amp;amp;mpage=users.json&amp;amp;output=moduleonly&lt;br /&gt;
&lt;br /&gt;
= Creating a Module =&lt;br /&gt;
&lt;br /&gt;
== Common ==&lt;br /&gt;
&lt;br /&gt;
=== Default Page ===&lt;br /&gt;
&lt;br /&gt;
This is the default page that loads when no mpage is set.&lt;br /&gt;
&lt;br /&gt;
=== Autoload ===&lt;br /&gt;
&lt;br /&gt;
Autoloaded modules will be included on every page of the site. This is helpful for caching and including JS and CSS files throughout the site.&lt;br /&gt;
&lt;br /&gt;
=== Key / Value Pairs ===&lt;br /&gt;
&lt;br /&gt;
Key / Value pairs are module-wide variables that can easily be changed. These are often used as settings for the module.&lt;br /&gt;
&lt;br /&gt;
For example, if we have a setting called &amp;quot;show_stats&amp;quot; and want to see if its set to &amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?cs if:'&amp;lt;!show_stats!&amp;gt;' == 'yes' ?&amp;gt;&lt;br /&gt;
    Showing Stats&lt;br /&gt;
  &amp;lt;?cs /if ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Initialization ===&lt;br /&gt;
&lt;br /&gt;
Initialization is the first part of the module that is loaded. If there are any required modules to be loaded before this module you will need to include them here.&lt;br /&gt;
&lt;br /&gt;
If you're using the stack module, all CSS/JS stack includes would be called here&lt;br /&gt;
&lt;br /&gt;
== Javascript Controller ==&lt;br /&gt;
&lt;br /&gt;
Each module that requires javascript should have its own controller. The controller is made up of classes that control different parts of the module. This allows us to only enable functions and listeners that are required on the page, instead of having them always active. This also ensures that when concatenating the javascript file that function and listeners wont overlap.&lt;br /&gt;
&lt;br /&gt;
== Listing Content ==&lt;br /&gt;
&lt;br /&gt;
Listing content relies on the context of module page, not the parent page. For example if the parent page has a context of &amp;quot;My Videos&amp;quot; but the module page doesn't have a context nothing will be listed on the page.&lt;br /&gt;
&lt;br /&gt;
The HDF keys/values will still remain the same, so they can be accessed the same way as a regular page.&lt;br /&gt;
&lt;br /&gt;
Example: Listing the titles of the context Content: All&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?cs &lt;br /&gt;
  each:item = MS.content.items ?&amp;gt;&amp;lt;?cs&lt;br /&gt;
    var:item.title ?&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;?cs&lt;br /&gt;
  /each ?&amp;gt;&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Modules</id>
		<title>Site:Frontend:Modules</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Modules"/>
				<updated>2012-06-18T17:38:34Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Modules contain stand-alone code, files, pages, and page includes required to perform the tasks of the module.&lt;br /&gt;
&lt;br /&gt;
= Module Integration =&lt;br /&gt;
&lt;br /&gt;
== Adding a Module to a Page ==&lt;br /&gt;
After a module is created or imported, it will be listed under Module Integration while editing a site page.&lt;br /&gt;
&lt;br /&gt;
Selecting the module will populate MS.module.data with the contents of the module. Calling MS.module.data on the page will inject the contents onto the page.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;head&amp;gt;&lt;br /&gt;
      &amp;lt;title&amp;gt;Module Test&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
      &amp;lt;?cs var:MS.module.data ?&amp;gt;&lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessing Module Pages ==&lt;br /&gt;
&lt;br /&gt;
Since modules are injected into a parent page, pages within a module need to be called with the '''mpage''' URL parameter.&lt;br /&gt;
&lt;br /&gt;
For example, if your parent page is &amp;quot;auth&amp;quot; and your module page is &amp;quot;login&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
  http://example.com/?page=auth&amp;amp;mpage=login&lt;br /&gt;
&lt;br /&gt;
== Module Only ==&lt;br /&gt;
&lt;br /&gt;
Some modules contain pages that serve up JSON or XML content and should ignore the included header and footer. This can be done by adding the URL parameter &amp;quot;output=moduleonly&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
   http://example.com/?page=auth&amp;amp;mpage=users.json&amp;amp;output=moduleonly&lt;br /&gt;
&lt;br /&gt;
= Creating a Module =&lt;br /&gt;
&lt;br /&gt;
== Common ==&lt;br /&gt;
&lt;br /&gt;
=== Default Page ===&lt;br /&gt;
&lt;br /&gt;
This is the default page that loads when no mpage is set.&lt;br /&gt;
&lt;br /&gt;
=== Autoload ===&lt;br /&gt;
&lt;br /&gt;
Autoloaded modules will be included on every page of the site. This is helpful for caching and including JS and CSS files throughout the site.&lt;br /&gt;
&lt;br /&gt;
=== Key / Value Pairs ===&lt;br /&gt;
&lt;br /&gt;
Key / Value pairs are module-wide variables that can easily be changed. These are often used as settings for the module.&lt;br /&gt;
&lt;br /&gt;
For example, if we have a setting called &amp;quot;show_stats&amp;quot; and want to see if its set to &amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?cs if:'&amp;lt;!show_stats!&amp;gt;' == 'yes' ?&amp;gt;&lt;br /&gt;
    Showing Stats&lt;br /&gt;
  &amp;lt;?cs /if ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Initialization ===&lt;br /&gt;
&lt;br /&gt;
Initialization is the first part of the module that is loaded. If there are any required modules to be loaded before this module you will need to include them here.&lt;br /&gt;
&lt;br /&gt;
If you're using the stack module, all CSS/JS stack includes would be called here&lt;br /&gt;
&lt;br /&gt;
== Javascript Controller ==&lt;br /&gt;
&lt;br /&gt;
Each module that requires javascript should have its own controller. The controller is made up of classes that control different parts of the module. This allows us to only enable functions and listeners that are required on the page, instead of having them always active. This also ensures that when concatenating the javascript file that function and listeners wont overlap.&lt;br /&gt;
&lt;br /&gt;
== Listing Content ==&lt;br /&gt;
&lt;br /&gt;
Listing content relies on the context of module page, not the parent page.&lt;br /&gt;
&lt;br /&gt;
For example if the parent page has a context of &amp;quot;My Videos&amp;quot; but the module page doesn't have a context nothing will be listed on the page.&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Forms</id>
		<title>Site:Frontend:Forms</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Forms"/>
				<updated>2012-06-18T17:32:27Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Basic Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
= Parameters =&lt;br /&gt;
&lt;br /&gt;
== Mode ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter sets the response type.&lt;br /&gt;
&lt;br /&gt;
Avaliable modes: xml, json&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;mode&amp;quot; value=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Continue ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a successful form submit.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-successful-page&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Retry ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a unsuccessful form submit. This page will also contain the MS.error HDF value with the error/reason why the form wasn't successful.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-failed-page&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ajax Forms =&lt;br /&gt;
&lt;br /&gt;
The jQuery javascript library offers a simple function to handle your forms using Ajax. This allows you to send form data and get the response from the server without having to reload the page.&lt;br /&gt;
&lt;br /&gt;
== Basic Script ==&lt;br /&gt;
&lt;br /&gt;
The following snippet will listen for a form with the ID of &amp;quot;someFormId&amp;quot; to be submitted.&lt;br /&gt;
&lt;br /&gt;
  $('#someFormId').submit(function(e) {&lt;br /&gt;
    e.preventDefault();&lt;br /&gt;
    var form = $(this):&lt;br /&gt;
            &lt;br /&gt;
    if(form.data('disabled') == 'true') return;&lt;br /&gt;
    form.data('disabled', 'true');&lt;br /&gt;
         &lt;br /&gt;
    $.ajax({&lt;br /&gt;
      type: form.attr('method'),&lt;br /&gt;
      url:  form.attr('action'),&lt;br /&gt;
      data: form.serialize(),&lt;br /&gt;
      success: function(data) {&lt;br /&gt;
        if('ok' == $('status', data).text()) {&lt;br /&gt;
          // Form has returned successfully&lt;br /&gt;
        } else {&lt;br /&gt;
          // Form has returned with an error&lt;br /&gt;
        }&lt;br /&gt;
        form.removeData('disabled');&lt;br /&gt;
      },&lt;br /&gt;
      error: function() {&lt;br /&gt;
        // Could not get data back from the post&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
This script should be placed in the appropriate controller and instantiated only when necessary.&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Forms</id>
		<title>Site:Frontend:Forms</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Forms"/>
				<updated>2012-06-18T17:31:34Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Basic Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
= Parameters =&lt;br /&gt;
&lt;br /&gt;
== Mode ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter sets the response type.&lt;br /&gt;
&lt;br /&gt;
Avaliable modes: xml, json&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;mode&amp;quot; value=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Continue ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a successful form submit.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-successful-page&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Retry ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a unsuccessful form submit. This page will also contain the MS.error HDF value with the error/reason why the form wasn't successful.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-failed-page&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ajax Forms =&lt;br /&gt;
&lt;br /&gt;
The jQuery javascript library offers a simple function to handle your forms using Ajax. This allows you to send form data and get the response from the server without having to reload the page.&lt;br /&gt;
&lt;br /&gt;
== Basic Script ==&lt;br /&gt;
&lt;br /&gt;
The following snippet will listen for a form with the ID of &amp;quot;someFormId&amp;quot; to be submitted.&lt;br /&gt;
&lt;br /&gt;
      $('#someFormId').submit(function(e) {&lt;br /&gt;
        e.preventDefault();&lt;br /&gt;
        var form = $(this):&lt;br /&gt;
            &lt;br /&gt;
        if(form.data('disabled') == 'true') return;&lt;br /&gt;
        form.data('disabled', 'true');&lt;br /&gt;
         &lt;br /&gt;
        $.ajax({&lt;br /&gt;
          type: form.attr('method'),&lt;br /&gt;
          url:  form.attr('action'),&lt;br /&gt;
          data: form.serialize(),&lt;br /&gt;
          success: function(data) {&lt;br /&gt;
            if('ok' == $('status', data).text()) {&lt;br /&gt;
              // Form has returned successfully&lt;br /&gt;
            } else {&lt;br /&gt;
              // Form has returned with an error&lt;br /&gt;
            }&lt;br /&gt;
            form.removeData('disabled');&lt;br /&gt;
          },&lt;br /&gt;
          error: function() {&lt;br /&gt;
            // Could not get data back from the post&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
This script should be placed in the appropriate controller and instantiated only when necessary.&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Forms</id>
		<title>Site:Frontend:Forms</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Forms"/>
				<updated>2012-06-18T17:31:06Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Basic Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
= Parameters =&lt;br /&gt;
&lt;br /&gt;
== Mode ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter sets the response type.&lt;br /&gt;
&lt;br /&gt;
Avaliable modes: xml, json&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;mode&amp;quot; value=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Continue ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a successful form submit.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-successful-page&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Retry ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a unsuccessful form submit. This page will also contain the MS.error HDF value with the error/reason why the form wasn't successful.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-failed-page&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ajax Forms =&lt;br /&gt;
&lt;br /&gt;
The jQuery javascript library offers a simple function to handle your forms using Ajax. This allows you to send form data and get the response from the server without having to reload the page.&lt;br /&gt;
&lt;br /&gt;
== Basic Script ==&lt;br /&gt;
&lt;br /&gt;
The following snippet will listen for a form with the ID of &amp;quot;someFormId&amp;quot; to be submitted.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    $(document).ready(function() {&lt;br /&gt;
      $('#someFormId').submit(function(e) {&lt;br /&gt;
        e.preventDefault();&lt;br /&gt;
        var form = $(this):&lt;br /&gt;
            &lt;br /&gt;
        if(form.data('disabled') == 'true') return;&lt;br /&gt;
        form.data('disabled', 'true');&lt;br /&gt;
         &lt;br /&gt;
        $.ajax({&lt;br /&gt;
          type: form.attr('method'),&lt;br /&gt;
          url:  form.attr('action'),&lt;br /&gt;
          data: form.serialize(),&lt;br /&gt;
          success: function(data) {&lt;br /&gt;
            if('ok' == $('status', data).text()) {&lt;br /&gt;
              // Form has returned successfully&lt;br /&gt;
            } else {&lt;br /&gt;
              // Form has returned with an error&lt;br /&gt;
            }&lt;br /&gt;
            form.removeData('disabled');&lt;br /&gt;
          },&lt;br /&gt;
          error: function() {&lt;br /&gt;
            // Could not get data back from the post&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This script should be placed in the appropriate controller and instantiated only when necessary.&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:BestPractices</id>
		<title>Site:Frontend:BestPractices</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:BestPractices"/>
				<updated>2012-06-18T17:29:00Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: Created page with &amp;quot;= Readability and Whitespace =  Keeping one line of clearsilver per line ends up being hard to read, as well as added markup since each line of clearsilver turns into a blank lin...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Readability and Whitespace =&lt;br /&gt;
&lt;br /&gt;
Keeping one line of clearsilver per line ends up being hard to read, as well as added markup since each line of clearsilver turns into a blank line in the finalized document. To keep things neat we wrap the beginning clearsilver line with the line above it.&lt;br /&gt;
&lt;br /&gt;
This&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&amp;lt;h1&amp;gt;News&amp;lt;/h1&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  &amp;lt;?cs if:News ?&amp;gt;&lt;br /&gt;
    &amp;lt;?cs call:showNews() ?&amp;gt;&lt;br /&gt;
  &amp;lt;?cs /if ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Would turn into&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&amp;lt;h1&amp;gt;News&amp;lt;/h1&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;?cs&lt;br /&gt;
  if:News ?&amp;gt;&amp;lt;?cs&lt;br /&gt;
    call:showNews() ?&amp;gt;&amp;lt;?cs&lt;br /&gt;
  /if ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This keeps the white space away and you can easily scan the beginning of each line to clearly see what is happening in the code.&lt;br /&gt;
&lt;br /&gt;
= Site and Module Controllers =&lt;br /&gt;
&lt;br /&gt;
Each site should have a siteController.js file containing all the javascript required to run the site. Each stand-alone module will also have its own controller managing functions specific to that module.&lt;br /&gt;
&lt;br /&gt;
The controller is made up of classes that control different parts of the site/module. This allows us to only enable functions and listeners that are required on the page, instead of having them always active. This also ensures that when concatenating the javascript file that function and listeners wont overlap.&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend</id>
		<title>Site:Frontend</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend"/>
				<updated>2012-06-18T17:28:26Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Main Sections */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Below you will find links to each particular component of the Frontend Site API. Detailed API information is available by clicking on each link.&lt;br /&gt;
&lt;br /&gt;
=== Main Sections ===&lt;br /&gt;
&lt;br /&gt;
; [[Site:Frontend:Forms|Forms]]&lt;br /&gt;
; [[Site:Frontend:Macros|Macros]]&lt;br /&gt;
; [[Site:Frontend:Modules|Modules]]&lt;br /&gt;
; [[Site:Frontend:BestPractices|Best Practices]]&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:BestPrices</id>
		<title>Site:Frontend:BestPrices</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:BestPrices"/>
				<updated>2012-06-18T17:27:52Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Readability and Whitespace */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Readability and Whitespace =&lt;br /&gt;
&lt;br /&gt;
Keeping one line of clearsilver per line ends up being hard to read, as well as added markup since each line of clearsilver turns into a blank line in the finalized document. To keep things neat we wrap the beginning clearsilver line with the line above it.&lt;br /&gt;
&lt;br /&gt;
This&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&amp;lt;h1&amp;gt;News&amp;lt;/h1&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  &amp;lt;?cs if:News ?&amp;gt;&lt;br /&gt;
    &amp;lt;?cs call:showNews() ?&amp;gt;&lt;br /&gt;
  &amp;lt;?cs /if ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Would turn into&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&amp;lt;h1&amp;gt;News&amp;lt;/h1&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;?cs&lt;br /&gt;
  if:News ?&amp;gt;&amp;lt;?cs&lt;br /&gt;
    call:showNews() ?&amp;gt;&amp;lt;?cs&lt;br /&gt;
  /if ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This keeps the white space away and you can easily scan the beginning of each line to clearly see what is happening in the code.&lt;br /&gt;
&lt;br /&gt;
= Site and Module Controllers =&lt;br /&gt;
&lt;br /&gt;
Each site should have a siteController.js file containing all the javascript required to run the site. Each stand-alone module will also have its own controller managing functions specific to that module.&lt;br /&gt;
&lt;br /&gt;
The controller is made up of classes that control different parts of the site/module. This allows us to only enable functions and listeners that are required on the page, instead of having them always active. This also ensures that when concatenating the javascript file that function and listeners wont overlap.&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:BestPrices</id>
		<title>Site:Frontend:BestPrices</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:BestPrices"/>
				<updated>2012-06-18T17:27:06Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: Created page with &amp;quot;= Readability and Whitespace =  Keeping one line of clearsilver per line ends up being hard to read, as well as added markup since each line of clearsilver turns into a blank lin...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Readability and Whitespace =&lt;br /&gt;
&lt;br /&gt;
Keeping one line of clearsilver per line ends up being hard to read, as well as added markup since each line of clearsilver turns into a blank line in the finalized document. To keep things neat we wrap the beginning clearsilver line with the line above it.&lt;br /&gt;
&lt;br /&gt;
This&lt;br /&gt;
  &amp;lt;h1&amp;gt;News&amp;lt;/h1&amp;gt;&lt;br /&gt;
  &amp;lt;?cs if:News ?&amp;gt;&lt;br /&gt;
    &amp;lt;?cs call:showNews() ?&amp;gt;&lt;br /&gt;
  &amp;lt;?cs /if ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Would turn into&lt;br /&gt;
  &amp;lt;h1&amp;gt;News&amp;lt;/h1&amp;gt;&amp;lt;?cs&lt;br /&gt;
  if:News ?&amp;gt;&amp;lt;?cs&lt;br /&gt;
    call:showNews() ?&amp;gt;&amp;lt;?cs&lt;br /&gt;
  /if ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This keeps the white space away and you can easily scan the beginning of each line to clearly see what is happening in the code.&lt;br /&gt;
&lt;br /&gt;
= Site and Module Controllers =&lt;br /&gt;
&lt;br /&gt;
Each site should have a siteController.js file containing all the javascript required to run the site. Each stand-alone module will also have its own controller managing functions specific to that module.&lt;br /&gt;
&lt;br /&gt;
The controller is made up of classes that control different parts of the site/module. This allows us to only enable functions and listeners that are required on the page, instead of having them always active. This also ensures that when concatenating the javascript file that function and listeners wont overlap.&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Modules</id>
		<title>Site:Frontend:Modules</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Modules"/>
				<updated>2012-06-18T17:13:38Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Creating a Module */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Modules contain stand-alone code, files, pages, and page includes required to perform the tasks of the module.&lt;br /&gt;
&lt;br /&gt;
= Module Integration =&lt;br /&gt;
&lt;br /&gt;
== Adding a Module to a Page ==&lt;br /&gt;
After a module is created or imported, it will be listed under Module Integration while editing a site page.&lt;br /&gt;
&lt;br /&gt;
Selecting the module will populate MS.module.data with the contents of the module. Calling MS.module.data on the page will inject the contents onto the page.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;head&amp;gt;&lt;br /&gt;
      &amp;lt;title&amp;gt;Module Test&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
      &amp;lt;?cs var:MS.module.data ?&amp;gt;&lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessing Module Pages ==&lt;br /&gt;
&lt;br /&gt;
Since modules are injected into a parent page, pages within a module need to be called with the '''mpage''' URL parameter.&lt;br /&gt;
&lt;br /&gt;
For example, if your parent page is &amp;quot;auth&amp;quot; and your module page is &amp;quot;login&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
  http://example.com/?page=auth&amp;amp;mpage=login&lt;br /&gt;
&lt;br /&gt;
== Module Only ==&lt;br /&gt;
&lt;br /&gt;
Some modules contain pages that serve up JSON or XML content and should ignore the included header and footer. This can be done by adding the URL parameter &amp;quot;output=moduleonly&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
   http://example.com/?page=auth&amp;amp;mpage=users.json&amp;amp;output=moduleonly&lt;br /&gt;
&lt;br /&gt;
= Creating a Module =&lt;br /&gt;
&lt;br /&gt;
== Common ==&lt;br /&gt;
&lt;br /&gt;
=== Default Page ===&lt;br /&gt;
&lt;br /&gt;
This is the default page that loads when no mpage is set.&lt;br /&gt;
&lt;br /&gt;
=== Autoload ===&lt;br /&gt;
&lt;br /&gt;
Autoloaded modules will be included on every page of the site. This is helpful for caching and including JS and CSS files throughout the site.&lt;br /&gt;
&lt;br /&gt;
=== Key / Value Pairs ===&lt;br /&gt;
&lt;br /&gt;
Key / Value pairs are module-wide variables that can easily be changed. These are often used as settings for the module.&lt;br /&gt;
&lt;br /&gt;
For example, if we have a setting called &amp;quot;show_stats&amp;quot; and want to see if its set to &amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?cs if:'&amp;lt;!show_stats!&amp;gt;' == 'yes' ?&amp;gt;&lt;br /&gt;
    Showing Stats&lt;br /&gt;
  &amp;lt;?cs /if ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Initialization ===&lt;br /&gt;
&lt;br /&gt;
Initialization is the first part of the module that is loaded. If there are any required modules to be loaded before this module you will need to include them here.&lt;br /&gt;
&lt;br /&gt;
If you're using the stack module, all CSS/JS stack includes would be called here&lt;br /&gt;
&lt;br /&gt;
== Javascript Controller ==&lt;br /&gt;
&lt;br /&gt;
Each module that requires javascript should have its own controller. The controller is made up of classes that control different parts of the module. This allows us to only enable functions and listeners that are required on the page, instead of having them always active. This also ensures that when concatenating the javascript file that function and listeners wont overlap.&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend</id>
		<title>Site:Frontend</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend"/>
				<updated>2012-06-15T23:19:37Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Main Sections */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Below you will find links to each particular component of the Frontend Site API. Detailed API information is available by clicking on each link.&lt;br /&gt;
&lt;br /&gt;
=== Main Sections ===&lt;br /&gt;
&lt;br /&gt;
; [[Site:Frontend:Forms|Forms]]&lt;br /&gt;
; [[Site:Frontend:Macros|Macros]]&lt;br /&gt;
; [[Site:Frontend:Modules|Modules]]&lt;br /&gt;
; [[Site:Frontend:BestPrices|Best Practices]]&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Forms</id>
		<title>Site:Frontend:Forms</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Forms"/>
				<updated>2012-06-15T23:18:19Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Ajax Forms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
= Parameters =&lt;br /&gt;
&lt;br /&gt;
== Mode ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter sets the response type.&lt;br /&gt;
&lt;br /&gt;
Avaliable modes: xml, json&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;mode&amp;quot; value=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Continue ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a successful form submit.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-successful-page&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Retry ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a unsuccessful form submit. This page will also contain the MS.error HDF value with the error/reason why the form wasn't successful.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-failed-page&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ajax Forms =&lt;br /&gt;
&lt;br /&gt;
The jQuery javascript library offers a simple function to handle your forms using Ajax. This allows you to send form data and get the response from the server without having to reload the page.&lt;br /&gt;
&lt;br /&gt;
== Basic Script ==&lt;br /&gt;
&lt;br /&gt;
The following snippet will listen for a form with the ID of &amp;quot;someFormId&amp;quot; to be submitted.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    $(document).ready(function() {&lt;br /&gt;
      $('#someFormId').submit(function(e) {&lt;br /&gt;
        e.preventDefault();&lt;br /&gt;
        var form = $(this):&lt;br /&gt;
            &lt;br /&gt;
        if(form.data('disabled') == 'true') return;&lt;br /&gt;
        form.data('disabled', 'true');&lt;br /&gt;
         &lt;br /&gt;
        $.ajax({&lt;br /&gt;
          type: form.attr('method'),&lt;br /&gt;
          url:  form.attr('action'),&lt;br /&gt;
          data: form.serialize(),&lt;br /&gt;
          success: function(data) {&lt;br /&gt;
            if('ok' == $('status', data).text()) {&lt;br /&gt;
              // Form has returned successfully&lt;br /&gt;
            } else {&lt;br /&gt;
              // Form has returned with an error&lt;br /&gt;
            }&lt;br /&gt;
            form.removeData('disabled');&lt;br /&gt;
          },&lt;br /&gt;
          error: function() {&lt;br /&gt;
            // Could not get data back from the post&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Forms</id>
		<title>Site:Frontend:Forms</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Forms"/>
				<updated>2012-06-15T23:16:00Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Ajax Forms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
= Parameters =&lt;br /&gt;
&lt;br /&gt;
== Mode ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter sets the response type.&lt;br /&gt;
&lt;br /&gt;
Avaliable modes: xml, json&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;mode&amp;quot; value=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Continue ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a successful form submit.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-successful-page&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Retry ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a unsuccessful form submit. This page will also contain the MS.error HDF value with the error/reason why the form wasn't successful.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-failed-page&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ajax Forms =&lt;br /&gt;
&lt;br /&gt;
The jQuery javascript library offers a simple function to handle your forms using Ajax. This allows you to send form data and get the response from the server without having to reload the page.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    $(document).ready(function() {&lt;br /&gt;
      $('#someFormId').submit(function(e) {&lt;br /&gt;
        e.preventDefault();&lt;br /&gt;
        var form = $(this):&lt;br /&gt;
            &lt;br /&gt;
        if(form.data('disabled') == 'true') return;&lt;br /&gt;
        form.data('disabled', 'true');&lt;br /&gt;
         &lt;br /&gt;
        $.ajax({&lt;br /&gt;
          type: form.attr('method'),&lt;br /&gt;
          url:  form.attr('action'),&lt;br /&gt;
          data: form.serialize(),&lt;br /&gt;
          success: function(data) {&lt;br /&gt;
            if('ok' == $('status', data).text()) {&lt;br /&gt;
              // Form has returned successfully&lt;br /&gt;
            } else {&lt;br /&gt;
              // Form has returned with an error&lt;br /&gt;
            }&lt;br /&gt;
            form.removeData('disabled');&lt;br /&gt;
          },&lt;br /&gt;
          error: function() {&lt;br /&gt;
            // Could not get data back from the post&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Forms</id>
		<title>Site:Frontend:Forms</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Forms"/>
				<updated>2012-06-15T23:15:40Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* AJAX Forms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
= Parameters =&lt;br /&gt;
&lt;br /&gt;
== Mode ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter sets the response type.&lt;br /&gt;
&lt;br /&gt;
Avaliable modes: xml, json&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;mode&amp;quot; value=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Continue ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a successful form submit.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-successful-page&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Retry ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a unsuccessful form submit. This page will also contain the MS.error HDF value with the error/reason why the form wasn't successful.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-failed-page&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ajax Forms =&lt;br /&gt;
&lt;br /&gt;
The jQuery javascript library offers a simple function to handle your forms using Ajax. This allows you to send form data and get the response from the server without having to reload the page.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    $(document).ready(function() {&lt;br /&gt;
      $('#someFormId').submit(function(e) {&lt;br /&gt;
        e.preventDefault();&lt;br /&gt;
        var form = $(this):&lt;br /&gt;
&lt;br /&gt;
        if(form.data('disabled') == 'true') return;&lt;br /&gt;
        form.data('disabled', 'true');&lt;br /&gt;
&lt;br /&gt;
        $.ajax({&lt;br /&gt;
          type: form.attr('method'),&lt;br /&gt;
          url:  form.attr('action'),&lt;br /&gt;
          data: form.serialize(),&lt;br /&gt;
          success: function(data) {&lt;br /&gt;
            if('ok' == $('status', data).text()) {&lt;br /&gt;
              // Form has returned successfully&lt;br /&gt;
            } else {&lt;br /&gt;
              // Form has returned with an error&lt;br /&gt;
            }&lt;br /&gt;
            form.removeData('disabled');&lt;br /&gt;
          },&lt;br /&gt;
          error: function() {&lt;br /&gt;
            // Could not get data back from the post&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Forms</id>
		<title>Site:Frontend:Forms</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Forms"/>
				<updated>2012-06-15T23:04:54Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
= Parameters =&lt;br /&gt;
&lt;br /&gt;
== Mode ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter sets the response type.&lt;br /&gt;
&lt;br /&gt;
Avaliable modes: xml, json&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;mode&amp;quot; value=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Continue ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a successful form submit.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-successful-page&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Retry ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a unsuccessful form submit. This page will also contain the MS.error HDF value with the error/reason why the form wasn't successful.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-failed-page&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= AJAX Forms =&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Forms</id>
		<title>Site:Frontend:Forms</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Forms"/>
				<updated>2012-06-15T21:04:24Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
= Parameters =&lt;br /&gt;
&lt;br /&gt;
== Mode ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter sets the response type.&lt;br /&gt;
&lt;br /&gt;
Avaliable modes: xml, json&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;mode&amp;quot; value=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Continue ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a successful form submit.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-successful-page&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Retry ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a unsuccessful form submit. This page will also contain the MS.error HDF value with the error/reason why the form wasn't successful.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-failed-page&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Forms</id>
		<title>Site:Frontend:Forms</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Forms"/>
				<updated>2012-06-15T21:03:46Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
= Parameters =&lt;br /&gt;
&lt;br /&gt;
== Action ==&lt;br /&gt;
&lt;br /&gt;
== Verb ==&lt;br /&gt;
&lt;br /&gt;
== Mode ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter sets the response type.&lt;br /&gt;
&lt;br /&gt;
Avaliable modes: xml, json&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;mode&amp;quot; value=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Continue ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a successful form submit.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-successful-page&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Retry ==&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a unsuccessful form submit. This page will also contain the MS.error HDF value with the error/reason why the form wasn't successful.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-failed-page&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Modules</id>
		<title>Site:Frontend:Modules</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Modules"/>
				<updated>2012-06-15T21:00:31Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Modules contain stand-alone code, files, pages, and page includes required to perform the tasks of the module.&lt;br /&gt;
&lt;br /&gt;
= Module Integration =&lt;br /&gt;
&lt;br /&gt;
== Adding a Module to a Page ==&lt;br /&gt;
After a module is created or imported, it will be listed under Module Integration while editing a site page.&lt;br /&gt;
&lt;br /&gt;
Selecting the module will populate MS.module.data with the contents of the module. Calling MS.module.data on the page will inject the contents onto the page.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;head&amp;gt;&lt;br /&gt;
      &amp;lt;title&amp;gt;Module Test&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
      &amp;lt;?cs var:MS.module.data ?&amp;gt;&lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessing Module Pages ==&lt;br /&gt;
&lt;br /&gt;
Since modules are injected into a parent page, pages within a module need to be called with the '''mpage''' URL parameter.&lt;br /&gt;
&lt;br /&gt;
For example, if your parent page is &amp;quot;auth&amp;quot; and your module page is &amp;quot;login&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
  http://example.com/?page=auth&amp;amp;mpage=login&lt;br /&gt;
&lt;br /&gt;
== Module Only ==&lt;br /&gt;
&lt;br /&gt;
Some modules contain pages that serve up JSON or XML content and should ignore the included header and footer. This can be done by adding the URL parameter &amp;quot;output=moduleonly&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
   http://example.com/?page=auth&amp;amp;mpage=users.json&amp;amp;output=moduleonly&lt;br /&gt;
&lt;br /&gt;
= Creating a Module =&lt;br /&gt;
&lt;br /&gt;
== Common ==&lt;br /&gt;
&lt;br /&gt;
=== Default Page ===&lt;br /&gt;
&lt;br /&gt;
This is the default page that loads when no mpage is set.&lt;br /&gt;
&lt;br /&gt;
=== Autoload ===&lt;br /&gt;
&lt;br /&gt;
Autoloaded modules will be included on every page of the site. This is helpful for caching and including JS and CSS files throughout the site.&lt;br /&gt;
&lt;br /&gt;
=== Key / Value Pairs ===&lt;br /&gt;
&lt;br /&gt;
Key / Value pairs are module-wide variables that can easily be changed. These are often used as settings for the module.&lt;br /&gt;
&lt;br /&gt;
For example, if we have a setting called &amp;quot;show_stats&amp;quot; and want to see if its set to &amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?cs if:'&amp;lt;!show_stats!&amp;gt;' == 'yes' ?&amp;gt;&lt;br /&gt;
    Showing Stats&lt;br /&gt;
  &amp;lt;?cs /if ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Initialization ===&lt;br /&gt;
&lt;br /&gt;
Initialization is the first part of the module that is loaded. If there are any required modules to be loaded before this module you will need to include them here.&lt;br /&gt;
&lt;br /&gt;
If you're using the stack module, all CSS/JS stack includes would be called here&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Modules</id>
		<title>Site:Frontend:Modules</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Modules"/>
				<updated>2012-06-15T20:59:59Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Modules contain stand-alone code, files, pages, and page includes required to perform the tasks of the module.&lt;br /&gt;
&lt;br /&gt;
= Module Integration =&lt;br /&gt;
&lt;br /&gt;
== Adding a Module to a Page ==&lt;br /&gt;
After a module is created or imported, it will be listed under Module Integration while editing a site page.&lt;br /&gt;
&lt;br /&gt;
Selecting the module will populate MS.module.data with the contents of the module. Calling MS.module.data on the page will inject the contents onto the page.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;head&amp;gt;&lt;br /&gt;
      &amp;lt;title&amp;gt;Module Test&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
      &amp;lt;?cs var:MS.module.data ?&amp;gt;&lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessing Module Pages ==&lt;br /&gt;
&lt;br /&gt;
Since modules are injected into a parent page, pages within a module need to be called with the '''mpage''' URL parameter.&lt;br /&gt;
&lt;br /&gt;
For example, if your parent page is &amp;quot;auth&amp;quot; and your module page is &amp;quot;login&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
  http://example.com/?page=auth&amp;amp;mpage=login&lt;br /&gt;
&lt;br /&gt;
== Module Only ==&lt;br /&gt;
&lt;br /&gt;
Some modules contain pages that serve up JSON or XML content and should ignore the included header and footer. This can be done by adding the URL parameter &amp;quot;output=moduleonly&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
   http://example.com/?page=auth&amp;amp;mpage=users.json&amp;amp;output=moduleonly&lt;br /&gt;
&lt;br /&gt;
==Creating a Module =&lt;br /&gt;
&lt;br /&gt;
== Common ==&lt;br /&gt;
&lt;br /&gt;
==== Default Page ====&lt;br /&gt;
&lt;br /&gt;
This is the default page that loads when no mpage is set.&lt;br /&gt;
&lt;br /&gt;
==== Autoload ====&lt;br /&gt;
&lt;br /&gt;
Autoloaded modules will be included on every page of the site. This is helpful for caching and including JS and CSS files throughout the site.&lt;br /&gt;
&lt;br /&gt;
==== Key / Value Pairs ====&lt;br /&gt;
&lt;br /&gt;
Key / Value pairs are module-wide variables that can easily be changed. These are often used as settings for the module.&lt;br /&gt;
&lt;br /&gt;
For example, if we have a setting called &amp;quot;show_stats&amp;quot; and want to see if its set to &amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?cs if:'&amp;lt;!show_stats!&amp;gt;' == 'yes' ?&amp;gt;&lt;br /&gt;
    Showing Stats&lt;br /&gt;
  &amp;lt;?cs /if ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Initialization ====&lt;br /&gt;
&lt;br /&gt;
Initialization is the first part of the module that is loaded. If there are any required modules to be loaded before this module you will need to include them here.&lt;br /&gt;
&lt;br /&gt;
If you're using the stack module, all CSS/JS stack includes would be called here&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Modules</id>
		<title>Site:Frontend:Modules</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Modules"/>
				<updated>2012-06-15T20:59:15Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Common */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Modules contain stand-alone code, files, pages, and page includes required to perform the tasks of the module.&lt;br /&gt;
&lt;br /&gt;
== Module Integration ==&lt;br /&gt;
&lt;br /&gt;
=== Adding a Module to a Page ===&lt;br /&gt;
After a module is created or imported, it will be listed under Module Integration while editing a site page.&lt;br /&gt;
&lt;br /&gt;
Selecting the module will populate MS.module.data with the contents of the module. Calling MS.module.data on the page will inject the contents onto the page.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;head&amp;gt;&lt;br /&gt;
      &amp;lt;title&amp;gt;Module Test&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
      &amp;lt;?cs var:MS.module.data ?&amp;gt;&lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Accessing Module Pages ===&lt;br /&gt;
&lt;br /&gt;
Since modules are injected into a parent page, pages within a module need to be called with the '''mpage''' URL parameter.&lt;br /&gt;
&lt;br /&gt;
For example, if your parent page is &amp;quot;auth&amp;quot; and your module page is &amp;quot;login&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
  http://example.com/?page=auth&amp;amp;mpage=login&lt;br /&gt;
&lt;br /&gt;
=== Module Only ===&lt;br /&gt;
&lt;br /&gt;
Some modules contain pages that serve up JSON or XML content and should ignore the included header and footer. This can be done by adding the URL parameter &amp;quot;output=moduleonly&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
   http://example.com/?page=auth&amp;amp;mpage=users.json&amp;amp;output=moduleonly&lt;br /&gt;
&lt;br /&gt;
== Creating a Module ==&lt;br /&gt;
&lt;br /&gt;
= Common =&lt;br /&gt;
&lt;br /&gt;
==== Default Page ====&lt;br /&gt;
&lt;br /&gt;
This is the default page that loads when no mpage is set.&lt;br /&gt;
&lt;br /&gt;
==== Autoload ====&lt;br /&gt;
&lt;br /&gt;
Autoloaded modules will be included on every page of the site. This is helpful for caching and including JS and CSS files throughout the site.&lt;br /&gt;
&lt;br /&gt;
==== Key / Value Pairs ====&lt;br /&gt;
&lt;br /&gt;
Key / Value pairs are module-wide variables that can easily be changed. These are often used as settings for the module.&lt;br /&gt;
&lt;br /&gt;
For example, if we have a setting called &amp;quot;show_stats&amp;quot; and want to see if its set to &amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?cs if:'&amp;lt;!show_stats!&amp;gt;' == 'yes' ?&amp;gt;&lt;br /&gt;
    Showing Stats&lt;br /&gt;
  &amp;lt;?cs /if ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Initialization ====&lt;br /&gt;
&lt;br /&gt;
Initialization is the first part of the module that is loaded. If there are any required modules to be loaded before this module you will need to include them here.&lt;br /&gt;
&lt;br /&gt;
If you're using the stack module, all CSS/JS stack includes would be called here&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Modules</id>
		<title>Site:Frontend:Modules</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Modules"/>
				<updated>2012-06-15T19:56:57Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Module Only */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Modules contain stand-alone code, files, pages, and page includes required to perform the tasks of the module.&lt;br /&gt;
&lt;br /&gt;
== Module Integration ==&lt;br /&gt;
&lt;br /&gt;
=== Adding a Module to a Page ===&lt;br /&gt;
After a module is created or imported, it will be listed under Module Integration while editing a site page.&lt;br /&gt;
&lt;br /&gt;
Selecting the module will populate MS.module.data with the contents of the module. Calling MS.module.data on the page will inject the contents onto the page.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;head&amp;gt;&lt;br /&gt;
      &amp;lt;title&amp;gt;Module Test&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
      &amp;lt;?cs var:MS.module.data ?&amp;gt;&lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Accessing Module Pages ===&lt;br /&gt;
&lt;br /&gt;
Since modules are injected into a parent page, pages within a module need to be called with the '''mpage''' URL parameter.&lt;br /&gt;
&lt;br /&gt;
For example, if your parent page is &amp;quot;auth&amp;quot; and your module page is &amp;quot;login&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
  http://example.com/?page=auth&amp;amp;mpage=login&lt;br /&gt;
&lt;br /&gt;
=== Module Only ===&lt;br /&gt;
&lt;br /&gt;
Some modules contain pages that serve up JSON or XML content and should ignore the included header and footer. This can be done by adding the URL parameter &amp;quot;output=moduleonly&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
   http://example.com/?page=auth&amp;amp;mpage=users.json&amp;amp;output=moduleonly&lt;br /&gt;
&lt;br /&gt;
== Creating a Module ==&lt;br /&gt;
&lt;br /&gt;
=== Common ===&lt;br /&gt;
&lt;br /&gt;
==== Default Page ====&lt;br /&gt;
&lt;br /&gt;
This is the default page that loads when no mpage is set.&lt;br /&gt;
&lt;br /&gt;
==== Autoload ====&lt;br /&gt;
&lt;br /&gt;
Autoloaded modules will be included on every page of the site. This is helpful for caching and including JS and CSS files throughout the site.&lt;br /&gt;
&lt;br /&gt;
==== Key / Value Pairs ====&lt;br /&gt;
&lt;br /&gt;
Key / Value pairs are module-wide variables that can easily be changed. These are often used as settings for the module.&lt;br /&gt;
&lt;br /&gt;
For example, if we have a setting called &amp;quot;show_stats&amp;quot; and want to see if its set to &amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?cs if:'&amp;lt;!show_stats!&amp;gt;' == 'yes' ?&amp;gt;&lt;br /&gt;
    Showing Stats&lt;br /&gt;
  &amp;lt;?cs /if ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Initialization ====&lt;br /&gt;
&lt;br /&gt;
Initialization is the first part of the module that is loaded. If there are any required modules to be loaded before this module you will need to include them here.&lt;br /&gt;
&lt;br /&gt;
If you're using the stack module, all CSS/JS stack includes would be called here&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Macros</id>
		<title>Site:Frontend:Macros</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Macros"/>
				<updated>2012-06-15T19:54:13Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Introduction ===&lt;br /&gt;
&lt;br /&gt;
Macros are the Clearsilver equivalent to functions. Macros let you define a block of code that can be re-used throughout the site.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Macro ===&lt;br /&gt;
&lt;br /&gt;
Macros are made by starting and ending a new clearsilver block with def.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?cs def:getUsername() ?&amp;gt;&lt;br /&gt;
   &amp;lt;?cs var:MS.site.auth.username ?&amp;gt;&lt;br /&gt;
 &amp;lt;?cs /def ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With macros there is no returning specific data, anything in the macro will be placed where its called.&lt;br /&gt;
&lt;br /&gt;
=== Macro Parameters ===&lt;br /&gt;
&lt;br /&gt;
You can pass parameters into the macro by setting them after the macro name&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?cs def:getUsername(user) ?&amp;gt;&lt;br /&gt;
   &amp;lt;?cs var:user.username ?&amp;gt;&lt;br /&gt;
 &amp;lt;?cs /def ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This macro requires the user parameter to generate the username.&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Macros</id>
		<title>Site:Frontend:Macros</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Macros"/>
				<updated>2012-06-15T19:54:05Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Creating a Macro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Introduction ===&lt;br /&gt;
&lt;br /&gt;
Macros are the Clearsilver equivalent to functions. Macros let you define a block of code that can be re-used throughout the site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating a Macro ===&lt;br /&gt;
&lt;br /&gt;
Macros are made by starting and ending a new clearsilver block with def.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?cs def:getUsername() ?&amp;gt;&lt;br /&gt;
   &amp;lt;?cs var:MS.site.auth.username ?&amp;gt;&lt;br /&gt;
 &amp;lt;?cs /def ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With macros there is no returning specific data, anything in the macro will be placed where its called.&lt;br /&gt;
&lt;br /&gt;
=== Macro Parameters ===&lt;br /&gt;
&lt;br /&gt;
You can pass parameters into the macro by setting them after the macro name&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?cs def:getUsername(user) ?&amp;gt;&lt;br /&gt;
   &amp;lt;?cs var:user.username ?&amp;gt;&lt;br /&gt;
 &amp;lt;?cs /def ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This macro requires the user parameter to generate the username.&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Forms</id>
		<title>Site:Frontend:Forms</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Forms"/>
				<updated>2012-06-15T19:52:57Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
&lt;br /&gt;
=== Action ===&lt;br /&gt;
&lt;br /&gt;
=== Verb ===&lt;br /&gt;
&lt;br /&gt;
=== Mode ===&lt;br /&gt;
&lt;br /&gt;
This optional parameter sets the response type.&lt;br /&gt;
&lt;br /&gt;
Avaliable modes: xml, json&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;mode&amp;quot; value=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Continue ===&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a successful form submit.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-successful-page&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Retry ===&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a unsuccessful form submit. This page will also contain the MS.error HDF value with the error/reason why the form wasn't successful.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-failed-page&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Forms</id>
		<title>Site:Frontend:Forms</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Forms"/>
				<updated>2012-06-15T19:52:27Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: /* Mode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
&lt;br /&gt;
=== Action ===&lt;br /&gt;
&lt;br /&gt;
=== Verb ===&lt;br /&gt;
This optional&lt;br /&gt;
&lt;br /&gt;
=== Mode ===&lt;br /&gt;
&lt;br /&gt;
This optional parameter sets the response type.&lt;br /&gt;
&lt;br /&gt;
Avaliable modes: xml, json&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;mode&amp;quot; value=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Continue ===&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a successful form submit.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-successful-page&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Retry ===&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a unsuccessful form submit. This page will also contain the MS.error HDF value with the error/reason why the form wasn't successful.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-failed-page&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Forms</id>
		<title>Site:Frontend:Forms</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Forms"/>
				<updated>2012-06-15T19:52:15Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
&lt;br /&gt;
=== Action ===&lt;br /&gt;
&lt;br /&gt;
=== Verb ===&lt;br /&gt;
This optional&lt;br /&gt;
&lt;br /&gt;
=== Mode ===&lt;br /&gt;
&lt;br /&gt;
This optional parameter sets the response type.&lt;br /&gt;
&lt;br /&gt;
Avaliable modes: xml, json&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;mode&amp;quot; value=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Continue ===&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a successful form submit.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-successful-page&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Retry ===&lt;br /&gt;
&lt;br /&gt;
This optional parameter is the page you will be redirected to after a unsuccessful form submit. This page will also contain the MS.error HDF value with the error/reason why the form wasn't successful.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;continue&amp;quot; value=&amp;quot;http://example.com/?page=some-failed-page&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Forms</id>
		<title>Site:Frontend:Forms</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Forms"/>
				<updated>2012-06-15T19:38:48Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: Created page with &amp;quot;== Introduction ==  == Error Handling ==  == AJAX Form ==  === XML ===  === JSON ===&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
== Error Handling ==&lt;br /&gt;
&lt;br /&gt;
== AJAX Form ==&lt;br /&gt;
&lt;br /&gt;
=== XML ===&lt;br /&gt;
&lt;br /&gt;
=== JSON ===&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Modules</id>
		<title>Site:Frontend:Modules</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Modules"/>
				<updated>2012-06-15T19:25:54Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Modules contain stand-alone code, files, pages, and page includes required to perform the tasks of the module.&lt;br /&gt;
&lt;br /&gt;
== Module Integration ==&lt;br /&gt;
&lt;br /&gt;
=== Adding a Module to a Page ===&lt;br /&gt;
After a module is created or imported, it will be listed under Module Integration while editing a site page.&lt;br /&gt;
&lt;br /&gt;
Selecting the module will populate MS.module.data with the contents of the module. Calling MS.module.data on the page will inject the contents onto the page.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;head&amp;gt;&lt;br /&gt;
      &amp;lt;title&amp;gt;Module Test&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
      &amp;lt;?cs var:MS.module.data ?&amp;gt;&lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Accessing Module Pages ===&lt;br /&gt;
&lt;br /&gt;
Since modules are injected into a parent page, pages within a module need to be called with the '''mpage''' URL parameter.&lt;br /&gt;
&lt;br /&gt;
For example, if your parent page is &amp;quot;auth&amp;quot; and your module page is &amp;quot;login&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
  http://example.com/?page=auth&amp;amp;mpage=login&lt;br /&gt;
&lt;br /&gt;
=== Module Only ===&lt;br /&gt;
&lt;br /&gt;
Some modules contain pages that serve up JSON or XML content and should ignore the included header and footer. This can be done by adding the URL parameter &amp;quot;output=moduleonly&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
   http://example.com/?page=auth&amp;amp;mpage=users.json&amp;amp;output=moduleonly&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creating a Module ==&lt;br /&gt;
&lt;br /&gt;
=== Common ===&lt;br /&gt;
&lt;br /&gt;
==== Default Page ====&lt;br /&gt;
&lt;br /&gt;
This is the default page that loads when no mpage is set.&lt;br /&gt;
&lt;br /&gt;
==== Autoload ====&lt;br /&gt;
&lt;br /&gt;
Autoloaded modules will be included on every page of the site. This is helpful for caching and including JS and CSS files throughout the site.&lt;br /&gt;
&lt;br /&gt;
==== Key / Value Pairs ====&lt;br /&gt;
&lt;br /&gt;
Key / Value pairs are module-wide variables that can easily be changed. These are often used as settings for the module.&lt;br /&gt;
&lt;br /&gt;
For example, if we have a setting called &amp;quot;show_stats&amp;quot; and want to see if its set to &amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?cs if:'&amp;lt;!show_stats!&amp;gt;' == 'yes' ?&amp;gt;&lt;br /&gt;
    Showing Stats&lt;br /&gt;
  &amp;lt;?cs /if ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Initialization ====&lt;br /&gt;
&lt;br /&gt;
Initialization is the first part of the module that is loaded. If there are any required modules to be loaded before this module you will need to include them here.&lt;br /&gt;
&lt;br /&gt;
If you're using the stack module, all CSS/JS stack includes would be called here&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Modules</id>
		<title>Site:Frontend:Modules</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Modules"/>
				<updated>2012-06-15T19:15:51Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Modules contain stand-alone code, files, pages, and page includes required to perform the tasks of the module.&lt;br /&gt;
&lt;br /&gt;
== Module Integration ==&lt;br /&gt;
&lt;br /&gt;
=== Adding a Module to a Page ===&lt;br /&gt;
After a module is created or imported, it will be listed under Module Integration while editing a site page.&lt;br /&gt;
&lt;br /&gt;
Selecting the module will populate MS.module.data with the contents of the module. Calling MS.module.data on the page will inject the contents onto the page.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;head&amp;gt;&lt;br /&gt;
      &amp;lt;title&amp;gt;Module Test&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
      &amp;lt;?cs var:MS.module.data ?&amp;gt;&lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Accessing Module Pages ===&lt;br /&gt;
&lt;br /&gt;
Since modules are injected into a parent page, pages within a module need to be called with the '''mpage''' URL parameter.&lt;br /&gt;
&lt;br /&gt;
For example, if your parent page is &amp;quot;auth&amp;quot; and your module page is &amp;quot;login&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
  http://example.com/?page=auth&amp;amp;mpage=login&lt;br /&gt;
&lt;br /&gt;
=== Module Only ===&lt;br /&gt;
&lt;br /&gt;
Some modules contain pages that serve up JSON or XML content and should ignore the included header and footer. This can be done by adding the URL parameter &amp;quot;output=moduleonly&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
   http://example.com/?page=auth&amp;amp;mpage=users.json&amp;amp;output=moduleonly&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Modules</id>
		<title>Site:Frontend:Modules</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Modules"/>
				<updated>2012-06-15T19:08:57Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Modules contain stand-alone code, files, pages, and page includes required to perform the tasks of the module.&lt;br /&gt;
&lt;br /&gt;
== Module Integration ==&lt;br /&gt;
&lt;br /&gt;
After a module is created or imported, it will be listed under Module Integration while editing a site page.&lt;br /&gt;
&lt;br /&gt;
Selecting the module will populate MS.module.data with the contents of the module. Calling MS.module.data on the page will inject the contents onto the page.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;head&amp;gt;&lt;br /&gt;
      &amp;lt;title&amp;gt;Module Test&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
      &amp;lt;?cs var:MS.module.data ?&amp;gt;&lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessing Module Pages ==&lt;br /&gt;
&lt;br /&gt;
Since modules are injected into a parent page, pages within a module need to be called with the '''mpage''' URL parameter.&lt;br /&gt;
&lt;br /&gt;
For example, if your parent page is &amp;quot;auth&amp;quot; and your module page is &amp;quot;login&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
  http://example.com/?page=auth&amp;amp;mpage=login&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Modules</id>
		<title>Site:Frontend:Modules</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Modules"/>
				<updated>2012-06-15T19:08:06Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Modules contain stand-alone code, files, pages, and page includes required to perform the tasks of the module.&lt;br /&gt;
&lt;br /&gt;
== Module Integration ==&lt;br /&gt;
&lt;br /&gt;
After a module is created or imported, it will be listed under Module Integration while editing a site page.&lt;br /&gt;
&lt;br /&gt;
Selecting the module will populate MS.module.data with the contents of the module. Calling MS.module.data on the page will inject the contents onto the page.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;head&amp;gt;&lt;br /&gt;
      &amp;lt;title&amp;gt;Module Test&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
      &amp;lt;?cs var:MS.module.data ?&amp;gt;&lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessing Module Pages ==&lt;br /&gt;
&lt;br /&gt;
Since modules are injected into a parent page, pages within a module need to be called with the mpage URL parameter.&lt;br /&gt;
&lt;br /&gt;
For example, if your parent page is &amp;quot;auth&amp;quot; and your module page is &amp;quot;login&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
  http://example.com/?page=auth&amp;amp;mpage=login&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	<entry>
		<id>http://dev.metrixstream.com/wiki/Site:Frontend:Modules</id>
		<title>Site:Frontend:Modules</title>
		<link rel="alternate" type="text/html" href="http://dev.metrixstream.com/wiki/Site:Frontend:Modules"/>
				<updated>2012-06-15T19:05:03Z</updated>
		
		<summary type="html">&lt;p&gt;MetrixJustin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Modules contain stand-alone code, files, pages, and page includes required to perform the tasks of the module.&lt;br /&gt;
&lt;br /&gt;
== Module Integration ==&lt;br /&gt;
&lt;br /&gt;
After a module is created or imported, it will be listed under Module Integration while editing a site page.&lt;br /&gt;
&lt;br /&gt;
Selecting the module will populate MS.module.data with the contents of the module. Calling MS.module.data on the page will inject the contents onto the page.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;head&amp;gt;&lt;br /&gt;
      &amp;lt;title&amp;gt;Module Test&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
      &amp;lt;?cs var:MS.module.data ?&amp;gt;&lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pages ==&lt;br /&gt;
&lt;br /&gt;
=== Accessing a Page ===&lt;br /&gt;
&lt;br /&gt;
Something&lt;/div&gt;</summary>
		<author><name>MetrixJustin</name></author>	</entry>

	</feed>