/**
  * takes an associative array and creates a relationship object 
  *
  *
  * @param array $params (reference ) an assoc array of name/value pairs
  * @param array $ids    the array that holds all the db ids
  *
  * @return object CRM_Contact_BAO_Relationship object 
  * @access public
  * @static
  */
 function create(&$params, &$ids)
 {
     $valid = $invalid = $duplicate = $saved = 0;
     $relationshipId = CRM_Utils_Array::value('relationship', $ids);
     if (!$relationshipId) {
         // creating a new relationship
         $dataExists = CRM_Contact_BAO_Relationship::dataExists($params);
         if (!$dataExists) {
             return null;
         }
         foreach ($params['contact_check'] as $key => $value) {
             $errors = '';
             // check if the realtionship is valid between contacts.
             // step 1: check if the relationship is valid if not valid skip and keep the count
             // step 2: check the if two contacts already have a relationship if yes skip and keep the count
             // step 3: if valid relationship then add the relation and keep the count
             $errors = CRM_Contact_BAO_Relationship::checkValidRelationship($params, $ids, $key);
             // step 1
             if ($errors) {
                 $invalid++;
                 continue;
             }
             if (CRM_Contact_BAO_Relationship::checkDuplicateRelationship($params, CRM_Utils_Array::value('contact', $ids), $key)) {
                 // step 2
                 $duplicate++;
                 continue;
             }
             $relationship = CRM_Contact_BAO_Relationship::add($params, $ids, $key);
             $valid++;
         }
         //return array( $valid, $invalid, $duplicate, $saved );
     } else {
         //editing the relationship
         // check for duplicate relationship
         if (CRM_Contact_BAO_Relationship::checkDuplicateRelationship($params, CRM_Utils_Array::value('contact', $ids), $ids['contactTarget'], $relationshipId)) {
             $duplicate++;
             return array($valid, $invalid, $duplicate);
         }
         // editing an existing relationship
         CRM_Contact_BAO_Relationship::add($params, $ids, $ids['contactTarget']);
         $saved++;
         //return array( $valid, $invalid, $duplicate, $saved );
     }
     return array($valid, $invalid, $duplicate, $saved);
 }