
var map = null;
var geocoder = null;
var stview = null;
var stview_overlay = null;
var stpano = null;
var stpano_loc = null;
var stpano_ov = null;
var shown = false;
var trafficov = null;
var patrolov = null;
var hotzonesov = null;
var filter = 0;;
var filter_days = 0;
var filter_user = "";
var filter_type = "0|1|2|3|4|5|7|20|21|22|23|24|25|26|27|28|29|30|31|32|33|40";
var filter_state = "A|Q|P|N|E|S|G";
var filter_level = 516159;
var filter_action = "";
var filter_all = false;
var TrapsterLatCookie = "TrapsterLatCookie";
var TrapsterLngCookie = "TrapsterLngCookie";
var TrapsterZoomCookie = "TrapsterZoomCookie";
var TrapsterTypeCookie = "TrapsterTypeCookie";
var TrapsterFilterCookie = "TrapsterFilterCookie";
var TrapsterFilterTypesCookie = "TrapsterFilterTypesCookie";
var TrapsterFilterStatusCookie = "TrapsterFilterStatusCookie";
var TrapsterFilterLevelCookie = "TrapsterFilterLevelCookie";
var TrapsterLokiCookie = "TrapsterLokiCookie";
var shown_markers = Array();
var gm_conn = null;
var iw_conn = null;
var traps_definition = null;
var clustericons = null;
var animateRun = true;
var markerList = new Array();
var mvmarker = null;
var mvmarkerll = null;
var infowindow = null;
var shift_key = false;
var alt_key = false;
var tooltip = null;

// categories
traps_categories = [];
traps_categories[3] = { sequence: 1, name: "Most Popular" };
traps_categories[1] = { sequence: 2, name: "Enforcement Points" };
traps_categories[2] = { sequence: 3, name: "Road Hazards" };
traps_categories[5] = { sequence: 5, name: "EV Charging Stations" };

// traps
traps_definition = [];
traps_definition[0] = {
        name: "Live Police",
        livetrap: true,
        reportable: true,
        category: 3,
        icons: {
         r: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/lp_red/7FF4F83A-02B0-4324-BCFE-0906159238FE.png",35,35,11,35),
     y: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/lp_yellow/AC5D7BA9-A666-47B0-9575-2A8CBA89BCAB.png",35,35,11,35),
     g: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/lp_green/953EFE01-C1A8-4FFF-A4FC-A07FF0D901F6.png",35,35,11,35),
     b: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/lp_burried/5D9C55BA-1175-494B-855F-DE35F6CBDB8A.png",35,35,11,35),
     n: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/lp_newbie/F3717206-D5E0-4E67-977F-D57206F1A502.png",35,35,11,35),
     k: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/lp_quarantined/0C547E28-816B-40FC-B46D-AD911357DB7D.png",35,35,11,35),
     p: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/lp_probated/FA6E967E-ECB0-4131-AB04-0CFBA7563076.png",35,35,11,35),
     s: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/lp_scheduled/7303F1EF-F11D-4F90-AF7C-C6B572A93C96.png",35,35,11,35),
     ag: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/lp_aged/299EBCF2-7DDA-45B1-8CEB-D1AC14F1ED93.png",35,35,11,35)
    },
     levels: [
             { bit: 1, name: "Validated", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/lp_red/7FF4F83A-02B0-4324-BCFE-0906159238FE.png",35,35,11,35) },
     { bit: 2, name: "Law enforcement", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/lp_red/7FF4F83A-02B0-4324-BCFE-0906159238FE.png",35,35,11,35) }
   ]
};
traps_definition[1] = {
        name: "Red Light Camera",
        livetrap: false,
        reportable: true,
        category: 1,
        icons: {
         r: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/rlc_red/B763624B-EABD-43DC-AF97-FF8F5BC2677E.png",35,35,11,35),
     y: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/rlc_yellow/311D10BC-77D5-48CE-828C-F394B97078B2.png",35,35,11,35),
     g: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/rlc_green/46476028-CE61-4B85-8BC6-B35A130CEA52.png",35,35,11,35),
     b: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/rlc_burried/E2643FCB-FF2B-4861-B790-5CB93E1A4346.png",35,35,11,35),
     n: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/rlc_newbie/5C6C8E58-0BA7-4E27-A3AB-3B3C910DBF56.png",35,35,11,35),
     k: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/rlc_quarantined/662D7501-97B2-4898-AB82-A59409D1AC1E.png",35,35,11,35),
     p: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/rlc_probated/1A832F81-A83F-4B6E-9397-A8CC34EBA7D3.png",35,35,11,35),
     e: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/rlc_pending/0C5ABF5D-74FA-4668-9798-977C717E966A.png",35,35,11,35),
     s: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/rlc_scheduled/B9237E8B-4174-45AF-A287-005B97C8E644.png",35,35,11,35),
     ag: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/rlc_aged/4E2D1404-F607-4FB7-BDCE-CC0990C62388.png",35,35,11,35)
    },
     levels: [
             { bit: 1, name: "Validated", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/rlc_red/B763624B-EABD-43DC-AF97-FF8F5BC2677E.png",35,35,11,35) },
     { bit: 2, name: "Law enforcement", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/rlc_red/B763624B-EABD-43DC-AF97-FF8F5BC2677E.png",35,35,11,35) }
   ]
};
traps_definition[2] = {
        name: "Fixed Speed Camera",
        livetrap: false,
        reportable: true,
        category: 1,
        icons: {
         r: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/sc_red/C5C4FB8F-4CFD-43B6-8A48-974C7DA1B9E4.png",35,35,11,35),
     y: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/sc_yellow/245C24A4-A8C4-4F4F-BAD0-2A522C4473D9.png",35,35,11,35),
     g: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/sc_green/6E0F08C9-608A-4460-959A-F204451573ED.png",35,35,11,35),
     b: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/sc_burried/DE386AAA-2756-48B1-8F11-E4C45BD13072.png",35,35,11,35),
     n: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/sc_newbie/B6A16A68-0093-4018-A208-210D2B001A23.png",35,35,11,35),
     k: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/sc_quarantined/E06BD55E-BFF4-4F6D-B4E9-C0A66EC2D863.png",35,35,11,35),
     p: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/sc_probated/52DDDD22-220B-4C8C-A5D8-84368E6F99BA.png",35,35,11,35),
     e: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/sc_pending/2E2F37AF-32E0-4BB0-86E4-695A2A42B86B.png",35,35,11,35),
     s: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/sc_scheduled/E996B796-2B28-4D20-96AC-E2E0D45C510A.png",35,35,11,35),
     ag: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/sc_aged/8437FB99-5267-4C27-AD0D-A7807DE4C4F6.png",35,35,11,35)
    },
     levels: [
             { bit: 1, name: "Validated", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/sc_red/C5C4FB8F-4CFD-43B6-8A48-974C7DA1B9E4.png",35,35,11,35) },
     { bit: 2, name: "Law enforcement", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/sc_red/C5C4FB8F-4CFD-43B6-8A48-974C7DA1B9E4.png",35,35,11,35) }
   ]
};
traps_definition[3] = {
        name: "Known Enforcement Point",
        livetrap: false,
        reportable: true,
        category: 1,
        icons: {
         r: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/pohh_red/C249088C-A922-4506-A01D-87CE68BBC084.png",35,35,11,35),
     y: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/pohh_yellow/38AE5C04-4540-4C3A-93EB-B466231CBA60.png",35,35,11,35),
     g: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/pohh_green/22DE018F-6762-4E78-8198-FA6E6F350443.png",35,35,11,35),
     b: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/pohh_burried/D8818A7B-BD31-4B7B-B621-FB3022EB7A2B.png",35,35,11,35),
     n: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/pohh_newbie/BA749FB5-958E-4BD9-878C-8E0D3473D84C.png",35,35,11,35),
     k: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/pohh_quarantined/CD5A86F1-DF7F-4881-8E23-306AD628EA10.png",35,35,11,35),
     p: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/pohh_probated/10D40D86-3B06-43D3-AF83-6EA267EFF916.png",35,35,11,35),
     e: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/pohh_pending/40899CB0-4472-47D9-A435-4F029F4321A4.png",35,35,11,35),
     s: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/pohh_scheduled/09750826-1AB7-4817-8DAD-E40CD467C6E5.png",35,35,11,35),
     ag: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/pohh_aged/06CA2F1A-B75C-404F-942C-BCCC45429CC5.png",35,35,11,35)
    },
     levels: [
             { bit: 1, name: "Validated", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/pohh_red/C249088C-A922-4506-A01D-87CE68BBC084.png",35,35,11,35) },
     { bit: 2, name: "Law enforcement", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/pohh_red/C249088C-A922-4506-A01D-87CE68BBC084.png",35,35,11,35) }
   ]
};
traps_definition[4] = {
        name: "Combo Camera",
        livetrap: false,
        reportable: true,
        category: 1,
        icons: {
         r: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/cb_red/E49CF7D8-9603-4871-8F29-42BF41337C5E.png",35,35,11,35),
     y: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/cb_yellow/0DABF870-AADB-42ED-B869-12FB0EFA3463.png",35,35,11,35),
     g: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/cb_green/D1909FB2-7C16-4851-9FEA-21D3D04E9B38.png",35,35,11,35),
     b: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/cb_burried/B3654733-4CD3-40E4-94A7-4E227178F1D3.png",35,35,11,35),
     n: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/cb_newbie/3D17F71B-5CFC-4939-B057-657BF2E5D64C.png",35,35,11,35),
     k: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/cb_quarantined/552102E0-A421-4CB4-A96C-6CD7149F93B3.png",35,35,11,35),
     p: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/cb_probated/B875A2AD-E520-4DEF-8FDA-580F80336DAB.png",35,35,11,35),
     e: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/cb_pending/5FBEBA28-18AB-4787-BC0A-A3A1D93A4C2E.png",35,35,11,35),
     s: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/cb_scheduled/945E529E-6EBC-4E3D-8694-6BCDB7309136.png",35,35,11,35),
     ag: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/cb_aged/4E8AB26E-FAA8-41B5-B1A7-B01390A185F0.png",35,35,11,35)
    },
     levels: [
             { bit: 1, name: "Validated", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/cb_red/E49CF7D8-9603-4871-8F29-42BF41337C5E.png",35,35,11,35) },
     { bit: 2, name: "Law enforcement", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/cb_red/E49CF7D8-9603-4871-8F29-42BF41337C5E.png",35,35,11,35) }
   ]
};
traps_definition[5] = {
        name: "Mobile Speed Camera",
        livetrap: true,
        reportable: true,
        category: 3,
        icons: {
         r: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/msc_red/9D22AF26-87D8-4D24-B04E-3661EE13393D.png",35,35,11,35),
     y: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/msc_yellow/CCEB7E52-B4F4-41A5-88B7-6AAFEEE3533D.png",35,35,11,35),
     g: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/msc_green/E3D539F6-B67C-46CE-BDCF-F5CE135ED644.png",35,35,11,35),
     b: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/msc_burried/A7D1601B-BF9E-4F1B-B310-587DDA540D24.png",35,35,11,35),
     n: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/msc_newbie/33B207C6-BAEE-4C32-8363-6D13995B2A98.png",35,35,11,35),
     k: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/msc_quarantined/332CE202-3852-4367-8BF4-EE39CF99F17F.png",35,35,11,35),
     p: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/msc_probated/1B496E5E-3143-4633-8FFC-0261231CF646.png",35,35,11,35),
     s: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/msc_scheduled/49D73F93-6153-40CF-B188-E696F1E74EC1.png",35,35,11,35),
     ag: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/msc_aged/2A0A95F7-8491-4FDF-916B-F48F7E8FB02B.png",35,35,11,35)
    },
     levels: [
             { bit: 1, name: "Validated", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/msc_red/9D22AF26-87D8-4D24-B04E-3661EE13393D.png",35,35,11,35) },
     { bit: 2, name: "Law enforcement", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/msc_red/9D22AF26-87D8-4D24-B04E-3661EE13393D.png",35,35,11,35) }
   ]
};
traps_definition[7] = {
        name: "MSC Often Seen Here",
        livetrap: true,
        reportable: true,
        category: 1,
        icons: {
         r: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/mscosh_red/A2CAFCAF-90B8-4570-8257-64E9A091F9C2.png",35,35,11,35),
     y: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/mscosh_yellow/42D962AD-1E30-454B-ABB9-0783C4192D21.png",35,35,11,35),
     g: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/mscosh_green/7EF63C57-11AB-47B3-BE4D-40EFA2A9B2F1.png",35,35,11,35),
     b: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/mscosh_burried/9FD3C611-DE92-45AE-A86B-B405F258E3DE.png",35,35,11,35),
     n: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/mscosh_newbie/B6463999-CD3C-480D-827D-6F34976B7354.png",35,35,11,35),
     k: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/mscosh_quarantined/777487DB-0C77-49D0-92B8-DAAE40C0C3A9.png",35,35,11,35),
     p: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/mscosh_probated/C9F496DD-3273-46A3-9574-7527A493F895.png",35,35,11,35),
     e: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/mscosh_pending/D436B316-F8EB-4F33-9A81-04AA719B9D1E.png",35,35,11,35),
     s: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/mscosh_scheduled/FC899C88-BEC7-424B-8514-F9933D2D5652.png",35,35,11,35),
     ag: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/mscosh_aged/D98E5338-1249-4A65-8741-D380224E0EC7.png",35,35,11,35)
    },
     levels: [
             { bit: 1, name: "Validated", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/mscosh_red/A2CAFCAF-90B8-4570-8257-64E9A091F9C2.png",35,35,11,35) },
     { bit: 2, name: "Law enforcement", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/mscosh_red/A2CAFCAF-90B8-4570-8257-64E9A091F9C2.png",35,35,11,35) }
   ]
};
traps_definition[20] = {
        name: "Children at Play",
        livetrap: true,
        reportable: true,
        category: 2,
        icons: {
         r: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/childrenatplay/307D4997-0042-4C35-9546-A19141B1CB01.png",35,35,17,35),
     y: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/childrenatplay/307D4997-0042-4C35-9546-A19141B1CB01.png",35,35,17,35),
     g: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/childrenatplay/307D4997-0042-4C35-9546-A19141B1CB01.png",35,35,17,35),
     b: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/childrenatplay/307D4997-0042-4C35-9546-A19141B1CB01.png",35,35,17,35),
     n: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/childrenatplay/307D4997-0042-4C35-9546-A19141B1CB01.png",35,35,17,35),
     k: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/childrenatplay/307D4997-0042-4C35-9546-A19141B1CB01.png",35,35,17,35),
     p: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/childrenatplay/307D4997-0042-4C35-9546-A19141B1CB01.png",35,35,17,35),
     e: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/childrenatplay/307D4997-0042-4C35-9546-A19141B1CB01.png",35,35,17,35),
     s: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/childrenatplay/307D4997-0042-4C35-9546-A19141B1CB01.png",35,35,17,35),
     ag: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/childrenatplay/307D4997-0042-4C35-9546-A19141B1CB01.png",35,35,17,35)
    },
     levels: [
             { bit: 1, name: "Validated", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/childrenatplay/307D4997-0042-4C35-9546-A19141B1CB01.png",35,35,17,35) },
     { bit: 2, name: "Law enforcement", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/childrenatplay/307D4997-0042-4C35-9546-A19141B1CB01.png",35,35,17,35) }
   ]
};
traps_definition[21] = {
        name: "Accident",
        livetrap: true,
        reportable: true,
        category: 3,
        icons: {
         r: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/accident/735DA4C8-E365-4CDE-ACF0-F4D9107F4B6E.png",35,35,17,35),
     y: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/accident/735DA4C8-E365-4CDE-ACF0-F4D9107F4B6E.png",35,35,17,35),
     g: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/accident/735DA4C8-E365-4CDE-ACF0-F4D9107F4B6E.png",35,35,17,35),
     b: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/accident/735DA4C8-E365-4CDE-ACF0-F4D9107F4B6E.png",35,35,17,35),
     n: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/accident/735DA4C8-E365-4CDE-ACF0-F4D9107F4B6E.png",35,35,17,35),
     k: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/accident/735DA4C8-E365-4CDE-ACF0-F4D9107F4B6E.png",35,35,17,35),
     p: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/accident/735DA4C8-E365-4CDE-ACF0-F4D9107F4B6E.png",35,35,17,35),
     e: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/accident/735DA4C8-E365-4CDE-ACF0-F4D9107F4B6E.png",35,35,17,35),
     s: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/accident/735DA4C8-E365-4CDE-ACF0-F4D9107F4B6E.png",35,35,17,35),
     ag: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/accident/735DA4C8-E365-4CDE-ACF0-F4D9107F4B6E.png",35,35,17,35)
    },
     levels: [
             { bit: 1, name: "Validated", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/accident/735DA4C8-E365-4CDE-ACF0-F4D9107F4B6E.png",35,35,17,35) },
     { bit: 2, name: "Law enforcement", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/accident/735DA4C8-E365-4CDE-ACF0-F4D9107F4B6E.png",35,35,17,35) }
   ]
};
traps_definition[22] = {
        name: "Brush Fire",
        livetrap: true,
        reportable: true,
        category: 2,
        icons: {
         r: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/brushfire/E9F61456-6D54-4D5A-819D-36D6D89D2898.png",35,35,17,35),
     y: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/brushfire/E9F61456-6D54-4D5A-819D-36D6D89D2898.png",35,35,17,35),
     g: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/brushfire/E9F61456-6D54-4D5A-819D-36D6D89D2898.png",35,35,17,35),
     b: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/brushfire/E9F61456-6D54-4D5A-819D-36D6D89D2898.png",35,35,17,35),
     n: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/brushfire/E9F61456-6D54-4D5A-819D-36D6D89D2898.png",35,35,17,35),
     k: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/brushfire/E9F61456-6D54-4D5A-819D-36D6D89D2898.png",35,35,17,35),
     p: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/brushfire/E9F61456-6D54-4D5A-819D-36D6D89D2898.png",35,35,17,35),
     e: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/brushfire/E9F61456-6D54-4D5A-819D-36D6D89D2898.png",35,35,17,35),
     s: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/brushfire/E9F61456-6D54-4D5A-819D-36D6D89D2898.png",35,35,17,35),
     ag: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/brushfire/E9F61456-6D54-4D5A-819D-36D6D89D2898.png",35,35,17,35)
    },
     levels: [
             { bit: 1, name: "Validated", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/brushfire/E9F61456-6D54-4D5A-819D-36D6D89D2898.png",35,35,17,35) },
     { bit: 2, name: "Law enforcement", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/brushfire/E9F61456-6D54-4D5A-819D-36D6D89D2898.png",35,35,17,35) }
   ]
};
traps_definition[23] = {
        name: "Dangerous Intersection",
        livetrap: false,
        reportable: true,
        category: 2,
        icons: {
         r: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerintersect/C46F3655-F574-48FB-AC7B-91FF5E9F650E.png",35,35,17,35),
     y: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerintersect/C46F3655-F574-48FB-AC7B-91FF5E9F650E.png",35,35,17,35),
     g: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerintersect/C46F3655-F574-48FB-AC7B-91FF5E9F650E.png",35,35,17,35),
     b: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerintersect/C46F3655-F574-48FB-AC7B-91FF5E9F650E.png",35,35,17,35),
     n: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerintersect/C46F3655-F574-48FB-AC7B-91FF5E9F650E.png",35,35,17,35),
     k: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerintersect/C46F3655-F574-48FB-AC7B-91FF5E9F650E.png",35,35,17,35),
     p: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerintersect/C46F3655-F574-48FB-AC7B-91FF5E9F650E.png",35,35,17,35),
     e: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerintersect/C46F3655-F574-48FB-AC7B-91FF5E9F650E.png",35,35,17,35),
     s: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerintersect/C46F3655-F574-48FB-AC7B-91FF5E9F650E.png",35,35,17,35),
     ag: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerintersect/C46F3655-F574-48FB-AC7B-91FF5E9F650E.png",35,35,17,35)
    },
     levels: [
             { bit: 1, name: "Validated", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerintersect/C46F3655-F574-48FB-AC7B-91FF5E9F650E.png",35,35,17,35) },
     { bit: 2, name: "Law enforcement", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerintersect/C46F3655-F574-48FB-AC7B-91FF5E9F650E.png",35,35,17,35) }
   ]
};
traps_definition[24] = {
        name: "Dangerous Curve",
        livetrap: false,
        reportable: true,
        category: 2,
        icons: {
         r: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerouscurve/8583D4B7-592F-4F23-B679-D44F42B0C128.png",35,35,17,35),
     y: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerouscurve/8583D4B7-592F-4F23-B679-D44F42B0C128.png",35,35,17,35),
     g: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerouscurve/8583D4B7-592F-4F23-B679-D44F42B0C128.png",35,35,17,35),
     b: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerouscurve/8583D4B7-592F-4F23-B679-D44F42B0C128.png",35,35,17,35),
     n: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerouscurve/8583D4B7-592F-4F23-B679-D44F42B0C128.png",35,35,17,35),
     k: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerouscurve/8583D4B7-592F-4F23-B679-D44F42B0C128.png",35,35,17,35),
     p: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerouscurve/8583D4B7-592F-4F23-B679-D44F42B0C128.png",35,35,17,35),
     e: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerouscurve/8583D4B7-592F-4F23-B679-D44F42B0C128.png",35,35,17,35),
     s: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerouscurve/8583D4B7-592F-4F23-B679-D44F42B0C128.png",35,35,17,35),
     ag: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerouscurve/8583D4B7-592F-4F23-B679-D44F42B0C128.png",35,35,17,35)
    },
     levels: [
             { bit: 1, name: "Validated", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerouscurve/8583D4B7-592F-4F23-B679-D44F42B0C128.png",35,35,17,35) },
     { bit: 2, name: "Law enforcement", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/dangerouscurve/8583D4B7-592F-4F23-B679-D44F42B0C128.png",35,35,17,35) }
   ]
};
traps_definition[25] = {
        name: "Flooded Road",
        livetrap: true,
        reportable: true,
        category: 2,
        icons: {
         r: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/flood/DE054486-126D-4D56-8482-A7EB5EF608CB.png",35,35,17,35),
     y: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/flood/DE054486-126D-4D56-8482-A7EB5EF608CB.png",35,35,17,35),
     g: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/flood/DE054486-126D-4D56-8482-A7EB5EF608CB.png",35,35,17,35),
     b: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/flood/DE054486-126D-4D56-8482-A7EB5EF608CB.png",35,35,17,35),
     n: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/flood/DE054486-126D-4D56-8482-A7EB5EF608CB.png",35,35,17,35),
     k: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/flood/DE054486-126D-4D56-8482-A7EB5EF608CB.png",35,35,17,35),
     p: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/flood/DE054486-126D-4D56-8482-A7EB5EF608CB.png",35,35,17,35),
     e: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/flood/DE054486-126D-4D56-8482-A7EB5EF608CB.png",35,35,17,35),
     s: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/flood/DE054486-126D-4D56-8482-A7EB5EF608CB.png",35,35,17,35),
     ag: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/flood/DE054486-126D-4D56-8482-A7EB5EF608CB.png",35,35,17,35)
    },
     levels: [
             { bit: 1, name: "Validated", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/flood/DE054486-126D-4D56-8482-A7EB5EF608CB.png",35,35,17,35) },
     { bit: 2, name: "Law enforcement", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/flood/DE054486-126D-4D56-8482-A7EB5EF608CB.png",35,35,17,35) }
   ]
};
traps_definition[26] = {
        name: "Ice On Road",
        livetrap: true,
        reportable: true,
        category: 2,
        icons: {
         r: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ice/0CC7CD69-BFEC-4401-BFF2-AD90CF19E810.png",35,35,17,35),
     y: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ice/0CC7CD69-BFEC-4401-BFF2-AD90CF19E810.png",35,35,17,35),
     g: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ice/0CC7CD69-BFEC-4401-BFF2-AD90CF19E810.png",35,35,17,35),
     b: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ice/0CC7CD69-BFEC-4401-BFF2-AD90CF19E810.png",35,35,17,35),
     n: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ice/0CC7CD69-BFEC-4401-BFF2-AD90CF19E810.png",35,35,17,35),
     k: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ice/0CC7CD69-BFEC-4401-BFF2-AD90CF19E810.png",35,35,17,35),
     p: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ice/0CC7CD69-BFEC-4401-BFF2-AD90CF19E810.png",35,35,17,35),
     e: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ice/0CC7CD69-BFEC-4401-BFF2-AD90CF19E810.png",35,35,17,35),
     s: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ice/0CC7CD69-BFEC-4401-BFF2-AD90CF19E810.png",35,35,17,35),
     ag: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ice/0CC7CD69-BFEC-4401-BFF2-AD90CF19E810.png",35,35,17,35)
    },
     levels: [
             { bit: 1, name: "Validated", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ice/0CC7CD69-BFEC-4401-BFF2-AD90CF19E810.png",35,35,17,35) },
     { bit: 2, name: "Law enforcement", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ice/0CC7CD69-BFEC-4401-BFF2-AD90CF19E810.png",35,35,17,35) }
   ]
};
traps_definition[27] = {
        name: "Narrow Bridge Ahead",
        livetrap: false,
        reportable: true,
        category: 2,
        icons: {
         r: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/narrowbridge/12B64D5B-29B0-4122-8DE0-8DF5DCA559ED.png",35,35,17,35),
     y: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/narrowbridge/12B64D5B-29B0-4122-8DE0-8DF5DCA559ED.png",35,35,17,35),
     g: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/narrowbridge/12B64D5B-29B0-4122-8DE0-8DF5DCA559ED.png",35,35,17,35),
     b: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/narrowbridge/12B64D5B-29B0-4122-8DE0-8DF5DCA559ED.png",35,35,17,35),
     n: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/narrowbridge/12B64D5B-29B0-4122-8DE0-8DF5DCA559ED.png",35,35,17,35),
     k: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/narrowbridge/12B64D5B-29B0-4122-8DE0-8DF5DCA559ED.png",35,35,17,35),
     p: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/narrowbridge/12B64D5B-29B0-4122-8DE0-8DF5DCA559ED.png",35,35,17,35),
     e: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/narrowbridge/12B64D5B-29B0-4122-8DE0-8DF5DCA559ED.png",35,35,17,35),
     s: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/narrowbridge/12B64D5B-29B0-4122-8DE0-8DF5DCA559ED.png",35,35,17,35),
     ag: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/narrowbridge/12B64D5B-29B0-4122-8DE0-8DF5DCA559ED.png",35,35,17,35)
    },
     levels: [
             { bit: 1, name: "Validated", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/narrowbridge/12B64D5B-29B0-4122-8DE0-8DF5DCA559ED.png",35,35,17,35) },
     { bit: 2, name: "Law enforcement", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/narrowbridge/12B64D5B-29B0-4122-8DE0-8DF5DCA559ED.png",35,35,17,35) }
   ]
};
traps_definition[28] = {
        name: "Road Closed Ahead",
        livetrap: true,
        reportable: true,
        category: 2,
        icons: {
         r: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadclosed/F4743C66-8FCB-4F76-AB4A-8232EE2C1B5D.png",35,35,17,35),
     y: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadclosed/F4743C66-8FCB-4F76-AB4A-8232EE2C1B5D.png",35,35,17,35),
     g: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadclosed/F4743C66-8FCB-4F76-AB4A-8232EE2C1B5D.png",35,35,17,35),
     b: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadclosed/F4743C66-8FCB-4F76-AB4A-8232EE2C1B5D.png",35,35,17,35),
     n: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadclosed/F4743C66-8FCB-4F76-AB4A-8232EE2C1B5D.png",35,35,17,35),
     k: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadclosed/F4743C66-8FCB-4F76-AB4A-8232EE2C1B5D.png",35,35,17,35),
     p: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadclosed/F4743C66-8FCB-4F76-AB4A-8232EE2C1B5D.png",35,35,17,35),
     e: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadclosed/F4743C66-8FCB-4F76-AB4A-8232EE2C1B5D.png",35,35,17,35),
     s: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadclosed/F4743C66-8FCB-4F76-AB4A-8232EE2C1B5D.png",35,35,17,35),
     ag: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadclosed/F4743C66-8FCB-4F76-AB4A-8232EE2C1B5D.png",35,35,17,35)
    },
     levels: [
             { bit: 1, name: "Validated", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadclosed/F4743C66-8FCB-4F76-AB4A-8232EE2C1B5D.png",35,35,17,35) },
     { bit: 2, name: "Law enforcement", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadclosed/F4743C66-8FCB-4F76-AB4A-8232EE2C1B5D.png",35,35,17,35) }
   ]
};
traps_definition[29] = {
        name: "Road Kill",
        livetrap: true,
        reportable: true,
        category: 2,
        icons: {
         r: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadkill/50F6D9D7-6947-481E-8D4B-753AAECAD9D3.png",35,35,17,35),
     y: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadkill/50F6D9D7-6947-481E-8D4B-753AAECAD9D3.png",35,35,17,35),
     g: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadkill/50F6D9D7-6947-481E-8D4B-753AAECAD9D3.png",35,35,17,35),
     b: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadkill/50F6D9D7-6947-481E-8D4B-753AAECAD9D3.png",35,35,17,35),
     n: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadkill/50F6D9D7-6947-481E-8D4B-753AAECAD9D3.png",35,35,17,35),
     k: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadkill/50F6D9D7-6947-481E-8D4B-753AAECAD9D3.png",35,35,17,35),
     p: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadkill/50F6D9D7-6947-481E-8D4B-753AAECAD9D3.png",35,35,17,35),
     e: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadkill/50F6D9D7-6947-481E-8D4B-753AAECAD9D3.png",35,35,17,35),
     s: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadkill/50F6D9D7-6947-481E-8D4B-753AAECAD9D3.png",35,35,17,35),
     ag: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadkill/50F6D9D7-6947-481E-8D4B-753AAECAD9D3.png",35,35,17,35)
    },
     levels: [
             { bit: 1, name: "Validated", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadkill/50F6D9D7-6947-481E-8D4B-753AAECAD9D3.png",35,35,17,35) },
     { bit: 2, name: "Law enforcement", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadkill/50F6D9D7-6947-481E-8D4B-753AAECAD9D3.png",35,35,17,35) }
   ]
};
traps_definition[30] = {
        name: "Toll Booth",
        livetrap: false,
        reportable: true,
        category: 2,
        icons: {
         r: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/tollbooth/F02C35C0-3FCD-4E68-B692-E73303544594.png",35,35,17,35),
     y: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/tollbooth/F02C35C0-3FCD-4E68-B692-E73303544594.png",35,35,17,35),
     g: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/tollbooth/F02C35C0-3FCD-4E68-B692-E73303544594.png",35,35,17,35),
     b: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/tollbooth/F02C35C0-3FCD-4E68-B692-E73303544594.png",35,35,17,35),
     n: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/tollbooth/F02C35C0-3FCD-4E68-B692-E73303544594.png",35,35,17,35),
     k: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/tollbooth/F02C35C0-3FCD-4E68-B692-E73303544594.png",35,35,17,35),
     p: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/tollbooth/F02C35C0-3FCD-4E68-B692-E73303544594.png",35,35,17,35),
     e: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/tollbooth/F02C35C0-3FCD-4E68-B692-E73303544594.png",35,35,17,35),
     s: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/tollbooth/F02C35C0-3FCD-4E68-B692-E73303544594.png",35,35,17,35),
     ag: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/tollbooth/F02C35C0-3FCD-4E68-B692-E73303544594.png",35,35,17,35)
    },
     levels: [
             { bit: 1, name: "Validated", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/tollbooth/F02C35C0-3FCD-4E68-B692-E73303544594.png",35,35,17,35) },
     { bit: 2, name: "Law enforcement", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/tollbooth/F02C35C0-3FCD-4E68-B692-E73303544594.png",35,35,17,35) }
   ]
};
traps_definition[31] = {
        name: "Construction Zone",
        livetrap: true,
        reportable: true,
        category: 3,
        icons: {
         r: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/construction/DB60CFCD-D69A-4557-8612-BB5881D876A1.png",35,35,17,35),
     y: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/construction/DB60CFCD-D69A-4557-8612-BB5881D876A1.png",35,35,17,35),
     g: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/construction/DB60CFCD-D69A-4557-8612-BB5881D876A1.png",35,35,17,35),
     b: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/construction/DB60CFCD-D69A-4557-8612-BB5881D876A1.png",35,35,17,35),
     n: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/construction/DB60CFCD-D69A-4557-8612-BB5881D876A1.png",35,35,17,35),
     k: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/construction/DB60CFCD-D69A-4557-8612-BB5881D876A1.png",35,35,17,35),
     p: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/construction/DB60CFCD-D69A-4557-8612-BB5881D876A1.png",35,35,17,35),
     e: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/construction/DB60CFCD-D69A-4557-8612-BB5881D876A1.png",35,35,17,35),
     s: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/construction/DB60CFCD-D69A-4557-8612-BB5881D876A1.png",35,35,17,35),
     ag: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/construction/DB60CFCD-D69A-4557-8612-BB5881D876A1.png",35,35,17,35)
    },
     levels: [
             { bit: 1, name: "Validated", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/construction/DB60CFCD-D69A-4557-8612-BB5881D876A1.png",35,35,17,35) },
     { bit: 2, name: "Law enforcement", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/construction/DB60CFCD-D69A-4557-8612-BB5881D876A1.png",35,35,17,35) }
   ]
};
traps_definition[32] = {
        name: "School Zone",
        livetrap: false,
        reportable: true,
        category: 2,
        icons: {
         r: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/schoolzone/4EFDD2CB-523D-44A0-ABCD-09AC693EE8A6.png",35,35,17,35),
     y: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/schoolzone/4EFDD2CB-523D-44A0-ABCD-09AC693EE8A6.png",35,35,17,35),
     g: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/schoolzone/4EFDD2CB-523D-44A0-ABCD-09AC693EE8A6.png",35,35,17,35),
     b: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/schoolzone/4EFDD2CB-523D-44A0-ABCD-09AC693EE8A6.png",35,35,17,35),
     n: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/schoolzone/4EFDD2CB-523D-44A0-ABCD-09AC693EE8A6.png",35,35,17,35),
     k: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/schoolzone/4EFDD2CB-523D-44A0-ABCD-09AC693EE8A6.png",35,35,17,35),
     p: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/schoolzone/4EFDD2CB-523D-44A0-ABCD-09AC693EE8A6.png",35,35,17,35),
     e: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/schoolzone/4EFDD2CB-523D-44A0-ABCD-09AC693EE8A6.png",35,35,17,35),
     s: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/schoolzone/4EFDD2CB-523D-44A0-ABCD-09AC693EE8A6.png",35,35,17,35),
     ag: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/schoolzone/4EFDD2CB-523D-44A0-ABCD-09AC693EE8A6.png",35,35,17,35)
    },
     levels: [
             { bit: 1, name: "Validated", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/schoolzone/4EFDD2CB-523D-44A0-ABCD-09AC693EE8A6.png",35,35,17,35) },
     { bit: 2, name: "Law enforcement", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/schoolzone/4EFDD2CB-523D-44A0-ABCD-09AC693EE8A6.png",35,35,17,35) }
   ]
};
traps_definition[33] = {
        name: "Road Hazard",
        livetrap: true,
        reportable: true,
        category: 3,
        icons: {
         r: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadhazard/39782713-487D-4070-9D76-11273B3A609C.png",35,35,17,35),
     y: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadhazard/39782713-487D-4070-9D76-11273B3A609C.png",35,35,17,35),
     g: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadhazard/39782713-487D-4070-9D76-11273B3A609C.png",35,35,17,35),
     b: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadhazard/39782713-487D-4070-9D76-11273B3A609C.png",35,35,17,35),
     n: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadhazard/39782713-487D-4070-9D76-11273B3A609C.png",35,35,17,35),
     k: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadhazard/39782713-487D-4070-9D76-11273B3A609C.png",35,35,17,35),
     p: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadhazard/39782713-487D-4070-9D76-11273B3A609C.png",35,35,17,35),
     e: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadhazard/39782713-487D-4070-9D76-11273B3A609C.png",35,35,17,35),
     s: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadhazard/39782713-487D-4070-9D76-11273B3A609C.png",35,35,17,35),
     ag: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadhazard/39782713-487D-4070-9D76-11273B3A609C.png",35,35,17,35)
    },
     levels: [
             { bit: 1, name: "Validated", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadhazard/39782713-487D-4070-9D76-11273B3A609C.png",35,35,17,35) },
     { bit: 2, name: "Law enforcement", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/roadhazard/39782713-487D-4070-9D76-11273B3A609C.png",35,35,17,35) }
   ]
};
traps_definition[40] = {
        name: "EV Charging Station",
        livetrap: false,
        reportable: true,
        category: 5,
        icons: {
         r: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ev_charging_station/1BBFE8C9-E826-4F8E-81F2-65562DEC822E.png",35,35,17,35),
     y: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ev_charging_station/1BBFE8C9-E826-4F8E-81F2-65562DEC822E.png",35,35,17,35),
     g: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ev_charging_station/1BBFE8C9-E826-4F8E-81F2-65562DEC822E.png",35,35,17,35),
     b: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ev_charging_station/1BBFE8C9-E826-4F8E-81F2-65562DEC822E.png",35,35,17,35),
     n: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ev_charging_station/1BBFE8C9-E826-4F8E-81F2-65562DEC822E.png",35,35,17,35),
     k: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ev_charging_station/1BBFE8C9-E826-4F8E-81F2-65562DEC822E.png",35,35,17,35),
     p: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ev_charging_station/1BBFE8C9-E826-4F8E-81F2-65562DEC822E.png",35,35,17,35),
     e: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ev_charging_station/1BBFE8C9-E826-4F8E-81F2-65562DEC822E.png",35,35,17,35),
     s: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ev_charging_station/1BBFE8C9-E826-4F8E-81F2-65562DEC822E.png",35,35,17,35),
     ag: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ev_charging_station/1BBFE8C9-E826-4F8E-81F2-65562DEC822E.png",35,35,17,35)
    },
     levels: [
             { bit: 1, name: "Validated", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ev_charging_station/1BBFE8C9-E826-4F8E-81F2-65562DEC822E.png",35,35,17,35) },
     { bit: 2, name: "Law enforcement", icon: createIcon("http://www.trapster.com/storage/APP_ATTRIBUTE/ev_charging_station/1BBFE8C9-E826-4F8E-81F2-65562DEC822E.png",35,35,17,35) }
   ]
};

// POHH opacity
traps_definition[3].icons.g_80 = createIcon("http://www.trapster.com//rl/icons/icon_PoliceHidG_80.png",35,35,11,35);
traps_definition[3].icons.g_50 = createIcon("http://www.trapster.com//rl/icons/icon_PoliceHidG_50.png",35,35,11,35);
traps_definition[3].icons.g_25 = createIcon("http://www.trapster.com//rl/icons/icon_PoliceHidG_25.png",35,35,11,35);
traps_definition[3].icons.o_80 = createIcon("http://www.trapster.com//rl/icons/icon_PoliceHidO_80.png",35,35,11,35);
traps_definition[3].icons.o_50 = createIcon("http://www.trapster.com//rl/icons/icon_PoliceHidO_50.png",35,35,11,35);
traps_definition[3].icons.o_25 = createIcon("http://www.trapster.com//rl/icons/icon_PoliceHidO_25.png",35,35,11,35);
traps_definition[3].icons.r_80 = createIcon("http://www.trapster.com//rl/icons/icon_PoliceHidR_80.png",35,35,11,35);
traps_definition[3].icons.r_50 = createIcon("http://www.trapster.com//rl/icons/icon_PoliceHidR_50.png",35,35,11,35);
traps_definition[3].icons.r_25 = createIcon("http://www.trapster.com//rl/icons/icon_PoliceHidR_25.png",35,35,11,35);

// consolidate
clustericons = {
    g: createIconAG("http://www.trapster.com/rl/small-green-dot.png"),
    y: createIconAG("http://www.trapster.com/rl/small-yellow-dot.png"),
    r: createIconAG("http://www.trapster.com/rl/small-red-dot.png")
};

Array.prototype.in_array = function(p_val) {
    for(var i = 0, l = this.length; i < l; i++) {
        if(this[i] == p_val) {
            return true;
        }
    }
    return false;
}

function maxLength(obj,len,e) {
    if(obj.value.length >= len) {
        if (navigator.userAgent.indexOf("MSIE")!=-1) {
            return false;
        }
        else if (generalNav(e)) {
            return true;
        }

        return false;
    }
    return true;
}

function createIcon(image,width,height,pinx,piny) {
    var myIcon = new GIcon();

    myIcon.image = image;
    myIcon.shadow = "";
    myIcon.iconSize = new GSize(width, height);
    myIcon.iconAnchor = new GPoint(pinx, piny);
    myIcon.infoWindowAnchor = new GPoint(width/2, 3);

    return myIcon;
}

function createIconAG(image) {
    myIcon = new GIcon();

    myIcon.image = image;
    myIcon.iconSize = new GSize(15,15 );
    myIcon.iconAnchor = new GPoint(7, 7);
    myIcon.infoWindowAnchor = new GPoint(7, 1);

    return myIcon;
}

function deleteTrap(trapid) {

    trackIt("TrapMap", "deleteTrap", "modLevel=" + moderator);

    var url = "rl/deltrap.php?id="+trapid;

    jQuery.get(url, function(data) {
        if (data.indexOf("ERROR") != -1)
            alert("Error deleting this trap");
        else {
            getTraps();
        }
    });
}

function showMoreInformation(trapid,tab,stview,stview_comment, bubble) {
    // if tab is comment, check if we should display comment/street view (only if logged in)
    if(tab == "c") {
        if(stview) {
            stview_data = stview.split('|');
            if(stview_data.length == 5) {
                // display street view comment
                bubble_view_stv(stview,stview_comment);
            }
            else if(stview_data.length == 2) {
                // show comment box
                bubble_show_comment(trapid,stview_data[0],stview_data[1]);
            }
        }
    }

    slideBubbleContent( "rl/trapinfo.php?id=" + trapid + "&t=" + tab, bubble );

    return false;
}

function isLoggedIn() {
    return logged_in;
}

function updateFilter(o) {

    filter = o.val();
    filter_days = $('#trapmap_days_filter').size() > 0 ? $('#trapmap_days_filter').val() : 0;
    filter_user = $('#trapmap_user_filter').size() > 0 ? $('#trapmap_user_filter').val() : 0;
    filter_all = $('#trapmap_all').size() > 0 ? $('#trapmap_all:checked').size() > 0 : false;

    if(filter == 11) {

        $("#trapmap_mod_action_filter").show();
        $("#trapmap_action_filter").hide();

        filter_action = $('#trapmap_mod_action_filter').size() > 0 ? $('#trapmap_mod_action_filter').val() : 0;
    }
    else {
        $("#trapmap_mod_action_filter").hide();
        $("#trapmap_action_filter").show();

        filter_action = $('#trapmap_action_filter').size() > 0 ? $('#trapmap_action_filter').val() : 0;
    }

    filter_type = "";
    if($('trapmap_type_0')) {
                    if($('#trapmap_type_0:checked').size() > 0) {
                filter_type += '0|';
            }
                    if($('#trapmap_type_1:checked').size() > 0) {
                filter_type += '1|';
            }
                    if($('#trapmap_type_2:checked').size() > 0) {
                filter_type += '2|';
            }
                    if($('#trapmap_type_3:checked').size() > 0) {
                filter_type += '3|';
            }
                    if($('#trapmap_type_4:checked').size() > 0) {
                filter_type += '4|';
            }
                    if($('#trapmap_type_5:checked').size() > 0) {
                filter_type += '5|';
            }
                    if($('#trapmap_type_7:checked').size() > 0) {
                filter_type += '7|';
            }
                    if($('#trapmap_type_20:checked').size() > 0) {
                filter_type += '20|';
            }
                    if($('#trapmap_type_21:checked').size() > 0) {
                filter_type += '21|';
            }
                    if($('#trapmap_type_22:checked').size() > 0) {
                filter_type += '22|';
            }
                    if($('#trapmap_type_23:checked').size() > 0) {
                filter_type += '23|';
            }
                    if($('#trapmap_type_24:checked').size() > 0) {
                filter_type += '24|';
            }
                    if($('#trapmap_type_25:checked').size() > 0) {
                filter_type += '25|';
            }
                    if($('#trapmap_type_26:checked').size() > 0) {
                filter_type += '26|';
            }
                    if($('#trapmap_type_27:checked').size() > 0) {
                filter_type += '27|';
            }
                    if($('#trapmap_type_28:checked').size() > 0) {
                filter_type += '28|';
            }
                    if($('#trapmap_type_29:checked').size() > 0) {
                filter_type += '29|';
            }
                    if($('#trapmap_type_30:checked').size() > 0) {
                filter_type += '30|';
            }
                    if($('#trapmap_type_31:checked').size() > 0) {
                filter_type += '31|';
            }
                    if($('#trapmap_type_32:checked').size() > 0) {
                filter_type += '32|';
            }
                    if($('#trapmap_type_33:checked').size() > 0) {
                filter_type += '33|';
            }
                    if($('#trapmap_type_40:checked').size() > 0) {
                filter_type += '40|';
            }
        
        if(!filter_type) {
            filter_type = "N";
        }
    }

    filter_state = "";
    if($('#trapmap_state_a').size() > 0) {
        if( $('#trapmap_state_a:checked').size() > 0 ) filter_state += 'A|';
        if( $('#trapmap_state_q:checked').size() > 0 ) filter_state += 'Q|';
        if( $('#trapmap_state_p:checked').size() > 0 ) filter_state += 'P|';
        if( $('#trapmap_state_n:checked').size() > 0 ) filter_state += 'N|';
        if( $('#trapmap_state_e:checked').size() > 0 ) filter_state += 'E|';
        if( $('#trapmap_state_s:checked').size() > 0 ) filter_state += 'S|';
        if( $('#trapmap_state_g:checked').size() > 0 ) filter_state += 'G|';

        if(!filter_state) filter_state = "V";
    }

    filter_level = 0;
    if($('trapmap_level_1')) {
        if($('#trapmap_level_1:checked').size() ) {
            filter_level |= 1;
        }
                    if($('#trapmap_level_2:checked').size() > 0 ) {
                filter_level |= 2;
            }
                    if($('#trapmap_level_3:checked').size() > 0 ) {
                filter_level |= 4;
            }
                    if($('#trapmap_level_4:checked').size() > 0 ) {
                filter_level |= 8;
            }
                    if($('#trapmap_level_5:checked').size() > 0 ) {
                filter_level |= 16;
            }
                    if($('#trapmap_level_6:checked').size() > 0 ) {
                filter_level |= 32;
            }
                    if($('#trapmap_level_14:checked').size() > 0 ) {
                filter_level |= 8192;
            }
                    if($('#trapmap_level_15:checked').size() > 0 ) {
                filter_level |= 16384;
            }
                    if($('#trapmap_level_16:checked').size() > 0 ) {
                filter_level |= 32768;
            }
                    if($('#trapmap_level_17:checked').size() > 0 ) {
                filter_level |= 65536;
            }
                    if($('#trapmap_level_18:checked').size() > 0 ) {
                filter_level |= 131072;
            }
                    if($('#trapmap_level_19:checked').size() > 0 ) {
                filter_level |= 262144;
            }
            }

    if(filter) {
        document.cookie = TrapsterFilterCookie + "=" + filter + "; domain=." + my_domain;
    }
    if(filter_type) {
        document.cookie = TrapsterFilterTypesCookie + "=" + filter_type + "; domain=." + my_domain;
    }
    if(filter_state) {
        document.cookie = TrapsterFilterStatusCookie + "=" + filter_state + "; domain=." + my_domain;
    }
    /*if(filter_level) */document.cookie = TrapsterFilterLevelCookie + "=" + filter_level + "; domain=." + my_domain;

    // if searching for a user, zoom to traps location
    if(filter_user) {
        getTraps({recenter: true});
    }
    else {
        getTraps();
    }
}

function filterByUser(user) {
    $('#trapmap_user_filter').val(user);
    updateFilter($('#trapmap_filter'));
}

//
// bubble helpers
//

function bubble_select_tab(tab) {

    if( tab == "history" ) {
        trackIt("TrapMap", "historyTab", "modLevel=" + moderator);
    }

    // disable all tabs
    $(".infoBubbleTab").removeClass("tabOn").addClass("tabOff");
    $(".tab_content").hide();

    $("#" + tab + "_tab").addClass("tabOn");
    $("#" + tab + "_content").show();

    // also make sure that container is sized appropriately
    $("#infoBubbleExtraInfo").parent().parent().height( $("#infoBubbleExtraInfo").height() );

}

function bubble_send_abuse() {
    $("#abuse_message").val($("#abuse_message").val());

    if($("#abuse_message").val() == '') {
        alert("Please enter your message");
    }
    else {

        $.ajax({
            url: 'abuse.php',
            type: "post",
            data: {
                abuseMsg: $("#abuse_message").val(),
                abuseUser: $("#abuse_uname_field").val(),
                f: $("#abuse_form_f").val(),
                submit: "Submit abuse",
                trapid: $("#abuse_form_trapid").val()
            },
            success: function(data) {

                trackIt("TrapMap", "reportAbuse", "modLevel=" + moderator);

                alert("Message successfully sent");
                bubble_select_tab("voters");
            }
        });
    }
}

function bubble_enable_user() {

    var uname = $("#abuse_uname_field").val();
    var remove = window.confirm("Do you want to restore ALL traps and votes of the user \""+uname+"\"?");

    if(window.confirm("Are you sure you want to re-enable the user \""+uname+"\"?"+(remove?" All traps and votes of the user \""+uname+"\" will be restored!":""))) {
        GDownloadUrl("rl/moderators.php?cmd=enable&user="+uname+"&restore="+(remove?"Y":"N"), function(data, responseCode) {
            if (data == "OK") {
                window.alert("User \""+uname+"\" successfully re-enabled");
                bubble_select_tab("voters");
            }
            else {
                window.alert(data);
            }
        });
    }
    else {
        window.alert("Operation ABORTED! User \""+uname+"\" was NOT re-enabled!");
    }
}

function bubble_disable_user() {
    var uname = $("abuse_uname_field").value;
    var remove = window.confirm("Do you want to remove ALL traps and votes of the user \""+uname+"\"?");

    if(window.confirm("Are you sure you want to disable the user \""+uname+"\"?"+(remove?" All traps and votes of the user \""+uname+"\" will be removed from the system!":""))) {

        var url = "rl/moderators.php?cmd=disable&user=" + uname + "&remove=" + (remove ? "Y" : "N");
        jQuery.get(url, function(data) {
            if(data == "OK") {
                window.alert("User \""+uname+"\" successfully disabled");
                bubble_select_tab("voters");
            }
            else {
                window.alert(data);
            }
        });
    }
    else {
        window.alert("Operation ABORTED! User \""+uname+"\" was NOT disabled!");
    }
}

function bubble_add_quarantine(word) {
    var uname = $("#abuse_uname_field").val();
    var remove = window.confirm("Do you want to move all previous traps and votes of the user \""+uname+"\" to "+word+"?");

    if(window.confirm("Are you sure you want to add the user \""+uname+"\" to "+word+"?"+(remove?" All previous traps and votes of the user \""+uname+"\" will be moved to "+word+"!":""))) {

        var url = "rl/moderators.php?cmd=aquarantine&user="+uname+"&move="+(remove?"Y":"N");
        jQuery.get(url, function(data) {
            if(data == "OK") {
                window.alert("User successfully \""+uname+"\" added to "+word+"");
                bubble_select_tab("voters");
            }
            else {
                window.alert(data);
            }
        });
    }
    else {
        window.alert("Operation ABORTED! User \""+uname+"\" was NOT added to "+word+"!");
    }
}

function bubble_del_quarantine(word) {
    var uname = $("#abuse_uname_field").val();
    var remove = window.confirm("Do you want move all previous traps and votes of the user \""+uname+"\" out of "+word+"?");

    if(window.confirm("Are you sure you want to remove the user \""+uname+"\" from "+word+"?"+(remove?" All previous traps and votes of the user \""+uname+"\" will be moved out of "+word+"!":""))) {

        var url = "rl/moderators.php?cmd=rquarantine&user="+uname+"&move="+(remove?"Y":"N");
        jQuery.get(url, function(data) {
            if (data == "OK") {
                window.alert("User successfully \""+uname+"\" removed from "+word+"");
                bubble_select_tab("voters");
            }
            else {
                window.alert(data);
            }
        });
    }
    else {
        window.alert("Operation ABORTED! User \""+uname+"\" was NOT removed from "+word+"!");
    }
}

function bubble_send_pm() {
    $("#pm_message").val($("#pm_message").val());
    $("#pm_uname").val($("#pm_uname").val());

    if($("#pm_uname").val() == '') {
        alert("Please enter an username");
    }
    else if($("#pm_message").val() == '') {
        alert("Please enter your message");
    }
    else {

        trackIt("TrapMap", "sendPM", "modLevel=" + moderator);

        $.ajax({
            url: 'private-messages.php',
            type: "post",
            data: {
                action: $("#pm_form_action").val(),
                submit: "Send Message",
                trapid: $("#pm_form_trapid").val(),
                message: $("#pm_message").val(),
                uname: $("#pm_uname").val()
            },
            success: function(data) {
                alert(data);
                $("#pm_message").val("");
            }
        });
    }
}

function bubble_go_abuse(uname,max,trapid) {
    if(max) {
        slideBubbleContent("rl/trapinfo.php?id="+trapid+"&t=a&u="+uname);
    }
    else {
        // clear abuse
        $("#abuse_content").text("Loading...");
        bubble_select_tab("abuse");

        var url = "rl/userinfo.php?t="+trapid+"&u="+uname;
        jQuery.get(url, function(data) {
            $("#abuse_content").html(data);

            adjustInfoBubbleExtraInfoHeight();

        });
    }

    return false;
}

function bubble_go_pm(uname,max,trapid) {
    if(max) {
        slideBubbleContent("rl/trapinfo.php?id="+trapid+"&t=p&u="+uname)
    }
    else {
        bubble_select_tab("pm");
        if (isLoggedIn()) {
            $("#pm_uname").val(uname);
            $("#pm_message").val("");
        }
    }

    return false;
}

function bubble_send_comment(trapid) {
    $("#comment_msg").val($("#comment_msg").val());
    if($("#comment_msg").val() == '') {
        alert("Please enter your comment");
        return;
    }
    else {
        // attach stview, if requested
        bubble_do_attach_stv();

        trackIt("TrapMap", "sendComment", "modLevel=" + moderator);

        $.ajax({
            url: 'rl/comments_post.php',
            type: "post",
            data: {
                attach: $("#ckb_attach_stview:checked").size() > 0 ? "on" : "",
                comment: $("#comment_msg").val(),
                id: $("#comments_form_trapid").val(),
                stview: $("#attached_stview").val(),
                submit: "Post comment"
            },
            success: function(data) {
                if( data.indexOf("posted") == -1) {
                    alert(data.responseText);
                }
                else {
                    bubble_close_stv();

                    // re-load the trap info
                    slideBubbleContent("rl/trapinfo.php?id="+trapid+"&t=c");

                }
            }
        });
    }
}

function bubble_show_vote(up,trapid,traptype) {
    if(!isLoggedIn()) {
        alert("You must be logged in to rate this trap");
        return false;
    }

    if(moderator < 5) {
        $("#bubble_overview").hide();
        $("#bubble_fullview").hide();
        $("#voteconfirm").show();
        slideBubbleContentDown();
        $("#votebutton").click(function(ev) {
            bubble_vote(up,trapid);
        });
        $("#votetext").html("<span>To the best of my knowledge there <b>" + (up?"IS":"ISN'T") + "</b> a valid trap of type '<i>" + traptype + "</i>' at this location.</span>");
    }
    else {
        return bubble_vote(up,trapid);
    }

    return false;
}

function bubble_vote(up,trapid) {

    var vote = "N";

    if(up) {
        vote = "Y";
    }

    trackIt("TrapMap", "voteTrap", "vote=" + vote + "&modLevel=" + moderator);

    var url = "rl/vote.php?id="+trapid+"&vote="+vote;

    jQuery.get(url, function(data) {
        if( data.indexOf("OK") == -1 ) {
            // voting failed
            $("#voteconfirm").hide();
            $("#bubble_overview").show();
            $("#bubble_fullview").show();
            slideBubbleContentDown();
        }
        else {
            // voting was successful
            getTraps();

            // remove the infoBubble
            $(".ovi_nvt_tooltip_bubble").remove();

        }
    });

}

function bubble_show_comment(trapid,lat,lng) {

    // prepare screen
    $("#new_comment_form").show();
    $("#attach_stview_row").hide();
    $("#ckb_attach_stview").attr("checked", "");
    $("#stv_close").hide();
    $("#streetview").hide();
    $("#bubble_fullview").hide();
    $("#new_comment_streetview").show().css("position", "relative");

    // show loading message
    $("#streetview_error").text("Loading street view...").show();

    var latlng = new GLatLng(lat,lng);

    // check if SV is avaibale
    streetView.getNearestPanorama(latlng,function (data) {
        if(data.code != 200) {
            if(data.code == 500) {
                $("#streetview_error").text("There was a problem opening street view for this location");
            }
            else {
                $("#streetview_error").text("There's no street view available at this location");
            }
        }
        else {
            // show street view
            $("#streetview_error").hide();
            $("#streetview").addClass("stv_attach").show();
            $("#attach_stview_row").show();

            pov = data.location.pov;
            loc = data.location.latlng;

            stpano = new GStreetviewPanorama($("#streetview")[0]);
            GEvent.addListener(stpano,"error",handle_comment_stv_error);
            GEvent.addListener(stpano,"initialized",function (l) { stpano_loc = l.latlng; });
            stpano_loc = loc;
            stpano.setLocationAndPOV(loc,pov);

            // resize the container
            $("#infoBubbleContainer").parent().height( $("#infoBubbleExtraInfo").height() );
        }
    });
}

function handle_comment_stv_error(errorCode) {
    if(errorCode == 603) {
        $("#streetview").hide();
        $("#streetview_error").text("You need to have flash player installed in order to view street view");
        $("#streetview_error").show();
    }
}

function bubble_cancel_comment() {
    return bubble_close_stv();
}

function bubble_view_stv(info,comment) {
    // prepare screen
    $("#new_comment_form").hide();
    $("#stv_close").show();
    $("#bubble_fullview").hide();
    $("#new_comment_streetview").show();

    $("#streetview").addClass("stv_view").show();

    $("streetview_error").text(comment).show();

    info = info.split("|");

    var pov = new Object();
    pov.yaw = parseFloat(info[0]);
    pov.pitch = parseFloat(info[1]);
    pov.zoom = parseFloat(info[2]);

    var loc = new GLatLng(info[3],info[4]);

    stpano = new GStreetviewPanorama($("#streetview"));
    GEvent.addListener(stpano,"error",handle_comment_stv_error);
    stpano.setLocationAndPOV(loc,pov);

    return false;
}

function bubble_do_attach_stv() {
    if(stpano && $("#ckb_attach_stview:checked").size() > 0 ) {
        var pov = stpano.getPOV();

        $("#attached_stview").val(pov.yaw+"|"+pov.pitch+"|"+pov.zoom+"|"+stpano_loc.lat()+"|"+stpano_loc.lng());
    }
}

function bubble_close_stv() {
    if(stpano) {
        stpano.remove();
        stpano = null;
        stpano_loc = null;
    }

    $("#new_comment_streetview").hide();
    $("#bubble_fullview").show();

    return false;
}

function bubble_changeTrapType(id,ctype) {
    var ntype = $("#new_trap_type").val();
    var ntname = $("#new_trap_type option:selected").text();

    if(ctype == ntype) {
        alert("This trap is already of type \""+ntname+"\"");
    }
    else {
        if(window.confirm("Are you sure you want to change this trap type to \""+ntname+"\"?")) {

            var url = "rl/moderators.php?cmd=traptype&trapid="+id+"&type="+ntype;
            jQuery.get(url, function(data) {

                if (data == "OK") {

                    trackIt("TrapMap", "changeTrapType", "modLevel=" + moderator);

                    // first remove the old trap
                    MAP.objects.remove(document.clickedMarker);
                    window.alert("Trap type successfully changed!");
                    getTraps();
                    clearInfoBubbles();
                }
                else {
                    window.alert(data);
                }
            });
        }
    }
}

function bubble_del_vote(id,user) {

    if(window.confirm("Are you sure you want to delete this vote?")) {

        trackIt("TrapMap", "deleteVote", "modLevel=" + moderator);

        var url = "rl/moderators.php?cmd=delvote&trapid="+id+"&user="+user;
        jQuery.get(url, function(data) {
            if (data == "OK") {
                window.alert("Vote successfully deleted!");
                getTraps();
                clearInfoBubbles();
            }
            else {
                window.alert(data);
            }
        });
    }

    return false;
}

function bubble_approve_trap(id) {
    if((moderator >= 3) || window.confirm("Are you sure you want to approve this trap?")) {
        var url = "rl/moderators.php?cmd=approvetrap&trapid="+id;
        jQuery.get(url, function(data) {
            if(data == "OK") {

                trackIt("TrapMap", "approveTrap", "modLevel=" + moderator);

                if(moderator < 3) {
                    window.alert("Trap successfully approved!");
                }
                getTraps();
            }
            else {
                window.alert(data);
            }
        });
    }
}

function bubble_quarantine_trap(id) {
    if( window.confirm("Are you sure you want to move this trap to probation?") ) {
        var url = "rl/moderators.php?cmd=quarantinetrap&trapid=" + id;
        jQuery.get(url, function(data) {
            if(data == "OK") {
                window.alert("Trap successfully moved to probation!");
                getTraps();
            }
            else {
                window.alert(data);
            }
        });
    }
}

function bubble_undelete_trap(id) {
    if( window.confirm("Are you sure you want to un-delete this trap?") ) {
        var url = "rl/moderators.php?cmd=undeltrap&trapid=" + id;
        jQuery.get(url, function(data) {
            if (data == "OK") {
                window.alert("Trap successfully un-deleted!");
                getTraps();
            }
            else {
                window.alert(data);
            }
        });
    }
}
