var publishingHttp = null;

var isRrDebug = false;

function initEdittingPages(){
	
	var xml = "Hi";
	
	var publishingURL = ajaxurl + "/EditorLandingHandler?xml="+xml;
	
	//alert(publishingURL);

	publishingHttp = createXmlHttpRequestObject();

	publishingHttp.open("POST", publishingURL );

	publishingHttp.onreadystatechange = handleInitEdittingPages;		
	
	publishingHttp.send(null); 

}

function displayChangeExp(pageId, isDisplayed)
{
	var changeExp = document.getElementById(pageId);
	var trHolder = document.getElementById('tr_' + pageId);
	if (changeExp && trHolder)
	{
		if (isDisplayed)
		{		
			changeExp.style.left = trHolder.style.left;
			changeExp.style.top = trHolder.style.top + trHolder.style.height;	
			changeExp.style.display = "block";		
		}	
		else
		{
			changeExp.style.display = "none";	
		}
	}
}

function handleInitEdittingPages(){

   	if (publishingHttp.readyState == 4) {								
	
		// Check that a successful server response was received
		if (publishingHttp.status == 200) {
			try{                                    
			}
			catch(err){
				alert("XML Parser error." );		
			}						
		}
	}

}

function generatePublishingXML(pageId, pageURI, action, reason, bug_id)
{
		reason = reason.replace(/&/g, '(amp)').replace(/</g, '(lt)').replace(/>/g,'(gt)');	
		var xml = "";
		xml += "<AjaxPublishingParameterRequest>\n";
		xml += "	<ptb_pageId>" + pageId + "</ptb_pageId>\n";
		xml += "	<ptb_pageURI>" + pageURI + "</ptb_pageURI>\n";		
	    xml += "	<ptb_action>" + action + "</ptb_action>\n";
		xml += "	<ptb_reason><![CDATA[" + reason + "]]></ptb_reason>\n";
	    xml += "	<ptb_bugId>" + bug_id + "</ptb_bugId>\n";    	    	    
		xml += "</AjaxPublishingParameterRequest>\n";
		return xml;	
}

function ptb_submitRequest(pageId, pageURI, action, reason, bug_id) {
	// Send to the backend handler to update the table.
	//	alert('pageId: ' + pageId);
	//	alert('action: ' + action);
	//	alert('reason: ' + reason);
	//	alert('bug_id: ' + bug_id);
	
	var xml = generatePublishingXML(pageId, pageURI, action, reason, bug_id);
	
	var publishingURL = ajaxurl + "/PublishingToolbarHandler";
	var params = "xml=" + xml;
	//alert(publishingURL+"\n"+params);	
	
	publishingHttp = createXmlHttpRequestObject();

	publishingHttp.open("POST", publishingURL, true);

	publishingHttp.onreadystatechange = handlePublishingResult;			
	    
    	publishingHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    	publishingHttp.setRequestHeader("Content-length", params.length);
    	publishingHttp.setRequestHeader("Connection", "close");	
	
	publishingHttp.send(params);		
}

function handlePublishingResult(){

   	if (publishingHttp.readyState == 4) {								
	
		// Check that a successful server response was received
		if (publishingHttp.status == 200) {
			var response = createResponseXML(publishingHttp.responseText);					
			//alert(publishingHttp.responseText);
			try{                                    
				var error = response.getElementsByTagName("Error").length;
				if(error > 0){
				}
				else
				{
					var ptbActionResult = response.getElementsByTagName("PtbActionResult")[0].firstChild.nodeValue;
					var ptbPageReload = response.getElementsByTagName("PtbPageReload")[0].firstChild.nodeValue;
					var ptbPageApproved = response.getElementsByTagName("PtbPageApproved")[0].firstChild.nodeValue;
					var PtbPageWaitingSize = response.getElementsByTagName("PtbPageWaitingSize")[0].firstChild.nodeValue;
					var waitingApprovalStr = "";
					for (var i=0; i<PtbPageWaitingSize; i++) {
						var pageURI = response.getElementsByTagName("PtbPageWaiting"+i)[0].firstChild.nodeValue;
						waitingApprovalStr += "      - "+pageURI+"\n";
					}

					if (ptbActionResult == 'true')
					{
						if (ptbPageReload == 'true')
						{
							window.location.reload();							
						}
						else
						{
							window.location.replace('/bps/content/publishing/index.html');
						}
					}
					else
					{
						if (ptbPageApproved == 'true') {
							alert('Approved successfully!\nSource could not be published util these below are approved:\n'+waitingApprovalStr);
							window.location.replace('/bps/content/publishing/index.html');
						} else {
							var err = response.getElementsByTagName("PtbErrorString")[0].firstChild.nodeValue;
							alert('Pulishing request failed!\n'+err);
						}
					}
				}	
			}
			catch(err){
				alert("XML Parser error." );		
			}						
		}
	}

}

function displayChangeExp(pageId, isDisplayed, this1)
{
	var changeExp = document.getElementById(pageId);
	if (changeExp)
	{
		if (isDisplayed)
		{		
			changeExp.style.pixelTop = parseInt(findPosY(this1)+ 20);
			changeExp.style.pixelLeft = parseInt(findPosX(this1) - 5);
			changeExp.style.display = "block";
		}	
		else
		{
			changeExp.style.display = "none";	
		}
	}
}
