var request = false;
var markersArr = []
var current_home_marker;

var current_filter_type;
var current_filter_id;
var current_filter_name;

var current_school_name;
var current_school_id;

var requested_filter_type;
var requested_filter_id;
var requested_filter_name;

var requested_school_id;
var requested_school_name;

var current_selected_marker		//The marker that is currently selected.
var requested_selected_school_id;	//School ID for a marker that we want to select upon load.

var ks4_visible = 0;
var ks5_visible = 0;

var ks4_catchment_available = 0;
var ks5_catchment_available = 0;

var ks4_catchment_pc = 0;
var ks5_catchment_pc = 0;

var cache_url_prefix = "chartcache.php?chf=bg,s,dddddd";

var icon;
var locIcon;

//Set up icon
var size 	= new OpenLayers.Size(15, 15);
var offset 	= new OpenLayers.Pixel(-(size.w/2), -(size.h));

blueficon 	= new OpenLayers.Icon('images/blueficon.png', size, offset);
redficon 	= new OpenLayers.Icon('images/redficon.png', size, offset);
purpleficon 	= new OpenLayers.Icon('images/purpleficon.png', size, offset);
greyficon 	= new OpenLayers.Icon('images/greyficon.png', size, offset);
blueicon 	= new OpenLayers.Icon('images/blueicon.png', size, offset);
redicon 	= new OpenLayers.Icon('images/redicon.png', size, offset);
purpleicon 	= new OpenLayers.Icon('images/purpleicon.png', size, offset);
greyicon 	= new OpenLayers.Icon('images/greyicon.png', size, offset);

var size = new OpenLayers.Size(21, 25);
var offset = new OpenLayers.Pixel(-(size.w/2), -(size.h/2));
locIcon = new OpenLayers.Icon('images/marker.png', size, offset);

//Functions from hereon.

function requestSchools(filterType)
{
	//Handle calling from the splash rather than the filters.
	if (filterType == 'pcIntro')
	{
		requested_filter_type = 'pc'
		requested_filter_name = document.getElementById("selectpcIntro").value;
		requested_filter_id = requested_filter_name.replace(/^\s+|\s+$/g,""); //trim.
		dismiss();
	}
	if (filterType == 'laIntro')
	{
		requested_filter_type = 'la'
		requested_filter_id = document.getElementById("selectlaIntro").value;
		requested_filter_name = document.getElementById("selectlaIntro").options[document.getElementById("selectlaIntro").selectedIndex].text;
		dismiss();
	}
	else if (filterType == 'la')
	{
		requested_filter_type = 'la';
		requested_filter_id = document.getElementById("selectla").value;
		requested_filter_name = document.getElementById("selectla").options[document.getElementById("selectla").selectedIndex].text;
		document.getElementById("selectpc").value = "";
		document.getElementById("selectname").value = "";
	}
	else if (filterType == 'pc')
	{
		requested_filter_type = 'pc';
		requested_filter_name = document.getElementById("selectpc").value;
		requested_filter_id = requested_filter_name.replace(/^\s+|\s+$/g,""); //trim.
		document.getElementById("selectla").value = "";
		document.getElementById("selectname").value = "";
	}
	else if (filterType == 'name')
	{
		requested_filter_type = 'name';
		requested_filter_id = document.getElementById("selectname").value;
		requested_filter_name = requested_filter_id;
		document.getElementById("selectla").value = "";
		document.getElementById("selectpc").value = "";
	}
	
	if (requested_filter_id == '')  
	{
		return;
	}

	document.getElementById("selected").style.display = 'none';
	request = getAjaxFunction();
	if (!request) return false; 
	request.onreadystatechange = displaySchools;
	var queryString = "?" + requested_filter_type + "_id=" + requested_filter_id;
	document.getElementById("filtertext").style.display = "none"; 
	document.getElementById("filterspinner").style.display = "inline"; 
	request.open("GET", "getschools.php" + queryString, true);
	request.send(null);
	return;
}

function requestDetail()
{
  request = getAjaxFunction();
  if (!request) return false; 
  request.onreadystatechange = displayDetail;
  var queryString = "?school_id=" + requested_school_id;
  request.open("GET", "getdetail.php" + queryString, true);
  request.send(null);
}

function requestCatchment()
{
  request = getAjaxFunction();
  if (!request) return false; 
  request.onreadystatechange = displayCatchment;
  var queryString = "?school_id=" + current_school_id;
  request.open("GET", "getcatchment.php" + queryString, true);
  request.send(null);
}

function setSchoolToSelectOnLoad(school_id)
{
	requested_selected_school_id = school_id;
}

function displaySchools()
{
    if(request.readyState == 4)
    {
      var xmldoc = request.responseXML;
      if (xmldoc)
      {         
        var this_filter_id = xmldoc.getElementsByTagName('results')[0].getAttribute(requested_filter_type + "_id");
	if (this_filter_id == requested_filter_id)
         {
            var actual_filter_id = xmldoc.getElementsByTagName('results')[0].getAttribute("actual_" + requested_filter_type + "_id");
	    if (actual_filter_id && actual_filter_id != requested_filter_name)
	    {
		    current_filter_name = actual_filter_id;		
		    inaccnote = " (Nearest available.)";
            }
            else
            {
		    current_filter_name = requested_filter_name;
		    inaccnote = "";
            }
	    current_filter_id = requested_filter_id;
	    current_filter_type = requested_filter_type;

            var home_lat = xmldoc.getElementsByTagName('results')[0].getAttribute("lat");
            var home_lon = xmldoc.getElementsByTagName('results')[0].getAttribute("lon");

            document.getElementById("filterspinner").style.display = "none"; 
            document.getElementById("filtertext").style.display = "inline"; 
            var messagesXML = xmldoc.getElementsByTagName('message');
            var schoolsXML = xmldoc.getElementsByTagName('school');

            if (messagesXML.length > 0)
            {
              document.getElementById("info").innerHTML = "<div class='" + messagesXML[0].getAttribute('type') + "'>" + messagesXML[0].firstChild.nodeValue + "</div>";
            }
            else
            {
              document.getElementById("info").innerHTML = "";
            }

	    //Clear out previous values
            document.getElementById('filtertext').innerHTML = "";
            for (var j = 0; j < markersArr.length; j++)
            {
               markers.removeMarker(markersArr[j]);
            }
            polylines_ks4.destroyFeatures();
            polylines_ks5.destroyFeatures();
            if (document.getElementById("catchmentinfo") != null)
	    {
	    	document.getElementById("catchmentinfo").style.display = 'none';
	    }
            current_selected_marker = '';
            markersArr = []
	    markers.removeMarker(current_home_marker); //TODO Check OK if no marker (i.e. first run);
		
            var bbox = new OpenLayers.Bounds();

	    if (home_lon && home_lat)
	    {     
                    var home_point = new OpenLayers.LonLat(home_lon, home_lat).transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")); 
        	    var home_marker = new OpenLayers.Marker(home_point, locIcon.clone());
                    home_marker.events.register("mousedown", home_marker, function()
        	    {
        		alert("Approximate location of postcode: " + current_filter_name);	
        	    });	
        	    current_home_marker = home_marker;
                    bbox.extend(home_point);
                    markers.addMarker(home_marker); 
            }

            for(var i=0; i<schoolsXML.length; i++)
            {
               var s = schoolsXML[i];
               var lat = s.getElementsByTagName('lat')[0].firstChild.nodeValue; 
               var lon = s.getElementsByTagName('lon')[0].firstChild.nodeValue;
               lat = lat-0; //Convert to numbers.
               lon = lon-0; //Convert to numbers. 
               var point = new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")); 
               var marker;

		var ks4_catchment_available = s.getElementsByTagName('ks4_catchment_available')[0].firstChild.nodeValue-0 > 0;
		var ks5_catchment_available = s.getElementsByTagName('ks5_catchment_available')[0].firstChild.nodeValue-0 > 0;
		var markerIcon;
		if (ks4_catchment_available)
		{			
			if (ks5_catchment_available)
			{
				markerIcon = purpleficon.clone();
				markerIconName = "purpleicon";
				markerIconFName = "purpleficon";
			}
			else
			{
				markerIcon = blueficon.clone();
				markerIconName = "blueicon";
				markerIconFName = "blueficon";
			}
		}
		else if (ks5_catchment_available)
		{
			markerIcon = redficon.clone();
			markerIconName = "redicon";
			markerIconFName = "redficon";
		}
		else
		{
			markerIcon = greyficon.clone();
			markerIconName = "greyicon";
			markerIconFName = "greyficon";
		}
	       marker = new OpenLayers.Marker(point, markerIcon); 
               marker['iconname'] = markerIconName;
               marker['iconfname'] = markerIconFName;
	       marker['name'] = s.getElementsByTagName('name')[0].firstChild.nodeValue;
               marker['id'] = s.getElementsByTagName('name')[0].getAttribute('id'); 
               marker['la_name'] = s.getElementsByTagName('la_name')[0].firstChild.nodeValue;
               marker.events.register("mousedown", marker, function() 
               {
      	         polylines_ks4.destroyFeatures();
      	         polylines_ks5.destroyFeatures();
                 if (current_selected_marker != '')
                 {
                   current_selected_marker.setUrl("images/" + current_selected_marker['iconfname'] + ".png");
		   //current_selected_marker.inflate(0.5);
                 }
		 //this.inflate(2);
                 document.getElementById("selected").style.display = 'block';
                 this.setUrl("images/" + this['iconname'] + ".png");
                 document.getElementById('title').innerHTML = '<b title="School ID: ' + this['id'] + '">' + this['name'] + '</b>'; 
                 document.getElementById('detailspinner').style.display = 'inline'; 
                 document.getElementById("stats").style.display = 'none';
                 document.getElementById("type").style.display = 'none';
                 requested_school_id = this['id'];
                 requested_school_name = this['name'];
                 current_selected_marker = this;

                 requestDetail();         
               }); 
               bbox.extend(point);
               markersArr.push(marker);
            }

            if (current_filter_type == 'la')
            {
		    document.getElementById('filtertext').innerHTML = "Currently showing schools in <b>" + current_filter_name + "</b>.";
	    }
            else if (current_filter_type == 'pc')
            {
		    document.getElementById('filtertext').innerHTML = "Currently showing the 50 nearest schools to postcode <b>" + current_filter_name + "</b>." + inaccnote;
            }
            else if (current_filter_type == 'name')
            {
		if (markersArr.length > 1)
                {
		    markersArr.sort(sortByLA);
		    document.getElementById('screen').style.display='block';
	            
                    if (isIE6) { document.getElementById('selectla').style.visibility = 'hidden'; } //Due to silly IE6 bug.
                    document.getElementById('select').style.display='block';
                    var boxes = "<form>";
		    for(var i = 0; i < markersArr.length; i++)
                    {
                      boxes = boxes + "<input type='radio' name='selectschool' value=" + markersArr[i]['id'] 
					+ " onclick='javascript:dismiss()' />" + 
				markersArr[i]['name'] + " (" + markersArr[i]['la_name'].trim() + ")" + "<br />";
                    }
                    boxes = boxes + "</form><br />";
		    var toomany = "";
                    if (markersArr.length == 100)
		    {
			toomany = "Only the first 100 results are shown.<br />"
		    }
                    document.getElementById('selecttext').innerHTML = "<b>Please select a school:</b><br />" + toomany + "<br />";
		    document.getElementById('selectchoices').innerHTML = boxes; 
                    document.getElementById('selectdismiss').focus();		    
		    userFilter = 1;
		}
            }

            if (markersArr.length == 0)
            {
               ppalert("No results were returned.");
               map.setCenter (lonLat, zoom);
            }
	    else if (markersArr.length == 1)
            {
 	      addAndHighlightSingleMarker(markersArr[0]);
            }
            else if (current_filter_type != 'name')
	    {
              for (var i = 0; i < markersArr.length; i++)
              {
                 markers.addMarker(markersArr[i]); 
	         if (requested_selected_school_id == markersArr[i]['id'])
                 {
		     requested_selected_school_id = 0;
                     highlightMarker(markersArr[i]);
                 }
              }
              map.setCenter(bbox.getCenterLonLat(), map.getZoomForExtent(bbox));
              if (markersArr.length == 100)
              {
                 ppalert("More than 100 results were returned. Only the first 100 are displayed on the map.");
              }
            }	
         }  
      }
   }
}

function sortByLA(a, b)
{
	var a_la = a['la_name'];
	var b_la = b['la_name'];
	if (a_la < b_la) { return -1; }
        else if (a_la > b_la) { return 1; }
        else return 0;
}

function displayMetricPanel(school, la, national, width, height, suffix)
{
    var perf_s = school.getElementsByTagName(suffix)[0].getElementsByTagName('perf')[0];
    var perf_l = la.getElementsByTagName(suffix)[0].getElementsByTagName('perf')[0];
    var perf_n = national.getElementsByTagName(suffix)[0].getElementsByTagName('perf')[0];

    var s_num = perf_s.getAttribute('num')-0;
    var l_num = perf_l.getAttribute('num')-0;
    var n_num = perf_n.getAttribute('num')-0;

    if (suffix == "ks4")
    {	
      var fsm_s_num = perf_s.getAttribute('num_fsm');
      var fsm_l_num = perf_l.getAttribute('num_fsm');
      var fsm_n_num = perf_n.getAttribute('num_fsm');

      var ks4_l2_s_num = perf_s.getAttribute('num_level2');
      var ks4_l2_l_num = perf_l.getAttribute('num_level2');
      var ks4_l2_n_num = perf_n.getAttribute('num_level2');
  
      var ls4_l2_s_num_prop = new Number(ks4_l2_s_num/s_num).toFixed(6);
      var ls4_l2_l_num_prop = new Number(ks4_l2_l_num/l_num).toFixed(6);
      var ls4_l2_n_num_prop = new Number(ks4_l2_n_num/n_num).toFixed(6);

      var fsm_s_num_prop = new Number(fsm_s_num/s_num).toFixed(6);
      var fsm_l_num_prop = new Number(fsm_l_num/l_num).toFixed(6);
      var fsm_n_num_prop = new Number(fsm_n_num/n_num).toFixed(6);

      var ks4_l2_graph = cache_url_prefix + "&cht=bhs&chxt=x,y&chxl=0:|0%|50%|100%|1:|Country|Local Auth|School&chs=" + (3*width) + "x" + (height-30) + "&chbh=a"
        + "&chd=t:" + ls4_l2_s_num_prop + "," + ls4_l2_l_num_prop + "," + ls4_l2_n_num_prop 
        + "&chds=0,1&chco=0066BB|44AADD|88DDFF";
  
      var fsm_graph = cache_url_prefix + "&cht=bhs&chxt=x,y&chxl=0:|0%|50%|100%|1:|Country|Local Auth|School&chs=" + (3*width) + "x" + (height-30) + "&chbh=a"
        + "&chd=t:" + fsm_s_num_prop + "," + fsm_l_num_prop + "," + fsm_n_num_prop 
        + "&chds=0,1&chco=0066BB|44AADD|88DDFF";

      perf_html = 
         "<div style='padding-bottom: 5px;'><b>" + s_num + "</b> pupils at GCSE</div>"; 
      perf_html += "5+ GCSEs at A*-C including English and Maths:<br /><img src='" + ks4_l2_graph + "' width='" + (3*width) + "' height='" + (height-30) + "' /><br /><br />"; 

      perf_html += 
           "Proportion registered for free school meals:<br />"
         + "<img src='" + fsm_graph + "' width='" + (3*width) + "' height='" + (height-30) + "' /><br />"
         + "<div style='clear: both;'></div>";

       document.getElementById("m_" + suffix).innerHTML = perf_html; 
    }
    else if (suffix == "ks5")
    {
      var ks5_s_points = perf_s.getAttribute('sum_points');
      var ks5_l_points = perf_l.getAttribute('sum_points');
      var ks5_n_points = perf_n.getAttribute('sum_points');

      var ks5_s_points_prop = new Number(ks5_s_points/s_num).toFixed(6);
      var ks5_l_points_prop = new Number(ks5_l_points/l_num).toFixed(6);
      var ks5_n_points_prop = new Number(ks5_n_points/n_num).toFixed(6);

      var ks5_points_graph = cache_url_prefix + "&cht=bhs&chxt=x,y&chxl=0:|0|500|1000|1500|1:|Country|Local Auth|School&chs=" + (3*width) + "x" + (height-30) + "&chbh=a"
        + "&chd=t:" + ks5_s_points_prop + "," + ks5_l_points_prop + "," + ks5_n_points_prop 
        + "&chds=0,1500&chco=0066BB|44AADD|88DDFF";

      perf_html = 
         "<div style='padding-bottom: 5px;'><b>" + s_num + "</b> pupils at A-Level</div>"; 
      perf_html += "Average Point Score per pupil:<br /><img src='" + ks5_points_graph + "' width='" + (3*width) + "' height='" + (height-30) + "' /><br /><br />"; 


      document.getElementById("m_" + suffix).innerHTML = perf_html; 
    }    
}

function displayDetail()
{ 
    if(request.readyState == 4)
    {
      var xmldoc = request.responseXML;
      if (xmldoc)
      {
         var school_id = xmldoc.getElementsByTagName('results')[0].getAttribute('school_id');
	 if (school_id == requested_school_id)
         {
            document.getElementById("stats").style.display = 'block';
            document.getElementById("type").style.display = 'block';
            current_school_id = requested_school_id;
            current_school_name = requested_school_name;
            document.getElementById("detailspinner").style.display = "none"; 
            var message = xmldoc.getElementsByTagName('message')[0];
            var school = xmldoc.getElementsByTagName('school')[0];
            var la = xmldoc.getElementsByTagName('la')[0];
            var national = xmldoc.getElementsByTagName('national')[0];
            if (message)
            {
              document.getElementById("info").innerHTML = "<div class='" + message.getAttribute('type') + "'>" + message.firstChild.nodeValue + "</div>";
            }
            else
            {
              document.getElementById("info").innerHTML = "";
            }
 
            //Construct graph from the school data, and send it to google.
            if (school && la)
            {
              var school_type = school.getAttribute('type');
              var school_typedesc = school.getAttribute('type_info');
              var la_id = la.getAttribute('la_id');
              var postcode = school.getAttribute('postcode');

              var width = 55;
              var height = 100;              

	      document.getElementById("type").innerHTML = "<span class='type' title='" + school_typedesc + "'>" + school_type + "</span>";
              document.getElementById("basic").innerHTML = 
		  "<div>Postcode: <a href='javascript:document.getElementById(\"selectpc\").value = \"" + postcode + "\"; requestSchools(\"pc\"); setSchoolToSelectOnLoad(" + school_id + ")'>" + school.getAttribute('postcode') + "</a><br />" + 
                  "Local Authority: <a href='javascript:document.getElementById(\"selectla\").value = \"" + la_id + "\"; requestSchools(\"la\"); setSchoolToSelectOnLoad(" + school_id + ")'>" + la.getAttribute('name') + "</a><br />";  
    	       
              var ks4_present = 0;
              var ks5_present = 0;
	      if (school.getElementsByTagName("ks4")[0].getElementsByTagName('perf')[0].getAttribute('num')-0 > 0)
	      {
		  ks4_present = 1;
	          document.getElementById('ks4_tab').style.display = 'block';
                  displayMetricPanel(school, la, national, width, height, "ks4");
 	          document.getElementById('ks4_tab').style.display = 'block';
              }
              if (school.getElementsByTagName("ks5")[0].getElementsByTagName('perf')[0].getAttribute('num')-0 > 0)
	      {
		  ks5_present = 1;
    	          displayMetricPanel(school, la, national, width, height, "ks5");
 	          document.getElementById('ks5_tab').style.display = 'block';
	      }
	      document.getElementById("tabs").style.display = 'block';
	      if (ks4_present == 1 && ks4_visible == 0 && ks5_visible == 0) { showPanelSet('ks4_stats', 'ks4_tab'); ks4_visible = 1; }
              else if (ks5_present == 1 && ks4_visible == 0 && ks5_visible == 0) { showPanelSet('ks5_stats', 'ks5_tab'); ks5_visible = 1; }

              if (document.getElementById("catchmentinfo") != null)
	      {
	      	//Request catchment - we do this call here, after the school detail response has returned, to prevent a race condition.
              	document.getElementById("catchmentinfo").style.display = 'block';
              	document.getElementById("catchmenttitle").innerHTML = 'Loading catchment...';
              	document.getElementById("catchmentspinner").style.display = 'inline';
              	requestCatchment();
	      }
           }
         }
      } 
    }
}

function displayCatchment()
{ 
    if(request.readyState == 4)
    {
      var xmldoc = request.responseXML;
      if (xmldoc)
      {
         var school_id = xmldoc.getElementsByTagName('catchments')[0].getAttribute('school_id');	
         if (school_id == current_school_id)
         {
           ks4_catchment_available = 0; 
           ks5_catchment_available = 0; 

	   var ks4Node = xmldoc.getElementsByTagName('ks4')[0];
	   var ks5Node = xmldoc.getElementsByTagName('ks5')[0];

	   if (ks4Node != undefined)
           {
		ks4_catchment_pc = ks4Node.getAttribute('puppc');
             	ks4_catchment_available = 1;
                latlonlist_str = ks4Node.getAttribute('latlons');
		polyline = getPolyline(latlonlist_str);
      	        polylines_ks4.addFeatures(polyline);  
           }
	   if (ks5Node != undefined) 
           {
		ks5_catchment_pc = ks5Node.getAttribute('puppc');
             	ks5_catchment_available = 1; 
                latlonlist_str = ks5Node.getAttribute('latlons');
		polyline = getPolyline(latlonlist_str);
      	        polylines_ks5.addFeatures(polyline);
           }
           processCatchmentVisibility(); 
        }
     }
  }
}

function getPolyline(latlonlist_str)
{
    var points = []
    var latlonlist = latlonlist_str.split(' ');
    for (var j = 0; j < latlonlist.length; j++)
    {
       var latlon_str = latlonlist[j];
       var latlon = latlon_str.split(',');
       var lonlat = new OpenLayers.LonLat(latlon[0]-0, latlon[1]-0);
             var point = new OpenLayers.Geometry.Point(latlon[0]-0, latlon[1]-0).transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913"));
       points.push(point);
    }
 
    var geometry = new OpenLayers.Geometry.LinearRing(points)        	
    var style = OpenLayers.Util.extend({}, OpenLayers.Feature.Vector.style["default"]);
    OpenLayers.Util.extend(style, { strokeColor: "#0066BB", strokeWidth: 6, strokeOpacity: 0.6, fillColor: "#ffffff", fillOpacity: 0.2 } );
    return new OpenLayers.Feature.Vector(geometry, null, style);

}

function processCatchmentVisibility()
{ 
   if (document.getElementById("catchmentinfo") != null)
   {
	   var show_catchments = document.getElementById("cbCatchment").checked;
	   document.getElementById("catchmentspinner").style.display = 'none'; 
	   if (ks4_visible && show_catchments)
	   {
	       polylines_ks4.setVisibility(true);
	       polylines_ks5.setVisibility(false);
	       document.getElementById("catchmentinfo").style.display = 'block';
	       if (ks4_catchment_available)
	           document.getElementById("catchmenttitle").innerHTML = "<span style='color: #660000;'>Showing catchment area - " + ks4_catchment_pc + "%+ of K.S. 4 pupils at this school, with known home locations, live in the area shown.</span>";
	       else
	           document.getElementById("catchmenttitle").innerHTML = "<span style='color: #660000;'>Catchment area for GCSE pupils not available.</span>";
	   }
	   else if (ks5_visible && show_catchments)
	   {
	       polylines_ks4.setVisibility(false);
	       polylines_ks5.setVisibility(true);
	       document.getElementById("catchmentinfo").style.display = 'block';
	       if (ks5_catchment_available)
	           document.getElementById("catchmenttitle").innerHTML = "<span style='color: #660000;'>Showing catchment area - " + ks5_catchment_pc + "%+ of K.S. 5 pupils at this school, with known home locations, live in the area shown.</span>";
	       else
	           document.getElementById("catchmenttitle").innerHTML = "<span style='color: #660000;'>Catchment area for A-Level pupils not available.</span>";
	   }
	   else
	   {
	       polylines_ks4.setVisibility(false);
	       polylines_ks5.setVisibility(false);
	       document.getElementById("catchmentinfo").style.display = 'none';
	   } 
    }
}

function getList(ele, prefix, size, scale)
{
  var arr = [];
  for (var i = 0; i < size; i++)
  arr[i] = Math.round(ele.getAttribute(prefix + (i+1)) / scale);
  return arr.join();
}

function getSimpleOacList(ele)
{
  var arr = [];
  for (var i = 0; i < oacGroups.length; i++)
  {
     arr[i] = ele.getAttribute("oac" + oacGroups[i]);
  }
  return arr;
}

function getOacList(ele, elesum, base, basesum)
{
  var arr = [];
  for (var i = 0; i < oacGroups.length; i++)
  {
     var eleval = ele.getAttribute("oac" + oacGroups[i]);
     var baseval = base.getAttribute("oac" + oacGroups[i]);
     if (basesum == 0)
     {
       arr[i] = -999;
     }
     else
     {
       arr[i] = Math.round(eleval - ((baseval/basesum)*elesum));
     }       
  }
  return arr.join();
}

function ppalert(message)
{
	document.getElementById('screen').style.display='block';
	if (isIE6) { document.getElementById('selectla').style.visibility = 'hidden'; }
        document.getElementById('warn').style.display='block';
        document.getElementById('warntext').innerHTML = message; 
        document.getElementById('warndismiss').focus();		    

}
