function ajaxRead(file){
   
   var xmlObj = null;
   
   if(window.XMLHttpRequest){
      xmlObj = new XMLHttpRequest();
   } else if(window.ActiveXObject){
      xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
   } else {
      return;
   }
   
   xmlObj.onreadystatechange = function(){
	   if(xmlObj.readyState == 4){	   		
//	   		alert(xmlObj.responseText); // debugging	   		
	   		processXML(xmlObj.responseXML);
	   } else {
	   		document.getElementById('dataArea').innerHTML = 'Loading data External Laboratory data...';
	   }
   }
   xmlObj.open ('GET', file, true);
   xmlObj.send ('');
}
function processXML(obj){
   var dataArray = obj.getElementsByTagName('extlab')[0].childNodes;
   var dataArrayLen = dataArray.length;
   
   var insertData = '<table border="0" cellspacing="0" cellpadding="3">'  
   + '<tr><td width="100">Street Address:</td><td>' + dataArray[0].getAttribute('street') + '</td></tr>'
   + '<tr><td width="100">Suburb/Town:</td><td>' + dataArray[0].getAttribute('suburb') + '</td></tr>'
   + '<tr><td width="100">State:</td><td>' + dataArray[0].getAttribute('state') + '</td></tr>'
   + '<tr><td width="100">Postcode:</td><td>' + dataArray[0].getAttribute('pCode') + '</td></tr>'
   + '<tr><td width="100">Country:</td><td>' + dataArray[0].getAttribute('country') + '</td></tr>'
   + '<tr><td width="100">Contact person:</td><td>' + dataArray[0].getAttribute('contact') + '</td></tr>'
   + '<tr><td width="100">Phone:</td><td>' + dataArray[0].getAttribute('phone') + '</td></tr>'
   + '<tr><td width="100">Fax:</td><td>' + dataArray[0].getAttribute('fax') + '</td></tr>'
   + '<tr><td width="100">Accreditation No.:</td><td>' + dataArray[0].getAttribute('accrNum') + '</td></tr>'
   + '<tr><td width="100">External Laboratory code:</td><td>' + dataArray[0].getAttribute('labCode') + '</td></tr>'
   + '<tr><td width="100">Web:</td><td><a href="' + dataArray[0].getAttribute('link') + '">' + dataArray[0].getAttribute('linkText') + '</a></td></tr>'
   + '</table>';   
   
   document.getElementById('dataArea').innerHTML = insertData;
}

function ajaxEditExtLab(file){
   
   var xmlObj = null;
   
   if(window.XMLHttpRequest){
      xmlObj = new XMLHttpRequest();
   } else if(window.ActiveXObject){
      xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
   } else {
      return;
   }
   
   xmlObj.onreadystatechange = function(){
	   if(xmlObj.readyState == 4){	   		
	   		//alert(xmlObj.responseText); // debugging
	   		processXMLForExtLabEdit(xmlObj.responseXML);
	   } else {
	   		document.getElementById('dataArea').innerHTML = 'Loading External Laboratory data...';
	   }
   }
   xmlObj.open ('GET', file, true);
   xmlObj.send ('');
}

function processXMLForExtLabEdit(obj){
   var dataArray = obj.getElementsByTagName('extlab')[0].childNodes;
   var dataArrayLen = dataArray.length;
   
   // Initialise date seletors
   // Day
   var day_options = '<option value="">';
   for (var i=1;i<32;i++) {
   		day_options += "<option name=" + i + ">" + i + "</option>";
   }
   // Month
   var month_options = '<option value="">';
   for (var i=1;i<13;i++) {
   		month_options += "<option name=" + i + ">" + i + "</option>";
   }
   // Year
   var d = new Date();
   curr_year = d.getFullYear();
   var year_options = '<option value="">';
   for (var i=curr_year;i<(curr_year + 11);i++) {
   		year_options += "<option name=" + i + ">" + i + "</option>";
   }
   
   var insertData = '<h5>Laboratory name</h5><input type="text" name="ref_update_name" size="50" maxlength="100" value="' + dataArray[0].getAttribute('name') + '" />'
   + '<h5>Street address</h5><textarea id="streetAddr" name="street" rows="2" cols="50">' + dataArray[0].getAttribute('street') + '</textarea>'
   + '<h5>Suburb/Town</h5><input type="text" name="suburb" size="50" maxlength="50" value="' + dataArray[0].getAttribute('suburb') + '" />'
   + '<h5>State</h5><select name="state">'
   + '<option value="' + dataArray[0].getAttribute('state') + '">' + dataArray[0].getAttribute('state') + '</option>'
   + '<option value="ACT">ACT</option>'
   + '<option value="NSW">NSW</option>'
   + '<option value="NT">NT</option>'
   + '<option value="QLD">QLD</option>'
   + '<option value="SA">SA</option>'
   + '<option value="TAS">TAS</option>'	
   + '<option value="VIC">VIC</option>'
   + '<option value="WA">WA</option>'
   + '<option value="Other">Other</option>'
   + '</select>'
   + '<h5>Postcode</h5><input type="text" name="p_code" size="50" maxlength="50" value="' + dataArray[0].getAttribute('pCode') + '" />'
   + '<h5>Country</h5><input type="text" name="country" size="50" maxlength="50" value="' + dataArray[0].getAttribute('country') + '" />'
   + '<h5>Contact person</h5><input type="text" name="contact" size="50" maxlength="40" value="' + dataArray[0].getAttribute('contact') + '" />'
   + '<h5>Phone</h5><input type="text" name="phone" size="50" maxlength="50" value="' + dataArray[0].getAttribute('phone') + '" />'
   + '<h5>Fax</h5><input type="text" name="fax" size="50" maxlength="50" value="' + dataArray[0].getAttribute('fax') + '" />'
   + '<h5>Accreditation Number</h5><input type="text" name="accred_no" size="50" maxlength="50" value="' + dataArray[0].getAttribute('accrNum') + '" />'
   + '<h5>Accreditation Expiry</h5>'
   + '<select name="acc_exp_day"><option value="' + dataArray[0].getAttribute('accrExpDay') + '">' + dataArray[0].getAttribute('accrExpDay') + day_options + '</select>&nbsp;'
   + '<select name="acc_exp_month"><option value="' + dataArray[0].getAttribute('accrExpMonth') + '">' + dataArray[0].getAttribute('accrExpMonth') + month_options + '</select>&nbsp;'
   + '<select name="acc_exp_year"><option value="' + dataArray[0].getAttribute('accrExpYear') + '">' + dataArray[0].getAttribute('accrExpYear') + year_options + '</select>'
   + '<h5>External Laboratory code</h5><input type="text" name="lab_code" size="50" maxlength="16" value="' + dataArray[0].getAttribute('labCode') + '" />'
   + '<h5>Hyperlink</h5><input type="text" name="hlink" size="50" maxlength="100" value="' + dataArray[0].getAttribute('link') + '" /><p>(Required format: http://www.domain.com/)'
   + '<h5>Hyperlink Text</h5><input type="text" name="hlink_text" size="50" maxlength="100" value="' + dataArray[0].getAttribute('linkText') + '" /><br />'
   + '<p><input type="submit" name="update" value="Update Reference Laboratory" /></p>'; 
   
   document.getElementById('dataArea').innerHTML = insertData;
   ReplaceAllTextAreas();
}

function ajaxRefInt(file){
	   
	   var xmlObj = null;
	   
	   if(window.XMLHttpRequest){
	      xmlObj = new XMLHttpRequest();
	   } else if(window.ActiveXObject){
	      xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
	   } else {
	      return;
	   }
	   
	   xmlObj.onreadystatechange = function(){
		   if(xmlObj.readyState == 4){	   		
		   		//alert(xmlObj.responseText); // debugging	   		
		   		processXMLforRefInt(xmlObj.responseXML);
		   } else {
		   		document.getElementById('refIntData').innerHTML = 'Loading Reference Interval data...';
		   }
	   }
	   xmlObj.open ('GET', file, true);
	   xmlObj.send ('');
	}
function processXMLforRefInt(obj){
   var dataArray = obj.getElementsByTagName('refint')[0].childNodes;
   var dataArrayLen = dataArray.length;
   
   var insertData = dataArray[0].getAttribute('content');   
   
   document.getElementById('refIntData').innerHTML = insertData;
}

function ajaxExtractContImage(file){
   
   var xmlObj = null;
   
   if(window.XMLHttpRequest){
      xmlObj = new XMLHttpRequest();
   } else if(window.ActiveXObject){
      xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
   } else {
      return;
   }
   
   xmlObj.onreadystatechange = function(){
	   if(xmlObj.readyState == 4){	   		
	   		//alert(xmlObj.responseText); // debugging
	   		processXMLForContImage(xmlObj.responseXML);
	   } else {
	   		document.getElementById('dataArea').innerHTML = 'Checking image association...';
	   }
   }
   xmlObj.open ('GET', file, true);
   xmlObj.send ('');
}

function processXMLForContImage(obj) {

   var dataArray = obj.getElementsByTagName('container')[0].childNodes;
   var dataArrayLen = dataArray.length;
   
   var image = '';
   var filename = 'An image is currently not associated with this Container Type';
   
   if ( dataArray[0].getAttribute('image').length > 0 ) {
   		image = '<img src="' + dataArray[0].getAttribute('image') + '" />';
   		filename = '[ Filename: ' + dataArray[0].getAttribute('filename') + ' ]';
   }
   
   var insertData = '<h3>Current Image</h3>'
   + image + '<br />'
   + '<p>' + filename + '</p><br />';
   
   document.getElementById('dataArea').innerHTML = insertData;
   
}
