/*
 * Just make sure they have a valid phone number entered.
 */
function validate(form)
{
    // grab each phone number
    var el1 = document.getElementById("phone_1");
    var el2 = document.getElementById("phone_2");
    var el3 = document.getElementById("phone_3");
    
    // create necessary regular expressions to test
    var reg3 = new RegExp(/(^\d{3}$)/);
    var reg4 = new RegExp(/(^\d{4}$)/);
    
    // test the numbers for validity
    if(!reg3.test(el1.value) ||
       !reg3.test(el2.value) ||
       !reg4.test(el3.value))
    {
        display_errors(form.getAttribute("id"), "Invalid phone number.");
        return false;
    }
    
    // everything appears great
    return true;
}

function load_history(number)
{
	var url = "number_history_async.php?number=" + number;
	
    g_xmlHttp2 = getXmlHttpObjectEx();
    g_xmlHttp2.onreadystatechange = display_history;
    g_xmlHttp2.open("GET", url, true);
    g_xmlHttp2.send(null);
	
	// Load temp content
	
	document.getElementById("history_async").innerHTML = "<h3>Number History</h3><p>Loading number history</p>";
}

/*
function load_other_prefixes(number)
{
	var url = Drupal.settings.basePath + "toll-free-ajax-alt-prefix-table.php?number=" + number;
	
    g_xmlHttp = getXmlHttpObjectEx();
    g_xmlHttp.onreadystatechange = display_alt_prefix_table;
    g_xmlHttp.open("GET", url, true);
    g_xmlHttp.send(null);
}
*/

function display_alt_prefix_table()
{
	if(g_xmlHttp.readyState == 4 || g_xmlHttp.readyState == "complete")
    {
		document.getElementById("alt_prefix_lookup").innerHTML = g_xmlHttp.responseText;
	}
}

function display_history()
{
	if(g_xmlHttp2.readyState == 4 || g_xmlHttp2.readyState == "complete")
    {
		document.getElementById("history_async").innerHTML = g_xmlHttp2.responseText;
	}
}

function load(w1, w2, w3, w4, w5, prefix, base, first, last)
{	
		// build the URL for the async call
	var url = "reverse_available_async.php?";
	url += "w1=" + w1;
	url += "&w2=" + w2;
	url += "&w3=" + w3;
	url += "&w4=" + w4;
	url += "&w5=" + w5;
	url += "&num_prefix=" + prefix;
	url += "&num_base=" + base;
	url += "&num_first=" + first;
	url += "&num_last=" + last;
	
    // show the waiting message
    show_waiting(false);
    
    // send the request asynchronously
    g_xmlHttp = getXmlHttpObjectEx();
    g_xmlHttp.onreadystatechange = display_available_nums;
    g_xmlHttp.open("GET", url, true);
    g_xmlHttp.send(null);
}

function display_available_nums()
{
    if(g_xmlHttp.readyState == 4 || g_xmlHttp.readyState == "complete")
    {
        
		document.getElementById("nums_available_now").innerHTML = g_xmlHttp.responseText;
        
    }
	
	// stop the waiting timer
	if(g_WaitTimer)
	{
		clearInterval(g_WaitTimer);
		g_WaitTimer = null;

		// now remove the waiting message all together
		document.getElementById("waiting").style.display = "none";
	}
}

/*
 * Show the appropriate waiting message on the screen.
 */
var g_WaitTimer = null;
function show_waiting(more)
{
    if(!g_WaitTimer)
    {
        // make sure the message is appropriate inside
        //document.getElementById("waiting").innerHTML = "Searching for more results <span id='please_wait'>.</span>";
                    
        // display the searching menu if we're not already
        document.getElementById("waiting").style.display = "block";
        g_WaitTimer = setInterval("waiting()", 500);
    }
}

/*
 * A function that makes the periods keep going on a
 * waiting message.
 */
var g_Dots = 1;
var MAX_DOTS = 10;
function waiting()
{
    var el = document.getElementById("please_wait");
    if(el)
    {
        // increase the number of dots by one
        g_Dots++;
        
        if(g_Dots == 10)
        {
            g_Dots = 1;
        }
        
        // create the dots string
        var str = "";
        for(var i=0; i<g_Dots; i++)
        {
            str += " . ";
        }
        
        // now make those dots visible
        el.innerHTML = str;
    }
}
