<?php



class AC_Tracking extends ActiveCampaign {



	public $version;

	public $url_base;

	public $url;

	public $api_key;



	function __construct($version, $url_base, $url, $api_key) {

		$this->version = $version;

		$this->url_base = $url_base;

		$this->url = $url;

		$this->api_key = $api_key;

	}



	/*

	 * Update the status (enabled or disabled) for site tracking.

	 */

	function site_status($params, $post_data) {

		// version 2 only.

		$request_url = "{$this->url_base}/track/site";

		$response = $this->curl($request_url, $post_data, "POST", "tracking_site_status");

		return $response;

	}



	/*

	 * Update the status (enabled or disabled) for event tracking.

	 */

	function event_status($params, $post_data) {

		// version 2 only.

		$request_url = "{$this->url_base}/track/event";

		$response = $this->curl($request_url, $post_data, "POST", "tracking_event_status");

		return $response;

	}



	/*

	 * Returns existing whitelisted domains.

	 */

	function site_list($params) {

		if ($this->version == 1) {

			// not supported currently.

		

		} elseif ($this->version == 2) {

			$request_url = "{$this->url_base}/track/site";

		}

		$response = $this->curl($request_url, array(), "GET", "tracking_site_list");

		return $response;

	}



	/*

	 * Returns existing tracked events.

	 */

	function event_list($params) {

		if ($this->version == 1) {

			// not supported currently.



		} elseif ($this->version == 2) {

			$request_url = "{$this->url_base}/track/event";

		}

		$response = $this->curl($request_url, array(), "GET", "tracking_event_list");

		return $response;

	}



	/*

	 * Adds a domain to the site tracking whitelist.

	 */

	function whitelist($params, $post_data) {

		// version 2 only.

		$request_url = "{$this->url_base}/track/site";

		$response = $this->curl($request_url, $post_data, "PUT", "tracking_whitelist");

		return $response;

	}



	/*

	 * Removes a domain from the site tracking whitelist.

	 */

	function whitelist_remove($params, $post_data) {

		// version 2 only.

		$request_url = "{$this->url_base}/track/site";

		$response = $this->curl($request_url, $post_data, "DELETE", "tracking_whitelist");

		return $response;

	}



	/*

	 * Removes an event.

	 */

	function event_remove($params, $post_data) {

		// version 2 only.

		$request_url = "{$this->url_base}/track/event";

		$response = $this->curl($request_url, $post_data, "DELETE", "tracking_event_remove");

		return $response;

	}



	/*

	 * Adds a new event.

	 */

	function log($params, $post_data) {

		$request_url = "https://trackcmp.net/event";

		$post_data["actid"] = $this->track_actid;

		$post_data["key"] = $this->track_key;

		$visit_data = array();

		if ($this->track_email) {

			$visit_data["email"] = $this->track_email;

		}

		if (isset($post_data["visit"])) {

			$visit_data = array_merge($visit_data, $post_data["visit"]);

		}

		if ($visit_data) {

			$post_data["visit"] = json_encode($visit_data);

		}

		$response = $this->curl($request_url, $post_data, "POST", "tracking_log");

		return $response;

	}



}



?>