function addRandomSeed(url){
   var rnd = Math.random();

   return url +"&rnd=" + rnd;
}

function getRequestObject(){
	var http_request = false;
    if (window.XMLHttpRequest) {
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
        }
    } else if (window.ActiveXObject) {
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }
    if (!http_request) {
        alert('Giving up :( Cannot create an XMLHTTP instance');
        return false;
    }
    return http_request;
}

function makeDCRequest(url,pid) {
	document.getElementById('activePID').value=pid;
	http_request = getRequestObject();
    http_request.onreadystatechange = function() { alertDCContents(http_request); };
    http_request.open('GET', addRandomSeed(url+"?pid="+pid+"&oid="+document.getElementById('objectId').value), true);
    http_request.send(null);
}

function makeCollectionRequest(url,pid,operation,o) {
    http_request = getRequestObject();
    http_request.onreadystatechange = function() { alertCollectionContents(http_request,o); };
    http_request.open('GET', addRandomSeed(url+"?pid="+pid+"&operation="+operation+"&oid="+o.options[o.selectedIndex].value) , true);
    http_request.send(null);
}

function makeEmailRequest(url,prefilled,parent,prefix) {
	http_request = getRequestObject();
    http_request.onreadystatechange = function() { alertEmailContents(http_request,parent); };

    http_request.open('POST', url , true);
    http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

    http_request.send('to=' + escape(document.getElementById(prefix+'.recipient').value) +
    	'&subject=' + escape(document.getElementById(prefix+'.subject').value) +
    	'&comments=' +
    	escape(document.getElementById(prefix+'.comments').value)
    	+
    	'&pid=' + document.getElementById('activePID').value +
    	'&contactUs=' + prefilled);
}

function alertDCContents(http_request) {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
        	var xmldoc = http_request.responseXML;
        	if (xmldoc.getElementsByTagName('title').item(0).hasChildNodes())
        		{
        		document.getElementById('preview_title').innerHTML=xmldoc.getElementsByTagName('title').item(0).firstChild.data;
        		}
        	else
        		{
        		document.getElementById('preview_title').innerHTML="";
        		}
        	if (xmldoc.getElementsByTagName('description').item(0).hasChildNodes())
        		{
        		document.getElementById('preview_description').innerHTML=xmldoc.getElementsByTagName('description').item(0).firstChild.data;
        		}
        	else
        		{
        		document.getElementById('preview_description').innerHTML="";
        		}
        	//document.getElementById('preview_citation').innerHTML=xmldoc.getElementsByTagName('citation').item(0).firstChild.data;
        	if (xmldoc.getElementsByTagName('contentModel').item(0).hasChildNodes())
        		{
					var contentModel = xmldoc.getElementsByTagName('contentModel').item(0).firstChild.data;
	
					if('CrossroadsVideo' == contentModel){
						document.getElementById('playerViewOpenVideo').style.display='';
					}else{
						document.getElementById('playerViewOpenVideo').style.display='none';
					}
	
					if('CrossroadsText' == contentModel){
						document.getElementById('playerViewOpenText').style.display='';
					}else{
						document.getElementById('playerViewOpenText').style.display='none';
					}
	
					if('CrossroadsBook' == contentModel){
						document.getElementById('playerViewOpenBook').style.display='';
					}else{
						document.getElementById('playerViewOpenBook').style.display='none';
					}
				
					if('CrossroadsImage' == contentModel){
						
						document.getElementById('playerViewOpenImage').style.display='';
					}else{
						document.getElementById('playerViewOpenImage').style.display='none';
					}

			        if('CrossroadsNewspaperArticle' == contentModel){
						document.getElementById('playerViewOpenArticle').style.display='';
					}else{
						document.getElementById('playerViewOpenArticle').style.display='none';
					}
				}
			if (xmldoc.getElementsByTagName('imagePath').item(0).hasChildNodes())
				{
	        	var imgVar = xmldoc.getElementsByTagName('imagePath').item(0).firstChild.data;
	        	if("" == imgVar)
	        		{
	        		document.getElementById('largeImage').src=defaultImagePath;
	        		}
	        	else
	        		{
	        		document.getElementById('largeImage').src=imgVar;
	        		}
	        	}
	        else
	        	{
	        	document.getElementById('largeImage').src=defaultImagePath;
	        	}
        } else {
            alert('There was a problem with the request.');
            document.getElementById('largeImage').src=defaultImagePath;
            document.getElementById('preview_title').innerHTML="Object Title Unavailable";
            document.getElementById('preview_description').innerHTML="Object Unavailable for Display";
        }
    }
}

function alertEmailContents(http_request,parent) {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
        	var xmldoc = http_request.responseXML;
        	var root_node = xmldoc.getElementsByTagName('root').item(0);
        	var status = root_node.getElementsByTagName('status').item(0).firstChild.data;
        	if("success" == status){
        		document.getElementById(parent).style.display='none';
        	}else{
        		alert(mail_send_failed);
        		try{
        			document.getElementById('subject-error').innerHTML=xmldoc.getElementsByTagName('subject-error').item(0).firstChild.data;
        		}catch(e){}
        		try{
        			document.getElementById('recipient-error').innerHTML=xmldoc.getElementsByTagName('recipient-error').item(0).firstChild.data;
        		}catch(e){}
        		try{
        			document.getElementById('comment-error').innerHTML=xmldoc.getElementsByTagName('comment-error').item(0).firstChild.data;
        		}catch(e){}
        	}
        } else {
            alert('There was a problem with the request.');
        }
    }
}

function alertCollectionContents(http_request,o) {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
        	o.options[0].selected=true;
        	var xmldoc = http_request.responseXML;
        	var root_node = xmldoc.getElementsByTagName('root').item(0);
        	var status = root_node.getElementsByTagName('status').item(0).firstChild.data;
        	var new_id = root_node.getElementsByTagName('new-id').item(0).firstChild.data;
        	if(null != new_id){
				document.getElementById('new_collection_option').value = new_id;
        	}
        	if("success" == status){
        		alert(add_collection_success);
        	}else{
        		alert(add_collection_failure);
        	}

        } else {
            alert('There was a problem with the request.');
        }
    }
}


