/**
     *gets tracking code based on campaign
     *@return tracking javascript for pardot api
     */
    public static function GetPardotTrackingJs()
    {
        $html = false;
        $campaign = PardotConfig::getCampaignCode();
        if ($campaign) {
            $tracker_cache = SS_Cache::factory('Pardot');
            if (!($tracking_code_template = $tracker_cache->load('pardot_tracking_code_template'))) {
                $api_credentials = PardotConfig::getPardotCredentials();
                $pardot = new Pardot_API();
                if (!$pardot->is_authenticated()) {
                    $pardot->authenticate($api_credentials);
                }
                $account = $pardot->get_account();
                if (isset($account->tracking_code_template)) {
                    $tracking_code_template = $account->tracking_code_template;
                    $tracker_cache->save($tracking_code_template, 'pardot_tracking_code_template');
                }
            }
            $tracking_code_template = str_replace('%%CAMPAIGN_ID%%', $campaign + 1000, $tracking_code_template);
            $campaign = $campaign + 1000;
            $html = <<<HTML
<script> type="text/javascript">
piCId = '{$campaign}';
{$tracking_code_template}
</script>
HTML;
        }
        return $html;
    }
 /**
  * This function starts the routine, and is the first function
  * to execute off the URL accessor (defined in @see _config.php)
  */
 public function index()
 {
     $pardot = new Pardot_API(PardotConfig::getPardotCredentials());
     $forms_object = $pardot->get_forms(PardotConfig::getPardotCredentials());
     $forms = array();
     foreach ($forms_object as $form_object) {
         $forms[]['name'] = $form_object->name;
     }
     $forms = new ArrayList($forms);
     $content_object = $pardot->get_dynamicContent(PardotConfig::getPardotCredentials());
     $contents = array();
     foreach ($content_object as $content) {
         $contents[]['name'] = $content->name;
     }
     $contents = new ArrayList($contents);
     return $this->customise(array('Forms' => $forms, 'DynamicContent' => $contents))->renderWith(array("PardotModalForm"));
 }
 /**
  * caches pardot dynamic content from the pardot api.
  *
  * @return array Array of dynamic content objects 
  */
 public static function cacheDynamicContentFromPardotApi()
 {
     $pardot = new Pardot_API(PardotConfig::getPardotCredentials());
     $dynamicContent = $pardot->get_dynamicContent();
     $pardot_cache = SS_Cache::factory('Pardot');
     $pardot_cache->save(serialize($dynamicContent), 'serialized_dynamic_content');
     return $dynamicContent;
 }
 /**
  *checks current pardot api credentials  
  *@return string api key if valid, empty string if non-valid
  */
 public static function validApiCredentials()
 {
     $pardot = new Pardot_API();
     return $pardot->authenticate(self::getPardotCredentials());
 }