/* Copyright 2005-2006. e-Corvina Kft. Minden jog fenntartva. */
/* Copyright 2005-2006. e-Corvina Kft. All rights reserved. */

/* 760-as beegetett szelesseg */
var x760 = 760;

/* A popup (pl: mutat ablak) szelessege */
var popupWidth = 800;
/* A popup (pl: mutat ablak) hosszusaga */
var popupHeight = 650;


/** from: http://www.scottandrew.com/weblog/articles/cbs-events */
function addEvent(obj, evType, fn, useCapture){
    if (obj.addEventListener){
        obj.addEventListener(evType, fn, useCapture);
        return true;
    } else if (obj.attachEvent){
        var r = obj.attachEvent("on"+evType, fn);
        return r;
    } else {
    //    alert("Handler could not be attached");
    }
    return false;
}

// 0: meg nem toltodott be. 1: betoltodott
// Ha a popup window reload-olja az oldalt, akkor is 0-ra allitja a valid-ot. (igy varja meg, amig ujra betoltodik)
var document_is_loaded = 0;
var document_is_valid = 0;
try {
    addEvent(window,"load",function() {
        document_is_loaded = 1;
        document_is_valid = 1;
    }, false);
}
catch(err) { }

/** Visszaadja az <input name="showonetype" ...> rtkt */
function getValueOfField_Showonetype() {
    var e = document.getElementsByName("showonetype");
    if (e == null || e.length==0) {
        return "";
    }
    try {
        return e[0].value;
    } catch(err) {}
    return "";
}
/* 'mutat' gomb: Ha nem eredmenyez letoltest, akkor uj ablakban kell megnyitni */
function isShowonetypeDownloadable ( showonetype )
{
    return showonetype.indexOf(' ')!=-1;
}
/** "mutat" gombra rklikkelnek: <a onclick="..."> */
function openLongOnclick( position, recnum, url )
{
    var showonetype = getValueOfField_Showonetype();
    window.name='mainpage';
    if(!isShowonetypeDownloadable(showonetype)) {
        openLongOnclick4( position, recnum, url, recnum );
    }
}
function openLongOnclick4( position, recnum, url, popupwindowname ) {    
    var showonetype = getValueOfField_Showonetype();
    var position_str = position == null ? "" : "&pos="+position;
    var showtype_str = showonetype == "" ? "" : "&showtype="+showonetype;
    window.open(url+'?action=onelong'+showtype_str+'&recnum='+recnum+position_str, popupwindowname,
        'height=' + popupHeight + ',width=' + popupWidth + ',status=no,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes,channelmode=no');
}
/** "mutat" gombra rklikkelnek: <a href="..."> */
function openLongHref( position, recnum, url ) {
    window.name='mainpage';
    var showonetype = getValueOfField_Showonetype();
    if(isShowonetypeDownloadable(showonetype)) {
        window.location=url+'?action=onelong'+
        '&showtype='+showonetype+
        '&recnum='+recnum;
    }
}
/* Bongeszesnel raklikkelnek a 'mutat' gombra. Onclick action */
/* FIXME: quote-olni kellene ezeket a parametereket, illetve az encoding-nak megfeleloen konvertalni */
function scanOpenOnelongOnclick( identifier, url )
{
    window.open(url+'?action=scanonelong'+
        '&scanonly='+identifier+
        '&showtype='+document.mainform.showonetype.value+
        '&scanbasketset='+document.mainform.scanbasketset.value
        , identifier, 'height=' + popupHeight + ',width=' + popupWidth + ',status=no,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes,channelmode=no');
}
function lookRecnum( recnum, marcposition )
{
    document.mainform.action.value='look';
    document.mainform.recnum.value=recnum;
    document.mainform.marcposition.value=marcposition;
}

/**
 * Elkuld a szervletnek egy keresest, amikor cimben keresi a  <title>-ben megadottat.
 * (Ezt kuldi a szervletnek: action=find&index0=TITL&text0=<title>)
 * @param title a cim amire keresunk
 */
function findTitle(title) {
    if(title == null) {
        return;
    } else {
        var isnull = window.opener==null;
        var doc = isnull ? window.document : window.opener.document;
        with (doc) {
            mainform.action.value='find';
            mainform.index0.value='TITL';
            mainform.text0.value=title;
            if(!isnull) {
                mainform.submit();
            }
        }
    }
}

function lookRecnumParent( recnum, marcposition )
{
    var isnull = window.opener==null;
    var doc = isnull ? window.document : window.opener.document;
    with (doc)
    {
        mainform.action.value='look';
        mainform.recnum.value=recnum;
        mainform.marcposition.value=marcposition;
        if(!isnull) {
            mainform.submit();
        }
    }
}

function findTextIndex( nameOfFindForm, text, index )
{
    with (document.forms[nameOfFindForm])
    {
        text0.value=text;
        index0.value=index;
        action.value='find';
        }
}
function findTextIndexParent( text, index )
{
    var isnull = window.opener==null;
    var doc = isnull ? window.document : window.opener.document;
    with (doc)
    {
        mainform.text0.value=text;
        mainform.index0.value=index;
        mainform.action.value='find';
        if(!isnull) {
            mainform.submit();
        }
        }
}

/*
function findIdno( nameOfFindForm, new_ccltext )
{
	with (document.forms[nameOfFindForm])
	{
		ccltext.value=new_ccltext;
		action.value='cclfind';
//		action.whichform.value='cclfindpage';
	}
}
function findIdnoParent( new_ccltext )
{
	var isnull = window.opener==null;
	var doc = isnull ? window.document : window.opener.document;
	with (doc)
	{
		mainform.ccltext.value=new_ccltext;
		mainform.action.value='cclfind';
//		mainform.whichform.value='cclfindpage';
		if(!isnull) { mainform.submit(); }
	}
}
*/
// Kapcsold rekordok keresse
function lookLinks( nameOfFindForm, new_looklinkstext )
{
    with (document.forms[nameOfFindForm])
    {
        ccltext.value=new_looklinkstext;
        action.value='looklinks';
        //		action.whichform.value='cclfindpage';
        }
}
// Kapcsold rekordok keresse a szl ablakban.
function lookLinksParent( new_looklinkstext )
{
    var isnull = window.opener==null;
    var doc = isnull ? window.document : window.opener.document;
    with (doc)
    {
        mainform.ccltext.value=new_looklinkstext;
        mainform.action.value='looklinks';
        //		mainform.whichform.value='cclfindpage';
        if(!isnull) {
            mainform.submit();
        }
    }
}


/* Bezarja ezt az ablakot, ha van szulo ablak. a ...Parent metodusokkal parhuzamosan van szukseg ra (bezarjuk az ablakot, es a szulo ablakban keresunk tovabb)
 */
function closeThisIfParentExistsOrSubmit()
{
    var isnull = window.opener==null;
    if(!isnull) {
        window.close();
    }
    else {        
        var doc = isnull ? window.document : window.opener.document;
        with (doc)
        {
            mainform.submit();
        }        
    }
}

/* Bezarja ezt az ablakot, ha van szulo ablak. a ...Parent metodusokkal parhuzamosan van szukseg ra (bezarjuk az ablakot, es a szulo ablakban keresunk tovabb)
 */
function closeThisIfParentExists()
{
    if(window.opener!=null) {
        window.close();
    }
}


function set_focus(element) {
    /*YAHOO.widget.TreeView.*/addHandler(window, "load", function () {
        element.focus();
        return;
    } );
    return;
}

/**
 * Vegrehajt egy document.mainform[hiddeninputname]=newvalue parancsot.
 * Ha meg nem letezett a document.mainform-ban ilyen input elem, akkor letrehoz egy ujat (hidden lesz)
 * Ha letezett, akkor felulirja az erteket
 */
function setMainformVariable(hiddeninputname, newvalue) {
    setXFormVariable("mainform", hiddeninputname, newvalue);
}
function setXFormVariable(formname, hiddeninputname, newvalue) {
    var id = formname+"_"+hiddeninputname;
    var e = null;
    var alreadyExist=false;
    if(alreadyExist==false) {
        e = document.getElementById(id);
        if(e!=null) {
            alreadyExist=true;
        }
    }
    if(alreadyExist==false) {
        for(var idx=0;idx<document[formname].length;idx++) {
            var e2=document[formname][idx];
            if(/* e2 instanceof Element && */ e2!=null && e2.getAttribute("name")==hiddeninputname) { // instanceof Element nem megy IE alatt.
                e=e2;
                alreadyExist=true;
                break;
            }
        }
    }
    if(alreadyExist==false) {
        e = document.createElement("input");
        e.setAttribute("type", "hidden");
        e.setAttribute("name", hiddeninputname);
        e.setAttribute("id", id);
    }
    e.setAttribute("value", newvalue);
    if(alreadyExist==false) {
        document[formname].appendChild(e);
    }
    return;
}
/** Csak akkor hozza letre, ha nem null vagy '' a newvalue */
function setXFormVariable2(formname, hiddeninputname, newvalue) {
    if(newvalue==null || newvalue=='') {
        return;
    }
    setXFormVariable(formname, hiddeninputname, newvalue);
    return;
}
/** Csak akkor hozza letre, ha nem null vagy '' a newvalue */
function setMainformVariable2(hiddeninputname, newvalue) {
    if(newvalue==null || newvalue=='') {
        return;
    }
    setMainformVariable(hiddeninputname, newvalue);
    return;
}

function removeMainformVariable(hiddeninputname) {
    removeXFormVariable("mainform", hiddeninputname);
}
function removeXFormVariable(formname, hiddeninputname) {
    var id = formname+"_"+hiddeninputname;
    var e = document.getElementById(id);
    if(e != null) {
        try {
            document[formname].removeChild(e);
        } catch(err) {}
    }
}


/**
 * Az albbi kdrszlet megvilgtja, hogyan kell hasznlni:
 *   <a href="#" onclick="javascript:expand3(id1,id2,id3);return false;">
 *     szoveg
 *     <img id="id1" src="lefele_mutato_nyil">
 *     <img id="id2" src="felfele_mutato_nyil" style="display:none;">
 *   </a>
 *   <div id="id3" style="display: none;">szoveg szoveg szoveg</div>
 * Ha a linkre raklikkelunk, akkor megjelenik az id3 szoveg, es a lefele mutato nyilbol felfele mutato nyil lesz.
 * Ha a felfele mutato nyilra kattintunk, akkor eltunik az id3 szoveg.
 * Teht az expand3 fv invertlja az llapotot.
 * @param id3 annak a doboznak az id-je, amit megjelentnk.
 * @param id1, id2: a nyilak (<img>...</img>) id-jei
 */
function expand3(id1, id2, id3) {
    var e1 = document.getElementById(id1);
    var e2 = document.getElementById(id2);
    var e3 = document.getElementById(id3);
    if(e1==null || e2==null || e3==null) {
        return;
    }
    if(e3.style.display!='none') {
        e3.style.display='none';
        e2.style.display='none'; // elobb kikapcsoljuk a meglevo nyilat, aztan bekapcsoljuk a masikat.
        e1.style.display='';
    } else {
        e3.style.display='';
        e1.style.display='none'; // elobb kikapcsoljuk a meglevo nyilat, aztan bekapcsoljuk a masikat.
        e2.style.display='';
    }
}
/** Mint expand3, de ez nem invertl, hanem mindig kibont */
function expand3_expand(id1, id2, id3) {
    var e1 = document.getElementById(id1);
    var e2 = document.getElementById(id2);
    var e3 = document.getElementById(id3);
    if(e1==null || e2==null || e3==null) {
        return;
    }
    if(e3.style.display=='none') {
        e3.style.display='';
        e1.style.display='none'; // elobb kikapcsoljuk a meglevo nyilat, aztan bekapcsoljuk a masikat.
        e2.style.display='';
    }
}
/** Mint expand3, de ez nem invertl, hanem mindig kibont */
function expand3_collapse(id1, id2, id3) {
    var e1 = document.getElementById(id1);
    var e2 = document.getElementById(id2);
    var e3 = document.getElementById(id3);
    if(e1==null || e2==null || e3==null) {
        return;
    }
    if(e3.style.display!='none') {
        e3.style.display='none';
        e2.style.display='none'; // elobb kikapcsoljuk a meglevo nyilat, aztan bekapcsoljuk a masikat.
        e1.style.display='';
    }
}

/* -------------------------------------------------------------------------------------------------- */
/**
 * Magankonyvtar fv-ek.
 */

/* Magankonyvtar ablak */
var privateLibraryWindow;

/**
 * A Magankonyvtarhoz peldanyhozzaado url-t keri el, hajtja vegre.
 */
function doAddPrivateLibraryXmlHttpRequest() {
    var handleSuccess = function(o) {
        if(o.responseText !== undefined && o.status==200) {
            if(privateLibraryWindow == undefined) {
                privateLibraryWindow = window.open(o.responseText,"","");
            } else {
                //oda kene tolteni
                privateLibraryWindow.location.href=o.responseText;
            }
            privateLibraryWindow.focus();
        }
    }
    var handleFailure = function(o) {
    //alert("doAddPrivateLibraryXmlHttpRequest() failed!");
    }
    var callback = {
        success:handleSuccess,
        failure:handleFailure,
        argument: {
            foo:"foo",
            bar:"bar"
        }
    };
    var request = YAHOO.util.Connect.asyncRequest('POST', "?action=addtoprivatelibrarybasket" /* url */, callback, "");
}

/* -------------------------------------------------------------------------------------------------- */
/**
 * E-konyvtar fv-ek.
 */

/**
 * Modlis dialgus-ablakknt behvja a digitlis msolatkr oldalt.
 */
function openDigitRequestWindow(baseurl, recnum) {
    var url = baseurl+"?action=digitrequestform&currentpage=digitrequestform&recnum="+recnum;
    var windowName = "storage_request";
    var windowoptions = "width=620,height=700,resizable=1,scrollbars=1"; // scrolling=1,center=1
    window.open(url, windowName, windowoptions);
}

/**
 * Elkuldi a koltsegkiszamolo ajax kerest a szervletnek es az eredmenyt dialogusablakban megjeleniti.
 */
function doCalculateRequestCostXmlHttpRequest(form) {
    var handleSuccess = function(o) {
        if(o.responseText !== undefined && o.status==200) {
            //Ha hibauzenet jon vissza csak alert-elunk
            if(o.responseText.indexOf("Hib") > -1 || o.responseText.indexOf("Err") > -1) {
                alert(o.responseText);
            } else {
                //egybknt confirm
                var r=confirm(o.responseText);
                if (r==true) {
                    form.submit();
                }
            }
        } else {
            //hiba van...
            //alert("Error: o.responseText is undefined or o.status is not 200.");
        }
    }
    var handleFailure = function(o) {
        alert("doCalculateRequestCostXmlHttpRequest failed!");
    }
    var callback = {
        success:handleSuccess,
        failure:handleFailure,
        argument: {
            foo:"foo",
            bar:"bar"
        }
    };
    var page1;
    var page2;
    var bibid = form.bibid.value;

    if (document.getElementById("scope_from-to").checked==true) {
        page1 = form.scope_from.value;
        page2 = form.scope_to.value;
    }

    /*var request = */YAHOO.util.Connect.asyncRequest('POST', "?action=calculatedigitrequestcost" + "&page1=" + page1 + "&page2=" + page2 + "&bibid=" + bibid /* url */, callback, "");
}
/**
 * Leellenorzi az uj digitalis keres formot (validalja).
 * Meghivja a doCalculateRequestCostXmlHttpRequest(form, page1, page2) metodust.
 */
function validateDigitRequestForm(form) {
    //debug: alert('validateDigitRequestForm() + form: ' + form);
    with (form) {
        if (document.getElementById("scope_from-to").checked==true) {
            var text = "Az \"Oldalsz\u00E1mok\" vagy \"A k\u00E9rt r\u00E9sz megnevez\u00E9se\" mez\u0151 kit\u00F6lt\u00E9se ktelez\u0151!";
            
            if( ((scope_from.value==null || scope_from.value=="") && (scope_to.value==null || scope_to.value=="")) || 
                (designation.value==null || designation.value=="") ) {
                
                alert(text);
                scope_from.focus();
                return false;
            }
        /*if(validate_required(scope_to,"Az oldalszmok kitltse ktelez\u0151!")==false) {
                scope_to.focus();
                return false;
            }
            if(validate_required(designation,"A \"A krt rsz megnevezse\" mez kitltse ktelez\u0151!")==false) {
                designation.focus();
                return false;
            }*/
        }
        //debug: alert("page1: \'" + page1 + "\' page2: \'" + page2 + "\'");
        doCalculateRequestCostXmlHttpRequest(form);
    }
}

function validate_required(field,alerttxt) {
    with (field) {
        if (value==null||value=="") {
            alert(alerttxt);
            return false;
        } else {
            return true;
        }
        }
}

/**
 * Digiatalizlsi krs sikeres elkldse utn a feleseleges popup-okat bezrja s a fablakban
 * az olvasi adatok-ra ugrik.
 */
function gotoPatronData() {
    var url = '?action=patrondata';
    if(window.opener!=null && window.opener.opener!=null) {
        // "mutat" ablakban nyomtk meg a "digitlis msolat" gombot.
        window.opener.opener.location=url;
        window.opener.close();
        window.close();
    } else if(window.opener!=null) {
        // Ez a tipikus: popup ablakban van a digitlis msolat
        window.opener.location=url;
        window.close();
    } else {
        window.location=url;
    }
}

/**
 * Elkuldi a "revokedigitrequest" ajax kerest, ami a digitalizalasi keres statuszat visszavont-ra allitja.
 */
function revokeDigitRequesXmlHttpRequest(button) {
    var id = button.getAttribute('id');

    //Eltuntetjuk a gombot, 
    button.setAttribute("style", "display:none;");
    //helyere "loading kep"-et teszunk
    
    var handleSuccess = function(o) {
        if(o.responseText !== undefined && o.status==200) {
            //Ha hibazenet jn vissza alert-ben megjelenitjuk
            if(o.responseText.indexOf("Hib") > -1 || o.responseText.indexOf("Err") > -1) {
                button.setAttribute("style", "");
                alert(o.responseText);
            } else {
                //egybknt
                //"loading kep" eltuntetese

                //Sttuszt frisstjk
                var div = document.getElementById("status_"+id);
                div.innerHTML = o.responseText;

            //esetleg dialogusablak uzenet???
            }
        }
    }
    var handleFailure = function(o) {
        button.setAttribute("style", "");
        alert("revokeDigitRequesXmlHttpRequest failed!");
    }
    var callback = {
        success:handleSuccess,
        failure:handleFailure,
        argument: {
            foo:"foo",
            bar:"bar"
        }
    };

    YAHOO.util.Connect.asyncRequest('POST', "?action=revokedigitrequest" + "&requestid=" + id /* url */, callback, "");
}

/**
 * Elkuldi a "newdigitrequestforjob" ajax kerest, ami felvesz egy uj kerest a letezo digi_job-hoz a bejelentkezett felhasznalo neveben.
 */
function createDigitRequestForJobXmlHttpRequest(jobId, link) {
    if(link == null || jobId == null) {
        //Hiba
        return;
    }
    
    var loadingSpan = document.getElementById("requestsending_progress_"+jobId);
    var errorSpan = document.getElementById("requestsending_error_"+jobId);
    var successSpan = document.getElementById("requestsending_success_"+jobId);

    if(loadingSpan == null || errorSpan == null || successSpan == null) {
        //Hiba
        return;
    }

    //Eltuntetjuk a linket,    
    link.style.display="none";
    //Eltuntetjuk az error-t
    errorSpan.style.display="none";
    
    // a link helyere "loading kep"-et teszunk
    loadingSpan.style.display="block";

    var handleSuccess = function(o) {
        if(o.responseText !== undefined && o.status==200) {            
            //"loading kep" eltuntetese            
            loadingSpan.style.display="none";            

            //Ha hibazenet jn vissza
            if(o.responseText != "true") {                
                //error uzenet
                errorSpan.style.display="block";
                link.style.display="inline";
            } else {
                //egybknt
                successSpan.style.display="block";
            }
        } else {
            //"loading kep" eltuntetese
            loadingSpan.style.display="none";
            errorSpan.style.display="block";
            link.style.display="inline";
        }
    }
    var handleFailure = function(o) {
        //"loading kep" eltuntetese
        loadingSpan.style.display="none";
        errorSpan.style.display="block";
        link.style.display="inline";
    }
    var callback = {
        success:handleSuccess,
        failure:handleFailure,
        argument: {
            foo:"foo",
            bar:"bar"
        }
    };

    YAHOO.util.Connect.asyncRequest('POST', "?action=newdigitrequestforjob" + "&jobId=" + jobId /* url */, callback, "");
}

/* -------------------------------------------------------------------------------------------------- */
/**
 * Kosrkezel fv-ek.
 */

/** Megmondja, hogy az adott checkbox Element be van-e pipalva. */
function isChecked(e) {
    if (e == null) {
        return false;
    }
    //  if (e.tagName.toLowerCase() == 'input' && e.getAttribute('type').toLowerCase() == 'checkbox') { // Szoksos <input type="checkbox"/>
    if (e.checked != null && e.tagName != null && e.tagName.toLowerCase() == 'input') { // Szoksos <input type="checkbox"/>
        return e.checked;
    }
    /*
  if (e.tagName != null && e.tagName.toLowerCase() == 'div') { // Sajt checkbox
    if (e.innerHTML == '&#9745;' || e.innerHTML == '\u2611' || e.innerHTML.charCodeAt(0) == 9745) {
      return true;
    }
    return false;
  }
*/
    return false;
}

/** Beallitja az adott checkbox Element-et: be legyen pipalva, vagy ne. */
function setChecked(e, checked) {
    if (e == null) {
        return;
    }
    //  if (e.tagName == 'input' && e.getAttribute('type') == 'checkbox') { // Szoksos <input type="checkbox"/>
    if (e.checked != null && e.tagName != null && e.tagName.toLowerCase() == 'input') { // Szoksos <input type="checkbox"/>
        e.checked=checked;
        return;
    }
    /*
  if (e.tagName != null && e.tagName.toLowerCase() == 'div') { // Sajt checkbox
    if (checked == true) { e.innerHTML = '&#9745;'; }
    else { e.innerHTML = '&#9744;'; }
    return;
  }
*/
    return;
}

// short.xsl: egy oldalon hany darab x-elest valtoztattunk meg.
var sum_of_changes = 0; // FIXME: nem hasznlja senki
var basket_changed = new Array(); // 0 or 1  // FIXME: nem hasznlja senki

/** Akkor kell meghivni, ha a short.xsl altal visszaadott talati
 * listaban a user valtoztatja valamelyik cucc kijeloleset.
 * Celja: tudni akarjuk az ablak becsukasakor, hogy a user valtoztatott-e valamit a kosarba kijelolt cuccokon.
 * @param recnum  a rekord recnum-ja
 * @param name az <input type="checkbox" id="..."/>-ban a ... rtke.
 */

function onChangeBasketSelection ( recnum, id ) {
    if(basket_changed[id]==null || basket_changed[id]==0) {
        basket_changed[id]=1;
        ++sum_of_changes;
    } else {
        basket_changed[id]=0;
        --sum_of_changes;
    }
  
    var e = document.getElementById(id);
    var checked = null;
    if(e!=null) {
        //    setChecked(e,!isChecked(e)); // Neknk kell vltoztatni.
        checked = isChecked(e);
        if(checked) {
            doBasketXmlHttpRequest( recnum, "" );
        }
        else {
            doBasketXmlHttpRequest( "", recnum );
        }
    }
    if(window.opener!=null && checked!=null) {
        var e2 = window.opener.document.getElementById(id);
        if(e2!=null) {
            setChecked(e2,checked);
        }
    }

    return sum_of_changes;
}



// Dupla-klikk valamelyik "kosarban" oszlopban levo checkbox-ra.
// Invertalja az osszes kijelolest.
// Gond: minden checkbox-nak mas a neve
function invertBasketSelection ( recnums, prefix ) {
    var myArray = recnums.split(/,/);
    var plus = new Array();
    var minus = new Array();
    for(var idx=0;idx<myArray.length;idx++) {
        var recnum=myArray[idx];
        var e=document.getElementById(prefix+recnum);
        if(isChecked(e)) {
            minus.push(recnum);
        } else {
            plus.push(recnum);
        }
        setChecked(e,!isChecked(e));
    }
    doBasketXmlHttpRequest( plus.join(","), minus.join(",") );
}

/** A menben a "kosr" ikon alatt frissti, hogy hny elem van a kosrban */
function updateMenuBasketSize(text) {
    if (text == null) {
        return;
    }
    var e = document.getElementById('menu_basket_size1');
    if (e == null) {
        return;
    }
    var f = document.getElementById('menu_basket_size2');
    if (f == null) {
        return;
    }
    if (text == "" || text == "0") {
        e.style.display="none";
    } else {
        var g = document.createTextNode(text);
        //    f.innerHTML='<a class="alter_link ikon_alatti_linkszoveg">'+text+'</a>'; /* Kell az <a>...</a>, klnben a firefox beszrja helyettnk, s elrontja a stlust. */
        f.replaceChild(g, f.firstChild);
        if(e.style.display!='') {
            e.style.display='';
        }
    }
}

/**
 * @param plus recnum-ok vesszvel elvlasztva. Ezeket hozzaadjuk a kosrhoz.
 * @param minus recnum-ok vesszvel elvlasztva. Ezeket kivesszk a kosrbl.
 */
function doBasketXmlHttpRequest( plus, minus ) {
    // Lsd: http://developer.yahoo.com/yui/connection/
    var handleSuccess = function(o) {
        if(o.responseText !== undefined && o.status==200) {            
            updateMenuBasketSize(o.responseText);
            if(window.opener!=null) {
                with(window.opener) {
                    updateMenuBasketSize(o.responseText);
                    }
            }
        }
    }
    var handleFailure = function(o) {
    /*        if(o.responseText !== undefined){
          var s = "<li>Transaction id: " + o.tId + "</li>";
          s += "<li>HTTP status: " + o.status + "</li>";
          s += "<li>Status code message: " + o.statusText + "</li>";
          tthis.content = s;
          return;
          }
*/
    }
    var callback =
    {
        success:handleSuccess,
        failure:handleFailure,
        argument: {
            foo:"foo",
            bar:"bar"
        }
    };
    var request = YAHOO.util.Connect.asyncRequest('POST', "?action=ajax:changeBasket" /* url */, callback, "basketplus="+plus+"&basketminus="+minus);
}

/** Bngszskor a bngsz-kosrnak ms szerepe van: az egy oldalon lev "tallatokbl" kivlaszthatunk nhnyat, s egyszerre megnzhetjk */
function invertScanBasketSelection ( recnums, common_name ) {
    var myArray = recnums.split(/,/);
    for(var idx=0;idx<myArray.length;idx++) {
        var recnum=myArray[idx];
        var e=document.getElementById(common_name+recnum);
        e.checked=!e.checked;
    }
}

/* -------------------------------------------------------------------------------------------------- */
/** onelongPaging fv-ek, vltozk:  "mutat" ablakbl a megnyit ablak vezrlsre szolgl fv-ek. */

var onelongPaging_itor = new Array(); // hnyadik tallat -> recnum
var onelongPaging_rtoi = new Array(); // recnum -> hnyadik tallat
var onelongPaging_mini = 0;
var onelongPaging_maxi = 0;
var onelongPaging_done = 0; // Amikor kszen van a onelongPaging vltozk feltltse, akkor 1-es lesz.

/** A short_inc.xsl hvja meg, amikor az sszes recnum-ot tadta neknk */
function onelongPaging_filldata_done() {
    onelongPaging_done = 1;
}
/** Megjegyezzk, hogy ez egy j tallat. position: hnyadik eleme a teljes tallati listnak (pl. 11). */
function onelongPaging_mark(position, recnum) {
    onelongPaging_itor[position]=recnum;
    onelongPaging_rtoi[recnum]=position;
    if(onelongPaging_maxi==0 || position > onelongPaging_maxi) {
        onelongPaging_maxi = position;
    }
    if(onelongPaging_mini==0 || position < onelongPaging_mini) {
        onelongPaging_mini = position;
    }
}

/** A "next" s a "prev" gombokat lthatv teszi, de csak akkor, ha valban van elz/kvetkez elem */
function onelongPaging_makePrevButtonVisible(recnum) {
    // Prev button:
    try {
        var i = window.opener.onelongPaging_rtoi[recnum];
        if(i>1) { // Lesz "prev" gomb.
            var e = document.getElementById("prevButton");
            if(e!=null) {
                var headEl = document.getElementsByTagName("head")[0];
                var link = document.createElement("link");
                link.rel = "prev";
                link.href = "javascript:onelongPaging_prev('"+recnum+"');" // <link rel="next" href="javascript:onelongPaging_prev(recnum);"/>
                headEl.appendChild(link);
                e.style.display="inline";
            }
        }
    } catch(err) {}
}
/** A "next" s a "prev" gombokat lthatv teszi, de csak akkor, ha valban van elz/kvetkez elem */
function onelongPaging_makeNextButtonVisible(recnum) {
    // Prev button:
    try {
        var i = window.opener.onelongPaging_rtoi[recnum];
        if(window.opener.onelongPaging_itor[i+1] != null || window.opener.gotoNextResultPage != null) {
            var e = document.getElementById("nextButton");
            if(e!=null) {
                var headEl = document.getElementsByTagName("head")[0];
                var link = document.createElement("link");
                link.rel = "next";
                link.href = "javascript:onelongPaging_next('"+recnum+"');" // <link rel="next" href="javascript:onelongPaging_next(recnum);"/>
                headEl.appendChild(link);
                e.style.display="inline";
            }
        }
    } catch(err) {}
}
/**
 * Amikor a szl oldalt utastjuk, hogy lapozzon elre vagy htra, ez a fggvny mondja meg, hogy
 * kszen van-e mr a szl oldal, vagy mg vrni kell r.
 */
function oneLongPaging_parent_is_complete() {
    /*window.opener.history == szulohist && window.opener.document == szulodoc */
    try {
        if(window==null) {
            return false;
        }
        if((window.opener.document_is_valid==null || window.opener.document_is_valid==0)
            || (window.opener.onelongPaging_done==null || window.opener.onelongPaging_done==0))
            {
            return false;
        }
        return true;
    } catch(err) {}
    return false;
}

/** Ugrunk a recnum utni rekordra */
function onelongPaging_next(recnum) {
    //  document.getElementById("zzz").innerHTML= "next " + recnum; // FIXME:LAPOZAS
    if(window==null) {
        return;
    }
    if(window.opener==null) {
        return;
    }
    if(window.opener.onelongPaging_itor==null) {
        return;
    }
    if(window.opener.onelongPaging_rtoi==null) {
        return;
    }
    var i = window.opener.onelongPaging_rtoi[recnum];
    if(i==null) {
        return;
    }
    if(i==window.opener.onelongPaging_maxi) { // Lapozni kell a kovetkezo oldalra
        if(window.opener.gotoNextResultPage == null) {
            return;
        }
        window.opener.document_is_valid=0;
        document.getElementById("nextPrevLoading").className="ygtvloading";
        window.opener.gotoNextResultPage();
        onelongPaging_next_2ndpart(window.opener, window.opener.document, window.opener.history);
        return;
    }
    var i2 = i+1;
    var recnum2 = window.opener.onelongPaging_itor[i2];
    if(recnum2==null) { // A kovetkezo talalati oldalra kene lapozni, vagy egyszeren nincs tovbb.
        return;
    }
    var popupwindowname = window.name;
    document.getElementById("nextPrevLoading").className="ygtvloading";
    with(window.opener) {
        openLongOnclick4(i2, recnum2,"",popupwindowname); // Fellrjuk azt az ablakot, amelyik megnyitja.
        }
}
// Ha j oldalra kell lapozni, ez a fv. vr, amg betltdik az j oldal, majd megnyitja a megfelel popup-ot.
function onelongPaging_next_2ndpart(szulo, szulodoc, szulohist) {
    if(window.opener == null) {
        return;
    }
    while(!oneLongPaging_parent_is_complete()) { // Mg nem tltdtt be az j oldal.
        setTimeout(function() {
            onelongPaging_next_2ndpart(szulo, szulodoc, szulohist);
        }, 100);
        //    document.getElementById("zzz").innerHTML = ""+window.opener+","+window.opener.document_is_valid+","+window.opener.onelongPaging_done+","+window.opener.mini+","+window.opener.onelongPaging_itor[window.opener.onelongPaging_mini]; // FIXME:LAPOZAS
        return;
    }
    // Betltdtt az j oldal.
    if(window.opener.onelongPaging_mini == null) {
        return;
    }
    var i2 = window.opener.onelongPaging_mini;
    var recnum2 = window.opener.onelongPaging_itor[i2];
    //  document.getElementById("zzz").innerHTML= "loading " + recnum2; // FIXME:LAPOZAS
    if(recnum2==null) {
        document.getElementById("nextPrevLoading").className="ygtvblankdepthcell"; // Ha mr nem sikerlt, legalbb ne csinljunk gy, mintha trtnne valami.
        return;
    } // FIXME:LAPOZAS: ilyenkor mit csinljunk? Mi van, ha a user mg1x rklikkel a "next" gombra (mgegyszer tovbblapozunk a httrben?)?

    var popupwindowname = window.name;
    with(window.opener) {
        openLongOnclick4(i2, recnum2,"",popupwindowname); // Fellrjuk azt az ablakot, amelyik megnyitja.
        }
}

/** Ugrunk a recnum utni rekordra */
function onelongPaging_prev(recnum) {
    //  document.getElementById("zzz").innerHTML= "prev " + recnum; // FIXME:LAPOZAS
    if(window==null) {
        return;
    }
    if(window.opener==null) {
        return;
    }
    if(window.opener.onelongPaging_itor==null) {
        return;
    }
    if(window.opener.onelongPaging_rtoi==null) {
        return;
    }
    var i = window.opener.onelongPaging_rtoi[recnum];
    if(i==null) {
        return;
    }
    if(i==window.opener.onelongPaging_mini) { // Lapozni kell a kovetkezo oldalra
        if(window.opener.gotoPrevResultPage == null) {
            return;
        }
        window.opener.document_is_valid=0;
        document.getElementById("nextPrevLoading").className="ygtvloading";
        window.opener.gotoPrevResultPage();
        onelongPaging_prev_2ndpart(window.opener, window.opener.document, window.opener.history);
        return;
    }
    var i2 = i-1;
    var recnum2 = window.opener.onelongPaging_itor[i2];
    if(recnum2==null) { // A kovetkezo talalati oldalra kene lapozni, vagy egyszeren nincs tovbb.
        return;
    }
    var popupwindowname = window.name;
    document.getElementById("nextPrevLoading").className="ygtvloading";
    with(window.opener) {
        openLongOnclick4(i2, recnum2,"",popupwindowname); // Fellrjuk azt az ablakot, amelyik megnyitja.
        }
}
// Ha j oldalra kell lapozni, ez a fv. vr, amg betltdik az j oldal, majd megnyitja a megfelel popup-ot.
function onelongPaging_prev_2ndpart(szulo, szulodoc, szulohist) {
    if(window.opener == null) {
        return;
    }
    while(!oneLongPaging_parent_is_complete()) { // Mg nem tltdtt be az j oldal.
        // Mg nem tltdtt be az j oldal.
        setTimeout(function() {
            onelongPaging_prev_2ndpart(szulo, szulodoc, szulohist);
        }, 100);
        //    document.getElementById("zzz").innerHTML = ""+window.opener+","+window.opener.document_is_valid+","+window.opener.onelongPaging_done+","+window.opener.mini+","+window.opener.onelongPaging_itor[window.opener.onelongPaging_mini]; // FIXME:LAPOZAS
        return;
    }
    // Betltdtt az j oldal.
    if(window.opener.onelongPaging_maxi == null) {
        return;
    }
    var i2 = window.opener.onelongPaging_maxi;
    var recnum2 = window.opener.onelongPaging_itor[i2];
    //  document.getElementById("zzz").innerHTML= "loading " + recnum2; // FIXME:LAPOZAS
    if(recnum2==null) {
        document.getElementById("nextPrevLoading").className="ygtvblankdepthcell"; // Ha mr nem sikerlt, legalbb ne csinljunk gy, mintha trtnne valami.
        return;
    } // FIXME:LAPOZAS: ilyenkor mit csinljunk? Mi van, ha a user mg1x rklikkel a "prev" gombra (mgegyszer tovbblapozunk a httrben?)?

    var popupwindowname = window.name;
    with(window.opener) {
        openLongOnclick4(i2, recnum2,"",popupwindowname); // Fellrjuk azt az ablakot, amelyik megnyitja.
        }
}

/* -------------------------------------------------------------------------------------------------- */
/**
 * Google books API-jn keresztl thumbnail-eket lehet kapni ISBN alapjn.
 * Lsd: http://code.google.com/apis/books/docs/dynamic-links.html
 * Lsd: http://code.google.com/apis/books/
 * A gthumb_* fv-ek s vltozk felelnek azrt, hogy legyenek thumbnail-jeink.
 */


var gthumb_itoisbn = new Array(); // Hnyadik tallat (position) -> ISBN
var gthumb_isbntoi = new Array(); // ISBN -> Array(Hnyadik tallat)
var gthumb_isbns = new Array(); // Csak az isbn-ek.
var gthumb_n = 0; // az Array-k mrete
var gthumb_booksInfo = null; // DEBUG celbol
var gthumb_needlink = new Array(); // Kell-e link a kphez

function gthumb_mark(position, isbn, needlink) {
    if(isbn==null || isbn=='') {
        return;
    }
    //  isbn='0439554934'; // FIXME:GTHUMB
    gthumb_itoisbn[position]=isbn;
    if(gthumb_isbntoi[isbn]==null) {
        gthumb_isbns.push(isbn);
        gthumb_isbntoi[isbn]=new Array();
    } // Ha tbb knyvnek is ugyanaz az ISBN-je, akkor mindegyik megkapja u.azt a thumbnail-t.
    gthumb_isbntoi[isbn].push(position);
    gthumb_needlink[position]=needlink;
    ++gthumb_n;
}
/** Akkor kell hvni, ha a megjelentett tallati lista utols elemnl (tipikusan 10.) jrunk. */
function gthumb_finished_marks() {
    if(gthumb_n==0) {
        return;
    }
    gthumb_request();
}
/**
 * Elindtja a google api request-et.
 */
function gthumb_request() {
    if(gthumb_n==0) {
        return;
    }
    var api_url ="http://books.google.com/books?jscmd=viewapi&bibkeys=" + gthumb_isbns.join(",") + "&callback=gthumb_callback";
    var headEl = document.getElementsByTagName("head")[0];
    var newScript = document.createElement("script");
    newScript.type = "text/javascript";
    newScript.src = api_url;
    //  newScript.onload=scriptLoaded;
    headEl.appendChild(newScript);
//  document.getElementById("gthumb1a").style.display=""; // FIXME:GTHUMB
//  document.getElementById("gthumb1b").innerHTML+="<br/>"+api_url; // FIXME:GTHUMB
}
/** A google books api ezt a fv-t hvja meg, miutn betltdtt */
function gthumb_callback(booksInfo) {
    gthumb_booksInfo = booksInfo;
    for (isbn in booksInfo) {
        //    document.getElementById("gthumb1b").innerHTML += "<br/> google isbn="+isbn; // FIXME:GTHUMB
        }

    for (isbn in booksInfo) {
        var iarr = gthumb_isbntoi[isbn];
        if (iarr == null) {
            continue;
        }
        for(iidx in iarr) {
            var i = iarr[iidx];
            //      document.getElementById("gthumb1b").innerHTML += "<br/>i="+i+" iarr.length="+iarr.length; // FIXME:GTHUMB
            var elementA = document.getElementById("gthumb"+i+"a");
            var elementB = document.getElementById("gthumb"+i+"b");
            var elementC = document.getElementById("gthumb"+i+"c");
            var bookInfo = booksInfo[isbn];
            //      document.getElementById("gthumb1b").innerHTML += "<br/> A="+elementA+" B="+elementB+" bookInfo="+bookInfo; // FIXME:GTHUMB
            if (elementA == null || elementB == null || bookInfo == null) {
                continue;
            }
            //      document.getElementById("gthumb1b").innerHTML += "<br/> thumbnail_url="+bookInfo.thumbnail_url; // FIXME:GTHUMB
            if (bookInfo.thumbnail_url == null) {
                continue;
            }
            if (bookInfo.info_url != null && gthumb_needlink[i]==true) {
                elementB.innerHTML = "<a href=\""+bookInfo.info_url+"\">"
                + "<img src=\""+bookInfo.thumbnail_url+"\"></img>"
                + "</a>";
            } else {
                var a = elementB.getElementsByTagName('a')[0];
                if(a!=null){
                    a.innerHTML = "<img src=\""+bookInfo.thumbnail_url+"\"></img>";
                }else{
                    elementB.innerHTML = "<img src=\""+bookInfo.thumbnail_url+"\"></img>";
                }
            }
            //    if (bookInfo.preview == "full" ||
            //    bookInfo.preview == "partial") {
            elementA.style.display = "";
            if(elementC!=null){
                elementC.style.display = "none";
            }
        }
    }
}

/* -------------------------------------------------------------------------------------------------- */
/**
 * Corvina OpenUrl Resolver eredmenyet megjelenito fv-ek
 */
function cor_onclick(idb, idri, url) {
    var eb = document.getElementById(idb);
    var eri = document.getElementById(idri);
    if (eb == null) {
        return;
    }
    if (eri == null) {
        return;
    }
    //  e.innerHTML = '<object data="'+href+'"></object>';
    if (eb.style.display != 'none') {
        eb.style.display = 'none';
        eri.style.display = 'none';
        return;
    }
    eb.style.display = '';
    if(eb.innerHTML != '') { // Ha mar korabban lekerdeztuk, ne kerdezzuk le ujbol.
        return;
    }
    eri.style.display = 'inline';
    cor_request(url);
    //  e.innerHTML = '<iframe style="width:100%;min-height:20px;border:0px;overflow:auto;" src="'+href+'"></iframe>';
    return;
}

function cor_request(url) {
    var headEl = document.getElementsByTagName("head")[0];
    var newScript = document.createElement("script");
    newScript.type = "text/javascript";
    newScript.src = url;
    headEl.appendChild(newScript);
}
/** Callback fv: a head-be beszurt betoltodott javascript kozvetve ezt hivja meg */
function cor_result(idb, idri, innerHTML, noResultHTML) {
    var eb = document.getElementById(idb);
    var eri = document.getElementById(idri);
    if (eb == null) {
        return;
    }
    if (eri == null) {
        return;
    }
    innerHTML = String_trim(innerHTML);
    if(innerHTML == '') {
        eb.innerHTML = noResultHTML;
        eri.style.display = 'none';
        eb.style.display = '';
    } else {
        eb.innerHTML = innerHTML + ' ';
        eri.style.display = 'none';
        eb.style.display = '';
    }
    return;
}


/* -------------------------------------------------------------------------------------------------- */
/**
 * Raktri kikrshez, raktri krlap sszelltshoz kszlt fv-ek.
 */

function String_trim(str) {
    return str.replace(/^\s+|\s+$/g, '');
}
function quoteHTML(str) {
    return str.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");
}

/**
 * Akkor kell hvni, ha egy rekord raktri kikrsekor valamelyik adat megvltozott.
 * Pl. a user nem az 1., hanem a 2. ktetet szeretn kiklcsnzni.
 * Letlti a fgg mezk j rtkt a servlet-tl.
 * @param recnum
 * @param formName a form neve (<form name="...">...</form>)
 * @param fieldName melyik mezo valtozott
 * @param fieldNames az osszes mezo neve
 */
function storageEditChangeOf(recnum, formId, fieldName, fieldNames, dependentFieldNames) {
    var form = document.forms[formId];
    var debug = document.getElementById('debug');
    // Letiltjuk a fuggo form mezoket, hogy addig ne valtozzon az ertekuk
    var dependentFieldNamesArr = String_trim(dependentFieldNames).split(" ");
    for(var i=0;i<dependentFieldNamesArr.length;i++) {
        var dependentFieldName = dependentFieldNamesArr[i];
        if (dependentFieldName == fieldName) {
            continue;
        } // Sajat magat allithatova tesszuk.
        var f1_cont = se_getContainer(document, formId, dependentFieldName);
        if (f1_cont == null) {
            continue;
        } // assertion error
        debug.innerHTML += "Disabling dependentFieldName " + dependentFieldName + "<br/>\n";
        YAHOO.util.Dom.addClass(f1_cont, "disabled");
    }
    doStorageEditChangeXmlHttpRequest( recnum, formId, fieldName, fieldNames, dependentFieldNames );
}

/**
 * se = StorageEdit
 */
function se_getContainer( element, formId, fieldName ) {
    if(element==null) {
        return null;
    }
    var containerid = formId + '_' + fieldName;
    if(element == document) {
        var container = element.getElementById(containerid);
        return container;
    }
    // Vgig kell mennnk az elemeken.
    var subelements = element.getElementsByTagName("*");
    for(var j=0;j<subelements.length;j++) {
        var subelement = subelements[j];
        if(subelement.getAttribute("id") == containerid) {
            return subelement;
        }
    }
    return null;
}
/** Csak akkor mukodik. ha element==document */
function se_getField( element, formId, fieldName ) {
    if(element==null) {
        return null;
    }
    var form = element.getElementById(formId);
    if (form == null) {
        return null;
    }
    var f1 = null;
    try {
        f1 = form[fieldName];
    } catch(err) {}
    return f1;
}
function doStorageEditChangeXmlHttpRequest( recnum, formId, fieldName, fieldNames, dependentFieldNames ) {
    // Lsd: http://developer.yahoo.com/yui/connection/
    var form = document.getElementById(formId);
    var debug = document.getElementById('debug');
    debug.innerHTML += "doStorageEditChangeXmlHttpRequest("+recnum+","+formId+","+fieldName+","+fieldNames+","+dependentFieldNames+")"+"<br/>";
    var handleSuccess = function(o) {
        // o.responseXML erteke null.
        if(o.responseText !== undefined && o.status==200) {
            debug.innerHTML += "<hr/>" + "AJAX succes." + "<br/>" + "<hr/>";
        } else {
            debug.innerHTML += "<hr/>" + "AJAX success, de nem az igazi" + "<hr/>";
            return;
        }
        // Kivalogatjuk azokat a mezoket, amelyek valtozhattak.
        // Fell is rjuk az rtkket az j rtkkel.
        var fetchedHtml = document.createElement("div");
        fetchedHtml.innerHTML = o.responseText;
        var dependentFieldNamesArr = String_trim(dependentFieldNames).split(" ");
        dependentFieldNamesArr.push(fieldName); // Sajat magat is frissitjuk.
        for(var i=0;i<dependentFieldNamesArr.length;i++) {
            var dependentFieldName = dependentFieldNamesArr[i];
            debug.innerHTML += "Processing dependentFieldName "+dependentFieldName+"<br/>";

            var f1_cont = se_getContainer(document, formId, dependentFieldName);
            if (f1_cont == null) {
                debug.innerHTML += " Error: cannot find "+dependentFieldName+" in the form<br/>";
                continue;
            }
            var f1_oldvalue = null;
            var f1_field = se_getField(document, formId, dependentFieldName);
            try {
                if (f1_field != null) {
                    f1_oldvalue = f1_field.value;
                }
            } catch(err) {}
            YAHOO.util.Dom.removeClass(f1_cont, "disabled");

            // Megkeressuk a parjat a most letoltott dolgokban.
            var e1_cont = se_getContainer(fetchedHtml, formId, dependentFieldName);
            if (e1_cont == null) {
                debug.innerHTML += " Error: cannot find "+dependentFieldName+" in the downloaded stuff<br/>";
                continue;
            }
            debug.innerHTML += "<span style=\"white-space: nowrap\">Code for this field: "+quoteHTML(e1_cont.innerHTML)+"<br/></span>";

            try {
                f1_cont.innerHTML = e1_cont.innerHTML;
            }
            catch(err) {
                document.getElementById('debug').innerHTML += "Exception thrown: "+err+"<br/>";
            }
	  
	  
            if (f1_field != null && f1_oldvalue != null && dependentFieldName == fieldName) {
                // a .innerHTML reseteli az aktiv mezo beallitasat, ezert visszaallitjuk
                try {
                    f1_field.value = f1_oldvalue;
                }
                catch(err) {
                    document.getElementById('debug').innerHTML += "Exception thrown: "+err+"<br/>";
                }
            }
        }
    return;
}
var handleFailure = function(o) {
    document.getElementById('debug').innerHTML += "<hr/>" + "AJAX failure. status="+o.status
    + " responseText="+o.responseText
    + "<hr/>";
}
var callback =
{
    success:handleSuccess,
    failure:handleFailure,
    argument: {
        foo:"foo",
        bar:"bar"
    }
};
var fieldNamesArr = String_trim(fieldNames).split(" ");
var arguments = new Array();
document.getElementById('debug').innerHTML += "fieldNamesArr.length="+fieldNamesArr.length+"<br/>";
for(var i=0;i<fieldNamesArr.length;i++) {
    var value = null;
    var thisFieldName = fieldNamesArr[i];
    //	var form = document.forms[formId];
    if(thisFieldName==null || thisFieldName=='') {
        continue;
    }
    try {
        value = form[thisFieldName].value
        } catch(err) {}
    document.getElementById('debug').innerHTML += ""+thisFieldName+"="+value+"<br/>";
    if(value == null) {
        continue;
    }
    arguments[i] = "&" + thisFieldName + "=" + encodeURI(value);
}
// FIXME:STORAGE: quote-olni kene a newValue-t.
var request = YAHOO.util.Connect.asyncRequest('POST', "?action=ajax:storage_edit_change" /* url */, callback,
    "&recnum="+recnum
    +"&formId="+formId
    +"&fieldName="+fieldName
    +arguments.join(""));
//	  +"&newValue="+newValue);
}




var se_ajaxwin = null;
var se_ajaxwin_title = null;
/**
 * Modlis dialgus-ablakknt behvja AJAX-osan a raktri kikrst kezel oldalt.
 */
function se_open_storagerequest_window(baseurl, recnum) {
    var url = baseurl+"?action=storage_edit&recnum="+recnum;
    var windowName = "storage_request";
    var windowoptions = "width=560,height=720,resizable=1,scrollbars=1"; // scrolling=1,center=1
    window.open(url, windowName, windowoptions);
}

/**
 * Torli a ratkari kerolaprol a megadott kerest.
 * @param srMyId  az el nem kldtt krsek WebPac-on bell hasznlt azonostja
 * @param sr_id_row annak az elemnek az id-je, ami ezt a raktri krst lerja
 * @param sr_id_row2 Ha ppen hibazenet is meg van jelentve az adott raktri krshez, akkor azt is trljk,
 *        az "AJAX krs trlsre" sikere esetn.
 */
function deleteStorageRequestAjax(srMyId, sr_id_row, sr_id_row2) {
    var e_row = document.getElementById(sr_id_row);
    var e_row2 = document.getElementById(sr_id_row2); // Lehet null is, ha
    if(e_row==null) {
        return;
    }
    var handleSuccess = function(o) {
        if(o.responseText !== undefined && o.status==200) {
            e_row.style.display='none';
            if(e_row2!=null) {
                e_row2.style.display='none';
            }
        } else {
    }
    }
    var handleFailure = function(o) {
    //    if(o.responseText !== undefined) {
    //    }
    }
    var callback =
    {
        success:handleSuccess,
        failure:handleFailure,
        argument: {
            foo:"foo",
            bar:"bar"
        }
    };
    var url = "?action=ajax:storage_order_from_delete&srMyId="+srMyId
    var request = YAHOO.util.Connect.asyncRequest('POST', url, callback, "" /* postData */);

}

/**
 * Raktri krlap folyiratokhoz: submit sorn ellenrzi, hogy ki van-e tltve minden szksges adat (feltve, hogy ki lehet tlteni)
 * folyirat klcsnzs logikja: szm nem lehet res, vfolyam s vszm kzl legalbb az egyiket ki kell tlteni.
 * @param formId a raktri kikrst kezdemnyez form azonostja
 * @param errMsg1 hibazenet, ha a szm res
 * @param errMsg2 hibazenet, ha vfolyam s vszm kzl valamelyik res
 * @return true, ha rendben van a form, vagy nem folyiratrl van sz, egybknt false;
 */
function check_submit_if_serial(formId, errMsg1, errMsg2) {
    var form = document.getElementById(formId);
    if (form == null) {
        return false;
    }
  
    var e_volumeInfo_serial = se_getField( document, formId, "volumeInfo_serial");
    var e_yearInfo_serial = se_getField( document, formId, "yearInfo_serial");
    var e_numberInfo = se_getField( document, formId, "numberInfo");
    if(e_volumeInfo_serial==null || e_yearInfo_serial==null || e_numberInfo==null) {
        return true;
    } // Nem folyiratrl van sz, nincsenek meg azok a mezk, amiket ellenrizni akarunk.
  
    var volumeInfo_serial = e_volumeInfo_serial.value;
    var yearInfo_serial = e_yearInfo_serial.value;
    var numberInfo = e_numberInfo.value;

    var errMsg = "";
    var set_focus_element = null;
    if ((yearInfo_serial==null || yearInfo_serial=="") && (volumeInfo_serial==null || volumeInfo_serial=="")) {
        if(errMsg.length==0) {
            set_focus_element = e_yearInfo_serial;
        } else {
            errMsg+=" ";
        }
        errMsg += errMsg2;
    }
    if (numberInfo==null || numberInfo=="") {
        if(errMsg.length==0) {
            set_focus_element = e_numberInfo;
        } else {
            errMsg+=" ";
        }
        errMsg += errMsg1;
    }
    if (errMsg == "") {
        form.submit();
        return true;
    }
    alert(errMsg);
    if(set_focus_element!=null) {
        set_focus_element.focus();
    }
    return false;
}

/**
 * Ellenrzi, hogy bizonyos mezk nem kitltetlenek-e a raktri krlapon
 * @param notNullFieldsArr Plda: [ 'requestPurpose', 'kolcsonzes celja', 'servingLocation', 'kiszolgalas helye' ]
 */
function se_submit(formId, errMsg3, notNullFieldsArr) {
    var form = document.getElementById(formId);
    if (form == null) {
        return false;
    }
    if(se_check_not_null_fields(formId, errMsg3, notNullFieldsArr)==false) {
        return false;
    }
    form.submit();
    return true;
}
/**
 * @return true, ha rendben van a form, egyebkent alert() es false.
 */
function se_check_not_null_fields(formId, errMsg3, notNullFieldsArr) {
    return true;
/*
  var form = document.getElementById(formId);
  if (form == null) { return false; }
  var set_focus_element = null;
  var warnings = []; // Mezok szoveges feloldasa. Azoke a mezoket, amelyek miatt figyelmeztetni kell.
  for(var i=0;i+1<notNullFieldsArr.length;i+=2) {
    var key = notNullFieldsArr[i];
    var text = notNullFieldsArr[i+1];
    var e = se_getField(document, formId, key);
    if(e==null) { return false; }
    var value = e.value;
    if(value==null || value=="") {
      warnings.push(text);
      if(set_focus_element==null) { set_focus_element = e; }
    }
  }
  if(warnings.length==0) {
    return true;
  }
  alert(""+errMsg3+warnings.join(","));
  if(set_focus_element!=null) {
    set_focus_element.focus();
  }
  return false;
*/
}


function gotoStorageOrderForm() {
    var url = '?action=patrondata#storage_order_form';
    if(window.opener!=null && window.opener.opener!=null) {
        // "mutat" ablakban nyomtk meg a "raktri kikrs" gombot.
        window.opener.opener.location=url;
        window.opener.close();
        window.close();
    } else if(window.opener!=null) {
        // Ez a tipikus: popup ablakban van a raktri kikrs
        window.opener.location=url;
        window.close();
    } else {
        window.location=url;
    }
}

/**
 * Callback fv az AJAX-os patronloginform szmra (patronloginform_ajax.xsl)
 * Fell kell rni.
 */
document.patronloginform_submit_button_onclick = function () {
    return;
};

/** Elkuldott raktari keresek: azon datum cellak id harmasai (id1, id2, id3), amelyek kibonthatoak */
var storage_sent_requests_expandable_date_ids = new Array();
/**
 * Elkuldott raktari keresek:
 * Kibontja / becsukja az osszes datum cellat.
 * @param zid1, zid2 a tablazat fejleceben a "datum" oszlopban levo 2 kep (lefele es felfele mutato nyil) id-je.
 */
function storage_sent_requests_expand3_all_dates(zid1, zid2) {
    var arr = storage_sent_requests_expandable_date_ids;
    var e1 = document.getElementById(zid1);
    var e2 = document.getElementById(zid2);
    if(e1==null || e2==null) {
        return;
    }
    if(e2.style.display!='none') { // Jelenleg ki van bontva. Be kell csukni.
        e2.style.display='none'; // elobb kikapcsoljuk a meglevo nyilat, aztan bekapcsoljuk a masikat.
        for(var idx=0;idx+2<arr.length;idx+=3) {
            var id1=arr[idx+0];
            var id2=arr[idx+1];
            var id3=arr[idx+2];
            expand3_collapse(id1,id2,id3);
        }
        e1.style.display='';
    } else { // Jelenleg be van csukva. Ki kell nyitni.
        e1.style.display='none'; // elobb kikapcsoljuk a meglevo nyilat, aztan bekapcsoljuk a masikat.
        for(var idx=0;idx+2<arr.length;idx+=3) {
            var id1=arr[idx+0];
            var id2=arr[idx+1];
            var id3=arr[idx+2];
            expand3_expand(id1,id2,id3);
        }
        e2.style.display='';
    }
}

/**
 * A hidable="true" es id=id (parameter) attributummal rendelkezo tr-eket lathatova teszi,
 *  vagy elrejti aszerint, hogy lathatoak voltak-e. (Lathatosagat atbillenti.)
 * Peldanyok megjelenitesenek hasznalatos)
 */
function hideOrShowTR(id){
    var items = document.getElementsByTagName('tr');

    for (var scanner=0;scanner<items.length;scanner++){
        var one = items[scanner];
        if (one.getAttribute('hidable')=='true' & one.id==id){
            if(one.style.display=='none') {
                one.style.display='';
            } else{
                one.style.display='none';
            }
        }
    }
}

/**
 * Az osszes peldanycsoport becsukasa/kinyitasa.
 * 
 * - Az oldalon levo osszes tr-t, aminek az id-je 'state_group'-al kezdodik, elrejti, vagy megjeleniti.
 * - A forras anchor state attributumat atallitja az uj allapot szerint (opened/closed)
 * - Az anchor belsejeben levo img src-jet atallitja az uj allpot kepere (minus.png/plus.png) 
 *
 * elementId - a forras objektum (gomb) (<a><img/></a>)
 */
function hideOrShowAllStateGroups(elementId, recnum) {
    // Mi a celunk (kinyitni, vagy becsukni) (open/close)
    var mode = "close";    

    var element = document.getElementById(elementId);
    var openTooltip = element.getAttribute('openTip');
    var closeTooltip = element.getAttribute('closeTip');

    // Mode (cel) megallapitasa + gomb ikon kicserelese
    if(element.getAttribute('state')=='opened') {
        // Cel: Az osszes csoport becsukasa
        changeAttribute(element.id, 'state', 'closed');
        changeAttribute(element.id, 'title', openTooltip);

        // check if the object is not empty
        if (element.hasChildNodes()) {
            var children = element.childNodes;
            for (var i = 0; i < children.length; i++) {
                var child = children[i];
                changeAttribute(child.id, 'src', 'images/plus.png');
            }
        }
    } else {
        // Cel: Az osszes csoport kinyitasa
        mode = 'open';

        changeAttribute(element.id, 'state', 'opened');
        changeAttribute(element.id, 'title', closeTooltip);

        // check if the object is not empty
        if (element.hasChildNodes()) {
            children = element.childNodes;
            for (i = 0; i < children.length; i++) {
                child = children[i];
                changeAttribute(child.id, 'src', 'images/minus.png');
            }
        }
    }

    // Elrejtes/megjelenites
    var groupName = "state_group_" + recnum;
    var items = document.getElementsByTagName('tr');
    for (var scanner=0;scanner<items.length;scanner++) {
        var one = items[scanner];
        var id = one.id;
        var groupRow = one.getAttribute('groupRow');
        if (one.getAttribute('hidable')=='true' & id.substr(0, groupName.length) == groupName) {
            if(mode=='open') {
                if(groupRow) {
                    one.style.display='none';
                } else {
                    one.style.display='table-row';
                }
            } else {
                if(groupRow) {
                    one.style.display='table-row';
                } else {
                    one.style.display='none';
                }
            }
        }
    }
}

/**
 * Az objectId azonositoju tag attributeName attributumanak erteket a newValue ertekre allitja az.
 * (Hasznlat: Olvaso bejelentkezo form-on a captcha magyaritasakor)
 */
function changeAttribute(objectId, attributeName, newValue) {
    var object = document.getElementById(objectId);
    object.setAttribute(attributeName, newValue);
}

/**
 * Egy peldanycsoport osszes peldanyat kiemeli a megadott szinnel
 * myElement a tabla egy sora
 * highlightColor a kiemeles szine
 */
function highlightStateGroup(myElement, highlightColor) {
    if(myElement != null & highlightColor != null) {
        //Kikeressuk az osszes node-ot ilyen tag-el
        var items = document.getElementsByTagName(myElement.tagName);

        for (var scanner=0;scanner<items.length;scanner++){
            var one = items[scanner];
            //amikenek az id-je azonos, kiemeljuk a megadott szinnel
            if (one.id == myElement.id){
                highlightTableRowVersionA(one, highlightColor)
            }
        }
    }
}

/**
 * Az allomanyadatokat becsukja vagy kinyitja.
 * Ha el volt rejtve, megjeleniti, ha latszott, elrejti.
 * 
 * Az allomanyadat ketto tr, hidable="true" attributummal, id-je ilyen legyen: "holding_" + recnum
 *
 * A fa "ikon" id-je ilyen kell, hogy legyen: "holding_treeicon_" + recnum
 * Ebben az esetben az ikon class-t is atallitja.
 *
 * recnum - melyik recnum-hoz tartozo allomanyadatokat akarjuk megjeleniteni vagy elrejteni
 */
function hideOrShowHoldingInfo(recnum) {
    if(recnum != null) {
        var treeicon = document.getElementById("holding_treeicon_" + recnum);

        // Elrejtes/megjelenites
        var id = "holding_" + recnum;
        var items = document.getElementsByTagName('tr');
        for (var scanner=0; scanner<items.length; scanner++) {
            var one = items[scanner];
            if (one.getAttribute('hidable')=='true' & one.id==id) {
                if(one.style.display=='none') {
                    one.style.display='table-row';
                    treeicon.className="ygtvbm";
                    treeicon.setAttribute("state", "opened");
                } else {
                    one.style.display='none';
                    treeicon.className="ygtvap";
                    treeicon.setAttribute("state", "closed");
                }
            }
        }
    }
}

/** A prefix-hez tartozo checkbox-ok kijeloltseget invertalja */
function invertRenewCheckboxSelection(prefix) {    
    var inputs = document.getElementsByTagName('input');    
    for (var scanner=0; scanner<inputs.length; scanner++) {
        var one = inputs[scanner];
        if (one.getAttribute('type')=='checkbox' & one.id=='renewcheckbox_'+prefix) {
            one.checked = !one.checked;
        }
    }
}

/** A prefix-hez tartozo kijelolt peldanyokat meghosszabbitja */
function renewSelected(prefix) {
    /** Olvasoi vonalkod */
    var patronbarcode = null;
    /** Olvasojegy lejar */
    var barcodeduedate = null;
    /** Hosszabbitando opeldanyvonalkodok tombje */
    var itembarcodes = new Array();    

    //Checkboxok megkeresese
    var inputs = document.getElementsByTagName('input');
    var index=0;
    for (var scanner=0; scanner<inputs.length; scanner++) {
        var one = inputs[scanner];        
        if (one.getAttribute('type')=='checkbox' & one.id=='renewcheckbox_'+prefix & one.checked) {
            if(index==0) {
                patronbarcode = one.getAttribute('renew_pb');
                barcodeduedate = one.getAttribute('barcodeduedate=');
            }
            var itembarcode = one.getAttribute('itembarcode');
            itembarcodes[index++] = itembarcode;
        }
    }

    //Ha nincs semmi kijelolve, nem csinalunk semmit
    if(itembarcodes.length == 0) {
        return;
    }

    //Url osszerakasa
    var url="?action=renew-multiple&itembarcodes=" + itembarcodes + "&renew_pb="+patronbarcode+"&barcodeduedate="+barcodeduedate;
    //Atiranyitas
    window.location=url;
}

/**
 * Elrejti / megjeleniti az authority record sort.
 * @param id - ebbol nyeri ki a sor azonositojat ("authority-record_" + id)
 */
function showOrHideAuthorityRecord(id) {    
    if(id == null) {
        //id parameter is null
        return;
    } else {
        //sor id-jenek osszerakasa
        var rowId = "authority-record_" + id;
        var row = document.getElementById(rowId);
        if(row != null) {
            //sor elrejtese/megjelenitese
            if(row.className == "hidden") {
                row.className="";

            } else {
                row.className="hidden";
            }
        } else {
            //row is null
            return;
        }
    }
}

/**
 * A mytreeview.js class hasznalata nelkul adja meg, hogy a fa ikonnak milyen class kell hover eseten.
 * FONTOS: element-nek kell, hogy legyen egy "state" attributuma, ami ha closed, akkor van csukva, ha "opened", akkor van nyitva.
 *
 * element - az a html elem, aminek a class-at lekerdezzuk.
 */
function getTreeIconStyle(element) {
    if(element == null) {
        return "";
    } else {
        var state = element.getAttribute("state");
        if(state=="closed") {
            return "ygtvap";
        } else {
            return "ygtvbm";
        }
    }
}

/* -------------------------------------------------------------------------------------------------- */
/** A kvetkez kdrszletre vonatkoz licensz:
Copyright (c) 2006, Yahoo! Inc. All rights reserved.                                                                                                    
Code licensed under the BSD License:                                                                                                                    
http://developer.yahoo.net/yui/license.txt                                                                                                              
version: 0.11.0                                                                                                                                         
*/ 
 
/**
 * Adds an event.  Replace with event manager when available
 *
 * @param el the elment to bind the handler to
 * @param {string} sType the type of event handler
 * @param {function} fn the callback to invoke
 * @param {boolean} capture if true event is capture phase, bubble otherwise
 */
/* YAHOO.widget.TreeView.addHandler = function (...) {} */ function addHandler(el, sType, fn, capture) {
    capture = (capture) ? true : false;
    if (el.addEventListener) {
        el.addEventListener(sType, fn, capture);
    } else if (el.attachEvent) {
        el.attachEvent("on" + sType, fn);
    } else {
        el["on" + sType] = fn;
    }
}
function trim(s) {
    try {
        return s.replace(/^\s+|\s+$/g, "");
    } catch(e) {
        return s;
    }
}

function amountPay(checkbox)
{
    var chId = checkbox.getAttribute('id');
    var num = chId.substring(2);
    var aId = "am"+num;
    var changeSum = parseFloat(document.getElementById("chSum").innerHTML);
    var amount = parseFloat(document.getElementById(aId).innerHTML);
    var ss;

    if (checkbox.checked==true)
    {
        ss = changeSum + amount;
    }
    else
    {
        ss = changeSum - amount;
        if (ss<0)
            ss=0;
    }

    document.getElementById("chSum").innerHTML=ss + " HUF";

    if (ss==0)
    {
        document.getElementById("payButton").disabled=true;
    }
    else
    {
        document.getElementById("payButton").disabled=false;
    }

}
/* -------------------------------------------------------------------------------------------------- */

function openOrderPictureWindow(baseurl,picid) {
    var url = baseurl+"?action=choosepictureordergroup&picids="+picid;
    var windowName = "";
    var windowoptions = "width=620,height=700,resizable=1,scrollbars=1"; // scrolling=1,center=1
    window.open(url, windowName, windowoptions);
}

function submitPictureOrderGroupSelection(){
    var countInput = document.getElementById("totalpiccount");
    var groupid = document.getElementById("groupid").value;
    if(groupid != null && groupid != " --- " && groupid != ""){
        var count = document.getElementById("tpc_" + groupid).value;
        countInput.value = count;
    }
    document.getElementById("groupselectionform").submit();
}

function updateOrderPictureForm(levelcount){
    var table = document.getElementById("orderpictureformtable");
    var selects = table.getElementsByTagName("select");
    var levels = "";
    var objects = "";
    for(var i=0;i<selects.length;i++){
        var select=selects[i];
        var position = select.getAttribute("position");
        if(position == null){
            continue;
        }
        var levelname = document.getElementById("levelname_" + position).value;
        var object = select.value.split("|")[0];
        if(levels != ""){
            levels = levels + ";";
        }
        if(objects != ""){
            objects = objects + ";";
        }
        levels = levels + levelname;
        objects = objects + object;
    }
    for(var j=1;j<=levelcount;j++){
        var input = document.getElementById("expand_" + j);
        if(input!=null){
            document.getElementById("hidden_" + j).value = input.value;
        }
    }
    var message_input = document.getElementById("input_message");
    message_input.value = document.getElementById("message").value;
    var notifyaddress_input = document.getElementById("input_notifyaddress");
    notifyaddress_input.value = document.getElementById("notifyaddress").value;
    if(document.getElementById("company_cb").checked){
        var companyname_input = document.getElementById("input_companyname");
        companyname_input.value = document.getElementById("companyname").value;
        var companysite_input = document.getElementById("input_companysite");
        companysite_input.value = document.getElementById("companysite").value;
        var companytaxnumber_input = document.getElementById("input_companytaxnumber");
        companytaxnumber_input.value = document.getElementById("companytaxnumber").value;
        var companybillingaddress_input = document.getElementById("input_companybillingaddress");
        companybillingaddress_input.value = document.getElementById("companybillingaddress").value;
    }
    var duedate_input = document.getElementById("input_duedate");
    duedate_input.value = document.getElementById("duedate").value;
    var publishingdetails_input = document.getElementById("input_publishingdetails");
    publishingdetails_input.value = document.getElementById("publishingdetails").value;
    var paymenttype_input = document.getElementById("input_paymenttype");
    paymenttype_input.value = document.getElementById("paymenttype").value;
    document.getElementById("input_levels").value = levels;
    document.getElementById("input_objects").value = objects;
    document.getElementById("hiddenorderform").submit();
}

function calculatePicturePrice(picnum, discount, discountWord){
    var table = document.getElementById("orderpictureformtable");
    var selects = table.getElementsByTagName("select");
    var currency = "";
    if(document.getElementById("baseprice")==null){
        return;
    }
    if(document.getElementById("currency")!=null){
        currency = document.getElementById("currency").value;
    }
    var price = document.getElementById("baseprice").value;
    var fixPrice = 0;
    for(var i=0;i<selects.length;i++){
        var select=selects[i];
        if(select.value=="null"){
            document.getElementById("usagepricerow").style.display = "none";
            document.getElementById("copypricerow").style.display = "none";
            document.getElementById("sumpricerow").style.display = "none";
            document.getElementById("sumdiscountpricerow").style.display = "none";
            document.getElementById("orderrow").style.display = "none";
            return;
        }
        if(select.value.split("|").length > 1){
            if(select.value.split("|")[1] != ""){
                price = price * select.value.split("|")[1];
            }
        }
        if(select.value.split("|").length > 2){
            if(select.value.split("|")[2] != ""){
                fixPrice = (fixPrice + select.value.split("|")[2]) * 1;
            }
        }
    }
    //price = price * discount;
    //fixPrice = fixPrice * discount;
    //price = price + fixPrice;
    document.getElementById("usagepricecell").innerHTML = price + " " + currency;
    document.getElementById("copypricecell").innerHTML = fixPrice + " " + currency;
    document.getElementById("save_input_usagecalcprice").value = price;
    document.getElementById("save_input_copycalcprice").value = fixPrice;
    document.getElementById("save_input_currency").value = currency;
    document.getElementById("usagepricerow").style.display = "";
    document.getElementById("copypricerow").style.display = "";
    document.getElementById("orderrow").style.display = "";
    if(picnum>1){
       document.getElementById("sumpricecell").innerHTML = ((price + fixPrice) * picnum) + " " + currency;
       document.getElementById("sumpricerow").style.display = "";
    }
    if(discount != 1){
        var dis = "(" + (Math.round((1 - discount) * 100)) + "% " + discountWord + ")";
        document.getElementById("sumdiscountpricecell").innerHTML = ((price + fixPrice) * picnum * discount) + " " + currency + " " + dis;
        document.getElementById("sumdiscountpricerow").style.display = "";
    }
}

function setExpandInput(select,levelposition,lastindex){
    var expandinput = document.getElementById("expand_" + levelposition);
    if(select.selectedIndex == lastindex){
        expandinput.removeAttribute("disabled");
    }else{
        expandinput.setAttribute("disabled", "disabled");
    }
}

function savePictureOrder(emailMessage){
    var notifyaddress = document.getElementById("notifyaddress").value;
    if(isEmailValid(notifyaddress) == false){
        alert(emailMessage);
        return;
    }
    var table = document.getElementById("orderpictureformtable");
    var selects = table.getElementsByTagName("select");
    var levels = "";
    var objects = "";
    for(var i=0;i<selects.length;i++){
        var select=selects[i];
        var position = select.getAttribute("position");
        if(position == null){
            continue;
        }
        var levelname = document.getElementById("levelname_" + position).value;
        if(select.getAttribute("expandable")=="yes"){
            var options = select.getElementsByTagName('option');
            if(options.length-1 == select.selectedIndex){
                var object = document.getElementById("expand_" + (i+1)).value;
            }else{
                object = select.value.split("|")[0];
            }
        }else{
            object = select.value.split("|")[0];
        }
        if(levels != ""){
            levels = levels + ";";
        }
        if(objects != ""){
            objects = objects + ";";
        }
        levels = levels + levelname;
        objects = objects + object;
    }
    document.getElementById("save_input_levels").value = levels;
    document.getElementById("save_input_objects").value = objects;
    document.getElementById("save_input_message").value = document.getElementById("message").value;
    var notifyaddress_input = document.getElementById("save_input_notifyaddress");
    notifyaddress_input.value = notifyaddress;

    if(document.getElementById("company_cb").checked){
        var companyname_input = document.getElementById("save_input_companyname");
        companyname_input.value = document.getElementById("companyname").value;
        var companysite_input = document.getElementById("save_input_companysite");
        companysite_input.value = document.getElementById("companysite").value;
        var companytaxnumber_input = document.getElementById("save_input_companytaxnumber");
        companytaxnumber_input.value = document.getElementById("companytaxnumber").value;
        var companybillingaddress_input = document.getElementById("save_input_companybillingaddress");
        companybillingaddress_input.value = document.getElementById("companybillingaddress").value;
    }
    var duedate_input = document.getElementById("save_input_duedate");
    duedate_input.value = document.getElementById("duedate").value;
    var publishingdetails_input = document.getElementById("save_input_publishingdetails");
    publishingdetails_input.value = document.getElementById("publishingdetails").value;
    var paymenttype_input = document.getElementById("save_input_paymenttype");
    paymenttype_input.value = document.getElementById("paymenttype").value;

    document.getElementById("hiddenpictureorder").submit();
}

function openOrderPictureDetailsWindow(baseurl,orderid) {
    var url = baseurl+"?action=orderpicturedetails&orderid="+orderid;
    var windowName = "";
    var windowoptions = "width=620,height=700,resizable=1,scrollbars=1"; // scrolling=1,center=1
    window.open(url, windowName, windowoptions);
}

function openOrderPictureGroupDetailsWindow(baseurl,groupid) {
    var url = baseurl+"?action=orderpicturegroupdetails&groupid="+groupid;
    var windowName = "";
    var windowoptions = "width=620,height=700,resizable=1,scrollbars=1"; // scrolling=1,center=1
    window.open(url, windowName, windowoptions);
}

function showHideLine(tr_id){
    var tr = document.getElementById(tr_id);
    if(tr.style.display=='none'){
        tr.style.display='';
    }else{
        tr.style.display='none';
    }
}

function showHideLines(attribute, id){
    var trs = document.getElementsByTagName("tr");
    for(var i=0;i<trs.length;i++){
        var tr = trs[i];
        if(!tr.hasAttribute(attribute)){
            continue;
        }
        if(tr.getAttribute(attribute)==id){
            if(tr.style.display=='none'){
                tr.style.display='';
            }else{
                tr.style.display='none';
            }
        }
    }
}

function openPictureGroupSelectionWindow(baseurl) {
    var url = baseurl+"?action=picturegroupselection";
    var windowName = "";
    var windowoptions = "width=620,height=700,resizable=1,scrollbars=1"; // scrolling=1,center=1
    window.open(url, windowName, windowoptions);
}

function sendPictureGroupSelections(){
    var picids = "";
    var i = 1;
    var first = true;
    while(true){
        var cb = document.getElementById("choice_" + i);
        if(cb == null){
            break;
        }
        if(cb.checked){
            if(!first){
                picids += ";";
            }else{
                first = false;
            }
            picids += document.getElementById("picid_" + i).value;
        }
        i++;
    }
    document.getElementById("picids_input").value = picids;
    document.getElementById("sendform").submit();
}

function isEmailValid(email){
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    return reg.test(email);
}
/* -------------------------------------------------------------------------------------------------- */
/**
 * Tabbed menu script (pl Patron oldalon)
 */
function changeTabMenuSelectedPage(divID, selectedMenuItem) {
	/*Menu elemek alaphelyzetbe hozasa*/
	var table = document.getElementById(selectedMenuItem.parentNode.parentNode.parentNode.id);
	for (i=0; i<table.rows[0].cells.length; i++) {
		table.rows[0].cells[i].className='tabmenu_item';

	}
	/*Kivalasztott menu elem*/
	selectedMenuItem.className='tabmenu_selecteditem';

	/*kivalasztott tab*/
	var tabs = document.getElementsByTagName('div');
	for(i=0; i<tabs.length; i++) {
		if (tabs[i].className == 'tabpage' ) {
			tabs[i].style.display = 'none';
		}
	}
	document.getElementById(divID).style.display='block';
}

function setFirstTabSelection(tableID){
	var tabmenuitem = document.getElementById(tableID).rows[0].cells[0];
	var method = tabmenuitem.getAttribute('onclick');
	var startIdx = method.indexOf('(\'') + 2;
	var endIdx = method.indexOf('\')') - startIdx;
	if (endIdx < 1) {
		endIdx = method.indexOf('\',') - startIdx;
	}
	changeTabMenuSelectedPage(method.substr(startIdx, endIdx).valueOf(), tabmenuitem);
}
/* -------------------------------------------------------------------------------------------------- */
/**
 * A boritokepek betoltese es megjelenitese
 */

var deenk_covers = new Array();
var deenk_positions = new Array();

function loadImage(src,position){
    var image = new Image();
    image.src = src;
    deenk_covers.push(image);
    deenk_positions.push(position);
}

function addOnload(func){
    document.getElementsByTagName("body")[0].setAttribute("onload", func);
}

function drawRemainingIcons(){
    //alert("!");
    for(var i=0;i<deenk_covers.length;i++){
        var position = deenk_positions[i];
        var imgDiv = document.getElementById("img_" + position);
        if(imgDiv == null){
            continue;
        }
        var image = deenk_covers[i];
        if(image.height<=1){
            document.getElementById("img_" + position).style.display = "none";
            document.getElementById("icon_" + position).style.display = "";
        }
    }
}

/**
 * Talalati lista letoltes oldalon a formatum select kivalasztasakor fut le
 */
function onchange_view() {
    var is_marc_bin = document.mainform.view.value=='marc-us bin' || document.mainform.view.value=='marc-hun bin';

    var is_rtf = document.mainform.view.value.search('rtf') > -1;


    if(is_marc_bin || is_rtf) {
        if(is_rtf) {
            disable_showinbrowser();
        }
        disable_encoding();
    } else {
        enable_encoding();        
    }

    if(!is_rtf) {
        enable_showinbrowser();
    }
}

/**
 * Talalati lista letoltes oldalon a karakter kodolas select-et tiltja le
 */
function disable_encoding() {
    var x=document.getElementById('select_encoding');
    //							if(!x.hasAttribute('disabled')) { x.setAttribute('disabled','disabled'); } // IE nem ismeri a hasAttribute()-ot.
    x.setAttribute('disabled','disabled');
    document.getElementById('td_encoding').className='disabled_form_subelement';
    document.getElementById('select_encoding').className='disabled_form_subelement';
}

/**
 * Talalati lista letoltes oldalon a karakter kodolas select-et engedelyezi
 */
function enable_encoding() {
    var x=document.getElementById('select_encoding');
    //							if(x.hasAttribute('disabled')) { x.removeAttribute('disabled'); } // IE nem ismeri a hasAttribute()-ot.
    x.removeAttribute('disabled');
    document.getElementById('td_encoding').className='enabled_form_subelement';
    document.getElementById('select_encoding').className='enabled_form_subelement';
}

/**
 * Talalati lista letoltes oldalon a "Bongeszoben jelenjen meg" radio-t tiltja le
 */
function disable_showinbrowser() {
    var showinbrowser_yes = document.getElementById('showinbrowser_yes');

    // Ne a "Bongeszoben jelenjen meg" legyen kijelolve
    if(showinbrowser_yes.checked) {
        var showinbrowser_no = document.getElementById('showinbrowser_no');
        showinbrowser_no.checked = true;
        showinbrowser_yes.checked = false;
    }

    //Checkbox letiltasa    
    showinbrowser_yes.setAttribute('disabled','disabled');
    
    //Checkbox label letiltasa
    document.getElementById('showinbrowser_yes_label').className='disabled_form_subelement';
}

/**
 * Talalati lista letoltes oldalon a "Bongeszoben jelenjen meg" radio-t engedelyezi
 */
function enable_showinbrowser() {
    //Checkbox engedelyezese
    var showinbrowser_yes = document.getElementById('showinbrowser_yes');
    showinbrowser_yes.removeAttribute('disabled');

    //Checkbox label engedelyezese
    document.getElementById('showinbrowser_yes_label').className='enabled_form_subelement';
}
