// Determine Browser Type & Support
var agt = navigator.userAgent.toLowerCase();
var apName = navigator.appName.toLowerCase();
var is_nav4 = ((apName == "netscape") && (parseInt(navigator.appVersion) < 5))? 1:0;
var is_ie4 = ((apName == "msie") && (parseInt(navigator.appVersion) < 5))? 1:0;
var is_dom = document.getElementById? 1:0;
var is_gecko = (agt.indexOf('gecko') != -1)? 1:0;
var is_ie = (agt.indexOf("msie") != -1)? 1:0;
var is_nav = (agt.indexOf('mozilla')!=-1) && (agt.indexOf('opera')==-1)? 1:0;
var is_ie5up = (is_dom && is_ie)? 1:0;
var is_nav6up = (is_dom && (is_gecko || is_nav))? 1:0;
<!-- End Browser Detection Code -->

// whitespace characters
var whitespace = " \t\n\r";

function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

// Returns true if string s is empty or
// whitespace characters only.

function isWhitespace (s) {

   // Is s empty?
    if (isEmpty(s)) return true;

    for (i = 0; i < s.length; i++)     {
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (whitespace.indexOf(c) == -1)
        return false;
    }
    // All characters are whitespace.
    return true;
}

function check (aForm) {
    str = aForm.SearchForOriginal.value

    if (isWhitespace(str)) {
        alert("Empty string isn't allowed here!")
        return false

    }
    if (checkDates(aForm)) {
        alert("Start date is bigger than end date; correct this and proceed with the search")
        return false
    }
    if (isUdbDisabled(aForm)) {
        alert("Please, select the sources to search in")
        return false
    }
        return true
}

function check2 (aForm) {
    str1 = aForm.SearchFor1.value
    str2 = aForm.SearchFor2.value
    str3 = aForm.SearchFor3.value

    if (isWhitespace(str1) && isWhitespace(str2) && isWhitespace(str3)) {
        alert("Empty string isn't allowed here!")
        return false
    }
    if (checkDates(aForm)) {
        alert("Start date is bigger than end date; correct this and proceed with the search")
        return false
    }
    if (isUdbDisabled(aForm)) {
            alert("Please, select the sources to search in")
            return false
    }
        return true
}


    function disableAll(theForm) {
        arr = new Array ("DateRangeType", "Predefined", "FromDay", "FromMonth", "FromYear", "ToDay", "ToMonth", "ToYear", "RangeType", "i1","i2","i3","i4","i5","i6","i7","i8","i9","10","i11");
            for (i=0; i < theForm.length; i++) {
                for ( j=0; j < arr.length; j++) {
                    if ( theForm.SearchInFound.checked == true && theForm.elements[i].name == arr[j] && theForm.elements[i].disabled != true ) {
                        theForm.elements[i].disabled = true
                    }
                    else if (theForm.SearchInFound.checked == false && theForm.elements[i].name == arr[j]) {
                        theForm.elements[i].disabled = false
                    }
                }
            }
        }


function checkDates(aForm) {

        startDay = aForm.FromDay.options[aForm.FromDay.selectedIndex].value
        startMonth = aForm.FromMonth.options[aForm.FromMonth.selectedIndex].value
        startYear = aForm.FromYear.options[aForm.FromYear.selectedIndex].value
        endDay = aForm.ToDay.options[aForm.ToDay.selectedIndex].value
        endMonth = aForm.ToMonth.options[aForm.ToMonth.selectedIndex].value
        endYear = aForm.ToYear.options[aForm.ToYear.selectedIndex].value
        startDate = new Date(startYear, startMonth, startDay);
        endDate = new Date(endYear, endMonth, endDay)

        if (startDate <= endDate) {
            return false
            }
            return true
        }

function isUdbDisabled (aForm) {

    arr = new Array ("i1","i2","i3","i4","i5","i6","i7","i8","i9","i10","i11","i12");
     for (i=0; i < aForm.length; i++) {
        for (j=0; j < arr.length; j++) {
        if (aForm.elements[i].name == arr[j]){
            //alert(aForm.elements[i].name)
            if (aForm.elements[i].checked == true){
            //alert("checked")
            return false
            }

            }
        }
       }
    //alert("unchecked")
    return true
    }


function getRangeId(name,formObj,nameRadio) {
 for (i=0;i<formObj.length; i++) {
    if ((formObj[i].type=='radio')&&(formObj[i].name==nameRadio)&&(formObj[i].value==name))
    return i;
 }
}

function doSelect(formObj) {
if (formObj[getRangeId("all", formObj,"RangeType")].checked == true) {
        for (i=0; i < formObj.length; i++) {
            if (formObj.elements[i].type == "checkbox" && formObj.elements[i].name != "SearchInFound") {
            //  alert( formObj.elements[i].name );
                formObj.elements[i].checked = true;
            }
        }
} else if (formObj[getRangeId("range",formObj,"RangeType")].checked == true) {
        for (i=0; i < formObj.length; i++) {
            if (formObj.elements[i].type == "checkbox"  && formObj.elements[i].name != "SearchInFound") {
                formObj.elements[i].checked = false;
            }
        }
    }
}

/*
function checkRangeType(formObj, checkbox) {
    if (checkbox.checked == false) {
        formObj[getRangeId("range",formObj,"RangeType")].checked = true
    }
}
*/
function rewriteUrl() {
formObj = document.forms[0]
allCheckStatus = "";
    for (i=0; i < formObj.length; i++) {

        if (formObj.elements[i].type == "checkbox"  && formObj.elements[i].name != "SearchInFound") {
            allCheckStatus += formObj.elements[i].name + "=" + formObj.elements[i].checked + "&";
        }


    }

    allCheckStatus += formObj.SearchForOriginal.name + "=" + formObj.SearchForOriginal.value + "&";


    if (formObj.DateRangeType[0].checked) {

    allCheckStatus += "DateRangeType" + "=" + formObj.DateRangeType[0].value + "&";
    allCheckStatus += "Predefined" + "=" + formObj.Predefined.value + "&";

    } else if (formObj.DateRangeType[1].checked) {

        allCheckStatus += "DateRangeType" + "=" + formObj.DateRangeType[1].value + "&";
        allCheckStatus += "FromDay" + "=" + formObj.FromDay.value + "&";
        allCheckStatus += "FromMonth" + "=" + formObj.FromMonth.value + "&";
        allCheckStatus += "FromYear" + "=" + formObj.FromYear.value + "&";

        allCheckStatus += "ToDay" + "=" + formObj.ToDay.value + "&";
        allCheckStatus += "ToMonth" + "=" + formObj.ToMonth.value + "&";
        allCheckStatus += "ToYear" + "=" + formObj.ToYear.value + "&";

    }

    if (formObj.IsTranslite[0].checked) {
        allCheckStatus += "IsTranslite" + "=" + formObj.IsTranslite[0].value + "&";
    } else if (formObj.IsTranslite[1].checked) {
        allCheckStatus += "IsTranslite" + "=" + formObj.IsTranslite[1].value + "&";
    }

    if (formObj.RangeType[0].checked) {
        allCheckStatus += "RangeType" + "=" + formObj.RangeType[0].value + "&";
    }else if (formObj.RangeType[1].checked) {
        allCheckStatus += "RangeType" + "=" + formObj.RangeType[1].value + "&";
    }

    allCheckStatus += "SearchType" + "=" + "Basic" + "&";

    return allCheckStatus.substring(0,allCheckStatus.length - 1);

}

function rewriteUrl2() {
formObj = document.forms[0]
allCheckStatus = "";
    for (i=0; i < formObj.length; i++) {

        if (formObj.elements[i].type == "checkbox"  && formObj.elements[i].name != "SearchInFound") {
            allCheckStatus += formObj.elements[i].name + "=" + formObj.elements[i].checked + "&";
        }


    }

    allCheckStatus += formObj.SearchFor1.name + "=" + formObj.SearchFor1.value + "&";
    allCheckStatus += formObj.SearchFor2.name + "=" + formObj.SearchFor2.value + "&";
    allCheckStatus += formObj.SearchFor3.name + "=" + formObj.SearchFor3.value + "&";


    if (formObj.DateRangeType[0].checked) {

    allCheckStatus += "DateRangeType" + "=" + formObj.DateRangeType[0].value + "&";
    allCheckStatus += "Predefined" + "=" + formObj.Predefined.value + "&";

    } else if (formObj.DateRangeType[1].checked) {

        allCheckStatus += "DateRangeType" + "=" + formObj.DateRangeType[1].value + "&";
        allCheckStatus += "FromDay" + "=" + formObj.FromDay.value + "&";
        allCheckStatus += "FromMonth" + "=" + formObj.FromMonth.value + "&";
        allCheckStatus += "FromYear" + "=" + formObj.FromYear.value + "&";

        allCheckStatus += "ToDay" + "=" + formObj.ToDay.value + "&";
        allCheckStatus += "ToMonth" + "=" + formObj.ToMonth.value + "&";
        allCheckStatus += "ToYear" + "=" + formObj.ToYear.value + "&";

    }

    if (formObj.IsTranslite[0].checked) {
        allCheckStatus += "IsTranslite" + "=" + formObj.IsTranslite[0].value + "&";
    } else if (formObj.IsTranslite[1].checked) {
        allCheckStatus += "IsTranslite" + "=" + formObj.IsTranslite[1].value + "&";
    }

    allCheckStatus += "SearchIn1" + "=" + formObj.SearchIn1.value + "&";
    allCheckStatus += "SearchIn2" + "=" + formObj.SearchIn2.value + "&";
    allCheckStatus += "SearchIn3" + "=" + formObj.SearchIn3.value + "&";

    allCheckStatus += "OP1" + "=" + formObj.OP1.value + "&";
    allCheckStatus += "OP2" + "=" + formObj.OP2.value + "&";

    if (formObj.RangeType[0].checked) {
        allCheckStatus += "RangeType" + "=" + formObj.RangeType[0].value + "&";
    }else if (formObj.RangeType[1].checked) {
        allCheckStatus += "RangeType" + "=" + formObj.RangeType[1].value + "&";
    }


    allCheckStatus += "SearchType" + "=" + "Fields" + "&";

    return allCheckStatus.substring(0,allCheckStatus.length - 1);

}

function doSelect(element, boxName) {
    formObj = element.form;
    rangeName = element.name;
    if (formObj[getRangeId("all", formObj,rangeName)].checked == true) {
        for (i=0; i < formObj.length; i++) {
            if (formObj.elements[i].name == boxName) {
                formObj.elements[i].checked = true;
            }
        }
    } else if (formObj[getRangeId("range",formObj,rangeName)].checked == true) {
        for (i=0; i < formObj.length; i++) {
            if (formObj.elements[i].name == boxName) {
                formObj.elements[i].checked = false;
            }
        }
    }
}

function checkRangeType(checkbox, rangeName) {
    formObj = checkbox.form;
    //alert(formObj.name);
    //rangeName = checkbox.name;
    if (checkbox.checked == false) {
        formObj[getRangeId("range",formObj,rangeName)].checked = true
    }
}

  function popUp(url, w, h) {
    var options = "width=" + w + ",height=" + h + ",";
    options += "resizable=0,scrollbars=0,status=0,";
    options += "menubar=0,toolbar=0,location=0,directories=0";
    var newWin = window.open(url, 'newWin', options);
    newWin.focus();
  }



function addResourceUrl(href) {
    formObj = document.forms[0];
    params = "&checkedResource";
    checkedName = "checkedResource";
    uncheckedName = "uncheckedResource";
    for(i = 0; i < formObj.length; i++) {
        element = formObj.elements[i];
        if (element.type == "checkbox" && element.name == checkedName) {
            if(element.checked) {
                params += "&" + checkedName + "=" + element.value;
            } else {
                params += "&" + uncheckedName + "=" + element.value;
            }
        }
        if (element.name == "subjectRange" && element.checked) {
            params += "&" + element.name + "=" + element.value;
        }
    }
    //alert(params);
    parent.location.href = href + params;
}

function addurl(href) {
    formObj = document.forms[0];
    params = "&checkedSubjects";
    checkedName = "checkedSubjects";
    uncheckedName = "uncheckedSubjects";
    for(i = 0; i < formObj.length; i++) {
        element = formObj.elements[i];
        if (element.type == "checkbox" && element.name == checkedName) {
            if(element.checked) {
                params += "&" + checkedName + "=" + element.value;
            } else {
                params += "&" + uncheckedName + "=" + element.value;
            }
        }
        if (element.name == "sourceRange" && element.checked) {
            params += "&" + element.name + "=" + element.value;
        }
    }
    //alert(params);
    parent.location.href = href + params;
}

function submitUnchecked(formObj) {
        checkedName = "checkedSubjects";
        formObj['submitedUncheckedSubjects'].value = '';
        for(i = 0; i < formObj.length; i++) {
            element = formObj[i];
            if (element.type == "checkbox" && element.name == checkedName) {
                if(!element.checked) {

                  formObj['submitedUncheckedSubjects'].value += element.value + ',';
                }
            }
        }
}

 function doCheckbox(formObj,flag) {
//  if ( formObj.name == "myform") {
   for (i=0; i<formObj.length; i++) {
    if (formObj[i].type=='checkbox') {
      formObj[i].checked = flag
//    }
   }
  }
 }




// Build object model based on browser type
docObj = is_nav4? "document.": is_ie4? "document.all.": is_dom? "document.getElementById('": 0;
styleObj = is_nav4? "": is_ie4? ".style": is_dom? "').style":0;

// Function will generate a popUp for the passed element by changing
// the visibility of the object and positioning it at the x,y axis
// on the screen at where the event occured (cursor position).
function tipPopUp(event,currElem) {

dom = eval(docObj + currElem + styleObj);
state = dom.visibility;

if (state == "visible" || state == "show") {
dom.visibility = is_nav4? "hide": "hidden";
} else {
// IE5+ uses this event model to position content on a page
if (is_dom && window.event) {
leftVal = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
topVal = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
} else
// IE4 uses this event model. IE5 will, but
// we are treating IE5 as dom compliant
if (is_ie4) {
topVal = eval(event.y + 2 + document.body.scrollTop);
leftVal = eval(event.x - 125);
} else
// NS 4.x uses this event model
if (is_nav4) {
topVal = eval(event.pageY + 2);
leftVal = eval(event.pageX);
} else {
// Navigator 6.x uses the dom event model
leftVal = event.clientX + window.scrollX;
topVal = event.clientY + window.scrollY;
}

if (leftVal < 2) { leftVal = 2; }

dom.top = (is_nav4 || is_ie4)? topVal: topVal + 'px';
dom.left = (is_nav4 || is_ie4)? leftVal: leftVal + 'px';
dom.visibility = is_nav4? "show": "visible";
}
}

function tellerror(msg, url, linenumber){
alert('Error message= '+msg+'\nURL= '+url+'\nLine Number= '+linenumber)
return true
}
window.onerror=tellerror


