
	  function speedCheckerStarted()
	  {
		document.getElementById('exchange').style.visibility = 'hidden';
		document.getElementById('results').style.visibility = 'hidden';
		document.getElementById('resultstext').style.visibility = 'hidden';
		document.getElementById('resultstext').innerHTML = '';
		document.getElementById('providerresults').style.visibility = 'hidden';
		document.getElementById('provider_results').innerHTML = '';
		pageTracker._trackPageview("/broadband-speed-test-started" );
	  } 

	function speedCheckerCompleted(result)
	{
		downloadSpeed = result.split(',')[0];
		uploadSpeed = result.split(',')[1];
		isp = result.split(',')[2];
		var downloadSend = downloadSpeed;
	        var download = downloadSpeed / 1024;
		var upload = uploadSpeed / 1024;
		upload = Math.round(upload*100)/100;
		download = Math.round(download*100)/100;
		document.getElementById('downloadspeed').innerHTML = download +'Mbps';
		document.getElementById('uploadspeed').innerHTML = upload +'Mbps';                
		document.getElementById('results').style.visibility = 'visible';
		//initXMLHR(downloadSend);
    		var optionalElement = document.forms["postcode_form"]["postcode"];
    		var optional = optionalElement.value;

		var pcodeElement = document.forms["postcode_form"]["postcode"];
		var pcode = pcodeElement.value;

		var supplierElement = document.forms["postcode_form"]["supplier"];
		var supplier = supplierElement.value;

		var supplierratingElement = document.forms["postcode_form"]["supplierrating"];
		var supplierrating = supplierratingElement.value;

		var supplierdealspeedElement = document.forms["postcode_form"]["supplierdealspeed"];
		var supplierdealspeed = supplierdealspeedElement.value;

		var supplierspeedElement = document.forms["postcode_form"]["supplierspeed"];
		var supplierspeed = supplierspeedElement.value;

		var supplierreliabilityElement = document.forms["postcode_form"]["supplierreliability"];
		var supplierreliability = supplierreliabilityElement.value;

		var suppliercustomerserviceElement = document.forms["postcode_form"]["suppliercustomerservice"];
		var suppliercustomerservice = suppliercustomerserviceElement.value;

		if (optional == "optional"){ 

			var sometext = "farts";
			
			document.getElementById('resultstext').style.visibility = 'visible';

			document.getElementById('resultstext').innerHTML = "You can check the maximum speed that should be supported by your line by running the test again and filling in your postcode in the box provided. Or else by using our <a href=\"http://www.broadband.co.uk\">broadband checker</a>, simply do a search on your postcode and/or telephone number and at the top of your results page it will give the expected maximum speed available to your address. <a href=\"http://www.broadband.co.uk\">Check now!</a><p><a href=\"/help/speed-up-your-broadband/\">Tips on how to improve your broadband speed</a></p>";
			initXMLHR3(pcode,supplier,supplierrating,downloadSpeed,uploadSpeed,supplierdealspeed,supplierreliability,supplierspeed,suppliercustomerservice);
			pageTracker._trackPageview("/broadband-speed-test-completed" );
		} else {
			initXMLHR(downloadSend,supplier,supplierrating,uploadSpeed,supplierdealspeed,supplierreliability,supplierspeed,suppliercustomerservice);
			pageTracker._trackPageview("/broadband-speed-test-completed" );
		}	 

		//initXMLHR(downloadSend);
}


function initXMLHR(downloadSpeed,supplier,supplierrating,uploadspeed,supplierdealspeed,supplierreliability,supplierspeed,suppliercustomerservice)

{

  var requester;

  try

  {

    requester = new XMLHttpRequest();

  }

  catch (error)

  {

    try

    {

      requester = new ActiveXObject("Microsoft.XMLHTTP");

    }

    catch (error)

    {

      requester = null;

    }

  }



  if (requester != null)

  {

    requester.onreadystatechange = function()

    {

      if (requester.readyState == 4)

      {

        if (requester.status == 200 || requester.status == 304)

        {

          success(requester,postcode);

        }

        else

        {

          failure(requester);

        }

      }



      return true;

    };

    

    var postcodeElement = document.forms["postcode_form"]["postcode"];
    var postcode = postcodeElement.value;

    requester.open("GET", "/broadband-speed-test-check-new.jsp?user_postcode=" + postcode + "&user_speed=" + downloadSpeed + "&supplier=" + supplier + "&supplierrating=" + supplierrating + "&uploadspeed=" + uploadspeed + "&supplierspeed=" + supplierspeed + "&supplierreliability=" + supplierreliability + "&suppliercustomerservice=" + suppliercustomerservice + "&supplierdealspeed=" + supplierdealspeed);
    pageTracker._trackPageview("/broadband-speed-test-postcode-results" );

    requester.send(null);

  }

  else

  {

    return false;

  }



  return true;

}

function success(requester,postcode)

{


		requesterText = requester.responseText;
		if (requesterText.indexOf("no exchange") == -1) {
		  	 document.getElementById('exchange_results').innerHTML = requester.responseText;	
		   	//document.getElementById('exchange_results').innerHTML = 'It Worked';	
		   	document.getElementById('exchange').style.visibility = 'visible';
    			initXMLHR2(postcode);
		} else {
			document.getElementById('resultstext').style.visibility = 'visible';

			document.getElementById('resultstext').innerHTML = 'The postcode you entered is not a valid UK postcode, please check and try again.';	
		}	


  return true;

}



function failure(requester)

{

  alert("The XMLHttpRequest failed with status code: " + requester.status);



  return true;

}

function initXMLHR2(postcode)

{

  var requester2;

  try

  {

    requester2 = new XMLHttpRequest();

  }

  catch (error)

  {

    try

    {

      requester2 = new ActiveXObject("Microsoft.XMLHTTP");

    }

    catch (error)

    {

      requester2 = null;

    }

  }



  if (requester2 != null)

  {

    requester2.onreadystatechange = function()

    {

      if (requester2.readyState == 4)

      {

        if (requester2.status == 200 || requester2.status == 304)

        {

          success2(requester2);

        }

        else

        {

          failure2(requester2);

        }

      }



      return true;

    };

    requester2.open("GET", "/broadband-speed-test-deals.jsp?user_postcode=" + postcode);

    requester2.send(null);

  }

  else

  {

    return false;

  }



  return true;

}

function success2(requester2)

{


		requesterText2 = requester2.responseText;
		if (requesterText2.indexOf("no exchange") == -1) {
		  	 document.getElementById('provider_results').innerHTML = requester2.responseText;	
		   	//document.getElementById('exchange_results').innerHTML = 'It Worked';	
		   	document.getElementById('providerresults').style.visibility = 'visible';
		} else {
			//document.getElementById('resultstext').style.visibility = 'visible';

			//document.getElementById('resultstext').innerHTML = 'The postcode you entered is not a valid UK postcode, please check and try again.';	
		}	


  return true;

}



function failure2(requester2)

{

  alert("The XMLHttpRequest failed with status code: " + requester2.status);



  return true;

}


function initXMLHR3(pcode,supplier,supplierrating,downloadspeed,uploadspeed,supplierdealspeed,supplierreliability,supplierspeed,suppliercustomerservice)

{

  var requester3;

  try

  {

    requester3 = new XMLHttpRequest();

  }

  catch (error)

  {

    try

    {

      requester3 = new ActiveXObject("Microsoft.XMLHTTP");

    }

    catch (error)

    {

      requester3 = null;

    }

  }



  if (requester3 != null)

  {

    requester3.onreadystatechange = function()

    {

      if (requester3.readyState == 4)

      {

        if (requester3.status == 200 || requester3.status == 304)

        {

          success3(requester3);

        }

        else

        {

          failure3(requester3);

        }

      }



      return true;

    };

    requester3.open("GET", "/broadband-speed-test-ratings.jsp?postcode=" + pcode + "&provider=" + supplier + "&rating=" + supplierrating + "&download=" + downloadspeed + "&upload=" + uploadspeed + "&supplierspeed=" + supplierspeed + "&supplierreliability=" + supplierreliability + "&suppliercustomerservice=" + suppliercustomerservice + "&supplierdealspeed=" + supplierdealspeed);

    requester3.send(null);

  }

  else

  {

    return false;

  }



  return true;

}

function success3(requester3)

{


  return true;

}



function failure3(requester3)

{

  alert("The XMLHttpRequest failed with status code: " + requester3.status);



  return true;

}
