function sfModule(oArg){
    var valid_colors = /^[0-9A-F]{6}$/i;
    var valid_stations = { KERA: 'valid', KUHT: 'valid', KLRU: 'valid', KTXT: 'valid', KMBH: 'valid', KOCV: 'valid', KEDT: 'valid', WKNO: 'valid', WDCN: 'valid', WLJT: 'valid', WSJK: 'valid', WTCI: 'valid', WCTE: 'valid', KUSD: 'valid', WRLK: 'valid', WSBE: 'valid', WMTJ: 'valid', WIPR: 'valid', WLVT: 'valid', WHYY: 'valid', WITF: 'valid', KNCT: 'valid', KSYS: 'valid', WVIA: 'valid', WPSX: 'valid', WQLN: 'valid', KOPB: 'valid', KETA: 'valid', WOSU: 'valid', WQED: 'valid', WKRP: 'valid', WBGU: 'valid', WCET: 'valid', WGTE: 'valid', WOUB: 'valid', WPTD: 'valid', WVIZ: 'valid', WNEO: 'valid', WSRC: 'valid', WCFE: 'valid', WLIW: 'valid', WCNY: 'valid', WMHT: 'valid', WNED: 'valid', WSKG: 'valid', WXXI: 'valid', WNET: 'valid', WPBS: 'valid', KNPB: 'valid', KNME: 'valid', KLVX: 'valid', KENW: 'valid', KRWG: 'valid', WNJT: 'valid', WENH: 'valid', KTNE: 'valid', KFME: 'valid', WTVI: 'valid', WUNC: 'valid', KUSM: 'valid', WMPN: 'valid', KOZK: 'valid', KMOS: 'valid', KETC: 'valid', KCPT: 'valid', WDSE: 'valid', KWCM: 'valid', KTCA: 'valid', KSMQ: 'valid', KAWE: 'valid', WKAR: 'valid', WCMU: 'valid', WGVU: 'valid', WNMU: 'valid', WTVS: 'valid', WDCQ: 'valid', WCBB: 'valid', WFUM: 'valid', WMPB: 'valid', WGBY: 'valid', WGBH: 'valid', WYES: 'valid', WLAE: 'valid', WLPB: 'valid', WKYU: 'valid', WKGB: 'valid', KTWU: 'valid', KPTS: 'valid', WFYI: 'valid', KOOD: 'valid', WFWA: 'valid', WIPB: 'valid', WNIN: 'valid', WNIT: 'valid', WTIU: 'valid', WVUT: 'valid', WYIN: 'valid', WTVP: 'valid', WTTW: 'valid', WSIU: 'valid', WQPT: 'valid', WMEC: 'valid', WILL: 'valid', WEIU: 'valid', WYCC: 'valid', KAID: 'valid', KDIN: 'valid', KHET: 'valid', KGTF: 'valid', WPBA: 'valid', WGTV: 'valid', WPBT: 'valid', WCEU: 'valid', WEDU: 'valid', WFSU: 'valid', WGCU: 'valid', WJCT: 'valid', WMFE: 'valid', WUSF: 'valid', WSRE: 'valid', WXEL: 'valid', WUFT: 'valid', WLRN: 'valid', WHUT: 'valid', WEDH: 'valid', KBDI: 'valid', KRMA: 'valid', KTSC: 'valid', KLCS: 'valid', KCET: 'valid', KCSM: 'valid', KVPT: 'valid', KIXE: 'valid', KOCE: 'valid', KPBS: 'valid', KQED: 'valid', KRCB: 'valid', KTEH: 'valid', KVCR: 'valid', KVIE: 'valid', KEET: 'valid', KUAT: 'valid', KAET: 'valid', KVZK: 'valid', KETS: 'valid', WBIQ: 'valid', KUAC: 'valid', KTOO: 'valid', KAKM: 'valid', KCTF: 'valid', KCOS: 'valid', KAMU: 'valid', KACV: 'valid', KLRN: 'valid', KBYU: 'valid', KUED: 'valid', WBRA: 'valid', WVPT: 'valid', WHRO: 'valid', WCVE: 'valid', WETA: 'valid', WTJX: 'valid', WETK: 'valid', KBTC: 'valid', KCTS: 'valid', KSPS: 'valid', KWSU: 'valid', WMVS: 'valid', WPNE: 'valid', WSWP: 'valid', KCWC: 'valid', KRMJ: 'valid', WQEC: 'valid', WSEC: 'valid', WHTJ: 'valid', KYVE: 'valid', KTNW: 'valid', WBCC: 'valid', KQET: 'valid' };

    //if (!valid_colors(oArg.bgcolor))
    //  oArg.bgcolor = '';
    //if (!valid_colors(oArg.fontcolor))
    //  oArg.fontcolor = '';
    //if (valid_stations[oArg.station.toUpperCase()] === undefined)
    //  oArg.station = 'PBS';

    var script_name = 'storyfactory_module.js';
    var script = getModuleScript(script_name);
    var o = getObject(oArg.station,oArg.bgcolor,oArg.fontcolor);
    script.parentNode.insertBefore(o, script);
    script.parentNode.removeChild(script);
}
 
function getModuleScript(script_name){
    var scripts = document.body.getElementsByTagName('script');
        for (i = 0; i < scripts.length; i++) {
                if (scripts[i].src.indexOf(script_name) != -1) {
                        script = scripts[i];
                        break;
                }
        }
    return script;
}
 
function getObject(station,bgcolor,fontcolor){
    var flashvars = 'stationCallLetters=' + station + '&customBackgroundColor=' + bgcolor + '&customFontColor=' + fontcolor;
    var swf_url = 'http://pbskids.org/modules/storyfactory/pbskids-storyfactory.swf';
   
    var s = document.createElement('span');
    var o = "<object type='application/x-shockwave-flash' " +
            " data='" + swf_url + "' " +
            "width='100%'" +
            "height='235' >" +
            "<param name='allowscriptaccess' value='always' />" +
            "<param name='flashvars' value='" + flashvars + "' />" +
            "<param name='movie' value='" + swf_url + "' />"; 
    
 
    s.innerHTML = o;
    return s;
}
