var USER="",MSIE=0,ANYI=0,VEC=new Array();
function a(){
var u=document.location.href;
var a=u.indexOf("?");
if(a>0){
 USER=u.substring(a+1);
 while(1){
  if(USER.charAt(0)=="/")USER=USER.substring(1);
  else break;
 }
 while(1){
  if(USER.charAt(USER.length-1)=="/")USER=USER.substring(0,USER.length-1);
  else break;
 }
 if(!USER)USER="default";
}else USER="default";
if(navigator.userAgent.indexOf('MSIE')>-1)MSIE=1;
requestData("http://rawdataserver.com/cgi-bin/cmp/a.cgi?getdata="+USER);
}
function requestData(url){
 var r=false;
 if(window.XMLHttpRequest){
  try{r=new XMLHttpRequest();}
  catch(e){r=false;}
 }else if(window.ActiveXObject){
  try{r=new ActiveXObject("Msxml2.XMLHTTP");}
  catch(e){
   try{r=new ActiveXObject("Microsoft.XMLHTTP");}
   catch(e){r=false;}
  }
 }
 if(r){
  r.open("GET",url,true);
  r.onreadystatechange=function(){if(r.readyState==4&&r.status==200)receiveData(r.responseText)}
  r.send(null)
 }
}
function receiveData(d){
if(!d){
 if(confirm("This page has not been created.\n\nChange this page? Java required at this time."))document.location.href="http://rawdataserver.com/cgi-bin/cmp/a.cgi/"+USER;
 return;
}
document.bgColor=getxml("bgcolor",d);
var can=document.getElementById('can');
var context=can.getContext('2d');
var a,b;
a=d.indexOf("3\t");
b=d.indexOf(".gif",a);
var foreground_image=new Image();
foreground_image.onload=function(){context.drawImage(foreground_image,0,0);}
foreground_image.src="http://rawdataserver.com/CMP/usr/gifs/"+d.substring(a+2,b+4);
while(1){
 if(d.charAt(0)==3||d.charAt(0)==2||d.charAt(0)==1)d=d.substring(d.indexOf("\n")+1);
 else break;
}
while(1){
a=d.indexOf("<");if(a<0)break;
b=d.indexOf(">",a);if(b<=a)break;
var t=d.substring(a+1,b);
var x=getxml(t,d);
b=d.indexOf("</"+t+">",b);
b=d.indexOf(">",b);
d=d.substring(b+1);
var myob=new Object,myid='any'+(ANYI++),myurl=getxml("URL",x),X=getxml("x",x),Y=getxml("y",x),W=getxml("w",x),H=getxml("h",x),COLOR="#"+getxml("Color",x);
if(myurl=="http://")myurl="";
myob.id=myid;
myob.url=myurl;
myob.target=getxml("TargetWindow",x);
if(t=="Text"){
 var font_name=getxml("Font",x);
 if(font_name=="Courier")font_name="monospace";
 else if(font_name=="Helvetica"||font_name=="Dialog")font_name="sans-serif"
 else if(font_name=="TimesRoman")font_name="serif";
 var txt=getxml("TextArea",x);
 txt=replaceAllInstances(txt,"<cmp_did_not_fit>","");
 txt=replaceAllInstances(txt,"<cmp_wrap_here>","");
 if(txt.lastIndexOf("\n")==txt.length-1)txt=txt.substring(0,txt.length-1);
 txt=replaceAllInstances(txt,"\n","<br>");
 txt="<br>"+txt;//add temp br to front
 while(1){//rm trailing spaces
  var len=txt.length-1;
  if(txt.charAt(len)==" ")txt=txt.substring(0,len);
  else break;
 }
 var index=0;
 while(1){
  var a=txt.indexOf(" ",index);
  if(a<0)break;
  var count=1;
  while(1){
   if(txt.charAt(a+count)==" ")count++;
   else break;
  }
  if(count>1){
   var mysp="";
   for(var i=0;i<count;i++)mysp+="&nbsp;";
   txt=txt.substring(0,a)+mysp+txt.substring(a+count);
   index=a+count+1;
  }else index=a+1;
 }
 txt=replaceAllInstances(txt,"<br> ","<br>&nbsp;");
 txt=txt.substring(4);//rm temp br from front
 var font_style_n=getxml("FontStyle",x);
 var mystyle="";
 if(font_style_n==1)mystyle="font-weight:bold;";
 else if(font_style_n==2)mystyle+="font-style:italic;";
 else if(font_style_n==3)mystyle="font-weight:bold;font-style:italic;";
 if(myurl!="")mystyle+="text-decoration:underline;";
 if(mystyle!="")mystyle=";"+mystyle;

//translate pt to px....................................................
 var mypt=getxml("PointSize",x);
 var mypx=(mypt-4)+"pt";
 var mylh=112;
 if(mypt<3)mypx="1px";
 else if(mypt<15){mypx=mypt+"px";mylh=100;}
 else if(mypt<16){mypx=mypt+"px";mylh=105;}
 else if(mypt<22){mypx=mypt+"px";mylh=106;}
 else if(mypt<26){mypx=mypt+"px";mylh=104;}

 var myhtml="<div style='line-height:"+mylh+"%;font-family:"+font_name+";color:"+COLOR+";font-size:"+mypx+mystyle+"'>"+txt+"</div>";
 makeLayer(myid,X,Y,W,-1,"transparent",-1,myhtml);
}else if(t=="Rectangle"){
 var myhtml="",mybgcolor="transparent",mycolor=COLOR;
 if(getxml("FillColor",x)=="true")mybgcolor=mycolor;
 else myhtml="<table width=100% height=100% style='border-style:solid;border-width:1px;border-color:"+mycolor+"'><tr><td></td></tr></table>";
 makeLayer(myid,X,Y,W,H,mybgcolor,-1,myhtml);
}else if(t=="Picture"){
 var myhtml="<img src=\"http://rawdataserver.com/cgi-bin/cmp/a.cgi?proxy="+getxml("Location",x)+"\" border=0 width=100% height=100%>";
 makeLayer(myid,X,Y,W,H,'transparent',-1,myhtml);
}else if(t=="Oval"){
 var myhtml="<canvas id="+myid+"canvas width="+W+" height="+H+"></canvas>";
 makeLayer(myid,X,Y,W,H,"transparent",-1,myhtml);
 var mycan=document.getElementById(myid+'canvas');
 var mycon=mycan.getContext('2d');
 mycon.lineWidth=1;
 mycon.strokeStyle=COLOR;
 drawEllipse(mycon,0,0,W,H);
 if(getxml("FillColor",x)=="true")mycon.fill();
}else if(t=="Line"){
 var myhtml="<canvas id="+myid+"canvas width="+W+" height="+H+"></canvas>";
 makeLayer(myid,X,Y,W,H,"transparent",-1,myhtml);
 var mycan=document.getElementById(myid+'canvas');
 var mycon=mycan.getContext('2d');
 mycon.lineWidth=1;
 mycon.strokeStyle=COLOR;
 mycon.beginPath();
 var oc=getxml("origin_corner",x);
 var mxa,mya,mxb,myb,MW=W,MH=H;
 if(oc==1||oc==4){mxa=0;mya=0;mxb=MW;myb=MH;}
 else if(oc==2||oc==3){mxa=MW;mya=0;mxb=0;myb=MH;}
 mycon.moveTo(mxa,mya);
 mycon.lineTo(mxb,myb);
 mycon.stroke();
 mycon.closePath();
}
VEC.unshift(myob);
}
}
function drawEllipse(ctx,x,y,w,h){//http://stackoverflow.com/questions/2172798/how-to-draw-an-oval-in-html5-canvas
 var kappa=.5522848,
 ox=(w/2)*kappa,//control point offset horizontal
 oy=(h/2)*kappa,//control point offset vertical
 xe=x+w,        //x-end
 ye=y+h,        //y-end
 xm=x+w/2,      //x-middle
 ym=y+h/2;      //y-middle
 ctx.beginPath();
 ctx.moveTo(x,ym);
 ctx.bezierCurveTo(x,ym-oy,xm-ox,y,xm,y);
 ctx.bezierCurveTo(xm+ox,y,xe,ym-oy,xe,ym);
 ctx.bezierCurveTo(xe,ym+oy,xm+ox,ye,xm,ye);
 ctx.bezierCurveTo(xm-ox,ye,x,ym+oy,x,ym);
 ctx.closePath();
 ctx.stroke();
}
function getxml(tag,dat){
 var a=dat.indexOf("<"+tag+">");
 if(a<0)return "";
 var b=dat.indexOf("</"+tag+">");
 if(b<=a)return "";
 return dat.substring(a+tag.length+2,b);
}
function replaceAllInstances(s,x,y){
 var L=x.length;
 while(1){
  var a=s.indexOf(x);
  if(a<0)break;
  s=s.substring(0,a)+y+s.substring(a+L);
 }
 return s;
}
function makeLayer(id,L,T,W,H,bgColor,zIndex,html){
 if(!document.getElementById)return;
 if(H<0)H="";
 else H=";height:"+H;
 var st='position:absolute;left:'+L+';top:'+T+';width:'+W+H
  +(null==zIndex ? '' : ';z-index:'+zIndex)
  +(null==bgColor ? '' : ';background-color:'+bgColor)
//  +";border:3px red solid"
 if(document.body.insertAdjacentHTML){
  var ht='<DIV id='+id+' style="'+st+'"></DIV>';
  document.body.insertAdjacentHTML("BeforeEnd",ht);
 }else if(document.createElement&&document.body.appendChild){
  var el=document.createElement('div');
  el.setAttribute('id',id);
  el.setAttribute('style',st);
  document.body.appendChild(el);
 }
 document.getElementById(id).innerHTML=html;
}

function c(e){
 var b;
 if(MSIE)b=e.button;
 else b=e.which;
 if(b==1){
  nonEditClick(e);
 }else{
  if(confirm("Change this page?\n\nJava required at this time.\n\nYou'll need to RIGHT-click again to change this page."))document.location.href="http://rawdataserver.com/cgi-bin/cmp/a.cgi/"+USER;
 }
}

function nonEditClick(e){
 var cX=e.clientX;
 var cY=e.clientY;
 if(MSIE){
  cX+=document.body.scrollLeft;
  cY+=document.body.scrollTop;
 }else{
  cX+=window.pageXOffset;
  cY+=window.pageYOffset;
 }
 for(var i=0;i<VEC.length;i++){
  if(!VEC[i].url)continue;
  var el=document.getElementById(VEC[i].id);
  var ox=el.offsetLeft;
  var oy=el.offsetTop;
  var ow=el.offsetWidth;
  var oh=el.offsetHeight;
  if(cX>=ox&&cY>=oy&&cX<=ox+ow&&cY<oy+oh){
   if(VEC[i].target=="_top"||VEC[i].target=="")top.location.href=VEC[i].url;
   else window.open(VEC[i].url,VEC[i].target);
   break;
  }
 }
}

function m(e){
 var mX=e.clientX;
 var mY=e.clientY;
 if(MSIE){
  mX+=document.body.scrollLeft;
  mY+=document.body.scrollTop;
 }else{
  mX+=window.pageXOffset;
  mY+=window.pageYOffset;
 }
 for(var i=0;i<VEC.length;i++){
  if(!VEC[i].url)continue;
  var el=document.getElementById(VEC[i].id);
  var ox=el.offsetLeft;
  var oy=el.offsetTop;
  var ow=el.offsetWidth;
  var oh=el.offsetHeight;
  if(mX>=ox&&mY>=oy&&mX<=ox+ow&&mY<oy+oh){
   document.body.style.cursor="pointer";
   window.status=VEC[i].url;
   return;
  }
 }
 document.body.style.cursor="auto";
 window.status="";
}