var pluszP=new Array();

pluszP.push(Array(Array("OKJ/Technikusi bizonyítvány",24,0)));
pluszP.push(Array(Array("Országos Művészeti Tanulmányi Versenyen elért legalább 3. helyezés",16,0)));
pluszP.push(Array(Array("Országos Ifjúsági Tudományos Innovációs Versenyen elért legalább 3. helyezés",20,0)));
pluszP.push(Array(Array("OKTV/SzETV 1-10. helyezés",80,0),Array("OKTV/SzETV 11-20. helyezés",40,0),Array("OKTV/SzETV 21-30. helyezés",20,0)));
pluszP.push(Array(Array("Sporteredmény, világ- és Európa-bajnokságon elért legalább 3. helyezés",16,0),Array("Sporteredmény, országos bajnokságon elért legalább 3. helyezés",8,0)));
pluszP.push(Array(Array("TUDOK Nagydíj",24,0),Array("TUDOK Első díj",12,0)));
pluszP.push(Array(Array("Hátrányos helyzetű",20,0),Array("Halmozottan hátrányos helyzetű",40,0),Array("Fogyatékossággal élő",40,0),Array("Gyermekét nevelő",40,0)));

var pluszPLimit=new Array(-1,-1,-1,80,-1,80,40);

var nyelvek=new Array(
	Array("Angol",0),
	Array("Arab",0),
	Array("Beás nyelv",0),
	Array("Bolgár",0),
	Array("Cseh",0),
	Array("Eszperantó",0),
	Array("Finn",0),
	Array("Francia",0),
	Array("Héber",0),
	Array("Holland",0),
	Array("Horvát",0),
	Array("Japán",0),
	Array("Kínai",0),
	Array("Latin",0),
	Array("Lengyel",0),
	Array("Lovári nyelv",0),
	Array("Német",0),
	Array("Olasz",0),
	Array("Orosz",0),
	Array("Portugál",0),
	Array("Román",0),
	Array("Spanyol",0),
	Array("Szerb",0),
	Array("Szlovák",0),
	Array("Szlovén",0),
	Array("Török",0),
	Array("Újgörög",0),
	Array("Ukrán",0));

function pszPopulatePluszP(){
	var select=document.getElementById("pszForm").elements["toAdd"];
	for(x in pluszP) {
		for(y in pluszP[x]){
			var nSel=document.createElement("option");
			nSel.text=pluszP[x][y][0];
			nSel.value=pluszP[x][y][1];
			select.options.add(nSel);
			delete nSel;
		}
	}
}

function pszPopulateNyelvE(){
	var elements=document.getElementById("pszForm").elements;
	var c;
	if(document.getElementById("pszErettsegiTable").c) c=document.getElementById("pszErettsegiTable").c;
	else c=5;
	var selected;
	var val;
	var x=0;
	for(y in elements){
		if(elements[y]&&elements[y].name){
			name=elements[y].name;
			if(name.match("erettsegiS")){
				selected=elements[y].options[elements[y].selectedIndex].text;
				while(elements[y].options.length>1) elements[y].remove(1);
				if(name.match(/\d/)==0) elements[y].remove(0);
				pszPopulateNyelv(name);
				for(i=0;i<c-3;i++) {
					val=elements["erettsegiS"+i].options[elements["erettsegiS"+i].selectedIndex].text;
					if("erettsegiS"+i!=name&&val!="Nem nyelvi tárgy") {
						pszRemoveOption(name,val);
					}
				}
				x=0;
				while(elements[y].options[x].text!=selected) x++;
				elements[y].options[x].selected=true;
			}
		}
	}
	pszPluszPTable();
}

function pszRemoveOption(name,opt){
	sel =document.getElementById("pszForm").elements[name];
	for(x in sel.options){
		if(sel.options[x]&&sel.options[x].text==opt) sel.remove(x);
	}
}

function pszPopulateNyelv(id){
	var sel=document.getElementById("pszForm").elements[id];
	for(x in nyelvek){
		var nSel=document.createElement("option");
		nSel.text=nyelvek[x][0];
		sel.options.add(nSel);
		delete nSel;
	}
} 

function pszAddErettsegi() {
	var table=document.getElementById("pszErettsegiTable");
	if(!table.c) table.c=5;
	table.c++;
	var tdi=Array();
	tdi[0]='<select class="psz_dd_e" name="erettsegiS'+(table.c-4).toString()+'" onchange="pszPopulateNyelvE('+(table.c-4)+');"><option>Nem nyelvi tárgy</option></select>';
	tdi[1]='<input name="erettsegi'+table.c.toString()+'" type="text" onchange="pszValidate(\'erettsegi'+table.c.toString()+'\')"></input>';
	tdi[2]='<input name="erettsegiE'+table.c.toString()+'" type="checkbox" onclick="pszPluszPTable()"></input>';
	tdi[3]="<input name='selectedE"+table.c.toString()+"' type='checkbox' onclick='pszSelectE("+table.c.toString()+")'></input>";
	tdi[4]='<input type="checkbox" onclick="pszRegiE('+table.c.toString()+')" name="regiE'+table.c.toString()+'"></input>'
	tdi[5]="<input name='deleteRow' type='button' value='Töröl' onclick='document.getElementById(\"pszErettsegiTable\").c--;pszDeleteRow(this.parentNode.parentNode);pszPluszPTable();'></input>";
	pszAddRow("pszErettsegiTable",tdi,"pszErettsegiRow");
	pszPopulateNyelvE(table.c-4);
}

function pszAddPluszP() {
	var sel=document.getElementById("pszForm").elements["toAdd"];
	var name=sel.options[sel.selectedIndex].text;
	var tmp;
	for(x in pluszP){
		for(y in pluszP[x]){
			if(pluszP[x][y][0]==name) {
				pluszP[x][y][2]=1;
				tmp=x;
			}
		}
	}
	if(pluszPLimit[tmp]==-1){
		for(y in pluszP[tmp]) if(pluszP[tmp][y][0]!=name) pluszP[tmp][y][2]=0;
	}
	pszPluszPTable();
}

function pszAddPluszPNY(f) {
	var sel=document.getElementById("pszForm").elements["nyelv"].selectedIndex;
	nyelvek[sel][1]=f;
	pszPluszPTable();
}

function pszPluszPTable(){
	var table=document.getElementById("pszPluszPontTable");
	var tmp;
	while(table.rows.length>1) table.deleteRow(table.rows.length-1);
	var elements=document.getElementById("pszForm");
	var tdi=Array()
	for(x in elements){
		if(elements[x]&&elements[x].name){
			name=elements[x].name;
			if(name.match("erettsegiE")&&elements[x].checked){
				tmp=elements[x].name.match(/\d/);
				if(tmp<4) tdi[0]=elements[x].parentNode.parentNode.children[0].innerHTML;
				else {
					if(elements["erettsegiS"+(tmp-4)].selectedIndex!=-1){
						tdi[0]=elements["erettsegiS"+(tmp-4)].options[elements["erettsegiS"+(tmp-4)].selectedIndex].text;
					} else tdi[0]="Ismeretlen tárgy";
				}
				tdi[0]+=" - emelt";
				tdi[1]="40";
				tdi[2]='<input type="button" value="Töröl" onclick=\'document.getElementById("pszForm").elements["erettsegiE'+tmp+'"].checked=false;pszPluszPTable()\'></input>';
				pszAddRow("pszPluszPontTable",tdi,"pszPluszPontRow");
			}
		}
	}
	tdi=Array();
	for(x in nyelvek){
		if(nyelvek[x][1]!=0){
			tdi[0]=nyelvek[x][0];
			if(nyelvek[x][1]==1) {
				tdi[0]+=' - középfokú nyelvvizsga';
				tdi[1]="28";
			}
			else {
				tdi[0]+=' - felsőfokú nyelvvizsga';
				tdi[1]="40";
			}
			tdi[2]='<input type="button" value="Töröl" onclick="nyelvek['+x+'][1]=0;pszPluszPTable();"></input>';
			pszAddRow("pszPluszPontTable",tdi,"pszPluszPontRow");
		}		
	}
	tdi=Array();
	for(x=0;x<pluszP.length;x++){
		for(y=0;y<pluszP[x].length;y++){
			if(pluszP[x][y][2]!=0){
				tdi[0]=pluszP[x][y][0];
				tdi[1]=pluszP[x][y][1];
				tdi[2]='<input type="button" value="Töröl" onclick="pluszP['+x+']['+y+'][2]=0;pszPluszPTable();"></input>';
				pszAddRow("pszPluszPontTable",tdi,"pszPluszPontRow");
			}
		}
	}
	pszCalc();
}

function pszAddRow(id,tdi,cl){
	if(!cl) var cl="";
	var nrow= document.createElement("tr");
	nrow.setAttribute("class",cl);
	nrow.setAttribute("className",cl);
	var c=0;
	for(c in tdi){
		var td=document.createElement("td");
		td.innerHTML=tdi[c];
		nrow.appendChild(td);
		delete td;
	}
	document.getElementById(id).tBodies[0].appendChild(nrow);
}

function pszDeleteRow(item){
	item.parentNode.removeChild(item);
	delete(item);
}

function pszValidate(name) {
	var ele=document.getElementById("pszForm").elements[name];
	var val=ele.value.match(/\d+/);
	if(val>100) ele.value="100%";
	else if(val==null||val<20) ele.value="20%";
	else ele.value=val+"%";
	pszCalc();
}

function pszRegiE(i){
	var par=document.getElementById("pszForm").elements["erettsegi"+i.toString()].parentNode;
	if(document.getElementById("pszForm").elements["regiE"+i.toString()].checked){
		par.innerHTML='	<select class="psz_dd_t" name="erettsegi'+i.toString()+'" onchange="pszCalc()">\
					<option value=2>2</option>\
					<option value=3>3</option>\
					<option value=4>4</option>\
					<option value=5>5</option>\
				</select>'
		document.getElementById("pszForm").elements["erettsegiE"+i.toString()].checked=false;
	} else {
		par.innerHTML='<input name="erettsegi'+i.toString()+'" type="text" onchange="pszValidate(\'erettsegi'+i.toString()+'\')"></input>';
	}
	document.getElementById("pszForm").elements["erettsegiE"+i].disabled=document.getElementById("pszForm").elements["regiE"+i.toString()].checked;
	pszPluszPTable();
}

function pszSelectE(i){
	var form=document.getElementById("pszForm").elements;
	var asdf=0;
	for(t in form) {
		if(form[t]&&form[t].checked==true&&form[t].name.match("selectedE")!=null&&form[t].name!=("selectedE"+i.toString())){
			if(asdf!=0) form[t].checked=false;
			else asdf++;
		}
	}
	pszCalc();
}

function pszPluszPCalc(){
	var tmp;
	var retVal=0;
	for(x in pluszP){
		tmp=0;
		for(y in pluszP[x]){
			if(pluszP[x][y][2]==1) tmp+=pluszP[x][y][1];
		}
		if(pluszPLimit[x]>0&&pluszPLimit[x]<tmp) tmp=pluszPLimit[x];
		retVal+=tmp;
	}
	tmp=0;
	for(x in nyelvek){
		if(nyelvek[x][1]==1) tmp+=28;
		else if(nyelvek[x][1]==2) tmp+=40;
	}
	if(tmp>40) tmp=40;
	retVal+=tmp;
	if(retVal>80) retVal=80;
	return retVal;
}

function pszPluszNyCalc(a){
	var ea=0;
	var pont3=pszPluszPCalc();
	if(a[2]==1){
		ea=40;
		if(a[0]>=4) {
			var l=document.getElementById("pszForm").elements["erettsegiS"+(a[0]-4)];
			l=l.options[l.selectedIndex].text;
			for(x in nyelvek) {
				if(nyelvek[x][0]==l){
					if(nyelvek[x][1]==2) ea=0;
					else if(nyelvek[x][1]==1) ea=5;
				}
			}
		}
	}
	if(80-pont3<ea) ea=80-pont3;
	return ea;
}

function pszCalc() {
	var elements=document.getElementById("pszForm").elements;
	var pont1=0;
	var pont2=0;
	var c;
	var tmp=0;
	var hiba=0;
	var erettsegi=Array();
	if(document.getElementById("pszErettsegiTable").c) c=document.getElementById("pszErettsegiTable").c;
	else c=5;
	var szaz;
	for(i=0;i<c;i++){
		if(elements["erettsegi"+(i+1).toString()].value=="") hiba=1;
		else {
			if(!elements["regiE"+(i+1).toString()].checked){
				szaz=parseInt(elements["erettsegi"+(i+1).toString()].value);
			} else {	
				szaz=(elements["erettsegi"+(i+1).toString()].selectedIndex+2)*20-1;
				if(elements["erettsegi"+(i+1).toString()].value==5)szaz++;
			}
			erettsegi[i]=Array(i+1,szaz,elements["erettsegiE"+(i+1).toString()].checked,elements["selectedE"+(i+1).toString()].checked);
			if(erettsegi[i][3]==true) tmp++;
		}
	}
	for(i=0;i<c-4;i++) if(elements["erettsegiS"+i].selectedIndex==-1) hiba=3;

	if(tmp<2&&hiba==0) hiba=2;
	switch(hiba){
			case 1: document.getElementById("pszEredmeny").innerHTML="<h2 class='pszError'>Nem töltötted ki az összes érettségi eredményedet!</h2>";
				break;
			case 2: document.getElementById("pszEredmeny").innerHTML="<h2 class='pszError'>Nem jeltölted ki a két beszámítandó érettségi tárgyadat!</h2>";
				break;
			case 3: document.getElementById("pszEredmeny").innerHTML="<h2 class='pszError'>Nem választottad ki valamelyik érettségi tárgyadat!</h2>";
				break;
			default:
				pont1+=(parseInt(elements["kozepiskola11"].value)+parseInt(elements["kozepiskola21"].value))/2;
				pont1+=(parseInt(elements["kozepiskola12"].value)+parseInt(elements["kozepiskola22"].value))/2;
				for(i=2;i<6;i++){
					pont1+=parseInt(elements["kozepiskola"+(i+1).toString()+"1"].value.match(/\d+/));
					pont1+=parseInt(elements["kozepiskola"+(i+1).toString()+"2"].value.match(/\d+/));
				}
				pont1*=2;
				pont1+=(erettsegi[0][1]+erettsegi[1][1]+erettsegi[2][1]+erettsegi[3][1]+erettsegi.slice(4).sort(function (a,b){return b[1]-a[1]})[0][1])/5;

				pont1=parseInt(pont1);
				pont3=pszPluszPCalc();
				pont2=0;
				
				for(x in erettsegi){
					if(erettsegi[x][3]==true) {
						pont2+=erettsegi[x][1];
						pont3+=pszPluszNyCalc(erettsegi[x]);
					}
				}
				
				if(pont3>80) pont3=80;
				var pont;
				dt1pont=dt2pont=pont3;
			  	dt1pont+=2*pont2;
			  	dt2pont+=pont1+pont2;
				kiirni = '<dl id="pszEredmenyDl">';
				if(pont2>pont1) {
				  dt1=""; dt1c= " bigger ";
				  dt2=" csak "; dt2c = "";
				} else {
				  dt1=" csak "; dt1c="";
				  dt2=""; dt2c=" bigger ";
				}
				kiirni += '<dt class="'+dt1c+'">Az érettségi eredményeid szerint:</dt><dd class="'+dt1c+'"><span class="'+dt1c+' sum">'+dt1pont+' pont</span></dd>';
				kiirni += '<dt class="'+dt2c+'">Az év végi eredményeid szerint:</dt><dd class="'+dt2c+'"><span class="'+dt2c+' sum">'+dt2pont+' pont</span></dd>';
				kiirni += '</dl>';
				document.getElementById("pszEredmeny").innerHTML=kiirni;
	}
}

