<?php

define(LOOPFUSE_FORM_PATH,'/webrecorder/post');

function loopfuse_action_info () {
  return array(
    'loopfuse_record_registration_action' => array(
      'description' => t('Record site registration with LoopFuse'),
      'type' => 'user',
      'configurable' => TRUE,
      'hooks' => array(
        'user' => array('insert', 'update'),
        ),
      ));
}

function loopfuse_record_registration_action (&$object, $context = array()) {
	$data = _encode_fields($_REQUEST);
	$cid = loopfuse_get_account();
	if ( !isset($cid) ) {
		watchdog('loopfuse', t('LoopFuse account is not configured'), WATCHDOG_WARNING);
		return;
	}
			
	if ( isset($data) ) {
		// add the fields for form_id and LoopFuse account
		$data .= '&formid=' . $context['lf_form_id'][0];
		$data .= '&cid=' . $cid; 
		$data .= '&profile_email=' . urlencode($object->mail);
		$headers = array('Content-Type' => 'application/x-www-form-urlencoded', 
										 'Cookie' => 'LOOPFUSE=' .$_COOKIE["LOOPFUSE"]);
		var_dump($data);
		$result = drupal_http_request( loopfuse_get_base_url() . LOOPFUSE_FORM_PATH, $headers, 'POST', $data);
	}
}

function loopfuse_record_registration_action_form($context) {
  $form['lf_form_id'] = array(
  	'#type' => 'textfield',
		'#title' => t('Form ID'),
		'#default_value' => isset($context['lf_form_id']) ? actions_implode_tags($context['lf_form_id']) : '',
		'#size' => '40',
		'#maxlength' => '60',
		'#description' => 'Configure the Form ID for the LoopFuse form to submit',
		);
	return $form;
}

function loopfuse_record_registration_action_submit($form_id, $form_values) {
  return array('lf_form_id' => actions_explode_tags($form_values['lf_form_id']));
}

function _encode_fields ($fields) {
	foreach ( $fields as $key => $value ) {
		if ( $key != 'pass') { 
			if ( $encoded != '' ) $encoded .= '&';
			$encoded .= ( urlencode($key) . '=' . urlencode($value) );
		}
	}	
	return $encoded;
}
