You now have flickrgeo.php, a server-side proxy for talking to
         Flickr. Before you turn your attention to directly connecting Google Maps with Flickr,
         I’ll remind you about two basic interactions between the DOM and JavaScript:
Reading and writing DOM elements, <div> elements, and form elements
Handling simple events to connect form input and displaying calculations
In this section, I will remind you how to do some basic things in browser-based JavaScript. Specifically, I’ll review how to manipulate certain DOM elements. This section will seem trivial to experienced JavaScript developers, but the example provides a starting point for the rest of the chapter.
To that end of learning some basic JavaScript techniques, create the following HTML file:[136]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>Dom Play</title>
  </head>
  <body>
    <div id="container"></div>
  </body>
</html>
         Fire up the JavaScript Shell and the Firebug extension to follow what happens when you type the following commands:
            document
         
            [object HTMLDocument]
         
            div = document.getElementById('container')
         
            [object HTMLDivElement]
         
            div.innerHTML = 'hello';
         
            hello
         
Notice that the word hello shows up on the web page now. You’ve just used JavaScript to write to the DOM, specifically hello to the innerHTML of the <div> element with the ID of container.
The next step is to write an example with an input box and a submit button. When you hit submit, the calc_square() JavaScript function calculates the square of the number and updates the result box (the answer span). Start with the following, though we’ll leave the calc_square() function empty for now:[137]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>Squaring the input(square1.html)</title>
    <meta ?http-?equiv="Content-Type" content="text/html;charset=utf-8" />
  </head>
  <body>
    <script type="text/javascript">
    //<![CDATA[
      function calc_square() {
      }
    //]]>
    </script>
    <form action="#" onsubmit="calc_square(); return false;">
      <label>Input a number:</label>
      <input type="text" size="5" name="num" value="0" />
      <input type="submit" value="Square it!" />
    </form>
    <p>The square of the input is: <span id="answer">0</span></p>
  </body>
</html>
         In the JavaScript Shell, try the following pieces of code:
            document
         
            [object HTMLDocument]
         
            document.forms[0].innerHTML
         
         
<label>Input a number:</label><input size="5" name="num" value="0" type="text">
<input value="Square it!" type="submit">
         
          
            document.forms[0].elements[0].value
         
            0
         
Change the value in the text box, and try it again to see the new value reflected (note num is the ID of the <input> element):
            document.forms[0].num.value
         
            8
         
The following gets you the <answer> element:
            span.document.getElementById('answer')
         
            [object HTMLSpanElement]
         
Finally, this will fill in 16 to the <answer> element:
            span.document.getElementById('answer').innerHTML = 16
         
            16
         
Next, you’ll want to figure out how to programmatically submit the form (you’ll use this logic later). Instead of having to hit the submit button, you will create a method that responds to the button submission event. Remember, in the previous example, it is the job of the calc_square() method (which was left empty) to read the input, calculate the square of the input, and write the answer to the answer box. Let’s fill in calc_square with something like this:[138]
 <script type="text/javascript">
 //<![CDATA[
  function calc_square() {
      var n = document.forms[0].num.value;
      document.getElementById('answer').innerHTML = n*n;
   }
 //]]>
 </script>
 <form action="#" onsubmit="calc_square(); return false;">
   <label>Input a number:</label>
   <input type="text" size="5" name="num" value="0" />
   <input type="submit" value="Square it!" />
 </form>
 <p>The square of the input is: <span id="answer">0</span></p>
 <script type="text/javascript">
 //<![CDATA[
   document.forms[0].num.onchange = calc_square;  //register an event
 //]]>
 </script>