    var http_request = false;
    var myfunc;
// AJAX FUNCTIONS //
    function makeRequest(url, parameters, func) {
        http_request = false;
        myfunc = func;
        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            http_request = new XMLHttpRequest();
            //if (http_request.overrideMimeType) {
             //   http_request.overrideMimeType('text/xml');
                // See note below about this line
            //}
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!http_request) {
            alert('AJAX - Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        
      http_request.onreadystatechange = alertContents;
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters);
      
    }

    function alertContents() {

        if (http_request.readyState == 4) {
            if(http_request.status && http_request.status == 200) {
                // Call return function
               myfunc(http_request.responseText);   
                                            
            } else {
                alert(http_request);
                alert(http_request.status);
                alert('There is a problem with AJAX, please contact support.');
                close_infowin();
            }
        }
    }
// END OF AJAX FUNCTIONS //

// CHECK VALID EMAIL //
function isEmailAddress (string) {
            var addressPattern = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
            return addressPattern.test(string);
}

// Check Numbers if Telephone Number Display Best Contact Time option //
function check_num(obj){
    
    var tel = obj.value;
    tel = tel.replace(/[^0-9]/g, "");
    
    if(obj.value != tel){
          obj.value = tel;
    }
           
           
    if(obj.name == "telephone"){           
        if(obj.value != ""){
            document.getElementById('btime').style.display='block';
        }        
        else{
            document.getElementById('btime').style.display='none';        
        }
    }
    
}   



//Check Work Details //
function check_workdets(a,id){
    
    if(a.value == "Other"){
        document.getElementById('wother' + id).style.display='block';
    }
    else{
        document.getElementById('wother' + id).style.display='none';        
    }
    
}

// Check Driving Details //
function check_driving(a,id){
    
    if(a.value == "Yes"){
        document.getElementById('drive' + id).style.display='block';
    }
    else{
        document.getElementById('drive' + id).style.display='none';        
    }
    
}

// Check Employment Details //
function check_employment(a,id){
    
    if(a.value == "Employed"){
        document.getElementById('employ' + id).style.display='block';
    }
    else{
        document.getElementById('employ' + id).style.display='none';        
    }
    
}


// Check Benefit //
function check_benefit(a){
 
    if(a.value == "Other"){
        document.getElementById('obenefit').style.display='block';
    }
    else{
        document.getElementById('obenefit').style.display='none';        
    }
    
}  

 

// Is Currency //
function isCurrency(a){
 
 //remove non-currency chars
    var val = a.value;
    
    val = val.replace(/[^0-9.,]/g, ''); // strip non-currency chars leaving comma and dot
    if(a.value != val){
        a.value = val; // replace textbox value 
    }        
    
}

// Parse Date Function //
function parseDate(value) {
 
  var date = NaN;
  var dateArray = value.split("/");
  
    var day = parseInt(dateArray[0],10);
    var month = parseInt(dateArray[1],10);
    var year = parseInt(dateArray[2],10);
   
    if (!(isNaN(day) || isNaN(month) || isNaN(year))) {
      date = new Date(year,month-1,day);

      // Verify that day, month and year are the same
      // as their original values:
      var newMonth = date.getMonth()+1;
      var newDay = date.getDate();
      var newYear = date.getFullYear();
        
      if ( (newYear != year) || (newMonth != month) ||
           (newDay != day) ) {
        date = NaN;
      }
    }
  
  return date;
}

// Make Money //
function toMoney(obj) {
    
    if(obj.value != ""){
        var mynum = parseDecimal(obj.value);        
        mynum = mynum.toFixed(2);
        obj.value = addCommas(mynum);
    }
    
}

// Check D.O.B //
function check_dob(a){
 
 //remove illegal chars
    var val = a.value;
    
    val = val.replace(/[^0-9\/]/g, ''); // strip non-currency chars leaving comma and dot
    if(a.value != val){
        a.value = val; // replace textbox value 
    }        
    
}


// Formatting routines //
function stripNonDecimal(value) {
   return value.replace(/[^0-9.]/g, "");
}

function parseDecimal(value) {
  return parseFloat(stripNonDecimal(value));
}

// add commas to currency //
function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

// Check Quote  Form //
function check_form(a){

            var msg = "";
            var msg2 = "";
            var msg3 = "";
            
            
            if(a.title1.value==""){
                msg += "Title\n";
            }

            if(a.firstname1.value==""){
                msg += "First Name\n";
            }
            
            if(a.lastname1.value==""){
                msg += "Last Name\n";
            } 
            
            if(a.homephone.value==""){
                msg += "Home Phone\n";
            }            
            
            if(a.email.value==""){
                msg += "Email\n";
            }
            else{
                if (a.email.value != "" & !isEmailAddress(a.email.value)) {
                    msg += "Invalid Email Address\n";
                }
            }            

            if(a.homephone.value==""){
                msg += "Home Phone\n";
            }
                        
            if(a.address.value==""){
                msg += "Address\n";
            }
            
            if(a.postcode.value==""){
                msg += "Post Code\n";
            }   
            
            if(a.dob1.value==""){
                msg += "D.O.B. (DD/MM/YYYY)\n";
            }                        
            else {
                if(isNaN(parseDate(a.dob1.value))){
                     msg += "D.O.B. Invalid (DD/MM/YYYY)\n";                
                }
            }
            
            if(a.smoke1.value==""){
                msg += "Smoker\n";
            }            
            
            if(a.residence1.value==""){
                msg += "Country of Residence\n";
            }
            
            if(a.nationality1.value==""){
                msg += "Nationality\n";
            } 
            
            if(a.occupation1.value==""){
                msg += "Occupation\n";
            } 
            
            if(a.workdets1.value==""){
                msg += "Work Details\n";
            }
            else{
                if(a.workdets1.value=="Other" && a.workother1.value==""){
                    msg += "Work Details, Please Specify\n";
                }
            }
            
            if(a.driving1.value==""){
                msg += "Driving Involvement\n";
            }
            else{
                if(a.driving1.value=="Yes" && a.milage1.value==""){
                    msg += "Annual Milage\n";
                }
            }
            
            if(a.employment1.value==""){
                msg += "Employment\n";
            }
            else{
                if(a.employment1.value=="Employed" && a.employer1.value==""){
                    msg += "Employer\n";
                }
            }
            
            if(a.grossincome.value==""){
                msg += "Gross Annual Income\n";
            }            
            
            // Check if errors and add person indicator
            
            if(msg != ""){
                msg = "[ Your Details ]\n\n" + msg;
            }                                
            
            
            
            if(a.benefit.value==""){
                msg3 += "Benefit Amount\n";
            }
            else {
                if(a.benefit.value=="Other" && a.benefitother.value==""){
                        msg3 += "Benefit, Please Specify\n";
                }
            }                
            
            if(a.indexlinked.value==""){
                msg3 += "Index Linked\n";
            }
            
            if(a.deferment.value==""){
                msg3 += "Deferment Period\n";
            }            
            
            if(a.term.value==""){
                msg3 += "Contract Term\n";
            }     
            
            
            if(a.information.value==""){
                msg3 += "Existing Conditions\n";
            }
            
            if(msg3 != ""){
                msg += "\n[ Policy Requirements ]\n\n" + msg3;
            } 
            
            // Check and Display Message               
                
            if(msg != ""){
                alert("Please complete the following...\n\n" + msg);
                return false;
            }
            else{
                return true;
            }

}

