function shoppingMapLoad() { showShopTable(); setupBlocks(shopping_blocks); var closeButton = new Image(); closeButton.src = "http://alt.coxnewsweb.com/statesman/classifieds/shopping/districts/close.gif"; } function setupBlocks(blocks) { var mapDiv = document.getElementById("shopping_district_map"); for (var i in blocks) { var id = i; var file = blocks[i]; var contents = getFileContents(file + "?no_owrap=true"); var blockDiv = document.createElement("div"); blockDiv.setAttribute("linkID", i); blockDiv.id = i + "_div"; blockDiv.className = "submap"; blockDiv.innerHTML = contents; var closeDiv = document.createElement("a"); closeDiv.className = "close_block"; closeDiv.href = "javascript:void(0)"; closeDiv.onclick = closeBlock; closeDiv.innerHTML = 'Click to Close'; blockDiv.appendChild(closeDiv); mapDiv.appendChild(blockDiv); for (var j=0; j < blockDiv.childNodes.length; j++) { var currentNode = blockDiv.childNodes[j]; if (currentNode.nodeName.toLowerCase() == "map" && currentNode.name == "blockmap") { currentNode.id = currentNode.name = i + "map"; currentNode.onmouseover = showShopTooltip; currentNode.onmouseout = showShopTooltip; } else if (currentNode.nodeName.toLowerCase() == "img" && currentNode.name == "submap") { currentNode.useMap = "#" + i + "map"; currentNode.onload = function() { var linkObj = document.getElementById(this.parentNode.getAttribute("linkID")); linkObj.onclick = toggleBlock; linkObj.href = "javascript:void(0)"; } } } } } function closeBlock(event) { var target = (window.event) ? (window.event.srcElement) : (event.target); var blockDiv = document.getElementById(target.parentNode.id); document.getElementById(blockDiv.getAttribute("linkID")).className = "sublink"; blockDiv.style.display = "none"; } function toggleBlock(event) { var target = (window.event) ? (window.event.srcElement) : (event.target); var id = target.id; var theDiv = document.getElementById(id + "_div"); var blocks = shopping_blocks; for (var i in blocks) { var currentDiv = document.getElementById(i + "_div"); if (currentDiv != theDiv) { document.getElementById(currentDiv.getAttribute("linkID")).className = "sublink"; currentDiv.style.display = "none"; } } document.getElementById(theDiv.getAttribute("linkID")).className = (theDiv.style.display == "block") ? "sublink" : "sublink selected"; theDiv.style.display = (theDiv.style.display == "block") ? "none" : "block"; } function showShopTable() { var table = document.getElementById("shopping_store_table"); var headerRow = table.insertRow(table.rows.length); headerRow.className = "headrow"; var col1 = headerRow.insertCell(0); col1.innerHTML = "Store Name"; var col2 = headerRow.insertCell(1); col2.innerHTML = "Address"; var col3 = headerRow.insertCell(2); col3.innerHTML = "Phone Number"; var col4 = headerRow.insertCell(3); col4.innerHTML = "Genre"; var col5 = headerRow.insertCell(4); col5.innerHTML = "Website"; col3.style.width = "100px"; var addresses = shopping_addresses; var addresses_array = shoppingObjArray(addresses); for (var i=0; i < addresses_array.length; i ++) { var current_obj = addresses_array[i].info; var current_address = addresses_array[i].address; var title = current_obj["Text"]; var phone = current_obj["Phone"]; var genre = current_obj["Genre"]; var website = (!current_obj["Website"]) ? "" : 'Website'; var tableRow = table.insertRow(table.rows.length); if (i % 2 == 0) { tableRow.className = "blue"; } var td1 = tableRow.insertCell(0); td1.innerHTML = title; var td2 = tableRow.insertCell(1); td2.innerHTML = current_address.replace("Austin TX",""); var td3 = tableRow.insertCell(2); td3.innerHTML = phone; var td4 = tableRow.insertCell(3); td4.innerHTML = genre; var td5 = tableRow.insertCell(4); td5.innerHTML = website; } /*var i = 0; for (var address in addresses) { var title = addresses[address]["Text"]; var phone = addresses[address]["Phone"]; var genre = addresses[address]["Genre"]; var website = (!addresses[address]["Website"]) ? "" : 'Website'; var tableRow = table.insertRow(table.rows.length); if (i % 2 == 0) { tableRow.className = "blue"; } var td1 = tableRow.insertCell(0); td1.innerHTML = title; var td2 = tableRow.insertCell(1); td2.innerHTML = address.replace("Austin TX",""); var td3 = tableRow.insertCell(2); td3.innerHTML = phone; var td4 = tableRow.insertCell(3); td4.innerHTML = genre; var td5 = tableRow.insertCell(4); td5.innerHTML = website; i++; }*/ } function shoppingObjArray(obj) { var addresses = obj; var shopping_array = []; for (var address in addresses) { var shopping_obj = {}; shopping_obj.address = address; shopping_obj.info = addresses[address]; shopping_array.push(shopping_obj); //{address, info.Text} } var sorted_shopping_array = shopping_array.sort(sortShoppingArray); return sorted_shopping_array; } function sortShoppingArray(a, b) { if (a.info["Text"] > b.info["Text"]) { return 1; } if (a.info["Text"] < b.info["Text"]) { return -1; } if (a.info["Text"] == b.info["Text"]) { return 0; } } // Tooltip functions function showShopTooltip(event) { var target = (window.event) ? (window.event.srcElement) : (event.target); var address = target.getAttribute("address"); var event_type = (window.event) ? (window.event.type) : (event.type); var parentdiv = document.body; //target.parentNode.parentNode; if (event_type == "mouseover") { var tooltip_txt = getToolTipText(address); var tooltip = document.createElement("div"); tooltip.setAttribute("id", "shopping_district_tooltip"); tooltip.innerHTML = tooltip_txt; parentdiv.appendChild(tooltip); setToolTipPosition(event); target.onmousemove = setToolTipPosition; if (shopping_addresses[address]["Website"]) { target.href = shopping_addresses[address]["Website"]; } } else if (event_type == "mouseout") { target.onmousemove = null; parentdiv.removeChild(document.getElementById("shopping_district_tooltip")); } } function setToolTipPosition(event) { var mouseoffset = 12; var eventobj = (event) ? (event) : (window.event); var tooltipmove = document.getElementById("shopping_district_tooltip"); var x_offset; var y_offset; if (eventobj.pageX || eventobj.pageY) { x_offset = eventobj.pageX; y_offset = eventobj.pageY; } else if (document.documentElement && document.documentElement) { x_offset = eventobj.clientX + document.documentElement.scrollLeft; y_offset = eventobj.clientY + document.documentElement.scrollTop; } else { x_offset = eventobj.clientX + document.body.scrollLeft; y_offset = eventobj.clientY + document.body.scrollTop; } tooltipmove.style.left = x_offset + mouseoffset + "px"; //eventobj.clientX + window.pageXOffset + mouseoffset + "px"; tooltipmove.style.top = y_offset + mouseoffset + "px"; //eventobj.clientY + window.pageYOffset + mouseoffset + "px"; } function getToolTipText(address) { var addresses = shopping_addresses; var title = addresses[address]["Text"]; var phone = addresses[address]["Phone"]; var genre = addresses[address]["Genre"]; var logo = (!addresses[address]["Logo"]) ? "" : addresses[address]["Logo"]; var website = (!addresses[address]["Website"]) ? "" : addresses[address]["Website"]; var text = ''; text += ''; if (logo != "") { text += ''; } text += ''; text += '
'; if (website != "") { text += 'click for more info

'; } text += ''+ title +'
'; text += address.replace("Austin TX","") + '
'; text += phone + '
'; text += '' + genre + ''; text += '
'; return text; } // AJAX function function getFileContents(file) { var http = null; var contents = null; if (window.XMLHttpRequest) { // Mozilla, Safari, ... http = new XMLHttpRequest(); if (http.overrideMimeType) { http.overrideMimeType('text/plain'); //('text/xml'); } } else if (window.ActiveXObject) { // IE try { http = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { http = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { return false; // could not create XMLHttpRequest Object alert('Cannot create an XMLHTTP instance'); } } } http.open("GET", file, false); http.send(null); contents = http.responseText; /*http.onreadystatechange = function() { if(http1.readyState == 4) { file_contents1 = http1.responseText; } }*/ return contents; } addLoadEvent(shoppingMapLoad);