<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="Mapa.co.il Gadget" 
description="Get directions, locations, etc. from Mapa.co.il" 
title_url="" 
author="Ayal Yogev and Barak Witkowski" 
category="tools" 
author_email="ayal.junk@gmail.com" 
author_location="Israel" 
author_affiliation="" 
author_photo="" 
author_aboutme="" 
author_link="" 
author_quote="" 
screenshot="http://hosting.gmodules.com/ig/gadgets/file/114044900231342575160/screenshot1.PNG" 
thumbnail="http://www.mapa.co.il/general/img/LogoMapa.gif" 
height="500" 
width="300" 
scrolling="1">
<Require feature="tabs"/>
<Require feature="analytics" />
<Require feature="setprefs"/>
<Require feature="opensocial-0.7"/>
</ModulePrefs>
<UserPref name="key1" default_value="" datatype="hidden" />
<UserPref name="key2" default_value="" datatype="hidden" />
<UserPref name="key3" default_value="" datatype="hidden" />
<UserPref name="key4" default_value="" datatype="hidden" />
<UserPref name="key5" default_value="" datatype="hidden" />
<UserPref name="key6" default_value="" datatype="hidden" />
<UserPref name="addr1" default_value="" datatype="hidden" />
<UserPref name="addr2" default_value="" datatype="hidden" />
<UserPref name="addr3" default_value="" datatype="hidden" />
<UserPref name="addr4" default_value="" datatype="hidden" />
<UserPref name="addr5" default_value="" datatype="hidden" />
<UserPref name="addr6" default_value="" datatype="hidden" />
<UserPref name="last_tab" default_value="1" datatype="hidden" />
<UserPref name="start_tab"
display_name="Starting Tab"
datatype="enum"
default_value="1">
<EnumValue value="last" display_value="&#x5D7;&#x5DC;&#x5D5;&#x5DF; &#x5D0;&#x5D7;&#x5E8;&#x5D5;&#x5DF;"/>
<EnumValue value="1" display_value="&#x5D7;&#x5D9;&#x5E4;&#x5D5;&#x5E9; &#x5DB;&#x5EA;&#x5D5;&#x5D1;&#x5EA;"/>
<EnumValue value="2" display_value="&#x5D7;&#x5D9;&#x5E4;&#x5D5;&#x5E9; &#x5DE;&#x5E1;&#x5DC;&#x5D5;&#x5DC;"/>
<EnumValue value="3" display_value="&#x5D7;&#x5D9;&#x5E4;&#x5D5;&#x5E9; &#x5E2;&#x5E1;&#x5E7;"/>
<EnumValue value="4" display_value="&#x5DB;&#x5EA;&#x5D5;&#x5D1;&#x5D5;&#x5EA; &#x5E9;&#x5DE;&#x5D5;&#x5E8;&#x5D5;&#x5EA;"/>
</UserPref>
<UserPref name="display_hover"
display_name="Display Hover Maps"
datatype="enum"
default_value="yes">
<EnumValue value="yes" display_value="&#x5DB;&#x5DF;"/>
<EnumValue value="no" display_value="&#x5DC;&#x5D0;"/>
</UserPref>
<UserPref name="image_width" display_name="Images Width" required="false" default_value="250" />
<UserPref name="image_height" display_name="Images Height" required="false" default_value="250" />

<Content type="html">
<![CDATA[ 
<style type="text/css"> 
.asbMenu { 
border: 1px solid black; 
background: #ffffff; 
position: absolute; 
padding: 0px 5px 0px 5px; 
white-space: nowrap; 
z-index: 1000; 
width: 80%; 
} 
.asbMenuBase { 
position: absolute; 
z-index: 1000; 
} 
.asbMenuItem { 
color: black; 
background: #ffffff; 
cursor: hand; 
cursor: pointer; 
} 
.asbSelMenuItem { 
color: white; 
background: #0000f0; 
cursor: hand; 
cursor: pointer; 
white-space: nowrap;
} 
</style> 
<script type="text/javascript">
// Get user preferences
var prefs = new _IG_Prefs(__MODULE_ID__);
// set defaults
var srcData = "";
var destData = "";
var currSrc = "";
var currDest = "";
var currBusiness = "";
var currBusinessAround = "";
var currRadius = "1000";
var method = "2";
var avoidPalestine = "1";
var avoidTollRoad = "1";
var dirtRoad = "1";
var dirTabForm = "";
buildDirectionForm(); // build direction form default
var directionTabInnerHtml = dirTabForm;
var currCitySuggest = "";
var currStreetSuggest = "";
var currHouseNumber = "";
var currCityCode = "";
var currSuggestLoc = -1;
var zoomapInnerHTML = '';
var locationMapInnerHTML = '';
var locationMapIconInnerHTML = '';
var businessButtonsInnerHTML = '<input id="business_search_button" type="button" onclick="javascript:getBusinessData()" value="' + unescape("%20%20%u05D7%u05E4%u05E9%20%20") + '"/>';
var businessResultsInnerHTML = '';
var numTries = 0;
var businessData = "";


// Call init function to initialize and display tabs.
_IG_RegisterOnloadHandler(init);



// function init: init function
function init() {
// Initialize tabs

var start_tab = prefs.getString("start_tab");

if (start_tab == "last") {

start_tab = prefs.getString("last_tab");

}

if (start_tab == "1") {

start_tab = unescape("%u05D7%u05E4%u05E9%20%u05DB%u05EA%u05D5%u05D1%u05EA");

}

else if (start_tab == "2") {

start_tab = unescape("%u05D7%u05E4%u05E9%20%u05DE%u05E1%u05DC%u05D5%u05DC");

}

else if (start_tab == "3") {

start_tab = unescape("%u05D7%u05E4%u05E9%20%u05E2%u05E1%u05E7");

}

else if (start_tab == "4") {

start_tab = unescape("%u05DB%u05EA%u05D5%u05D1%u05D5%u05EA%20%u05E9%u05DE%u05D5%u05E8%u05D5%u05EA");

}

else {

alert("unknown start tab");

return;

}
var tabs = new _IG_Tabs(__MODULE_ID__, start_tab); 
tabs.addDynamicTab(unescape("%u05DB%u05EA%u05D5%u05D1%u05D5%u05EA%20%u05E9%u05DE%u05D5%u05E8%u05D5%u05EA"), saveAddressesTab);
tabs.addDynamicTab(unescape("%u05D7%u05E4%u05E9%20%u05E2%u05E1%u05E7"), searchBusinessTab);
tabs.addDynamicTab(unescape("%u05D7%u05E4%u05E9%20%u05DE%u05E1%u05DC%u05D5%u05DC"), getDirections);
tabs.addDynamicTab(unescape("%u05D7%u05E4%u05E9%20%u05DB%u05EA%u05D5%u05D1%u05EA"), locationSearch); 

}


// function buildDirectionForm: builds the direction form default
function buildDirectionForm()
{
dirTabForm = '<form id="searchDirectionsForm" width="100%">'; 
dirTabForm += '<table width="100%" border="0" cellspacing="0" cellpadding="0" dir="rtl">';
dirTabForm += '<tr><td><table width="100%" border="0" cellspacing="0" cellpadding="0" dir="rtl">';
dirTabForm += '<tr><td width="50">' + unescape("%u05DE%u05D5%u05E6%u05D0") + '</td>\n';
dirTabForm += '<td width="100%" align="center"><input id="SourcePoint" name="SourcePoint" type="text" style="width: 80%" value ="' + currSrc + '"/></td></tr>\n'; 

dirTabForm += '<tr><td>' + unescape("%u05D9%u05E2%u05D3") + '</td>';

dirTabForm += '<td width="100%" align="center"><input id="DestinationPoint" name="DestinationPoint" type="text" style="width: 80%" value="' + currDest + '"/></td></tr>\n';

dirTabForm += '</table></td>\n';

dirTabForm += '<td width="70" align="left"><a href="javascript:openMapaMain()"><img src="http://www.mapa.co.il/general/img/LogoMapa.gif" border="0" /></a></td>\n';
dirTabForm += '</tr>\n';

dirTabForm += '<tr><td><table width="100%" border="0" cellspacing="0" cellpadding="0" dir="rtl">';

dirTabForm += '<tr><td><input type="radio" ' + (method=="1"?'checked="checked"':'') + ' value="1" name="dirType" id="dirType" onClick="getDirButtons()"/>';

dirTabForm += unescape("%u05D4%u05DB%u05D9%20%u05E7%u05E6%u05E8");

dirTabForm += '</td><td><input type="radio"' + (method=="2"?'checked="checked"':'') + 'value="2" name="dirType" id="dirType" onClick="getDirButtons()"/>';

dirTabForm += unescape("%u05D4%u05DB%u05D9%20%u05DE%u05D4%u05D9%u05E8");

dirTabForm += '</td></tr>\n';

dirTabForm += '</table></table>\n';

dirTabForm += '<table width="100%" border="0" cellspacing="0" cellpadding="0" dir="rtl">'; 

dirTabForm += '<tr><td><table width="100%" border="0" cellspacing="0" cellpadding="0" dir="rtl">';

dirTabForm += '<tr>\n';

dirTabForm += '<td><input type="checkbox" ' + (avoidTollRoad=="1"?'':'checked="checked"') + ' value="1" name="tollRoad" id="tollRoad" onClick="getDirButtons()"/>\n';

dirTabForm += unescape("%u05DB%u05D1%u05D9%u05E9%20") + '6</td>\n';

dirTabForm += '<td><input type="checkbox"' + (dirtRoad=="1"?'checked="checked"':'') + ' value="1" name="dirtRoad" id="dirtRoad" onClick="getDirButtons()"/>\n';

dirTabForm += unescape("%u05D3%u05E8%u05DB%u05D9%20%u05E2%u05E4%u05E8") + '</td>\n';

dirTabForm += '<td><input type="checkbox" ' + (avoidPalestine=="1"?'':'checked="checked"') + ' value="1" name="avoidPalestine" id="avoidPalestine" onClick="getDirButtons()"/>\n';

dirTabForm += unescape("%u05DE%u05E2%u05D1%u05E8%20%u05DC%u05E7%u05D5%20%u05D4%u05D9%u05E8%u05D5%u05E7") + '</td>\n';

dirTabForm += '</tr>\n';

dirTabForm += '</table>\n';

dirTabForm += '<tr><td><table width="100%" border="0" cellspacing="0" cellpadding="0" dir="rtl">';

dirTabForm += '</table>\n';

dirTabForm += '</table>\n';

dirTabForm += '<br><input id="button" type="button" onclick="numTries = 0; getDirectionData();" value="' + unescape("%u05D4%u05E6%u05D2%20%u05DE%u05E1%u05DC%u05D5%u05DC") + '"/>';

dirTabForm += '</form>'; 
}


// function openMapaMain: opens mapa.co.il main window
function openMapaMain() {
window.open('http://www.mapa.co.il');
}


// function getDirButtons: sets global direction vars to values inside the input fields
function getDirButtons()
{
currSrc = document.getElementById('SourcePoint').value;
currDest = document.getElementById('DestinationPoint').value;

try {
avoidTollRoad = (document.getElementById('tollRoad').checked?"0":"1");

} catch(e) {

avoidTollRoad = "1";

}

dirtRoad = (document.getElementById('dirtRoad').checked?"1":"0");
avoidPalestine = (document.getElementById('avoidPalestine').checked?"0":"1");
method = (document.getElementById('dirType').checked?"1":"2");
}


// function getBusinessButtons: sets global business vars to values inside the input fields
function getBusinessButtons()
{
currBusiness = document.getElementById('business').value;
currBusinessAround = document.getElementById('businessAround').value;

currRadius = document.getElementById('radius').value;
}



// function setDirectionForm: displays direction form default in tab
function setDirectionForm()
{
buildDirectionForm();
directionTabInnerHtml = dirTabForm;
_gel('instructions_div').innerHTML = directionTabInnerHtml;
}

// function openMapaDirectionsWindow: opens directions in mapa.co.il
function openMapaDirectionsWindow(srcLocation, destLocation)
{
window.open("http://www.mapa.co.il/general/searchresult_locked.asp?SourceX=&SourceY=&SourceAddInfo=&DestinationX=&DestinationY=&DestinationAddInfo=&CurrMapTab=4&CurrHeaderTab=2&SourcePoint=" + escape(findSavedAddr(srcLocation)) + "&DestinationPoint=" + escape(findSavedAddr(destLocation)));
}


// function openDirectionsInMap: opens directions between src point and dest point in mapa.co.il
function openDirectionsInMap()
{
srcLocation = currSrc;
destLocation = currDest;
openMapaDirectionsWindow(srcLocation, destLocation);
}


// function openLocaionInMap: opens a location point in mapa.co.il
function openLocaionInMap()
{
srcLocation = '';
var city = document.getElementById('city').value;
var street = document.getElementById('street').value;
currHouseNumber = document.getElementById('houseNumber').value;

destLocation = street + ' ' + currHouseNumber + ' ' + city;
openMapaDirectionsWindow(srcLocation, destLocation);
}


// function getZoomapPic: gets the zoomap picture of location
function getZoomapPic() {
document.getElementById('zoomap').innerHTML = '';
document.getElementById('location_map').innerHTML = '';
document.getElementById('location_map_icon').innerHTML = '';
var city = document.getElementById('city').value;
var street = document.getElementById('street').value;
currHouseNumber = document.getElementById('houseNumber').value;

var width = prefs.getInt("image_width");

var height = prefs.getInt("image_height");

imgURL = 'http://www.mapa.co.il/ZooMapPics/GetZoomapPic.ashx?city=' + escape(city) + '&street=' + escape(street) + '&house=' + escape(currHouseNumber) + '&w=' + width + '&h=' + height + '&dummy=1220020122640.gif';

zoomapInnerHTML = '<img src=' + imgURL + ' />';

document.getElementById('zoomap').innerHTML = zoomapInnerHTML;

_IG_FetchContent(imgURL, checkIfZoomapPicExists);
locationMapInnerHTML = '';

locationMapIconInnerHTML = '';

}


// function checkIfZoomapPicExists: checks if a zoomap picture exists for an address
function checkIfZoomapPicExists(response) {
if (response.length == 0) {

zoomapInnerHTML = '<table dir="rtl" align="right"><tr><td><ul>\n'

zoomapInnerHTML += '<li>';

zoomapInnerHTML += unescape('%u05D4%u05EA%u05DE%u05D5%u05E0%u05D4%20%u05DC%u05D0%20%u05E0%u05DE%u05E6%u05D0%u05D4');

zoomapInnerHTML += '</li>';

zoomapInnerHTML += '</ul></td></tr></table>';

document.getElementById('zoomap').innerHTML = zoomapInnerHTML;

}

}


// function getLocationMap: gets the location of the point in the locations tab and displays it
function getLocationMap() {
numTries++;
document.getElementById('zoomap').innerHTML = '';
var city = document.getElementById('city').value;
var street = document.getElementById('street').value;
currHouseNumber = document.getElementById('houseNumber').value;

var addr = street + ' ' + currHouseNumber + ' ' + city;

var url = "http://www.mapa.co.il/gisservices/AddressAnalyzer/AnalyzeAddress4js.ashx?input=" + escape(addr);

_IG_FetchContent(url, getLocationMapAfterJSON);

}


// function saveAddressesTab: init function for the save addresses tab
function saveAddressesTab(tabId) {
prefs.set('last_tab','4');

var saveForm = '';

saveForm += '<div id="saved_message"></div>\n';

saveForm += '<form id="searchBusinessForm" width="100%">\n'; 
saveForm += '<table width="100%" border="0" cellspacing="0" cellpadding="0" dir="rtl">\n';
saveForm += '<tr><td width="30%">' + unescape("%u05E9%u05DD") + '</td><td width="70%">' + unescape("%u05DB%u05EA%u05D5%u05D1%u05EA") + '</td></tr>\n';

saveForm += '<tr><td><input style="width: 60%" id="key1" type="text" value="' + prefs.getString("key1") + '" /></td>';

saveForm += '<td><input style="width: 100%" id="addr1" type="text" value="' + prefs.getString("addr1") + '" /></td></tr>';

saveForm += '<tr><td><input style="width: 60%" id="key2" type="text" value="' + prefs.getString("key2") + '" /></td>';

saveForm += '<td><input style="width: 100%" id="addr2" type="text" value="' + prefs.getString("addr2") + '" /></td></tr>';

saveForm += '<tr><td><input style="width: 60%" id="key3" type="text" value="' + prefs.getString("key3") + '" /></td>';

saveForm += '<td><input style="width: 100%" id="addr3" type="text" value="' + prefs.getString("addr3") + '" /></td></tr>';

saveForm += '<tr><td><input style="width: 60%" id="key4" type="text" value="' + prefs.getString("key4") + '" /></td>';

saveForm += '<td><input style="width: 100%" id="addr4" type="text" value="' + prefs.getString("addr4") + '" /></td></tr>';

saveForm += '<tr><td><input style="width: 60%" id="key5" type="text" value="' + prefs.getString("key5") + '" /></td>';

saveForm += '<td><input style="width: 100%" id="addr5" type="text" value="' + prefs.getString("addr5") + '" /></td></tr>';

saveForm += '<tr><td><input style="width: 60%" id="key6" type="text" value="' + prefs.getString("key6") + '" /></td>';

saveForm += '<td><input style="width: 100%" id="addr6" type="text" value="' + prefs.getString("addr6") + '" /></td></tr>';

saveForm += '</table>\n';

saveForm += '<input id="button" type="button" onclick="saveInput()" value="' + unescape("%u05E9%u05DE%u05D5%u05E8") + '" />\n';
saveForm += '</form>\n';

_gel(tabId).innerHTML = saveForm;

}


// function saveInput: saves the user's favorite points
function saveInput() {

prefs.set("key1", document.getElementById("key1").value);

prefs.set("key2", document.getElementById("key2").value);

prefs.set("key3", document.getElementById("key3").value);

prefs.set("key4", document.getElementById("key4").value);

prefs.set("key5", document.getElementById("key5").value);

prefs.set("key6", document.getElementById("key6").value);

prefs.set("addr1", document.getElementById("addr1").value);

prefs.set("addr2", document.getElementById("addr2").value);

prefs.set("addr3", document.getElementById("addr3").value);

prefs.set("addr4", document.getElementById("addr4").value);

prefs.set("addr5", document.getElementById("addr5").value);

prefs.set("addr6", document.getElementById("addr6").value);

document.getElementById("saved_message").innerHTML = '<div style="text-align:center; background-color:#8FCC40"><b>' + unescape('%u05D4%u05E0%u05EA%u05D5%u05E0%u05D9%u05DD%20%u05E0%u05E9%u05DE%u05E8%u05D5%20%u05D1%u05D4%u05E6%u05DC%u05D7%u05D4') + '</b></div>';

displayDiv(document.getElementById("saved_message"));

setTimeout(removeSavedMessage, 2000);
}


// function removeSavedMessage: removes the 'saved successfully' notification 
function removeSavedMessage() {
document.getElementById("saved_message").innerHTML = "";

hideDiv(document.getElementById("saved_message"));

}


// function findSavedAddr: finds a saved address from key if exists, if not returns the key itself
function findSavedAddr(key) {
if (key == prefs.getString("key1")) {

return prefs.getString("addr1");

}

if (key == prefs.getString("key2")) {

return prefs.getString("addr2");

}

if (key == prefs.getString("key3")) {

return prefs.getString("addr3");

}

if (key == prefs.getString("key4")) {

return prefs.getString("addr4");

}

if (key == prefs.getString("key5")) {

return prefs.getString("addr5");

}

if (key == prefs.getString("key6")) {

return prefs.getString("addr6");


}

return key;

}


// function locationSearch: init function for location search tab
function locationSearch(tabId) { 
prefs.set('last_tab', '1');
var formHtml = '<form id="searchForm" target="_blank" method="GET" width="100%">\n';
formHtml += '<table width="100%" border="0" cellspacing="0" cellpadding="0" dir="rtl">\n';
formHtml += '<tr><td>\n';
formHtml += '<table width="100%" border="0" cellspacing="0" cellpadding="0" dir="rtl">\n';
formHtml += '<tr>';
formHtml += '<td width="50">' + unescape("%u05D9%u05D9%u05E9%u05D5%u05D1")+ '</td>\n';
formHtml += '<td><input id="city" value="' + currCitySuggest + '" autocomplete="off" name="city" type="text" style="width: 80%" onfocus="blurSuggest(\'street\')" onblur="blurSuggest(\'city\')" onkeyup="getCities(event)"/>\n';
formHtml += '<div id="city_search_suggest"></div></td>\n';
formHtml += '</tr>'; 
formHtml += '<tr>';
formHtml += '<td>' + unescape("%u05E8%u05D7%u05D5%u05D1") + '</td>\n';
formHtml += '<td><input id="street" value="' + currStreetSuggest + '" autocomplete="off" name="street" type="text" style="width: 80%" onfocus="blurSuggest(\'city\')" onblur="blurSuggest(\'street\')" onkeyup="getStreets(event)"/>\n';
formHtml += '<div id="street_search_suggest"></div></td>\n';
formHtml += '</tr>';
formHtml += '<tr>';
formHtml += '<td>' + unescape("%u05DE%u05E1%u05E4%u05E8") + '</td>\n';
formHtml += '<td><input id="houseNumber" value="' + currHouseNumber + '" name="houseNumber" onfocus="blurSuggest()" type="text" size="5"/></td>\n';
formHtml += '</tr>';
formHtml += '</table>';

formHtml += '</td>';

formHtml += '<td width="70" align="left" valign="top"><a href="javascript:openMapaMain()"><img src="http://www.mapa.co.il/general/img/LogoMapa.gif" border="0" /></a></td>\n';

formHtml += '</tr>'; 
formHtml += '</table>';

formHtml += '<br><input id="button" type="button" onclick="openLocaionInMap()" value="' + unescape("%u05E4%u05EA%u05D7%20%u05D1%u05DE%u05E4%u05D4") + '"/>';
formHtml += '<input id="button" type="button" onclick="getZoomapPic()" value="' + unescape("%u05D4%u05E6%u05D2%20%u05EA%u05DE%u05D5%u05E0%u05D4") + '" />';
formHtml += '<input id="button" type="button" onclick="numTries = 0; getLocationMap();" value="' + unescape("%u05D4%u05E6%u05D2%20%u05DE%u05D9%u05E7%u05D5%u05DD") + '" />';
formHtml += '</form>';
formHtml += '<div id="zoomap">' + zoomapInnerHTML + '</div>';
formHtml += '<div id="location_map">' + locationMapInnerHTML + '</div>';

formHtml += '<div id="location_map_icon" style="position:absolute;">' + locationMapIconInnerHTML + '</div>';
formHtml += '<br><br><br><br><br><br><br><br><br><br>\n';

_gel(tabId).innerHTML = formHtml;

var width = prefs.getInt("image_width");
var height = prefs.getInt("image_height");
var xloc = parseInt(document.getElementById('location_map').offsetLeft) + Math.round(width/2);
var yloc = parseInt(document.getElementById('location_map').offsetTop) + Math.round(height/2);
document.getElementById('location_map_icon').style.top = (yloc - 25);
document.getElementById('location_map_icon').style.left = (xloc - 16);
}



// function searchBusinessTab: init function for business search tab
function searchBusinessTab(tabId) {
prefs.set('last_tab', '3');
formHtml = '<form id="searchBusinessForm" width="100%">'; 
formHtml += '<table width="100%" border="0" cellspacing="0" cellpadding="0" dir="rtl">';
formHtml += '<tr><td>';

formHtml += '<table width="100%" border="0" cellspacing="0" cellpadding="0" dir="rtl">';

formHtml += '<tr><td width="70">' + unescape("%u05D7%u05E4%u05E9") + '</td>';

formHtml += '<td align="right"><input id="business" name="business" type="text" style="width: 80%" value="' + currBusiness + '"/></td></tr>\n';
formHtml += '<tr><td width="70">' + unescape("%u05D1%u05E1%u05D1%u05D9%u05D1%u05EA") + '</td>\n';
formHtml += '<td align="right"><input id="businessAround" name="businessAround" type="text" style="width: 80%" value ="' + currBusinessAround + '"/></td></tr>\n'; 

formHtml += '<tr><td width="70">' + unescape("%u05D1%u05D8%u05D5%u05D5%u05D7%20(%u05DE%27)") + '</td>\n';
formHtml += '<td align="right"><input id="radius" name="radius" type="text" size="8" value ="' + currRadius + '"/>\n'; 

formHtml += '</td>\n';
formHtml += '</table>\n';
formHtml += '</td>\n';
formHtml += '<td width="70" align="left" valign="top"><a href="javascript:openMapaMain()"><img src="http://www.mapa.co.il/general/img/LogoMapa.gif" border="0" /></a></td>\n';

formHtml += '</tr>\n';

formHtml += '</table><br>\n';

formHtml += '<div id="business_results_buttons_div" style="width=100%;height=100%;overflow=hidden;">\n';

formHtml += businessButtonsInnerHTML;

formHtml += '</div>';

formHtml += '<div id="business_results_div">' + businessResultsInnerHTML + '</div>\n';

formHtml += '</form>'; 
_gel(tabId).innerHTML = formHtml;
}

// function getDirectionData: gets the directions between two points from the input strings
function getDirectionData()
{
numTries++;
srcData = "";

destData = "";
getDirButtons();
if (currSrc == "")
{
alert("Please enter source address.");
return;
}

if (currDest == "")
{
alert("Please enter destination address.");
return;
}

var url = "http://www.mapa.co.il/gisservices/AddressAnalyzer/AnalyzeAddress4js.ashx?input=" + escape(findSavedAddr(currSrc));

_IG_FetchContent(url, getSourceData);

}


// function getBusinessData: gets the business data around the location point 
function getBusinessData() {
getBusinessButtons();
if (currBusiness == "")
{
alert("Please enter search criteria.");
return;
}
if (currBusinessAround == "")
{
alert("Please enter an address.");
return;
}
if (currRadius == "")
{

alert("Please enter search radius.");
return;
}

if(!isInteger(currRadius)) {

alert("Radius input is not an integer.");

return;

}

var url = "http://www.mapa.co.il/gisservices/AddressAnalyzer/AnalyzeAddress4js.ashx?input=" + escape(findSavedAddr(currBusinessAround));

_IG_FetchContent(url, function (obj) {
var addrData = eval(obj);

if (addrData.XRIM == undefined) {

alert("Cound not find the address specified.");

return;

}

var url = "http://www.mapa.co.il/general/searchresult_locked.asp?textSearch=" + escape(currBusiness) + "&textSearchWhere=" + escape(findSavedAddr(currBusinessAround)) + "&button1=%E7%E9%F4%E5%F9&first=1&MinX=0&MinY=0&MaxX=0&MaxY=0&MapEarthX=0&MapEarthY=0&MapZoom=0&CurrMapTab=1&CurrHeaderTab=&MapType=&GeoSearchRadius=" + encodeURI(currRadius);
_IG_FetchContent(url, parseBusinessSearch);
});
}



// function getSourceData: parses JSON of an address and saves it to srcData
function getSourceData(obj) {
srcData = eval(obj);

if (srcData.XRIM == undefined) {

if (numTries > 5) {

alert('Could not find source address');

numTries = 0;

return;

}

setTimeout(getDirectionData, 1000);

return;

}

url = "http://www.mapa.co.il/gisservices/AddressAnalyzer/AnalyzeAddress4js.ashx?input=" + escape(findSavedAddr(currDest));
_IG_FetchContent(url, getDestData);

};


// function getLocationMapAfterJSON: parses JSON of location and load the map
function getLocationMapAfterJSON(obj) {
var jsonData = eval(obj);
if (jsonData.XRIM == undefined) {

if (numTries > 5) {

alert('Could not find address');

numTries = 0;

return;

}

setTimeout(getLocationMap, 500);

return;

}

numTries = 0;
var width = prefs.getInt("image_width");

var height = prefs.getInt("image_height");
url = 'http://services.mapa.co.il/MapImageService/ByCenter.ashx?mt=X&dRoute=1&rap=1&rat=1&rdr=1&rm=1&rx=159126,158315&ry=1211001,1211016&rvt=0,3&rws=&dSpeedTraps=0&h=' + height + '&w=' + width + '&z=500&cv=creditbig&x=' + jsonData.XRIM + '&y=' + jsonData.YRIM + '&dtopo=0';

locationMapInnerHTML = '<img src="' + url + '" />';

var myDiv = document.getElementById('location_map');

myDiv.innerHTML = locationMapInnerHTML;

var xloc = parseInt(myDiv.offsetLeft);

var yloc = parseInt(myDiv.offsetTop);

myDiv = document.getElementById('location_map_icon');

locationMapIconInnerHTML = '<img src="http://www.mapa.co.il//maps/images/location_icon.png" />';

myDiv.innerHTML = locationMapIconInnerHTML;

xloc += Math.round(width/2);

yloc += Math.round(height/2);

myDiv.style.top = (yloc - 25);

myDiv.style.left = (xloc - 16);

zoomapInnerHTML = '';
};


// function getDestData: parses JSON of an address and saves it to destData
function getDestData(obj) {
destData = eval(obj);
if (destData.XRIM == undefined) {

if (numTries > 5) {

alert('Could not find destination address');

numTries = 0;

return;

}

setTimeout(getDirectionData, 1000);

return;
}

if ((srcData.XRIM == destData.XRIM) && (srcData.YRIM == destData.YRIM)) {

alert('Source and destination addresses are equal');
}

numTries = 0; // set numTries for next time

directionsUrl = "http://www.mapa.co.il/maps/Services/DotNet/GetRouteVia.ashx?Method=" + method + "&avoidPallestinian=" + avoidPalestine + "&avoidTollRoads=" + avoidTollRoad + "&ShowSpeedTraps=0&DirtRoads=" + dirtRoad + "&X=" + srcData.XRIM + "&Y=" + srcData.YRIM + "&VT=0&X=" + destData.XRIM + "&Y=" + destData.YRIM + "&VT=0";

_IG_FetchXmlContent(directionsUrl, parseDirections);
};


// function parseBusinessSearch: parses the results of a business search in mapa and generates HTML result
function parseBusinessSearch(response)
{
var start, end, name, address;

var resp = response;
var startSingleResLoc = response.indexOf("<!---- start single result ------>");

var myDiv = document.getElementById("business_results_div");

if (startSingleResLoc == -1) {

// no result to display

businessResultsInnerHTML = '<table dir="rtl" align="right"><tr><td><ul>\n'

businessResultsInnerHTML += '<li>';

businessResultsInnerHTML += unescape("%u05D0%u05D9%u05DF%20%u05EA%u05D5%u05E6%u05D0%u05D5%u05EA%20%u05DC%u05D4%u05E6%u05D9%u05D2");

businessResultsInnerHTML += '</li>';

businessResultsInnerHTML += '</ul></td></tr></table>';

myDiv.innerHTML = businessResultsInnerHTML;
businessButtonsInnerHTML = '<input id="business_search_button" type="button" onclick="javascript:getBusinessData()" value="' + unescape("%u05D7%u05E4%u05E9%20%u05DE%u05D7%u05D3%u05E9") + '"/>';
document.getElementById("business_results_buttons_div").innerHTML = businessButtonsInnerHTML;

return;

}

myDiv.innerHTML = '';

var listHTML = "";

var i = 0;

listHTML = '<P><table dir="rtl" align="right"><tr><td><OL>\n';

while (startSingleResLoc != -1) {

resp = resp.substr(startSingleResLoc + 1);
start = resp.indexOf("<A ");

start = resp.indexOf(">", start) + 1;

end = resp.indexOf("</A>", start);

var nameHTML = "<B><font color='#5F8C00'>" + resp.substr(start, end - start) + "</font></B>\n";

start = end + 4; // sizeof("</A>")

end = resp.indexOf("</font>");

nameHTML += resp.substr(start, end - start);

start = resp.indexOf("<BR>", end) + 4;

end = resp.indexOf("<BR>", start);

var businessAddr = resp.substr(start, end - start);

if (businessAddr.indexOf("<!---- start single result ------>") != -1) {

businessAddr = '';

}

businessAddr = businessAddr.replace(/^\s+|\s+$/g, '') ;

listHTML += '<LI><div onMouseOut="removeHoverImage(\'business' + i + '\')" onMouseOver="showBusinessImage(event, \'business' + i + '\',\'' + escape(businessAddr) + '\')">' + nameHTML + '</div><div id="business' + i + '" style="position: absolute;border: 1px solid black;visibility:hidden;"></div><div id="business' + i + '_icon" style="position:absolute;visibility:hidden;"></div>';
listHTML += businessAddr + "<P></LI>\n";

startSingleResLoc = resp.indexOf("<!---- start single result ------>");

i++;

if (i >= 10) {

break;

}

}

listHTML += "</OL></td></tr><tr><td><br><br><br><br><br><br><br><br></td></tr></table><br>";

businessResultsInnerHTML = listHTML;

myDiv.innerHTML = businessResultsInnerHTML;

myDiv = document.getElementById("business_results_buttons_div");

businessButtonsInnerHTML = '<input id="business_print_button" type="button" onclick="javascript:window.print()" value="' + unescape("%20%20%u05D4%u05D3%u05E4%u05E1%20%20") + '"/>';

businessButtonsInnerHTML += '<input id="open_business_in_map_button" type="button" onclick="javascript:openBusinessInMap()" value="' + unescape("%u05E4%u05EA%u05D7%20%u05D1%u05DE%u05E4%u05D4") + '"/>';

businessButtonsInnerHTML += '<input id="business_search_button" type="button" onclick="javascript:getBusinessData()" value="' + unescape("%u05D7%u05E4%u05E9%20%u05DE%u05D7%u05D3%u05E9") + '"/>';

myDiv.innerHTML = businessButtonsInnerHTML;

};


// function avg: caculates average of two numbers
function avg(a, b) {
return Math.round(((a+b)/2));
}


// function openBusinessInMap: opens business search in map
function openBusinessInMap() {
url = "http://www.mapa.co.il/general/searchresult_locked.asp?textSearch=" + escape(currBusiness) + "&textSearchWhere=" + escape(findSavedAddr(currBusinessAround)) + "&button1=%E7%E9%F4%E5%F9&first=1&MinX=0&MinY=0&MaxX=0&MaxY=0&MapEarthX=0&MapEarthY=0&MapZoom=0&CurrMapTab=1&CurrHeaderTab=&MapType=&GeoSearchRadius=" + currRadius
window.open(url);

}


// function parseDirections: parses the direction search results and generates an HTML result
function parseDirections(response)
{
// Get the total route information
var routeLength = "";
var routeTime = "";

var totalNodeList;
try {

totalNodeList = response.getElementsByTagName("TOTAL").item(0).childNodes;

}

catch (e) {

return;

}
for (var j = 0; j < totalNodeList.length ; j++) {
var node = totalNodeList.item(j);
if (node.nodeName == "TOTAL_LENGTH") {
routeLength = node.firstChild.nodeValue;
} 
if (node.nodeName == "TOTAL_TIME") {
routeTime = node.firstChild.nodeValue;
} 
}
var totalRouteStr = '';
if ((routeLength != "") && (routeTime != ""))
{
totalRouteStr = routeLength + ', ' + routeTime;
}


var directionsHTML = '<table bgcolor="#F5FDD5" width="100%" border="0" cellspacing="0" cellpadding="0" dir="rtl">';
directionsHTML += '<tr align="right">\n'; 
directionsHTML += '<td dir="rtl"><b>\n';
directionsHTML += (unescape("%u05DE%u05D5%u05E6%u05D0") + ': </b>');
directionsHTML += currSrc;
directionsHTML += '</td></tr>\n';
directionsHTML += '<tr align="right">\n'; 
directionsHTML += '<td dir="rtl"><b>\n';
directionsHTML += (unescape("%u05D9%u05E2%u05D3") + ': </b>');
directionsHTML += currDest;
directionsHTML += '</td></tr>\n';
directionsHTML += '<tr dir="rtl" align="right">\n'; 
directionsHTML += '<td><b>\n';
directionsHTML += totalRouteStr;
directionsHTML += '</b></td></tr>\n';
directionsHTML += '</table><p>';


directionsHTML += '<table width="100%" border="0" cellspacing="0" cellpadding="0" align="right">';
directionsHTML += '<tr><td>';
directionsHTML += '<input type="button" onclick="window.print()" value="' + unescape('%20%20%u05D4%u05D3%u05E4%u05E1%20%20') + '"/>';
directionsHTML += '<input type="button" onclick="openDirectionsInMap()" value="' + unescape('%u05D4%u05E6%u05D2%20%u05D1%u05DE%u05E4%u05D4') + '"/>';
directionsHTML += '<input type="button" onclick="setDirectionForm()" value="' + unescape('%u05D7%u05D9%u05E4%u05D5%u05E9%20%u05D7%u05D3%u05E9') + '"/>';
directionsHTML += '</td><td></td></tr>';
var x,y;

// Get a list of the <STEP> element nodes in the file
var itemList = response.getElementsByTagName("STEP");
// Loop through all <STEP> nodes
for (var i = 0; i < itemList.length ; i++) { 
// For each <STEP> node, get child nodes.
var nodeList = itemList.item(i).childNodes;
// Loop through child nodes. 

x = 0;

y = 0;
for (var j = 0; j < nodeList.length ; j++) {
var node = nodeList.item(j);
if (node.nodeName == "INSTRUCTION") {
var instruction = node.firstChild.nodeValue;
}

if (node.nodeName == "X") {

x = node.firstChild.nodeValue;
}
if (node.nodeName == "Y") {

y = node.firstChild.nodeValue;
}
if (node.nodeName =="DIRECTION")
{
DirImage = "icon_arrow_straight";
strDir = node.firstChild.nodeValue.replace(/^\s+|\s+$/g,"");
if(strDir == null)
{
strDir = "";
}
tempStr = unescape("%u05E4%u05E8%u05E1%u05D4"); // parsa
if(strDir.indexOf(tempStr) >= 0)
{
strDir = tempStr;
}
tempStr = unescape("%u05DB%u05D9%u05DB%u05E8"); // kikar
if(strDir.indexOf(tempStr) >= 0)
{
strDir = tempStr; 
}
tempStr = unescape("%u05D1%u05D9%u05E6%u05D9%u05D0%u05D4"); // bayetzia
if(strDir.indexOf(tempStr) >= 0)
{
strDir = tempStr; 
}
tempStr = unescape("%u05D9%u05DE%u05D9%u05E0%u05D4"); // yemina
if(strDir.indexOf(tempStr) >= 0)
{
strDir = tempStr; 
}
tempStr = unescape("%u05E9%u05DE%u05D0%u05DC%u05D4"); // smola
if(strDir.indexOf(tempStr) >= 0)
{
strDir = tempStr; 
}
switch(escape(strDir))
{
case "%u05D9%u05E9%u05E8": 
DirImage = "icon_arrow_straight";
break;
case "%u05E9%u05DE%u05D0%u05DC%u05D4": 
DirImage = "icon_arrow_left";
break;
case "%u05D9%u05DE%u05D9%u05E0%u05D4": 
DirImage = "icon_arrow_right";
break;
case "%u05E4%u05E8%u05E1%u05D4": 
DirImage = "icon_arrow_turn";
break;
case "%u05DB%u05D9%u05DB%u05E8": 
DirImage = "icon_arrow_circle";
break;
case "%u05D1%u05D9%u05E6%u05D9%u05D0%u05D4": 
DirImage = "icon_arrow_circle";
break;
case "%u05D4%u05E6%u05DE%u05D3%20%u05DC%u05D9%u05DE%u05D9%u05DF": 
DirImage = "icon_arrow_light_right";
break;
case "%u05D4%u05E6%u05DE%u05D3%20%u05DC%u05E9%u05DE%u05D0%u05DC": 
DirImage = "icon_arrow_light_left";
break;
} 
} 

} 
directionsHTML += '<tr align="right">\n'; 
directionsHTML += '<td><div onMouseOut="removeHoverImage(\'instruction' + i + '\')" onMouseOver="showInstructionImage(event, \'instruction' + i + '\',' + x + ',' + y + ')">' + instruction + '</div><div id="instruction' + i + '" style="position: absolute;border: 1px solid black;visibility:hidden;" /></td>';
directionsHTML += '<td width="36" height="33"><IMG height=29 src="http://www.mapa.co.il/maps/images/' + DirImage + '.png" width=34 border=0></td>';
directionsHTML += '</tr>';
} 

var width = prefs.getInt("image_width");
var height = prefs.getInt("image_height");

url = 'http://services.mapa.co.il/MapImageService/ByCenter.ashx?mt=X&dRoute=1&rap=1&rat=1&rdr=1&rm=' + method + '&rx=' + srcData.XRIM + ',' + destData.XRIM +'&ry='+ srcData.YRIM + ','+ destData.YRIM + '&rvt=3,3&rws=&dSpeedTraps=0&h=' + height + '&w=' + width + '&z=' + calcZoom(srcData.XRIM,destData.XRIM,srcData.YRIM,destData.YRIM) + '&cv=creditbig&x='+ avg(srcData.XRIM,destData.XRIM) + '&y='+ avg(srcData.YRIM,destData.YRIM) + '&dtopo=0';
directionsHTML += '<tr><td><img src="' + url + '" /></td><td></td></tr>\n';
directionsHTML += "</table>";


_gel('instructions_div').innerHTML = directionsHTML;
directionTabInnerHtml = directionsHTML;

};


//function showBusinessImage:
function showBusinessImage(event, divName, addr) {
var display_hover = prefs.getString('display_hover');

if (display_hover == "no") {

return;

}
var url = "http://www.mapa.co.il/gisservices/AddressAnalyzer/AnalyzeAddress4js.ashx?input=" + addr;

businessData = "";

_IG_FetchContent(url, function (obj) {

businessData = eval(obj);
if (businessData.XRIM == undefined) {
return;

}
url = 'http://services.mapa.co.il/MapImageService/ByCenter.ashx?mt=X&dRoute=1&rap=1&rat=1&rdr=1&rm=1&rx=159126,158315&ry=1211001,1211016&rvt=0,3&rws=&dSpeedTraps=0&h=150&w=200&z=500&cv=creditbig&x=' + businessData.XRIM + '&y=' + businessData.YRIM + '&dtopo=0'

var myDiv = document.getElementById(divName);

myDiv.innerHTML = '<img src="' + url + '" />';

displayDiv(myDiv);

var myX;

try {

myX = event.x - 200;

} catch(e) {

myX = 0;
}

myDiv.style.left = myX;

var xloc = parseInt(myDiv.offsetLeft);
var yloc = parseInt(myDiv.offsetTop);

myDiv = document.getElementById(divName + '_icon');

myDiv.innerHTML = '<br><br><img src="http://www.mapa.co.il//maps/images/location_icon.png" />';

displayDiv(myDiv);

xloc += 100; // half of width
yloc += 45; // half on height
myDiv.style.top = (yloc - 25);
myDiv.style.left = (xloc - 16);
});

}


// function showInstructionImage: shows an image of a single instruction point in direction
function showInstructionImage(event, divName, x, y) {
var display_hover = prefs.getString('display_hover');

if (display_hover == "no") {

return;

}
var url = 'http://services.mapa.co.il/MapImageService/ByCenter.ashx?mt=X&dRoute=1&rap=1&rat=1&rdr=1&rm=' + method + '&rx=' + srcData.XRIM + ',' + destData.XRIM +'&ry='+ srcData.YRIM + ','+ destData.YRIM + '&rvt=3,3&rws=&dSpeedTraps=0&h=150&w=200&z=500&dScale=0&x=' + x + '&y=' + y + '&dtopo=0';

var myDiv = document.getElementById(divName);

myDiv.innerHTML = '<img src="' + url + '" />';

displayDiv(myDiv);

myDiv.style.left = (event.x - 200);
};


// function calcZoom: caculates zoom value according to distance between source and destination
function calcZoom(x1, x2, y1, y2) {
var xdiff = Math.abs(x2 - x1);

var ydiff = Math.abs(y2 - y1);

var maxdiff = (xdiff > ydiff)?xdiff:ydiff;

if (maxdiff < 250) {

return 250;

} else if (maxdiff < 500) {

return 500;

} else if (maxdiff < 1000) {

return 1000;

} else if (maxdiff < 2000) {

return 2000;

} else if (maxdiff < 6000) {

return 6000;

} else if (maxdiff < 10000) {

return 10000;

} else if (maxdiff < 15000) {

return 15000;

} else if (maxdiff < 25000) {

return 25000;

} else if (maxdiff < 50000) {

return 50000;

} else if (maxdiff < 100000) {

return 100000;

} else if (maxdiff < 150000){

return 150000;

} else {

return 250000;

}

}


// function removeHoverImage: stops displaying hovers
function removeHoverImage(divName) {
var myDiv = document.getElementById(divName);

hideDiv(myDiv); 

myDiv = document.getElementById(divName + '_icon');

if (myDiv) {

hideDiv(myDiv); 

} 

}


// function getDirections: gets directions from mapa.co.il
function getDirections(tabId) {
prefs.set('last_tab', '2');

buildDirectionForm();
var formTabHtml = '<div id="instructions_div">' + directionTabInnerHtml + '</div>';
_gel(tabId).innerHTML = formTabHtml;
}


// function getCities: gets suggestions for city name 
function getCities(event) { 
var currCityData = document.getElementById('city').value;

clearSuggest(document.getElementById("street_search_suggest"));
var keynum;
if(window.event) // IE

{

keynum = event.keyCode;

}

else if(event.which) // Netscape/Firefox/Opera

{

keynum = event.which;

}

if (keynum == 40) { // pressed down arrow

var div_value = document.getElementById("suggest" + currSuggestLoc);

if (div_value != undefined) {

suggestOut(div_value);

}
currSuggestLoc++;

div_value = document.getElementById("suggest" + currSuggestLoc);

if (div_value != undefined) {

suggestOver("city", div_value, div_value.value);

}

return;

}
if (keynum == 38) { // pressed up arrow

var div_value = document.getElementById("suggest" + currSuggestLoc);

if (div_value != undefined) {

suggestOut(div_value);

}
currSuggestLoc--;

var div_value = document.getElementById("suggest" + currSuggestLoc);

if (div_value != undefined) {

suggestOver("city", div_value, div_value.value);

}

return;

}

if (currCitySuggest == currCityData) {

return;

}

setSearch("street", "");

currCitySuggest = "";

currCityCode = "";
currSuggestLoc = -1;
var autoSuggestURL = 'http://www.mapa.co.il/UPC2/controls/AddressPicker/AddressPickerAutoSuggestDataSource.aspx?TextBoxID=maps_RightBar_RouteFrom_address_txtCity&MenuDivID=divMenu_maps_RightBar_RouteFrom_address_txtCity&DataType=mapa_CityCodeAndName&NumMenuItems=10&IncludeMoreMenuItem=true&MoreMenuItemLabel=...&MenuItemCSSClass=asbMenuItem&Keyword=' + escape(currCityData) + '&ExtraParams=';
if (currCityData != "") {
_IG_FetchContent(autoSuggestURL, handleCitiesData);
}
else {
clearSuggest(document.getElementById("city_search_suggest"));
}
};


// function getStreets: gets suggestion for street names according to city
function getStreets(event) { 
clearSuggest(document.getElementById("city_search_suggest"));

if (currCityCode == "") {

return;

}
var keynum;
if(window.event) // IE

{

keynum = event.keyCode;

}

else if(event.which) // Netscape/Firefox/Opera

{

keynum = event.which;

}

if (keynum == 40) { // pressed down arrow

var div_value = document.getElementById("suggest" + currSuggestLoc);

if (div_value != undefined) {

suggestOut(div_value);

}
currSuggestLoc++;

div_value = document.getElementById("suggest" + currSuggestLoc);

if (div_value != undefined) {

suggestOver("street", div_value);

}

return;

}
if (keynum == 38) { // pressed up arrow

var div_value = document.getElementById("suggest" + currSuggestLoc);

if (div_value != undefined) {

suggestOut(div_value);

}
currSuggestLoc--;

var div_value = document.getElementById("suggest" + currSuggestLoc);

if (div_value != undefined) {

suggestOver("street", div_value);

}

return;

}

var currStreetData = document.getElementById('street').value;

if (currStreetData == currStreetSuggest) {

return;

}

currStreetSuggest = "";

currSuggestLoc = -1;
var autoSuggestURL = 'http://www.mapa.co.il/UPC2/controls/AddressPicker/AddressPickerAutoSuggestDataSource.aspx?TextBoxID=maps_RightBar_RouteFrom_address_txtStreet&MenuDivID=divMenu_maps_RightBar_RouteFrom_address_txtStreet&DataType=mapa_InCity&NumMenuItems=10&IncludeMoreMenuItem=true&MoreMenuItemLabel=...&MenuItemCSSClass=asbMenuItem&Keyword=' + escape(currStreetData) + '&ExtraParams=' + escape(currCityCode);

if (currStreetData != "") {
_IG_FetchContent(autoSuggestURL, handleStreetsData);
}
else {
clearSuggest(document.getElementById("street_search_suggest"));
}
};


// function displayDiv: displays a div element
function displayDiv(myDiv) {
if(myDiv.style.display == '' && myDiv.offsetWidth != undefined && myDiv.offsetHeight != undefined) 
myDiv.style.display = (myDiv.offsetWidth!=0&&myDiv.offsetHeight!=0)?'block':'none';

myDiv.style.display = 'block';
myDiv.style.visibility = 'visible';

}


// function hideDiv: hides a div element
function hideDiv(myDiv) {
myDiv.style.display = 'block';

myDiv.style.display = 'none';

if(myDiv.style.display == '' && myDiv.offsetWidth != undefined && myDiv.offsetHeight != undefined) 

myDiv.style.display = (myDiv.offsetWidth!=0&&myDiv.offsetHeight!=0)?'block':'none';

myDiv.style.display = 'none'; 
}


// function handleCitiesData: displays city suggestion in suggestion box
function handleCitiesData(response) {
var start;
var end;
var currStr = response;
var i = 0;
var css = document.getElementById("city_search_suggest");

displayDiv(css);
css.innerHTML = '<div id="city_suggestions" name="city_suggestions" class="asbMenu"></div>';
ss = document.getElementById("city_suggestions");

while(1) {
start = currStr.indexOf('>');
if (start == -1) {
break;
}
end = currStr.indexOf('</div>');
currValue = currStr.substr(start+1,end-start-1);
if ((currValue != "...") && (currValue.substr(0,1) != "(")) {

var s1 = currStr.indexOf('value="') + 7;

var s2 = currStr.substr(s1).indexOf('"');

var code = currStr.substr(s1,s2);

var suggest = '<div id="suggest' + i + '" onmouseover="suggestOver(\'city\', this, \'' + code + '\');" ';

suggest += 'value="' + code + '" ';
suggest += 'onmouseout="suggestOut(this);" ';
suggest += 'onclick="setSearch(\'city\', this.innerHTML, \'' + code + '\');" ';
suggest += 'class="suggest_link">' + currValue + '</div>';

ss.innerHTML += suggest;

if (currCitySuggest == "") {

currCitySuggest = currValue;

currCityCode = code;
}
}
else {
ss.innerHTML += currValue;
}
currStr = currStr.substr(end+6, currStr.length);
i++;
if (i == 15) {
break;
}
}
};


// function handleStreetsData: displays street suggestion in suggestion box
function handleStreetsData(response) {
var start;
var end;
var currStr = response;
var i = 0;
var css = document.getElementById("street_search_suggest");

displayDiv(css);
css.innerHTML = '<div id="street_suggestions" name="street_suggestions" class="asbMenu"></div>';
ss = document.getElementById("street_suggestions");

currStreetSuggest = "";

while(1) {
start = currStr.indexOf('>');
if (start == -1) {
break;
}
end = currStr.indexOf('</div>');

currValue = currStr.substr(start+1,end-start-1);
if ((currValue != "...") && (currValue.substr(0,1) != "(")) {

if (currStreetSuggest == "") {

currStreetSuggest = currValue;

}

var suggest = '<div id="suggest' + i + '" onmouseover="suggestOver(\'street\', this);" ';
suggest += 'onmouseout="suggestOut(this);" ';
suggest += 'onclick="setSearch(\'street\', this.innerHTML);" ';
suggest += 'class="suggest_link">' + currValue + '</div>';
ss.innerHTML += suggest;

}
else {
ss.innerHTML += currValue;
}
currStr = currStr.substr(end+6, currStr.length);
i++;
if (i == 15) {
break;
}
}
};



// function suggestOver: mouse over function for suggestions
function suggestOver(inputName, div_value, code) {
div_value.className = 'asbSelMenuItem';
document.getElementById(inputName).value = div_value.innerHTML;

if (inputName == "city") {

currCitySuggest = div_value.innerHTML;

currCityCode = code;
}
else if (inputName == "street") {

currStreetSuggest = div_value.innerHTML;

}
}
// function suggestOut: mouse out function for suggestions
function suggestOut(div_value) {
div_value.className = 'asbMenuItem';
}


// function setSearch: click function for suggestions
function setSearch(inputName, value, code) {
document.getElementById(inputName).value = value;

clearSuggest(document.getElementById(inputName + "_search_suggest"));
if (inputName == "city") {
currCitySuggest = value;
currCityCode = code;

}

else if (inputName == "street") {

currStreetSuggest = value;
}
}


// function clearSuggest: clear and hide suggest div
function clearSuggest(div_value) {
div_value.innerHTML = '';

hideDiv(div_value);

}


// function blurSuggest: blur function for suggestions
function blurSuggest(inputName) {
currSuggestLoc = -1;

if (inputName == undefined) {

if (currCitySuggest != undefined) {

setSearch("city", currCitySuggest, currCityCode);

clearSuggest(document.getElementById("city_search_suggest"));

}
if (currStreetSuggest != undefined) {

setSearch("street", currStreetSuggest);

clearSuggest(document.getElementById("street_search_suggest"));

}
}
if ((inputName == "city") && (currCitySuggest != undefined)) {
setSearch(inputName, currCitySuggest, currCityCode);

clearSuggest(document.getElementById(inputName + "_search_suggest"));

}

else if ((inputName == "street") && (currStreetSuggest != undefined)) {

setSearch(inputName, currStreetSuggest);

clearSuggest(document.getElementById(inputName + "_search_suggest"));

}

}
function isInteger (s) {
var i;
if (isEmpty(s)) return false;
for (i = 0; i < s.length; i++)

{

var c = s.charAt(i);
if (!isDigit(c)) return false;

}
return true;

}
function isEmpty(s) {
return ((s == null) || (s.length == 0));

}
function isDigit (c) {
return ((c >= "0") && (c <= "9"));

}
</script>
]]>
</Content>
</Module>



