function Screenshots()
{
	var mwh;	
	var crehtml = document.createElement('div');
	var imagelists = {};
	var scr_cont, scr_nav, current, screens = [];			

	this.open = open;
	function open(path,si)
	{
		if((!si) || (si != 'aii'))
		{
			crehtml.innerHTML = '<table class="scr_cont"><tr><td><a href="#" class="lft"></a></td><td id="scr_cont"></td><td><a href="#" class="rght"></a></td></tr></table><div id="scr_nav"></div>';
			preload();
			load(path);
		}
		else
		{
			crehtml.innerHTML = '<table class="scr_cont"><tr><td id="scr_cont"></td></tr></table>';
			preload('par');
			InsertDynamicAppletControl("archive", "/portfolio/ru/top/parapodium/holomatix.jar", "code", "blaze3d.class", "width", "604", 
			"height","447", "align", "", "movie", "/portfolio/ru/top/parapodium/Parapodium_Start.swf", "Scale", "showall", "SAlign", "");
		}
	}

	function preload(par)
	{
		if(!par){
			wins.open({
			fromdivid:crehtml,
			width:830,
			height:520,
			aftershow:function(){				
				scr_cont = document.getElementById('scr_cont');
				scr_cont.innerHTML='<img src="/wp-content/themes/areal/images/loading.gif" />';
				scr_nav = document.getElementById('scr_nav');
				initBar();
				mwh = new c_MouseWheel(document.body, function(wd){if(wd>0) next(); else prev();});
			},
			beforeclose:function(){
				mwh.remove();
				delete mwh;
			},
			title:'Скриншоты'
			});
		} else {
			wins.open({
			fromdivid:crehtml,
			width:666,
			height:500,
			aftershow:function(){				
				scr_cont = document.getElementById('scr_cont');
				scr_cont.innerHTML='<img src="/wp-content/themes/areal/images/loading.gif" />';
				scr_nav = document.getElementById('scr_nav');
			},
			title:'3D-модель'
			});
		}
	}

	function create(path)
	{
		scr_cont.innerHTML = '';
		scr_nav.innerHTML = '';
		current=0;
		screens = [];
		for(var i=0; i<imagelists[path].length; i++)
			screens[i] = new Screenshot(path,i);
	}

	function load(path)
	{	
		if(imagelists[path]) {create(path); return;}
		
		var xml = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
		xml.open("GET", path, true);			
		xml.setRequestHeader("X-Requested-With", "XMLHttpRequest");
		xml.setRequestHeader("Accept","* /*");
		xml.onreadystatechange = function(){
		if ( xml.readyState == 4 ) 
			if ( xml.status == 200)
			{
				imagelists[path] = eval(xml.responseText);
				create(path);
			}	
		}			
		xml.send(null);
	}

	function next()	{if(current>0) screens[current-1].select(); else screens[screens.length-1].select(); }
	function prev() {if(current<screens.length-1) screens[current+1].select(); else screens[0].select(); }

	function initBar()
	{		
		var as = scr_cont.parentNode.parentNode.getElementsByTagName('a');
		as[0].onclick = dummy;
		as[1].onclick = dummy;
		as[0].onmousedown = function(){next(); return false;}
		as[1].onmousedown = function(){prev(); return false;}
	}

	function Screenshot(path,i)
	{
		var img = scr_cont.appendChild(document.createElement('img'));
		var a = scr_nav.appendChild(document.createElement('a'));
		img.src = imagelists[path][i];		
		a.href = '#';
		a.onmousedown = function()
		{
			select();
			return false;
		}
		a.onclick = dummy;	
		if(current == i)
			img.className = a.className = 'selected';
		this.unselect = function() {img.className = a.className = '';}
		this.select = select;
		function select()
		{
			screens[current].unselect();
			current = i;
			img.className = a.className = 'selected';
		}
	}

	function dummy() {return false;}	
}




// Implements InsertDynamicAppletControl() function. This is a generic function used to generate
// applet tags. It is used by higher level api functions.
			
function InsertDynamicAppletControl()
{  
  // Initialize variables
  var currArg = '';
  var closer = '>';
  var srcFound = false;
  var embedStr = '<applet';
  var paramStr = '';
  
  // Spin through all the argument pairs, assigning attributes and values to the object,
  // param, and embed tags as appropriate.
  for (var i=0; i < arguments.length; i=i+2)
  {
   currArg = arguments[i].toLowerCase();    

    if (currArg == "movie")
    {
        paramStr += '<param name="' + arguments[i] + '" value="' + arguments[i+1] + '"' + closer + '\n';
        srcFound = true;
    }
    else if (   currArg == "width" 
              || currArg == "height" 
              || currArg == "code" 
              || currArg == "archive" 
              || currArg == "align" 
              || currArg == "vspace" 
              || currArg == "hspace" 
              || currArg == "class" 
              || currArg == "title" 
              || currArg == "accesskey" 
              || currArg == "tabindex")
    {
      embedStr += ' ' + arguments[i] + '="' + arguments[i+1] + '"';
    }
    // This is an attribute we don't know about. Assume that we should add it to the 
    // param and embed strings.
    else
    {
      paramStr += '<param name="' + arguments[i] + '" value="' + arguments[i+1] + '"' + closer + '\n'; 
    }
  }
  
  // Tell the user that a src is required, if one was not passed in.
  if (!srcFound)
  {
    alert("The requires that a movie be passed in as one of the arguments.");
    return;
  }

  // Close off the object and embed strings
  embedStr += ' MAYSCRIPT>' + paramStr + '</applet>\n'; 
  

document.getElementById('scr_cont').innerHTML = embedStr;
warning = document.getElementById('scr_cont').appendChild(document.createElement('h3'));
warning.innerHTML = "Для просмотра модели требуется поддержка Java.";
warning.id = 'java_warning';
}