<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<!-- 
 ! Copyright (c) 2012-2013 Snowplow Analytics Ltd. All rights reserved.
 !
 ! This program is licensed to you under the Apache License Version 2.0,
 ! and you may not use this file except in compliance with the Apache License Version 2.0.
 ! You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0.
 !
 ! Unless required by applicable law or agreed to in writing,
 ! software distributed under the Apache License Version 2.0 is distributed on an
 ! "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ! See the Apache License Version 2.0 for the specific language governing permissions and limitations there under.
 -->
<html>
<head>
    <title>Small asynchronous website/webapp examples for snowplow.js</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

    <!-- Snowplow starts plowing -->
    <script type="text/javascript">

        ;(function(p,l,o,w,i,n,g){if(!p[i]){p.GlobalSnowplowNamespace=p.GlobalSnowplowNamespace||[];
        p.GlobalSnowplowNamespace.push(i);p[i]=function(){(p[i].q=p[i].q||[]).push(arguments)
        };p[i].q=p[i].q||[];n=l.createElement(o);g=l.getElementsByTagName(o)[0];n.async=1;
        n.src=w;g.parentNode.insertBefore(n,g)}}(window,document,"script","//d1fc8wv8zag5ca.cloudfront.net/2.10.0/sp.js","snowplow"));

        window.snowplow('newTracker', 'cf', 'd3rkrsqld9gmqf.cloudfront.net', { // Initialise a tracker
          encodeBase64: false, // Default is true
          appId: 'CFe23a', // Site ID can be anything you want. Set it if you're tracking more than one site in this account
          platform: 'mob',
          contexts: {
            webPage: true,
            gaCookies: true,
            performanceTiming: true
          }
        });

        window.snowplow('setUserId', 'alex 123'); // Business-defined user ID
        //window.snowplow('setUserIdFromLocation', 'id'); // To test this, reload the page with ?id=xxx
        //window.snowplow('setUserIdFromCookie', '_sp_id.4209') // Test this using Firefox because Chrome doesn't allow local cookies.
        window.snowplow('setCustomUrl', '/overridden-url/'); // Override the page URL
        window.snowplow('enableActivityTracking', 10, 10); // Ping every 10 seconds after 10 seconds
        window.snowplow('enableLinkClickTracking', {blacklist: ['barred']}, true); // Track clicks on links whose class is not "barred"
        // window.snowplow('trackPageView', 'Async Test'); // Track the page view with custom title
        window.snowplow('trackPageView', null, [ // Auto-set page title; add page context
          {
            schema: "iglu:com.example_company/page/jsonschema/1-2-1",
            data: {
              pageType: 'test',
              lastUpdated: new Date(2014,1,26)
            }
          },
          {
            schema: "iglu:com.example_company/user/jsonschema/2-0-0",
            data: {
              userType: 'tester',
            }
          }
        ]);

    </script>
    <!-- Snowplow stops plowing -->

    <!-- Example events -->
    <script type="text/javascript">

        function playMix() {
            alert("Playing a DJ mix");
            window.snowplow('trackStructEvent', 'Mixes', 'Play', 'MRC/fabric-0503-mix', '', '0.0');
        }

        function addProduct() {
            alert("Adding a product to basket");
            window.snowplow('trackStructEvent', 'Checkout', 'Add', 'ASO01043', 'blue:xxl', '2.0', [{
              schema: 'iglu:com.acme_company/user/jsonschema/1-0-0',
              data: { fbUid: '123456 x' }
            }] );
        }

        function viewProduct() {
            alert("Viewing a product");
            window.snowplow('trackUnstructEvent', {
                schema: 'iglu:com.acme_company/viewed_product/jsonschema/5-0-0',
                data: {
                    productId: 'ASO01043',
                    category: 'Dresses',
                    brand: 'ACME',
                    returning: true,
                    price: 49.95,
                    sizes: ['xs', 's', 'l', 'xl', 'xxl'],
                    availableSince: new Date(2013,3,7)
              }
            });
        }

        function addEcommerceTransaction() {
          alert('Adding an ecommerce transaction');

          var orderId = 'order-123';

          // addTrans sets up the transaction, should be called first.
          window.snowplow('addTrans',
              orderId,                // order ID - required
              '',                     // affiliation or store name
              '8000',                 // total - required
              '',                     // tax
              '',                     // shipping
              '',                     // city
              '',                     // state or province
              '',                     // country
              'JPY'                   // currency
              );

          // addItem might be called for each item in the shopping cart,
          // or not at all.
          window.snowplow('addItem',
              orderId,                // order ID - required
              '1001',                 // SKU - required
              'Blue t-shirt',         // product name
              '',                     // category
              '2000',                 // unit price - required
              '2',                    // quantity - required
              'JPY',                  // currency
              [{                      // context
                schema: "iglu:com.example_company/products/jsonschema/1-0-0",
                data: {
                  "launchDate": new Date(2013,3,7)
                }
              }]);

          window.snowplow('addItem',
              orderId,                // order ID - required
              '1002',                 // SKU - required
              'Red shoes',            // product name
              '',                     // category
              '4000',                 // unit price - required
              '1',                    // quantity - required
              'JPY'                   // currency
              );

          // trackTrans sends the transaction to Snowplow tracking servers.
          // Must be called last to commit the transaction.
          window.snowplow('trackTrans');

        }
    </script>
</head>

<body>
    <h1>Small_asynchronous_examples_for_snowplow.js</h1>

    <p>Warning: if your browser's Do Not Track feature is enabled and respectDoNotTrack is enabled, all tracking will be prevented.</p>
    <p>If you are viewing the page using a file URL, you must edit the script URL in the Snowplow tag to include an http scheme. Otherwise a file scheme will be inferred and the page will attempt to load sp.js from the local filesystem..</p>

    <p>Press the buttons below to trigger individual tracking events:<br>
        <button type="button" onclick="playMix()">Play a mix</button><br>
        <button type="button" onclick="addProduct()">Add a product</button><br>
        <button type="button" onclick="viewProduct()">View a product</button><br>
        <button type="button" onclick="addEcommerceTransaction()">Add an ecommerce transaction</button>
    </p>
    <a href=http://en.wikipedia.org/wiki/Main_Page id=legal target="_blank" class="link out">Link</a>
    <br>
    <a href=http://en.wikipedia.org/wiki/Main_Page id=illegal class="class barred">Ignored link</a>

</body>

</html>