function getElement(psID) { 
   if(document.all) { 
      return document.all[psID]; 
   } else { 
      return document.getElementById(psID); 
   } 
}

function formData2QueryString(docForm) {

  var submitContent = '';
  var formElem;
  var lastElemName = '';
  
  for (i = 0; i < docForm.elements.length; i++) {
    
    formElem = docForm.elements[i];
    switch (formElem.type) {
      // Text fields, hidden form elements
      case 'text':
      case 'hidden':
      case 'password':
      case 'textarea':
      case 'select-one':
        submitContent += formElem.name + '=' + escape(formElem.value) + '&'
        break;
        
      // Radio buttons
      case 'radio':
        if (formElem.checked) {
          submitContent += formElem.name + '=' + escape(formElem.value) + '&'
        }
        break;
        
      // Checkboxes
      case 'checkbox':
        if (formElem.checked) {
          // Continuing multiple, same-name checkboxes
          if (formElem.name == lastElemName) {
            // Strip of end ampersand if there is one
            if (submitContent.lastIndexOf('&') == submitContent.length-1) {
              submitContent = submitContent.substr(0, submitContent.length - 1);
            }
            // Append value as comma-delimited string
            submitContent += ',' + escape(formElem.value);
          }
          else {
            submitContent += formElem.name + '=' + escape(formElem.value);
          }
          submitContent += '&';
          lastElemName = formElem.name;
        }
        break;
        
    }
  }
  // Remove trailing separator
  submitContent = submitContent.substr(0, submitContent.length - 1);
  return submitContent;
}

function restfulFormData2QueryString(docForm) {
  var submitContent = '';
  var formElem;
  var lastElemName = '';
  
  for (i = 0; i < docForm.elements.length; i++) {
    
    formElem = docForm.elements[i];
    switch (formElem.type) {
      // Text fields, hidden form elements
      case 'text':
        submitContent += escape(formElem.value) + '.'
        break;
        
      // Radio buttons
      case 'radio':
        if (formElem.checked) {
          submitContent += escape(formElem.value) + '.'
        }
        break;        
    }
  }
  // Remove trailing separator
  submitContent = submitContent.substr(0, submitContent.length - 1);
  return submitContent;
}

function updateResults(dict) {
	$("result").innerHTML = dict["result"];
	document.forms[0].reset();
}

function sparql(form) {
	qs = formData2QueryString(form);
	document.getElementById('result').innerHTML = "<p>Retrieving and processing ...</p>";
	var deferred = loadJSONDoc('/resources/sparql/?' + qs);
	deferred.addCallback(updateResults);
}


var used;
function popup(x) {
    used = document.getElementById('areaname').innerHTML;
    document.getElementById('areaname').innerHTML = x;
    document.getElementById(x).style['fill-opacity'] = 0.75;
    document.getElementById('layer0').visibility = 'hidden';
    document.getElementById('_'+x).style.visibility = 'visible';
}

function popdown(x) {
    document.getElementById('areaname').innerHTML = used;
    document.getElementById(x).style['fill-opacity'] = 0.5;
    document.getElementById('_'+x).style.visibility = 'hidden';
    document.getElementById('layer0').visibility = 'visible';
}

function rollover(x) {
    document.getElementById(x).style['fill-opacity'] = 0.75;
    document.getElementById('layer0').visibility = 'hidden';
    document.getElementById('_'+x).style.visibility = 'visible';
}

function rollout(x) {
    document.getElementById(x).style['fill-opacity'] = 0.5;
    document.getElementById('_'+x).style.visibility = 'hidden';
    document.getElementById('layer0').visibility = 'visible';
}

function respond(x) {
    /* alert("I got "+ x) */
    document.location.href="/constituencies/"+x;
}
/*

*/

function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function() {
            oldonload();
            func();
        }
    }
}

function addResizeEvent(func) {
    var oldonresize = window.onresize;
    if (typeof window.onresize != 'function') {
        window.onresize = func;
    } else {
        window.onresize = function() {
            oldonresize();
            func();
        }
    }
}
