function getUniqueId() {
    var	uniqueId = ((new Date()).getTime() + "" + Math.floor(Math.random() * 1000000)).substr(0, 25);
    return uniqueId;
}

function Set_Cookie(name, value, expires, path, domain, secure) {
    // set time, it's in milliseconds
    var today = new Date();
    today.setTime(today.getTime());

    /*
    if the expires variable is set, make the correct
    expires time, the current script below will set
    it for x number of days, to make it for hours,
    delete * 24, for minutes, delete * 60 * 24
    */
    if (expires) {
        expires = expires * 1000 * 60 * 60 * 24;
    }
    var expires_date = new Date(today.getTime() + (expires));

    document.cookie = name + "=" + escape(value) +
((expires) ? ";expires=" + expires_date.toGMTString() : "") +
((path) ? ";path=" + path : "") +
((domain) ? ";domain=" + domain : "") +
((secure) ? ";secure" : "");

}


function Get_Cookie(check_name) {
    // first we'll split this cookie up into name/value pairs
    // note: document.cookie only returns name=value, not the other components
    var a_all_cookies = document.cookie.split(';');
    var a_temp_cookie = '';
    var cookie_name = '';
    var cookie_value = '';
    var b_cookie_found = false; // set boolean t/f default f

    for (i = 0; i < a_all_cookies.length; i++) {
        // now we'll split apart each name=value pair
        a_temp_cookie = a_all_cookies[i].split('=');


        // and trim left/right whitespace while we're at it
        cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

        // if the extracted name matches passed check_name
        if (cookie_name == check_name) {
            b_cookie_found = true;
            // we need to handle case where cookie has no value but exists (no = sign, that is):
            if (a_temp_cookie.length > 1) {
                cookie_value = unescape(a_temp_cookie[1].replace(/^\s+|\s+$/g, ''));
            }
            // note that in cases where cookie is initialized but no value, null is returned
            return cookie_value;
            break;
        }
        a_temp_cookie = null;
        cookie_name = '';
    }
    if (!b_cookie_found) {
        return null;
    }
}
function Delete_Cookie(name, path, domain) {
    if (Get_Cookie(name)) document.cookie = name + "=" +
((path) ? ";path=" + path : "") +
((domain) ? ";domain=" + domain : "") +
";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}



function cookiesEnabled() {
    Set_Cookie("chk", "myCookie", 1, "","","");

    if (Get_Cookie("chk") == "myCookie") {

        Delete_Cookie("chk", "", "");
        return true;

    } else {
        return false;
    }
}


function geomixTracking(bereich, detail_id) {

    var uniqueId;
    
    if (cookiesEnabled()) {

        if (Get_Cookie("geomix_tracker") != null) {
			
            uniqueId = Get_Cookie("geomix_tracker");
		
        } else {
            uniqueId = getUniqueId();
			
            Set_Cookie("geomix_tracker", uniqueId, 365, "", "", "");
        }

        triggerUniquePageImpression(uniqueId, bereich, detail_id);
    }
    triggerPageImpression(bereich, detail_id);
}





function triggerPageImpression(bereich, detail_id) {

    new Ajax.Request("/cms/geomix_tracking.php?type=pageImpressions", {
        method: 'post',
        parameters: {
            bereich: bereich,
            detail_id: detail_id
        },
        onSuccess: function(transport) {
            var res = transport.responseText;
        },
        onException: function(req, exception) {
            alert("The request had a fatal exception thrown.\n\n" +
				exception);
            return true;
        }
    });

}




function triggerUniquePageImpression(uniqueId, bereich, detail_id) {

    new Ajax.Request("/cms/geomix_tracking.php?type=uniqueImpressions", {
        method: 'post',
        parameters: {
            uniqueId: uniqueId,
            bereich: bereich,
            detail_id: detail_id
        },
        onSuccess: function(transport) {
            var res = transport.responseText;
        },
        onException: function(req, exception) {
            alert("The request had a fatal exception thrown.\n\n" +
				exception);
            return true;
        }
    });

}


/**
<script src="/js/geomix_tracking.js" type="text/javascript"></script>
<script type="text/javascript">
geomixTracking("__BEREICH__","__DETAIL_ID__");
</script>
**/

