<?php


function firmenprofile_menu_alter(&$items) {
  // Example - disable the page at node/add

  $items['relationships']['access callback'] = '_access_relationships';
  $items['relationships/received']['access callback']=FALSE;
  $items['relationships/sent']['access callback']=FALSE;

}


function _access_relationships() {
  	$user_has_firmenprofile=user_has_companyprofile();
  	if(!user_has_companyprofile())  	return FALSE;
  	return TRUE;
}

/**
 * DK: New function, instead of user_has_firmenprofile
 */
function user_has_companyprofile($uid = NULL) {
  global $user;
  if(!$uid) {
    $uid = $user->uid;
  }

  $query = new EntityFieldQuery();
  $query->entityCondition('entity_type', 'node')
    ->entityCondition('bundle', 'company_profile')
    ->propertyCondition('uid', $uid) // node written by a specific user
    ->propertyCondition('status', 1) // published nodes
    ->addMetaData('account', user_load(1)); // Run the query as user 1.

  $result = $query->execute();
  if (isset($result['node'])) {
    $company_profiles = array_keys($result['node']);
    $company_profiles_entity = entity_load('node', $company_profiles);
    return array_values($company_profiles_entity);
  }

  return false;
}


function firmenprofile_form_alter(&$form, &$form_state, $form_id) {
	if($form_id=='invite_form') {
		$form['#validate'][]='_firmenprofile_check_existing_invitee';
	}

}

function _firmenprofile_check_existing_invitee($form, &$form_state) {

	global $user;
	$check_mail=$form_state['values']['field_invitation_email_address'][LANGUAGE_NONE][0]['value'];
#	dpm($check_mail);
	$sql="
	SELECT rid, mail from
	{user_relationships} A
	LEFT JOIN {users} B on A.requestee_id = B.uid
	WHERE
	A.requester_id = :uid
	AND
	B.mail=:mail
	";
	$result=db_query($sql, array( ':uid' => $user->uid , ':mail' => $check_mail ));

	$count= ($result->fetchAll());
	if($count)		form_set_error('email_address', t('This email is already part of your relationships.'));
}
