function validateItem(form,mode,itemName,itemLabel,funcName)
{
    var objName = "";
    var tmp      = "";
    var itype;
    var oldcbName = "";
    var cbFlag = false;
    var oldradName = "";
    var radFlag    = false;
    var oldactName = "";
    var sel_val  = "";
    var sel_idx  = 0;
    var cnt      = -1;
    var instance = 0;
    var slicedName;
    var dArr = new Array();
    if (mode == "D")
       for(var j = 0; j < form.length; j++)
       {
           itype = form.elements[j].type;
           slicedName = form.elements[j].name.split(".");
           if (!slicedName[2])
               continue;
           if (slicedName[2]=="DETAIL_ACTION")
           {
               if (oldactName != form.elements[j].name){
                   sel_val = "";
                   cnt += 1;
                   oldactName = form.elements[j].name;
                   oldcbName = "";
                   cbFlag = false;
                   oldradName = "";
                   radFlag = false;
               }
               if (itype == "text")
                   sel_val=form.elements[j].value;
               else if (itype == "password")
                   sel_val=form.elements[j].value;
               else if (itype == "textarea")
                   sel_val=form.elements[j].value;
               else if (itype == "hidden")
                   sel_val=form.elements[j].value;
               else if (itype == "button")
                   sel_val=form.elements[j].value;
               else if (itype == "checkbox"){
                   if (form.elements[j].checked){
                       if (!((form.elements[j].name==oldcbName)&&
                             (cbFlag))) {
                           sel_val=form.elements[j].value;
                           oldcbName = form.elements[j].name;
                           cbFlag = true;
                       }
                   };
               }
               else if (itype == "radio"){
                   if (form.elements[j].checked){
                       if (!((form.elements[j].name==oldradName)&&
                             (radFlag))) {
                           sel_val=form.elements[j].value;
                           oldradName = form.elements[j].name;
                           radFlag = true;
                       }
                   };
               }
               else if (itype == "select-one"){
                   sel_idx = form.elements[j].selectedIndex;
                   sel_val = form.elements[j].options[sel_idx].value;
               }
               else if (itype == "file")
                   sel_val=form.elements[j].value;
               else
                   sel_val="NONE";
               if ((sel_val == "") || (sel_val == "NONE")){
                   dArr[cnt] = false;}
               else if (sel_val != "NONE"){
                   dArr[cnt] = true;}
           }
       }
    for(var i = 0; i < form.length; i++)
    {
        slicedName = form.elements[i].name.split(".");
        tmp        = slicedName[2];
        instance   = parseInt(slicedName[3],10);
        if (!tmp)
            continue;
        objName   = tmp;
        if (objName == itemName)
        {
            if ((mode == "D")
               && (!dArr[instance-1]))
                continue;
            if (mode != "D")
                return  eval(funcName + "(" +
                    "form.elements[" + i + "]" +
                    ",\"" + itemLabel + "\")");
            else
                if (! eval(funcName + "(" +
                    "form.elements[" + i + "]" +
                    ",\"" + itemLabel + "\")") )
                    return false;
                else
                    continue;
        }
    }
    return true;
}
