function placeGoban(pSgf, pw, ph,target)
{
   if ( typeof(fg_n) == "undefined" )
   {
	fg_n = 0;
   }
   var pId = "fgoban"+fg_n++;

   placeGobanBase(target, pId, pSgf, "http://files.rsdn.ru/3693/sgf_view.swf", pw, ph);	
}

function placeGobanBase( target, pId, pSgf, pSrc, pw, ph)
{
    var childs = target.parentNode.getElementsByTagName("DIV");


    if(childs.length == 0) 
    {
        insertElementFromText(target.parentNode, "beforeEnd", createTags(pId, pSgf, pSrc, pw, ph));

	return;
    }

       toggle(target);
}

function toggle(target)
{
    var childs = target.parentNode.getElementsByTagName("DIV");
    var child;

    if(childs.length == 0) 
    {
      	return;
    }
    else
    {
    	child = childs[0];
    }
    if(child.style.display=='block')
    {
    	child.style.display='none';
    	return;
    }
    if(child.style.display=='none')
    {
    	child.style.display='block';
    	return;
    }
}    

function createTags(pId, pSgf, pSrc, pw, ph)
{

	pw*= screen.height/768;
	ph*= screen.height/768;

	 var strdocumentwrite="<div style='display:block'>\
		 \<OBJECT classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0' ID='suxx0' WIDTH=300 HEIGHT='400'>\n\r\
		  \<PARAM NAME=movie VALUE='"+pSrc+"'> \n\r\
		 \<PARAM NAME=quality VALUE=high\> \n\r\
		 \<PARAM NAME=bgcolor VALUE=#FFFFFF\> \n\r\
		 \<PARAM NAME=FlashVars VALUE='sgf="+ pSgf + "'> \n\r\
		 \<param name='salign' value='lt' />\n\r\
		 \<param name='scale' value='exactfit' /\>\n\r\
		 <EMBED src='"+pSrc+"'\n\r\
		 quality=high \n\r\
		 bgcolor=#FFFFFF \n\r\
		 WIDTH="+ pw +"\n\r\
		 HEIGHT="+ ph +"\n\r\
		 FlashVars='sgf=" + pSgf+"'\n\r\
		 swLiveConnect=false \n\r\
		 NAME="+ pId +"\n\r\
		 salign='lt'\n\r\
		 scale='exactfit'\n\r\
		 TYPE='application/x-shockwave-flash'\n\r\PLUGINSPAGE='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash'>\n\r\
		</EMBED>\n\r\
		\</OBJECT></div>";

	 return strdocumentwrite;
}

function insertElementFromText(element, sWhere, textToInsert)
{
  if(typeof HTMLElement == "undefined" || HTMLElement.prototype.insertAdjacentHTML)
  {
  	return element.insertAdjacentHTML(sWhere, textToInsert);
  }

  var r = element.ownerDocument.createRange();

  r.setStartBefore(element);

  var parsedHTML = r.createContextualFragment(textToInsert);

  switch (sWhere)
  {
	case 'beforeBegin':
		element.parentNode.insertBefore(parsedHTML,element)
		break;
	case 'afterBegin':
		element.insertBefore(parsedHTML,element.firstChild);
		break;
	case 'beforeEnd':
		element.appendChild(parsedHTML);
		break;
	case 'afterEnd':
		if (element.nextSibling) 
			element.parsedHTML.insertBefore(parsedNode,element.nextSibling);
		else 
			element.parsedHTML.appendChild(parsedNode);
		break;
  }
}
