﻿//ver 2.0 (contains & subdomain fix & popup link);
//mh need to set:
//var Booking_Domain = "test.com" //manually in header of each site since no db in legacy/common.

//mh jquery implementation of formerly itHappened() function
//PURPOSE: add var str = '/outgoing/' + url;	 to outgoing links
//Replace all odd characters, so that it works with Analytics Niavgation analysis
function stripUrl(inStrip) {
    inStrip = inStrip.replace(/http:/gi, '');
    inStrip = inStrip.replace(/https:/gi, '');
    inStrip = inStrip.replace(/www./gi, '');
    inStrip = inStrip.replace(/&/gi, '_');
    inStrip = inStrip.replace(/#/gi, ''); //remove hashes
    inStrip = inStrip.replace(/\/\//gi, ''); //remove slashes
    return inStrip;
}

function contains(haystack, needle) {
    return haystack.indexOf(needle) > -1;
}

function doesNotContains(haystack, needle) {
    return haystack.indexOf(needle) == -1;
}

//page loaded
jQuery(document).ready(function() {

    //a clicked or area tag clicked
    jQuery("a, area").click(function() {

        var strippedUrl;
        var str;
        var originalUrl = jQuery(this).attr('href');

        if (originalUrl != '') { //if it has an href (some <area> tags do not);
            strippedUrl = stripUrl(jQuery(this).attr('href'));

            if (contains(originalUrl, 'mailto:')) {
                str = '/mailto/' + strippedUrl;
                pageTracker._trackPageview(str);
                return true;
            }


            //if Booking_Domain is a subdomain (as well as external) track outgoing
            //mh moved this block up b/c if we have a match on Booking_Domain we can return(since any domain that is the booking domain should return true;.
            if (contains(strippedUrl, Booking_Domain)) {

                str = '/outgoing/' + strippedUrl;
                pageTracker._trackPageview(str);

                //for reservation links that open in pop-up windows, can put params in rel attribute         
                if (jQuery(this).hasClass("popup")) {
                    var popup_params = 'resizable,scrollbars,width=1020,height=600,top=800,left=800';
                    //pull popup parameters from forms' rel attribute
                    if (jQuery(this).attr('rel') != undefined) {
                        popup_params = jQuery(this).attr('rel');
                    }
                    window.open(pageTracker._getLinkerUrl(originalUrl), '', popup_params);
                    return false;  //so link doesn't return as well as popup
                } //end popup


                //sets getLinkerUrl href here
                jQuery(this).attr('href', pageTracker._getLinkerUrl(originalUrl));
                return true;
            }

            //if it doesn't have http or https then internal link do nothing - return true.
            //exclude internal relative links (those that have no protocol  )                    
            if ((doesNotContains(originalUrl, 'http://')) && (doesNotContains(originalUrl, 'https://'))) return true;

            //if the hostname is not in the href url (external links)
            if (doesNotContains(strippedUrl, location.hostname)) {
                str = '/outgoing/' + strippedUrl;
                pageTracker._trackPageview(str);
            } //  end external links block

            return true;
        } //end check if url has href

    }); //end click
});    //end ready