var temp = new Array();
var members;

// Build the list of member organisations
function buildList()
{
    // Copy the temp array to the members array
    if (members == null)
        members = temp;
 
 	// Begin the html
    var html='<table cellspacing="0" cellpadding="0">';

    // Find which letters to include
    var include = searchLetters();

    // Add the header letters
    html += addLetters(include);

    // Add the directory
    html += addDirectory(include);
    
    html += '</table>';
    
    // Write the html
    document.getElementById('directory').innerHTML=html;
}

// Search which letters to include
function searchLetters()
{
    // Create an array of letters to include
    var include = new Array();
    var letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    for (var i=0; i<letters.length; i++)
    {
        // If the letter is present add it to the array
        var letter = letters.substring(i,i+1);
        if (members[letter] != null)
            include[include.length] = letter;
    }

    // Return the array
    return include;
}

// Create the html for the letters to include
function addLetters(include)
{
    // Put the links in a paragraph
    var html ='<tr>'
    		 +	'<td align="right">';

    // Add a link for each letter
    for (var i=0; i<include.length; i++)
        html += '<a href="#' + include[i] + '">'
              +   include[i]
              + '</a>'
              + '&nbsp';

    // Finish the html
    html += 	'</td>'
    	  +	'</tr><tr><td height="10"></td></tr>';

    return html;
}

// Add the directory html
function addDirectory(include)
{
    var html = '';

    // Add a link for each letter
    for (var i=0; i<include.length; i++)
        html += '<tr>'
        	  +		'<td>'
              +			'<a name="' + include[i] + '">'
              +				include[i]
              +			'</a>'
              +			'&nbsp'
              +			'<a href="#top">'
              +				'Back to Top'
              +			'</a>'
              +		'</td>'
              + '</tr><tr><td height="10"></td></tr>'
              + addLetter(members[include[i]].members);

    return html;
}

// Add the html for a given letter
function addLetter(array)
{
    var html = '';

    // Add a row for each company
    for (var i=0; i<array.length; i++){
     	html += '<tr>'
        	  +		'<td><div class="adjustable">'
              +			'<B><span style="font-size:13pt">'+array[i].key						+ '</span></b><BR>'
              +			'<B>Address:</B> '
              + 			array[i].address1 + ", "
              + 			array[i].address2 + ", "
              +				array[i].postcode							+ '<BR>'
              +			'<B>Telephone:</B> '   + array[i].telephone		+ '<BR>'
              +			'<B>Fax:</B> '         + array[i].fax			+ '<BR>'
              +			'<B>Mobile:</B> '      + array[i].mobile		+ '<BR>'
              +			'<B>Email:</B> '
              + 			'<a href="mailto:' + array[i].email + '">'
              + 				array[i].email
              +				'</a>'										+ '<BR>'
              +			'<B>Website:</B> '
              + 			'<a target="_blank" href="http://' + array[i].website	+ '">'
              + 				array[i].website
              +				'</a>'										+ '<BR>'
              +			'<B>Contact:</B> '     + array[i].name			+ '<BR>'
              +			'<B>Description:</B> ' + array[i].description	+ '<BR>'
              +		'</div></td>'
              + '</tr><tr><td height="10"></td></tr>';
              }

    return html;
}

// Add a member organisation
function addMember(organisation,name, address1, address2, postcode, telephone, fax, mobile, email, website, description)
{
    // Only add the link if necessary
    if (members != null)
        return;

    // Determine whether to use the organisation or contact as the key
    var key;
    if (organisation!=null && organisation.length>0)
    	key = organisation;
    else
    	key = name;

    // Check whether the initial letter has
    // already been added
    var letter = key.substring(0,1).toUpperCase();
    if (temp[letter] == null)
        temp[letter] = new defineLetter();

    // Keep a shorthand pointer to the array
    var array = temp[letter].members;
    
    // Find the correct position in the array
    var i=0;
    var found = false;
    while (i<array.length && ! found)
        if (key.toLowerCase() < array[i].key.toLowerCase())
            found = true;
        else
            i++;

    // Make space for the new element
    for (var j=array.length-1; j>=i; j--)
        array[j+1] = array[j];

    // Add the new member
    array[i]
        = new defineMember(organisation,name, address1, address2, postcode, telephone, fax, mobile, email, website, description);
}

// A sub array of members for each letter
function defineLetter()
{
    this.members = new Array();
}

// Define a member organisation
function defineMember(organisation,name, address1, address2, postcode, telephone, fax, mobile, email, website, description)
{
	this.organisation= organisation;
    this.name        = name;
    this.address1    = address1;
    this.address2    = address2;
    this.postcode    = postcode;
    this.telephone   = telephone;
    this.fax         = fax;
    this.mobile      = mobile;
    this.email       = email;
    this.website     = website;
    this.description = description;
    
    if (organisation!=null && organisation.length>0)
	  	this.key = organisation;
	else
    	this.key = name;
}

// Login to the members area
function login()
{
	var params  = "email=" + document.getElementById('email').value
				+ '&password='	
				+ document.getElementById('password').value;
	return params;
}

// Enrol
function enroll()
{
	var params = "email=" + document.getElementById('email').value
				+ '&password='	
				+ document.getElementById('password').value
				+ '&organisation='
				+ document.getElementById('organisation').value
				+ '&name='
				+ document.getElementById('name').value
				+ '&address1='
				+ document.getElementById('address1').value
				+ '&address2='
				+ document.getElementById('address2').value
				+ '&postcode='
				+ document.getElementById('postcode').value
				+ '&telno='
				+ document.getElementById('telno').value
				+ '&faxno='
				+ document.getElementById('faxno').value
				+ '&mobno='
				+ document.getElementById('mobno').value
				+ '&website='
				+ document.getElementById('website').value
				+ '&description='
				+ document.getElementById('description').value;
	return params;
}

// Feedback
function feedback()
{
	if (document.getElementById('memberName').value.length==0
	|| document.getElementById('telNo').value.length==0)
	{
		alert("You must supply a contact name and telephone number");
		return;
	}
	
	if (document.getElementById('email').value.length>0
	&& document.getElementById('email').value.indexOf('@')<0)
	{
		alert("You have not supplied a valid email address");
		return;
	}
	
	var params = "name=" + document.getElementById('memberName').value
	+			"&telNo=" + document.getElementById('telNo').value
	+			"&email=" + document.getElementById('email').value
	+			"&feedback="+document.getElementById('feedback').value;
	
	openPageWithPost('php/sendFeedback.php',params);
}