/**
 *   ISPSumRep.js -
 *   @version   $Name:  $
 *   @module
 *
 *   @purpose
 *   @see
 *
 *   @author    B.Jayakumar  (jayakumar@kuruvi.ooty.tenet.res.in)
 *
 *   @created        Tue 26-Aug-2008 12:08:51
 *   Last modified:  Sat 24-Jan-2009 13:06:35 by root
 *   $Id: ISPSumRep.js,v 1.10 2008/12/08 08:52:01 raj Exp $
 *
 *   @bugs
 *
 *   Change Log:        <Date> <Author>
 *              <Changes>
 */

var http = getHTTPObject(); // We create the XMLHTTPRequest Object

/*-------------------------------------------------------------------------
 *    getHTTPObject -- Get the HTTP object
 *    Args: Nothing
 *    Returns: HTTP object
 -------------------------------------------------------------------------*/
function getHTTPObject(){
    var xmlhttp;
    if (window.XMLHttpRequest) {
	xmlhttp = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
	xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } return xmlhttp;
}

/*-------------------------------------------------------------------------
 *    getRegionList -- Get the list of region for the given country
 *    Args: argCountry -- Country name
 *    Returns:
 -------------------------------------------------------------------------*/
function getRegionList(argCountry)
{
    var sendVal = "";
    sendVal += "ISPSumRepOperation.php?report=getRegionList&country=" + escape(argCountry);
    var elementSel = document.getElementById('selectState');
    for(var incLen = 0; elementSel.length = 0; incLen++)
	{
	    elementSel.options[elementSel.length - 1] = null;
	}
    document.getElementById("selectState").options[0] = new Option("------SELECT------");
    document.getElementById("selectState").options[0].value = "";

    document.getElementById("ISPSummaryReportView").innerHTML = "";
    document.getElementById("footNote").innerHTML = "";
    if(argCountry != "")
	{
	    /*
	     * Send the details.
	     */
	    http.open("GET", sendVal, true);
	    http.onreadystatechange = displayRegionList;
	    http.send(null);
	}
}

/*-------------------------------------------------------------------------
 *    displayRegionList -- Display the list of region for the given country
 *    Args: 
 *    Returns:
 -------------------------------------------------------------------------*/
function displayRegionList()
{
    /*
     * Check for the states and the status
     * according to the result display the message.
     */
    if (http.readyState == 4)
	{
	    if (http.status == 200)
		{
		    var message = http.responseText;
		    var result = message.split("^");
		    document.getElementById("selectState").options[0] = new Option("------SELECT------");
		    document.getElementById("selectState").options[0].value = "";
		    var j = 0;
		    for(var i = 0; i < result.length - 1; i++)
			{
			    j = i + 1;
			    document.getElementById("selectState").options[j] = new Option(result[i]);
			    document.getElementById("selectState").options[j].value = result[i];
			}
		}
	    else
		{
		    alert("Unable to update database on the server.\nPlease try again, if the problem persist, contact the administrator.");
		}
	}
    else
	{
	    // State = 0 - 4 are the intermediate states, so just show loading.
	}
}

/*-------------------------------------------------------------------------
 *    getTableValues -- Get the list of values to be displayed
 *    Args: argCountry -- Country name
 *    Args: argRegion -- Region name
 *    Returns:
 -------------------------------------------------------------------------*/
function getTableValues(argCountry,argRegion)
{
    var sendVal = "";
    sendVal += "ISPSumRepOperation.php?report=getTableValues&country=" + escape(argCountry);
    sendVal += "&region=" + escape(argRegion);

    document.getElementById("ISPSummaryReportView").innerHTML = "";
    document.getElementById("footNote").innerHTML = "";
    if(argRegion != "")
	{
	    /*
	     * Send the details.
	     */
	    http.open("GET", sendVal, true);
	    http.onreadystatechange = displayTableValues;
	    http.send(null);
	}
}

/*-------------------------------------------------------------------------
 *    displayTableValues -- Display the values to be displayed
 *    Args: 
 *    Returns:
 -------------------------------------------------------------------------*/
function displayTableValues()
{
    /*
     * Check for the states and the status
     * according to the result display the message.
     */
    if (http.readyState == 4)
	{
	    if (http.status == 200)
		{
		    var message = http.responseText;
		    displayISPSummaryReport(message);
		}
	    else
		{
		    alert("Unable to update database on the server.\nPlease try again, if the problem persist, contact the administrator.");
		}
	}
    else
	{
	    // State = 0 - 4 are the intermediate states, so just show loading.
	}
}

/*-------------------------------------------------------------------------
 *    displayISPSummaryReport -- Display the values to be displayed
 *    Args: 
 *    Returns:
 -------------------------------------------------------------------------*/
function displayISPSummaryReport(argVal)
{
  var selectCountry = document.getElementById("selectCountry").value;
  var selectState = document.getElementById("selectState").value;
    var tableValues = argVal.split("@");
    var displayTable = "";
    displayTable += "<table width='100%' cellpadding='2' cellspacing='2' border = 0>";
    displayTable += "<tr>";
    displayTable += "<td width='16%' height='20' bgcolor='#CC3333' class='tablesubheading' rowspan='2'> ";
    displayTable += "<div align='center'><strong><font size='2' face='Arial, Helvetica, sans-serif'>ISP ";
    displayTable += "Name </font></strong></div></td>";
    displayTable += "<td width='16%' bgcolor='#CC3333' class='tablesubheading' rowspan='2'> ";
    displayTable += "<div align='center'><strong><font size='2' face='Arial, Helvetica, sans-serif'>Download ";
    displayTable += "Bandwidth</font></strong></div></td>";
    displayTable += "<td width='12%' bgcolor='#CC3333' class='tablesubheading' colspan='3'> ";
    displayTable += "<div align='center'><strong><font size='2' face='Arial, Helvetica, sans-serif'>Download ";
    displayTable += "Speed (kbps)</font></strong></div></td>";
    displayTable += "<td width='12%' bgcolor='#CC3333' class='tablesubheading' colspan='3'>";
    displayTable += "<div align='center'><strong><font size='2' face='Arial, Helvetica, sans-serif'>RTT (ms)</font></strong></div></td>";
    displayTable += "<td width='16%' height='20' bgcolor='#CC3333' class='tablesubheading' rowspan='2'> ";
    displayTable += "<div align='center'><strong><font size='2' face='Arial, Helvetica, sans-serif'>Detailed ";
    displayTable += "Report </font></strong></div></td>";
    displayTable += "</tr>";

    displayTable += "<tr>";
    displayTable += "<td bgcolor='#CC3333' class='tablesubheading'> <div align='center'><strong><font size='2' face='Arial, Helvetica, sans-serif'>ISP ";
    displayTable += "</font></strong></div></td>";
    displayTable += "<td bgcolor='#CC3333' class='tablesubheading'> <div align='center'><strong><font size='2' face='Arial, Helvetica, sans-serif'>National</font></strong></div></td>";
    displayTable += "<td bgcolor='#CC3333' class='tablesubheading'> <div align='center'><strong><font size='2' face='Arial, Helvetica, sans-serif'>Global</font></strong></div></td>";
    displayTable += "<td bgcolor='#CC3333' class='tablesubheading'> <div align='center'><strong><font size='2' face='Arial, Helvetica, sans-serif'>ISP</font></strong></div></td>";
    displayTable += "<td bgcolor='#CC3333' class='tablesubheading'> <div align='center'><strong><font size='2' face='Arial, Helvetica, sans-serif'>National</font></strong></div></td>";
    displayTable += "<td bgcolor='#CC3333' class='tablesubheading'> <div align='center'><strong><font size='2' face='Arial, Helvetica, sans-serif'>Global</font></strong></div></td>";
    displayTable += "</tr>";
    if(tableValues.length > 1)
      {
	for(var incTbl = 0; incTbl < tableValues.length - 1; incTbl++)
	  {
	    var rowValues = tableValues[incTbl].split("^");
	    var tmpDetailReport = "";
	    displayTable += "<tr bgcolor='#F8EADA'>";
	    tmpDetailReport += selectCountry + "^" + selectState + "^";
	    for(var incVal = 0; incVal < rowValues.length - 1; incVal++)
	      {
		if(incVal < 2)
		  {
		    displayTable += "<td align=center height='20' class='tablesubheading'><font size='2' face='Arial, Helvetica, sans-serif'>" + rowValues[incVal] + "</td>";
		    tmpDetailReport += rowValues[incVal] + "^";
		  }
		else
		  {
		    displayTable += "<td align=right height='20' class='tablesubheading'><font size='2' face='Arial, Helvetica, sans-serif'>" + rowValues[incVal] + "</td>";
		  }
	      }
	    displayTable += "<td align='center' height='20' class='tablesubheading'><a href=ViewReport.php?" + tmpDetailReport + "><img src='search.png' border='0' height='25' width='25'></a></td>";
	    displayTable += "</tr>";
	  }
      }
    else
      {
	displayTable = "<center><font size='2' face='Arial, Helvetica, sans-serif' color='red'>There is no records to display.</font></center>";
      }
    document.getElementById("ISPSummaryReportView").innerHTML = displayTable;
    document.getElementById("footNote").innerHTML = "<font size='2' face='Arial, Helvetica, sans-serif'>* We have given here all possible speeds. Please note some of them might not be offered by your ISP.";
}

/**
 *  $Log: ISPSumRep.js,v $
 *  Revision 1.10  2008/12/08 08:52:01  raj
 *  Updated the javascript file for handling region lists
 *
 *  Revision 1.9  2008/10/30 08:39:22  raj
 *  Removing of ISP_Type Business
 *
 *  Revision 1.8  2008/10/29 12:48:48  raj
 *  Change in Summary report
 *
 *  Revision 1.7  2008/10/18 12:52:07  raj
 *  Change in time slot
 *
 *  Revision 1.5  2008/10/14 11:24:53  raj
 *  Updation of beta testing bugs/suggesstion
 *
 *  Revision 1.4  2008/10/06 08:38:45  raj
 *  Updated changes reported in beta testing
 *
 *  Revision 1.3  2008/09/16 12:13:44  ragu
 *  changes made based on review
 *
 *  Revision 1.2  2008/09/04 07:07:01  raj
 *  ReleaseQA_V11
 *
 *  Revision 1.1  2008/08/28 07:40:14  raj
 *  ReleaseQA_V10
 *
 *
 *  Local Variables:
 *  time-stamp-active: t
 *  time-stamp-line-limit: 20
 *  time-stamp-start: "Last modified:[  ]+"
 *  time-stamp-format: "%3a %02d-%3b-%:y %02H:%02M:%02S by %u"
 *  time-stamp-end: "$"
 *  End:
 *                         End of ISPSumRep.js
 */

