if (Event.SourceType=="IPJOYSTICK" && Event.Action=="KEY_PRESSED")
{
button_name=Event.GetParam("button_name");
button=Event.GetParam("button");
switch(button_name)
 {
 case "cam":
	Itv_var(Event.SourceId+"cam")=button;
	break;
 case "mon":
	Itv_var(Event.SourceId+"mon")=button;
	DoReactStr("MONITOR",Itv_var(Event.SourceId+"mon"),"ACTIVATE_CAM","cam<"+Itv_var(Event.SourceId+"cam")+">");
	break;
 case "win":
        screen="1;4;6;9;"; 
        if (screen.indexOf(button+";")!=-1)
	 DoReactStr("MONITOR",Itv_var(Event.SourceId+"mon"),"KEY_PRESSED","key<SCREEN."+button+">");  
        if (button=="0")
	 DoReactStr("MONITOR",Itv_var(Event.SourceId+"mon"),"KEY_PRESSED","key<SCREEN.*>");  
	break;
 case "patrol": //patrol - go_patrol
	DoReactStr("TELEMETRY",GetPTZdevice(Itv_var(Event.SourceId+"cam")),"PATROL_PLAY","patrol_id<"+button+">,tel_prior<1>");
	break;
 }

if (button_name=="")
{
 switch(button)
 {
  case "15":
	DoReactStr("MONITOR",Itv_var(Event.SourceId+"mon"),"KEY_PRESSED","key<REW>");
	break;
  case "16":
	DoReactStr("MONITOR",Itv_var(Event.SourceId+"mon"),"KEY_PRESSED","key<FF>");
	break;
  case "25": //aux - архив\живое видео
	if (Var_var("arch")==1)
	{
	  Var_var("arch")=0;
	  DoReactStr("MONITOR",Itv_var(Event.SourceId+"mon"),"KEY_PRESSED","key<MODE_VIDEO>");
	  DebugLogString("### живое видео");
	}
	else
	{
	  Var_var("arch")=1;
	  DoReactStr("MONITOR",Itv_var(Event.SourceId+"mon"),"KEY_PRESSED","key<MODE_ARCH>");   
	  DebugLogString("### режим архива");       
	}
        break;
  case "26": //dev
	if (Var_var("play")==1)
	{ Var_var("play")=0;
	DoReactStr("MONITOR",Itv_var(Event.SourceId+"mon"),"KEY_PRESSED","key<PAUSE>");
	} else
	{ Var_var("play")=1;
	DoReactStr("MONITOR",Itv_var(Event.SourceId+"mon"),"KEY_PRESSED","key<PLAY_NONSTOP>");
	}
	break;
/*
scene-27
aux-25
dev-26

CAM = button<21>
PRESET  = button<22>
IRIS+ = button<7>
IRIS- = button<8>
PATROL = button<17>
PATTERN = button<18>
PREV = button<15>
NEXT = button<16>
CAM-G = button<20>
ZOOM+ = button<1>
ZOOM- = button<2>
WIPER = button<6>
LIGHT = button<5>
FOCUS+ = button<3>
FOCUS- = button<4>
*/
}}
}

function GetPTZdevice(camId)
{
if (Var_var("PTZ_" + camId) == "") 
 {
 DebugLogString("PTZ device for camera " + camId + " is unknown!");
 var re = /id\.[0-9]+<(.+?)>/g;
 var sObjId = GetObjectIds("TELEMETRY");
 var Id;

 while (Id = re.exec(sObjId)) {
  if (GetObjectParam("TELEMETRY",Id[1],"cam") == camId)  {
   Lock();
   Var_var("PTZ_" + camId) = Id[1];
   Unlock();
   DebugLogString("PTZ device for camera " + camId + " -- " + Id[1]);
   return Id[1];
  }
 }
}
else { return Var_var("PTZ_" + camId); }
}