Internet of Things (IoT), fog and cloud computing are the most widespread technologies that have become a part of our day-to-day activities. The integration of these technologies will become crucial components for the future Internet as their usage and acceptance rapidly increase. IoT devices (or terminal nodes (TNs)) have limited resource capability to carry out all of their generated tasks. Therefore, they depend on the cloud to assist them in completing all their tasks. However, the distance between TNs to the cloud may lead to network congestion and uneven delay. As a result, fog nodes (FNs) work as an intermediary between TNs and the cloud to minimize delay in completing the TNs' tasks. In this context, previous studies assign the TNs' tasks to FNs based on various criteria, namely energy, delay and priority among the tasks, without combining them. Fair task offloading (FTO) recently combines these criteria to assign the TNs tasks to FNs without significantly considering load balancing among FNs. This paper introduces a multi-objective task offloading algorithm, called EDP-TO, by considering all the criteria and load balancing. The proposed algorithm uses the multi-objective function to select the FNs for offloading. It divides the tasks into multiple sub-tasks and assigns them to the selected FNs, such that the overall delay is minimized. The performance of the proposed algorithm is shown with and without load balancing, called EDP-TO-LB and EDP-TO-WLB, and compared with FTO by considering three scenarios. The comparison results show the superiority of the EDP-TO over the FTO in terms of energy, delay and fairness.