//финкции за Help Window (hw)
//Христо Марков Христов - 5 Април 2007 г.

//	rows[i][j]=стойност - данни които се показват на hw
//	     i- ред от hw
//		j- номер на поле
//
//	scushw_ff[i]=scusnom на полето което ще получи стойност, след като се натисне enter
//		  i- Номер на поле
//
//	scushw_mknom[i]=scusnom на кл. полета от записа (св. запис), които се обхождат, за да им вземам реалната стойност.
//	Зареждат се още при първото изпъление на функцията, а после PGUP и  PGDN ги ползват.
//


scusw=document.getElementById('scuspopup');

scus_select_row=0;
scushw_ff=new Array();

function scushw(Form_id,scusvr,type,par_x,rows,x,y,lenx,leny)
{
	var i;
	scusw=document.getElementById('scuspopup'); //тук го добавям още веднъж, защото при зареждането на js фаила не е зареден 'scuspopup' обект
	scus_select_row=1;
	scusw.style.backgroundColor="white";
	scusw.style.border="solid black 1px";
	scusw.innerHTML="";

	str0="<nobr onclick=\"parent.scusw.style.display='none';scusw.scusms.af.focus();\" STYLE=\"position:absolute;left:150px;cursor:pointer;\"><u>X Close Help Window</u></nobr>";
	str="";str1="";str2="";

	switch(type)
	{
	case 1: //help menu => F1
		scusw.innerHTML=rows;
		break;
	case 2: //help menu => F2
	case 4: //help menu => F4
		str="<DIV style='CURSOR:pointer;HEIGHT:18pt'>"+
		"<input type='button' value='Page Up' onmouseover=\"this.style.background='blue';this.style.color='white';\" onmouseout=\"this.style.background='white';this.style.color='green';\" style='padding:0;margin:0;cursor:pointer;position:absolute;left:0px;width:50pt;font-family:Microsoft Sans Serif,Arial,Verdana;font-size:8pt;color:green;background-color:transparent;' onclick=\"parent.scushwnextrows(1,'"+Form_id+"','"+scusvr+"',"+type+",'"+par_x+"',"+x+","+y+","+lenx+","+leny+")\">"+
		"<input type='button' value='Page Down' onmouseover=\"this.style.background='blue';this.style.color='white';\" onmouseout=\"this.style.background='white';this.style.color='green';\" style='padding:0;margin:0;cursor:pointer;position:absolute;left:51pt;width:50pt;font-family:Microsoft Sans Serif,Arial,Verdana;font-size:8pt;color:green;background-color:transparent;' onclick=\"parent.scushwnextrows(2,'"+Form_id+"','"+scusvr+"',"+type+",'"+par_x+"',"+x+","+y+","+lenx+","+leny+")\">"+
		"</DIV>";

		for(i=0;i<rows.length;i++)
		{
			str+="<DIV onmouseover=\"this.style.background='blue';this.style.color='white';parent.scus_select_row="+i+";\""
			+"style=\"cursor:pointer;HEIGHT:10pt\""
			+"onmouseout=\"this.style.background='white';this.style.color='black'\">"
			+"<SPAN onclick=\"parent.scushwresult('"+Form_id+"')\">";

			for(j=0;j<par_x.length;j++) str+="<NOBR STYLE=\"position:absolute;left:"+par_x[j]+"px;width:"+lenx+"px;\">"+rows[i][j]+"</NOBR>";
			str+="</SPAN></DIV>";
		}

		scusw.innerHTML+=str0+str;
	break;
	default:break;
	}

	scusw.style.top=y;
	scusw.style.left=x;
	scusw.style.width=lenx+30; //увеличвам с 30 да има място ако се появи десен плъзгач
	scusw.style.height=leny;
	scusw.style.display="";
}

function scushwresult(Form_id)
{
	var i,z1,af,f;
	z1=document[Form_id].scusz1;
	for(i=0;i<scushw_ff.length;i++)
	{
		z1.z[scushw_ff[i]-1]=rows[scus_select_row][i];
	}
	
	af=document[Form_id].af;

	for(i=0;i<document[Form_id].length;i++)
	{
		f=document[Form_id].elements[i];
		if(typeof(f.scusnom)!='undefined') setvalue(f,z1.z[f.scusnom-1]);
	}
	kk=1300;

	scusonkeydown1(af,kk);
}

function scushwnextrows(type_button,Form_id,scusvr,type,par_xstr,x,y,lenx,leny)
{
	var z4,i,j,i2;
	par_x=par_xstr.split(",");
	z4=scusvr==''?document[Form_id].scusz4:document[Form_id].scusz1.zvr[scusvr];

	if(type_button==1&&z4.bof) return;
	if(type_button==2&&z4.eof) return;

	if(type_button==1) //PGUP назад
	{
		z4.z_nom-=rows.length-(z4.eof==0);
		z4.z_nom=z4.z_nom<0?0:z4.z_nom;
		z4.rectoz1();
		for(i=0;i<10;i++)
		{
			if(z4.read_before()!=scus_success) break;
		}
		if(i<10) return;
	}

	rows=new Array();
	z4.n2=100;i2=0;j=0;

	if((type_button==1?scus_success:z4.read_next())==scus_success)
	{
		do
		{
			rows[i2]=new Array();
			for(j=0;j<scushw_ff.length;j++) rows[i2][j]=z4.z[scushw_mknom[j]-1];
			if(z4.ntp!="") rows[i2][j]=scusform.scusf(z4.ntp,z4);
			if(++i2>9) break;
		}while(z4.read_next()==scus_success);
	}
	else
	{
		z4.n2=1;
		return;
	}
	z4.n2=1;
	
	scushw(Form_id,scusvr,type,par_x,rows,x,y,lenx,leny);
	
}

function scusf1(x,y,lenx,leny)
{
//	str="<DIV onclick=\"parent.scusw.style.display='none';\" style='POSITION:absolute;font-family:Microsoft Sans Serif,Arial,Verdana;font-size:8pt;TOP:0px;LEFT:0px;WIDTH:"+lenx+"px;HEIGHT:"+leny+"px;'>";
//	str="";

	str="<nobr onclick=\"parent.scusw.style.display='none';scusw.scusms.af.focus();\" STYLE=\"position:absolute;left:0px;cursor:pointer;\"><u>X Close Help Window</u></nobr>";
	str+="<p align=\"center\"><u>Help-Menu</u></p>";
	str+="<br>-><nobr STYLE=\"position:absolute;left:100px;\">One position right</nobr>";
	str+="<br><-<NOBR STYLE=\"position:absolute;left:100px;\">One position left</NOBR>";
	str+="<br>Up<NOBR STYLE=\"position:absolute;left:100px;\">Previous field</NOBR>";
	str+="<br>Down<NOBR STYLE=\"position:absolute;left:100px;\">Next field</NOBR>";
	str+="<br>Home<NOBR STYLE=\"position:absolute;left:100px;\">Go to the begin of the field</NOBR>";
	str+="<br>End<NOBR STYLE=\"position:absolute;left:100px;\">Go to the end of the field</NOBR>";
	str+="<br>Tab<NOBR STYLE=\"position:absolute;left:100px;\">Jump over 10 positions of right</NOBR>";
	str+="<br>Shift+Tab<NOBR STYLE=\"position:absolute;left:100px;\">Jump over 10 positions of left</NOBR>";
	str+="<br>Del<NOBR STYLE=\"position:absolute;left:100px;\">Delete current character</NOBR>";
	str+="<br>Back space<NOBR STYLE=\"position:absolute;left:100px;\">Delete previous character</NOBR>";
	str+="<br>Ctrl+E<NOBR STYLE=\"position:absolute;left:100px;\">Delete characters from current positions to the end</NOBR>";
	str+="<br>Ins<NOBR STYLE=\"position:absolute;left:100px;\">Insert characters after cursor positions</NOBR>";
	str+="<br>Esc<NOBR STYLE=\"position:absolute;left:100px;\">Return original state of the field (or go to the first field)</NOBR>";
	str+="<br>Ctrl+Ins<NOBR STYLE=\"position:absolute;left:100px;\">Copy clipboard</NOBR>";
	str+="<br>Shift+Ins<NOBR STYLE=\"position:absolute;left:100px;\">Paste clipboard</NOBR>";
	str+="<br>Enter<NOBR STYLE=\"position:absolute;left:100px;\">Accepr field value and go to the next filed</NOBR>";

//	str+="</DIV>";

	scushw("","",1,0,str,x,y,lenx,leny);
}
function scusf2(Form_id,scusvr,x,y,lenx,leny)
{
	document[Form_id].scusz1.zvr[scusvr].usl="";
	scusf2next(Form_id,scusvr,x,y,lenx,leny);
}
function scusf2next(Form_id,scusvr,x,y,lenx,leny)
{
	var i,i2,z,zvr;

	scushw_ff="".split(","); //занулявам глобалният масив
	scushw_ff[0]=document[Form_id].af.scusnom; //номера на полето в записа на което ще се присвои стойността от help-менюто
	
	z=document[Form_id].scusz1; zvr=document[Form_id].scusz1.zvr[scusvr];

	par_x=new Array(); //параметри за отместване на х за всяко поле което ще се показван на реда от help-menu
	par_x[0]=0;

	//зареждам ключовите полета със стойности от осн.запис
	for(i=0;i<zvr.mknom.length-1;i++) zvr.z[zvr.mknom[i]-1]=scusform.scusf(zvr.mainp[i],z);
	scushw_mknom=new Array();
	scushw_mknom[0]=zvr.mknom[zvr.mknom.length-1];//номера в записа на поледното поле което ще се обхожда и показва на help-menu

	zvr.z[scushw_mknom[0]-1]=""; //занулявам последният индекс от св.запис, за да може да се обходят всички записи от него

	//понеже при f2 има само 2 полета които се показват на help-menu => използвам само 2 координати за разположение
	if(zvr.ntp!="")	par_x[1]=8*zvr.len[scushw_mknom[0]-1]; // това е координатата на текстовото поле

	rows=new Array();

	zvr.n1=0;zvr.n2=100;
	if(zvr.read_first()==scus_success)
	{
		i2=0;
		do
		{
			rows[i2]=new Array();
			rows[i2][0]=zvr.z[scushw_mknom[0]-1];

			if(zvr.ntp!="")	rows[i2][1]=scusform.scusf(zvr.ntp,zvr);
			if(++i2>9) break;
		}while(zvr.read_next()==scus_success);
	}
	else
	{
		alert("No data");
		return;
	}
	zvr.n2=1;

	scushw(Form_id,scusvr,2,par_x,rows,x,y,lenx,leny);
}
function scusf3(Form_id,scusvr,x,y,lenx,leny)
{
	var zvr,af,hf,usl=prompt("Please input string and press enter","");
	if(usl==null) return;

	af=document[Form_id].af;
	hf=document[Form_id+"_F2F3"].elements[af.id+"_h"];

	zvr=document[Form_id].scusz1.zvr[scusvr];
	zvr.usl=hf.scusntp+" LIKE '%"+usl+"%'";

//	alert(zvr.usl);

	scusf2next(Form_id,scusvr,x,y,lenx,leny);

}
function scusf4(Form_id,x,y,lenx,leny)
{
	document[Form_id].scusz4.usl="";
	scusf4next(Form_id,x,y,lenx,leny);
}
function scusf4next(Form_id,x,y,lenx,leny)
{
	var i,i2,j,z,z4;
	if(typeof(document[Form_id].af)=='undefined') return;
	scushw_ff="".split(",");
	af=document[Form_id].af;

	z1=document[Form_id].scusz1;
	z4=document[Form_id].scusz4;

	if(af.scusnom>z4.mknom[z4.mknom.length]) return; //полето не е индексно

	par_x=new Array(); //параметри за отместване на х за всяко поле което ще се показван на реда от help-menu
	par_x[0]=0;j=0;nom=0;

	for(i=0;i<z4.mknom.length;i++) //зареждам ключовите полета със стойности от осн.запис
	{
		nom=z4.mknom[i];
		if(i<(af.scusnom-1)&&(z1.z[nom-1]!=" "))
		{
			z4.z[nom-1]=z1.z[nom-1];
		}
		else //полета които ще се обхождат
		{
			if(j>0)
			{
				par_x[j]=par_x[j-1]+8*z4.len[scushw_ff[j-1]-1]; //събирам дължината на предходното поле
			}
			else par_x[j]=0;

			scushw_ff[j]=nom;
			j++;
			z4.z[nom-1]=" ";
		}
	}
	
	if(z4.ntp!="") // това е координатата на текстовото поле
	{
		par_x[j]=par_x[j-1]+8*z4.len[scushw_ff[j-1]-1]; //събирам дължината на предходното поле
	}

	//lenx има променлив размер в зависимост от полетата които участват в екрана
	par_x[j-1]<250?lenx=250:lenx=par_x[j-1];
	
	rows=new Array();
//	scushw_ret="".split(",");
	z4.n1=0;
	z4.n2=100;
	if(z4.read_first()==scus_success)
	{
		i2=0;j=0;
		do
		{
			rows[i2]=new Array();
//			scushw_ret[i2]="".split(",");
			for(j=0;j<scushw_ff.length;j++)
			{
				rows[i2][j]=z4.z[scushw_ff[j]-1];
//				scushw_ret[i2][j]=z4.z[scushw_ff[j]-1];
			}
			if(z4.ntp!="") rows[i2][j]=z4.f.scusf(z4.ntp);
			if(++i2>9) break;
		}while(z4.read_next()==scus_success);
	}
	else
	{
		alert("No data");
		return;
	}
	z4.n2=1;
	
	scushw(Form_id,"",4,par_x,rows,x,y,lenx,leny);
}
function scusf7(Form_id,x,y,lenx,leny)
{
	var z4,ntp_ime=document[Form_id].scusz1.ntp_ime=='undefined'?"":document[Form_id].scusz1.ntp_ime;
	if(ntp_ime=="")
	{
		scusf4(Form_id,x,y,lenx,leny);
		return;
	}
	var usl=prompt("Please input string and press enter","");
	if(usl==null) return;

	z4=document[Form_id].scusz4;
	z4.usl=ntp_ime+" LIKE '%"+usl+"%'";

//	alert(z4.usl);

	scusf4next(Form_id,x,y,lenx,leny);
}
