var req;

/**
* Function to load the specified url
* 'callback' is executed when the response is ready
*
* author: peter@noterik.nl (based on the example on http://developer.apple.com/internet/webcontent/xmlhttpreq.html) 
* @param url The url to get
* @param callback String name of the function to execute
*/
function loadXMLDoc(url,callback) {	
    if (window.XMLHttpRequest) { // branch for native XMLHttpRequest object
        req = new XMLHttpRequest();
        req.onreadystatechange = eval(callback);
        req.open("GET", url); // Since we don't post XML documents, 'GET' is fine. 
        req.send(null);
    } 
    else if (window.ActiveXObject) { // branch for IE/Windows ActiveX version
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = eval(callback);
            req.open("GET", url); // Since we don't post XML documents, 'GET' is fine. 
            req.send();
        }
    }	
}

/**
* Function to load the specified url
* 'callback' is executed when the response is ready
*
* author: peter@noterik.nl (based on the example on http://developer.apple.com/internet/webcontent/xmlhttpreq.html) 
* @param url The url to get
* @param doc The dom document to post
* @param callback String name of the function to execute
*/
function postXMLDoc(url,doc,callback){
    if (window.XMLHttpRequest) { // branch for native XMLHttpRequest object
        req = new XMLHttpRequest();
        req.onreadystatechange = eval(callback);
        req.open("POST", url); // 'POST' sends the document as raw data as oposed to which only sends request parameters   
        req.send(doc);
    } 
    else if (window.ActiveXObject) { // branch for IE/Windows ActiveX version
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = eval(callback);
            req.open("POST", url); // 'POST' sends the document as raw data as oposed to which only sends request parameters             
            req.send(doc);
        }
    }	
}
/**
* Callback for saveLayout call
* @author: peter@noterik.nl
*/
function saveFinished(){
	if (req.readyState == 4 && req.status == 200) { 
		alert('Layout saved');
		loadXMLDoc('layout.do?method=list','loadLayouts'); // Releod layouts
	}
}

/**
* Callback for deleteLayout call
* @author: peter@noterik.nl
*/
function deleteFinished(){
	if (req.readyState == 4 && req.status == 200) { 
		//alert('Layout deleted');
		loadXMLDoc('layout.do?method=list','loadLayouts'); // Reload layouts
	}
}

/**
* Callback function for the layoutLayouts request. Adds the retrieved layouts to the
* layout select widget.
*
* @author: peter@noterik.nl
*/
function loadLayouts() { 
	if (req.readyState == 4 && req.status == 200) { 
		var selectWidget = document.forms['layoutForm'].elements['layouts'];
		var layoutOptions = selectWidget.options; // get the select widget containing the layouts
		
		var nodeList = req.responseXML.documentElement.getElementsByTagName('layout'); // Each layout is stored inside a '<layout>' element
		
		
		for(var i=0;i<layoutOptions.length;i++){
			selectWidget.remove(i);	
		}
		
		layoutOptions[0] = new Option('--- presets ---','-1');
				
		for(var i=0;i<nodeList.length;i++){ // Iterate over all layouts
			var id = nodeList.item(i).getElementsByTagName('id')[0].firstChild.data
			var name = nodeList.item(i).getElementsByTagName('name')[0].firstChild.data
			layoutOptions[i+1] = new Option(name,id); // Add a new option to the select widget
		}		
	} 
}

var myId;
var myName;

function deletePdfNode()
{	
	if (req.readyState == 4 && req.status == 200) { 
		tab = document.getElementById('pdftablebody');
		rows = tab.getElementsByTagName("TR");
				
		len = rows.length;
		
		var search = 'pdf' + myId;
		
		for(count = 0; count < len; ++count)
		{
			if(rows[count].id == search)
			{
				tab.deleteRow(count);
				break;
			}
		}
	}
}

function deletePdf(name, id) 
{
	myId = id;	

	var url;
	url = '/birth/admin/previewArticle.do?pdfDelete=';
	url += name;	
	loadXMLDoc(url, 'deletePdfNode');	
}

function deleteLinkNode()
{
	if (req.readyState == 4 && req.status == 200) { 
		tab = document.getElementById('linktablebody');
		rows = tab.getElementsByTagName("TR");
				
		len = rows.length;
		
		var search = 'link' + myId;
		
		for(count = 0; count < len; ++count)
		{
			if(rows[count].id == search)
			{
				tab.deleteRow(count);
				len = len - 1;
				break;
			}
		}
		
		//if no images left, than replace selected image by no screenshot found image
		if(len == 1)
		{
			
		}
	}		
}

function deleteLink(name, id) 
{
	myId = id;	

	var url;
	url = '/birth/admin/previewArticle.do?linkDelete=';
	url += name;	
	loadXMLDoc(url, 'deleteLinkNode');	
}

function deleteLinkAVNode()
{
	if (req.readyState == 4 && req.status == 200) { 
		tab = document.getElementById('linkavtablebody');
		rows = tab.getElementsByTagName("TR");
				
		len = rows.length;
	
		var search = 'linkav' + myId;
		
		for(count = 0; count < len; ++count)
		{
			if(rows[count].id == search)
			{
				tab.deleteRow(count);
				len = len - 1;
				break;
			}
		}
		
		//if no audiovisuals left, than replace selected audiovisual by no screenshot found image
		if(len == 1)
		{
			var im = document.getElementById('avimage');
			im.src = '/birth/images/not_available.jpg';
		}		
	}		
}

function deleteLinkAV(name, id)
{
	myId = id;
	
	var url;
	url = '/birth/admin/previewArticle.do?linkavDelete=';
	url += name;
	loadXMLDoc(url, 'deleteLinkAVNode');
}

function deleteImageNode()
{
	if (req.readyState == 4 && req.status == 200) { 
		tab = document.getElementById('imagetablebody');
		rows = tab.getElementsByTagName("TR");
				
		len = rows.length;		
		
		var search = 'image' + myId;
		
		for(count = 0; count < len; ++count)
		{
			if(rows[count].id == search)
			{
				tab.deleteRow(count);
				len = len - 1;				
				break;
			}
		}
		
		//show no image found, 1 means that only the table header is visible
		if(len == 1)				
		{
			var im = document.getElementById('articleimage');
			im.src = '/birth/images/not_available.jpg';
		}
	}		
}

function deleteImage(name, id) 
{
	myId = id;

	var url;
	url = '/birth/admin/previewArticle.do?imageDelete=';
	url += name;	
	loadXMLDoc(url, 'deleteImageNode');	
}

function nowShowImage()
{	
	if (req.readyState == 4 && req.status == 200) { 

		var im = document.getElementById('articleimage');
		
		var url = '/birth/imageByteArrayDownload.do?identifier=';
		url += myId;	

		im.src = url;
	}
}

function showImage(name, id)
{	
	myName = name;
	myId = id;

	var url;
	url = '/birth/admin/previewArticle.do?showImage=';
	url += name;	
	loadXMLDoc(url, 'nowShowImage');	
}

function showAVImage(name, id)
{
	var im = document.getElementById('avimage');
	
	if(name != '') 
	{		
		var url = '/birth/assetImage.do?asset='
		url += id;
		url += '&image=';
		url += name;
		
		im.src = url;
	}
	else 
	{
		im.src = '/birth/images/not_available.jpg';
	}
}

function changeMyImage(htmlImageId, imageUrl)
{	
	var im = document.getElementById(htmlImageId);	
	
	if(imageUrl == '') 
	{
		im.width = 0;
		im.height = 0;
	}
	
	else 
	{
		im.src = imageUrl;	
		im.width = 450;
		im.height = 450;
	}	
}

function saveText()
{		
	var lang = document.getElementById('lang');
		
	updateRTE('rte1');
	var txt = readRichText('rte1');
		
	if(lang.selectedIndex == 0)
	{		
		document.getElementById('hiddenlangen').value = txt;
	}
	else if(lang.selectedIndex == 1)
	{	
		document.getElementById('hiddenlangne').value = txt;		
	}
	else if(lang.selectedIndex == 2)
	{	
		document.getElementById('hiddenlangde').value = txt;		
	}
	else if(lang.selectedIndex == 3)
	{	
		document.getElementById('hiddenlangfr').value = txt;		
	}	
}

function selectLanguage()
{	
	var lang = document.getElementById('lang');
		
	if(lang.selectedIndex == 0)
	{
		writeRichTextSimple('rte1', document.getElementById('hiddenlangen').value);	
		updateRTE('rte1');		
	}
	else if(lang.selectedIndex == 1)
	{
		writeRichTextSimple('rte1', document.getElementById('hiddenlangne').value);
		updateRTE('rte1');	
	}
	else if(lang.selectedIndex == 2)
	{
		writeRichTextSimple('rte1', document.getElementById('hiddenlangde').value);
		updateRTE('rte1');	
	}
	else if(lang.selectedIndex == 3)
	{		
		writeRichTextSimple('rte1', document.getElementById('hiddenlangfr').value);
		updateRTE('rte1');	
	}		
}

