function isArray(obj) {
    if (obj.constructor.toString().indexOf("Array") == -1) return false; else return true;
}
function chainWindowOnload(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function() {
            oldonload();
            func();
        };
    }
}
function getObj(objId,formId) {
    var id=objId, e=null;
    if(formId!=null&&formId.length>0){
        id=formId+':'+objId;
    }
    if(document.getElementById){
        e=document.getElementById(id);
    }else if(document.all){
        e=document.all[id];
    }else if(document.layers){
        e=document.layers[id];
    }
    return e;
}
function checkBoxArrayHasChecked(arrayId,startOffset){
    var elem=null,i,id;
    if(startOffset==null){
        startOffset=0;
    }
    for(i=startOffset;;i++){
        id=arrayId+'['+i+']';
        elem=getObj(id);
        if(elem==null){
            break;
        }else if(elem.checked){
            return true;
        }
    }
    return false;
}
function checkBoxArrayHasCheckedSingle(arrayId,startOffset){
    var elem=null,i,id;
    var numSel=0;
    if(startOffset==null){
        startOffset=0;
    }
    for(i=startOffset;;i++){
        id=arrayId+'['+i+']';
        elem=getObj(id);
        if(elem==null){
            break;
        }else if(elem.checked){
            numSel++;
        }
    }
    if(numSel==1) return true;
    return false;
}
function hideOrShowObject(objId,state,formId){
    var elem=getObj(objId,formId);
    if(elem!=null){
        if(state){
            elem.style.visibility='visible';
        }else{
            elem.style.visibility='hidden';
        }
    }
}
function hideOrShowObject2(objId,state,formId){
    var elem=getObj(objId,formId);
    if(elem!=null){
        if(state){
            elem.style.display='';
        }else{
            elem.style.display='none';
        }
    }
}
function disableOrEnableObject(objId,state,formId){
    var elem=getObj(objId,formId);
    if(elem!=null){
        if(state){
            elem.disabled='false';
        }else{
            elem.disabled='true';
        }
    }
}
function checkBoxSet(id,state){
    var elem=getObj(id),pstate=false;
    if(elem!=null){
        pstate=elem.checked;
        elem.checked=state;
    }
    return pstate;
}
function checkBoxArraySet(arrayId,state,startOffset){
    var elem=null,i,id;
    if(startOffset==null){
        startOffset=0;
    }
    for(i=startOffset;;i++){
        id=arrayId+'['+i+']';
        elem=getObj(id);
        if(elem==null){
            break;
        }else{
            elem.checked=state;
        }
    }
}
function checkBoxArrayRowSet(arrayId,state,startOffset){
    var elem=null,i,id;
    if(startOffset==null){
        startOffset=0;
    }
    for(i=startOffset;;i++){
        id=arrayId+'['+i+']';
        elem=getObj(id);
        if(elem==null){
            break;
        }else{
            elem.checked=state;
            if(state)addStyleClass(findEnclosingTag(elem,'tr'),'selected'); else removeStyleClass(findEnclosingTag(elem,'tr'),'selected');
        }
    }
}
function findObj(n, d) {
    var p,i,x;
    if(!d) d=document;
    if((p=n.indexOf("?"))>0&&window.parent.frames.length) {
        d=window.parent.frames[n.substring(p+1)].document;
        n=n.substring(0,p);
    }
    if(!(x=d[n])&&d.all) x=d.all[n];
    for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
    if(!x && d.getElementById) x=d.getElementById(n);
    return x;
}
function findEnclosingTag(n,t){
    if(!n||!t)return null;
    for(t=t.toLowerCase(),n=n.parentNode;n&&n.nodeName.toLowerCase()!=t;n=n.parentNode){
    }
    return n;
}
function addOrRemoveStyleClass(n,c,q){
    return q ? addStyleClass(n,c) : removeStyleClass(n,c);
}
function addStyleClass(n,c){
    var v=n.className.split(' ');
    for(var i=0;i<v.length;i++){
        if(v[i]==c)return false;
    }
    n.className=n.className.concat(' '+c);
    return true;
}
function removeStyleClass(n,c){
    var v=n.className.split(' '),nc='';
    for(var i=0;i<v.length;i++){
        if(v[i]!=c)nc=nc.concat(' '+v[i]);
    }
    n.className=nc;
}
function getCookie(name){
    var start=document.cookie.indexOf(name+"="), len=start+name.length+1;
    if((!start)&&(name!=document.cookie.substring(0,name.length))) return null;
    if(start==-1)return null;
    var end=document.cookie.indexOf(";",len);
    if(end==-1)end=document.cookie.length;
    return window.unescape(document.cookie.substring(len,end));
}
function setCookie(name,value,expires,path,domain,secure){
    var today = new Date();
    today.setTime(today.getTime());
    if(expires)expires=expires*86400000;
    //days
    var expires_date=new Date(today.getTime()+(expires));
    document.cookie=name+"="+window.escape(value)+ ((expires)?";expires="+expires_date.toGMTString():"")+ ((path)?";path="+path:"")+ ((domain)?";domain="+domain:"")+ ((secure)?";secure":"");
}
function deleteCookie(name,path,domain){
    if(getCookie(name)) document.cookie=name+"="+ ((path)?";path="+path:"")+((domain)?";domain="+domain:"")+ ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

