var QU=String.fromCharCode(34);
var CR=String.fromCharCode(13)+String.fromCharCode(10);
var SPC=String.fromCharCode(32);
var MIN_USERNM_LENGTH=6;
var MIN_PASSW_LENGTH=6;
var PIWeb="PIWeb";
var MAXFID=12;
var DEBUG=0;


///////////////////////////////////  Window functions ////////////////////////////////////////

function topWindow(w){
  if(w==null)w=window;
  while(w.parent!=w)w=w.parent;
  return w;
}

function docLoc(){
  var loc=document.location.toString();
  var qu=loc.indexOf("?");
  if(qu>0)loc=loc.substring(0,qu);
  return loc;
}

function initWin(win){
  if(win==null)win=window;
  var ok=true;
  var winname="";
  var topwindow=topWindow();
  if(win==topwindow){
    if(location.toString().length>baseurl.length){
      if(DEBUG>0)window.alert("Top! "+win.name+" "+win.document.location.toString());
      else topwindow.location.href=baseurl;
    }
  }
  else{
    var wn=new String(win.name);
    if(wn=="undefined")ok=false;
    if(ok){
      winname=wn;
      var tmpw=win;
      var count=true;
      var level=0;
      while(tmpw.parent!=tmpw){
        tmpw=tmpw.parent;
        level++;
      }
      if(winname=="mmenu"){
        count=(level==1);
      }
      else if(winname=="top"){
        //time();
        count=(level==1);
      }
      else if(winname=="smenu"){
        if(vis==null)vis=getVis();
        count=(level==2);
      }
      else if(winname=="main"){
        childwin=null;
        if(document.forms.length>0)initForm();
        count=(level==2);
      }
      else if(winname=="cv"){
        childwin=null;
        var pcw=window.parent.childwin;
        if(pcw!=null){
          if(pcw.stayopen!=true){
          //if(!window.refreshing){
          //if(pcw.stayopen)childwin=pcw;
          //else{
            pcw.close();
            window.parent.childwin=null;
          }
        }
        window.refreshing=false;
        count=(level==3);
        if(window.parent.imgar==null)window.parent.cvOnLoad();
      }
      else if(winname=="editprof"){
        //initForm();
        count=(level==1);
      }
      else if(winname=="editdetail"){
        window.saving=false;
        window.deleting=false;
        initForm();
      }
      ok=count;
    }
  }
  if(!ok){
    if(DEBUG>0)window.alert("!ok! "+winname);
    else topwindow.location.href=baseurl;
  }
}

function getHelp(s){
  var w=topWindow();
  var l=null;
  if(w.parentwin)w=topWindow(w.parentwin);
  l=w.location.toString();
  var p=l.lastIndexOf("/");
  if(p<7)l+="/";
  else l=l.substring(0,p+1);
  openChildWin(l+"help.asp?help="+s,"helpwin",null,"height=400,width=400,menubar=no,scrollbars=yes,resizable=yes",w);
}

function openChildWin(url,wnm,params,wattr,pw){
  if(pw==null)pw=window;
  if((params!=null)&&(params instanceof Array))url+=buildQueryString(params);
  var cw=pw.open(url,wnm,wattr);
  pw.childwin=cw;
  cw.parentwin=pw;
  cw.caller=window.name;
//window.alert("openChildWin("+url+","+(params!=null)+","+wattr+","+pw.name+"): "+cw+": "+cw.name)
  cw.stayopen=false;
  return cw;
}

///////////////////////////////////  Form functions ////////////////////////////////////////

function initForm(fid){
  var f=document.forms[0];
  if(fid==null)fid=f.elements['formid'].value;
  fid=parseInt(fid);
  var dispstr="initForm("+fid+")"+CR;
  var validfid=true;
  f.dirty=false;
  switch(fid){
    case 0:{  //  newpr
      if(vis==null)vis=getVis();
      f.elements["LINK_OLD_PROFILE"].value=false;
      f.elements["cookie"].value=vis.browser.cookies;
      if(vis.browser.cookies==0)window.alert(MSG_COOKIE_REQUIRED);
      break;
    }
    case 1:{  //  oldpr
      if(vis==null)vis=getVis();
      f.elements["LINK_NEW_PROFILE"].value=false;
      f.elements["LINK_SECRET"].value=false;
      f.elements["cookie"].value=vis.browser.cookies;
      if(vis.browser.cookies==0)window.alert(MSG_COOKIE_REQUIRED);
      break;
    }
    case 2:{  //  secret
      if(vis==null)vis=getVis();
      f.elements["LINK_NEW_PROFILE"].value=false;
      f.elements["cookie"].value=vis.browser.cookies;
      break;
    }
    case 3:{  //  settings
      break;
    }
    case 4:{  //  editprof
      break;
    }
    case 5:{  //  cv0
      break;
    }
    case 6:{  //  cv1
      break;
    }
    case 7:{  //  cv2
      break;
    }
    case 8:{  //  cv3
      break;
    }
    case 9:{  //  pos
      break;
    }
    case 10:{ //  edu
      break;
    }
    case 11:{ //  cer
      break;
    }
    case 12:{ //  req
     // window.alert("request");
//init();
      break;
    }
    default:{
      if((fid>MAXFID)||(fid<0)){
        validfid=false;
        if(DEBUG>0)window.alert(dispstr+" invalid formid "+fid);
      }
      break;
    }
  }
  if((DEBUG>1)&&(validfid))window.alert(dispstr);
}

function validForm(fid){
  fid=parseInt(fid);
  f=document.forms[0];
  var err=null;
  switch(fid){
    case 0:{
      if(f.elements['LINK_OLD_PROFILE'].value!="true"){
        if(f.elements['usernm'].value=="")err=MSG_NAME_REQUIRED;
        else if(f.elements['usernm'].value.length<MIN_USERNM_LENGTH)err=MSG_NAME_TOO_SHORT;
        else if(f.elements['passw'].value.length<MIN_PASSW_LENGTH)err=MSG_PASSW_TOO_SHORT;
        else if(f.elements['passw'].value!=f.elements['repassw'].value)err=MSG_PASSW_DONT_MATCH;
        else if(new String(f.elements['usernm'].value).indexOf("@")<0){
          if(!window.confirm(MSG_EMAIL_ADDR_PREFERRED))return false;
        }
      }
      break;
    }
    case 1:{
      if(f.elements['LINK_NEW_PROFILE'].value!="true"){
        if(f.elements['usernm'].value=="")err=MSG_NAME_REQUIRED;
        else if(f.elements['usernm'].value.length<MIN_USERNM_LENGTH)err=MSG_NAME_TOO_SHORT;
        else if(f.elements['LINK_SECRET'].value!="true"){
          if(f.elements['passw'].value.length<MIN_PASSW_LENGTH)err=MSG_PASSW_TOO_SHORT;
        }
      }
      if(err!=null){
        f.elements['LINK_NEW_PROFILE'].value=false;
        f.elements['LINK_SECRET'].value=false;
      }
      break;
    }
    case 2:{
      if(f.elements['LINK_NEW_PROFILE'].value!="true"){
        if(f.elements['usernm'].value=="")err=MSG_NAME_REQUIRED;
        else if(f.elements['usernm'].value.length<MIN_USERNM_LENGTH)err=MSG_NAME_TOO_SHORT;
      }
      break;
    }
    case 4:{
      if(f.elements['usernm'].value=="")err=MSG_NAME_REQUIRED;
      else if(f.elements['usernm'].value.length<MIN_USERNM_LENGTH)err=MSG_NAME_TOO_SHORT;
      else if(f.elements['newpassw'].value!=f.elements['repassw'].value)err=MSG_PASSW_DONT_MATCH;
      else if(f.elements['newpassw'].value.length<MIN_PASSW_LENGTH||f.elements['repassw'].value.length<MIN_PASSW_LENGTH)err=MSG_PASSW_TOO_SHORT;
      else if(new String(f.elements['usernm'].value).indexOf("@")<0){
        if(!window.confirm(MSG_EMAIL_ADDR_PREFERRED))return false;
      }
      break;
    }
    case 9:{
      if(f.elements['posnm'].value=="")err=MSG_POSNAME_REQUIRED;
      else if(f.elements['employernm'].value=="")err=MSG_EMPLOYER_REQUIRED;
      else if((f.elements['styr'].value=="")||((f.elements['endyr'].value=="")&&(!f.elements['pres'].checked)))err=MSG_DATES_REQUIRED;
      break;
    }
    case 10:{
      if(f.elements['instnm'].value=="")err=MSG_EDUNAME_REQUIRED;
      else if(f.elements['fag'].value=="")err=MSG_COURSE_REQUIRED;
      else if((f.elements['styr'].value=="")||(f.elements['endyr'].value==""))err=MSG_DATES_REQUIRED;
      break;
    }
    case 11:{
      if(f.elements['cernm'].value=="")err=MSG_CERTTYPE_REQUIRED;
      else if(f.elements['issuer'].value=="")err=MSG_CERTISSUER_REQUIRED;
      else if(f.elements['styr'].value=="")err=MSG_VTDATE_REQUIRED;
      break;
    }
    case 12:{
      var cerr=false;
      var add=parseInt(f.elements['add'].value);
      var pc=parseInt(f.elements['poscount'].value);
      var posreq=((pc<2)||(add==0));
      var pnum=parseInt(f.elements['posno'].value);
/*      if(add>0){
        var cc=(!(f.elements['comcont'].value==""));
        var tc=(!(f.elements['teccont'].value==""));
        var cp=(!(f.elements['comph'].value==""));
        var tp=(!(f.elements['tecph'].value==""));
        var fa=(!(f.elements['fax'].value==""));
        var em=(!(f.elements['email'].value==""));
        var rt=(!(f.elements['reqtitle'].value==""));
        if(f.elements['organ'].value=="")err=MSG_CLINAME_REQUIRED;
        else if(!(cc||tc))err=MSG_CONTACT_REQUIRED;
        else if((!(fa||em))&&(!((cc&&cp)||(tc&&tp))))err=MSG_CONTACT_INFO_REQUIRED;
        if(err)cerr=true;
      }
      if(f.elements['posnm'].value=="")err=MSG_POSNAME_REQUIRED;
      else if((f.elements['rate'].value=="")&&(!(f.elements['offer'].checked)))err=MSG_RATESTRUCT_REQUIRED;
      if(err==null){
        if(f.elements['curr'].value=="")f.elements['curr'].value=="NOK";
        if(isNaN(pnum)||(pnum==0))f.elements['posno'].value=1;
      }
      if(err&&(!cerr)&&(!posreq)){
        if(window.confirm(PROMPT_POSITION_NOT_READY))err=null;
      }*/
      if(add>0){
        var cc=(!(f.elements['comcont'].value==""));
        var tc=(!(f.elements['teccont'].value==""));
        var cp=(!(f.elements['comph'].value==""));
        var tp=(!(f.elements['tecph'].value==""));
        if(!((cc&cp)|(tc&tp)))err=MSG_CONTACT_INFO_REQUIRED;
      }
      else{
        if(f.elements['posnm'].value=="")err=MSG_POSNAME_REQUIRED;
      }
      break;
    }
    default:{
      break;
    }
  }
  if(err==null)return true;
  else{
    window.alert(err);
    return false;
  }
}

///////////////////////////////// CVForm functions //////////////////////////////////////////


function selectCV(val){
  var f=document.forms[0];
  f.elements['cv'].value=val;
  f.elements['next'].value=f.elements['formid'].value;
  f.elements['dirty'].value=1;
  f.submit();
}

function openItem(fn,si){
  var dt=new Date();
  var p=window.parent;
//window.alert(p.name+" "+p.childwin);
  var cw=p.childwin;
  if(cw!=null)cw.frames['editdetail'].cwOpenItem(fn,si);
  else{
    var par=getCwSize(parseInt(fn));
    var ws="width="+par[0]+",height="+par[1];
    var ploc="childwin.asp?pa=det&det="+fn;
    if(si!=null)ploc+="&si="+si;
    cw=openChildWin(ploc,"childwin",null,ws,p)
//window.alert(cw.name);
    cw.resizeTo(par[0],par[1]);
  }
}

function getCwSize(i){
  switch(i){
    case 9:{
      return new Array(450,350);
      break;
    }
    case 10:{
      return new Array(450,290);
      break;
    }
    case 11:{
      return new Array(400,230);
      break;
    }
  }
}

function catchCV(){
  var f=document.forms[0];
  var cw=window.parent.childwin;
  if((cw!=null)&&(!window.refreshing))cw.close();
  if((parseInt(f.elements['dirty'].value)>0)&&(isNaN(parseInt(f.elements['next'].value)))){
    var fid=f.elements['formid'].value;
    var pif=new PIForm();
    topWindow().SaveWindow(pif);
  }
}


///////////////////////////////////  Visitor functions ////////////////////////////////////////

function createVis(){
  var fr=topWindow().frames['mmenu'];
  var f=fr.document.forms[0];
  var vis=new Object();
  vis.ip=f.elements['visip'].value;
  vis.id=f.elements['visid'].value;
  vis.language=f.elements['vislang'].value;
  vis.area=f.elements['visarea'].value;
  vis.page=f.elements['vispage'].value;
  vis.browser=new Browser();
  return vis;
}

function getVis(){
  var w=topWindow();
  if(w.vis==null)w.vis=createVis();
  return w.vis;
}


///////////////////////////////////  String functions ////////////////////////////////////////

function isBlank(s){
  var spcar=new Array(9,10,13,32);
  var b=true;
  var i=0;
  while(b&&(i<s.length)){
    var ci=false;
    for(var j=0;j<spcar.length;j++)if(s.charCodeAt(i)==spcar[j])ci=true;
    b=ci;
    i++;
  }
  return b;
}

function buildQueryString(args){
  if((args==null)||(!(args instanceof Array))||((args instanceof Array)&&(args.length==0)))return "";
  var qs="";
  var n="",v="";
  var l=args.length;
  for(var i=0;i<l;i++){
    n=args[i][0];
    v=args[i][1];
    if((n!=null)&&(v!=null)){
      if(qs=="")qs+="?"+n+"="+v;
      else qs+="&"+n+"="+v;
    }
  }
  return qs;
}

function getQueryString(s){
  var params=null;
  if((s==null)||(s==""))s=window.location.toString();
  var qi=s.indexOf("?");
  if(qi>=0){
    s=s.substring(qi+1,s.length);
    params=new Array();
    var pos1=-1,pos2=0,ls=null;
    while((pos1=s.indexOf("&",pos2))>0){
      params=params.concat(s.substring(pos2,pos1));
      pos2=pos1+1;
    }
    if(pos2<s.length){
      params=params.concat(s.substring(pos2));
    }
    for(var i=0;i<params.length;i++){
      ls=params[i];
      pos1=ls.indexOf("=");
      params[i]=new Array(ls.substring(0,pos1),ls.substring(pos1+1));
    }
  }
  return params;
}


///////////////////////////////////  Browser functions ////////////////////////////////////////

function Browser(uastr){
  if(uastr==null)uastr=navigator.userAgent;
  if(!(uastr instanceof String))uastr=new String(uastr);
  var useragent,version,os,cookies=0;
  var moz=false,ie=false,nn=false,op=false,mozver=0;
  var pos1,pos2;
  pos1=uastr.indexOf("Mozilla");
  if(pos1>=0)moz=true;
  pos1=uastr.indexOf("Opera");
  if(pos1>=0)op=true;
  pos1=uastr.indexOf("MSIE");
  if(pos1>0)ie=true;
  if(moz){
    var mozpos=uastr.indexOf("/",uastr.indexOf("Mozilla"))+1;
    mozver=parseFloat(uastr.substring(mozpos,mozpos+5));
    if(uastr.indexOf("compatible")>=0){
      if(ie){
        if(op){
          useragent="Opera (MSIE)";
          pos1=uastr.indexOf("Opera")+5;
          var spos=uastr.indexOf("/",pos1);
          if((spos>=pos1)&&(spos-2<=pos1))pos1=spos+1;
          vstr=uastr.substring(pos1,((uastr.length>pos1+5)?pos1+5:uastr.length));
          version=parseFloat(vstr);
        }
        else{
          useragent="MSIE";
          pos2=uastr.indexOf(";",pos1+4);
          if(pos2<0)pos2=((uastr.length>pos1+9)?pos1+9:uastr.length);
          vstr=uastr.substring(pos1+4,pos2);
          version=parseFloat(vstr);
        }
      }
      else{
        if(op){
          useragent="Opera";
          pos1=uastr.indexOf("Opera")+5;
          var spos=uastr.indexOf("/",pos1);
          if((spos>=pos1)&&(spos-2<=pos1))pos1=spos+1;
          vstr=uastr.substring(pos1,((uastr.length>pos1+5)?pos1+5:uastr.length));
          version=parseFloat(vstr);
        }
        else{
          useragent="unknown";
          version=mozver;
        }
      }
    }
    else{
      if(op){
        useragent="Opera";
        pos1=uastr.indexOf("Opera")+5;
        var spos=uastr.indexOf("/",pos1);
        if((spos>=pos1)&&(spos-2<=pos1))pos1=spos+1;
        vstr=uastr.substring(pos1,((uastr.length>pos1+5)?pos1+5:uastr.length));
        version=parseFloat(vstr);
      }
      else{
        if(uastr.indexOf("Netscape")>0){
          pos1=uastr.indexOf("Netscape")+8;
          pos2=uastr.indexOf("/",pos1);
          if(pos2>pos1)pos1=pos2+1;
          vstr=uastr.substring(pos1,uastr.length);
          version=parseFloat(vstr);
        }
        else version=mozver;
        useragent="Netscape";
      }
    }
  }
  else{
    if(op){
      useragent="Opera";
      pos1=uastr.indexOf("Opera")+5;
      var spos=uastr.indexOf("/",pos1);
      if((spos>=pos1)&&(spos-2<=pos1))pos1=spos+1;
      vstr=uastr.substring(pos1,((uastr.length>pos1+5)?pos1+5:uastr.length));
      version=parseFloat(vstr);
    }
    else{
      useragent="Non-Mozilla";
      version=0;
    }
  }
  if((pos1=uastr.indexOf("Win"))>=0){
    pos2=uastr.indexOf(";",pos1);
    if(pos2<0)pos2=uastr.indexOf(")",pos1);
    if(pos2>0)os=uastr.substring(pos1,pos2);
    else os="Win";
  }
  else if((pos1=uastr.indexOf("Mac"))>=0){
    pos2=uastr.indexOf(";",pos1);
    if(pos2<0)pos2=uastr.indexOf(")",pos1);
    if(pos2>0)os=uastr.substring(pos1,pos2);
    else os="Mac";
  }
  else os="unknown";
  if(isNaN(version))version=0;
  var cv=((navigator.cookieEnabled)?2:0);
  if(document.cookie=="")setCookie("Test=1");
  cv=cv|((document.cookie=="")?0:1);
  this.useragent=useragent;
  this.version=version;
  this.os=os;
  this.cookies=cv;
}

function Browser_getSupportLevel(){
  var sl=0;
  if(this.version>=3)sl=1;
  if((this.version>=4)&&(this.useragent=="MSIE"))sl=2;
  if((this.version>=5)&&(this.useragent=="MSIE"))sl=3;
  if((this.version>=6)&&(this.useragent!="MSIE"))sl=4;
  return sl;
}

Browser.prototype.getSupportLevel=Browser_getSupportLevel;

function displayBrowser(){
  var b=new Browser();
  var fface="'VERDANA','ARIAL'",fsize=2,fcolor="#00499E";
  var fstr="<FONT FACE="+QU+fface+QU+" SIZE="+QU+fsize+QU+" COLOR="+QU+fcolor+QU+">";
  var brstr="<TABLE WIDTH="+QU+"100%"+QU+" BORDER="+QU+"0"+QU+" CELLSPACING="+QU+"0"+QU+" CELLPADDING="+QU+"0"+QU+">";
  brstr+="<TR><TD>"+fstr+"<B>Browser:</B></FONT></TD><TD>&nbsp;<BR/></TD></TR>";
  brstr+="<TR><TD>"+fstr+"Type:</FONT></TD><TD>"+fstr+navigator.appName+"</FONT></TD></TR>";
  brstr+="<TR><TD>"+fstr+"Versjon:</FONT></TD><TD>"+fstr+b.version+"</FONT></TD></TR>";
  brstr+="<TR><TD>"+fstr+"OS:</FONT></TD><TD>"+fstr+b.os+"</FONT></TD></TR>";
  brstr+="</TABLE>";
  document.write(brstr);
}

///////////////////////////////////  Cookie functions ////////////////////////////////////////


function setAuth(){
  var f=document.forms[0];
  var authm=-1;
  for(var i=0;i<3;i++)if(f.elements["authm"][i].checked)authm=i;
  if((!navigator.cookieEnabled)&&(authm>0)){
    window.alert(MSG_AUTH_COOKIE_SET);
    f.elements["authm"][0].checked=true;
  }
  else{
    var exp=new Date();
    exp.setFullYear(exp.getFullYear()+1);
    if(getCookie(window,PIWeb,"AuthSet")==null)window.alert(MSG_COOKIE_SET);
    var p=window.parent;
    setCookie("PIWeb=AuthMode="+authm+"&AuthSet=1",exp);
  }
}

function setCookie(cs,exp,w){
  var d=null;
  if(w==null)d=document;
  else d=w.document;
  var cc=d.cookie;
  var wbc=collectCookies(cs);
  var ccs=collectCookies(cc);
  var a=ccs.length;
  var b=wbc.length;
  var ccn,ccv,found,ffound,tmpw,tmpc,aa,bb,twn,tcn;
  for(var i=0;i<a;i++){
    ccn=ccs[i][0];
    while(ccn.indexOf(" ")==0)ccn=ccn.substring(1);
    found=false;
    for(var j=0;j<b;j++){
      wbn=wbc[j][0];
      while(wbn.indexOf(" ")==0)wbn=wbn.substring(1);
      if(wbn==ccn){
        if((ccs[i][1] instanceof Array)&&(wbc[j][1] instanceof Array)){
          tmpc=ccs[i][1];
          tmpw=wbc[j][1];
          aa=tmpc.length;
          bb=tmpw.length;
          for(var ii=0;ii<aa;ii++){
            tcn=tmpc[ii][0];
            ffound=false;
            for(var jj=0;jj<bb;jj++){
              twn=tmpw[jj][0];
              while(tcn.indexOf(" ")==0)tcn=tcn.substring(1);
              if(twn==tcn)ffound=true;
            }
            if(!ffound)wbc[j][1]=wbc[j][1].concat(new Array(tmpc[ii]));
          }
        }
        found=true;
      }
    }
    if(!found)wbc=wbc.concat(new Array(ccs[i]));
  }
  var cks=new String();
  for(var i=0;i<wbc.length;i++){
    cks+=wbc[i][0]+"=";
    if(wbc[i][1] instanceof Array){
      var c=wbc[i][1];
      for(var j=0;j<c.length;j++){
        cks+=wbc[i][1][j][0]+"="+wbc[i][1][j][1];
        if(j<c.length-1)cks+="&";
      }
    }
    else cks+=wbc[i][1];
    cks+=";"
  }
  if(exp!=null){
    if(exp instanceof Date)cks+="expires="+exp.toGMTString();
    else if(exp==true){
      var dt=new Date();
      dt.setFullYear(dt.getFullYear()+1);
      cks+="expires="+dt.toGMTString();
    }
  }
  d.cookie=cks;
  return d.cookie!="";
}

function getCookie(w,n,s){
  if(w==null)w=window;
  var cs=w.document.cookie;
  if(n==null)return unescape(cs);
  var a=collectCookies(cs);
  for(var i=0;i<a.length;i++){
    var tmpn=a[i][0];
    while(tmpn.indexOf(" ")==0)tmpn=tmpn.substring(1);
    if(n.toLowerCase()==tmpn.toLowerCase()){
      if((s!=null)&&(a[i][1] instanceof Array)){
        a=a[i][1];
        for(var j=0;j<a.length;j++){
          var tmps=a[j][0];
          while(tmps.indexOf(" ")==0)tmps=tmps.substring(1);
          if(s.toLowerCase()==tmps.toLowerCase())return unescape(a[j][1]);
        }
      }
      else return unescape(a[i][1]);
    }
  }
  return null;
}

function collectCookies(cs){
  var b=null,c=null,d=null,e=null;
  var a=cs.split(";");
  for(var i=0;i<a.length;i++){
    if(a[i].indexOf("&")>0){
      d=a[i].split("&");
      var p=d[0].indexOf("=");
      if(p!=d[0].lastIndexOf("=")){
        c=new Array();
        c=c.concat(d[0].substring(0,p));
        d[0]=d[0].substring(p+1);
        for(var j=0;j<d.length;j++){
          var tmpa=d[j].split("=");
          if(j==0)c=c.concat(new Array(new Array(tmpa)));
          else c[1]=c[1].concat(new Array(tmpa));
        }
        a[i]=c;
      }
    }
    else{
      var p=a[i].indexOf("=");
      if(p!=a[i].lastIndexOf("=")){
        c=a[i].substring(p+1).split("=");
        a[i]=new Array(a[i].substring(0,p));
        a[i]=a[i].concat(new Array(new Array(c)));
      }
      else{
        c=a[i].split("=");
        a[i]=c;
      }
    }
  }
  return a;
}

function displayCookies(cs){
  if(cs==null)cs=document.cookie;
  var str="cookie: "+cs+CR;
  var a=collectCookies(cs);
  var len=a.length;
  str+="a.length: "+len+CR;
  for(var i=0;i<len;i++){
    str+="a["+i+"]: "+a[i];
    if(a[i] instanceof Array){
      var b=a[i];
      var bl=b.length;
      str+="(array, "+bl+" elems)"+CR;
      for(var j=0;j<bl;j++){
        str+="b["+j+"]: "+b[j]+CR;
        if(b[j] instanceof Array){
          var c=b[j];
          var cl=c.length;
          str+="(array, "+cl+" elems)"+CR;
          for(var k=0;k<cl;k++){
            str+="c["+k+"]: "+c[k]+CR;
            if(c[k] instanceof Array){
              var d=c[k];
              var dl=d.length;
              str+="(array, "+dl+" elems)"+CR;
              for(var l=0;l<dl;l++){
                str+="d["+l+"]: "+unescape(d[l])+CR;
              }
            }
          }
        }
      }
      str+=CR;
    }
    str+=CR;
    str+="cookieEnabled: "+navigator.cookieEnabled;
    str+=CR;
  }
  window.alert(str);
}

function getUSTimeStamp(m,d,y,h,mi,s,dt){
  if(dt==null)dt=new Date();
  if(m==null)m=0;
  if(d==null)d=0;
  if(y==null)y=0;
  if(h==null)h=0;
  if(mi==null)mi=0;
  if(s==null)s=0;
  var ss=dt.getSeconds()+s;
  var mm=dt.getMinutes()+mi;
  var hh=dt.getHours()+h;
  if((ss>59)||(ss<0)){
    var sss=(ss%60);
    if(sss<0)sss+=60;
    mm+=((ss-sss)/60);
    ss=sss;
  }
  if((mm>59)||(mm<0)){
    var mmm=(mm%60);
    if(mmm<0)mmm+=60;
    hh+=((mm-mmm)/60);
    mm=mmm;
  }
  if((hh>23)||(hh<0)){
    var hhh=(hh%24);
    if(hhh<0)hhh+=24;
    d+=((hh-hhh)/24);
    hh=hhh;
  }
  var dtstr=""+(((dt.getMonth()+1+m)>9)?"":0)+(dt.getMonth()+1+m)+"/"+((dt.getDate()+d>9)?"":"0")+(dt.getDate()+d)+"/"+(dt.getFullYear()+y)+" "+((hh>9)?"":"0")+hh+":"+((mm>9)?"":"0")+mm+":"+((ss>9)?"":"0")+ss;
  return dtstr;
}


function test(){
  window.alert("herti");
}

function resetCookies(){
  document.cookie='PIWeb=User=test&Tester=use';
}


function traverseFrames(w){
  var top=topWindow();
  if(w==null){
//window.alert("going to top");
    w=top;
    traverseFrames(w);
  }
  else{
//window.alert("frames: "+w.frames.length+" "+w.document.location.toString());
    var fc=1;
    var fa=new Array(w.location.toString()+", "+w.name);
    if(w.frames.length>0){
      for(var i=0;i<w.frames.length;i++)fa=fa.concat(traverseFrames(w.frames[i]));
    }
    if(w==top){
      var str="";
      for(var i=0;i<fa.length;i++)str+=fa[i]+CR;
      window.alert("frames: "+fa.length+CR+str);
    }
    else return fa;
  }
}

function getObjProps(obj){
  if(obj==null)return null;
  var props=new Array();
  for(var propName in obj){
    props=props.concat(new Array(new Array(propName,obj[propName],typeof(obj[propName]))));
  }
  return props;
}

function listObjProps(obj,w){
  var srcstr="";
  var objprops=getObjProps(obj);
  if(w==null)w=false;
  if(w){
    srcstr="<HTML><BODY><TABLE BORDER=1><TR><TH>"+obj+"</TH></TR>";
    for(var i=0;i<objprops.length;i++){
      srcstr+="<TR><TD>"+objprops[i][0]+"</TD><TD>"+objprops[i][1]+"</TD><TD>"+objprops[i][2]+"</TD></TR>";
    }
    srcstr+="</TABLE></BODY></HTML>";
    var win=window.open("","","");
    win.document.write(srcstr);
  }
  else window.alert(dialogListObjProps(obj,0));
}

function dialogListObjProps(obj,lvl){
  if(lvl==null)lvl=0;
  var srcstr="";
  var lvlstr="";
  var subobj=new Array();
  for(var j=0;j<lvl;j++)lvlstr+="  ";
  var objprops=getObjProps(obj);
  for(var i=0;i<objprops.length;i++){
    srcstr+=objprops[i][0]+": "+objprops[i][1]+"  "+objprops[i][2]+CR;
    if(objprops[i][2]=="object")subobj=subobj.concat(objprops[i][1]);
  }
  if(subobj.length>0)for(var i=0;i<subobj.length;i++)srcstr+=CR+CR+dialogListObjProps(subobj[i],lvl+1);
  return srcstr;
}

function PIForm(n){
  this.name=((n==null)?"":n);
  this.action="";
  this.formstring="?";
  var f;
  var d=document;
  if((this.name!=null)&&(d.forms[this.name]!=null))f=d.forms[this.name];
  else f=d.forms[0];
  if(f!=null){
    this.name=f.name;
    if((f.action!=null)&&(f.action!=""))this.action=new String(f.action);
    else this.action=docLoc();
    var elem=f.elements;
    this.formstring+=elem[0].name+"="+elem[0].value;
    for(var i=1;i<elem.length;i++)this.formstring+="&"+elem[i].name+"="+elem[i].value;
  }
}

function SaveWindow(pif){
  if(pif==null)pif=new PIForm();
  var childwin=topWindow().open("savewin.asp?ta="+escape(pif.action+pif.formstring),"","width=150,height=20");
}


function PIFtest(){
  var f=new PIForm();
  var fstr="PIForm:"+CR+CR;
  fstr+="name: "+f.name+CR;
  fstr+="action: "+f.action+CR;
  fstr+="formstr: "+f.formstring+CR;
  window.alert(fstr);
}

