if( ! Array.prototype.forEach ) { Array.prototype.forEach = function( fun /*, thisp*/ ) { if( typeof fun != 'function' ) throw new TypeError(); var thisp = arguments[1]; for( var i = 0, n = this.length; i < n; ++i ) { if( i in this ) fun.call( thisp, this[i], i, this ); } }; } if( ! Array.prototype.map ) { Array.prototype.map = function( fun /*, thisp*/ ) { var len = this.length; if( typeof fun != 'function' ) throw new TypeError(); var res = new Array( len ); var thisp = arguments[1]; for( var i = 0; i < len; ++i ) { if( i in this ) res[i] = fun.call( thisp, this[i], i, this ); } return res; }; } if( ! Array.prototype.index ) { Array.prototype.index = function( field ) { this.by = {}; if( field ) { var by = this.by[field] = {}; for( var i = 0, n = this.length; i < n; ++i ) { var obj = this[i]; by[obj[field]] = obj; obj.index = i; } } else { var by = this.by; for( var i = 0, n = this.length; i < n; ++i ) { var str = this[i]; by[str] = str; str.index = i; } } return this; }; } String.prototype.trim = function() { return this.replace( /^\s\s*/, '' ).replace( /\s\s*$/, '' ); }; String.prototype.words = function( fun ) { this.split(' ').forEach( fun ); }; function S() { return Array.prototype.join.call( arguments, '' ); }; // hoverize.js // Based on hoverintent plugin for jQuery (function( $ ) { var opt = { slop: 7, interval: 200 }; function start() { if( ! timer ) { timer = setInterval( check, opt.interval ); $(document.body).bind( 'mousemove', move ); } } function clear() { if( timer ) { clearInterval( timer ); timer = null; $(document.body).unbind( 'mousemove', move ); } } function check() { if ( ( Math.abs( cur.x - last.x ) + Math.abs( cur.y - last.y ) ) < opt.slop ) { clear(); for( var i = 0, n = functions.length; i < n; ++i ) functions[i](); } else { last = cur; } } function move( e ) { cur = { x:e.screenX, y:e.screenY }; } var timer, last = { x:0, y:0 }, cur = { x:0, y:0 }, functions = []; hoverize = function( fn, fast ) { function now() { fast && fast.apply( null, args ); } function fire() { clear(); return fn.apply( null, args ); } functions.push( fire ); var args; return { clear: clear, now: function() { args = arguments; now(); fire(); }, hover: function() { args = arguments; now(); start(); } }; } })( jQuery ); (function( $ ) { GoogleElectionMap = { shapesReady: function( data ) { var abbr = data.state; var state = stateByAbbr( abbr ); state.places = data.places; if( abbr == 'us' ) initStateBounds( state.places ); loadScript( S( opt.dataUrl, 'votes/', abbr.toLowerCase(), '_', curParty.name, '.js' ), 120 ); }, votesReady: function( votes ) { var abbr = votes.state; var state = stateByAbbr( abbr ); ( state.votes = state.votes || {} )[curParty.name] = votes; stateReady( state ); } }; function initStateBounds( places ) { places.forEach( function( place ) { statesByName[place.name].bounds = place.bounds; }); } //var mapplet = location.host == 'gmodules.com'; var mapplet; var opt = window.GoogleElectionMapOptions || {}; if( window._IG_Prefs ) { var p = new _IG_Prefs(); var zoom = p.getInt('zoom'); } if( zoom ) { opt.zoom = zoom; opt.sidebarWidth = p.getInt('sidebarwidth'); opt.mapWidth = window.innerWidth - opt.sidebarWidth ; opt.mapHeight = window.innerHeight - 24; opt.party = p.getString('party'); //opt.twitter = p.getBool('twitter'); //opt.youtube = p.getBool('youtube'); } else { mapplet = ! opt.zoom; } opt.twitter = false; opt.youtube = false; opt.zoom = opt.zoom || 3; opt.sidebarWidth = opt.sidebarWidth || 280; opt.mapWidth = opt.mapWidth || 400; opt.mapHeight = opt.mapHeight || 300; opt.mapWidth = ( '' + opt.mapWidth ).replace( /px$/, '' ); opt.mapHeight = ( '' + opt.mapHeight ).replace( /px$/, '' ); //opt.twitter = opt.twitter || mapplet; //opt.youtube = opt.youtube || mapplet; //var imgBaseUrl = 'http://mg.to/iowa/server/images/'; var imgBaseUrl = 'http://gmaps-samples.googlecode.com/svn/trunk/elections/2008/images/icons/'; var parties = [ { name: 'dem', shortName: 'Democratic', fullName: 'Democratic Party', url:'http://www.iowademocrats.org/' }, { name: 'gop', shortName: 'Republican', fullName: 'Republican Party', url:'http://www.iowagop.net/' } ].index('name'); var q = opt.party || location.search.slice(1); window.curParty = parties.by.name[q] || parties[ Math.random() < .5 ? 0 : 1 ]; var states = [ { 'abbr': 'AL', 'name': 'Alabama', 'parties': { 'dem': { 'date': '02-05' }, 'gop': { 'date': '02-05' } } }, { 'abbr': 'AK', 'name': 'Alaska', 'parties': { 'dem': { 'date': '02-05', 'type': 'caucus' }, 'gop': { 'date': '02-05', 'type': 'caucus' } } }, { 'abbr': 'AZ', 'name': 'Arizona', 'parties': { 'dem': { 'date': '02-05' }, 'gop': { 'date': '02-05' } } }, { 'abbr': 'AR', 'name': 'Arkansas', 'parties': { 'dem': { 'date': '02-05' }, 'gop': { 'date': '02-05' } } }, { 'abbr': 'CA', 'name': 'California', 'parties': { 'dem': { 'date': '02-05' }, 'gop': { 'date': '02-05' } } }, { 'abbr': 'CO', 'name': 'Colorado', 'parties': { 'dem': { 'date': '02-05', 'type': 'caucus' }, 'gop': { 'date': '02-05', 'type': 'caucus' } } }, { 'abbr': 'CT', 'name': 'Connecticut', 'votesby': 'town', 'parties': { 'dem': { 'date': '02-05' }, 'gop': { 'date': '02-05' } } }, { 'abbr': 'DE', 'name': 'Delaware', 'parties': { 'dem': { 'date': '02-05' }, 'gop': { 'date': '02-05' } } }, { 'abbr': 'DC', 'name': 'District of Columbia', 'parties': { 'dem': { 'date': '02-12' }, 'gop': { 'date': '02-12' } } }, { 'abbr': 'FL', 'name': 'Florida', 'parties': { 'dem': { 'date': '01-29' }, 'gop': { 'date': '01-29' } } }, { 'abbr': 'GA', 'name': 'Georgia', 'parties': { 'dem': { 'date': '02-05' }, 'gop': { 'date': '02-05' } } }, { 'abbr': 'HI', 'name': 'Hawaii', 'parties': { 'dem': { 'date': '02-19', 'type': 'caucus' }, 'gop': { 'date': '01-25', 'type': 'caucus' } } }, { 'abbr': 'ID', 'name': 'Idaho', 'parties': { 'dem': { 'date': '02-05', 'type': 'caucus' }, 'gop': { 'date': '05-27' } } }, { 'abbr': 'IL', 'name': 'Illinois', 'parties': { 'dem': { 'date': '02-05' }, 'gop': { 'date': '02-05' } } }, { 'abbr': 'IN', 'name': 'Indiana', 'parties': { 'dem': { 'date': '05-06' }, 'gop': { 'date': '05-06' } } }, { 'abbr': 'IA', 'name': 'Iowa', 'parties': { 'dem': { 'date': '01-03', 'type': 'caucus' }, 'gop': { 'date': '01-03', 'type': 'caucus' } } }, { 'abbr': 'KS', 'name': 'Kansas', 'votesby': 'district', 'parties': { 'dem': { 'date': '02-05', 'type': 'caucus' }, 'gop': { 'date': '02-09', 'type': 'caucus' } } }, { 'abbr': 'KY', 'name': 'Kentucky', 'parties': { 'dem': { 'date': '05-20' }, 'gop': { 'date': '05-20' } } }, { 'abbr': 'LA', 'name': 'Louisiana', 'parties': { 'dem': { 'date': '02-09' }, 'gop': { 'date': '01-22', 'type': 'caucus' } } }, { 'abbr': 'ME', 'name': 'Maine', 'parties': { 'dem': { 'date': '02-10', 'type': 'caucus' }, 'gop': { 'date': '02-01', 'type': 'caucus' } } }, { 'abbr': 'MD', 'name': 'Maryland', 'parties': { 'dem': { 'date': '02-12' }, 'gop': { 'date': '02-12' } } }, { 'abbr': 'MA', 'name': 'Massachusetts', 'votesby': 'town', 'parties': { 'dem': { 'date': '02-05' }, 'gop': { 'date': '02-05' } } }, { 'abbr': 'MI', 'name': 'Michigan', 'parties': { 'dem': { 'date': '01-15' }, 'gop': { 'date': '01-15' } } }, { 'abbr': 'MN', 'name': 'Minnesota', 'parties': { 'dem': { 'date': '02-05', 'type': 'caucus' }, 'gop': { 'date': '02-05', 'type': 'caucus' } } }, { 'abbr': 'MS', 'name': 'Mississippi', 'parties': { 'dem': { 'date': '03-11' }, 'gop': { 'date': '03-11' } } }, { 'abbr': 'MO', 'name': 'Missouri', 'parties': { 'dem': { 'date': '02-05' }, 'gop': { 'date': '02-05' } } }, { 'abbr': 'MT', 'name': 'Montana', 'parties': { 'dem': { 'date': '06-03' }, 'gop': { 'date': '02-05', 'type': 'caucus' } } }, { 'abbr': 'NE', 'name': 'Nebraska', 'parties': { 'dem': { 'date': '02-09', 'type': 'caucus' }, 'gop': { 'date': '05-13' } } }, { 'abbr': 'NV', 'name': 'Nevada', 'parties': { 'dem': { 'date': '01-19', 'type': 'caucus' }, 'gop': { 'date': '01-19', 'type': 'caucus' } } }, { 'abbr': 'NH', 'name': 'New Hampshire', 'votesby': 'town', 'parties': { 'dem': { 'date': '01-08' }, 'gop': { 'date': '01-08' } } }, { 'abbr': 'NJ', 'name': 'New Jersey', 'parties': { 'dem': { 'date': '02-05' }, 'gop': { 'date': '02-05' } } }, { 'abbr': 'NM', 'name': 'New Mexico', 'parties': { 'dem': { 'date': '02-05', 'type': 'caucus' }, 'gop': { 'date': '06-03' } } }, { 'abbr': 'NY', 'name': 'New York', 'parties': { 'dem': { 'date': '02-05' }, 'gop': { 'date': '02-05' } } }, { 'abbr': 'NC', 'name': 'North Carolina', 'parties': { 'dem': { 'date': '05-06' }, 'gop': { 'date': '05-06' } } }, { 'abbr': 'ND', 'name': 'North Dakota', 'parties': { 'dem': { 'date': '02-05', 'type': 'caucus' }, 'gop': { 'date': '02-05', 'type': 'caucus' } } }, { 'abbr': 'OH', 'name': 'Ohio', 'parties': { 'dem': { 'date': '03-04' }, 'gop': { 'date': '03-04' } } }, { 'abbr': 'OK', 'name': 'Oklahoma', 'parties': { 'dem': { 'date': '02-05' }, 'gop': { 'date': '02-05' } } }, { 'abbr': 'OR', 'name': 'Oregon', 'parties': { 'dem': { 'date': '05-20' }, 'gop': { 'date': '05-20' } } }, { 'abbr': 'PA', 'name': 'Pennsylvania', 'parties': { 'dem': { 'date': '04-22' }, 'gop': { 'date': '04-22' } } }, { 'abbr': 'PR', 'name': 'Puerto Rico', 'parties': { } }, { 'abbr': 'RI', 'name': 'Rhode Island', 'parties': { 'dem': { 'date': '03-04' }, 'gop': { 'date': '03-04' } } }, { 'abbr': 'SC', 'name': 'South Carolina', 'parties': { 'dem': { 'date': '01-26' }, 'gop': { 'date': '01-19' } } }, { 'abbr': 'SD', 'name': 'South Dakota', 'parties': { 'dem': { 'date': '06-03' }, 'gop': { 'date': '06-03' } } }, { 'abbr': 'TN', 'name': 'Tennessee', 'parties': { 'dem': { 'date': '02-05' }, 'gop': { 'date': '02-05' } } }, { 'abbr': 'TX', 'name': 'Texas', 'parties': { 'dem': { 'date': '03-04' }, 'gop': { 'date': '03-04' } } }, { 'abbr': 'UT', 'name': 'Utah', 'parties': { 'dem': { 'date': '02-05' }, 'gop': { 'date': '02-05' } } }, { 'abbr': 'VT', 'name': 'Vermont', 'votesby': 'town', 'parties': { 'dem': { 'date': '03-04' }, 'gop': { 'date': '03-04' } } }, { 'abbr': 'VA', 'name': 'Virginia', 'parties': { 'dem': { 'date': '02-12' }, 'gop': { 'date': '02-12' } } }, { 'abbr': 'WA', 'name': 'Washington', 'parties': { 'dem': { 'date': '02-09', 'type': 'caucus' }, 'gop': { 'date': '02-09', 'type': 'caucus' } } }, { 'abbr': 'WV', 'name': 'West Virginia', 'parties': { 'dem': { 'date': '05-13' }, 'gop': { 'date': '05-13' } } }, { 'abbr': 'WI', 'name': 'Wisconsin', 'parties': { 'dem': { 'date': '02-19' }, 'gop': { 'date': '02-19' } } }, { 'abbr': 'WY', 'name': 'Wyoming', 'parties': { 'dem': { 'date': '03-08', 'type': 'caucus' }, 'gop': { 'date': '01-05', 'type': 'caucus' } } } ]; var stateUS = { 'abbr': 'US', 'name': 'United States', bounds: [ [ -124.72846051, 24.54570037 ], [ -66.95221658, 49.38362494 ] ] }; var statesByAbbr = {}; var statesByName = {}; states.forEach( function( state ) { statesByAbbr[state.abbr] = state; statesByName[state.name] = state; }); function stateByAbbr( abbr ) { return statesByAbbr[abbr.toUpperCase()] || stateUS; } function loadScript( url, cache ) { var script = document.createElement( 'script' ); script.type = 'text/javascript'; script.charset = 'utf-8'; if( opt.nocache ) { var seq = (new Date).getTime(); url +='?q=' + seq; } else { if( cache == null ) cache = 120; if( cache && mapplet ) url = _IG_GetCachedUrl( url, { refreshInterval:cache } ); } //console.log( 'loadScript', url ); script.src = url; script.title = 'jsonresult'; $('head')[0].appendChild( script ); } function htmlEscape( str ) { var div = document.createElement( 'div' ); div.appendChild( document.createTextNode( str ) ); return div.innerHTML; } //function atLinks( str ) { // var replacement = '$1@$2$3'; // return str // .replace( /(^|\s)@([^\s:]+)(:)/g, replacement ) // .replace( /(^|\s)@(\S+)(\s|$)/g, replacement ); //} function httpLinks( str ) { return str.replace( /(http:\/\/\S+)/g, '$1' ); } function percent( n ) { n = Math.round( n * 100 ); return n ? n + '%' : ''; } // calendar.google.com feed template: // http://www.google.com/calendar/feeds/{candidate.feed}@group.calendar.google.com/public/basic var candidates = { 'all': [], 'dem': [ { 'name': 'biden', 'lastName': 'Biden', 'fullName': 'Joe Biden', 'color': '#20FF1F', 'feed': '' }, { 'name': 'clinton', 'lastName': 'Clinton', 'fullName': 'Hillary Clinton', 'color': '#FFFA00', 'feed': '2jmb4ula0um5138qnfk621nagg' }, { 'name': 'dodd', 'lastName': 'Dodd', 'fullName': 'Chris Dodd', 'color': '#E4Af95', 'feed': 'l06f7eei6qfjns5a4pd5nv6erg' }, { 'name': 'edwards', 'lastName': 'Edwards', 'fullName': 'John Edwards', 'color': '#FF1300', 'feed': '46uusesnavfh045mmfjje0fflo' }, { 'name': 'gravel', 'lastName': 'Gravel', 'fullName': 'Mike Gravel', 'color': '#8A5C2E', 'feed': '47r7phlvf8e07lga3poj0ntv8g' }, { 'name': 'kucinich', 'lastName': 'Kucinich', 'fullName': 'Dennis Kucinich', 'color': '#EE00B5', 'feed': '7c9gellom85djmbl6664s9cclc' }, { 'name': 'obama', 'lastName': 'Obama', 'fullName': 'Barack Obama', 'color': '#1700E8', 'feed': 'nkt5atdq7cdbes3ehdfpendpnc' }, { 'name': 'richardson', 'lastName': 'Richardson', 'fullName': 'Bill Richardson', 'color': '#336633', 'feed': 'mdgiev7eul12rt1lo6eohg55q0' }, { 'name': 'uncommitted-d', 'lastName': 'Uncommitted', 'fullName': 'Uncommitted', 'color': '#DDDDDD', 'feed': '' } ], 'gop': [ { 'name': 'brownback', 'lastName': 'Brownback', 'fullName': 'Sam Brownback', 'color': '#8080FF', 'feed': 'lm63qmbqunob5gbvratl1bo974' }, { 'name': 'cort', 'lastName': 'Cort', 'fullName': 'Hugh Cort', 'color': '#8080FF' }, { 'name': 'cox', 'lastName': 'Cox', 'fullName': 'John Cox', 'color': '#808040' }, { 'name': 'fendig', 'lastName': 'Fendig', 'fullName': 'Cap Fendig', 'color': '#408080' }, { 'name': 'giuliani', 'lastName': 'Giuliani', 'fullName': 'Rudy Giuliani', 'color': '#336633', 'feed': 'g0tkl52ft6nhrlm2e6v6his400' }, { 'name': 'huckabee', 'lastName': 'Huckabee', 'fullName': 'Mike Huckabee', 'color': '#1700E8', 'feed': 'h32i31ojgo9vvb3vnggmq1qrh8' }, { 'name': 'hunter', 'lastName': 'Hunter', 'fullName': 'Duncan Hunter', 'color': '#8A5C2E', 'feed': '' }, { 'name': 'keyes', 'lastName': 'Keyes', 'fullName': 'Alan Keyes', 'color': '#8080FF', 'feed': '' }, { 'name': 'mccain', 'lastName': 'McCain', 'fullName': 'John McCain', 'color': '#FFFA00', 'feed': 'q1du1ju69m8jecsjkhjr538kbs' }, { 'name': 'paul', 'lastName': 'Paul', 'fullName': 'Ron Paul', 'color': '#E4Af95', 'feed': '7p20d17uil4ft2qhvattqrjdgg' }, { 'name': 'romney', 'lastName': 'Romney', 'fullName': 'Mitt Romney', 'color': '#FF1300', 'feed': '3mv48r8us0rou62c356om8groc' }, { 'name': 'tancredo', 'lastName': 'Tancredo', 'fullName': 'Tom Tancredo', 'color': '#EE00B5', 'feed': '' }, { 'name': 'thompson', 'lastName': 'Thompson', 'fullName': 'Fred Thompson', 'color': '#20FF1F', 'feed': 'fhg9gjvi7459qaf0ki43ij1g78' }, { 'name': 'uncommitted-r', 'lastName': 'Uncommitted', 'fullName': 'Uncommitted', 'color': '#DDDDDD', 'feed': '' } ] }; //var preloadCandidates = candidates.all.forEach( function( candidate ) { // var img = new Image( 16, 16 ); // img.src = imgUrl( candidate.name ); // return img; //}); var candidateNameList = []; parties.forEach( function( party ) { var list = candidates[party.name]; list.forEach( function( candidate ) { candidate.party = party; candidates.all.push( candidate ); candidateNameList.push( candidate.name ); }); list.index( 'name' ); }); candidates.all.index( 'name' ); var reCandidates = new RegExp( candidateNameList.join('|'), 'g' ); function candidateIcon( name ) { var icon = new GIcon; icon.image = imgUrl( name + '-border' ); icon.shadow = ''; icon.iconSize = new GSize( 18, 18 ); icon.shadowSize = new GSize( 0, 0 ); icon.iconAnchor = new GPoint( 9, 9 ); icon.infoWindowAnchor = new GPoint( 9, 9 ); return icon; } function loadCandidateIcons() { parties.forEach( function( party ) { candidates[party.name].forEach( function( candidate ) { candidate.icon = candidateIcon( candidate.name ); }); }); } // GAsync v2 by Michael Geary // Commented version and description at: // http://mg.to/2007/06/22/write-the-same-code-for-google-mapplets-and-maps-api // Free beer and free speech license. Enjoy! function GAsync( obj ) { function callback() { args[nArgs].apply( null, results ); } function queue( iResult, name, next ) { function ready( value ) { results[iResult] = value; if( ! --nCalls ) callback(); } var a = []; if( next.join ) a = a.concat(next), ++iArg; if( mapplet ) { a.push( ready ); obj[ name+'Async' ].apply( obj, a ); } else { results[iResult] = obj[name].apply( obj, a ); } } var mapplet = ! window.GBrowserIsCompatible; var args = arguments, nArgs = args.length - 1; var results = [], nCalls = 0; for( var iArg = 1; iArg < nArgs; ++iArg ) { var name = args[iArg]; if( typeof name == 'object' ) obj = name; else queue( nCalls++, name, args[iArg+1] ); } if( ! mapplet ) callback(); } var partyButtons = opt.party ? '' : [ '
', 'Results:', '', '', //'', '
' ].join(''); twitterBlurb = ! opt.twitter ? '' : S( '
', 'We\'ve joined forces with Twitter and Twittervision to give you instant updates on Super Tuesday. You can watch Twitter texts from across the country and send in your own updates!', '
' ); (function() { var hotStates = [ 'OH', 'RI', 'TX', 'VT' ]/*.index()*/; function option( state ) { return S( '' ); } stateSelector = S( '
', '
', 'Select a state or click the map for local results', '
', '
', '', '
', '
' ); })(); document.write( ( opt.projector ? [ '', '
', '
', '
', '
' ] : mapplet ? [ '', '
', '
', '
', '', '
', //'New! ', 'Get this map for your website', '
', stateSelector, //twitterBlurb, //'
', // 'Come back after the polls close (around 8PM EST) for live election results of all the Super Tuesday states!', //'
', //'
', // 'View in Google Earth: ', // 'Democratic', // ' ', // 'Republican', //'
', //'
', // '', // '', // '', //'
', //'', partyButtons, //'
', // '
', // '
', // '
', // 'Loading…', // '
', //'
', '
', '
', '
', '
', '
' ] : [ '', '', '', '', '', '', '
', '
', '
', '
', '
', '
', //partyButtons, //'
', // '
', // '
', // //'
Statewide Results
', // '
', // 'Loading…', // '
', // '
', // //'Roll the mouse over the map for county-by-county results.

', // 'Roll the mouse over the map for state-by-state results.
', // 'Zoom in for county-by-county results.

', // //'Scroll down for statewide details', // '
', //'
', '
', '
', '
' ] ).join('') ); var feed = { news: 'http://news.google.com/?ned=us&topic=el&output=rss', video: 'http://www.youtube.com/rss/user/wmurtv/videos.rss' }; var map; opt.dataUrl = opt.dataUrl || 'http://primary-maps-2008-data.googlecode.com/svn/trunk/'; opt.state = opt.state || 'us'; var state = states[opt.state]; if( window.Data ) { var counties = Data.counties || [], state = Data.state || {}; counties.index( 'name' ); } //var allEventData = []; var eventMarkers = []; var icons = {}; function onEventsReady( xml ) { var items = { eventtitle:1, eventid:1, eventdate:1, eventtimestart:1, eventendtime:1, venueid:1, venuename:1, venueaddress:1, venuecity:1, venuelat:1, venuelng:1, party:1, feclist:1, etidlist:1, candnamelist:1, iscurrent:1, eventdetailslink:1 }; $('marker',xml).each( function() { var event = {}; for( var item in items ) event[item] = this.getAttribute(item); event.latlng = new GLatLng( +event.venuelat, +event.venuelng ); event.marker = addEventMarker( event ); //allEventData.push( event ); }); initMap(); } function addEventMarker( event ) { var color = { b:'white', d:'blue', r:'red' }[event.party] || 'white'; var icon = icons[color]; var marker = new GMarker( event.latlng, { icon:icons[color] } ); GEvent.addListener( marker, 'click', function() { marker.openInfoWindowHtml( formatEvent(event), { maxWidth:500 } ); }); eventMarkers.push( marker ); map.addOverlay( marker ); return marker; } function onNewsReady( xml ) { var videos = []; $('rss channel item',xml).each( function( i ) { if( i > 4 ) return false; var $item = $(this); var $thumb = $('thumbnail',this); videos.push({ link: $('link',this).text(), //thumb: $thumb.attr('url'), //width: +$thumb.attr('width') / 2, //height: +$thumb.attr('height') / 2, title: $('title:first',this).text() }); return true; }); var html = [ '

Campaign News

', videos.map( function( video ) { return [ '
', //'', // '', //'', '', '
', video.title, '
', '
', '
', '
', '
' ].join(''); }).join(''), ].join(''); $('#news').html( html ); if( mapplet ) _IG_AdjustIFrameHeight(); } function onVideoReady( xml ) { var videos = []; $('rss channel item',xml).each( function( i ) { if( i > 2 ) return false; var $item = $(this); var $thumb = $('thumbnail',this); if( ! $thumb.length ) $thumb = $( this.getElementsByTagName( 'media:thumbnail' ) ); videos.push({ link: $('link',this).text(), thumb: $thumb.attr('url'), width: +$thumb.attr('width') / 2, height: +$thumb.attr('height') / 2, title: $('title:first',this).text() }); return true; }); var html = [ '

Latest Videos

', videos.map( function( video ) { var thumb = ! video.thumb ? '' : [ '', '', '' ].join(''); return [ '
', thumb, '', '
', video.title, '
', '
', '
', '
', '
' ].join(''); }).join(''), ].join(''); $('#videos').html( html ); if( mapplet ) _IG_AdjustIFrameHeight(); } function initMap() { if( ! mapplet ) { GEvent.addListener( map, 'mousemove', mousemoved/*.hover*/ ); //GEvent.addListener( map, 'mouseout', mousemoved.clear ); } //setTimeout( function() { $('#clicknote').show( 'slow' ); }, 1000 ); } function polyMethod( name, fn ) { GPolygon.prototype[name] = GPolyline.prototype[name] = fn; } polyMethod( 'contains', function( latlng ) { var inside = false; var x = latlng.lng(), y = latlng.lat(); var n = this.getVertexCount(); var v = this.getVertex(n-1), x1 = v.lng(), y1 = v.lat(); for( var i = 0; i < n; ++i ) { var v = this.getVertex(i), x2 = v.lng(), y2 = v.lat(); if( ( y1 < y && y2 >= y ) || ( y2 < y && y1 >= y ) ) if ( x1 + ( y - y1 ) / ( y2 - y1 ) * ( x2 - x1 ) < x ) inside = ! inside; x1 = x2, y1 = y2; } return inside; }); function zoomToCounty( county ) { // TODO: update for multiple polys map.setCenter( new GLatLng( county.centroid[0], county.centroid[1] ), map.getBoundsZoomLevel( county.polygon.base.getBounds() ) ); } function initControls() { /* var $lst = $('#lstRegions'); option({ name:'', caption:'Entire State' }); 'northwest northcentral northeast southwest southcentral southeast'.words( function( name ) { option( regions.by.name[name] ); }); function option( region ) { var opt = document.createElement('option'); opt.innerHTML = region.caption; opt.value = region.name; $lst.append( opt ); } $lst.bind( 'change', function() { zoomRegion( regions.by.name[this.value] ); }); */ /* $('#chkEvents').bind( 'click', function() { map.closeInfoWindow(); var method = this.checked ? 'show' : 'hide'; eventMarkers.forEach( function( marker ) { marker[method](); }); }); */ } function zoomRegion( region ) { map.closeInfoWindow(); if( ! region && state ) { var zoom = state.zoom; map.setCenter( new GLatLng( zoom[0], zoom[1] ), zoom[2] ); //selectRegion(); } else if( ! mapplet ) { var center = new GLatLng( 37.0625, -95.677068 ); map.setCenter( center, opt.zoom ); //GAsync( region.polygon.base, 'getBounds', // function( bounds ) { // GAsync( map, 'getBoundsZoomLevel', [ bounds ], // function( zoom ) { // //selectRegion( region ); // var center = pointLatLng( region.centroid ); // map.setCenter( center, zoom ); // }); // }); } } function pointLatLng( point ) { return new GLatLng( point[0], point[1] ); } function formatEvent( event ) { var href = event.eventdetailslink; var link = ! href ? '' : [ '
', 'Event details…', '
' ].join(''); var names = event.candnamelist.replace( /,+$/, '' ).replace( /, /, ',' ).replace( /,/, ', ' ).trim(); var who = ! names ? '' : [ '', 'Candidate: ', '', candidateIcons(names,'width:16; height:16; float:left; margin:2px 4px 2px 2px;'), names, '', '' ].join(''); var where = event.venuename == event.venuecity ? '' : [ '', 'Where: ', '', event.venuename, '', '' ].join(''); return [ '
', '
', event.eventtitle, '
', '', who, where, '', '', '', '', '', '', '', '', '
Address: ', ( event.venueaddress ? event.venueaddress + ', ' : '' ), event.venuecity, '
When: ', event.eventdate, ' at ', event.eventtimestart, '
', link, '
' ].join(''); } /* function getEvents(regionIdx) { var poly = regions[regionIdx].polygon.base; var html = '
'; for(var i=0; i 1 ? '.' + x[1] : ''; var rgx = /(\d+)(\d{3})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + ',' + '$2'); } return x1 + x2; } function showStateProjector( json, party ) { var state = json.state, tallies = state.candidates, precincts = state.precincts; tallies.index('name'); var rows = []; addRow( 0, 3 ); addRow( 4, 7 ); var html = [ '', rows.join(''), '
', '
', '', '', '', '', '', '
', 'LIVE: Leading candidates by county', '', precincts.reporting, ' of ', precincts.total, ' precincts reporting', '
', '
', '
', ' ', '
', '', '', '
', candidate.fullName, '
', '
', formatNumber(tally.votes), '
', '
', '
', '' ].join('') ); } rows.push( [ '', cols.join(''), '' ].join('') ); } } function showStateSidebar( json, party ) { var state = json.state, tallies = state[party], precincts = state.precincts; tallies.index('name'); var rows = []; var cands = candidates[party]; addRows(); var html = [ '', rows.join(''), '
', '
', precincts.reporting, ' of ', precincts.total, ' precincts reporting', '
' ].join(''); $('#legend').html( html ); function addRows() { var cols = []; tallies.forEach( function( tally ) { var candidate = candidates.all.by.name[tally.name]; rows.push( [ '', '', '
', formatNumber(tally.votes), '
', '', '', '
', percent( tally.votes / state.total ), '
', '', '', '
', ' ', '
', '', '', '
', candidate.fullName, '
', '', '' ].join('') ); }); } } function showStateTable( json, party ) { var state = json.state, tallies = state[party], precincts = state.precincts; tallies.index('name'); var cands = candidates[party]; var html = [ '', '', header(), '', '', stateRow(), countyRows(), '', '
', '
', precincts.reporting, ' of ', precincts.total, ' precincts reporting', '
' ].join(''); $('#fullstate').html( html ); function header() { return [ '', cands.map( function( candidate ) { return [ '', candidate.lastName, '' ].join(''); }).join(''), ].join(''); } function countyRows() { return counties.map( function( county ) { return row( county ); }).join(''); } function stateRow() { return row( null, 'Entire State', 'statewide' ); } function row( county, name, clas ) { var tallies = ( county ? json.counties[county.name] : json.state )[party]; if( ! tallies ) return ''; tallies.index('name'); return [ '', '', name || county.name, '', cands.map( function( candidate ) { var tally = tallies.by.name[candidate.name] || { votes:0 }; return [ '', formatNumber(tally.votes), '' ].join(''); }).join(''), '' ].join(''); } } function showPolys( state, party ) { var tallies = state.votes && state.votes[party.name] || {}; state.places.forEach( function( place ) { //place.color = randomColor(); ////place.opacity = Math.random(); //place.opacity = .75; place.color = 'black'; place.opacity = 0; if( tallies ) { var tally = tallies.locals[place.name]; if( tally ) { place.precincts = tally.precincts; //place.total = tally.total; var leader = tally.votes && tally.votes[0]; if( leader ) { var votes = leader.votes; var candidate = candidates[party.name].by.name[leader.name]; var icon = candidate.icon; //if( ! opt.projector && ! mapplet ) { // var marker = new GMarker( new GLatLng( place.centroid[0], place.centroid[1] ), { icon:icon } ); // map.addOverlay( marker ); //} place.color = candidate.color; place.opacity = place.precincts.reporting / place.precincts.total * .7; } } } place.shapes.forEach( function( shape ) { var points = shape.points; var vertices = shape.vertices = []; // Old fashioned loop for speed for( var i = 0, n = points.length; i < n; ++i ) { var point = points[i]; vertices.push( new GLatLng( point[1], point[0] ) ); } var border = '#000080'; shape.polygon = { base: new GPolygon( vertices, border, 1, .5, place.color, place.opacity ) }; //if( json ) { // shape.polygon = { // base: // opt.projector ? new GPolygon( vertices, border, 1, .5, color, .9 ) : // votes ? new GPolygon( vertices, border, 1, .5, color, .7 ) : // new GPolygon( vertices, border, 1, .5 ) //, // //select: new GPolygon( vertices, color2, 1, .75, color2, .15 ) // }; //} //else { // shape.polygon = { // base: new GPolygon( vertices, border, 1, .5, place.color, .8 ) // }; //} map.addOverlay( shape.polygon.base ); //GEvent.addListener( shape.polygon.base, 'click', function() { // map.openInfoWindowHtml( // pointLatLng( shape.centroid ), // voteBalloon( json, place ), // { maxWidth:300 } ); //}); }); }); initMap(); } function voteBalloon( json, county ) { return [ '
', countyTable( county, null, true ), '
' ].join(''); } function makeIcons() { 'red white blue'.words( function( color ) { icons[color] = makeColorIcon( color ); }); loadCandidateIcons(); } function makeColorIcon( color ) { var icon = new GIcon; icon.image = 'http://www.google.com/intl/en_us/mapfiles/ms/icons/' + color + '-dot.png'; //icon.shadow = ''; icon.iconSize = new GSize( 32, 32 ); //icon.shadowSize = new GSize( 0, 0 ); icon.iconAnchor = new GPoint( 16, 32 ); icon.infoWindowAnchor = new GPoint( 16, 0 ); return icon; } //Json = { // democratResults: function( json ) { showVotes( json, 'democrat' ); }, // republicanResults: function( json ) { showVotes( json, 'republican' ); } //}; function load() { if( mapplet ) { map = new GMap2; zoomRegion(); } else { if( ! GBrowserIsCompatible() ) return; map = new GMap2( $('#map')[0] ); zoomRegion(); map.enableContinuousZoom(); map.enableDoubleClickZoom(); map.enableGoogleBar(); map.enableScrollWheelZoom(); //map.addControl( new GLargeMapControl() ); map.addControl( new GSmallMapControl() ); } makeIcons(); //if( mapplet ) showVotes(); //GEvent.addListener( map, 'click', function( overlay, latlng ) { // //marker.openInfoWindowHtml( formatEvent(event), { maxWidth:500 } ); //}); var testdata = false; if( location.search.slice(1) == 'test' ) testdata = true; loadResults( curParty ); //showCounties(); if( mapplet ) { //download( feed.video, onVideoReady ); download( feed.news, onNewsReady ); //loadYouTubeMap(); } //loadVotes(); if( opt.twitter ) loadTwitter(); loadTiles(); $('#btnTest').click( function() { loadTiles(); return false; }); $('#btnDem').click( function() { loadResults( parties.by.name['dem'] ); return false; }); $('#btnRep').click( function() { loadResults( parties.by.name['gop'] ); return false; }); $('#stateSelector').change( function() { var value = this.value.toLowerCase(); if( ! value ) { value = 'us'; this.selectedIndex = 0; } opt.state = value; loadState(); }); setParty = function( party ) { if( party != curParty ) loadResults( party ); } function loadResults( party ) { curParty = party; // vs. opt.party? //map.clearOverlays(); var attrib = location.href.match( /boston\.com/ ) ? '' : [ 'AP', '/', 'Boston Globe' ].join(''); $('#votestitle').html( [ '', '', '', '', '', '
', //'', party.fullName, '', 'Nationwide Results', '', attrib, '
' ].join('') ); $('#legend').html( 'Loading…' ); loadState( opt.state ); loadVotes( opt.state ); //loadScript( 'http://mg.to/iowa/server/' + q + '_results.js' ); //if( testdata ) // loadScript( 'http://gigapad/iowa/server/test.' + party + '_results.js' ); //else //loadScript( 'http://gmaps-samples.googlecode.com/svn/trunk/elections/iowa/caucus/live/' + party.name + '_results.js' ); //var kmlBaseUrl = 'http://mg.to/', opt.state, '/'; //var kmlBaseUrl = 'http://gmaps-samples.googlecode.com/svn/trunk/elections/2008/primary/', opt.state, '/'; //var kml = new GGeoXml( kmlBaseUrl + 'maps-', opt.state, '-' + party.name + '.kml?t=' + new Date().getTime() ); //map.addOverlay( kml ); //GEvent.addListener( kml, 'click', function( overlay, latlng ) { // console.log( 'kml', overlay, latlng ); // //marker.openInfoWindowHtml( formatEvent(event), { maxWidth:500 } ); //}); } //initControls(); if( mapplet ) _IG_AdjustIFrameHeight(); } var mousemoved = function( latlng ) { //$('#test').html( latlng.lng() + ' : ' + latlng.lat() ); /* for( var i = 0, n = regions.length; i < n; ++i ) { var region = regions[i]; if( region.polygon.base.contains( latlng ) ) { //$('#test').css({ color: region.color }); break; } } if( i == n ) i = -1; region = regions[i]; selectRegion( region ); */ // Old fashioned loops for speed for( var i = 0, nI = counties.length; i < nI; ++i ) { var county = counties[i]; var shapes = county.shapes; for( var j = 0, nJ = shapes.length; j < nJ; ++j ) { if( shapes[j].polygon.base.contains( latlng ) ) { //$('#test').css({ color: region.color }); $('#results').html( countyTable( county ) ); return; } } } } function following() { var chk = $('#chkFollow')[0]; return ! chk || chk.checked; } function loadState() { var abbr = opt.state; var state = stateByAbbr( abbr ); if( state.data ) { //console.log( 'state ready', state.name ); stateReady( state.data ); } else { //console.log( 'loading state', abbr ); loadScript( S( opt.dataUrl, 'shapes/', abbr.toLowerCase(), '.js' ), 120 ); } } function loadVotes() { return; //loadScript( [ opt.dataUrl, 'elections/2008/primary/states/', opt.state, '/results_', party.name, '.js' ].join('') ); var contentBase = window.contentBase || 'http://primary-maps-2008-data.googlecode.com/svn/trunk/miniresults/'; var party = ( Math.random() < .5 ? 'dem' : 'gop' ); setTimeout( reload, 1 ); refresh = function( p) { $('#chkFollow')[0].checked = false; loadParty( p ); } changePartyIfFollowing = function( p ) { if( following() ) loadParty( p ); } loadParty = function( p ) { party = p || party; reload(); } function reload() { var url = contentBase + 'miniresults-map-' + party + '.html'; _IG_FetchContent( url, function( html ) { var follow = following(); $('#resultlist').html( html ); $('#chkFollow')[0].checked = follow; $('#spanFollow').css({ display:'inline' }); $('#attribution').show(); if( mapplet ) _IG_AdjustIFrameHeight(); setTimeout( reload, 120000 ); }, { refreshInterval: 120 }); } } var tileSeq = new Date().getTime(); var tileLayerOverlay; function loadTiles() { return; if( tileLayerOverlay ) map.removeOverlay( tileLayerOverlay ); //base = 'http://padlet/elections/2008/shapes/tiles/'; //base = 'http://gmodules.com/ig/proxy?url=http://mg.to/elections/tiles/'; //base = 'http://padlet/elections/2008/shapes/tiles-county/'; //base = 'http://gmodules.com/ig/proxy?url=http://primary-maps-2008-test.googlecode.com/svn/trunk/tiles/us/tiles/'; //base = 'http://gmodules.com/ig/proxy?url=http://primary-maps-2008-test.googlecode.com/svn/trunk/tiles/us/tiles/'; base = 'http://primary-maps-2008-test.googlecode.com/svn/trunk/tiles/us/tiles/'; //base = 'http://primary-maps-2008-test.googlecode.com/svn/trunk/tiles/us/tiles-75/'; tileLayerOverlay = new GTileLayerOverlay( new GTileLayer( null, 1, 1, { tileUrlTemplate: base + 'tile-{Z}-{Y}-{X}.png', isPng:true, opacity:1.0 }) ); map.addOverlay( tileLayerOverlay ); } function countyName( county ) { var name = county.name.replace( / County$/, '' ); if( ! name.match(/ City/) ) name += ' ' + state.votesby; return name + ', ' + state.name; } function countyTable( county, party, balloon ) { //var fontsize = balloon ? 'font-size:10pt;' : ''; var fontsize = 'font-size:10pt;'; var pad = balloon ? '8px' : '4px'; party = party || opt.party; var lines = []; if( county.total ) { var tallies = county.tallies; tallies.forEach( function( tally ) { var candidate = candidates.all.by.name[tally.name]; lines.push( [ '', '', '
', formatNumber(tally.votes), '
', '', '', '
', percent( tally.votes / county.total ), '
', '', '', '
', ' ', '
', '', //'', // '', //'', '', '
', candidate.fullName, '
', '', '' ].join('') ); }); } else if( ! county.precincts ) { //lines.push( '' + county.name + ' residents vote in a nearby town.' ); } else { lines.push( 'No votes reported' ); } var wikilink = ! balloon ? '' : [ '', 'County information', '' ].join(''); return [ '
', countyName(county), '
', '
', wikilink, '
', '', lines.join(''), '
' ].join(''); } //if( ! mapplet ) mousemoved = hoverize( mousemoved ); /* function selectRegion( region ) { if( region == regions.selected ) return; if( regions.selected ) map.removeOverlay( regions.selected.polygon.select ); regions.selected = region; if( region ) map.addOverlay( region.polygon.select ); showRegionNews( region ); } */ /* function showRegionNews( region ) { if( ! region ) { $('#news') .css({ backgroundColor:'inherit' }) .html( [ '

', mapplet ? 'Click the map for regional news' : 'Rest the mouse over the map for regional news', '

' ].join('') ); return; } var news = region.news; var list = []; news && news.forEach( function( item ) { list.push( [ '
', candidateIcons( item.title ), '', item.title, '', '
' ].join('') ); }); $('#news') .css({ backgroundColor:region.solid }) .html( [ '

', region.caption, ' Iowa News', '

', '
', list.join(''), '
' ].join('') ); if( mapplet ) _IG_AdjustIFrameHeight(); } */ function imgUrl( name ) { return imgBaseUrl + name + '.png'; } function candidateIcons( text, style ) { var names = text.toLowerCase().match(reCandidates) || [ 'generic' ]; var icons = names.map( function( name ) { return [ '' ].join(''); }); return icons.join(''); } function download( url, ready ) { if( mapplet ) { _IG_FetchXmlContent( url, ready ); } else { //GDownloadUrl( 'proxy.php?url=' + encodeURIComponent(url), function( data ) { // ready( GXml.parse(data) ); //}); } } $(window).bind( 'load', load ).bind( 'onunload', GUnload ); function loadTwitter() { var url = 'http://primary-maps-2008-data.googlecode.com/svn/trunk/tweets/tweets.js?t=' + new Date().getTime(); _IG_FetchContent( url, function( t ) { window.tweets = eval( '(' + t + ')' ); //var list = [], markers = []; //tweets.forEach( function( tweet ) { // markers.push(); //}); showTweet(); }); } function showTweet() { var tweet = tweets.shift(); if( tweet ) addTweetMarker( tweet ); else loadTwitter(); } var demRE = /hillary|clinton|barack|obama|democrat/i; var gopRE = /huckabee|mccain|paul|romney|gop|republican/i; var tweetMarker; function addTweetMarker( tweet ) { //debugger; //if( tweetMarker ) { // //map.closeInfoWindow(); // map.removeOverlay( tweetMarker ); // tweetMarker = null; //} //var dem = tweet.message.match( demRE ); //var gop = tweet.message.match( gopRE ); //if( dem && ! gop ) // changePartyIfFollowing( 'dem' ); //else if( gop && ! dem ) // changePartyIfFollowing( 'gop' ); var latlng = new GLatLng( tweet.lat, tweet.lon ); if( ! tweetMarker ) { tweetMarker = new GMarker( latlng/*, { icon:icons[color] }*/ ); map.addOverlay( tweetMarker ); } else { if( mapplet ) tweetMarker.setPoint( latlng ); else tweetMarker.setLatLng( latlng ); } //marker.openInfoWindowHtml( tweetBubble(tweet) ); var bubble = tweetBubble(tweet); tweetMarker.openInfoWindowHtml( bubble, { maxWidth:300, disableGoogleLinks:true } ); setTimeout( showTweet, 15000 ); } function tweetBubble( tweet ) { var img = ! tweet.image ? '' : S( '' ); var author = ! tweet.author || tweet.author == tweet.user ? '' : S( '
', htmlEscape(tweet.author), '
' ); return S( '
', img, '', author, '
', htmlEscape( tweet.where || '' ), '
', '
', httpLinks( htmlEscape(tweet.message) ), //atLinks( httpLinks( htmlEscape(tweet.message) ) ), '
', //'
less than a minute ago in WWW
'
' ); } //function loadYouTubeMap() { // // var contestID = 18; // var vlist = null; // var temp_vlist = null; // var vOfCount = 0; // var tabs = null; // var selectedVid = 0; // var user_vid = ""; // var user_id = ""; // var _json_with_no_cache = 1; // var timerHandle = 0; // var page = 1; // // // var overlayscleared = 0; // var marker = null; // // var DEFAULT_MARKER_POINT = new GLatLng(38.496593,-98.338623);//new GLatLng(37.4228, -122.085) // var DEFAULT_BIG_ZOOM = 4; // var DEFAULT_SMALL_ZOOM = 6; // // // var gicons = [ // new GIcon(G_DEFAULT_ICON, _IG_GetImageUrl("http://contests.labpixies.com/gadget/super_tue/images/1.png")), // new GIcon(G_DEFAULT_ICON, _IG_GetImageUrl("http://contests.labpixies.com/gadget/super_tue/images/2.png")), // new GIcon(G_DEFAULT_ICON, _IG_GetImageUrl("http://contests.labpixies.com/gadget/super_tue/images/3.png")), // new GIcon(G_DEFAULT_ICON, _IG_GetImageUrl("http://contests.labpixies.com/gadget/super_tue/images/4.png")) // ]; // // for(var i=0; i < gicons.length ; i++){ // var tmp = gicons[i]; // tmp.iconSize = new GSize(22,21); // tmp.shadowSize = new GSize(0,0); // } // // var gmarkers = []; // var gmarkers_htmls = []; // var gmarkers_ids = []; // var gmarkers_idx = 0; // // var url = "http://contests.labpixies.com/get_videos/?cid="+contestID+"&v_phase=0"; // _IG_FetchContent(url, parseResponse, { refreshInterval: (60 * 1) }); // // function parseResponse(response){ // // if (response == null || typeof(response) != "string") { // _gel("mainmap").innerHTML = "Temporary unavailable, please try again in a few seconds"; // return; // } // // videos_data = eval("("+response+")"); // // // vlist = videos_data.list; // vlist.splice(vlist.length-1,1); // // if(vlist.length == 0){ // //_gel("mainmap").innerHTML = "No video available, please try again in a few seconds"; // //return; // } // // vlist.sort( randOrd ); // vOfCount = vlist.length; // // // loadMainMap(); // // } // // // function loadMainMap() { // // var bounds = new GLatLngBounds(); // //console.log('creating markers ' + vlist.length); // for (var i=0; i '; // // var _marker = new GMarker(point,gicons[category-1]); // GEvent.addListener(_marker, "click", function() { // _marker.openInfoWindowHtml(html); // var curl = ("http://www.youtube.com/v/"+yt_id+"&rel=0&autoplay=1&border=0"); // _LP_EmbedFlash(curl, "testCont", {width: 230,height: 190,wmode:'transparent'}); // gadgetTracker._trackEvent('map-playVideo',name); // _gel("report_pixel").src = "http://contests.labpixies.com/view.php?vid="+yt_id+"&cont_id="+contestID+"&rand="+Math.round(Math.random()*100000); // }); // // GEvent.addListener(_marker, "infowindowbeforeclose", function() { // _gel("testCont").innerHTML = ""; // }); // // gmarkers[gmarkers_idx] = _marker; // gmarkers_htmls[gmarkers_idx] = html; // gmarkers_ids[gmarkers_idx] = yt_id; // // gmarkers_idx++; // return _marker; // } // // // function gmarkers_click(_idx) { // gmarkers[_idx].openInfoWindowHtml(gmarkers_htmls[_idx]); // var curl = ("http://www.youtube.com/v/"+gmarkers_ids[_idx]+"&rel=0&autoplay=1&border=0"); // _LP_EmbedFlash(curl, "testCont", {width: 230,height: 190,wmode:'transparent'}); // gadgetTracker._trackEvent('map-playVideo',gmarkers_ids[_idx]); // _gel("report_pixel").src = "http://contests.labpixies.com/view.php?vid="+gmarkers_ids[_idx]+"&cont_id="+contestID+"&rand="+Math.round(Math.random()*100000); // } // // //Utils // function randOrd(){ // return (Math.round(Math.random())-0.5); // } // // function getJson(b,errorReportFunction){ // // clearTimeout(timerHandle); // timerHandle = setTimeout(errorReportFunction,30000); // var c=document.getElementsByTagName("head")[0]; // var d=document.createElement("script"); // d.type="text/javascript"; // d.charset="utf-8"; // d.defer="defer"; // var e=b; // e=e+"&nocache="+_json_with_no_cache++; // d.src=e; // var f=function(){ // var j=d.parentNode; // j.removeChild(d); // delete d // }; // var g=function(j){ // var s=(j?j:window.event).target?(j?j:window.event).target:(j?j:window.event).srcElement; // if(s.readyState=="loaded"||s.readyState=="complete"){ // f(); // return; // } // }; // if(navigator.product=="Gecko"){ // d.onload=f; // }else{ // d.onreadystatechange=g; // } // c.appendChild(d) // } // // function _LP_EmbedFlash(_url, _id, _params){ // var isFF = ((navigator.userAgent.toLowerCase().indexOf("firefox") >= 0) || (navigator.userAgent.toLowerCase().indexOf("camino") >= 0)); // if(!isFF){ // _IG_EmbedFlash(_url, _id, _params); // }else{ // var params = _params; // _gel(_id).innerHTML = ''; // } // } //} })( jQuery );