How to tell if a homomorphism from a surface group to itself is surjective/injective/inner Please pardon my group-theoretic ignorance.  Let $S_g = \left< a_1, b_1 , \ldots, a_g, b_g | [a_1,b_1] \cdots [a_g,b_g] \right>$ be the fundamental group of a genus $g \geq 2$ surface.  If I am given a homomorphism $\phi: S_g \to S_g$ how can I determine if $\phi$ is injective, surjective, and if $\phi$ is an automorphism how can I determine if it is inner?
I know how to do these in the case of a free group (using foldings, equivalence of injectivity and surjectivity, and trial and error) but I ave no idea how to do anything with the relation.
I would love to hear about specific methods for surface groups as well as general methods for 1-relator groups (if such methods exist).
$\textit{Added Later:}$ To summarize the below answers and comments (which were very helpful and gave me a lot to think about) it seems that the only part of may question tat still stands is how to determine if a map from a surface group to itself is surjective (or equivalently by the below discussion how to determine if the image has finite index).  
 A: This is not a complete answer, but may be helpful. You did not say how $\phi$ is given, but I will assume it is by generator images, because that enables you to compute $\phi$ on all group elements.
It is known that all finitely generated subgroups of  a surface either have finite index and are isomorphic to a possibly different surface group, or they have infinite index and are free. So this applies to the image of $\phi$.
If this image has finite index, then you can certainly verify that by coset enumeration for example, and that will tell you the index and hence tell you whether $\phi$ is surjective. You can then theoretically at least decide whether $\phi$ is injective by looking for an element in the kernel and also looking for an inverse map. You carry out these searches in parallel and one of them must eventually return the answer. That is of course very inefficient in general, but in specific examples you will often get the answer reasonably quickly.
If $\phi$ is an automorphism, then you can in theory determine whether it is inner, because the conjugacy problem on ordered lists is solvable in all hyperbolic groups. In fact Dehn gave a solution to the conjugacy problem on elements in hyperbolic groups, and I think that would help you determine the answer in practice.
So suppose that the image of $\phi$ has infinite index and is therefore free. So $\phi$ is neither injective nor surjective in that case. What I do not know immediately is whether you can even theoretically verify that the index is infinite.
You could do that (also in practice) if the image is a quasiconvex subgroup of $S_g$, using a method similar to Stalling Foldings. I am not sure whether all finitely generated subgroups of surface groups are quasiconvex. That must have been thought about,so it must be either known or a known open problem.
Or perhaps, even if the answer is no,  the generalized word problem is known to be solvable in surface groups?
Added later: after  checking the known results, I see that a surface group cannot be isomorphic to a proper subgroup of finite index, because such subgroups have higher Euler characteristic than the original group. Also, surface groups are residually finite and hence Hopfian, so a surjective homomorphism must be an isomorphism.
A: In the specific setting of surface groups, to check whether a surjective map is inner you just need to check that you map has the form $a_i\mapsto p_i^{-1}a_ip_i$ and $b_i\mapsto q_i^{-1}b_iq_i$ (that is, you just need to check that every generator is sent to itself). This problem is soluble as surface groups have soluble conjugacy problem.
More precisely, an automorphism is pointwise inner if each generator is mapped to a conjugate of itself (as above). Then in a surface group, pointwise inner automorphisms are actually inner. I believe this was first proven in:

O. Bogopolski, E. Kudryavtseva, H. Zieschang, Simple curves on surfaces and an analog of a theorem of Magnus for surface groups, Math. Z. 247 (2004), no. 3, 595–609.

However, I cannot access the full version of this paper to verify this. (This paper states that the above result holds in the introduction, although somewhat opaquely.)
Note that in general pointwise inner does not imply inner.

The OP has pointed out that the following question remains unanswered: Can we determine if a given endomorphism is surjective? The answer is yes, by combining the following two theorems:

Theorem (Louder, currently unpublished).
  Write $\mathbf{x}=\{x_1, y_1, \ldots, x_n, y_n\}$, and $G=\langle \mathbf{x}\mid [x_1, y_1] \cdots [x_n, y_n]\rangle$. A $2n$-tuple $(U_1, V_1, \ldots, U_n, V_m)$, with each $U_i, V_i\in F(\mathbf{x})$, generates $G$ if and only if there exists some $\phi\in\operatorname{Aut}(\mathbf{x})$ such that $\phi(x_i)=_GU_i$ and $\phi(y_i)=_GV_i$.

Or, to put it another way, surface groups have a single Nielsen equivalence class of generating $2n$-tuples. (Louder's result is actually ridiculously strong! He proves that there is a single Nielsen equivalence class of generating $m$-tuples, for all $m$. Crazy!) 
A group is co-Hopfian if every injective endomorphism is surjective.

Theorem (see III.22 of P. de la Harpe, Topics in geometric group theory). If $n\geq2$ then $G=\langle \mathbf{x}\mid [x_1, y_1] \cdots [x_n, y_n]\rangle$ is co-Hopfian.

These two theorems gives you a (pretty slow!) algorithm to determine if an endomorphism generates your group as follows:
Let $\varphi:G\rightarrow G$ be your endomorphism.


*

*Write $S'_k$ for the set of words in $F(x_1, y_1, \ldots, x_n, y_n)$ which have length $k$ and which are non-trivial in $G$. Write $S_k:=\varphi(S'_k)$.

*Write $\varphi(x_i)=U_i$ and $\varphi(y_i)=V_i$. Write $T_k$ for the set of $2n$-tuples $(X_1, Y_1, \ldots, X_n, Y_n)$ which generate $F(\mathbf{x})$ such that $|X_i|, |Y_i|\leq k$ for all $i$.

*For $k=1$, check to see if $S_k$ contains a word which is non-empty in $F(x_1, y_1, \ldots, x_n, y_n)$ but is trivial in $G$. If yes then our tuple does not generate $G$, so terminate algorithm here.

*For $k=1$, check to see if $T_k$ contains a tuple $(X_1, Y_1, \ldots, X_n, Y_n)$ such that $U_i=_GX_i$, $V_i=_GY_i$ for all $i$. If yes then our tuple generates $G$, so terminate algorithm here.

*Repeat Steps $3$ and $4$, increasing $k$ with each iteration.
This algorithm terminates as:


*

*if your tuple generates $G$ then Louder's theorem proves that we will terminate at Step $4$ for some $k$,

*if your tuples does not  generate $G$ then your endomorphism $\varphi:G\rightarrow G$ is not injective so the kernel contains some non-trivial element. Hence, we will terminate at Step $3$.
