var newWindow = null;

function closeWin(){
if (newWindow != null){
if(!newWindow.closed)
newWindow.close();
}
}

function popUpWin(url, type, strWidth, strHeight){

closeWin();

if (type == "fullScreen"){

strWidth = screen.availWidth - 10;
strHeight = screen.availHeight - 160;
}

var tools="";
if (type == "standard" || type == "fullScreen") tools = "resizable,statusbar=yes,toolbar=yes,location=yes,scrollbars=yes,menubar=yes,width="+strWidth+",height="+strHeight+",top=0,left=0";
if (type == "console") tools = "resizable,toolbar=no,location=no,scrollbars=no,width="+strWidth+",height="+strHeight+",left=0,top=0";
newWindow = window.open(url, 'newWin', tools);
newWindow.focus();
}

function popUpPrintWin(url, type, strWidth, strHeight){

closeWin();

if (type == "fullScreen"){

strWidth = screen.availWidth - 10;
strHeight = screen.availHeight - 160;
}

var tools="";
if (type == "standard" || type == "fullScreen") tools = "resizable,statusbar=yes,toolbar=yes,location=yes,scrollbars=yes,menubar=yes,width="+strWidth+",height="+strHeight+",top=0,left=0";
if (type == "console") tools = "resizable,toolbar=no,location=no,scrollbars=yes,width="+strWidth+",height="+strHeight+",left=0,top=0";
newWindow = window.open(url, 'printWin', tools);
newWindow.focus();
return newWindow;
}

function sleep(ms){
 sahiSendToServer("http://localhost:9999/dyn/sleep?ms="+ms);
}

function openPrintWindow(srcDoc, type, strWidth, strHeight)
{
	hideMenu();
	var newWin = popUpPrintWin('',type, strWidth, strHeight);
	var newWinDoc = newWin.document;
	var contents = srcDoc.documentElement.innerHTML;	
	newWinDoc.open("text/html","printWin");
	var errorsOccurred = false;
	
	if (document.all)
	{
		fakeDocumentUsingShallowCopy(newWinDoc,srcDoc.documentElement);
	}
	else
	{
		newWinDoc.write("<HTML><div class=\"PrintTitleClass\" id=\"PrintTitle\"><table width=\"100%\"  border=\"0\"><tr><td width=\"18%\"><a id=printLink href=\"javascript:window.print();window.close();\";><font size=4><b>לחץ כאן להדפסה</b></font></a></td><td width=\"63%\"></td><td width=\"19%\">&nbsp;</td></tr></table></div>");
		newWinDoc.write(contents);
		newWinDoc.write("</HTML>");
	}
	
	
	if (!errorsOccurred)
	{
		newWinDoc.close();
		newWin.focus();
	}	
	showMenu();
}

function fakeDocumentUsingShallowCopy(doc,originalDocumentElement)
{
	var arrChildren = originalDocumentElement.childNodes;
	//var htmlElem = doc.createElement("html");
	doc.write("<html><div class=\"PrintTitleClass\" id=\"PrintTitle\"><table width=\"100%\"  border=\"0\"><tr><td width=\"18%\"><a id=printLink href=\"javascript:window.print();window.close();\";><font size=4><b>לחץ כאן להדפסה</b></font></a></td><td width=\"63%\"></td><td width=\"19%\">&nbsp;</td></tr></table></div></html>");
	doc.close();
	var htmlElem = doc.documentElement;
	
	//get head tag	
	var srcHeadTag = originalDocumentElement.ownerDocument.getElementsByTagName("head")[0];
	var targHeadTag = doc.getElementsByTagName("head")[0];

	//get body tag
	var srcBodyTag = originalDocumentElement.ownerDocument.getElementsByTagName("body")[0];
	var targBodyTag = doc.getElementsByTagName("body")[0];
	
	CopyChildNodes(srcHeadTag,targHeadTag);
	CopyChildNodes(srcBodyTag,targBodyTag);
}

function CopyAttributes(sourceNode,targetNode)
{
	var arrAttributes = sourceNode.attributes;
	var doc = targetNode.ownerDocument;
	for(var attCount = 0;attCount < arrAttributes.length; attCount++)
	{
		var sourceAtt = arrAttributes[attCount];
		if (sourceAtt.specified)
		{
			var sName = sourceAtt.name;
			if (sName.toLowerCase() == "class")
			{
				sName = "className";
			}
			targetNode.setAttribute(sName,sourceAtt.value);
		}
	}
}

function CopyChildNodes(sourceNode,targetNode)
{
	var arrChildren = sourceNode.childNodes;
	var doc = targetNode.ownerDocument;
	var origElem;
	for (var i = 0;i < arrChildren.length;i++)
	{
		try
		{
			origElem = arrChildren[i];
			//alert(origElem.tagName);
			var newElem = doc.createElement(origElem.tagName);
			CopyAttributes(origElem,newElem);
			//alert(origElem.outerHTML);
			if (origElem.innerHTML.length > 0 && origElem.innerHTML && origElem.tagName.toLowerCase() != "base" && origElem.tagName.toLowerCase() != "div")
			{
				newElem.innerHTML = origElem.innerHTML;
			}
			//alert(newElem.outerHTML);
			targetNode.appendChild(newElem);
		}
		catch(ex)
		{
			//alert("Error copying " + origElem.tagName);
		}
	}
}

// Left in for legacy, but too slow, using Shallow copy of DOM instead.
function WriteHtmlOneBitAtATimeForPoorOldIE(doc,contents)
{
	var SEGMENTLENGTH = 100;
	var startPos = 0;
	//var endPos = 0;
	while (startPos < contents.length)
	{
		/*endPos = startPos + SEGMENTLENGTH - 1;
		if (endPos > contents.length - 1)
		{
			endPos = contents.length - 1;
		}*/
		var segmentString = contents.substr(startPos,SEGMENTLENGTH);
		if (startPos == 0)
		{
			//alert("writing first block: " + segmentString);
		}
		doc.write(segmentString);
		if (startPos == 0)
		{
			//alert("finished first block");
		}		
		/*doc.write("Start pos: " + startPos);
		doc.write(" Segment Length: " + segmentString.length + "<br />");*/
		startPos += SEGMENTLENGTH;
	}
}

