// Initialise the script

// Constants
var AjaxPostToURL = "/default.aspx";
var AjaxOpenTabFromURL = "/default.aspx";

// Public variables
var AjaxHandler;
var AjaxContentPane;
var AjaxCurrentTab;

function __doPostBack(eventTarget, eventArgument) {
	if (AjaxHandler == undefined) 
	{
	    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
			theForm.__EVENTTARGET.value = eventTarget;
			theForm.__EVENTARGUMENT.value = eventArgument;
			theForm.submit();
	    }
	}
	else 
	{
		theForm.__EVENTTARGET.value = eventTarget;
		theForm.__EVENTARGUMENT.value = eventArgument;
		AjaxHandler.Refresh(theForm);
	}
}


function ArtroAjaxHandler(ContentPane) 
{
	// Initialise the object
	// Public methods
	

	function formSubmit() 
	{
	    alert("Poging om form te posten gedetecteerd");
	    AjaxHandler.Refresh();
	    return false;
	}
	
	// Properties
	AjaxContentPane = $(ContentPane);
	this.Form = theForm;
	this.ContentPane = ContentPane;
	
	// Methods
	this.Refresh = function()
	{
		try 
		{
			var url; 
			if (AjaxCurrentTab == undefined) 
			{
				url = AjaxHandler.Form.Action;
			}
			else
			{
				url = AjaxPostToURL + "?tabid=" + AjaxCurrentTab;
			}
			new Ajax.Request(url, {asynchronous:true, 
							     onComplete: function(transport) {
									try 
									{
										
										c = findDivSection(transport.responseText, AjaxContentPane.id);
										AjaxContentPane.innerHTML = c;
										AjaxContentPane.style.visibility = "visible";
									}
									catch(err) 
									{
										alert(err.message + "\n\nstart: " + start + "\n\n" + c);
									}
								 },
								 parameters:Form.serialize(AjaxHandler.Form)});
		}
		catch (err)
		{
			alert(err.message);
		}
	};
	
	this.FollowMenuLink = function(Link)
	{
		AjaxCurrentTab = Link;
		url = AjaxOpenTabFromURL + "?tabid=" + AjaxCurrentTab;
		new Ajax.Request(url, {asynchronous:true, 
							 onComplete: function(transport) {
								try 
								{
									c = findDivSection(transport.responseText, AjaxContentPane.id);
									AjaxContentPane.innerHTML = c;
									AjaxContentPane.style.visibility = "visible";
								}
								catch(err) 
								{
									alert(err.message + "\n\nstartA: " + startA + "\n\nstart: " + start + "\n\neind: " + eind + "\n\n" + c);
								}
							 }});
	};
	
	this.OpenCustomLink = function(url)
	{
		new Ajax.Request(url, {asynchronous:true, 
							 onComplete: function(transport) {
								try 
								{
									c = findDivSection(transport.responseText, AjaxContentPane.id);
									AjaxContentPane.innerHTML = c;
									AjaxContentPane.style.visibility = "visible";
								}
								catch(err) 
								{
									alert(err.message + "\n\nstartA: " + startA + "\n\nstart: " + start + "\n\neind: " + eind + "\n\n" + c);
								}
							 }});
	};
	
}



function findDivSection(html, id) 
{
	var start = html.indexOf(">", html.indexOf("<div id=\"" + id + "\"")) + 1;
	
	var strRet;
	
	var divCount = 0;
	var nextDiv;
	for (var a = start + 1; a < html.length; a++) 
	{
		nextDiv = html.indexOf("<div", a);
		
		if (html.indexOf("</div", a) > nextDiv) 
		{
			a = nextDiv + 1;
			divCount++;
		}
		else 
		{
			if (divCount == 0) 
			{
				//alert("Start: " + start + "\nEinde: " + html.indexOf("</div", a) + "\nDivCount: " + divCount + "\n\n" + html.substring(start, html.indexOf("</div", a)));
				strRet = html.substring(start, html.indexOf("</div", a));
				
				return strRet;
			}
			else
			{
				
				divCount--;
				a = html.indexOf("</div", a);
			}
		}
	}
}




