/*
	Copyright 2006 Van der Valk Internet
	Last modified by: Koen Hoorelbeke
*/

var formSubmitted = false;
var submitButtonPreloads = new Array();

// Buttons and their replacements

var submitButtonImages = [
	["http://images.valk.com/rtID/2/images/00/corporates/btn_akkoord.jpg",
	"http://images.valk.com/rtID/2/images/00/corporates/btn_akkoord_grijs.jpg"],
	
	["http://images.valk.com/rtID/2/images/00/corporates/btn_geen_ruimte.jpg",
	"http://images.valk.com/rtID/2/images/00/corporates/btn_geen_ruimte_grijs.jpg"],
	
	["http://images.valk.com/rtID/2/images/00/all/buttons/btn_versturen.gif",
	"http://images.valk.com/rtID/2/images/00/all/buttons/btn_bezig.gif"],
	
	["http://images.valk.com/rtId/2/images/00/all/buttons/btn_versturen.gif",
	"http://images.valk.com/rtId/2/images/00/all/buttons/btn_bezig.gif"],
	
	["http://images.valk.com/rtID/2/images/00/all/buttons/btn_versturen_en.gif",
	"http://images.valk.com/rtID/2/images/00/all/buttons/btn_bezig_en.gif"],
	
	["http://images.valk.com/rtId/2/images/00/all/buttons/btn_versturen_en.gif",
	"http://images.valk.com/rtId/2/images/00/all/buttons/btn_bezig_en.gif"],
	
	["http://images.valk.com/rtID/2/images/00/all/buttons/btn_versturen_de2.gif",
	"http://images.valk.com/rtID/2/images/00/all/buttons/btn_bezig.gif"],

	["http://images.valk.com/rtId/2/images/00/all/buttons/btn_versturen_de2.gif",
	"http://images.valk.com/rtId/2/images/00/all/buttons/btn_bezig.gif"]

	];

function preloadButtonImages()
{
	for (var i = submitButtonImages.length - 1; i >= 0; i--)
	{
		var img = new Image();
		img.src = submitButtonImages[i][1];
		
		submitButtonPreloads.push(img);
	}	
}

function preloadTest()
{
	var els = document.forms["form1"].elements;
	
	for (var i = 0; i < els.length; i++)
	{
		var o = els[i];
		
		if (o.src != undefined && o.src != "")
			alert(o.src);
	}
}

// Looks up replacement images for buttons in array of defined buttons
function getSubmitButtonReplacement(imgSrc)
{
	// Find replacement image
	for (var i = submitButtonImages.length - 1; i >= 0; i--)
	{
		if (submitButtonImages[i][0] == imgSrc)
			return submitButtonImages[i][1];
	}
	
	// Return original image if not found
	return imgSrc;
}

function doFormSubmit(formId, buttonIds)
{
	// If form is already submitted, ignore request
	if (formSubmitted)
		return false;

	// Put single element into array if needed
	if (typeof(buttonIds) == "string")
		buttonIds = new Array(buttonIds);
	
	// Swap images and disable buttons
	for (var i = 0; i < buttonIds.length; i++)
	{
		var button = document.getElementById(buttonIds[i]);
		button.src = getSubmitButtonReplacement(button.src);
		button.disabled = true;
	}
	
	// Delayed form submission. Without this, image swapping will not be processed.
	formSubmitted = true;
	setTimeout("document.forms[\"" + formId + "\"].submit()", 1)
	
	return false;
}

function doFormSubmitNET(buttonIds)
{
    document.forms[0].submit();
    window.setTimeout("disableButton('" + buttonIds + "')", 0);
}

function disableButton(buttonIds)
{
	if (typeof(buttonIds) == "string")
		buttonIds = new Array(buttonIds);
		
	for (var i = 0; i < buttonIds.length; i++)
	{
		var button = document.getElementById(buttonIds[i]);
		button.src = getSubmitButtonReplacement(button.src);
		button.disabled=true;
	}
}

/* .NET UserControl handling */
function SubmitImageButton_Click(e)
{
	var src = e ? e.target : event.srcElement; 

	var oldImage = src.src;
	src.src = getSubmitButtonReplacement(src.src);
	src.disabled = true;
	src.aspnet_onclick();
		
	if (typeof(Page_IsValid) != "undefined" ? !Page_IsValid : false)
	{
		src.src = oldImage;	
		src.disabled = false;
		
		// Required for Firefox to stop submitting even though validation failed
		if (e && e.preventDefault)
			e.preventDefault();
	}
		
	return false;
}

function SubmitImageButton_InitOnClick(id)
{
	var sb = document.getElementById(id);
	sb.aspnet_onclick = sb.onclick;
	sb.onclick = SubmitImageButton_Click;
}

preloadButtonImages();
