// JavaScript Document




function positionPopin( e ){
	var vp = $('objectHistory_viewPane1');
	
	var op = vp.getOffsetParent();
	var o = op.positionedOffset();
	
	var mouseX;
	var mouseY;
	mouseX =  Event.pointerX(e) - o.left - 100;
    mouseY = Event.pointerY(e) - o.top + 10;
	
	$('objectHistory_viewPane1').setStyle( { left:mouseX+'px', top:mouseY+'px' } );

}


function historyPopin(html){
	$('objectHistory_viewPane1').show();
	$('pageContent').update(html);
	
	
	//$('objectHistory_viewPane1').setStyle ( { position:'absolute', zindex:10 } );

}

function displayVersionDiff_return(  objectClassName,parentGUID , versionNumber , xml){
	var page;

	 jQuery(xml).find("xmlresponse").each( function () {
		page = jQuery("message" , this ).text();
		historyPopin( page );												  });
	 
	
}

function displayVersion( e,objectClassName,parentGUID , versionNumber ){
	//positionPopin( e );
	  jQuery.ajax({
   type: "GET",
   url: ajaxH,
   data: "amethod=objectHistoryVersion&objectClassName="+objectClassName+"&parentGUID="+parentGUID+"&versionNumber="+versionNumber,
   dataType: "xml",
   success: function(xml,r){ 
	   	 jQuery(xml).find("xmlresponse").each( function () {
				historyPopin(  jQuery("message" , this ).text()) });
   }
 });	
}


function showHistory( id,objectClassName,parentGUID ){
	
	//Compare to | View | <a href="" id="">Change to	
				//?amethod=objectHistoryList&objectClassName=page&parentGUID=495
				//$o = new //showHistory( id,objectClassName,versionNumber,parentGUID ){



/*	new Ajax.Request(ajaxH+'?amethod=objectHistoryList&objectClassName=page&parentGUID=495',
  {
    method:'get',
    onSuccess: function(transport){
      var response = transport.responseText || "no response text";
      showHistory_success( id,response);
    },
    onFailure: function(){ alert('Something went wrong...') }
  });
	*/
	
//	jQ.ajax({ type: "GET", url: ajaxH, data: '?amethod=objectHistoryList&objectClassName=page&parentGUID=495', dataType: "xml", success: showHistory_success(id,xml){
 jQuery.noConflict();
  jQuery.ajax({
   type: "GET",
   url: ajaxH,
   data: "amethod=objectHistoryList&objectClassName="+objectClassName+"&parentGUID="+parentGUID+"&tDiv="+id,
   dataType: "xml",
   success: function(xml){ showHistory_success(id,xml); }
 });

																																							 
}

function displayVersionDiff( e,objectClassName,parentGUID , versionNumber ){
		//positionPopin( e );
	  jQuery.ajax({
   type: "GET",
   url: ajaxH,
   data: "amethod=objectHistoryDiff&objectClassName="+objectClassName+"&parentGUID="+parentGUID+"&versionNumber="+versionNumber,
   dataType: "xml",
   success: function(xml){ displayVersionDiff_return(  objectClassName,parentGUID , versionNumber , xml ); }
 });	
}



function revertToVersion( objectClassName,parentGUID , versionNumber ){
	  jQuery.ajax({
   type: "GET",
   url: ajaxH,
   data: "amethod=objectHistoryRevert&objectClassName="+objectClassName+"&parentGUID="+parentGUID+"&versionNumber="+versionNumber,
   dataType: "xml",
   success: function(xml){ revertToVersion_return( objectClassName,parentGUID , versionNumber , xml ); }
 });	
}

function revertToVersion_return( objectClassName,parentGUID , versionNumber , xml ){
	window.location.href=window.location.href;	
}

function showHistory_success( id,  response ){
	//$(id).innerHTML = "WTF2";
	
	var t = document.createElement('table');
	t.id = 'tt1';
	t.className = 'historyList';
	var tr = document.createElement('tr');
	
	var th = document.createElement('th');
	th.innerHTML = "Version";
	tr.appendChild(th)
	
	 th = document.createElement('th');
	th.innerHTML = "Date Modified";
	tr.appendChild(th)

	 th = document.createElement('th');
	th.innerHTML = "Modified by";
	tr.appendChild(th)

 	th = document.createElement('th');
	th.innerHTML = "";
	tr.appendChild(th)
	
	 th = document.createElement('th');
	th.innerHTML = "";
	tr.appendChild(th)
	
	
	 th = document.createElement('th');
	th.innerHTML = "";
	tr.appendChild(th)

	t.appendChild( 	tr ) 
	
	 jQuery(response).find("version").each( function () {
		var tr = document.createElement('tr');
		var versionNumber = jQuery("versionNumber" , this ).text();
		var objectClassName = jQuery("objectClassName" , this ).text();
		var parentGUID = jQuery("parentGUID" , this ).text();
		var td = document.createElement('td');
		td.innerHTML =  versionNumber;
		tr.appendChild(td);
		
		td = document.createElement('td');
		td.innerHTML =  jQuery("dateStored" , this ).text();
		tr.appendChild(td);
		
		td = document.createElement('td');
		td.innerHTML =  jQuery("username" , this ).text();
		tr.appendChild(td);

		var lnk;

		td = document.createElement('td');
		lnk = document.createElement('a');
		lnk.appendChild(  document.createTextNode("View"));
		lnk.id = "lnk_view_"+versionNumber;
		lnk.href="#view_"+versionNumber;
		Event.observe(lnk, 'click', function(o) {
			displayVersion( o,objectClassName,parentGUID , versionNumber );
		});
						
		td.appendChild( lnk );
		tr.appendChild(td);
		
		td = document.createElement('td');
		lnk = document.createElement('a');
		lnk.appendChild(  document.createTextNode("Compare versions"));
		lnk.id = "lnk_compare_"+versionNumber;
		lnk.href="#compare_"+versionNumber;
		Event.observe(lnk, 'click', function(o) {
			displayVersionDiff( o,objectClassName,parentGUID , versionNumber );
		});
						
		td.appendChild( lnk );
		tr.appendChild(td);
		tr.appendChild(td);
		
		td = document.createElement('td');
		lnk = document.createElement('a');
		lnk.appendChild(  document.createTextNode("Revert to Version"));
		lnk.id = "lnk_revert_"+versionNumber;
		lnk.href="#revert_"+versionNumber;
		Event.observe(lnk, 'click', function() {
			if( confirm('This will revert to the selected version, any unsaved changes will be lost') ){
				revertToVersion( objectClassName,parentGUID , versionNumber );
			}
		});
						
		td.appendChild( lnk );
		tr.appendChild(td);
		
		t.appendChild( 	tr ) ;
      });
	
		var viewPane = document.createElement('div');
		viewPane.id = 'objectHistory_viewPane1';
		viewPane.className = 'objectHistory_viewPane';
		
		var tb = document.createElement('div');
		tb.className = 'titleBar';
		
		lnk = document.createElement('a');
		lnk.appendChild(  document.createTextNode("Close"));
		lnk.id = "lnk_close";
		lnk.className = "closeBox";
		lnk.href="#close";
		Event.observe(lnk, 'click', function() {
			$('objectHistory_viewPane1').hide();
		});
						
		tb.appendChild( lnk );
		
		
		
		viewPane.appendChild(tb)
		
		var pc = document.createElement('div');
		pc.id = "pageContent";
		viewPane.appendChild( pc );
		
		document.body.appendChild( viewPane);
		
		
		
		$(viewPane.id ).hide();
		
		
	  $(id).appendChild( t );
}