Headlights
the BCM controls the fog lights. when you push the fog lights button you are asking the BCM to turn them on. the BCM make sure the parking lights are on, and makes sure the high beams are off. if all's good it provides a ground output to the fog lights relay which is in the under hood electrical center.
to prevent them from turning off with the high beams on you can use a relay which is energized by the high beams to provide that ground signal back to the fog lights any time the high beams are on. as a result you are giving back the signal that the BCM took away. downsides: using a simple relay will turn on the fog lights when the high beams are on no matter what, even if you don't have the fog lights on to begin with. the fog lights indicator will not be lit but the lights will be on, and when turning the high beams off there is a brief delay before the BCM turns the fog lights back on, so you will see the fog lights flash off for a split second then come back on.
another method could be to find the wire which tells the BCM that the high beams are on and cut it. then theoretically the BCM would not know when you turn on the high beams and the fog lights would just keep working. that would be the best scenario but I haven't researched to find that wire yet, I don't think anyone has done it, and we don't know what other side effects there might be. does the BCM use the high beam input for anything else? maybe to turn on the high beam indicator so by doing this your high beam indicator doesn't work anymore? who knows. I don't think its been done. everyone just does the relay mod which works great.
the same relay mod can be used to prevent your low beams from turning off when the ihgh beams are turned on by the way.
as for DRL's pulling fuse #20 (I think) does the trick but you lose your approach lights if you do so. a better fix is to disable the relays which turn the DRLs on. I don't remember which one is which but they are in the instrument cluster electrical center which is next to the BCM. if you pull the relays out (one for each side) you will disable the DRLs but the car will throw codes. remove the relays and take them apart, its easy to remove the outer casing. then locate the contacts in side the relay and place an insulator of some kind in between. I used a small strip of paper. reassemble the relay and put it back in place. the BCM will be able to see the relay and open and close it so no codes. but with the contacts disabled by insulating them to when the relay is energized the contacts still don't make contact your DRLs are gone for good with no other side effects.
I've done all of them and I can help you out if you need any more info.
http://www.oznium.com/relay40
the contacts of the relay have to power the fog lights so you need one that will have some decent capacity. they also sell the plug in harnesses for them.
if you want more info on how to hook it all up my good friend mtndv8 has a detailed write up on doing some of this rewiring (high and low beam lights mod in particular) I'm not sure where that thread is but good info there.
I also have a thread which I think I titled "fixed my headlight problem" where I show pics of how I did it (although there are less clean but much easier places to access those wires!)
also, make sure that the power source you use to run the fog lights or low beams with the high beams on can support the power and is fused! safety first





