function Validate_connectForm(formObj,ws,wg,wgt,id,dbasesno,newsession,from_acpage)
{
    var num_selected_dbases = 0;
    var e = formObj.elements;
    for (var i=0; i<e.length; i++)
    {
        if (e[i].type =="checkbox")
            if (e[i].checked == true)
                num_selected_dbases = num_selected_dbases + 1;
    }
    if (num_selected_dbases == 0)
    {
        alert("Please, select databases for searching.");
        return false;
    }
    else if (num_selected_dbases > 100)
    {
        alert("The maximum number of selected databases is 100");
        return false;
    }
    var attrset=1;
    if (newsession == 1)
        formObj.action="http://Argo.ekt.gr/Scripts/abekt_zgate.exe/zconnect?ws="+ws+"&wg="+wg+"&wgt="+wgt+"&lang=ENU&attrset="+attrset+"&dbasesno="+dbasesno+"&newsession="+newsession+"&from_acpage="+from_acpage;
    else
        formObj.action="http://Argo.ekt.gr/Scripts/abekt_zgate.exe/zconnect?ws="+ws+"&wg="+wg+"&wgt="+wgt+"&lang=ENU&attrset="+attrset+"&id="+id+"&dbasesno="+dbasesno+"&newsession="+newsession+"&from_acpage="+from_acpage;
    return true;
}
function OpenHelpWin(url,name)
{
    var options = 'width=700,height=550,left=50,top=50,menubar=no,toolbar=no,scrollbars=yes,resizable=yes';
    var HelpWin = window.open(url,name,options);
    HelpWin.focus();
}

function Validate_bib1Row(indexSelect,structureSelect,truncationSelect)
{
    var use_attr = eval(indexSelect.options[indexSelect.selectedIndex].value);
    var structure_attr = eval(structureSelect.options[structureSelect.selectedIndex].value);
    var truncation_attr = eval(truncationSelect.options[truncationSelect.selectedIndex].value);
    switch (use_attr)
    {
        case 62:
        {
            if (structure_attr == 1)
            {
                alert("Search with structure [Phrase] is not implemented yet for index [Abstract].");
                structureSelect.focus();
                return false;
            }
            break;
        }
        case 1016:
        {
            if (structure_attr == 1)
            {
                alert("Search with structure [Phrase] is not implemented yet for index [Any].");
                structureSelect.focus();
                return false;
            }
            break;
        }
        case 6:
        case 21:
        case 1003:
        case 1004:
        case 1005:
        {
            if ((structure_attr == 1) && (truncation_attr == 2))
            {
                alert("When Structure is [phrase], only [right truncation] is implemented.");
                truncationSelect.focus();
                return false;
            }
            break;
        }
        case 7:
        {
            if ((structure_attr == 1) && (truncation_attr == 2))
            {
                alert("When Structure is [phrase], only [right truncation] is implemented.");
                truncationSelect.focus();
                return false;
            }
            if (structure_attr == 6)
            {
                alert("Search with structure [Word list] is not implemented yet for index [ISBN].");
                structureSelect.focus();
                return false;
            }
            break;
        }
        case 8:
        {
            if ((structure_attr == 1) && (truncation_attr == 2))
            {
                alert("When Structure is [phrase], only [right truncation] is implemented.");
                truncationSelect.focus();
                return false;
            }
            if (structure_attr == 6)
            {
                alert("Search with structure [Word list] is not implemented yet for index [ISSN].");
                structureSelect.focus();
                return false;
            }
            break;
        }
        case 13:
        {
            if ((structure_attr == 1) && (truncation_attr == 2))
            {
                alert("When Structure is [phrase], only [right truncation] is implemented.");
                truncationSelect.focus();
                return false;
            }
            if (structure_attr == 6)
            {
                alert("Search with structure [Word list] is not implemented yet for index [DDC Classification].");
                structureSelect.focus();
                return false;
            }
            break;
        }
        case 14:
        {
            if ((structure_attr == 1) && (truncation_attr == 2))
            {
                alert("When Structure is [phrase], only [right truncation] is implemented.");
                truncationSelect.focus();
                return false;
            }
            if (structure_attr == 6)
            {
                alert("Search with structure [Word list] is not implemented yet for index [UDC Classification].");
                structureSelect.focus();
                return false;
            }
            break;
        }
        case 16:
        {
            if ((structure_attr == 1) && (truncation_attr == 2))
            {
                alert("When Structure is [phrase], only [right truncation] is implemented.");
                truncationSelect.focus();
                return false;
            }
            if (structure_attr == 6)
            {
                alert("Search with structure [Word list] is not implemented yet for index [LCC Classification].");
                structureSelect.focus();
                return false;
            }
            break;
        }
        case 20:
        {
            if ((structure_attr == 1) && (truncation_attr == 2))
            {
                alert("When Structure is [phrase], only [right truncation] is implemented.");
                truncationSelect.focus();
                return false;
            }
            if (structure_attr == 6)
            {
                alert("Search with structure [Word list] is not implemented yet for index [Local Classification].");
                structureSelect.focus();
                return false;
            }
            break;
        }
    }
    return true;
}

function Validate_auRow(indexSelect,structureSelect,truncationSelect)
{
    var use_attr = eval(indexSelect.options[indexSelect.selectedIndex].value);
    var structure_attr = eval(structureSelect.options[structureSelect.selectedIndex].value);
    var truncation_attr = eval(truncationSelect.options[truncationSelect.selectedIndex].value);
    return true;
}
function HasOnlySpaces(searchTerm)
{
    for (var i=0; i<searchTerm.length; i++)
    {
        var ch = searchTerm.charAt(i);
        if ((ch != ' ') && (ch != '\t') && (ch != '\n'))
            return false;
    }
    return true;
}

function Validate_bib1SimpleForm(formObj)
{
    var searchTerm=formObj.term_value1;
    if ((searchTerm.value.length==0) || (HasOnlySpaces(searchTerm.value)))
    {
        alert("Please, enter the search term!");
        formObj.term_value1.focus();
        return false;
    }
    if (!validText(searchTerm.value))
    {
        formObj.term_value1.focus();
        return false;
    }
    return true;
}

function Validate_bib1MediumForm(formObj,bib1_numRows)
{
    var searchTerm;
    var empty_terms=0;

    for (var i=1; i<=bib1_numRows; i++)
    {
        if (i==1)
        {
            searchTerm=formObj.term_value1;
        }
        if (i==2)
        {
            searchTerm=formObj.term_value2;
        }
        if (i==3)
        {
            searchTerm=formObj.term_value3;
        }
        if (i==4)
        {
            searchTerm=formObj.term_value4;
        }
        if (searchTerm.value.length==0)
            empty_terms++;
        else if (HasOnlySpaces(searchTerm.value))
        {
            empty_terms++;
            searchTerm.value = "";
        }
        if (!validText(searchTerm.value))
        {
            searchTerm.focus();
            return false;
        }
    }
    if (empty_terms==bib1_numRows)
    {
        alert("Please, enter the search term!");
        formObj.term_value1.focus();
        return false;
    }
    return true;
}

function Validate_AUMediumForm(formObj,au_numRows)
{
    var searchTerm;
    var empty_terms=0;

    for (var i=1; i<=au_numRows; i++)
    {
        if (searchTerm.value.length==0)
            empty_terms++;
        else if (HasOnlySpaces(searchTerm.value))
        {
            empty_terms++;
            searchTerm.value = "";
        }
        if (!validText(searchTerm.value))
        {
            searchTerm.focus();
            return false;
        }
    }
    if (empty_terms==au_numRows)
    {
        alert("Please, enter the search term!");
        formObj.term_value1.focus();
        return false;
    }
    return true;
}

function Validate_bib1AdvancedForm(formObj,bib1_numRows)
{
    var searchTerm;
    var indexSelect;
    var structureSelect;
    var truncationSelect;
    var empty_terms=0;

    for (var i=1; i<=bib1_numRows; i++)
    {
        if (i==1)
        {
            searchTerm=formObj.term_value1;
            indexSelect=formObj.term_use1;
            structureSelect=formObj.term_structure1;
            truncationSelect=formObj.term_truncation1;
        }
        if (i==2)
        {
            searchTerm=formObj.term_value2;
            indexSelect=formObj.term_use2;
            structureSelect=formObj.term_structure2;
            truncationSelect=formObj.term_truncation2;
        }
        if (i==3)
        {
            searchTerm=formObj.term_value3;
            indexSelect=formObj.term_use3;
            structureSelect=formObj.term_structure3;
            truncationSelect=formObj.term_truncation3;
        }
        if (i==4)
        {
            searchTerm=formObj.term_value4;
            indexSelect=formObj.term_use4;
            structureSelect=formObj.term_structure4;
            truncationSelect=formObj.term_truncation4;
        }
        if (searchTerm.value.length==0)
            empty_terms++;
        else if (HasOnlySpaces(searchTerm.value))
        {
            empty_terms++;
            searchTerm.value = "";
        }
        else if (!validText(searchTerm.value))
        {
            searchTerm.focus();
            return false;
        }
        else
        {
            var ret_val = Validate_bib1Row(indexSelect,structureSelect,truncationSelect);
            if (!ret_val)
                return ret_val;
        }
    }
    if (empty_terms==bib1_numRows)
    {
        alert("Please, enter the search term!");
        formObj.term_value1.focus();
        return false;
    }
    return true;
}

function Validate_AUAdvancedForm(formObj,au_numRows)
{
    var searchTerm;
    var indexSelect;
    var structureSelect;
    var truncationSelect;
    var empty_terms=0;

    for (var i=1; i<=au_numRows; i++)
    {
        if (searchTerm.value.length==0)
            empty_terms++;
        else if (HasOnlySpaces(searchTerm.value))
        {
            empty_terms++;
            searchTerm.value = "";
        }
        else if (!validText(searchTerm.value))
        {
            searchTerm.focus();
            return false;
        }
        else
        {
            var ret_val = Validate_auRow(indexSelect,structureSelect,truncationSelect);
            if (!ret_val)
                return ret_val;
        }
    }
    if (empty_terms==au_numRows)
    {
        alert("Please, enter the search term!");
        formObj.term_value1.focus();
        return false;
    }
    return true;
}
function OnChange_bib1IndexValue(indexSelect,structureSelect,truncationSelect)
{
    if ((indexSelect.options[indexSelect.selectedIndex].value==4)||
        (indexSelect.options[indexSelect.selectedIndex].value==5)||
        (indexSelect.options[indexSelect.selectedIndex].value==35)||
        (indexSelect.options[indexSelect.selectedIndex].value==62)||
        (indexSelect.options[indexSelect.selectedIndex].value==1016)||
        (indexSelect.options[indexSelect.selectedIndex].value==1033))
    {
        structureSelect.selectedIndex=2;
        truncationSelect.selectedIndex=1;
    }
    else if ((indexSelect.options[indexSelect.selectedIndex].value==6)||
             (indexSelect.options[indexSelect.selectedIndex].value==13)||
             (indexSelect.options[indexSelect.selectedIndex].value==14)||
             (indexSelect.options[indexSelect.selectedIndex].value==16)||
             (indexSelect.options[indexSelect.selectedIndex].value==20)||
             (indexSelect.options[indexSelect.selectedIndex].value==21)||
             (indexSelect.options[indexSelect.selectedIndex].value==1003)||
             (indexSelect.options[indexSelect.selectedIndex].value==1004)||
             (indexSelect.options[indexSelect.selectedIndex].value==1005))
    {
        structureSelect.selectedIndex=3;
        truncationSelect.selectedIndex=1;
    }
    else if ((indexSelect.options[indexSelect.selectedIndex].value==7)||
             (indexSelect.options[indexSelect.selectedIndex].value==8))
    {
        structureSelect.selectedIndex=3;
        truncationSelect.selectedIndex=3;
    }
}
function OnChange_auIndexValue(indexSelect,structureSelect,truncationSelect)
{
    if (indexSelect.options[indexSelect.selectedIndex].value==1016)
    {
        structureSelect.selectedIndex=0;
        truncationSelect.selectedIndex=0;
    }
    else if ((indexSelect.options[indexSelect.selectedIndex].value==1)||
             (indexSelect.options[indexSelect.selectedIndex].value==2)||
             (indexSelect.options[indexSelect.selectedIndex].value==4)||
             (indexSelect.options[indexSelect.selectedIndex].value==21)||
             (indexSelect.options[indexSelect.selectedIndex].value==58)||
             (indexSelect.options[indexSelect.selectedIndex].value==1002))
    {
        structureSelect.selectedIndex=2;
        truncationSelect.selectedIndex=1;
    }
}
function OnChange_BibLevel(biblevelSelect,anyindex)
{
    if (biblevelSelect.options[anyindex].selected)
    {
        for (var i=0; i<5; i++)
        {
            if (i != anyindex)
                biblevelSelect.options[i].selected = false;
        }
    }
}
function OnChange_RecType(rectypeSelect,anyindex)
{
    if (rectypeSelect.options[anyindex].selected)
    {
        for (var i=0; i<14; i++)
        {
            if (i != anyindex)
                rectypeSelect.options[i].selected = false;
        }
    }
}
function Validate_searchFormDate(yearInput,monthInput,dayInput)
{
    var iyear,imonth,iday;
    var y,m,d;

    y=0;
    m=0;
    d=0;
    //Year
    if (yearInput.value.length)
    {
        y=1;
        if (isNaN(yearInput.value))
        {
            alert("Wrong value for Year!");
            yearInput.focus();
            return false;
        }
        else
        {
            iyear=eval(yearInput.value);
            if ((iyear < 0) || (iyear > 9999))
            {
                alert("Wrong value for Year!");
                yearInput.focus();
                return false;
            }
        }
    }
    //Month
    if (monthInput.value.length)
    {
        if (!y)
        {
            alert("The Field [Year] is empty!");
            yearInput.focus();
            return false;
        }
        m=1;
        if (isNaN(monthInput.value))
        {
            alert("Wrong value for Month!");
            monthInput.focus();
            return false;
        }
        else
        {
            imonth=eval(monthInput.value);
            if ((imonth < 1) || (imonth>12))
            {
                alert("Wrong value for Month!");
                monthInput.focus();
                return false;
            }
        }
    }
    //Day
    if (dayInput.value.length)
    {
        if (!y)
        {
            alert("The Field [Year] is empty!");
            yearInput.focus();
            return false;
        }
        if (!m)
        {
            alert("The Field [Month] is empty!");
            monthInput.focus();
            return false;
        }
        d=1;
        if (isNaN(dayInput.value))
        {
            alert("Wrong value for Day!");
            dayInput.focus();
            return false;
        }
        else
        {
            iday=eval(dayInput.value);
            if ((imonth==1)||(imonth==3)||(imonth==5)||(imonth==7)||
                (imonth==8)||(imonth==10)||(imonth==12))
            {
                if ((iday <1) || (iday >31))
                {
                    alert("Wrong value for Day!");
                    dayInput.focus();
                    return false;
                }
            }
            else if ((imonth==4)||(imonth==6)||(imonth==9)||(imonth==11))
            {
                if ((iday <1) || (iday >30))
                {
                    alert("Wrong value for Day!");
                    dayInput.focus();
                    return false;
                }
            }
            else if (imonth==2)
            {
                var disekto=iyear%4;
                if (disekto==0)
                {
                    if ((iday <1) || (iday >29))
                    {
                        alert("Wrong value for Day!");
                        dayInput.focus();
                        return false;
                    }
                }
                else
                {
                    if ((iday <1) || (iday >28))
                    {
                        alert("Wrong value for Day!");
                        dayInput.focus();
                        return false;
                    }
                }
            }
        }
    }
    return true;
}

function setCookie(cookieName, value, expires, path, domain, secure)
{
    var curCookie = cookieName + "=" + escape(value) +
                    ((expires) ? "; expires=" + expires.toGMTString() : "") +
                    ((path) ? "; path=" + path : "") +
                    ((domain) ? "; domain=" + domain : "") +
                    ((secure) ? "; secure" : "");
    document.cookie = curCookie;
}

function getCookieValue(cookieName)
{
    var dc = document.cookie;
    var prefix = cookieName + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1)
    {
        begin = dc.indexOf(prefix);
        if (begin != 0)
            return null;
    }
    else
        begin += 2;
    var end = document.cookie.indexOf(";", begin);
    if (end == -1)
        end = dc.length;
    return unescape(dc.substring(begin + prefix.length, end));
}

function deleteCookie(cookieName, path, domain)
{
    if (getCookieValue(cookieName))
    {
        document.cookie = cookieName + "=" +
                        ((path) ? "; path=" + path : "") +
                        ((domain) ? "; domain=" + domain : "") +
                        "; expires=Thu, 01-Jan-1970 00:00:01 GMT";
    }
}

function CheckMarked(cookieName,checkbox)
{
	if (checkbox.checked)
		deleteCookieValue(cookieName,"d_"+checkbox.value);
	else
		deleteCookieValue(cookieName,"a_"+checkbox.value);
	if (checkbox.checked)
        return setCookieValue(cookieName,"a_"+checkbox.value);
    else
    	return setCookieValue(cookieName,"d_"+checkbox.value);
}

function setCookieValue(cookieName, value)
{
    if (document.cookie.length == 0)
        setCookie(cookieName,"");
    var CookieValue = getCookieValue(cookieName);
    if (CookieValue == null)
        setCookie(cookieName,value+"_");
    else
    {
        if (document.cookie.length + value.length > 4096)
        {
            alert("You have reached the maximum allowed number of marked records! Please, save, print or e-mail your marked records and then unmark them to keep selecting records.");
            return false;
        }
        setCookie(cookieName,CookieValue+value+"_");
    }
    return true;
}

function deleteCookieValue(cookieName,value)
{
    var S = getCookieValue(cookieName);
	if (S != null)
	{
		var CookieValue = new String(S);
    	if (CookieValue != null)
    	{
        	re = new RegExp(value+"_");
        	CookieValue=CookieValue.replace(re, "");
    	}
    	else
        	CookieValue="";
    	if (CookieValue != "")
        	setCookie(cookieName, CookieValue);
    	else
        	deleteCookie(cookieName);
    }
}

function Mark_All_Records(formObj,cookieName)
{
    var e = formObj.elements;
    var setcookieOK=true;
    for (var i=0; (i<e.length) && setcookieOK; i++)
    {
        if ((e[i].type == "checkbox") && (e[i].checked == false))
        {
        	e[i].checked = true;
        	if (!CheckMarked(cookieName,e[i]))
        	{
            	e[i].checked = false;
            	setcookieOK=false;
            }
        }
    }
}

function Clear_All_Marks(formObj,cookieName)
{
    var e = formObj.elements;
    for (var i=0; i<e.length; i++)
    {
        if ((e[i].type == "checkbox") && (e[i].checked == true))
        {
        	e[i].checked = false;
        	if (!CheckMarked(cookieName,e[i]))
        	   	e[i].checked = true;
        }
    }
}

function Validate_mailForm(formObj)
{
    if (formObj.receiver_email.value.length == 0)
    {
        alert("Please, type the e-mail address.");
        formObj.receiver_email.focus();
        return false;
    }
    else
    {
        formObj.submit();
        return true;
    }
}

function submitForm_byLink(formObj,formAction)
{
    formObj.method="post";
    formObj.action=formAction;
    formObj.target="_self";
    formObj.submit();
}

function submitForm_byLink_newWin(formObj,formAction,targetWinName)
{
    formObj.method="post";
    formObj.action=formAction;
    if (targetWinName.length==0)
        formObj.target="_self";
    else
    {
        formObj.target=targetWinName;
        var options = 'width=700,height=550,left=50,top=50,menubar=no,toolbar=no,scrollbars=yes,resizable=yes';
        var newWinObj = window.open("",formObj.target,options);
    }
    formObj.submit();
}

function submitForm_byLink_WithCookies(formObj,formAction,cookieName)
{
    storeMRecords(formObj,cookieName);
    formObj.method="post";
    formObj.action=formAction;
    formObj.target="_self";
    formObj.submit();
}

function submitForm_byLink_WithCookies_newWin(formObj,formAction,cookieName,targetWinName)
{
    storeMRecords(formObj,cookieName);
    formObj.method="post";
    formObj.action=formAction;
    if (targetWinName.length==0)
        formObj.target="_self";
    else
    {
        formObj.target=targetWinName;
        var options = 'width=700,height=550,left=50,top=50,menubar=no,toolbar=no,scrollbars=yes,resizable=yes';
        var newWinObj = window.open("",formObj.target,options);
    }
    formObj.submit();
}

function submitSaveForm(formObj,formAction_part1,formAction_part2)
{
    var e = formObj.elements;
    var sformat = 3;
    for (var i=0; i<e.length; i++)
    {
		if ((e[i].type =="radio") && (e[i].name=="save_format") && (e[i].checked))
            sformat = e[i].value;
    }
    formObj.method = "post";
    if (sformat == 3)
        formObj.action=formAction_part1+"/Export.dat?"+formAction_part2;
    else if (sformat == 4)
        formObj.action=formAction_part1+"/Export.xml?"+formAction_part2;
    formObj.submit();
	return true;
}

function storeMRecords(formObj,cookieName)
{
    var CookieValue_new = getCookieValue(cookieName);
    if (CookieValue_new != null)
        formObj.mrInput.value = CookieValue_new;
    else
        formObj.mrInput.value = "";
    deleteCookie(cookieName);
}

function Validate_scanForm(formObj)
{
    if (formObj.scan_term_value.value.length==0)
    {
        alert("Please, type a Scan Term");
        return false;
    }
    return true;
}

function my_printDoc(text)
{
    text = document;
    print(text);
    return true;
}

function validText(theText)
{
    if (theText.length == 0)
        return true;
    if (theText.indexOf("&") != -1)
    {
        s = "Illegal character." + " <&>";
        alert(s);
        return false;
    }
    if (theText.indexOf("\"") != -1)
    {
        s = "Illegal character." + " <\">";
        alert(s);
        return false;
    }
    if (theText.indexOf("?") != -1)
    {
        s = "Illegal character." + " <?>";
        alert(s);
        return false;
    }
    if (theText.indexOf("#") != -1)
    {
        s = "Illegal character." + " <#>";
        alert(s);
        return false;
    }
    if (theText.indexOf("%") != -1)
    {
        s = "Illegal character." + " <%>";
        alert(s);
        return false;
    }
    return true;
}

function IsPositiveNumber(theValue)
{
    if (theValue.length > 0)
    {
        if (isNaN(theValue))
        {
            alert("You must type a positive integer number.");
            return false;
        }
        if (theValue <= 0)
        {
            alert("You must type a positive integer number.");
            return false;
        }
    }
    return true;
}
