function createAJAXobject()
{
 
    try{
       return new ActiveXObject("Msxml2.XMLHTTP");
     }catch(e){/* alert("Cannot create object in IE."); */}
    try{
       return new ActiveXObject("Microsoft.XMLHTTP");
     }catch(e){/* alert("Cannot create object in IE."); */}
    try{
       return new XMLHttpRequest();
     }catch(e){/* alert("Cannot create object in Mozilla."); */}
    alert("XMLHttpRequest is not supported.");
    return null;
}

function checkFile(filename) {
   
    // Set script URL to query
    var myURL = 'check_file.php?mp3_name=' + filename;   
   
    var myAJAX = createAJAXobject();
    
    myAJAX.open("get",myURL,true);
   
    myAJAX.onreadystatechange = function() {
        
        if (myAJAX.readyState < 4) {
            return;
        }
  		
        var AJAXresponse = myAJAX.responseText;
      
        if (AJAXresponse == 'success') {
            document.getElementById('queue_msg').style.display='none';
            document.getElementById('queue_place').style.display='none';
            document.getElementById('queue_place_wrapper').style.display='none';            
            document.getElementById('download_link').style.display='block';
            alert('Your MP3 is ready for download!');
        } else if (AJAXresponse == 'error') {
            document.getElementById('queue_msg').style.display='none';
            document.getElementById('queue_place').style.display='none';
            document.getElementById('queue_place_wrapper').style.display='none';            
            document.getElementById('queue_problem').style.display='block';
            alert('There was an error getting your MP3. Please try again.');            
        } else if (AJAXresponse == 'fail') {
            // Input message in element
            document.getElementById('queue_place').innerHTML='Failed to retrieve position.';
            // Make elements visible
            document.getElementById('queue_place_wrapper').style.display='block';
            document.getElementById('queue_place').style.display='inline';
            // Set function to run again in specified amount of time
            setTimeout('checkFile("' + filename + '")', 20000);
        } else {
            // Input message in element
            document.getElementById('queue_place').innerHTML=AJAXresponse;
            // Make elements visible
            document.getElementById('queue_place_wrapper').style.display='block';
            document.getElementById('queue_place').style.display='inline';
            // Set function to run again in specified amount of time
            setTimeout('checkFile("' + filename + '")', 5000);            
        }

	}
		
    myAJAX.send(null);
    
}

function makePost(post_url,form_val) {
    
    var form = new Element('form',
                        {method: 'post', action: post_url});
    
    form.insert(new Element('input',
                         {name: 'url', value: form_val, type: 'hidden'}));
    
    $(document.body).insert(form);
    
    form.submit();
    
}

function postToURL(url, values) {

    values = values || {};

    var form = createElement("form", {action: url,
                                      method: "POST",
                                      style: "display: none"});
    
    for (var property in values) {
        
        if (values.hasOwnProperty(property)) {
            
            var value = values[property];
            
            if (value instanceof Array) {
                
                for (var i = 0, l = value.length; i < l; i++) {
                    
                    form.appendChild(createElement("input", {type: "hidden",
                                                             name: property,
                                                             value: value[i]}));
                }
                
            } else {
                
                form.appendChild(createElement("input", {type: "hidden",
                                                         name: property,
                                                         value: value}));
                
            }
            
        }
        
    }
    
    document.body.appendChild(form);
    form.submit();
    document.body.removeChild(form);
    
}