//DRAG & DROP
var EASYCONTENT = 1;
var EASYWEB = 2;
var EASYSTUDY = 3;
var CURMODEL = EASYWEB;
function findPosXY(obj,axis)
{
	var curleft = 0;
	var curtop = 0;
	if(axis == 'x')
	{
		if (obj.offsetParent)
		{
			while (obj.offsetParent)
			{
				curleft += obj.offsetLeft
				obj = obj.offsetParent;
				if(CURMODEL == EASYCONTENT)
				{
					if(obj.id.toLowerCase() == 'lyr1')
						return curleft;				
				}
				if(CURMODEL == EASYWEB)
				{
					if(obj.id.toLowerCase() == 'holder1')
						return curleft;				
				}
			}
		}
		else if (obj.x)
			curleft += obj.x;
		return curleft;
	}
	if(axis == 'y')
	{
		if (obj.offsetParent)
		{
			while (obj.offsetParent)
			{
				curtop += obj.offsetTop
				obj = obj.offsetParent;
				if(CURMODEL == EASYCONTENT)
				{
					if(obj.id.toLowerCase() == 'lyr1')
						return curtop;				
				}
				if(CURMODEL == EASYWEB)
				{
					if(obj.id.toLowerCase() == 'holder1')
						return curtop;				
				}				
			}
		}
		else if (obj.y)
		curtop += obj.y;
		return curtop;
	}
	return 0;
}


function browserDetect()
{
	this.n = navigator.userAgent.toLowerCase();
	
	this.db = (document.compatMode && document.compatMode.toLowerCase() != "backcompat")?
		document.documentElement
		: (document.body || null);
	this.op = !!(window.opera && document.getElementById);//opera7
	this.op6 = !!(this.op && !(this.db && this.db.innerHTML)); 
	if (this.op && !this.op6) document.onmousedown = new Function('e',
		'if (((e = e || window.event).target || e.srcElement).tagName == "IMAGE") return false;');
	this.ie = !!(this.n.indexOf("msie") >= 0 && document.all && this.db && !this.op); //ie
	this.iemac = !!(this.ie && this.n.indexOf("mac") >= 0);
	this.ie4 = !!(this.ie && !document.getElementById);
	this.n4 = !!(document.layers && typeof document.classes != "undefined");
	this.n6 = !!(typeof window.getComputedStyle != "undefined" && typeof document.createRange != "undefined");//firefox
	this.w3c = !!(!this.op && !this.ie && !this.n6 && document.getElementById);
	this.ce = !!(document.captureEvents && document.releaseEvents);
	this.px = (this.n4 || this.op6)? '' : 'px';
	this.tiv = this.w3c? 40 : 10;
	this.button = (this.n6)? 0:1; //left mouse button
	
}
function initPixel()
{
	this.x = 0;
	this.y = 0;
	this.tmp_x = 0;
	this.tmp_y = 0;	
	this.object = null;
	this.parent = null;
	this.dragAllow =false;
}


var currBrowser = new browserDetect();
var image =  new initPixel();


if(currBrowser.n6)
{
	document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP);
}
document.onmousedown=startDrag;
document.onmousemove=move;
document.onmouseup=endDrag;


function startDrag(evt)
{
	var	sender = null;
	var Events = null;
	if(evt)
	{	
		sender = evt.target;
		Events = evt;
	}
	else
	{
		sender = event.srcElement;
		Events = event;
	}

	if(sender.tagName.toLowerCase()=='img' && sender.className.toLowerCase()=='drag')
	{
		if(currBrowser.op && CURMODEL == EASYWEB)
		{
			sender.style.left = (findPosXY(sender,'x')-findPosXY(document.getElementById('holder1'),'x')) + currBrowser.px;
			sender.style.top = (findPosXY(sender,'y')-findPosXY(document.getElementById('holder1'),'y')) + currBrowser.px;
			
		}
		else
		{
			sender.style.left = (findPosXY(sender,'x')) + currBrowser.px;
			sender.style.top = (findPosXY(sender,'y')) + currBrowser.px;
		}
		sender.style.position = "absolute";
		image.dragAllow = true;
		image.object = sender;
		image.parent = sender.parentNode;
		image.tmp_x = image.object.style.left;
		image.tmp_y = image.object.style.top;		
		sender.border=1;
		if(evt)
		{	
			image.x=Events.pageX;
			image.y=Events.pageY;
		}
		else
		{
			image.x=Events.clientX + document.body.scrollLeft;
			image.y=Events.clientY + document.body.scrollTop;
		}
	}
}
function move(evt)
{
	var	sender = null;
	var Events = null;
	if(evt)
	{	
		sender = evt.target;
		Events = evt;
	}
	else
	{
		sender = event.srcElement;
		Events = event;
	}
	
	if(image.dragAllow == true && Events.button==currBrowser.button) 
	{
		image.object.style.left=parseInt(image.tmp_x)+parseInt((evt)?(Events.pageX):(Events.clientX + document.body.scrollLeft))-parseInt(image.x)+currBrowser.px;
		image.object.style.top=parseInt(image.tmp_y)+parseInt((evt)?(Events.pageY):(Events.clientY + document.body.scrollTop))-parseInt(image.y)+currBrowser.px;
		return false;
	}
}
function endDrag(evt)
{
	var	sender = null;
	var Events = null;
	if(evt)
	{	
		sender = evt.target;
		Events = evt;
	}
	else
	{
		sender = event.srcElement;
		Events = event;
	}
	//alert(sender.tagName.toLowerCase());
	if(image.dragAllow==true)
	{
		if(sender.tagName.toLowerCase()!="img") //if image outside of the using region (e.c body)
		{
			image.object.style.position="static";
			image.object.border=0;
		}
		else
		{
			sender.border=0;
			var table_td = document.getElementsByTagName("TD");
			for(i=0;i<table_td.length;i++)
			{
				if(table_td[i].className.toLowerCase()==image.parent.className.toLowerCase())
				{
				
					if(CURMODEL != EASYCONTENT && CURMODEL != EASYWEB)
					{
						x = parseInt((evt)?(Events.pageX):(Events.clientX + document.body.scrollLeft));
						y = parseInt((evt)?(Events.pageY):(Events.clientY + document.body.scrollTop));
					}
					if(CURMODEL == EASYCONTENT)
					{
						x = Events.clientX - findPosXY(document.getElementById('lyr1'),'x')+document.body.scrollLeft;
						y = Events.clientY - findPosXY(document.getElementById('lyr1'),'y')+document.body.scrollTop+25;
					}
					if(CURMODEL == EASYWEB)
					{
						if(currBrowser.op)
						{
							x = parseInt(Events.clientX+document.body.scrollLeft+document.getElementById('holder1').scrollLeft);
							y = parseInt(Events.clientY+document.body.scrollTop+document.getElementById('holder1').scrollTop);
						}
						else
						{
							x = parseInt((evt)?(Events.pageX- findPosXY(document.getElementById('holder1'),'x') + document.getElementById('holder1').scrollLeft):(Events.clientX - findPosXY(document.getElementById('holder1'),'x')+document.body.scrollLeft+document.getElementById('holder1').scrollLeft));
							y = parseInt((evt)?(Events.pageY- findPosXY(document.getElementById('holder1'),'y')+document.getElementById('holder1').scrollTop):(Events.clientY - findPosXY(document.getElementById('holder1'),'y')+document.body.scrollTop + document.getElementById('holder1').scrollTop+25));
						}
					}

					if(x >= findPosXY(table_td[i],'x') && y>=findPosXY(table_td[i],'y') && x<=(findPosXY(table_td[i],'x')+table_td[i].offsetWidth) && y<=(findPosXY(table_td[i],'y')+table_td[i].offsetHeight))		
					{
						if(table_td[i].getElementsByTagName("IMG").length==0)
						{
							table_td[i].appendChild(sender);
							sender.style.position="static";
						}
					}
					else		
					{
						sender.style.position="static";
					}
				}
			}
		}
	}
	image.dragAllow = false;
}
//!DRAG & DROP



//??????????? ???? ????????
function fnBrowserDetect()
{
	/*	IE: 0
		Opera: 1
		Netscape: 2
	*/
	if(navigator.appName.indexOf("Netscape")>=0)
		return 2;
	if(navigator.userAgent.indexOf("MSIE")>0)
	{
		if(navigator.userAgent.indexOf("Opera")>0)
			return 1;
		if(navigator.userAgent.indexOf("Opera")==-1)
			return 0;
	}
	return -1;
}

// ????????????? ????? ?????? ? ??? ? ??
function correctPNG() 
{
	
	var MS=navigator.userAgent.indexOf("MSIE");
    var MSVER =   parseFloat(navigator.userAgent.substring(MS+5, MS+8));
	var notOpera = true;
	if(navigator.userAgent.indexOf("Opera")>0)
		notOpera = false;
	if (MS > 0 && MSVER >= 5.5000 && notOpera)
	{
		for(var i=0; i<document.images.length; i++)
		{
			var img = document.images[i]
			var imgName = img.src.toUpperCase()
			//alert(img.className);
			if (imgName.substring(imgName.length-3, imgName.length) == "PNG" &&img.className!='drag')
			{
				var imgID = (img.id) ? "id='" + img.id + "' " : ""
				var imgClass = (img.className) ? "class='" + img.className + "' " : ""
				var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
				var imgStyle = "display:inline-block;" + img.style.cssText 
				if (img.align == "left") imgStyle = "float:left;" + imgStyle
				if (img.align == "right") imgStyle = "float:right;" + imgStyle
				if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
				if(img.className=="inTextImage")
				{
					var sab = img.src.substring(img.src.indexOf("/res/files"),img.src.length);
					sab = ".."+sab;
					var strNewHTML = "<span " + imgID + imgClass + imgTitle
						+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
						+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
						+ "(src=\'" + sab + "\', sizingMethod='scale');\"></span>" 
					img.outerHTML = strNewHTML
					i = i-1
				}
				else
				{
					var sab = img.src.substring(img.src.indexOf("/styles/files"),img.src.length);
					sab	= ".."+sab;
					//alert(img.src);
					var strNewHTML = "<span " + imgID + imgClass + imgTitle
						+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
						+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
						+ "(src=\'" + sab + "\', sizingMethod='image');\"></span>" 
					img.outerHTML = strNewHTML
					i = i-1

				}
			}
	    }
	}
}
if(fnBrowserDetect()==0)
{
	window.attachEvent("onload", correctPNG);
}

// ????? ???? 
function fnExpandCollapse(id,img_right,img_down)
{
	menu = [["themen"],["beispiele"],["test"]];
	for(i=0;i<3;i++)
	{
		if(document.getElementById(menu[i]) && menu[i]!=id)
		{
			document.getElementById(menu[i]).style.display = "none";
			if(img_right.indexOf('.')>0)
				document.getElementById(menu[i]+"_img").innerHTML='<img src="../styles/files/'+img_right+'"  border="0" alt="">'
			else
				document.getElementById(menu[i]+"_img").innerHTML="&#xA0;"
		}
		if(document.getElementById(menu[i]) && menu[i]==id)
		{
			if(document.getElementById(id).style.display=="none")					
			{
				document.getElementById(id).style.display = "block";						
				if(img_down.indexOf('.')>0)
					document.getElementById(menu[i]+"_img").innerHTML='<img src="../styles/files/'+img_down+'"  border="0" alt="">'
				else
					document.getElementById(menu[i]+"_img").innerHTML="&#xA0;"
			}
			else
			{
				document.getElementById(id).style.display = "none";						
				if(img_right.indexOf('.')>0)
					document.getElementById(menu[i]+"_img").innerHTML='<img src="../styles/files/'+img_right+'"  border="0">'
				else
					document.getElementById(menu[i]+"_img").innerHTML="&#xA0;"
			}
		}
	}
	correctPNG();
}

//-----------------tests-----------------------------
function check_multi_choice(q_id,a_id)
	{
	if (document.getElementById(a_id)) 
		{
		if (document.getElementById(a_id).checked)
			{
			return 1;
			}
		else 
			{
			return 0;
			}
		}
	else
		{
		return 0;
		}
	}

function check_multi_answer(q_id,a_array1,a_field_id)
	{
	var a_array=new Array();
	a_array=	eval(a_array1);
	var i=0;
	var right=0;
	for (i=0;i<a_array.length;i++)	
		{
		if (a_array[i]==document.getElementById(a_field_id).value)
			{right=1;}

		}
	if (right==1)
		{
		return 1;
		}
	else 
		{
		return 0;
		}

	}
	
function check_drag_n_drop(a_array1,m_array1)
{
	var right=-1;
	var a_array=new Array();
	a_array=eval(a_array1);
	var m_array=new Array();
	m_array=eval(m_array1);
//	alert(m_array[m_array.length-1]);

	for (i=0;i<a_array.length;i++)	
	{
		var TD =document.getElementById('holder_'+a_array[i]+"_"+m_array[i]);
		var IMG = null;
		//alert(m_array);
		if(m_array[i]==0)//if matching not set yet
		{
			continue;
		}
		if(TD.getElementsByTagName("IMG").length>0)
		{
			IMG = TD.getElementsByTagName("IMG")[0];
			if(!IMG)
			{
				return 0;
			}
			if(IMG.id.toLowerCase().indexOf(m_array[i]) != -1)
			{
				right = 1;
			}
			else
			{
				right = 0;
				break;
			}
		}
		else
		{
			right = 0;
			break;
		}
	}

	if (right==1)
	{
		return 1;
	}
	else 
	{
		return 0;
	}
}

function check_multi_answer2(q_id,a_array1)
	{

	var a_array=new Array();
	a_array=	eval(a_array1);

	var i=0;
	var right=-1;

	for (i=0;i<a_array.length;i++)	
		{
//		alert(document.getElementById(q_id+"_"+(i+1)).checked);
		if (!document.getElementById(q_id+"_"+(i+1)).checked && a_array[i]=="1")
			{
			right=0;
			}

		if (document.getElementById(q_id+"_"+(i+1)).checked && a_array[i]=="0")
			{
			right=0;
			}
		if (document.getElementById(q_id+"_"+(i+1)).checked && a_array[i]=="1" && right!=0)
			{
			right=1;
			}

		}


	if (right==1)
	{
		return 1 ;
	}
	else 
	{
		return 0;
	}

	}




function check_multi_matching(q_id,a_array1)
	{
	var a_array=new Array();
	a_array=	eval(a_array1);
	var i=0;
	var right=-1;
	for (i=0;i<a_array.length;i++)	
		{
//		alert(a_array[i]);
//		alert(document.getElementById(q_id+"_"+(i+1)).value);

		if (document.getElementById(q_id+"_"+(i+1)).value!=a_array[i])
			{
			right=0;
			}
		if (document.getElementById(q_id+"_"+(i+1)).value==a_array[i] && right!=0)
			{
			right=1;
			}

		}


	if (right==1)
	{
		return 1;
	}
	else 
	{
		return 0;
	}

	}
	
// ?????? ??????? 

function rescount(param)
{
	if(testStatus == 0)
	{
		testStatus =1;
		//document.getElementById('checkTest').style.visibility = "hidden";
		buttonCheckTest = document.getElementById('checkTest');
		buttonCheckTest.style.textDecoration = "none";
		buttonCheckTest.style.cursor = "default";
		buttonCheckTest.style.color = "#999";
		buttonCheckTest.onclick = "";	
		document.getElementById("testtime").innerHTML = "&nbsp;";
		
		var inputs = document.getElementsByTagName('INPUT');
		for(ix=0;ix<inputs.length;ix++)
		{
			if(inputs[ix].className.toLowerCase()=="testbutton")
			{
				inputs[ix].onclick();
			}
			
		}
/*		for(i=0;i<document.forms.length;i++)
		{	
			for(j=0;j<document.forms[i].elements.length;j++)
			{
			
				if(document.forms[i].elements[j].className =="testButton")
				{
					alert("testButton");
					document.forms[i].elements[j].onclick();
				}
			}
		}
		*/
	}
	
	if(oInterval)
		clearInterval(oInterval);
}
// timer
var GtimeOff;
var oInterval;
function startTmr(minutes,param)
{
 var now = new Date();
 now.setTime(now.getTime()+365*24*60*60*1000);
 dtime = new Date();
 if(minutes!=0)
 {
    timeOff = dtime.getTime()+minutes*60*1000+1000;
    GtimeOff = timeOff;
    fnStartInterval(param);
 }
 else
 {
    timeOff = 0;     //если незаданы временные ограничния
  }
}

// Запуск таймера
function fnStartInterval(param)
{
	var fncallback = "fnRecycle('"+param+"')";
	//alert(fncallback);
	oInterval = setInterval(fncallback,1000);
}

// Остановка таймера
function fnStoptInterval(param)
{
	clearInterval(oInterval);//&&&&&&&&&&&&&&&&***********************************************************************************
	rescount(param);
}

function fnRecycle(param)
{
  dt = new Date();
	
  timeLeft = GtimeOff-dt.getTime();
   if(timeLeft<=0)
  {
	alert(alarma);
   fnStoptInterval(param);
  }
  else
  {

   parseMin = parseInt(timeLeft/60000);
   parseSec = parseInt((timeLeft%60000)/1000);
   if(parseSec<10)
      parseSec = "0"+parseSec;
	document.getElementById("testtime").innerHTML = parseMin+":"+parseSec;
   if(timeLeft<20000)
   {
          document.getElementById("testtime").style.color = "#FF0000";
   }
  }
}
