Nit, there seems to be an extra newline that can be omitted here before the else if statement (if I'm reading this correctly)...Empty lines can always be ommited, but in this case I actually like it as it seems to help readability..
If you think its useful I'm fine with it as is...