if (typeof eBuddy == 'undefined') {
    var eBuddy = {};
}
if (typeof eBuddy.Website == 'undefined') {
    eBuddy.Website = {};
}




eBuddy.Website.Util = new function() {
    function bind(event, element, callback) {
        if (element.addEventListener) { //W3C
            element.addEventListener(event, callback, true); 
        } else if (element.attachEvent) { //IE
            element.attachEvent(event, callback);
        }        
    }

    return {
        bind : bind

 };
}








 eBuddy.Website.Analytics = new function() {     
    var _pageTracker = null;
    var _baseurl = googleFormattedURL( _proxy_jslib_handle( _proxy_jslib_handle(document, 'location', '', 0, 0), 'href', '', 0, 0));
    var _customvars = [];


    function loadGoogleAnalytics() {
        if (typeof _gat == 'undefined') {
            var gaJsHost = (("https:" ==  _proxy_jslib_handle( _proxy_jslib_handle(document, 'location', '', 0, 0), 'protocol', '', 0, 0)) ? "https://ssl." : "http://www.");
             _proxy_jslib_handle(document, 'write', '', 1, 0)(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
        }
    }

    function createPageTracker() {
        try {        
            _pageTracker = _gat._getTracker("UA-978878-1");
            _pageTracker._setDomainName(_baseurl);
            _pageTracker._setAllowLinker(true);
            _pageTracker._setAllowHash(false);
        } catch (error) {
            //alert(error);
        }        
    }

    function addTrackers() {
        //console.info("Added trackers");
        try {            
            //add tracker to all links that may point to an external domains
            var allanchors =  _proxy_jslib_handle(document, 'getElementsByTagName', '', 1, 0)('a');
            for (var i = 0; i < allanchors.length; i++) {
                var anchordom =  _proxy_jslib_handle(allanchors, (i), '', 0, 0);
                var anchorurl = googleFormattedURL(anchordom.getAttribute('href'));
                if (anchorurl && (_baseurl != anchorurl)) {
                    //console.info(_baseurl,anchorurl,anchordom);
                    eBuddy.Website.Util.bind('click', anchordom, function() { 
                        //alert('domain1 to domain2 tracked link' + anchorurl);                        
                        return _pageTracker._link(anchorurl);
                    });
                }
            }
    
            //add tracker for all forms
            var allforms =  _proxy_jslib_handle(document, 'getElementsByTagName', '', 1, 0)('form');
            for (var i = 0; i < allforms.length; i++) {
                var form =  _proxy_jslib_handle(allforms, (i), '', 0, 0);
                var formurl = googleFormattedURL(form.getAttribute('action'));
                if (formurl && (_baseurl != formurl)) {
                    //console.info(_baseurl,formurl,form);
                    eBuddy.Website.Util.bind('submit', form, function() { 
                        //alert('domain1 to domain2 tracked form');    
                        return _pageTracker._linkByPost(form) ;
                    });
                }
            }
            
            _pageTracker._trackPageview(); // Must be last bit of analytics code called
            
        } catch (error) {
            //alert(error);
        }
    }
    
    
    function addCustomVar(slot,name,value,scope) {
        _customvars.push({slot:slot,name:name,value: _proxy_jslib_handle(null, 'value', value, 0, 0),scope:scope})

 }

    function setAllCustomVars() {
        for (var i = 0;  i < _customvars.length; i++) {
            var  cv =  _proxy_jslib_handle(_customvars, (i), '', 0, 0);
            //console.info('added custom var:',cv.slot,cv.name,cv.value,cv.scope);
            _pageTracker._setCustomVar(cv.slot,cv.name, _proxy_jslib_handle(cv, 'value', '', 0, 0),cv.scope);   
        }
    }

    function googleFormattedURL(url) {
        url = url.match(/(ebuddy\.)([\w.]*)/);
        if (!url || (url.indexOf == undefined)) {
            return false;
        }
        url = url.pop();
        if (url.match(/php|jsp/)) {
            return false;
        }
        return '.ebuddy.' + url;
    }
    
    return {
        createPageTracker : createPageTracker,
        addTrackers : addTrackers,
        addCustomVar : addCustomVar,
        setAllCustomVars : setAllCustomVars,
        loadGoogleAnalytics : loadGoogleAnalytics

 }; 
}






 ;
_proxy_jslib_flush_write_buffers() ;