PIC interrupt delay_ms
Instead of using delay_ms() to do your LED timing, you should use the timer interrupt for that. I don't know MikroC at all, but make sure you have the timing interrupts correct first. Then, figure out the duration between two successive timer interrupts. Using this value you can then add a global (static) variable to hold your upper bound for your counter (I guess in your case, cnt). You would calculate these two upper bound values manually: one for mode one, one for mode two (i.e. your counter should count up and reset back to 0 once it reaches the respective value). These values will determine your 3 sec or 1 sec delay. You could have another global variable to determine whether the LED should be on or off but you could do without it.

Now in the main code, you just need to change your counter bounds inside your if-else statement.