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-100;
}

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");
}

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);

                                }

                                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) {

                                        // New feature, should also check that first array item is valid with current 

                                        if(selObj1[selObj1.selectedIndex].value==arrTargets[i].intclass1){

                                                addOption(selObj3, arrTargets[i].intdescclass3, arrTargets[i].intclass3,false);

                                        }

                                }

                                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) {

                                        // New feature, should also check that second array item is valid with current 

                                        if (selObj2[selObj2.selectedIndex].value==arrTargets[i].intclass2){

                                                // New feature, should also check that first array item is valid with current 

                                                if (selObj1[selObj1.selectedIndex].value==arrTargets[i].intclass1){

                                                        addOption(selObj4, arrTargets[i].intdescclass4, arrTargets[i].intclass4,false);

                                                }

                                        }

                                }

                        }

                }

        }

        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){

                                        // New feature, should also check that third array item is valid with current 

                                        if (selObj3[selObj3.selectedIndex].value==arrTargets[i].intclass3){

                                                // New feature, should also check that second array item is valid with current 

                                                if (selObj2[selObj2.selectedIndex].value==arrTargets[i].intclass2){

                                                        // New feature, should also check that first array item is valid with current 

                                                        if (selObj1[selObj1.selectedIndex].value==arrTargets[i].intclass1){

                                                                addOption(selObj5, arrTargets[i].intdescclass5, arrTargets[i].intclass5,false);

                                                        }

                                                }

                                        }

                                }

                        }

                }

        }

        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);

        }

        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);
	}

	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;
}

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.innerHTML='<IMG SRC="pics/processing.gif">'+processtext+'...';
}