var mapContainerDiv; var map_div; var map_image; var map_form; var rubber_band_div; var minx; var miny; var maxx; var maxy; var startx; var starty; var xswitch=0; var yswitch=0; function mouseDown(evt) { //alert("mouseDown"); // If it's not the left mouse button ignore if ((browser.ns && evt.which != 1) || (browser.ie && event.button != 1)) { return true; } var x = (browser.ns) ? evt.pageX : event.clientX; var y = (browser.ns) ? evt.pageY : event.clientY; // If it's IE we need to add the scroll offset to the x and y if (browser.ie) { x = x + find_page_offsetx(); y = y + find_page_offsety(); } //alert('map_click_option=' + map_click_option); switch(map_click_option) { case "zoom_in": start_rubber(x, y); case "zoom_out": start_rubber(x, y); case "recenter": start_pan(x, y); case "info": start_rubber(x, y); default: } if (document.layers) { document.captureEvents(Event.MOUSEMOVE); } if (map_click_option != "recenter") { document.onmousemove = mouse_move; } document.onmouseup = mouseUp; return false; } function mouse_move(evt) { //alert("mouse_move"); var x = (browser.ns) ? evt.pageX : event.clientX; var y = (browser.ns) ? evt.pageY : event.clientY; // If it's IE we need to add the scroll offset to the x and y if (browser.ie) { x = x + find_page_offsetx(); y = y + find_page_offsety(); } if (!isOnMap(x,y)) return false; switch(map_click_option) { case "zoom_in": move_rubber(x, y); return false; case "zoom_out": move_rubber(x, y); return false; case "recenter": submit_pan(x, y); return false; case "info": move_rubber(x, y); return false; default: } } function mouseUp(evt) { //alert("mouseUp"); var x = (browser.ns) ? evt.pageX : event.clientX; var y = (browser.ns) ? evt.pageY : event.clientX; // If it's IE we need to add the scroll offset to the x and y if (browser.ie) { x = x + find_page_offsetx(); y = y + find_page_offsety(); } switch(map_click_option) { case "zoom_in": stop_rubber(x, y); break; case "zoom_out": stop_rubber(x, y); break; case "recenter": submit_pan(x, y); break; case "info": stop_rubber(x, y); break; default: } document.onmousemove = null; document.onmouseup = null; //if (map_form.clickCoords.value != '') { document.map_form.submit(); //} } function start_rubber(x, y) { //alert("start_rubber(" + x + "," + y + ")"); minx = x; miny = y; maxx = x; maxy = y; startx = x; starty = y; if (document.all) { // IE var r = rubber_band_div; r.style.width = 0; r.style.height = 0; r.style.pixelLeft = x; r.style.pixelTop = y; r.style.visibility = 'visible'; } else if (document.getElementById) { var r = rubber_band_div; r.style.width = 0; r.style.height = 0; r.style.left = x + 'px'; r.style.top = y + 'px'; r.style.visibility = 'visible'; } } function start_pan(x,y) { //alert("start_pan(" + x + "," + y + ")"); mapObject = new MapObject(); mapObject.mousedownX = x; mapObject.mousedownY = y; } function submit_pan() { if (document.layers) { document.releaseEvents(Event.MOUSEMOVE); } var r = rubber_band_div; rbX1 = parseInt(r.style.left) - findPosX(map_image); rbY1 = parseInt(r.style.top) - findPosY(map_image); rbX2 = rbX1 + parseInt(r.style.width); rbY2 = rbY1 + parseInt(r.style.height); document.map_form.input_coords.value = rbX1+','+rbY1+';'+rbX2+','+rbY2; document.map_form.submit(); } function move_rubber(x, y) { var r = rubber_band_div; if (document.all) { //r.style.width = x - r.style.pixelLeft; //r.style.height = y - r.style.pixelTop; if (x < startx) { if (xswitch==0) { xswitch=1 maxx = minx; } minx = x; r.style.pixelLeft = x; } else { if (xswitch==1) { xswitch=0; } maxx = x; } if (y mapRight) return false; if (y < mapTop) return false; if (y > mapBottom) return false; return true; } function set_map_click_opt(opt) { map_click_option = opt; switch (opt) { case "zoom_in": set_cursor(map_div, "crosshair"); break; case "zoom_out": set_cursor(map_div, "crosshair"); break; case "recenter": set_cursor(map_div, "move"); break; case "info": set_cursor(map_div, "default"); break; default: set_cursor(map_div, "crosshair"); } //setActiveToolBtn(map_click_option); } function set_cursor(elem, style) { if (elem) { elem.style.cursor = style; } //alert(elem + ", " + style); } function setActiveToolBtn_dep(tool) { var tools = new Array(4); tools[0] = 'zoom_in'; tools[1] = 'zoom_out'; tools[2] = 'pan'; tools[3] = 'info'; var x = 0; for (x=0; x < tools.length; x++) { //alert(tools[x]); if (tools[x] == tool) { //MM_swapImage(tools[x], '', tools[x] + 'On.gif', 1); } else { //MM_swapImage(tools[x], '', tools[x] + '.gif', 1); } // reset the mouseover image restore array document.MM_sr=new Array; } } function findPosX(obj) { var curleft = 0; if (obj.offsetParent) { while (obj.offsetParent) { curleft += obj.offsetLeft obj = obj.offsetParent; } } else if (obj.x) { curleft += obj.x; } return curleft; } function findPosY(obj) { var curtop = 0; if (obj.offsetParent) { while (obj.offsetParent) { curtop += obj.offsetTop obj = obj.offsetParent; } } else if (obj.y) { curtop += obj.y; } return curtop; } function find_page_offsetx() { if (document.all||document.getElementById) { return document.body.scrollLeft; } else if (document.layers) { return pageXOffset; } } function find_page_offsety() { if (document.all||document.getElementById) { return document.body.scrollTop; } else if (document.layers) { return pageYOffset; } } // BrowserCheck Object function BrowserCheck() { var b = navigator.appName if ((navigator.userAgent.indexOf("Opera 6")!=-1) || (navigator.userAgent.indexOf("Opera/6")!=-1)) { this.b='op'; } if (b == "Netscape") { this.b = "ns"; } else if (b=="Microsoft Internet Explorer") { this.b = "ie"; } else { this.b = b; } this.version = navigator.appVersion; //alert("Navigateur "+navigator.userAgent ); this.v = parseInt(this.version); this.ns = (this.b=="ns" && this.v>=4); this.ns4 = (this.b=="ns" && this.v==4); this.ns5 = (this.b=="ns" && this.v==5); // NS6 this.ie = (this.b=="ie" && this.v>=4); this.ie4 = (this.version.indexOf('MSIE 4')>0); this.ie5 = (this.version.indexOf('MSIE 5')>0); this.min = (this.ns||this.ie); } function MapObject() { } var browser = new BrowserCheck(); function initMapScript() { if (document.getElementById) { mapContainerDiv = document.getElementById('mapcontainer'); map_div = document.getElementById('map_div'); map_image = document.getElementById('mapimg'); map_form = document.getElementById('map_form'); rubber_band_div = document.getElementById('rubberband'); } else if (document.all) { mapContainerDiv = document.all.mapcontainer; map_div = document.all.map_div; map_image = document.all.mapimg; map_form = document.all.map_form; rubber_band_div = document.all.rubberband; } //alert('map_div=' + map_div + '\nmap_image=' + map_image + '\nmap_form=' + map_form + '\nrubber_band_div=' + rubber_band_div); // There is a bug in Firefox that makes the map image align about 50px to the right // inside the mapcontainer div when the page is loaded. We need to manually // reset it here. Even putting left: 0px in the CSS file doesn't work. map_div.style.left = 0; map_div.style.top = 0; map_div.onmousedown = mouseDown; set_map_click_opt("zoom_in"); } var current_row = 0; function set_row(clicked_table) { var rows = document.getElementById(clicked_table).rows; for (i = 0; i < rows.length; i++) { rows[i].onclick = function() { current_row = (this.rowIndex + 1); } } } function add_row(tbody_alias, layer_type) { if (current_row == 0) { return; } var tbodyElem = document.getElementById(tbody_alias); var trElem, tdElem; trElem = tbodyElem.insertRow(current_row + 6); //trElem.className = "tr"; // first column tdElem = trElem.insertCell(trElem.cells.length); //tdElem.className = "col0"; tdElem.innerHTML = "sample row"; // first column tdElem = trElem.insertCell(trElem.cells.length); tdElem.innerHTML = ""; // first column tdElem = trElem.insertCell(trElem.cells.length); tdElem.innerHTML = ""; // first column tdElem = trElem.insertCell(trElem.cells.length); tdElem.innerHTML = ""; // first column tdElem = trElem.insertCell(trElem.cells.length); tdElem.innerHTML = ""; // first column tdElem = trElem.insertCell(trElem.cells.length); tdElem.innerHTML = ""; // last column tdElem = trElem.insertCell(trElem.cells.length); tdElem.innerHTML = ""; } function get_http_object() { var http = null; if (window.XMLHttpRequest) { http = new XMLHttpRequest(); } else if (window.ActiveXObject) { http = new ActiveXObject("Microsoft.XMLHTTP"); } return http; } function handle_response() { } function update_checkboxes(value, checked, identifier) { var c_boxes = new Array(); eval('c_boxes = c_box_'+identifier); //c_boxes = c_box_collection[c_index]; if (in_array(value, c_boxes) && !checked) { // remove it c_boxes = remove_value(value, c_boxes); } else if (checked) { // add it c_boxes.push(value); } eval('c_box_'+identifier+' = c_boxes');; //alert(c_box_collection); } function in_array(value, array) { for (i = 0; i < array.length; i++) { if (array[i] == value) { return true; } } } function remove_value(value, array) { for (i = 0; i < array.length; i++) { if (array[i] == value) { array.splice(i,1); return array; } } } function update_field(field_name, layer_id, new_value) { var http = get_http_object(); if (http) { var url = "URL/layer_update.php"; // The server-side script http.open("POST", url + '?field=' + field_name + '&layer_id=' + layer_id + '&value=' + new_value, true); http.onreadystatechange = handle_response; http.send(null); } } function update_checkbox(field_name, layer_id, new_value) { var http = get_http_object(); if (new_value) { new_value = "1"; } else { new_value = "0"; } if (http) { var url = "URL/layer_update.php"; // The server-side script http.open("POST", url + '?field=' + field_name + '&layer_id=' + layer_id + '&value=' + new_value, true); http.onreadystatechange = handle_response; http.send(null); } } function update_extra_question(table_id, field_name, layer_id, new_value) { var http = get_http_object(); if (http) { var url = "URL/layer_update_ex.php"; // The server-side script http.open("POST", url + '?field=' + field_name + '&table_id=' + table_id + '&layer_id=' + layer_id + '&value=' + new_value, true); http.onreadystatechange = handle_response; http.send(null); } } function add_layer(field_name, layer_id, new_value) { var http = get_http_object(); if (http) { var url = "URL/layer_update.php"; // The server-side script http.open("POST", url + '?field=' + field_name + '&layer_id=' + layer_id + '&value=' + new_value, true); http.onreadystatechange = handle_response; http.send(null); } } // We create the HTTP Object function openWindow(theURL, windowWidth, windowHeight, otherFeatures) { return window.open(theURL,'_blank','width='+windowWidth+',height='+windowHeight+','+otherFeatures+',resizable=1,location=0,status=0,toolbar=0,menubar=0'); } function reset_all(form_field_num) { source = "source_" + form_field_num; if (document.all) { eval('document.all.["source_' + form_field_num + '"].options[0].selected=true'); eval('document.all.["scale_' + form_field_num + '"].options[0].selected=true'); eval('document.all.["date_' + form_field_num + '"].value='); eval('document.all.["frequency_' + form_field_num + '"].options[0].selected=true'); } else { eval('document.framework_form.source_' + form_field_num + '.options[0].selected=true'); eval('document.framework_form.scale_' + form_field_num + '.options[0].selected=true'); eval('document.framework_form.date_' + form_field_num + '.value='); eval('document.framework_form.frequency_' + form_field_num + '.options[0].selected=true'); } } function check_layer_status(form_element, layer_id) { if (document.all) { status = document.all['status_'+layer_id].value; if (status) { return true; } else { alert('Please choose the progress status for this layer before you choose a geography.\n\nComplete\nIn Work\nPlanned'); return false; } } else { eval('status = form_element.status_'+layer_id+'.value'); if (status) { return true; } else { alert('please choose the progress status for this layer before you choose a geography.\n\nComplete\nIn Work\nPlanned'); return false; } } } function set_geo_layer_id(form_element, new_value) { if (document.all) { document.all['geo_layer_id'].value=new_value; } else { form_element.geo_layer_id.value=new_value; } } function set_alayer_id(form_element, new_value) { if (document.all) { document.all['add_layer_id'].value=new_value; } else { form_element.add_layer_id.value=new_value; } } function set_alayer_type(form_element, new_value) { if (document.all) { document.all['add_layer_type'].value=new_value; } else { form_element.add_layer_type.value=new_value; } } function set_dlayer_id(form_element, new_value) { if (document.all) { document.all['del_layer_id'].value=new_value; } else { form_element.del_layer_id.value=new_value; } } function lf() { if (document.login_form) { document.login_form.email.focus(); } } function set_view(form_element, new_value) { if (document.all) { document.all['view'].value=new_value; } else { form_element.view.value=new_value; } } function set_section(form_element, new_value) { if (document.all) { document.all['section'].value=new_value; } else { form_element.section.value=new_value; } } function set_action(form_element, new_value) { if (document.all) { document.all['action'].value=new_value; } else { form_element.action.value=new_value; } } function set_map_action(form_element, new_value) { if (document.all) { document.all['map_action'].value=new_value; } else { form_element.map_action.value=new_value; } } function preloadImages () { //v3.0 var d=document; if(d.images){ if(!d.p) d.p=new Array(); var i,j=d.p.length,a=preloadImages.arguments; for(i=0; i0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i