The second part of your question about what causes the check engine light to come on just showed up on my end:
The check engine light comes on when the on-board computer detects a fault in either engine performance or driveability, transmission control system, or emission control system. There are literally hundreds of reasons that will set the check engine light, ranging from engine vacuum leak, evaporative emissions leak, engine misfire, low engine compression, internal transmission problem, one of dozens of engine or transmission sensors or solenoids, open or short in wiring harness, fuel delivery problem, or on-board computer failure.
The only way to find out what the problem is is to have the on-board computer read with a diagnostic scanner. It will read any stored diagnostic trouble codes and have a brief definition of problem. At that point, pinpoint diagnostics can be done to determine exact cause of the problem. Any one trouble code can have anywhere from 3-12 reasons that can cause that particular problem. this is why diagnostics has to be done, in order to determine exact cause so that you are not just throwing parts at it until fixed.
You can have the computer read for free at Autozone or most major parts stores. They will give you the code number and what it generally refers to, but they dont do the diagnostics required in order to determine the exact cause of the fault code. If you decide to go this route, once you get the fault code numbers, you can post them here by re-opening this question, and I can give you the proper diagnostic testing procedure in order to find and then fix the problem at no additional charge(as long as this answer has already been ACCEPTED)