
	// ******************************************
	// FUNCTIONALITY FOR MATERIAL AND IMAGE LINKS
	// ******************************************
	
	// Initiate background update of given material list
	// Retrieves links for given wcmobject and calls resultupdate for given linklistid
	function retrieveMaterialLinks(objectId, linklistid, listtype) {
		var linkList = document.getElementById(linklistid);
		linkList.innerHTML = '<ul><li>updating</li></ul>';
		sendJsonRequest('http://www.laurea.fi/internet/services/linklist/'+objectId+'/'+listtype, '', 'get', updateMaterialLinks, linkList);
	}

	// Callback for updating material links in given linklist.
	function updateMaterialLinks(result,linklist){

		var updatedHTML = '';
		for(i in result.links){
			link=result.links[i];
			
			if(link.url && link.filename) {

				var urltext=link.url;
				var titletext=link.filename;
				var typetext = link.mimetype;
				var sizetext = link.size;
				
				// Append innerHtml
				updatedHTML+='<li>';
				updatedHTML+='<a target="new" href="'+urltext+'">'+titletext+'</a><br/>';
				updatedHTML+='<span class="infotext infotext_url">'+typetext+', '+sizetext+' tavua</span>';
				updatedHTML+='</li>';
			}
		}
		linklist.innerHTML = updatedHTML;

	}



	// ********************************
	// FUNCTIONALITY FOR EXTERNAL LINKS
	// ********************************


	// Initiate background update of given linklist
	// Retrieves links for given wcmobject and calls resultupdate for given linklistid
	function retrieveLinks(objectId, linklistid) {
		sendJsonRequest('http://www.laurea.fi/internet/services/linklist/'+objectId+'/links', '', 'get', updateLinks, document.getElementById(linklistid));
	}

	// Callback for updating links in given linklist.
	function updateLinks(result,linklist){


		while (linklist.hasChildNodes())
		{
		  linklist.removeChild(linklist.firstChild);
		}

		for(i in result.links){
			link=result.links[i];
			
			if(link.externalurl && link.subtitle) {
				// Text element for URL
				var urltext=document.createTextNode(link.externalurl);
				
				// Text element for Subtitle
				var subtitletext=document.createTextNode(link.subtitle);

				// Linefeed element
				var br = document.createElement('br');

				// Delete button span element
				var deleteSpan=document.createElement('span');
				deleteSpan.appendChild(document.createTextNode('[X]'));

	            // Delete button Anchor element
				var deleteAnchor=document.createElement('a');
				deleteAnchor.href='#';
				deleteAnchor.className='btn btn_del';

				// This is Haxxoring at its best ;)
				deleteAnchor.owneroid=result.headers.owneroid;
				deleteAnchor.linkoid=link.linkoid;
				deleteAnchor.listtype=linklist.id;
				deleteAnchor.onclick = function(){
					removeLinkForObject(this.owneroid,this.linkoid,this.listtype);
				};
				
				// URL Span element
				var urlSpan=document.createElement('span');
				urlSpan.className = "infotext infotext_url";
				urlSpan.appendChild(urltext);

			    // URL Anchor element
				var linkAnchor=document.createElement('a');
				linkAnchor.href=link.externalurl;
				linkAnchor.target = "new"
				linkAnchor.appendChild(subtitletext);

				// List Item eleement
				var li=document.createElement('li');
				li.appendChild(deleteAnchor);
				li.appendChild(linkAnchor);
				li.appendChild(br);
				li.appendChild(urlSpan);
				
				// Append the into list
				linklist.appendChild(li);
			}
		}

	}

	// Add Link for WCM Object
	// Page calls this by giving WCM object id, subtitle inputfield id, url input field id and linklist id on the page where results
	// are going to get rendered after adding the links
	function addLinkForObject(objectId, subtitlefieldid, urlfieldid, linklistid){
		var subtitlefield = document.getElementById(subtitlefieldid);
		var urlfield = document.getElementById(urlfieldid);
		var linklist = document.getElementById(linklistid);
		//var url = 'http://laurea-intra.dev.onestasolutions.com/intra_edit_services/calevents/'+objectId+'/links/create?subtitle='+escape(subtitlefield.value)+'&externalurl='+escape(urlfield.value);
		var url = 'http://www.laurea.fi/internet/services/linklist/'+objectId+'/links/create?subtitle='+encodeURIComponent(subtitlefield.value)+'&externalurl='+encodeURIComponent(urlfield.value);
		sendJsonRequest(url, '', 'put', updateLinks, document.getElementById(linklistid));
	}

	// Removes Link from WCM Object. Must state onwer of the link, actual linkc object and linklistid in UI
	function removeLinkForObject(parentObjectId, linkObjectId, linklistid){
		var url = 'http://www.laurea.fi/internet/services/linklist/'+parentObjectId+'/links/delete?oid='+linkObjectId;
		sendJsonRequest(url, '', 'DELETE', updateLinks, document.getElementById(linklistid));
	}

	// Create preview window for edited wcm object
	function preview(url) {
		myRef = window.open(url,'wcmpreview','left=20,top=20,width=800,height=600,toolbar=1,resizable=1,scrollbars=1');
	}

	// Create popup window for edited wcm object
	function popup(url) {
		myRef = window.open(url,'wcmpreview','left=20,top=20,width=600,height=600,toolbar=1,resizable=1,scrollbars=1');
	}
