var internalEvent=false;

function checkLajitteluValue(value, sDivID){
 divObj=document.getElementById(sDivID); 
 (value==0)?divObj.style.visibility='hidden':divObj.style.visibility='visible';
}

function SwapClassBySelection(sRadioObj, kohdeObj, sClassName){
  obj=document.getElementById(sRadioObj); 
  (obj.checked!=true)?kohdeObj.className=sClassName:'';
}

// params: target radiobutton, table target row, row's over-class, row's out-class, row's selected-class
function SelectTableRow(sRadioObj, riviObj, sClassName_over, sClassName_out, sClassName_selected){
 elems = document.getElementsByTagName('tr');

 // clear the rows if classname matches
 for (i=0; i<elems.length; i++){    
   if ( (elems[i].className==sClassName_over) || 
	    (elems[i].className==sClassName_selected) ){
        elems[i].className=sClassName_out;
	}
 } 
  // select the target row and the target radiobutton
  obj=document.getElementById(sRadioObj); 
  obj.checked=true;
  riviObj.className=sClassName_selected;
}

function Color2(sRadioObj, riviObj){
  obj=document.getElementById(sRadioObj); 
  (obj.checked!=true)?riviObj.className='trOn':'';
}

function ColorOff2(sRadioObj, riviObj){
  obj=document.getElementById(sRadioObj); 
  (obj.checked!=true)?riviObj.className='trOff':'';
}

function ValitseRivi(sobj, riviObj){
 elems = document.getElementsByTagName('tr');

 for (i=0; i<elems.length; i++){    
   if ( (elems[i].className=='trOn') || 
	    (elems[i].className=='trSelected') ){
        elems[i].className='trOff';
	}
 } 
  obj=document.getElementById(sobj); 
  obj.checked=true;
  riviObj.className='trSelected';
}

function naytaDiv(div_id,x,y){
	div=document.getElementById(div_id);
	div.style.visibility="visible";
	div.style.top=y+21;
	div.style.left=x-200;
}

function naytaPacketingDiv(div_id,x,y){
	div=document.getElementById(div_id);
	div.style.visibility="visible";
	div.style.top=y+21;
	div.style.left=x-30;
}

function naytaLentoHinnatDiv(div_id,x,y){
	div=document.getElementById(div_id);
	div.style.visibility="visible";
	div.style.top=y-60;
	div.style.left=x-260;
}

function piilotaDiv(div_id){
	div=document.getElementById(div_id);
	div.style.visibility="hidden";
}

function naytaDiv2(div_id){
	div=document.getElementById(div_id);
	div.style.visibility="visible";
}

function getMouseXY(e) {
  if (IE) { // IE x-y pos
   	tempX = event.clientX + document.body.scrollLeft;	
	tempY = event.clientY + document.body.scrollTop;
  }else {  // NS, FF x-y pos
	tempX = e.pageX;
	tempY = e.pageY;
  }  
  return true;
}

function ValitseRadio(sobj){
  obj=document.getElementById(sobj); 
  obj.checked=true;
}

function ValitseCheck(sobj){
  obj=document.getElementById(sobj); 
//  obj.checked=true;
  (obj.checked!=true)?obj.checked=true:obj.checked=false;
}

function naytaKorttiDiv(div_id){
	div=document.getElementById(div_id);
	div.className='kortintiedot_div_visible';
}

function openPopup(url) {
	popup = window.open(url,"info","statusbar=0,resizable=1,scrollbars=1,location=0,menubar=0,toolbar=1,width=600,height=480");
	popup.focus();
}
function openPopupWidth(url, width) {
	popup = window.open(url,"info","statusbar=0,resizable=1,scrollbars=1,location=0,menubar=0,toolbar=1,width="+width+",height=480");
	popup.focus();
}

//Luokitus funktiot
function Target(int1, int2, int3, int4, int5, newpricinggroup, newduration, intdesc1, intdesc2, intdesc3, intdesc4, intdesc5, newpricinggroupdesc, newdurationdesc){
	this.intclass1=int1;
	this.intclass2=int2;
	this.intclass3=int3;
	this.intclass4=int4;
	this.intclass5=int5;
	this.pricinggroup=newpricinggroup;
	this.duration=newduration;

	this.intdescclass1=intdesc1;
	this.intdescclass2=intdesc2;
	this.intdescclass3=intdesc3;
	this.intdescclass4=intdesc4;
	this.intdescclass5=intdesc5;	
	this.pricinggroupdesc=newpricinggroupdesc;
	this.durationdesc=newdurationdesc;
}

//function filterClassifications(classNumber,arrTargets,txtValitse,txtValitseKesto,txtValitseHinnastoryhma){
function filterClassifications(classNumber,arrTargets){
	var selObj1=document.getElementById('intclass1');
	var selObj2=document.getElementById('intclass2');
	var selObj3=document.getElementById('intclass3');
	var selObj4=document.getElementById('intclass4');
	var selObj5=document.getElementById('intclass5');
	var selObjPrice=document.getElementById('Valittu_HinnastoRyhma');
	var selObjDuration=document.getElementById('Valittu_Kesto');

	if (classNumber==1){
		emptySelect(selObj2);
		emptySelect(selObj3);
		emptySelect(selObj4);
		emptySelect(selObj5);
		if (selObj2!=null){
			addOption(selObj2, '--'+txtValitse2+'--', '');

			for(i=0;i<arrTargets.length;i++){
				
				if(!(isValueAdded(arrTargets[i].intclass2,selObj2)) && selObj1[selObj1.selectedIndex].value==arrTargets[i].intclass1){
					addOption(selObj2, arrTargets[i].intdescclass2, arrTargets[i].intclass2,false);
					//alert('1');
				}
				oldvalue=arrTargets[i].intclass2;
			}	
		}
	}

	if (classNumber==2){;
		emptySelect(selObj3);
		emptySelect(selObj4);
		emptySelect(selObj5);
		if (selObj3!=null){
			addOption(selObj3, '--'+txtValitse3+'--', '');
			
			for(i=0;i<arrTargets.length;i++){	
				if(!(isValueAdded(arrTargets[i].intclass3,selObj3)) && selObj2[selObj2.selectedIndex].value==arrTargets[i].intclass2) {
					if(selObj1[selObj1.selectedIndex].value==arrTargets[i].intclass1){
						addOption(selObj3, arrTargets[i].intdescclass3, arrTargets[i].intclass3,false);
//						if(selObj1[selObj1.selectedIndex] !=null){alert(selObj1.selectedIndex)};
						//alert('2');
					}
				}
				oldvalue=arrTargets[i].intclass3;
			}
		}
	}

	if (classNumber==3){
		emptySelect(selObj4);
		emptySelect(selObj5);
		if (selObj4!=null){
			addOption(selObj4, '--'+txtValitse4+'--', '');

			for(i=0;i<arrTargets.length;i++){	
				if(!(isValueAdded(arrTargets[i].intclass4,selObj4)) && selObj3[selObj3.selectedIndex].value==arrTargets[i].intclass3) {
					if (selObj2[selObj2.selectedIndex].value==arrTargets[i].intclass2){
						if (selObj1[selObj1.selectedIndex].value==arrTargets[i].intclass1){
							addOption(selObj4, arrTargets[i].intdescclass4, arrTargets[i].intclass4,false);
							//alert('3');
						}
					}
				}
			}
		}
	}

	if (classNumber==4){
		emptySelect(selObj5);

		if (selObj5!=null){
			addOption(selObj5, '--'+txtValitse5+'--', '');

			for(i=0;i<arrTargets.length;i++){
				if(!(isValueAdded(arrTargets[i].intclass5,selObj5))&&selObj4[selObj4.selectedIndex].value==arrTargets[i].intclass4){
					if (selObj3[selObj3.selectedIndex].value==arrTargets[i].intclass3){
						if (selObj2[selObj2.selectedIndex].value==arrTargets[i].intclass2){
							if (selObj1[selObj1.selectedIndex].value==arrTargets[i].intclass1){
								addOption(selObj5, arrTargets[i].intdescclass5, arrTargets[i].intclass5,false);
					//alert('4');
							}
						}
					}
				}
			}
		}
	}

	emptySelect(selObjDuration);
	addOption(selObjDuration, '--'+txtValitseKesto+'--', '');	
	for(i=0;i<arrTargets.length;i++){
		res=!(isValueAdded(arrTargets[i].duration,selObjDuration));
		res=res&&isCriteriaOK(arrTargets[i],selObj1,selObj2,selObj3,selObj4,selObj5);
		if(res){
			addOption(selObjDuration,arrTargets[i].durationdesc, arrTargets[i].duration,false);
		}
		//sortSelect(selObjDuration);
	}
	
	sortSelect(selObjDuration); // järjestetään kesto

	if (selObjPrice!=null){
		emptySelect(selObjPrice);
		addOption(selObjPrice, '--'+txtValitseHinnastoryhma+'--', '');	
		for(i=0;i<arrTargets.length;i++){
			res=!(isValueAdded(arrTargets[i].pricinggroup,selObjPrice));
			res=res&&isCriteriaOK(arrTargets[i],selObj1,selObj2,selObj3,selObj4,selObj5);
			if(res){
				addOption(selObjPrice,arrTargets[i].pricinggroupdesc, arrTargets[i].pricinggroup,false);
			}
		}
	}
}

//function initClassifications(arrTargets,selclass1,selclass2,selclass3,selclass4,selclass5,selPrice,selDuration,txtValitse,txtValitseKesto,txtValitseHinnastoryhma){
function initClassifications(arrTargets,selclass1,selclass2,selclass3,selclass4,selclass5,selPrice,selDuration){
	var selObj1=document.getElementById('intclass1');
	var selObj2=document.getElementById('intclass2');
	var selObj3=document.getElementById('intclass3');
	var selObj4=document.getElementById('intclass4');
	var selObj5=document.getElementById('intclass5');
	var selObjPrice=document.getElementById('Valittu_HinnastoRyhma');
	var selObjDuration=document.getElementById('Valittu_Kesto');
	
	var isSelected=false;

	//alert(arrTargets);

	addOption(selObj1, '--'+txtValitse1+'--', '');
	
	for(i=0;i<arrTargets.length;i++){
		
		res=isValueAdded(arrTargets[i].intclass1,selObj1);
		
		if(!res){
			if (arrTargets[i].intclass1==selclass1){isSelected=true;}else{isSelected=false;}
			//alert(isSelected);
			
			addOption(selObj1,arrTargets[i].intdescclass1, arrTargets[i].intclass1,isSelected);
		}
	}
	
	//if ((selObj2!=null)&&(selclass2!="")){
	if (selObj2!=null){
		addOption(selObj2, '--'+txtValitse2+'--', '');	
		for(i=0;i<arrTargets.length;i++){
			res=isValueAdded(arrTargets[i].intclass2,selObj2);
			if(!res&&selObj1[selObj1.selectedIndex].value==arrTargets[i].intclass1){
				if (arrTargets[i].intclass2==selclass2){isSelected=true;}else{isSelected=false;}
				addOption(selObj2,arrTargets[i].intdescclass2, arrTargets[i].intclass2,isSelected);
			}
		}
	}

	//if ((selObj3!=null)&&(selclass3!="")){
	if (selObj3!=null){
		addOption(selObj3, '--'+txtValitse3+'--', '');	
		for(i=0;i<arrTargets.length;i++){
			res=isValueAdded(arrTargets[i].intclass3,selObj3);
			if(!res&&selObj2[selObj2.selectedIndex].value==arrTargets[i].intclass2){
				if (arrTargets[i].intclass3==selclass3){isSelected=true;}else{isSelected=false;}
				addOption(selObj3,arrTargets[i].intdescclass3, arrTargets[i].intclass3,isSelected);
			}
		}
	}

	//if ((selObj4!=null)&&(selclass4!="")){
	if (selObj4!=null){
		addOption(selObj4, '--'+txtValitse4+'--', '');	
		for(i=0;i<arrTargets.length;i++){
			res=isValueAdded(arrTargets[i].intclass4,selObj4);
			if(!res&&selObj3[selObj3.selectedIndex].value==arrTargets[i].intclass3){
				if (arrTargets[i].intclass4==selclass4){isSelected=true;}else{isSelected=false;}
				addOption(selObj4,arrTargets[i].intdescclass4, arrTargets[i].intclass4,isSelected);
			}
		}
	}

	//if ((selObj5!=null)&&(selclass5!="")){
	if (selObj5!=null){
		addOption(selObj5, '--'+txtValitse5+'--', '');	
		for(i=0;i<arrTargets.length;i++){
			res=isValueAdded(arrTargets[i].intclass5,selObj5);
			if(!res&&selObj4[selObj4.selectedIndex].value==arrTargets[i].intclass4){
				if (arrTargets[i].intclass5==selclass5){isSelected=true;}else{isSelected=false;}
				addOption(selObj5,arrTargets[i].intdescclass5, arrTargets[i].intclass5,isSelected);
			}
		}
	}
	
	addOption(selObjDuration, '--'+txtValitseKesto+'--', '');	
	for(i=0;i<arrTargets.length;i++){
		res=!(isValueAdded(arrTargets[i].duration,selObjDuration));
		res=res&&isCriteriaOK(arrTargets[i],selObj1,selObj2,selObj3,selObj4,selObj5);
		if(res){
			if (arrTargets[i].duration==selDuration){isSelected=true;}else{isSelected=false;}
			addOption(selObjDuration,arrTargets[i].durationdesc, arrTargets[i].duration,isSelected);
		}
		//sortSelect(selObjDuration);
	}

	sortSelect(selObjDuration); // järjestetään kesto

	emptySelect(selObjPrice);
	if (selObjPrice!=null){
		addOption(selObjPrice, '--'+txtValitseHinnastoryhma+'--', '');	
		for(i=0;i<arrTargets.length;i++){
			res=!(isValueAdded(arrTargets[i].pricinggroup,selObjPrice));
			res=res&&isCriteriaOK(arrTargets[i],selObj1,selObj2,selObj3,selObj4,selObj5);
			if(res){
				if (arrTargets[i].pricinggroup==selPrice){isSelected=true;}else{isSelected=false;}
				addOption(selObjPrice,arrTargets[i].pricinggroupdesc, arrTargets[i].pricinggroup,isSelected);
			}
		}
	}

}

function emptySelect(selObj){
	if (selObj!=null)
	{
		while (selObj.length>0)
		{
			selObj.remove(selObj.length-1);
		}
	}
}

function sortSelect(selObj){
	var myValues = new Array();
	var myTexts = new Array();
	if (internalEvent==false)
	{
		if (selObj!=null)
		{
			if (selObj.length>0)
			{	
				internalEvent=true;
				for(i=0;i<selObj.length;i++){
					myValues[i]=selObj.options[i].value;
					myTexts[i]=selObj.options[i].text;
				}
				emptySelect(selObj);
				myValues.sort();
				myTexts.sort();
				for(i=0;i<myValues.length;i++){
					//alert(i);
					//alert(myTexts[i]+' - '+myValues[i]);
					addOption(selObj,myTexts[i],myValues[i],false);
				}
			}
		}
		internalEvent=false;
	}
}

function addOption(sel, myText, myValue,isSelected){
	op=new Option();
	op.text=myText;
	op.value=myValue;
	op.selected=isSelected;
	try
    {
		sel.add(op,null); // standards compliant
    }
	catch(ex)
    {
		sel.add(op); // IE only
    }

}

function isValueAdded(val, selObj){
	for (j=0;j<selObj.options.length;j++){
		if (selObj.options[j].value==val){
			return true;
		}
	}
	return false;
}

function isCriteriaOK(targ, int1, int2, int3, int4, int5){	
	if ((int1!=null)&&(int1.length>1)&&((targ.intclass1!=int1[int1.selectedIndex].value&&int1[int1.selectedIndex].value!=""))){return false;}
	if ((int2!=null)&&(int2.length>1)&&((targ.intclass2!=int2[int2.selectedIndex].value&&int2[int2.selectedIndex].value!=""))){return false;}
	if ((int3!=null)&&(int3.length>1)&&((targ.intclass3!=int3[int3.selectedIndex].value&&int3[int3.selectedIndex].value!=""))){return false;}
	if ((int4!=null)&&(int4.length>1)&&((targ.intclass4!=int4[int4.selectedIndex].value&&int4[int4.selectedIndex].value!=""))){return false;}
	if ((int5!=null)&&(int5.length>1)&&((targ.intclass5!=int5[int5.selectedIndex].value&&int5[int5.selectedIndex].value!=""))){return false;}
	return true;
}
//EOF Luokitus funktiot

function valitseLentokentta(strKentta, winObj){
	winObj.document.getElementById('Mihin_ed').value=strKentta;
	close();
}
/*
function setFlightData(DepartureCity, DepartureDate, ArrivalCity, ReturnDate){
	alert(document.frmLentolista.DepartureCity.value=DepartureCity+' '+document.frmLentolista.DepartureDate.value+' '+document.frmLentolista.ArrivalCity.value+' '+document.frmLentolista.ReturnDate.value);
	document.frmLentolista.DepartureCity.value=DepartureCity;
	document.frmLentolista.DepartureDate.value=DepartureDate;
	document.frmLentolista.ArrivalCity.value=ArrivalCity;
	document.frmLentolista.ReturnDate.value=ReturnDate;
	alert(document.frmLentolista.DepartureCity.value=DepartureCity+' '+document.frmLentolista.DepartureDate.value+' '+document.frmLentolista.ArrivalCity.value+' '+document.frmLentolista.ReturnDate.value);
}*/

function disableDropdown(dd){
	dd.disabled=true;
//	for(i=0;i<dd.options.length;i++){
//		dd.options[i].style.Color="DDDDDD";
//	}
}

function enableDropdown(dd){
	dd.disabled=false;
//	for(i=0;i<dd.options.length;i++){
//		dd.options[i].style.Color="000000";
//	}
}

function process(processtext){
	content=document.getElementById("Layer2");
	(content!=null)?content.innerHTML = '<IMG SRC="pics/processing.gif">'+processtext+'...':'';
}
/* OLD 23.1.2008
function process(processtext){
	content=document.getElementById("Layer2");
	processContent=document.getElementById("ProcessLayer");
	(content==null)?content=document.getElementById("Layer2_lennot"):'';
	(content==null)?content=document.getElementById("Layer2_packeting"):'';
	if ( (content!=null) && (processContent!=null) ){
		processContent.innerHTML = '<IMG SRC="pics/processing.gif">'+processtext+'...';
		processContent.style.display = '';
		content.style.display = 'none';
	}
}
*/
function processPacketing(processtext){
	lr3 = document.getElementById("layer3_esimerkkimajoitus");
	lr4 = document.getElementById("Layer3_lennot");
	content=document.getElementById("Layer2");
	if (content!=null){
		content.innerHTML='<IMG SRC="pics/processing.gif">'+processtext+'...';
		content.style.border = "none";
	}
	
	if (lr3!=null){
		lr3.style.display = "none";
		}
	if (lr4!=null){
		lr4.style.display = "none";
	}
	
}

/* OLD 23.1.2008
function processPacketing(processtext){
	lr3 = document.getElementById("layer3_esimerkkimajoitus");
	lr4 = document.getElementById("Layer3_lennot");
	content=document.getElementById("Layer2");
	processContent=document.getElementById("ProcessLayer");
	if (content!=null){
		processContent.innerHTML='<IMG SRC="pics/processing.gif">'+processtext+'...';
		processContent.style.border = 'none';
		processContent.style.display = '';
		content.style.display = 'none';
	}
	if (lr3!=null){
		lr3.style.display = "none";
		}
	if (lr4!=null){
		lr4.style.display = "none";
	}
	
}
*/
function validateDates(changedSelobj){
	var date1 = new Date();
	var dateJ = new Date();
	var aPv = document.getElementById('depDay'); 
	var aKk = document.getElementById('depMonthYear'); 
	var lPv = document.getElementById('retDay'); 
	var lKk = document.getElementById('retMonthYear'); 
	var pkk;
	var pdd;
	if (changedSelobj.id==aKk.id){
		pkk=aKk;
		pdd=aPv;
	}
	if (changedSelobj.id==lKk.id){
		pkk=lKk;
		pdd=lPv;
	}
	if (changedSelobj.id==aKk.id||changedSelobj.id==lKk.id){

		var i;
		date1.setDate('01'); // (alustetaan tarkoituksella 1. päivälle: tästä lähdetään työstämään kalenteripäiviä)
		date1.setMonth(pkk.value.substring(0,2)-1);
		date1.setFullYear(pkk.value.substring(3,7));
		dateJ.setTime(date1.getTime()); // J-dateen 1. date jemmaan päivien muodostamista varten
		var selValue = pdd.value;
		tyhjennaSelectTotal(pdd.id)


		for (i=1; i<32; i++){ // 31 kierrosta
			if (date1.getMonth()!=dateJ.getMonth()){
				(selValue>=i)?pdd.lastChild.selected=true:''; // viimeinen item valituksi, koska aiempi valittu > nykyinen.items.count
				break;
			}
			// väsätään päivät
			var option = null;
			option = document.createElement("option");
			option.appendChild(document.createTextNode(i));
			option.value = i;
			pdd.appendChild(option);
			(selValue==i)?option.selected=true:'';
			date1.setDate(date1.getDate()+1); // kasvatetaan date2:sta
		}
	}
	// tässä kohtaa arvot vastaavat oikeita päiviä. 
	// seuraavaksi tsekataan, ettei ole valittu ristiin
	crossCheckDates(changedSelobj);
}

function crossCheckDates(changedSelobj){
	var aPv = document.getElementById('depDay'); 
	var aKk = document.getElementById('depMonthYear'); 
	var lPv = document.getElementById('retDay'); 
	var lKk = document.getElementById('retMonthYear'); 
	var eka = new Date();
	var toka = new Date();
	eka.setDate('01'); // pakollinen alustus 29-31
	toka.setDate('01'); // pakollinen alustus 29-31
	
	// pvm-täyttöjärjestys: 1. mm 2. yyyy 3. dd
	eka.setMonth(aKk.value.substring(0,2)-1);
	eka.setFullYear(aKk.value.substring(3,7));
	eka.setDate(aPv.value.substring(0,2));

	toka.setMonth(lKk.value.substring(0,2)-1);
	toka.setFullYear(lKk.value.substring(3,7));
	toka.setDate(lPv.value.substring(0,2));
	if (eka.getTime()>toka.getTime()){
		if (changedSelobj.id==aKk.id || changedSelobj.id==aPv.id){ // muutettu alkupvm:ää
			// muutetaan tokaa päivämäärää eteenpäin
			lPv.value = aPv.value;
			lKk.value = aKk.value;
			lKk.onchange();
		}
		if (changedSelobj.id==lKk.id || changedSelobj.id==lPv.id){ // muutettu loppupvm:ää
			// muutetaan ekaa päivämäärää taaksepäin
			aPv.value = lPv.value;
			aKk.value = lKk.value;
			aKk.onchange();
		}
	}
	
}

/* listojen tyhjennys */
function tyhjennaSelectTotal(selectID){
	var lista = document.getElementById(selectID);
	for(var i=lista.childNodes.length-1; i>=0; i--){
		lista.removeChild(lista.lastChild);
	}
}

function validateEmail(address, errorTxt){
	if (address.value !=''){
		var sl = 'abcdefghijklmnopqrstuvwxyz1234567890.-_@';
		valid = new Boolean(1);
		var addr = address.value.toLowerCase();
		if (addr.length > 4 ){
			apos=addr.indexOf("@");
			dotpos=addr.lastIndexOf(".");
			if ((apos>0)&&(dotpos-apos>1)){
			for(var i=0; i<addr.length; i++){
					if (sl.indexOf(addr.charAt(i)) < 0){
						valid = 0;
						break;
					}
				}
			}
			else{
				valid = 0;
			}
		}
		else{
			valid = 0;
		}
		if (valid==0){
		  alert(errorTxt);
		  address.focus(); 
		} 
	}
}

/* tarkistaa emailosoitteen muodon ja palauttaa virhetilanteessa fokuksen takaisin email-kenttään */
function validateEmailSetFocus(addressObj){
	if (addressObj.value !=''){
		var sl = 'abcdefghijklmnopqrstuvwxyz1234567890.-_@';
		valid = new Boolean(1);
		var addr = addressObj.value.toLowerCase();
		if (addr.length > 4 ){
			apos=addr.indexOf("@");
			dotpos=addr.lastIndexOf(".");
			if ((apos>0)&&(dotpos-apos>1)){
			for(var i=0; i<addr.length; i++){
					if (sl.indexOf(addr.charAt(i)) < 0){
						valid = 0;
						break;
					}
				}
			}
			else{
				valid = 0;
			}
		}
		else{
			valid = 0;
		}
		if(valid==0){
			addressObj.style.color='red';
			setTimeout(function(){addressObj.focus()},100)
		}
		else{
			addressObj.style.color='';
			
		}
	}
}

/* **********  ********** ********** ********** ********** ********** **********  ********** ********** ********** */
/* matkustajamäärän rajoitus */
/* **********  ********** ********** ********** ********** ********** **********  ********** ********** ********** */
var adList = new Array(); // aik-itemit
var chList = new Array(); // lap-itemit
var infList = new Array(); // ilm-itemit

var max; // max(aik + lap + ilm)
var left1; // montako aik mahd valita (max - (valitut lap + valitut ilm))
var left2; // montako lap mahd valita (max - (valitut aik + valitut ilm))
var left3; // montako ilm mahd valita (max - (valitut aik + valitut lap))

var s1; // aik-selectobj
var s2; // lap-selectobj
var s3; // ilm-selectobj

	/* html ==> body.onLoad */
	function initCnt(sel1, sel2, sel3, maximum){
		/* tiedot muuttujiin */
		s1 = document.getElementById(sel1);
		s2 = document.getElementById(sel2);
		s3 = document.getElementById(sel3);
		max = maximum;
		/* luetaan itemit listoihin */
		copyToList(s1, adList);
		copyToList(s2, chList);
		copyToList(s3, infList);
		/* lasketaan alkuun */
		calcCnt(s1);
	}

	function copyToList(select, arr){
		for(var i=0; i<select.length; i++){
			arr.push(select.options[i]);
		}
	}
	/* html ==> select.onChange(this) */
	function calcCnt(sender){
		calcItemsLeft(); // lasketaan tehtyjen valintojen perusteella mahdollisten valittavien määrä
		emptyOthers(sender); // tyhjennetään muut kuin sender
		fillOthers(sender); // täytetään muut kuin sender
	}

	function calcItemsLeft(){
		left1 = max - (s2.selectedIndex + s3.selectedIndex);
		left2 = max - (s1.selectedIndex + s3.selectedIndex); 
		left3 = max - (s1.selectedIndex + s2.selectedIndex);
	}

	function emptyOthers(sender){
		if (sender.id == s1.id){
			emptySelectTag(s2)
			emptySelectTag(s3)
		}
		if (sender.id == s2.id){
			emptySelectTag(s1)
			emptySelectTag(s3)
		}
		if (sender.id == s3.id){
			emptySelectTag(s1)
			emptySelectTag(s2)
		}
	}

	function emptySelectTag(selectObj){
		for(var i=selectObj.childNodes.length-1; i>=0; i--){
			selectObj.removeChild(selectObj.lastChild);
		}
	}

	
	function fillOthers(sender){
		if (s1.id == sender.id){
		for(var i=0; i<left2; i++){
				(chList[i])?s2.appendChild(chList[i]):'';
			}
			for(var i=0; i<left3; i++){
				(infList[i])?s3.appendChild(infList[i]):'';
			}
		}

		if (s2.id == sender.id){
			for(var i=0; i<left1; i++){
				(adList[i])?s1.appendChild(adList[i]):'';
			}
			for(var i=0; i<left3; i++){
				(infList[i])?s3.appendChild(infList[i]):'';
			}
		}

		if (s3.id == sender.id){
			for(var i=0; i<left1; i++){
				(adList[i])?s1.appendChild(adList[i]):'';
			}
			for(var i=0; i<left2; i++){
				(chList[i])?s2.appendChild(chList[i]):'';
			}
		}
		
	}
/* **********  ********** ********** ********** ********** ********** **********  ********** ********** ********** */
/* eo matkustajamäärän rajoitus */
/* **********  ********** ********** ********** ********** ********** **********  ********** ********** ********** */

