JRCombo = function(id, fce, left, top, w, z, pobj, pic) {
/*    var cssNode = document.createElement('link');
    cssNode.setAttribute('rel', 'stylesheet');
    cssNode.setAttribute('type', 'text/css');
    cssNode.setAttribute('href', '/ccs/Combo.css');
    document.getElementsByTagName('head')[0].appendChild(cssNode);*/

    this.self = this;
    this.dropped = false;
    this.output = document.createElement("div");
    this.output.id = id;
    this.output.style.width = w+"px";
    this.select = document.createElement("table");
    this.select.className = "combo";
    this.left = left;
    this.top = top;
    this.w = w;
    this.z = z;
    this.pobj = pobj;
    if ((left >= 0) || (top >= 0)) {
        this.select.style.left = left+"px";
        this.select.style.top = top+"px";
    } else {
        this.select.style.position = "static";
    }
    if (z >= 0) {
        this.select.style.zIndex = z;
    }
    this.list = document.createElement("div");
    this.list.id = "l"+id;
    this.obr = document.createElement("img");
    this.obr.id = "Img"+id;
    this.obr.style.visibility = "hidden";
    //    this.obr.width = "0px";
    this.obr.height = "0px";
    //    this.img = img;
    this.fce = fce;
    this.pic = pic;
    
    this.itemheight = 0;
    this.items = new Array();
    this.activeitem = -1;

    this.createSelect();
//    this.createList();
}

JRCombo.prototype.clearList = function() {
    this.itemheight = 0;
    this.items = new Array();
    this.activeitem = -1;
}

JRCombo.prototype.addItem = function(pic, value, text, e) {
    this.item = new Array();
    this.item[0] = value;
    this.item[1] = text;
    this.item[2] = e;
    this.item[3] = pic;
    this.items.push(this.item);
}

JRCombo.prototype.createSelect = function() {
    row = this.select.insertRow(0);
    col = row.insertCell(0);
    col.className = "comboBorderLeftTop";
    col = row.insertCell(1);
    col.className = "comboBorderCenterTop";
    col = row.insertCell(2);
    col.className = "comboBorderCenterTop";
    col = row.insertCell(3);
    col.className = "comboBorderCenterTop";
    col = row.insertCell(4);
    col.className = "comboBorderRightTop";

    this.rowh = this.select.insertRow(1);
    col = this.rowh.insertCell(0);
    col.className = "comboBorderLeftMid";

    if (this.pic == true) {
        this.i = 1;
        this.colpic = this.rowh.insertCell(this.i);
        this.colpic.style.paddingRight = "0px";
        this.colpic.appendChild(this.obr);
    } else {
        this.i = 0;
    }
    
    col = this.rowh.insertCell(this.i + 1);
    this.edit = document.createElement("input");
    this.edit.id = "comboedit";
    this.edit.className = "comboinput";
    this.edit.setAttribute("type", "text");
    //    this.edit.style.width = (this.w - this.obr.style.width) + "px";
    this.edit.value = "";//this.items[this.activeitem][1];//this.list.id;
    //    col.style.width = "10px";//this.w + "px";//"100px";
    col.appendChild(this.edit);
    if (this.pic == false) {
        col.colSpan = 2;
    }
    this.cold = this.rowh.insertCell(this.i + 2);
    this.dropobr = document.createElement("img");
    this.dropobr.src = "http://www.mhdspoje.cz/jrw/test_dpb/png/combo_drop_down.PNG";
    this.dropobr.style.height = "100%";
    this.dropobr.style.width = "100%";
    this.cold.appendChild(this.dropobr);
    //    this.cold.className = "comboDropDown";
    this.cold.id = "d"+this.list.id;
    this.cold.obj = this.self;
    this.cold.onclick = function() { 
        dropclick(this);
    };

    col = this.rowh.insertCell(this.i + 3);
    col.className = "comboBorderRightMid";

    row = this.select.insertRow(2);
    col = row.insertCell(0);
    col.className = "comboBorderLeftBottom";
    col = row.insertCell(1);
    col.className = "comboBorderCenterBottom";
    col = row.insertCell(2);
    col.className = "comboBorderCenterBottom";
    col = row.insertCell(3);
    col.className = "comboBorderCenterBottom";
    col = row.insertCell(4);
    col.className = "comboBorderRightBottom";

    row = this.select.insertRow(3);
    //    col = row.insertCell(0);
    this.collist = row.insertCell(0);
    this.collist.colSpan = 4;
    //    col = row.insertCell(2);
    //    col = row.insertCell(3);
    //    col = row.insertCell(2);
    this.output.appendChild(this.select);
}

JRCombo.prototype.setPicture = function(index) {
    if (this.pic == true) {
        if (this.items[index][3] != null) {
            this.obr.src = this.items[index][3];
            this.obr.style.height = "100%";
            this.colpic.style.paddingRight = "6px";
            this.obr.style.visibility = "visible";
        } else {
            this.obr.style.height = "0px";
            this.colpic.style.paddingRight = "0px";
            this.obr.style.visibility = "hidden";
        }
    }
}

function dropclick(obj) {
    //    document.write(c.parent.id);
    if (obj.obj.dropdiv.offsetHeight > 100) {
        obj.obj.dropdiv.style.height = 100;
    }

    c1 = obj.obj;
    l1 = obj.obj.list;
    if (c1.dropped == true) {
        c1.dropped = false;
        l1.style.visibility = "hidden";
    } else {
        c1.dropped = true;
        l1.style.visibility = "visible";
    //        combo.dropdiv.scrollTop = combo.activeitem * (combo.col.offsetHeight + 2) + 2;
    //        if (combo.activeitem >= 0) {
    //            var o = document.getElementById("i_"+combo.activeitem);
    //            o.style.background = "c2c2ff";
    //        }
    /*        var L=0, R=0;
        pa = combo.select;
        while(pa.parentNode){
		L+= ( pa.offsetLeft)? pa.offsetLeft: 0;
		R+= (pa.offsetTop)?  pa.offsetTop: 0;

		if(pa==document.body)break;
		pa= pa.parentNode;

        }*/
    //        document.write(R);
    //        R+=document.body.offsetHeight;
    //        this.list.style.top;//j.offsetTop + combo.select.offsetTop;
    }    
}

JRCombo.prototype.createList = function() {
    if (this.dropped == false) {
        this.list.style.visibility = "hidden";
    } else {
        this.list.style.visibility = "visible";
    }
    this.list.className = "list";
    //    this.list.style.top = this.top+"px";
    //    this.list.style.mode = "absolute";
    //    this.list.style.zIndex = this.z;
    //    this.list.style.left = this.left+"px";
    //    this.list.style.top = this.top+this.output.offsetHeight+"px";
    this.droptable = document.createElement("table");
    this.droptable.className = "combo1";
    this.droptable.style.zindex = this.z + 1;
    /*    if ((this.left < 0) || (this.top < 0)) {
        this.droptable.style.position = "static";
    }*/
    //    this.droptable.style.zIndex = 10;
    //    this.droptable.style.left = "0px";
    //    this.droptable.style.top = this.top+"px";
    //    this.droptable.style.mode = "";
    row = this.droptable.insertRow(0);
    col = row.insertCell(0);
    col.className = "comboBorderLeftTop";
    col = row.insertCell(1);
    col.className = "comboBorderCenterTop";
    col = row.insertCell(2);
    col.className = "comboBorderRightTop";

    row = this.droptable.insertRow(1);
    col = row.insertCell(0);
    col.className = "comboBorderLeftMid";
    this.listcanvas = row.insertCell(1);
    //    this.listcanvas.style.width = "100px";
    //    this.listcanvas.className = "listcanvas";
    col = row.insertCell(2);
    col.className = "comboBorderRightMid";

    row = this.droptable.insertRow(2);
    col = row.insertCell(0);
    col.className = "comboBorderLeftBottom";
    col = row.insertCell(1);
    col.className = "comboBorderCenterBottom";
    col = row.insertCell(2);
    col.className = "comboBorderRightBottom";

    this.dropdiv = document.createElement("div");
    this.dropdiv.className = "dropdiv";
    this.dropdiv.id = this.output.id+"DROPDIV";
    this.drop = document.createElement("table");
    this.drop.className = "combodrop";

    this.createListValues();

    this.dropdiv.appendChild(this.drop);
    this.listcanvas.appendChild(this.dropdiv);
    this.list.appendChild(this.droptable);
    this.collist/*.output*/.appendChild(this.list);
}

JRCombo.prototype.createListValues = function() {
    numitems = this.drop.rows.length;
    for(i = 0; i < numitems; i++) {
        this.drop.deleteRow(0);
    }
    for(i = 0; i < this.items.length; i++) {
        row = this.drop.insertRow(i);
                
        this.col = row.insertCell(0);
        if (this.items[i][3] != null) {
            obr1 = document.createElement("img");
            obr1.src = this.items[i][3];
            this.col.style.paddingRight = "6px";
            this.col.appendChild(obr1);
        }

        this.col = row.insertCell(1);
        this.col.className = "combotextitem";
        this.col.id = "i_"+i;
        this.col.name = i;
        this.col.obj = this.self;
        //        this.col.oobj = this.pobj;
        this.col.fce = this.fce;
        a = document.createElement("a");
        //        a.style.fontSize = this.edit.style.fontSize = "12px";
        //        a.style.fontFamily = "Arial Unicode MS";
        a.innerHTML = this.items[i][1];
        if (this.items[i][2] == 0) {
            a.style.color = "#c0c0c0";
        } else {
            this.col.onclick = function() {
                if (this.fce != null) {
                    this.fce(this);
                }
            };
            this.col.onmouseover = function() {
                listover(this);
            };
            this.col.onmouseout = function() {
                listout(this);
            };
        }
        this.col.appendChild(a);
    }
}

function scroll(combo) {
    combo.edit.value = combo.position+" "+combo.dropdiv.scrollTop;
    if (combo.scrolling == false) {
        if (combo.oldscroll <= combo.dropdiv.scrollTop) {
            combo.position++;
            combo.scrolling = true;
            combo.dropdiv.scrollTop = combo.position * 22;
            combo.oldscroll = combo.position * 22;
        } else {
            combo.position--;
            combo.scrolling = true;
            combo.dropdiv.scrollTop = combo.position * 22;
            combo.oldscroll = combo.position * 22;
        }
    
    } else {
        combo.scrolling = false;
    }
}

function listLinkyClick(obj) {
    comboLinky = obj.obj;
    comboLinky.activeitem = obj.name;
    comboLinky.setPicture(comboLinky.activeitem);
    comboLinky.edit.value = comboLinky.items[comboLinky.activeitem][1];
    comboLinky.edit.id_value = comboLinky.items[comboLinky.activeitem][0];
    dropclick(obj);

    comboTrasa.clearList();
    pomLinka = Linky.getLinkabyId(comboLinky.edit.id_value);
    if (pomLinka != null) {
        for(i = 0; i < pomLinka.trasa.zastavka.size() - 1; i++) {
            comboTrasa.addItem(null,pomLinka.trasa.zastavka.elementAt(i).tarif, pomLinka.trasa.zastavka.elementAt(i).zastavka.nazevZastavky, pomLinka.trasa.zastavka.elementAt(i).staviA);
        }
        i = pomLinka.trasa.zastavka.size() - 1;
        comboTrasa.addItem(null,pomLinka.trasa.zastavka.elementAt(i).tarif, pomLinka.trasa.zastavka.elementAt(i).zastavka.nazevZastavky, false);
        comboTrasa.createListValues();
    }
    comboTrasa.activeitem = 0;
    comboTrasa.edit.value = comboTrasa.items[comboTrasa.activeitem][1];
    comboTrasa.edit.id_value = comboTrasa.items[comboTrasa.activeitem][0];

    comboSmer.clearList();
    comboSmer.addItem(null,0, Linky.linky.elementAt(comboLinky.activeitem).trasa.zastavka.elementAt(Linky.linky.elementAt(comboLinky.activeitem).trasa.zastavka.size() - 1).zastavka.nazevZastavky, 1);
    comboSmer.addItem(null,1, Linky.linky.elementAt(comboLinky.activeitem).trasa.zastavka.elementAt(0).zastavka.nazevZastavky, 1);
    comboSmer.createListValues();
    comboSmer.activeitem = 0;
    comboSmer.edit.value = comboSmer.items[comboSmer.activeitem][1];
    comboSmer.edit.id_value = comboSmer.items[comboSmer.activeitem][0];

}

function listSmerClick(obj) {
    comboSmer = obj.obj;
    comboSmer.activeitem = obj.name;
    comboSmer.edit.value = comboSmer.items[comboSmer.activeitem][1];
    comboSmer.edit.id_value = comboSmer.items[comboSmer.activeitem][0];
    dropclick(obj);

    comboTrasa.clearList();
    pomLinka = Linky.getLinkabyId(comboLinky.edit.id_value);
    if (pomLinka != null) {
        if (comboSmer.items[comboSmer.activeitem][0] == 0) {
            for(i = 0; i < pomLinka.trasa.zastavka.size() - 1; i++) {
                comboTrasa.addItem(null,pomLinka.trasa.zastavka.elementAt(i).tarif, pomLinka.trasa.zastavka.elementAt(i).zastavka.nazevZastavky, pomLinka.trasa.zastavka.elementAt(i).staviA);
            }
            i = pomLinka.trasa.zastavka.size() - 1;
            comboTrasa.addItem(null,pomLinka.trasa.zastavka.elementAt(i).tarif, pomLinka.trasa.zastavka.elementAt(i).zastavka.nazevZastavky, false);
        } else {
            for(i = pomLinka.trasa.zastavka.size() - 1; i >= 1; i--) {
                comboTrasa.addItem(null,pomLinka.trasa.zastavka.elementAt(i).tarif, pomLinka.trasa.zastavka.elementAt(i).zastavka.nazevZastavky, pomLinka.trasa.zastavka.elementAt(i).staviB);
            }
            i = 0;
            comboTrasa.addItem(null,pomLinka.trasa.zastavka.elementAt(i).tarif, pomLinka.trasa.zastavka.elementAt(i).zastavka.nazevZastavky, false);
        }
        comboTrasa.createListValues();
    }
    comboTrasa.activeitem = 0;
    comboTrasa.edit.value = comboTrasa.items[comboTrasa.activeitem][1];
    comboTrasa.edit.id_value = comboTrasa.items[comboTrasa.activeitem][0];
}

function listTrasaClick(obj) {
    comboTrasa = obj.obj;
    //    if (comboTrasa.items[comboTrasa.activeitem][2] != 0) {
    comboTrasa.activeitem = obj.name;
    comboTrasa.edit.value = comboTrasa.items[comboTrasa.activeitem][1];
    comboTrasa.edit.id_value = comboTrasa.items[comboTrasa.activeitem][0];
    dropclick(obj);
//    }

/*    if (comboTrasa.items[comboTrasa.activeitem][2] != 0) {
        var target = document.createElement("script");
        target.setAttribute("src", "jr.php?l="+comboLinky.items[comboLinky.activeitem][0]+"&t="+comboTrasa.items[comboTrasa.activeitem][0]+"&s="+comboSmer.items[comboSmer.activeitem][0]+"&jr=JR&j=j&i=0&ta=tabulka");
        document.body.appendChild(target);
        JR.c_linky = comboLinky.items[comboLinky.activeitem][0];
    }*/
}

function listclick(obj) {
    combo = obj.obj;
    combo.activeitem = obj.name;
    combo.edit.value = combo.items[combo.activeitem][1];
    combo.edit.id_value = combo.items[combo.activeitem][0];
    dropclick(obj);
    //    j.removeObj(0);
    //    j.showObj(2);
    //    JR = new _JR(combo.items[combo.activeitem][0], 4, 0);
    //    tabulka = new JRTab(JR, 't');
    var target = document.createElement("script");
    target.setAttribute("src", "jr.php?l="+combo.items[combo.activeitem][0]+"&t=4&s=0&jr=JR&j=j&i=0&ta=tabulka");
    //    target.setAttribute("defer", "defer");
    document.body.appendChild(target);
    JR.c_linky = combo.items[combo.activeitem][0];

    //    var target = document.createElement("script");
    //    target.setAttribute("src", "trasa.php?l="+combo.edit.id_value+"&tr=Trasa&sm=0");
    //    document.body.appendChild(target);
    //    document.writeln("<script src="trasa.php?l="+combo.edit.id_value+"&tr=Trasa&sm=0");
    combo1.clearList();
    /*    for(i = 0; i < Trasa.trasa.length; i++) {
          combo1.addItem(Trasa.trasa[i][2], Trasa.trasa[i][2]);
    }*/
    pomLinka = Linky1.getLinkabyId(combo.edit.id_value);
    if (pomLinka != null) {
        for(i = 0; i < pomLinka.trasa.zastavka.size()/*Trasa.trasa.length*/; i++) {
            combo1.addItem(pomLinka.trasa.zastavka.elementAt(i).idZastavky, pomLinka.trasa.zastavka.elementAt(i).zastavka.nazevZastavky);//
        }
        combo1.createListValues();
    }
//    j.refreshObj(0, 3, combo1);
//    j.addObj()
//    j.showObj(0);
//    Chrono.print();
//    tabulka = new JRTab(JR, 't');
//    j.addObj(0, combo);
//    j.showObj(0);
//    j.addObj(0, tabulka);
//    j.showObj(0);
//    vypisJR();
}

function listover(obj) {
    //obj.className = "combotextiteminactive";//style.background = "#c2c2ff";
    obj.style.color = "#c2c2ff";
}

function listout(obj) {
    //obj.className = "combotextitem";//obj.style.background = "";
    obj.style.color = "";
}

JRCombo.prototype.getHeight = function() {
    return this.rowh.offsetHeight;
}

JRCombo.prototype.show = function(tag) {
    tag.appendChild(this.output);
    this.itemheight = this.col.offsetHeight;
//    this.height = this.colpic.offsetHeight;
}