var processed = false;
var linkNodes = new Array(0);
var linkFunctions = new Array(0);
var linkTypes = new Array(0);


function blockDblClickById()
{
	for (var i=0; i<arguments.length; i++) 
	{
		var obj = document.getElementById(arguments[i]);
		registerNodeToBlock(obj);
	}
}


function blockDblClickByName()
{
	for (var j=0; j<arguments.length; j++) 
	{
		var list = document.getElementsByName(arguments[j]);
		for (var i=0; i<list.length; i++) 
		{
			var obj = list.item(i);
			registerNodeToBlock(obj);
		}
	}
}

/* register a node to block */
function registerNodeToBlock(obj)
{
	if (obj.onclick != null && obj.onclick != '')
	{
		linkNodes.push(obj);
		linkFunctions.push(obj.onclick);
		linkTypes.push("C");
		obj.onclick = testDblClick;
		obj.ondblclick = testDblClick;
	}
	else if(obj.tagName=='A')
	{
		var link = obj.href;
		if(link.indexOf('javascript:') == 0)
		{
			linkTypes.push("E");
			linkNodes.push(obj);
			linkFunctions.push(link.substring(11,link.length));
			obj.href="#pleasewait";
			obj.onclick = testDblClick;
			obj.ondblclick = testDblClick;
		}
		else
		{
			linkTypes.push("L");
			linkNodes.push(obj);
			linkFunctions.push(link);
			obj.href="#pleasewait";
			obj.onclick = testDblClick;
			obj.ondblclick = testDblClick;
		}
	}
	else if(obj.tagName=='INPUT')
	{
		linkNodes.push(obj);
		linkFunctions.push(obj.form.name+".submit()");
		linkTypes.push("S");
		obj.onclick = testDblClick;
		obj.ondblclick = testDblClick;
	}
}

function testDblClick(evnt)
{
	var objSrc;
	if (document.all) 
	{ 
		objSrc = event.srcElement;
	 	} 
	 else 
	 {
	 	objSrc = evnt.currentTarget;
	 	}
	 if(processed)
	 {
	 	alert("Please wait");
	 }
	 else
	 {
	 	for (i = 0;i < linkNodes.length;i++) 
	 	{
	 		if(linkNodes[i] == objSrc)
	 		{
	 			processed=true;
	 			var type = linkTypes[i];
	 			if (type == "C")
	 			{
	 				linkFunctions[i].call();
	 			}
	 			else if (type == "E")
	 			{
	 				eval(linkFunctions[i]);
	 			}
	 			else if (type == "L")
	 			{
	 				window.location=linkFunctions[i];
	 			}
	 			else if (type == "S")
	 			{
	 				eval(linkFunctions[i]);
	 			}
	 			
	 			break;
	 		}
	 	}
	 }
}

function unblockDblClick()
{
	processed = false;
}

function callDynamicJs(actionSrc)
{
	var newJS = document.createElement("script");
	newJS.setAttribute("type","text/javascript");
	newJS.setAttribute("language","JavaScript");
	newJS.setAttribute("src",actionSrc);
	var headRef = document.getElementsByTagName("head").item(0);
	headRef.appendChild(newJS);
}

function strikeTableLine(tableId,rowInx)
{
	var table = document.getElementById(tableId);
	var row = table.rows[parseInt(rowInx)];
	if(row.style.textDecoration=='line-through')
		row.style.textDecoration='none';
	else
		row.style.textDecoration='line-through';
}
