/*** * title: Concert Co-Op - Austin Show Finder * site: www.concertcoop.com * file: java-austin-finder.js * primary author: Operative C * email: operativec@thenumbersstation.com * secondary author: Junichi Furukawa * email: junichi@thenumbersstation.com * * All contents copyright 2008 The Numbers Station LLC, all rights reserved. * User access subject to The Concert Co-Op(TM) Site Terms of Use, available at http://www.concertcoop.com/terms.php ***/ // Process Service Location function fetchSchedule( div, day ){ var data = eval( {"header":{"url":"http:\/\/austin.concertcoop.com\/","metro":"Austin Texas","image":"http:\/\/www.concertcoop.com\/Images\/widgets\/austin\/austin_texas_header.gif"},"metro_root":"http:\/\/austin.concertcoop.com\/","date_array":[{"name":"Today","value":"2010-07-31"},{"name":"Tomorrow (Sun)","value":"2010-08-01"},{"name":"Aug 2 (Mon)","value":"2010-08-02"},{"name":"Aug 3 (Tue)","value":"2010-08-03"},{"name":"Aug 4 (Wed)","value":"2010-08-04"},{"name":"Aug 5 (Thu)","value":"2010-08-05"},{"name":"Aug 6 (Fri)","value":"2010-08-06"}],"location_array":[{"name":"North","id":"north","self_link":"http:\/\/austin.concertcoop.com\/north","checked":false},{"name":"UT\/Central","self_link":"http:\/\/austin.concertcoop.com\/central","id":"central","checked":false},{"name":"Downtown","self_link":"http:\/\/austin.concertcoop.com\/downtown","id":"downtown","checked":true},{"name":"South","self_link":"http:\/\/austin.concertcoop.com\/south","id":"south","checked":false},{"name":"All","id":0,"checked":false}],"genre_array":[{"name":"Rock","id":19,"checked":true},{"name":"Country","id":4,"checked":true},{"name":"Folk","id":8,"checked":true},{"name":"Hip Hop","id":10,"checked":false},{"name":"Pop","id":14,"checked":false},{"name":"Dance","id":5,"checked":false},{"name":"All","id":0,"checked":false}],"map":{"prefix":"http:\/\/www.concertcoop.com\/Images\/widgets\/austin\/austin_texas_map_","height":"240","url":"http:\/\/www.concertcoop.com\/Images\/widgets\/austin\/austin_texas_map_4.gif"}} ); parseResponse( data, div, day ); } // Build table function parseResponse( data, div, day ) { var obj = document.getElementById( div ); // Create ouput table var form = document.createElement("form"); form.setAttribute( "action", data.metro_root ); form.setAttribute( "method", 'get' ); var table = document.createElement("table"); var tbody = document.createElement("tbody"); form.appendChild(table); table.appendChild(tbody); table.cellPadding = "0"; table.cellSpacing = "0"; // ADD HEADER ROW AND INFO var headerRow = document.createElement( "tr" ); var headerData = document.createElement( "td" ); headerData.className = "coop_header"; // add anchor var headLink = document.createElement( "a" ); if ( data.header.url ){ headLink.setAttribute( "href", data.header.url ); } else{ headLink.setAttribute( "href", "http://www.concertcoop.com" ); } // add image... either full header, or some text with the logo var headImage = document.createElement( "img" ); if ( data.header.image ) { headImage.setAttribute( "src", data.header.image ); headImage.setAttribute( "alt", data.header.metro + " Live Music Finder by Concert Co-Op" ); } else { headImage.setAttribute( "src", "http://www.concertcoop.com/Images/widgets/logo.gif" ); headImage.setAttribute( "alt", "by Concert Co-Op" ); var headTitle = document.createElement( "div" ); headTitle.appendChild( document.createTextNode( data.header.metro ) ); headTitle.appendChild( document.createElement( "br" ) ); headTitle.appendChild( document.createTextNode( "Live Music Finder" ) ); headLink.appendChild( headTitle ); } headLink.appendChild( headImage ); headerData.appendChild( headLink ); headerRow.appendChild( headerData ); tbody.appendChild( headerRow ); // ADD SPONSOR ROW AND INFO if ( data.sponsor ) { var sponsorRow = document.createElement( "tr" ); var sponsorData = document.createElement( "td" ); sponsorData.className = "coop_sponsor"; // add anchor var sponsorLink = document.createElement( "a" ); if ( data.sponsor.url ) sponsorLink.setAttribute( "href", data.sponsor.url ); else sponsorLink.setAttribute( "href", "#" ); // add image if ( data.sponsor.image ) { var sponsorImage = document.createElement( "img" ); sponsorImage.setAttribute( "src", data.sponsor.image ); sponsorImage.setAttribute( "alt", data.sponsor.text ); sponsorLink.appendChild( sponsorImage ); } else { var sponsorText = document.createElement( "div" ); sponsorText.appendChild( document.createTextNode( data.sponsor.text ) ); sponsorLink.appendChild( sponsorText ); } sponsorData.appendChild( sponsorLink ); sponsorRow.appendChild( sponsorData ); tbody.appendChild( sponsorRow ); } // ADD AD ROW AND INFO if ( data.ad ) { var adRow = document.createElement( "tr" ); var adData = document.createElement( "td" ); adData.className = "coop_ad"; // add anchor var adLink = document.createElement( "a" ); if ( data.ad.url ) adLink.setAttribute( "href", data.ad.url ); else adLink.setAttribute( "href", "#" ); // add image if ( data.ad.image ) { var adImage = document.createElement( "img" ); adImage.setAttribute( "src", data.ad.image ); adLink.appendChild( adImage ); } // add text if ( data.ad.text ) { var adText = document.createElement( "div" ); adText.appendChild( document.createTextNode( data.ad.text ) ); adLink.appendChild( adText ); } adData.appendChild( adLink ); adRow.appendChild( adData ); tbody.appendChild( adRow ); } // ADD DATE ROW var dateRow = document.createElement( "tr" ); var dateData = document.createElement( "td" ); dateData.className = "coop_date"; var dateHeader = document.createElement( "span" ); dateHeader.appendChild( document.createTextNode("When?") ); dateData.appendChild( dateHeader ); var date_box = document.createElement( "select" ); // date_box.setAttribute( "type", "text" ); date_box.id = "filter_dates_select"; date_box.name = "filter_dates[]"; for ( var i=0; i < data.date_array.length; i++ ){ var date_option = data.date_array[i]; var date_ele = document.createElement( "option" ); date_ele.setAttribute( "value", date_option.value ); if (date_option.selected) date_ele.setAttribute( "selected", "selected" ); date_ele.appendChild( document.createTextNode( date_option.name ) ); date_box.appendChild( date_ele ); } dateData.appendChild( date_box ); dateData.appendChild( document.createTextNode(" ") ); var dateLabel = document.createElement( "label" ); dateLabel.setAttribute( "for", "filter_dates_select" ); dateLabel.appendChild( document.createTextNode( "Date" ) ); dateData.appendChild( dateLabel ); dateData.appendChild( document.createElement("br") ); dateRow.appendChild( dateData ); tbody.appendChild( dateRow ); // ADD LOCATION ROW if ( data.location_array[0] ) { var locationRow = document.createElement( "tr" ); var locationData = document.createElement( "td" ); locationData.className = "coop_location"; locationData.style.backgroundImage = "url("+data.map.url+")"; locationData.style.height = data.map.height + "px"; locationData.setAttribute( "map_prefix", data.map.prefix ); var locationHeader = document.createElement( "span" ); locationHeader.appendChild( document.createTextNode("Where?") ); locationData.appendChild( locationHeader ); locationData.appendChild( document.createElement("br") ); for( var i=0; i < data.location_array.length; i++ ){ var location_input = data.location_array[i]; var location_ele = document.createElement( "input" ); location_ele.name="filter_neighborhoods[]"; location_ele.setAttribute( "type", "checkbox" ); location_ele.id = "coop_location_"+i; location_ele.setAttribute( "value", location_input.id ); location_ele.setAttribute( "onclick", "coopCheck(this,1);"); if ( location_input.checked ) { location_ele.setAttribute( "checked", "checked" ); if ( i == data.location_array.length - 1 ){ location_ele.setAttribute( "prev", 1 ); } else{ location_ele.setAttribute( "default_val", 1 ); } } else if( i == data.location_array.length - 1 ){ location_ele.setAttribute( "prev", 0 ); } locationData.appendChild( location_ele ); locationData.appendChild( document.createTextNode(" ") ); var location_label = document.createElement( "label" ); location_label.setAttribute( "for", "coop_location_"+i ); location_label.appendChild( document.createTextNode( location_input.name ) ); locationData.appendChild( location_label ); locationData.appendChild( document.createElement("br") ); } locationRow.appendChild( locationData ); tbody.appendChild( locationRow ); } // ADD GENRE ROW if ( data.genre_array[0] ) { var genreRow = document.createElement( "tr" ); var genreData = document.createElement( "td" ); if ( data.location_array[0] ) genreData.className = "coop_genre"; else genreData.className = "coop_genre alt"; var genreHeader = document.createElement( "span" ); genreHeader.appendChild( document.createTextNode("What types of music?") ); genreData.appendChild( genreHeader ); genreData.appendChild( document.createElement("br") ); for( var i=0; i < data.genre_array.length; i++ ){ var genre_input = data.genre_array[i]; var genre_ele = document.createElement( "input" ); genre_ele.name = "filter_genre[]"; genre_ele.setAttribute( "type", "checkbox" ); genre_ele.setAttribute( "value", genre_input.id ); genre_ele.id = "coop_genre_"+i; genre_ele.setAttribute( "onclick", "coopCheck(this);"); if( genre_input.checked ) { genre_ele.setAttribute( "checked", "checked" ); if( i == data.genre_array.length - 1 ) genre_ele.setAttribute( "prev", 1 ); else{ genre_ele.setAttribute( "default_val", 1 ); } } else if( i == data.genre_array.length - 1 ){ genre_ele.setAttribute( "prev", 0 ); } genreData.appendChild( genre_ele ); genreData.appendChild( document.createTextNode(" ") ); var genre_label = document.createElement( "label" ); genre_label.setAttribute( "for", "coop_genre_"+i ); genre_label.appendChild( document.createTextNode( genre_input.name ) ); genreData.appendChild( genre_label ); genreData.appendChild( document.createElement("br") ); } genreRow.appendChild( genreData ); tbody.appendChild( genreRow ); } // ADD SUBMIT ROW TO TABLE var submitRow = document.createElement( "tr" ); var submitData = document.createElement( "td" ); submitData.className = "coop_submit"; var submitButton = document.createElement( "input" ); submitButton.setAttribute( "type", "submit" ); // submitButton.setAttribute( "name", "coop_submit" ); submitButton.id="coop_submit"; submitButton.setAttribute( "value", "Find Live Music!" ); submitButton.onclick=function(){ this.form.target='_blank'; return true; }; submitData.appendChild( submitButton ); submitRow.appendChild( submitData ); tbody.appendChild( submitRow ); // Add the copyright data to table var copyRow = document.createElement( "tr" ); var nextData = document.createElement( "td" ); // Copyright data var copyData = document.createElement( "td" ); copyData.className = "coop_copy"; var copyLink = document.createElement( "a" ); copyLink.setAttribute( "href", "http://www.concertcoop.com/terms.php" ); copyLink.appendChild( document.createTextNode( "Listing data \2512008 Concert Co-Op" ) ); copyLink.appendChild( document.createElement( "br" ) ); copyLink.appendChild( document.createTextNode( "Click for Terms of Use" ) ); copyData.appendChild( copyLink ); copyRow.appendChild( copyData ); tbody.appendChild( copyRow ); // empty the div while( obj.firstChild ) { obj.removeChild( obj.firstChild ); } // Replace with table obj.appendChild( form ); } function coopCheck(obj, map) { var parentEle = obj.parentNode; var inputs = parentEle.getElementsByTagName("input"); var inputs_length = inputs.length; var all_box = inputs[inputs_length-1]; var all_value = 0; if ( all_box.checked ) all_value = 1; if ( all_value != all_box.getAttribute("prev") ) { all_box.setAttribute("prev", all_value); for ( i=0; i