function rTrDet(url,oa,oc,oi,or,oh,ocy,na,nc,ni){
    var ret=true
	var adults=getSelVal(oa)
	var children=getSelVal(oc)
	var infants=getSelVal(oi)
	var na_=adults,nc_=children,ni_=infants
	if(typeof(na)!='undefined')na_=na
	if(typeof(nc)!='undefined')nc_=nc
	if(typeof(ni)!='undefined')ni_=ni
	var pc=''
	if(na_!=adults||nc_!=children||ni_!=infants) pc='1'
	if(ocy!='') ocy=getSelVal(ocy).replace(" ",'').replace(" ",'')
	var rtn=''
	if(or!='') rtn=getChkBox(or)
    if(infants > adults){
        alert(mTxt['more_infants_than_adults'])
        ret=false
    }
    if (ret)
        redir(url,"{ADULTS}",adults,"{CHILDREN}",children,"{INFANTS}",infants,"{RETURN}",rtn,"{OCY}",ocy,"{PC}",pc)
    return ret
}
function rSelDat(url,odym,odd,orym,ord,any,rt,urlB,urlY,urlD){
    var ret=true
    var code=datecode(new Date())
    var oym=getVal(odym)
    var oday=getVal(odd)
    odate=oym+oday
    var iym=''
    var iday=''
    var idate=''
    if(rt){
        iym=getVal(orym)
        iday=getVal(ord)
        idate=iym+iday
        if((iym!=''&&oym=='')||(iym==''&&oym!='')){
            alert(mTxt['select_both_month'])
            ret=false
        }else if((iday!=''&&oday=='')||(iday==''&&oday!='')){
            alert(mTxt['select_both_days'])
            ret=false
        }
    }
    ymAny=(oym==''&&(!rt||rt&&(iym=='')))
    dAny=(oday==''&&(!rt||rt&&(iday=='')))
    
    if(ret){
        if(!ymAny&&!dAny){
            if(!isDate(odate)){
                alert(mTxt['out_date_not_valid'])
                setcontrols(odym, odd, code.substr(0,4), code.substr(4,2))
                ret=false
            }else{
                if (odate < datecode(new Date())){
                    alert(mTxt['out_date_earlier_b4_today'])
                    setcontrols(odym, odd, code.substr(0,4), code.substr(4,2))
                    ret=false
                }else if(orym!=""&&ord!=""){
                    if (!isDate(idate)) {
                        alert(mTxt['in_date_not_valid'])
                        setcontrols(orym, ord, getVal(odym), getVal(odd))
                        ret=false
                    }else{
                        if(datefromcode(odate) > datefromcode(idate)){
                            alert(mTxt['out_date_later_than_in'])
                            setcontrols(orym, ord, getVal(odym), getVal(odd))
                            ret=false
                        }
                    }
                }else idate=''
            }
        }else if(!ymAny&&dAny){
            if(rt){
                if(oym>iym){
                    alert(mTxt['out_date_later_than_in'])
                    setcontrols(orym, ord, oym, '')
                    ret=false
                }
            }
        }else if(ymAny&&!dAny){
            alert(mTxt['select_month'])
            ret=false
        }
    }
    if(ret){
        if(any) u=urlB
        else if(ymAny) u=urlY
        else if(!ymAny&&dAny) u=urlD
        else u=url
        dt=''
        if(!ymAny){
            dt+=oym+oday
            if(rt)dt+='/'+iym+iday
            dt+='/'
        }
        redir(u,"{ODATE}",odate,"{IDATE}",idate,"{DATES}",dt)
    }
    else{
        //set outbound date to today's date
        //code = datecode(new Date());
        //de(odym).value = code.substr(0,4);
        //de(odd).value = code.substr(4,2);
    }
    return ret
}
function rPref(url,ol,oc){
    lang=getVal(ol)
    curr=getSelVal(oc)
    redir(url,"{LANG}",lang,"{CURR}",curr)
}
function rDay(url,datecode){
    redir(url,"{DATECODE}",datecode)
}
function rList(url,dd,t,urlany){
    if(getSelVal(dd)=='')
        redir(urlany)
    else
        redir(url,"{PLACEHOLDER}",getSelVal(dd).replace(" ",'').replace(" ",''))
}
function rPrefRes(url,urlCcy,ol,oc,sOldCcy){
    curr=getSelVal(oc)
    if(sOldCcy==curr || sOldCcy=="")
        return rPref(url, ol, oc)
    else
        return rPref(urlCcy, ol, oc)
}
function rEmail(url,oe){
    email=getVal(oe)
    redir(url,"{EMAIL}",email)
}
function rThis(url){
    //alert(url)
    redir(url)
    return false
}
function redir(url){
    for(var i=1;i<arguments.length;i+=2){
        s=arguments[i]
        r=String(arguments[i+1]).toLowerCase()
        url=url.replace(s,r).replace(s,r)
    }
    location.href=url
    return false
}
function datefromcode(datecode){
    var objdate = new Date()
    var syear = String(objdate.getFullYear()).substr(0,2)
    objdate.setFullYear(syear + datecode.substr(0,2), parseInt(datecode.substr(2, 2) - 1,10), parseInt(datecode.substr(4, 2),10))
    objdate.setHours(0)
    objdate.setMinutes(0)
    objdate.setSeconds(0)
    return objdate
}
function datecode(d){
    s=String(d.getFullYear()).substr(2,2)+Pad0(d.getMonth()+1)+Pad0(d.getDate())
    return s
}
function Pad0(s){s=""+s;return((s.length==1)?"0"+s:s)}
function isDate(datecode){
    var objdate=new Date()
    var syear=String(objdate.getFullYear()).substr(0,2)
    var year=syear + datecode.substr(0,2)
    var month=parseInt(datecode.substr(2, 2) - 1,10)
    var day=parseInt(datecode.substr(4, 2),10)
    var test=new Date(year,month,day)
    if ((test.getFullYear() == year) && (test.getMonth() == month) && (test.getDate() == day))
        return true
    else
        return false
}
function setcontrols(cym, cd, ym, d){
    setSel(cym,ym)
    setSel(cd,d)
}
function activity()
{
window.external.Channel.Initialize();
var surl = String(window.location);
if(surl.indexOf('activity')==-1)
{
SafeSendData(String(window.location));
}
}
function Channel_OnDataReceived()
// This event is fired when data is received from the remote application using Channel.SendData.
// Inspect the value of Channel.Data.
{
	var myData;
	var surl;
	var sprefix;
	myData=window.external.Channel.Data;
	//dodajemy parametr actvitity do adresu url
	surl = String(myData);
	if(surl.indexOf('?')>-1)
	{
	    sprefix='&';
	}
	else
	{
	    sprefix='?';
	}
	surl+=sprefix+'activity';
	window.location=surl;
}
function SafeSendData(toSend) {
// SafeSendData is SendData with an error-handler.
try {
	window.external.Channel.SendData(toSend);
}
catch (ex) {
	// debugOut("SafeSendData failed. " + ex.description);
}
}
function sendIMmessage(message)
{
window.external.Channel.Initialize();
window.external.Channel.SendIM(message);
}