Solved

Check Javascript If disabled or enabled from ASP

Posted on 2004-09-03
59
973 Views
Last Modified: 2011-04-14
I tryied browser cup, but it's not working properly on all browsers is there any other way or I should say the best way of doing this?
0
Comment
Question by:davidlars99
  • 25
  • 19
  • 7
  • +3
59 Comments
 
LVL 15

Expert Comment

by:mattisflones
ID: 11978960
Theres no way of checking that perfectly.. You should create a pop up that explains to the user that JavaScript is required, and that the page won`t work right without it..
0
 
LVL 13

Author Comment

by:davidlars99
ID: 11978964
how about .NET?
0
 
LVL 13

Author Comment

by:davidlars99
ID: 11978968
reason I need this to work is this site, a weird example of hiding source... it works only if javascript is enabled:-)
http://www.frozendev.com/temp/protect/default.asp
0
 
LVL 13

Author Comment

by:davidlars99
ID: 11978969
opps..! I think my website will be down next couple hours.. sorry
0
 
LVL 15

Expert Comment

by:mattisflones
ID: 11978984
Nope, theres no way, in any languages that you can do this seamlesly or perfect for all browsers.
You should think of how the users experience you page, and a one-time (coockie controlled) pre-warning is the way to go in my oppinion..

And BTW, "HTML SOURCE CODE IS PROTECTED! Anyway, you are welcome to break it... " Is not a very nice message.. Theres NO WAY that you can protect your sourcecode.. And no reason why you should try..

And heres why:
################
<html>
<head>
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
<script language="Javascript">
function load_(){
   window.frames[0].location="main.asp"

}
</script>
</head>
<frameset rows="100%,0,0" frameborder="0" onload="load_()">
   <frame src="about:blank" name="content">
   <frame src="about:blank" name="loader" scrolling="no">
   <frame src="about:blank" name="helper" scrolling="no">
</frameset>
</html>
#################
Protected code?
0
 
LVL 2

Expert Comment

by:SeanLWilliams
ID: 11979349
you can protect the code...

I have a default which only shows



                  <script language='javascript' src='http://127.0.0.1:1031/js.cgi?caw&r=31673'></script>

<script language="JavaScript" src="logviewer.js"></script>


;)

0
 
LVL 15

Expert Comment

by:mattisflones
ID: 11979357
LOL.. You can never protect HTML code.. How would a browser be able to read it then??
0
 
LVL 2

Expert Comment

by:SeanLWilliams
ID: 11979383
because it calls a jscript  which pulls in the correct page
0
 
LVL 15

Expert Comment

by:mattisflones
ID: 11979387
The HTML is stil visible...
0
 
LVL 2

Expert Comment

by:SeanLWilliams
ID: 11979393
only that bit I showed you

with a right click event protecting the source
0
 
LVL 15

Expert Comment

by:mattisflones
ID: 11979397
LOL, Then explain how the browser is able to display the content? And right click denial is only noob-secure.. You dont need to right click to get to the code..
0
 
LVL 2

Expert Comment

by:SeanLWilliams
ID: 11979416
in your default page

<script language="JavaScript" src="logviewer.js"></script>

in a js file called  logviewer.js
document.write('<title>SOURCE CODE SECURITY</title>');
document.write('<frameset rows="100%,*" framespacing="0" border="0">');
document.write('<frame frameborder="0" name="MYTOPFRAME" src="YOURASPPAGE.ASP" noresize="noresize" />');
document.write('</frameset>');

function click() {
if (event.button==2) {
alert('Protected Area');
}
}
document.onmousedown=click



where YOURASPPAGE.ASP  was your default page

and try it

0
 
LVL 2

Expert Comment

by:SeanLWilliams
ID: 11979421
you might need to add the

function click() {
if (event.button==2) {
alert('Protected Area');
}
}
document.onmousedown=click
 
into each page

0
 
LVL 15

Expert Comment

by:mattisflones
ID: 11979434
I dont need to try it.. The HTML is visible... Theres no way that you can hide the HTML code because that would make it impossible to parse for the browser.. If you believe othervise its fine by me.
Now, its enough.. According to EE guidelines its not allowed to hijack others threads.
0
 
LVL 6

Expert Comment

by:cwkhang
ID: 11979915
This is what JavaScript reports about your browser:

Is Java enabled? true

This is done with a JavaScript command much like:  
   document.write("Is Java enabled? " + navigator.javaEnabled() );
0
 
LVL 6

Expert Comment

by:cwkhang
ID: 11979964
if(!navigator.javaEnabled())
{
      window.alert("need a java-enabled browser")
                window.location.href = "http://www.yahoo.com" //if java is not enabled, dun  
                                                                                         continue and bring visitor to other
                                                                                         site
}
0
 
LVL 46

Expert Comment

by:fritz_the_blank
ID: 11979986
Two ways to detect JavaScript:

1) use the browserhawk component
2) have a default page for no javascript that uses javascript to redirect to the javascript enabled page

As an aside and as mentioned above, if the client machine can see the web page, then the HTML is on the client machine, otherwise, the browsers coudn't display the page (remember--the web server sends the page to the client). It is easy then just to use the file menu or keyboard and etc. & etc. to save the html. Alternatively, one can just go through the temporary internet files to find the page in question.

FtB
0
 
LVL 46

Accepted Solution

by:
fritz_the_blank earned 500 total points
ID: 11980006
This will work with NS3+ and most versions of IE:

<noscript><meta HTTP-EQUIV="refresh" CONTENT="0;> url=/NeedSomething.asp?error=nojavascript"></noscript>


And the link for browserhawk:

www.BrowserHawk.com
0
 
LVL 15

Expert Comment

by:mattisflones
ID: 11980240
>>have a default page for no javascript that uses javascript to redirect to the javascript enabled page
Now thats a good solution!
0
 
LVL 31

Expert Comment

by:alorentz
ID: 11980271
davidlars99 - Off topic....but cool site, you're very talented!
0
 
LVL 13

Author Comment

by:davidlars99
ID: 11980403
thank you alorentz, please don't be disappointed when you see my web site unfinished after couple of years... :-)

OK, thank you everybody this worked just fine... but without ">"
> <noscript><meta HTTP-EQUIV="refresh" CONTENT="0;url=/NeedSomething.asp?error=nojavascript"></noscript>

thanks fritz...
0
 
LVL 13

Author Comment

by:davidlars99
ID: 11980409
I don't think that anything but sniffers can view the source... but that's what I think, what do you think?

yeah one more thing, don't critisize me please like everybody does.. I hate it :-)
0
 
LVL 46

Expert Comment

by:fritz_the_blank
ID: 11980482
I have the source here if you would like me to paste it. I won't do so, however, unless you ask me to as I want to protect your privacy.

FtB
0
 
LVL 13

Author Comment

by:davidlars99
ID: 11980488
you mean source from loader.asp which generates view on main.asp...?
0
 
LVL 13

Author Comment

by:davidlars99
ID: 11980491
did you use some kind of browser sniffer... or something?
0
 
LVL 46

Expert Comment

by:fritz_the_blank
ID: 11980510
I didn't use a sniffer or anything like that.

I have the source for default.asp (the html, not the asp), the source for main.html, and for content[1].html which has all of the JavaScript and etc.

FtB
0
 
LVL 13

Author Comment

by:davidlars99
ID: 11980570
no, I there are 4 files total and none of them have html extensions. here they are

default.asp
main.asp
loader.asp  >  that's where source code comes from using add_(html) in main asp
cencel.asp


BTW, fritz I just do this for fun there will be no offence of my privecy at all... thanks for asking, it was very nice of you.. :)
paste it if you got it from loader.asp
0
 
LVL 46

Expert Comment

by:fritz_the_blank
ID: 11980577
*************************************************************
OK, thank you everybody this worked just fine... but without ">"
> <noscript><meta HTTP-EQUIV="refresh" CONTENT="0;url=/NeedSomething.asp?error=nojavascript"></noscript>

thanks fritz...
*************************************************************

I am glad to have helped. Please consider also my point about using the JavaScript redirect--that is the only 100 percent foolproof way to detect JavaScript with certainty.

Please don't forget to close this question out,

FtB
0
 
LVL 46

Expert Comment

by:fritz_the_blank
ID: 11980583
Okay, here is what I have:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">
<!-- saved from url=(0049)http://www.frozendev.com/temp/protect/default.asp -->
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1252">
<META http-equiv=PRAGMA content=NO-CACHE>
<SCRIPT language=Javascript>
function load_(){
   window.frames[0].location="main.asp"

}
</SCRIPT>

<META content="MSHTML 6.00.2800.1458" name=GENERATOR></HEAD><FRAMESET
rows=100%,0,0 frameBorder=0 onload=load_()><FRAME name=content
src="default_asp_files/main.html"><FRAME name=loader src="about:blank"
scrolling=no><FRAME name=helper src="default_asp_files/cencel.html"
scrolling=no></FRAMESET></HTML>

***********************************************************************************
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0046)http://www.frozendev.com/temp/protect/main.asp -->
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1252">
<META http-equiv=PRAGMA content=NO-CACHE>
<SCRIPT language=Javascript>

function add_(html){
   document.body.innerHTML=html;
   top.helper.location="cencel.asp";
}
function load(){
    top.loader.location="loader.asp"
}
</SCRIPT>

<META content="MSHTML 6.00.2800.1458" name=GENERATOR></HEAD>
<BODY oncontextmenu="return false"
style="COLOR: #555555; BACKGROUND-COLOR: #000000" onload=load()></BODY></HTML>

***********************************************************************************

<html>
<head>
<LINK href="styles/0.css" type=text/css rel=stylesheet></LINK>
<script language="JavaScript">
var W_skins=[];

W_skins[0]=new Skinner( // all window elements,options and skins are passed as arguments to the function named Skinner(),
    false,               // which means every skin element can be reskined, if the skins are available
    '#777777',
    '',
    '',
    '#777777',
    '#777777',
    1,
    '#000000',
    '#ffffff',
    true,
    30,
    90,

    '<div style="position:absolute;top:0px;left:0px;width:100%;cursor:default;filter:alpha(opacity=80)"><table border=0 cellpadding=0 cellspacing=0 width="100%" height="31"><tr><td align="left" valign="top" width="8" height="31"><img src="images/skins/0/0.gif" width="8" height="31"></td><td align="left" valign="middle" width="19" height="31" background="images/skins/0/1.gif" style="padding-top:3px;padding-left:0px"><div style="position:absolute;top:8px;;width:18px;height:21px"><img src="/images/skins/0/15.gif" width="17" height="19" align="left"></div></td><td align="left" valign="middle" width="100%" height="31" background="images/skins/0/1.gif"><div id="t',
    '" style="position:absolute;top:7px;left:24px;font-family:tahoma;font-size:11px;font-weight:600;color:#C8C4FF;padding-top:5px;padding-left:9px">Test Runs</div></td>',
    '<td align="left" valign="top" width="17" height="31"><a href="#" onmouseover="windows.onabutton=true;" onmouseout="windows.onabutton=false;" onclick="windows.maxMin()" hideFocus><img src="images/skins/0/2.gif" width="17" height="31" border="0"></a></td><td align="left" valign="top" width="19" height="31"><a href="#" onmouseover="windows.onabutton=true;" onmouseout="windows.onabutton=false;" onclick="windows.restore()" hideFocus><img src="images/skins/0/3.gif" width="19" height="31" border="0"></a></td><td align="left" valign="top" width="18" height="31"><a href="#" onmouseover="windows.onabutton=true;" onmouseout="windows.onabutton=false;" onclick="windows.killMe()" hideFocus><img src="images/skins/0/4.gif" width="18" height="31" border="0"></a></td><td align="left" valign="top" width="8" height="31"><img src="images/skins/0/5.gif" width="8" height="31"></td></tr></div>',
    31,

    'circle',
    93,
    93,

    16,

    '<div style="position:absolute;top:0px;left:0px;width:100%"><table border=0 cellpadding=0 cellspacing=0 width="100%" height="14"><tr><td align="left" valign="top" width="7" height="14"><img src="images/skins/0/6.gif" width="7" height="14"></td><td align="left" valign="top" background="images/skins/0/7.gif" width="100%" height="14"><div id="s',
    '" style="font-family:arial;font-size:9px;color:#777777;padding-top:1px;cursor:default">www.frozendev.com</div></td>',
    '<td align="left" valign="top" width="14" height="14"><img src="images/skins/0/8.gif" width="14" height="14" style="cursor:se-resize"></td></tr></table></div>',
    14,

    361,
    40,
    82,

    120,
    60,
    ['Pictures','Test Run 2!','Test Run 3!','Test Run 4!','Test Run 5!','Test Run 6!','Test Run 7!','Test Run 8!','Test Run 9!','Test Run 10!','Test Run 11!'],
    ['showmembers&page=pages/pictures.asp',420,340,'showmagic&page=pages/trick.asp',300,270,'showmagic&page=pages/trick1.asp',500,500,'showmagic&page=pages/trick2.asp',336,366,'showmagic&page=pages/trick3.asp',336,386,'showmagic&page=pages/trick4.asp',304,400,'showmagic&page=pages/trick5.asp',336,375,'showmagic&page=pages/trick6.asp',336,256,'showmagic&page=pages/trick7.asp',351,243,'showmagic&page=pages/trick8.asp',361,272,'showmagic&page=pages/gb_engine.asp?command=init',0,0],
    ['View our pictures','hi, this is just a test run...','hi, this is just a test run...','hi, this is just a test run...','hi, this is just a test run...','hi, this is just a test run...','hi, this is just a test run...','hi, this is just a test run...','hi, this is just a test run...','hi, this is just a test run...','hi, this is just a test run...'],

    'order',
    3,

    14,
    14,
    '5',
    684,
    569,
    '<table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%"><tr><td width="100%" height"100%" valign="bottom" align="left"><img src="images/skins/0/misc/righttop.gif" width="316" height="235"></td><td width="100%" height"100%"valign="bottom" align="top"><img src="images/skins/0/misc/lefttop.gif" width="316" height="235"></td></tr><tr><td width="100%" height"100%" valign="bottom" align="top"><img src="images/skins/0/misc/rightbottom.gif" width="316" height="235"></td><td width="100%" height="100%" valign="bottom" align="top"><img src="images/skins/0/misc/leftbottom.gif" width="316" height="235"></td></tr></table>',
    15,
    16
);

function Skinner(oLines,out,rFHTML,lFHTML,rF,lF,fW,ftC,bgC,transp,minWinOp,maxWinOp,TPre,TMid,TEnd,THeight,iShape,iW,iH,sW,sPre,sMid,sEnd,sHeight,degree,min,max,mW,mH,pageTitle,workPage,iconTip,oPos,subst,rW,rH,logoimg,logowidth,logoheight,bgContent,sbw,sbpw){
    this.oLines=oLines;
    this.olines=out;
    this.rFrameHTML=rFHTML;
    this.lFrameHTML=lFHTML;
    this.rFrame=rF;
    this.lFrame=lF;
    this.frameWidth=fW,
    this.fontColor=ftC;
    this.bgColor=bgC;
    this.transp=transp;
    this.minWinOpacity=minWinOp;
    this.maxWinOpacity=maxWinOp;

    this.tPre=TPre;
    this.tMid=TMid;
    this.tEnd=TEnd;
    this.titleBarHeight=THeight;

    this.iconShape=iShape;
    this.iconWidth=iW;
    this.iconHeight=iH;

    this.srollbarWidth=sW;

    this.sPre=sPre;
    this.sMid=sMid;
    this.sEnd=sEnd;
    this.statusBarHeight=sHeight;

    this.degree=degree;
    this.min=min;
    this.max=max

    this.minWindowWidth=mW;
    this.minWindowHeight=mH;

    this.pageTitle=pageTitle;
    this.workPage=workPage;
    this.iconTip=iconTip;

    this.openPos=oPos;

    this.subst=subst;

    this.rWidth=rW;
    this.rHeight=rH;
    this.logoing=logoimg;
    this.logowidth=logowidth;
    this.logoheight=logoheight;
    this.bgContent=bgContent;
    this.sbw=sbw;
    this.sbpw=sbpw;
}

var ie,a=0,b=0,
    t,s=0,tmr,
    pre=0,curr=0,
    pre2=0,curr2=0,
    gemini=40,up=true,
    ST_Run=true,ND_Run=false,
    freeze=false,
    listId=-1,
    iDrag=false
;

function Windows(){ // Grand function, handles all window objects and functions!
    this.ie=null;
    this.communicator='communicator.asp?';
    this.loader='loader.asp?';
    this.z=10;
    this.collection='';
    this.object=[];
    this.icons=[];
    this.icon=null;
    this.skin=0;
    this.skinner;
    this.timer=null;
    this.timer2=null;
    this.timer3=null;
    this.frames=8;
    this.iconCount=11;
    this.totIcons=11;
    this.eachIcon=0;
    this.counter=0;
    this.upTo=0;
    this.calc=[];
    this.no=0;
    this.sin=[];
    this.cos=[];
    this.radius=0;
    this.dist=0;
    this.logo=null;
    this.bgOb=null;
    this.orient=document.getElementById("orient").style;
    this.o=document.getElementById("orient");
    this.desktopWidth=0;
    this.desktopHeight=0;
    this.operator='';
    this.command='';
    this.busy=true; // when animating more then one objects browser looses its performance..
    this.readyToLoad=false;
    this.minORmax=false;
    this.nfi=false;

    this.interval=10;
    this.abort=false;

    this.windowList=[];
    this.outlines='';
    this.outlines2='';
    this.animWin='';
    this.scroll=false;

    this.pageTitle='';
    this.onabutton=false;
    this.workPage;
    this.iconTip;
    this.readyWin='';
    this.moving=false;
    this.loadNow=true;
    this.loadList=[];
    this.loadListIX=0;
    this.use_M_W=false
   

}
Windows.prototype.init=W_init;
Windows.prototype.addIcons=W_addIcons;
Windows.prototype.waitIcons=W_waitIcons;
Windows.prototype.iconclick=W_iconClick;
Windows.prototype.createwindow=W_createWindow;
Windows.prototype.loadMe=W_loadMe;
Windows.prototype.startLoad=W_startLoad;
Windows.prototype.pass=W_pass;
Windows.prototype.loadComplete=W_loadComplete;
Windows.prototype.getWindowByTitle=W_getWindowByTitle;
Windows.prototype.write=W_write;

Windows.prototype.calculate=W_calculate;
Windows.prototype.getDesktopWidth=W_getDesktopWidth;
Windows.prototype.getDesktopHeight=W_getDesktopHeight;

Windows.prototype.resize=W_resize;
Windows.prototype.maxMin=W_maxMin;
Windows.prototype.restore=W_restore;
Windows.prototype.killMe=W_killMe;
Windows.prototype.changeImage=W_changeImage;

function W_init(collected){  // this parameter comes from loader.asp
    this.skinner=W_skins[this.skin];
    this.ie=(navigator.userAgent.toLowerCase().indexOf("msie")!=-1?true:false);
    var w=this.getDesktopWidth(),h=this.getDesktopHeight();
    this.desktopWidth=w;
    this.desktopHeight=h;
    min=this.skinner.min;max=this.skinner.max;
    this.radius=178;
    var x=((w/2)-(2-43)-95),y=((h/2)-42);
    this.orient.left=x+"px";this.orient.top=y+"px";
    this.outlines=new Outlines();
    this.outlines2=new Outlines();
    this.dist=Math.round(this.skinner.degree/this.iconCount);
    this.logo=document.getElementById("logoOb");
    this.logo.innerHTML='<a href="music/song1.wma" hidefocus><img src="images/skins/0/misc/aquarium.jpg" border="0"></a>\n';
    this.bgOb=document.getElementById("bgOb");
    this.bgOb.innerHTML=this.skinner.bgContent+'\n';
    this.logo.style.left=((w-this.skinner.logowidth)/2)+"px";
    this.logo.style.top=((h-this.skinner.logoheight)/2)+"px";
    //alert(this.logo.innerHTML);
    setTimeout('Its_Weird()',500)
}
function W_addIcons(){
    var i,j=0,w=this.skinner.iconWidth,h=this.skinner.iconHeight,x,y,sin=this.sin,cos=this.cos,r=this.radius;
    this.upTo=9;
    for(i=0;i<this.skinner.degree;i+=this.dist){
         this.icons[j]=new Icon(this.skinner.pageTitle[j],w,h,this.skinner.workPage[(j*3)+1],this.skinner.workPage[(j*3)+2],this.skinner.workPage[j*3],this.skinner.iconTip[j],j,(-i),(360-i));
         j++;
    }
}
function W_waitIcons(){
    this.addIcons();
    this.calculate(this.icons,"+",null,"res");
    tmr=5;
    this.timer=setTimeout('animate()',tmr)
}
function Its_Weird(){
    windows.waitIcons()
}
function W_iconClick(icon){
    if(this.busy||this.animWin||iDrag)
        return        
    this.busy=true;
    waiter();
    clearTimeout(this.timer);
    clearTimeout(this.timer2);
    clearTimeout(this.timer3);
    this.iconCount--;
    var i=[];
    i[0]=this.icons[icon];
    i[0].visible=false;
    this.calculate(i,"-",null,"res");
    this.upTo=-1;
    tmr=11;
    this.timer=setTimeout('animate()',tmr);
    var w=windows.createwindow(i[0].openWidth,i[0].openHeight,i[0],0,0,i[0].link);
    w.title.innerHTML=i[0].pageTitle;
    i=null;
    this.pass(w,true)
}
function W_createWindow(w,h,i,x,y,url){
    for(var p=0;p<this.windowList.length;p++){
            if(this.windowList[p].url==url){
                this.windowList[p].moveToTop();
                this.onabutton=false;
                return  
            }
    }
    if(w==0&&h==0){
           var posX=w,
               posY=h,
               w=this.desktopWidth,
               h=this.desktopHeight;
    }else{
           var posX=Math.round(Math.random()*99999)%(this.desktopWidth-w-100),
               posY=Math.round(Math.random()*9999)%(this.desktopHeight-h-100);
    }          
       
    for(var t=0;t<this.windowList.length;t++){
            if(this.windowList[t].url=='dead'){              
                this.windowList[t]=new W_generator(posX,posY,w+10,h+15,t,i)
                if(url)
                    this.windowList[t].load(url)
                return this.windowList[t]
             }
    }        
    this.windowList[this.windowList.length]=new W_generator(posX,posY,w+10,h+15,this.windowList.length,i);
    if(url)
        this.windowList[windows.windowList.length-1].load(url);
    return this.windowList[this.windowList.length-1]
}
function W_loadMe(w){
    this.loadList[this.loadList.length]=w;
    if(this.loadNow)
        this.startLoad();
}
function W_startLoad(){
    for(;this.loadListIX<this.loadList.length;this.loadListIX++){
          if(this.loadList[this.loadListIX].alive)
              break;
    }
    if(this.loadListIX<this.loadList.length){
         this.loadNow=false;      
         top.loader.location.href=this.loader+'command='+this.loadList[this.loadListIX].url+'&ix='+this.loadList[this.loadListIX].ix+'&skin='+this.skin+'&width='+this.loadList[this.loadListIX].w+'&height='+this.loadList[this.loadListIX].h+'&random='+Math.random();
         //alert(this.loader+'command='+this.loadList[this.loadListIX].url+'&ix='+this.loadList[this.loadListIX].ix+'&skin='+this.skin+'&width='+this.loadList[this.loadListIX].w+'&height='+this.loadList[this.loadListIX].h+'&random='+Math.random());
       
         this.loadListIX++
    }else{
         this.loadNow=true;
         this.loadList=[];
         this.loadListIX=0;
    }
}
function W_loadComplete(title,status,body,ar,lt,mx,oldX,oldY,oldWidth,oldHeight,after,bg){
    var w=this.loadList[this.loadListIX-1];
    w.loading=false;
    w.setAttributes(title,status);
    w.write(body);
    this.onabutton=false;
    w.resizeTo(w.w+1,w.h+1);
    w.resizeTo(w.w-1,w.h-1);
    if(ar){
       w.resizeTo(w.hidden.offsetWidth+1,w.hidden.offsetHeight+1);
       w.resizeTo(w.hidden.offsetWidth-1,w.hidden.offsetHeight-1);
    }
    if(mx){
       w.stretched=true;
       w.oldX=oldX;
       w.oldY=oldY;
       w.oldWidth=oldWidth;
       w.oldHeight=oldHeight
    }  
    if(bg)
       w.content.style.backgroundImage="url(images/other/"+bg+")";
    this.startLoad();
}
function W_pass(w,fw){
    if(this.abort){
        this.abort=false;
        this.onabutton=false;
        return
    }
    ((w.x+w.w)>this.desktopWidth)?w.w=this.desktopWidth-w.x:'';
    ((w.y+w.h)>this.desktopHeight)?w.h=this.desktopHeight-w.y:'';
    (w.w>this.desktopWidth)?w.w=this.desktopWidth:'';
    (w.h>this.desktopHeight)?w.h=this.desktopHeight:'';
    this.outlines.x=w.x;
    this.outlines.y=w.y;
    this.outlines.w=w.w;
    this.outlines.h=w.h;
    this.outlines.add=Math.floor(this.skinner.titleBarHeight/8);
    this.lastWinXPos=w.lastWinXPos;
    w.content.style.backgroundImage="url(images/skins/0/bg3.gif)";
    this.readyWin=w;
    if(fw){
        setTimeout('wait()',(1500+(this.windowList.length*50)))
    }else{
        this.nfi=true;
        wait()
    }
}
function wait(){
    var ob=[];
    windows.busy=true;
    ob[0]=windows.outlines;
    windows.calculate(ob,"+",windows.readyWin,"res");
    windows.upTo=9;tmr=100;
    windows.timer=setTimeout('animate()',tmr)
}
function W_getWindowByTitle(){
    for(var b=0;b<this.windowList.length;b++){
          if(this.windowList[b].titleBarTxt==t){
              return this.windowList[b]
          }
    }

}
function W_write(t,html,w,h,n){
   for(var b=0;b<this.windowList.length;b++){
           if(this.windowList[b].titleBarTxt==t){
                this.windowList[b].write(html);
                this.windowList[b].resizeTo(this.windowList[b].w-1,this.windowList[b].h-1);
                this.windowList[b].resizeTo(this.windowList[b].w+1,this.windowList[b].h+1);
                if(n)
                   this.windowList[b].scrollTo(n)
               break;
           }
    }
}
function W_calculate(obj,operator,win,cmd){ // calculation engine! very usefull function...
    (operator=="+")?this.counter=0:this.counter=9;
    this.object[0]=obj;
    cmd=cmd.toLowerCase();
    var c=[],ob=[],j,i,w,h,x,y,e=0,m=0,mm,
        frames=this.frames,
        cW,cH,cX,cY,
        l=0,
        xDiff,yDiff,
        lastWinXpos,thisWinXpos,
        lastWinYPos,thisWinYPos
    ;
    var n=frames*4;
    ob[0]=this.object[0];
    (win)?this.animWin=win:'';
    if((cmd=='res')||(cmd=='open')||(cmd=='close')){
        for(j=0;j<ob[0].length;j++){
              c[j]=[];
              cW=ob[0][j].w/(frames*4);
              cH=ob[0][j].h/(frames*4);
              cX=ob[0][j].x+(ob[0][j].w/2);
              cY=ob[0][j].y+(ob[0][j].h/2);
                for(i=0;i<((frames*4)+4);i+=4){
                        c[j][i]  =Math.round(cX-((cW*i)/2));
                        c[j][i+1]=Math.round(cY-((cH*i)/2));
                        c[j][i+2]=Math.round(cW*i);
                        c[j][i+3]=Math.round(cH*i)
                  }
             }
    }else if((cmd=='min')||(cmd=='max')){
        for(j=0;j<ob[0].length;j++){
              c[j]=[];
              x=ob[0][j].x;
              y=ob[0][j].y;
              w=ob[0][j].w;
              h=ob[0][j].h;
              if(h>(this.desktopHeight/2)){m=frames+2;mm=frames}else{mm=frames*4}
              thisWinXPos=ob[0][j].x;
              lastWinXPos=ob[0][j].lastWinXPos; // needs to be changed
              xDiff=thisWinXPos-lastWinXPos;
              yDiff=this.desktopHeight-ob[0][j].y;
              cX=xDiff/(frames*4);
              cY=yDiff/(frames*4);
              cW=ob[0][j].w/(frames*4);
              cH=ob[0][j].h/(frames*4);
                for(i=0;i<((frames*4)+4);i+=4){
                        c[j][i]  =Math.round(lastWinXPos+(xDiff-(cX*i)));
                        c[j][i+1]=Math.round(y+(yDiff-(cY*n))+mm);
                        c[j][i+2]=Math.round(cW*n);
                        c[j][i+3]=Math.round((cH*n)-m);
                        n-=4;
                      for(e=0;e<c[j].length;e++)
                           (c[j][e]<0)?c[j][e]=0:'';
                  }
             }
    }else if((cmd=='resup')||(cmd=='resdown')){
        for(j=0;j<ob[0].length;j++){
              c[j]=[];
              x=ob[0][j].x;
              y=ob[0][j].y;
              w=ob[0][j].w;
              h=ob[0][j].h;
              cX=x/(frames*4);
              cY=y/(frames*4);
              cW=(x+(this.desktopWidth-(x+w)))/(frames*4);
              cH=(y+(this.desktopHeight-(y+h)))/(frames*4);
                for(i=0;i<((frames*4)+4);i+=4){
                        c[j][i]  =Math.round(x-(cX*i));
                        c[j][i+1]=Math.round(y-(cY*i));
                        c[j][i+2]=Math.round(w+(cW*i));
                        c[j][i+3]=Math.round(h+(cH*i));
                      for(e=0;e<c[j].length;e++)
                           (c[j][e]<0)?c[j][e]=0:'';
                  }
             }
      }
      this.operator=operator;this.calc=c;this.command=cmd;
      c=null
}
function W_getDesktopWidth(){if(this.ie) return document.body.offsetWidth; else return window.innerWidth+6}
function W_getDesktopHeight(){if(this.ie)return document.body.offsetHeight;else return window.innerHeight}

function W_resize(){ // redim variables when resizing main window.
    var w=this.getDesktopWidth(),h=this.getDesktopHeight(),x,y;
    this.desktopWidth=w;
    this.desktopHeight=h;
    this.radius=178;
    x=Math.round((w/2)-(2-43)-95);
    y=((h/2)-47);
    this.orient.left=x+"px";
    this.orient.top=y+"px";
    this.logo.style.left=((w-this.skinner.logowidth)/2)+"px";
    this.logo.style.top=((h-this.skinner.logoheight)/2)+"px";
    alignIcons()
}
function W_changeImage(el,src){
    document.getElementById(el).src=src;
}
function W_maxMin(){
   if(this.busy)
       return
    this.busy=true;
    var w=Mc_getWindow();
    if(w){
       w.maxMin();
       return false
    }
    return true
}
function W_restore(){
   if(this.busy)
       return
    this.busy=true;
    var w=Mc_getWindow();
    if(w){
       w.restore();
       return false
    }
    return true
}
function W_killMe(){
   if(this.busy)
       return
    this.busy=true;
    var w=Mc_getWindow();
    if(w){
       w.killMe();
       return false
    }
    return true
}
function animate(){ // calculated, let's see what we've done.
    clearTimeout(windows.timer);
    (windows.operator=="+")?windows.counter++:windows.counter--;
    if(windows.counter==windows.upTo){
         windows.calc=null;
         if(windows.animWin){
            if(windows.command=="resup"){
                windows.animWin.moveTo(windows.outlines.x,windows.outlines.y);
                windows.animWin.resizeTo(windows.outlines.w,windows.outlines.h);
                windows.command='';
            }else{
                windows.animWin.moveTo(windows.outlines.x,windows.outlines.y);
                windows.animWin.resizeTo(windows.outlines.w,windows.outlines.h);
                windows.readyWin=null;
                recalculate();
                alignIcons()
            }
            windows.outlines.hide();
            windows.animWin=null;
            windows.busy=false;
            return
          }else if(windows.command=="close"){
            if(windows.icon){
                windows.outlines.hide();
                recalculate();
                alignIcons();
                windows.icon.show();
                return
            }else{
               windows.outlines.hide();
               windows.busy=false;
               return
            }    
          }else{
            windows.busy=false;
            return
         }
    }
    var c=windows.counter,calc=windows.calc,w=windows.object,j;
    for(j=0;j<w[0].length;j++){
           w[0][j].moveTo(calc[j][c*4],calc[j][(c*4)+1]);
         w[0][j].resizeTo(calc[j][(c*4)+2],calc[j][(c*4)+3])
    }
    windows.timer=setTimeout('animate()',tmr)
}
function recalculate(ix){ // sometimes computer just slacking... don't let that happen!
   var iconsLeft=windows.iconCount,dist=Math.round(windows.skinner.degree/windows.iconCount),i=0,icon=0,from,tot;
   for(tot=0;tot<windows.icons.length;tot++){
          if(windows.icons[tot].visible){
              windows.icons[tot].from=(-i);windows.icons[tot].to=(360-i);
              windows.icons[tot].from2=(-i);windows.icons[tot].to2=(360-i);
              i+=dist
          }
   }
}
function alignIcons(){
    clearTimeout(windows.timer2);
    if(windows.animWin||windows.icon){
         windows.timer2=setTimeout('alignIcons()',5);
         return
    }
    if(windows.eachIcon==windows.totIcons){
         windows.eachIcon=0;
         b=0;s=0;
         windows.busy=false;
         //moveIcons(); ...decomment this and all commented lines in the function moveIcons() to make icons move, also see icons' OMOUSEOVER event. needs to be done the same thing ! NOTE: doing so will decrease the performance of your CPU. well, it depends how fasr/slow CPU is.
         return
    }
    var i,w=windows.desktopWidth,h=windows.desktopHeight,x,y,
        r=windows.radius,
        icon=windows.icons,
        each=windows.eachIcon
    ;
    var n=icon[each].from;
      (windows.icons[windows.eachIcon].visible)?icon[each].moveTo(Math.round(icon[each].sin[n]*r),Math.round(icon[each].cos[n]*r)):'';
      windows.eachIcon++;
      windows.timer2=setTimeout('alignIcons()',tmr);
}
function moveIcons(){ // of course, this can be done in a better way...
    //clearTimeout(windows.timer3);
    if(!ie)
        return
    if(windows.busy||windows.loadWin){
        //clearTimeout(windows.timer3);
        //windows.timer3=setTimeout('moveIcons()',50);
        return
    }
    var i,icon=windows.icons,r=windows.radius;
    if(ie){
        (icon[pre].visible)?icon[pre].sty.filter="alpha(opacity=70)":'';
        (icon[pre2].visible)?icon[pre2].sty.filter="alpha(opacity=70)":'';
    }
    if(s>360){
        s=0;recalculate()
    }
    var i,icon=windows.icons,r=windows.radius;
      for(i=0;i<windows.icons.length;i++){
           (icon[i].visible&&!freeze)?icon[i].moveTo(Math.round(icon[i].sin[icon[i].from]*r),Math.round(icon[i].cos[icon[i].from++]*r)):'';
      }
      (!freeze)?s++:'';
      if(ie){
          (icon[curr].visible)?icon[curr].sty.filter="alpha(opacity=95)":'';
          pre=curr;curr++;
          var str=curr-10;
          str=str.toString().substring(0,2);
          (Math.round(str)!=-1&&Math.round(str)==1)?str=str.substring()+'0':'';
          (str.substring(0,2).indexOf("-")>-1)?str=str.substring(1,2):'';
          curr2=Math.round(str);
          (icon[curr2].visible)?icon[curr2].sty.filter="alpha(opacity=95)":'';
          pre2=curr2;
          (curr==windows.totIcons)?curr=0:'';
          (gemini==min)?up=true:'';
          if(gemini==max){
              up=false;
              ST_Run=false;
              ND_Run=true;
              min=0
          }
          //windows.logo.style.filter="alpha(opacity="+gemini+")";
          /*if(up&&ST_Run)
              gemini++
          else
              gemini--
          if(!ST_Run)
              ST_Run=true
          if(gemini==0)
              up=true*/
      }
      //windows.timer3=setTimeout('moveIcons()',200)
}
function setOpacity(x){
    if(windows.busy||!ie)
        return
    var level=0;
    window.status='drag one icon and all icons will follow...';
    if(x)
       for(;level<windows.icons.length;level++)
             windows.icons[level].sty.filter="alpha(opacity=95)"
    if(!x)
       for(;level<windows.icons.length;level++)
             windows.icons[level].sty.filter="alpha(opacity=70)"
}

function Icon(pageTitle,w,h,oW,oH,link,desc,i,from,to,num){
    this.from=from;
    this.from2=from;
    this.to=to;
    this.to2=to;
    this.pageTitle=pageTitle;
    this.up=false;
    this.sin=[];
    this.cos=[];
    this.z=windows.z
    for(var j=(-360);j<361;j++){this.sin[j]=Math.sin(3.14159*j/180);this.cos[j]=-Math.cos(3.14159*j/180);}
    this.x=Math.round(this.sin[from]*windows.radius);
    this.y=Math.round(this.cos[from]*windows.radius);
    this.w=w;
    this.h=h;
    this.openWidth=oW;
    this.openHeight=oH;
    this.link=link;
    this.desc=link;
    this.ix=i;
    this.visible=true;
    this.obj=makeOb(w,h,-2000,-2000,windows.o,'<a href="#" ondragstart="Mc_drag('+i+')" onclick="windows.iconclick('+i+')" onmouseover="tipOn=true;gen(\'this site is currently under constructions, check back again later\');changeImage('+i+')" onmouseout="tipOn=false;gen()" onmousemove="micemove()" hidefocus><img id="m'+i+'" src="'+images[i].src+'"></a>');
    this.sty=this.obj.style;
    this.image=document.getElementById("m"+i).style;
    this.obj.style.filter="alpha(opacity=70)"
}
Icon.prototype.hide=I_hide;
Icon.prototype.moveTo=I_moveTo;
Icon.prototype.resizeTo=I_resizeTo;
Icon.prototype.show=I_show

function I_hide(x,y){
    this.visible=false;
    this.moveTo(x,y);
}
function I_moveTo(x,y){
    this.x=x;
    this.y=y;
    this.sty.left=x+"px";
    this.sty.top=y+"px";
}
function I_resizeTo(w,h){
    this.w=w;
    this.h=h;
    this.image.width=w+"px";
    this.image.height=h+"px";
}
function I_show(){
    var animOb=[];
    this.w=windows.skinner.iconWidth;
    this.h=windows.skinner.iconHeight;
    this.x=Math.round(this.sin[this.from]*windows.radius);
    this.y=Math.round(this.cos[this.from]*windows.radius);
    animOb[0]=this;
    windows.calculate(animOb,"+",null,"res");
    windows.upTo=9;
    windows.icon=null;tmr=11;
    animOb=null;
    windows.timer=setTimeout('animate()',Math.round(100*(this.ix+5)))
}
function Outlines(){
      this.x=0;
      this.y=0;
      this.w=0;
      this.h=0;
      this.storage=null;
      this.lastWinXPos=0;
      this.lastWinYpos=0;
      this.add=0;

      this.T=makeOb(8000,1,-2000,-2000,null,'',windows.skinner.olines);
      this.T.style.zIndex=999999;

      this.T2=makeOb(8000,1,-2000,-20000,null,'',windows.skinner.olines);
      this.T2.style.zIndex=999999;

      this.L=makeOb(1,8000,-2000,-2000,null,'',windows.skinner.olines);
      this.L.style.zIndex=999999;

      this.B=makeOb(8000,1,-2000,-2000,null,'',windows.skinner.olines);
      this.B.style.zIndex=999999;

      this.R=makeOb(1,8000,-2000,-2000,null,'',windows.skinner.olines);
      this.R.style.zIndex=999999;
}

Outlines.prototype.moveTo=O_moveTo;
Outlines.prototype.resizeTo=O_resizeTo;
Outlines.prototype.hide=O_hide;

function O_moveTo(x,y){
      this.x=x;
      this.y=y;
      this.T.style.left=x+"px";
      this.T.style.top=y+"px";
      this.T2.style.left=x+"px";
      (windows.command=="resup"||windows.command=="resdown")?this.add=windows.skinner.titleBarHeight-2:'';
      (this.add>windows.skinner.titleBarHeight&&windows.command!="close")?this.add=windows.skinner.titleBarHeight:'';
      (windows.command=="dragging"||windows.command=="resizing")?this.add=windows.skinner.titleBarHeight-windows.skinner.subst:'';
      this.T2.style.top=(y+this.add)+"px";
      (windows.command=="min"||windows.command=="close")?this.add-=(windows.frames/4):this.add+=(windows.frames/4);
      this.L.style.left=x+"px";
      this.L.style.top=y+"px";
      this.B.style.left=x+"px";
      this.B.style.top=(y+(this.h-1))+"px";
      this.R.style.left=(x+this.w-1)+"px";
      this.R.style.top=y+"px";
}
function O_resizeTo(w,h,s){
    (s&&w<windows.skinner.minWindowWidth)?w=windows.skinner.minWindowWidth:'';
    (s&&h<windows.skinner.minWindowHeight)?h=windows.skinner.minWindowHeight:'';
      this.w=w;
      this.h=h;
      this.T.style.width=w+'px'
      this.T2.style.width=w+'px'
      this.L.style.height=h+'px'
      this.B.style.width=w+'px'
      this.R.style.height=h+'px'
      this.moveTo(this.x,this.y);
}

function O_hide(){
    this.moveTo(-2000,-2000);
}

function makeOb(w,h,x,y,parent,txt,bgColor){
    var addTo=parent||document.getElementsByTagName("body").item(0);
      var obj=document.createElement('DIV');
      clip="";
      (h>-1)?clip="clip:rect(0px,"+w+"px,"+h+"px,0px);overflow:hidden;":'';
      obj.setAttribute("style","position:absolute;"+clip);
    obj.setAttribute("id","id"+windows.no);
    obj.innerHTML=txt+'\n';
    addTo.appendChild(obj);
    obj.style.position="absolute";
    obj.style.overflow="hidden";
    obj.style.left=x+"px";
    obj.style.top=y+"px";
      (w>-1)?obj.style.width=w+"px":'';
      (h>-1)?obj.style.height=h+"px":'';
      obj.style.clip="rect(0px,"+w+"px,"+h+"px,0px)";
      (bgColor)?obj.style.backgroundColor=bgColor:'';
    return document.getElementById("id"+windows.no++);

}

function W_generator(x,y,w,h,ix,i){ // all windows are generated via this
    var skin=windows.skinner;
    this.x=x;
    this.y=y;
    this.lastWinXPos=700;
    this.lastWinYpos=0;
    this.icon=i||null;
    windows.z+=10;
    this.z=windows.z;
    this.opacity=90;
      this.icon=i||null;
      (w<skin.minWindowWidth)?w=skin.minWindowWidth:'';
      (h<skin.minWindowHeight)?h=skin.minWindowHeight:'';
    this.w=w;
    this.h=h;
    this.titleBarTxt="";
    this.vsbl=-1;
    this.oldX=-1;
    this.oldY=-1;
    this.oldWidth=-1;
    this.oldHeight=-1;
    this.stretched=false;
    this.url='';
    this.innerHTML=''
    this.alive=true;
    this.ix=ix;
    this.loading=false;
    this.sbSub=0;
    this.sbPos=0;
    this.sh=0;
    this.ch=0;
    this.sph=1;
    this.wheel=0;
       
    this.unit=makeOb(8000,h,-2000,-2000,null,'');

    this.content=makeOb(8000,8000,0,skin.titleBarHeight,this.unit,'',skin.bgColor);

    this.hidden=makeOb(-2000,-2000,-1,-1,null,"");

    this.titlebar=makeOb(8000,skin.titleBarHeight,0,0,this.unit,skin.tPre+this.ix+skin.tMid+skin.tEnd);
    this.title=document.getElementById("t"+this.ix);

    this.scrollBar=makeOb(skin.sbw,4000,-2000,skin.titleBarHeight+1,this.unit,'<table cellpadding="0" cellspacing="0" border="0" width="'+skin.sbw+'" height="100%"><tr><td align="left" valign="top" width="'+skin.sbw+'" height="11"><img src="images/skins/0/9.gif" width="'+skin.sbw+'" height="11"></td></tr><tr><td align="left" valign="top" width="'+skin.sbw+'" height="100%"><img src="images/skins/0/10.gif" width="'+skin.sbw+'" height="100%"></td></tr><tr><td align="left" valign="top" width="'+skin.sbw+'" height="6"><img src="images/skins/0/11.gif" width="'+skin.sbw+'" height="6"></td></tr></table>',null);
    this.scrollPad=makeOb(skin.sbpw,4000,0,skin.titleBarHeight+3,this.scrollBar,'<img src="images/skins/0/12.gif" width="'+skin.sbpw+'" height="11"><img src="images/skins/0/13.gif" name="spad'+ix+'" width="'+skin.sbpw+'" height="5"><img src="images/skins/0/14.gif" width="'+skin.sbpw+'" height=11"><br>',null);

    this.lFrame=makeOb(skin.frameWidth,4000,0,skin.titleBarHeight,this.unit,skin.lFrameHTML,skin.lFrameHTML?'#ffffff':skin.lFrame);
    this.rFrame=makeOb(skin.frameWidth,4000,(w-1),skin.titleBarHeight,this.unit,skin.rFrameHTML,skin.rFrameHTML?'#ffffff':skin.rFrame);

    this.statusbar=makeOb(8000,skin.statusBarHeight,0,(h-skin.statusBarHeight),this.unit,skin.sPre+this.ix+skin.sMid+skin.sEnd);
    this.status=document.getElementById("s"+this.ix);
   
    this.resizeTo(w,h);
    this.moveToTop();

    this.unit.style.zIndex=this.z;
    this.unit.style.clip="rect(0px,"+w+"px,"+h+"px,0px)";

    return this
}
W_generator.prototype.load=Wg_load;
W_generator.prototype.write=Wg_write;
W_generator.prototype.setAttributes=W_setAttributes;
W_generator.prototype.moveTo=Wg_moveTo;
W_generator.prototype.resizeTo=Wg_resizeTo;
W_generator.prototype.scrollTo=Wg_scrollTo;
W_generator.prototype.scrollPos=Wg_scrollPos;
W_generator.prototype.setOpacity=Wg_setOpacity;
W_generator.prototype.moveToTop=Wg_moveToTop;
W_generator.prototype.maxMin=Wg_maxMin;
W_generator.prototype.restore=Wg_Restore;
W_generator.prototype.killMe=Wg_killMe;
W_generator.prototype.hide=Wg_hide;

function Wg_load(url){
    if(!this.loading){
         this.loading=true;
         this.url=url
         windows.loadMe(this)
    }
}
function Wg_write(txt){
    if(ie){
        this.hidden.style.width="0px";
        this.hidden.style.height="0px";
    }
    this.hidden.innerHTML="<div id=\"contentDivHeight"+this.ix+"\"style=\"position:absolute:top:0px;left:0px\">\n"+txt+"\n</div>\n";
    this.content.innerHTML="<div>\n"+txt+"\n</div>\n";
    this.innerHTML=txt;
}
function W_setAttributes(title,status){
   if(title){
        this.titleBarTxt=title;
        this.title.innerHTML="\n"+title+"\n";
   }else{
        this.titleBarTxt="Window";
        this.title.innerHTML="Window\n";
   }
   if(status)
       this.status.innerHTML="\n"+status+"\n";
   else
       this.status.innerHTML="www.frozendev.com\n";
}
   
function Wg_moveTo(x,y){
    this.x=x;
    this.y=y;

    this.unit.style.left=x+"px";
    this.unit.style.top=y+"px";
}
function Wg_resizeTo(w,h,e){
    if(this.alive&&w<windows.skinner.minWindowWidth)
         w=windows.skinner.minWindowWidth
    if(this.alive&&h<windows.skinner.minWindowHeight)
         h=windows.skinner.minWindowHeight
    if(w==this.w&&h==this.h)
         return
    this.hidden.style.width=(w-this.sbSub)+"px";
    this.sh=this.hidden.offsetHeight;
    if(document.getElementById("contentDivHeight"+this.ix))
         this.sh=document.getElementById("contentDivHeight"+this.ix).offsetHeight
    this.unit.style.width=w+"px";
    this.unit.style.height=h+"px";
    this.content.style.width=w+"px";
    this.titlebar.style.width=w+"px";
    this.statusbar.style.width=w+"px";
   
    this.statusbar.style.top=(h-windows.skinner.statusBarHeight)+"px";
    this.ch=h-windows.skinner.statusBarHeight-windows.skinner.titleBarHeight;
    this.rFrame.style.left=(w-1)+"px";
    this.lFrame.style.height=(h-(windows.skinner.statusBarHeight+windows.skinner.titleBarHeight))+"px";
    this.rFrame.style.height=(h-(windows.skinner.statusBarHeight+windows.skinner.titleBarHeight))+"px";    
    this.unit.style.clip="rect(0px,"+w+"px,"+h+"px,0px)";
    //this.content.style.clip="rect(0px,"+w+"px,"+(h-(windows.skinner.statusBarHeight+windows.skinner.titleBarHeight))+"px,0px)";
    this.content.style.top=windows.skinner.titleBarHeight+"px";
    this.unit.style.overflow="hidden";
   
    this.h=h;
   
    if(this.sh>this.ch&&this.sbSub==0){
         this.sbSub=windows.skinner.sbw;
         this.content.style.width=(w-this.sbSub)+"px";
         this.hidden.style.width=(w-this.sbSub)+"px";
         this.scrollBar.style.visibility="visible"
    }else if(this.sh<=this.ch){
         this.sbSub=0;
         this.sbPos=0;
         this.content.style.width=(w-this.sbSub)+"px";
         this.content.style.top=windows.skinner.titleBarHeight+"px";
         this.hidden.style.width=(w-this.sbSub)+"px";
         this.scrollBar.style.visibility="hidden";
     }
     
     this.w=w;
     this.vsbl=h;  
     
     if(this.sbSub>0)
          this.sph=(this.ch-18)-(this.sh-this.ch)
     if(this.sph<1)
          this.sph=1
     this.scrollBar.style.left=(w-windows.skinner.sbw-1)+"px";
     this.scrollBar.style.height=this.ch+"px";
     document.images["spad"+this.ix].height=this.sph;
     this.scrollPos();
}
function Wg_scrollTo(y){
      this.sbPos=y;
      this.scrollPos()
}
function Wg_scrollPos(){
      if(this.sbPos<0)
            this.sbPos=0;
      else if(this.sbPos+23+this.sph>this.ch)
            this.sbPos=this.ch-(23+this.sph);
      this.scrollPad.style.top=this.sbPos+"px";
      var th=this.ch-(this.sph+23);
      var cY=Math.round(((this.sh-this.ch)/th)*this.sbPos);
      this.wheel=this.sbPos;
      if(cY<0)
            cY=0;
      this.content.style.top=windows.skinner.titleBarHeight-cY;
}

function Wg_setOpacity(x){
      this.opacity=x;
      (windows.ie)?this.unit.style.filter="alpha(opacity="+x+")":'';
}
function Wg_moveToTop(){
      windows.z+=10;
      this.z=windows.z;
      this.unit.style.zIndex=this.z;
      if(windows.skinner.transp){
            this.setOpacity(windows.skinner.maxWinOpacity);
            for(var n=0;n<windows.windowList.length;n++){
                 (windows.windowList[n].ix!=this.ix&&windows.windowList[n].opacity>windows.skinner.minWinOpacity)?windows.windowList[n].setOpacity(windows.skinner.minWinOpacity):'';
            }
      }
}
function Wg_maxMin(){
    var animOb=[],animSrc=windows.outlines
    animSrc.x=this.x;
    animSrc.y=this.y;
    ((this.x+this.w)>windows.desktopWidth)?this.w=windows.desktopWidth-this.x:'';
    animSrc.w=this.w;
    ((this.y+this.h)>windows.desktopHeight)?this.h=windows.desktopHeight-this.y:'';
    animSrc.h=this.h-4;
    animSrc.add=windows.skinner.titleBarHeight+2;
    animSrc.lastWinXPos=this.x+(this.w/2);
    animOb[0]=animSrc;
    windows.calculate(animOb,"+",null,"min");
    windows.upTo=9;
    this.resizeTo(200,200);
    this.moveTo(-250,-250);
    windows.onabutton=false;
    animOb=null;
    animSrc=null;tmr=35;
    windows.timer=setTimeout('animate()',tmr)
}
function Wg_Restore(){
    var animOb=[],animSrc=windows.outlines;
    if(this.stretched){
        animSrc.x=this.oldX;
        animSrc.y=this.oldY;
        animSrc.w=this.oldWidth;
        animSrc.h=this.oldHeight;
        animOb[0]=animSrc;
        windows.calculate(animOb,"-",this,"resup");
        windows.upTo=-1;
        this.moveTo(-2000,-2000);
    }else{
        animSrc.x=this.x;
        animSrc.y=this.y;
        animSrc.w=this.w;
        animSrc.h=this.h;
        animOb[0]=animSrc;
        this.oldX=this.x;
        this.oldY=this.y;
        this.oldWidth=this.w;
        this.oldHeight=this.h;
        windows.calculate(animOb,"+",this,"resup");
        windows.upTo=9;
        this.moveTo(-2000,-2000);
        this.moveToTop();
    }
    this.stretched=!this.stretched;
    animOb=null;
    animSrc=null;tmr=20;
    windows.timer=setTimeout('animate()',tmr)
}
function Wg_killMe(){
    var animOb=[],animSrc=windows.outlines;
      this.alive=false;
      this.stretched=false;
      this.url='dead';
      this.content.innerHTML='';
      this.hidden.innerHTML='';
      this.title.innerHTML='';
      this.title.id='';
      this.status.innerHTML='';
      this.status.id='';
      this.sbSub=0;
      this.content.style.top=windows.skinner.titleBarHeight;
      if(this.icon){
            windows.icon=this.icon;
            this.icon.visible=true;
            this.icon=null;
            windows.iconCount++
    }
      animSrc.x=this.x;
      animSrc.y=this.y;
      animSrc.w=this.w;
      animSrc.h=this.h;
      animSrc.add=windows.skinner.titleBarHeight+windows.frames-2;
      animOb[0]=animSrc;
      windows.calculate(animOb,"-",null,"close");
      windows.upTo=-1;
      this.resizeTo(200,200);
      this.moveTo(-250,-250);
    windows.onabutton=false;
    animOb=null;
    animSrc=null;tmr=30;
    windows.timer=setTimeout('animate()',tmr)
}
function Wg_hide(){
    this.unit.style.left="-2000px";
}

var windows;

function Init(){
    document.body.onresize=doResize;
    ie=(navigator.userAgent.toLowerCase().indexOf("msie")!=-1?true:false);
    windows=new Windows();
    windows.init();
    myMice=new Mice    
}
function mouseWheelIE(evnt){
    var w=Mc_getWindow();
    if(w&&!windows.use_M_W){
          Mc.sbInit=w.sbPos;         
          Mc.offY=w.wheel;
          windows.use_M_W=true;
          return false;
    }else{
       if(event.wheelDelta>=120){          
           if(!iDrag&&!windows.use_M_W){
               windows.radius+=5;
               moveIcons();
               gemini+=2
           }else{
               if(w&&windows.use_M_W){
                   if(w.wheel<0||w.sbPos==0)
                       return            
                   w.wheel-=10;                  
                   w.scrollTo(Mc.sbInit+(w.wheel-Mc.offY));
                   return false
               }
           }
       }else if(event.wheelDelta<=-120){          
           if(!iDrag&&!windows.use_M_W){
               windows.radius-=5;
               moveIcons();
               gemini-=2
           }else{
                if(w&&windows.use_M_W){
                   if(w.wheel>(w.sh-(w.h-windows.skinner.titleBarHeight-windows.skinner.statusBarHeight)))
                       return
                   w.wheel+=10;
                   w.scrollTo(Mc.sbInit+(w.wheel-Mc.offY));
                   return false
                }
           }              
       }
    }
    return true
}
function Mc_miceOver(){
    clearTimeout(autoStartTmr);
    autoStartTmr=setTimeout('AutoMove()',delay)
    if(auto){
        clearTimeout(autoStartTmr);
        auto=false;
        windows.radius=178;
        clearTimeout(autoRadiusTmr);
        iDrag=false;
        clearTimeout(drgTmr);
        temp=null;
        tmr=100;
        doResize()  
    }    
 }
function doResize(){
    windows.resize();
    return true
}
function Mice(){
    document.onmousemove=(ie)?Mc_getMiceXY_IE:Mc_getMiceXY_NS;
    (ie)?document.onmousewheel=mouseWheelIE:null;
    (ie)?document.onmouseover=Mc_miceOver:null;
    document.onselectstart=Mc_disable;
    //document.oncontextmenu=Mc_disable;
    document.onmousedown=Mc_miceDown;
    document.onmouseup=Mc_miceUp;
    document.ondblclick=Mc_dblClick;
    document.ondragstart=Mc_disable;
    Mc=new Mc_Object;
    return Mc
}

var autoStartTmr=null,delay=8000;

function Mc_getMiceXY_IE(evnt){
    Mc.x=event.clientX;
    Mc.y=event.clientY;
    mcY=event.y;
    mcX=event.x;      
    if(Mc.dragging){
        Mc.dragging.moveTo(Mc.x-Mc.offX,Mc.y-Mc.offY);
        return false
    }else if(Mc.resizing){
        Mc.resizing.resizeTo((Mc.x-Mc.offX)+Mc.oWidth,(Mc.y-Mc.offY)+Mc.oHeight,true);
        return false
      }else if(Mc.scrolling){
          Mc.scrolling.scrollTo(Mc.sbInit+(Mc.y-Mc.offY))
            return false;
      }
    return true
}
function Mc_getMiceXY_NS(event){
    Mc.x=event.clientX;
    Mc.y=event.clientY;
    if(Mc.dragging){
        Mc.dragging.moveTo(Mc.x-Mc.offX,Mc.y-Mc.offY);
        return true
    }else if(Mc.resizing){
        Mc.resizing.resizeTo((Mc.x-Mc.offX)+Mc.oWidth,(Mc.y-Mc.offY)+Mc.oHeight,true);
        return true
      }else if(Mc.scrolling){
            Mc.scrolling.scrollTo(Mc.sbInit+(Mc.y-Mc.offY))
      }
    return true
}
function Mc_miceDown(evnt){
    Mc.mD=true;
    windows.use_M_W=false;
    var w=Mc_getWindow();
    if(w&&!windows.onabutton){
        if(w.z<windows.z)
            w.moveToTop();          
        if(!w.stretched&&Mc.y<(w.y+windows.skinner.titleBarHeight)){
            if(windows.skinner.oLines){
                w.hide();
                windows.command="dragging";
                windows.outlines.resizeTo(w.w,w.h);
                windows.outlines.moveTo(w.x,w.y);
                windows.outlines.storage=w;
                w=windows.outlines
             }
             Mc.dragging=w;
             Mc.offX=Mc.x-w.x;
             Mc.offY=Mc.y-w.y;
             return false
         }else if(!w.stretched&&Mc.y>(w.y+(w.h-windows.skinner.rHeight))&&Mc.x>(w.x+(w.w-windows.skinner.rWidth))){
             if(windows.skinner.oLines){
                 windows.command="resizing";
                 w.hide();
                 windows.outlines.resizeTo(w.w,w.h);
                 windows.outlines.moveTo(w.x,w.y);
                 windows.outlines.storage=w;
                 w=windows.outlines
             }
             Mc.resizing=w;
             Mc.oWidth=w.w;
             Mc.oHeight=w.h;
             Mc.offX=Mc.x;
             Mc.offY=Mc.y;
             return false
             }else if(w.sbSub>0&&!windows.onabutton&&(Mc.x-w.x)>(w.w-w.sbSub)&&(Mc.y-w.y)>windows.skinner.titleBarHeight&&(Mc.y-w.y)<(windows.skinner.titleBarHeight+w.sbPos+w.sph+18)){
                   Mc.scrolling=w;
                   Mc.sbInit=w.sbPos;
                   Mc.offY=Mc.y;
                   return false;
            }
      }
    return true
}
function Mc_miceUp(evnt){
    Mc.mD=false;
    Mc.scrolling=false;
    if(Mc.dragging){
        if(windows.skinner.oLines){
            var w=windows.outlines.storage;
            w.moveTo(Mc.dragging.x,Mc.dragging.y);
            Mc.dragging.hide()
        }
        Mc.dragging=false;
        return false
    }
    if(Mc.resizing){
        if(windows.skinner.oLines){
            var w=windows.outlines.storage;
            w.moveTo(Mc.resizing.x,Mc.resizing.y);
            w.resizeTo(Mc.resizing.w,Mc.resizing.h);
            Mc.resizing.hide()
        }
        Mc.resizing=false;
        return false
    }
    if(iDrag){
       iDrag=false;
       clearTimeout(drgTmr);
       temp=null;
       tmr=100;
       doResize()
    }
    return true
}
function Mc_dblClick(){
    if(windows.busy)
       return
    windows.busy=true;
    var w=Mc_getWindow();
    if(w&&!windows.onabutton&&Mc.y<(w.y+windows.skinner.titleBarHeight)){
        w.restore();
        return false
    }
    return true
}
function Mc_Object(){
      this.x=0;
      this.y=0;
      this.offX=0;
      this.offY=0;
      this.oWidth=0;
      this.oHeight=0;
      this.sbInit=0;
      this.mD=false;
      this.sbInit=0;
      this.dragging=false;
      this.resizing=false;
      this.scrolling=false;
      this.gotIt=null
}
function Mc_getWindow(){
      Mc.gotIt=null;
      var i=0,z=-1000,w=null;
      for(i=0;i<windows.windowList.length;i++){
             w=windows.windowList[i];
             if((!(Mc.x<w.x||Mc.x>w.x+w.w||Mc.y<w.y||Mc.y>w.y+w.vsbl))&&(w.z>z)){
                      z=w.z;
                      Mc.gotIt=w
             }
       }
       return Mc.gotIt
}
function Mc_disable(){
    return false
}
var temp,cMove=0,
     x=[],y=[],X=[],Y=[],
     multyp=.1,rtn=.15,
     drgTmr=null,autoSpeed=5,auto=false
;

function Mc_drag(i){
    if(windows.busy)
        return
    var j,k,n=0;
    temp=[];
    for(j=i;j<windows.icons.length;j++)
         if(windows.icons[j].visible)
             temp[n++]=windows.icons[j].sty
    for(k=(i-1);k>-1;k--)
         if(windows.icons[k].visible)
             temp[n++]=windows.icons[k].sty
    for(var m=0;m<temp.length;m++){
             X[m]=mcX;Y[m]=mcY;
             x[m]=mcX;y[m]=mcY;
    }
    iDrag=true;
    Mc_onDrag()
}
function Mc_rotate(){
   document.getElementById("orient").style.top="15px";
   cMove-=rtn;
   var xDiff=windows.desktopWidth,r=windows.radius/4;
   for (var i=0;i<temp.length;i++){
                temp[i].top=y[i]+r*Math.sin((cMove+i*1)/1.75)*1.4;
                temp[i].left=(x[i]+r*Math.cos((cMove+i*1)/1.75)*4)-(xDiff/2);
      }
}
function Mc_onDrag(){
    clearTimeout(drgTmr)
    if(!iDrag)
        return
    if(auto)
          getAutoXY()        
      y[0]=Math.round(Y[0]+=((mcY)-Y[0])*multyp);
      x[0]=Math.round(X[0]+=((mcX)-X[0])*multyp);
      for (var i=1;i<temp.length;i++){
            y[i]=Math.round(Y[i]+=(y[i-1]-Y[i])*multyp);
            x[i]=Math.round(X[i]+=(x[i-1]-X[i])*multyp);

      }      
      Mc_rotate();
      drgTmr=setTimeout('Mc_onDrag()',autoSpeed)
}

var autoCalc=null,q=0;

function AutoMove(){
    auto=true;
    autoSpeed=5;
    getAutoXY();
    autoRadiusTmr=setTimeout('AutoRadius()',5);
    Mc_drag(0);
    clearTimeout(autoStartTmr)
}
function getAutoXY(){
       mcX=Math.sin(3.14159*q/180)*windows.radius+(windows.desktopWidth/2);
       mcY=Math.cos(3.14159*q/180)*windows.radius+(windows.desktopHeight/2)-65;
       q++;
       (q==361)?q=0:0
}
   
var autoRadiusTmr=null,whattodo=0;

function AutoRadius(){
    clearTimeout(autoRadiusTmr);
    (windows.radius>225)?whattodo=1:0;
    (windows.radius<(-225))?whattodo=0:0;
    (whattodo==0)?windows.radius+=5:windows.radius-=5;
    autoRadiusTmr=setTimeout('AutoRadius()',5)
    //autoRadiusTmr=setTimeout('moveIcons()',5)
}    
           
var tipOn=false,ocount=0,tmr2=null,tmr3=null,waitTmr=null,speed=10;

function changeImage(num){
    document.getElementById("spot").innerHTML='<img src="images/skins/0/desc/'+num+'.gif">\n';
}
function gen(txt) {
   if(Mc.dragging||Mc.resizing||iDrag||windows.busy)
       return
    clearTimeout(tmr2);
    clearTimeout(waitTmr);
    if(tipOn&&ie){
       //txtOb.innerHTML=txt;
       //divOb.style.width="160px";  
       fader();
    }else if(!tipOn&&ie){
       clearTimeout(tmr2);
       //unfader();
       //divOb.style.left="-2000px";
       document.getElementById("desc").style.filter="alpha(opacity=0)";
       ocount=0;
    }
}
function fader(){
    clearTimeout(tmr2);
    if(ocount==100){ocount=0;
        //setTimeout("unfader()",1500);
        return
    }
    //document.getElementById("divOb").style.filter="alpha(opacity="+ocount+")";
    document.getElementById("desc").style.filter="alpha(opacity="+ocount+")";
    ocount+=10;
    tmr2=setTimeout("fader()",speed)
}
function unfader(){
    clearTimeout(tmr3);
    if(ocount==0){
       ocount=100;
       return
    }
    //document.getElementById("divOb").style.filter="alpha(opacity="+ocount+")";
    document.getElementById("desc").style.filter="alpha(opacity="+ocount+")";
    ocount-=10;
    tmr3=setTimeout("unfader()",speed)
}
function micemove(evnt){
   /*if(!ie||Mc.dragging||Mc.resizing||iDrag||windows.busy){
       clearTimeout(tmr2);
       document.getElementById("divOb").style.left="-200px";
       return
   }
   var pT=event.clientY+divOb.offsetHeight,
       pL=event.clientX-divOb.offsetWidth;

   if(tipOn){
       if((document.body.offsetWidth-event.clientX)<((divOb.offsetWidth*2)-125)){
           pL=event.clientX-divOb.offsetWidth;
           divOb.style.pixelLeft=pL+4+document.body.scrollLeft;
       }else{
           divOb.style.pixelLeft=event.clientX+document.body.scrollLeft;
       }
       if((document.body.offsetHeight-event.clientY)<((divOb.offsetHeight*2)-12)){
           pT=event.clientY-divOb.offsetHeight-5;
           divOb.style.pixelTop=pT+document.body.scrollTop;
       }else{
           pT=event.clientY+3;
           divOb.style.pixelTop=pT+15+document.body.scrollTop;
       }
   }*/
}
function waiter(){
    //divOb.style.left="-2000px";
    document.getElementById("desc").style.filter="alpha(opacity=0)";
    clearTimeout(tmr2);
    clearTimeout(waitTmr);
}

</script>
<style>

IMG{border:#000000 0px}

</style>

</head>
<body leftmargin="1" topmargin="0" bgcolor="#ffffff" style="overflow:hidden" onclick="Javascript:clearTimeout(tmr2)">

<div id="desc" style="position:absolute;width:100px;height:55px;top:289px;left:528px;text-align:center">
<table cellpadding="0" cellspacing="0" border="0" width="100%" height="100%"><tr><td align="center" valign="middle">
<div id="spot">&nbsp;</div>
</td></tr></table>
</div>

<div id="pBar" style="position:absolute;top:100;left:100;height:500px;font-family:Trebuchet MS,tahoma,Helvetica;font-size:13px;font-weight:700;color:#555555"></div>
<div id="pimgholder" style="position:absolute;top:130px;left:100px;width:450px;height:28px;border:#222222 1px groove;padding-top:1px;padding-bottom:1px"><img name="pimage" src="images/other/bg.gif" height="28" width="1" align="left"></div>
<div id="pd1" style="position:absolute;top:135px;left:320px;font-family:Trebuchet MS,tahoma,Helvetica;font-size:13px;font-weight:700;color:#999999;padding:4px">0 %</div>
<script language=Javascript>

function writePage(){
   document.write('<div id="logoOb" style="position:absolute;overflow:visible;border:#000000 0px solid"></div>');
   document.write('<div id="bgOb" style="position:absolute;width:100%;height:100%;overflow:visible;border:#000000 0px solid;filter:alpha(opacity=80)"></div>');  
   document.write('<div id="orient" style="position:absolute;left:-1000px"></div>');
   document.write('<div id="divOb" style="position:absolute;border:#000000 0px solid;width:24px;left:-100px;z-index:999999"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td align="left" valign="top"><img src="images/skins/0/misc/0.gif"></td><td width="100%" valign="top" bgcolor="#000000"><img src="images/skins/0/misc/1.gif" width="100%" height="6"></td><td align="left" valign="top"><img src="images/skins/0/misc/2.gif"></td></tr><tr><td align="left" width=12" background="images/skins/0/misc/7.gif"></td><td width="100%" valign="top" style="color:#999999;font-family:tahoma;font-size:11px" bgcolor="#000000">');
   document.write('<div id="txtOb">');
   document.write('&nbsp;');
   document.write('</div>');
   document.write('</td><td align="left" width=12 background="images/skins/0/misc/3.gif"></td></tr><tr><td align="left" valign="bottom"><IMG src="images/skins/0/misc/6.gif"></td><td width="100%" valign="bottom" bgcolor="#000000"><IMG height=6 src="images/skins/0/misc/5.gif" width="100%"></td><td align="left" valign="top"><IMG src="images/skins/0/misc/4.gif"></td></tr></table></div>');
   //document.write('<embed hidden="true" src="music/caplomat.wav" autostart="true" loop="true" volume="0">');
}

var images=new Array();
 
images[0]=new Image();
images[0].src="images/skins/0/icons/0.gif";
images[1]=new Image();
images[1].src="images/skins/0/icons/1.gif";
images[2]=new Image();
images[2].src="images/skins/0/icons/2.gif";
images[3]=new Image();
images[3].src="images/skins/0/icons/3.gif";
images[4]=new Image();
images[4].src="images/skins/0/icons/4.gif";
images[5]=new Image();
images[5].src="images/skins/0/icons/5.gif";
images[6]=new Image();
images[6].src="images/skins/0/icons/6.gif";
images[7]=new Image();
images[7].src="images/skins/0/icons/7.gif";
images[8]=new Image();
images[8].src="images/skins/0/icons/8.gif";
images[9]=new Image();
images[9].src="images/skins/0/icons/9.gif";
images[10]=new Image();
images[10].src="images/skins/0/icons/10.gif";
images[11]=new Image();
images[11].src="images/skins/0/misc/aquarium.jpg";
images[12]=new Image();
images[12].src="images/skins/0/misc/0.gif";
images[13]=new Image();
images[13].src="images/skins/0/misc/1.gif";
images[14]=new Image();
images[14].src="images/skins/0/misc/2.gif";
images[15]=new Image();
images[15].src="images/skins/0/misc/3.gif";
images[16]=new Image();
images[16].src="images/skins/0/misc/4.gif";
images[17]=new Image();
images[17].src="images/skins/0/misc/5.gif";
images[18]=new Image();
images[18].src="images/skins/0/misc/6.gif";
images[19]=new Image();
images[19].src="images/skins/0/misc/7.gif";
images[20]=new Image();
images[20].src="images/skins/0/0.gif";
images[21]=new Image();
images[21].src="images/skins/0/1.gif";
images[22]=new Image();
images[22].src="images/skins/0/2.gif";
images[23]=new Image();
images[23].src="images/skins/0/3.gif";
images[24]=new Image();
images[24].src="images/skins/0/4.gif";
images[25]=new Image();
images[25].src="images/skins/0/5.gif";
images[26]=new Image();
images[26].src="images/skins/0/6.gif";
images[27]=new Image();
images[27].src="images/skins/0/7.gif";
images[28]=new Image();
images[28].src="images/skins/0/8.gif";
images[29]=new Image();
images[29].src="images/skins/0/misc/leftbottom.gif";
images[30]=new Image();
images[30].src="images/skins/0/misc/lefttop.gif";
images[31]=new Image();
images[31].src="images/skins/0/misc/righttop.gif";
images[32]=new Image();
images[32].src="images/skins/0/misc/rightbottom.gif";
images[33]=new Image();
images[33].src="members/maia/5.jpg";
images[34]=new Image();
images[34].src="members/maia/6.jpg";
images[35]=new Image();
images[35].src="members/maia/7.jpg";
images[36]=new Image();
images[36].src="members/maia/8.jpg";
images[37]=new Image();
images[37].src="members/maia/9.jpg";
images[38]=new Image();
images[38].src="members/maia/10.jpg";
images[39]=new Image();
images[39].src="members/maia/11.jpg";

var i=0,tmr=null,dot="&nbsp;.",l=0,add=0,perc=0,padd=0;

function c(){
    add=450/images.length;
    document.getElementById("pimgholder").style.width=(add*images.length)+"px";
    perc=100/images.length;
    padd=perc;
    l=add;
}

function loadImages(){
   clearTimeout(tmr);
   if(images[i].complete){
       dot+=".";
       l+=add;
       document.images["pimage"].width=l;
       document.getElementById("pd1").innerHTML=(Math.round(padd+=perc))+" %";
       document.getElementById("pBar").innerHTML="Loading:&nbsp;&nbsp;"+images[i].src+"</font>";
       i++;
       if(i==images.length){
           document.getElementById("pBar").style.left=document.getElementById("pimgholder").style.left=document.getElementById("pd1").style.left="-2000px";
           
           Init();          
           return
       }
   }  
   tmr=setTimeout('loadImages()',10)
}  
writePage();
c();
loadImages();
</script>


</body></html>
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 13

Author Comment

by:davidlars99
ID: 11980621
nooo... I mean source from

>  http://www.frozendev.com/temp/protect/loader.asp
0
 
LVL 13

Author Comment

by:davidlars99
ID: 11980626
in that file there is a souce code wich generates following...


                WARNING!

HTML SOURCE CODE IS PROTECTED!
Anyway, you are welcome to break it...

                Good Luck!
0
 
LVL 46

Expert Comment

by:fritz_the_blank
ID: 11980654
I doubt that will be possible as loader most likely points to something else? I would have to dig through my temporary internet files to find that. Let's see what pops up.

FtB
0
 
LVL 13

Author Comment

by:davidlars99
ID: 11980664
everything is generated using response.write and I don't think any browser would cache anything
0
 
LVL 46

Expert Comment

by:fritz_the_blank
ID: 11980671
Even if it is generated using response.write, the resulting text needs to be streamed to the browser before it can be rendered.

FtB
0
 
LVL 13

Author Comment

by:davidlars99
ID: 11980675
unless you use some kind of sniffer I don't think it's possible.. :)
0
 
LVL 13

Author Comment

by:davidlars99
ID: 11980679
with this code it prevents everything from caching

<%
Response.Expires = 0
Response.Expiresabsolute = Now() - 1
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache"
%>
0
 
LVL 13

Author Comment

by:davidlars99
ID: 11980683
except images though
0
 
LVL 46

Expert Comment

by:fritz_the_blank
ID: 11980719
I think that just forces a new page to load when the user revisits the page, no?

0
 
LVL 13

Author Comment

by:davidlars99
ID: 11980737
that too...
but the main reaoson that I'm using it is that, it stops pages from being stored in temp folder
0
 
LVL 46

Expert Comment

by:fritz_the_blank
ID: 11980776
This is what I get for main.asp:

<HTML>

<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>

</HEAD>
<BODY>
<html>
<head>
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">

<script language="Javascript">

function add_(html){
   document.body.innerHTML=html;
   top.helper.location="cencel.asp";
}
function load(){
    top.loader.location="loader.asp"
}
</script>
</head>

<body onload="load()" style="background-color:#000000;color:#555555" oncontextmenu="return false">

</body>

</html>

<hr>
</BODY>
</HTML>

For cencel.asp

<HTML>

<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>

</HEAD>
<BODY>
<html><head><META HTTP-EQUIV=PRAGMA CONTENT=NO-CACHE></head><body></body></html>
<hr>
</BODY>
</HTML>

and for loader.asp:

<HTML>

<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>

</HEAD>
<BODY>

<hr>
</BODY>
</HTML>


Nothing too exiciting just yet....

FtB
0
 
LVL 13

Author Comment

by:davidlars99
ID: 11980800
this is what is in loader.asp




<%
Response.Expires = 0
Response.Expiresabsolute = Now() - 1
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache"
if InStr(Request.ServerVariables("HTTP_USER_AGENT"),"IE")=0 and InStr(Request.ServerVariables("HTTP_USER_AGENT"),"Opera")=0 and InStr(Request.ServerVariables("HTTP_USER_AGENT"),"Gecko")=0 and InStr(Request.ServerVariables("HTTP_USER_AGENT"),"Netscape")=0 and InStr(Request.ServerVariables("HTTP_USER_AGENT"),"Konqueror")=0 then
   response.end
end if
response.write("<html><head><META HTTP-EQUIV=PRAGMA CONTENT=NO-CACHE><noscript><meta HTTP-EQUIV=refresh CONTENT=0;url=cencel.asp></noscript></head><body style=overflow:hidden>")
response.write(Request.ServerVariables("HTTP_USER_AGENT"))
set oBrowser = Server.CreateObject("MSWC.BrowserType")
%>
<%
if session("frames")="OK" then
if InStr(Request.ServerVariables("HTTP_USER_AGENT"),"IE")<>0 then
  if oBrowser.JavaScript=True then
response.write("<script language=Javascript>if(window.frames.length==0)self.location=" & "'" & "about:blank" & "'" & ";")
response.write("var html=" & "'" & "<br><br<br><br><center><table><tr><td align=center valign=middle><img src=eyes.gif></td></tr></table>\n" & "'" & ";")
response.write("html+=" & "'" & "<br><br><h1 style=font-family:impact>" & "WARNING!<div></div><br><br>HTML SOURCE CODE IS PROTECTED!<br>Anyway, you are welcome to break it...&nbsp;<br><br><font size=6>Good Luck!</font></h4></center>\n" & "';")
response.write("try{top.content.add_(html);self.location=" & "'" & "about:blank" & "'" & ";}catch(e){}</script>")
  end if
else
response.write("<script language=Javascript>if(window.frames.length==0)self.location=" & "'" & "about:blank" & "'" & ";")
'response.write("<script language=Javascript>")
response.write("var html=" & "'" & "<br><br<br><br><center><table><tr><td align=center valign=middle><img src=eyes.gif></td></tr></table>\n" & "'" & ";")
response.write("html+=" & "'" & "<br><br><h1 style=font-family:impact>" & "WARNING!<div></div><br><br>HTML SOURCE CODE IS PROTECTED!<br>Anyway, you are welcome to break it...&nbsp;<br><br><font size=6>Good Luck!</font></h4></center>\n" & "';")
response.write("try{top.content.add_(html);self.location=" & "'" & "about:blank" & "'" & ";}catch(e){}</script>")
end if
session("frames")=null
else
response.write("<h2>The page source is protected, you cannot see it!</h2")
end if
response.write("</body></html>")
%>
0
 
LVL 46

Expert Comment

by:fritz_the_blank
ID: 11980849
Well, I am going to have to bail on this for now. This does a pretty good job of hiding the code.

Now, it has to be a file on the client at some point for the browser to display it, but I am not sure how to find that exactly.

FtB
0
 
LVL 13

Author Comment

by:davidlars99
ID: 11980871
sorry I didn't get this...

> it has to be a file on the client at some point for the browser to display it
0
 
LVL 13

Author Comment

by:davidlars99
ID: 11980883
I don't know how correct I might be, but I tryied browser sniffers and it still works...
0
 
LVL 46

Expert Comment

by:fritz_the_blank
ID: 11980895
Okay, so your server-side code puts together a page. Once that is done, the web server serves the file to the client-machine--as a file--that is rendered in the browser.

In other words, if no file is sent to the client machine, there is nothing to show in the browser.

So, the trick with your code then, is to determine the name of the file or files that is/are stored, at least temporarily, on the client machine.

FtB
0
 
LVL 13

Author Comment

by:davidlars99
ID: 11980961
if the whole page is generated by "response.write", it doesn't let browser to store any temp files/data on the client's machene (except for the images), at least as far as I know and what I've experienced up to this far..
0
 
LVL 46

Expert Comment

by:fritz_the_blank
ID: 11980996
The response.write still creates the string that is saved to the file that is served to the browser, however.

FtB
0
 
LVL 46

Expert Comment

by:fritz_the_blank
ID: 11981006
Don't forget, the page is rendered on the client machine, not the server, so it is not like the browser is displaying values from a memory variable; the browser displays a file.

FtB
0
 
LVL 13

Author Comment

by:davidlars99
ID: 11981017
I could not find it, so I don't really know. If you do please tell me where... :)
0
 
LVL 46

Expert Comment

by:fritz_the_blank
ID: 11981082
Please visit this link:

http://www.fairfieldconsulting.com/david.asp

The code is as follows:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>

<BODY>
<%
Response.write("Hello, David!")
%>
</BODY>
</HTML>

Now if you look on your computer, you should be able to find this somewhere in your temporary internet files.

FtB
0
 
LVL 13

Author Comment

by:davidlars99
ID: 11981166
yes in that case it is gonna be stored in temp folder, but if you put entire html page in "response.write" then no... I just tryied it once again
0
 
LVL 46

Expert Comment

by:fritz_the_blank
ID: 11981346
I've updated the link with this code, and I don't see a difference:

<%
strHTML = "<HTML>" & VBCrLf  &_
      "<HEAD>"& VBCrLf  &_
      "<TITLE> New Document </TITLE>"& VBCrLf  &_
      "</HEAD>" & VBCrLf  &_
      "<BODY>" & VBCrLf  &_
      "Hello David!" & VBCrLf  &_
      "</BODY>" & VBCrLf  &_
      "</HTML>"
Response.write(strHTML)
%>


FtB
0
 
LVL 13

Author Comment

by:davidlars99
ID: 11981390
usualy all pages from browsers go to
 Tools > Internet Options > Settings > View Files
I don't see there any of files which have been generated like so

<%
Response.Expires = 0
Response.Expiresabsolute = Now() - 1
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache"

strHTML = "<HTML>" & VBCrLf  &_
     "<HEAD><META HTTP-EQUIV=PRAGMA CONTENT=NO-CACHE>" & VBCrLf  &_
     "<TITLE> New Document </TITLE>" & VBCrLf  &_
     "</HEAD>" & VBCrLf  &_
     "<BODY>" & VBCrLf  &_
     "Hello David!" & VBCrLf  &_
     "</BODY>" & VBCrLf  &_
     "</HTML>"
Response.write(strHTML)
%>

try this, see what hapens... :)

0
 
LVL 46

Expert Comment

by:fritz_the_blank
ID: 11981420
I sorted by last checked and David.asp is at the top of the list updated 3:47 local time.

FtB
0
 
LVL 13

Author Comment

by:davidlars99
ID: 11981437
did you find any pages from http://www.frozendev.com/temp/protect/default.asp in the same folder..?
0
 
LVL 46

Expert Comment

by:fritz_the_blank
ID: 11981455
Just in case, I saved the file as david2.asp and performed the same test. Sure enough, it is in there.

I am not finding a file for  http://www.frozendev.com/temp/protect/default.asp

FtB
0
 
LVL 13

Author Comment

by:davidlars99
ID: 11981518
then I think that means I managed to hide the source... :)
0
 
LVL 46

Expert Comment

by:fritz_the_blank
ID: 11981523
At least for now!!!

If I have time, I am going to hunt further.

FtB
0
 
LVL 13

Author Comment

by:davidlars99
ID: 11981651
ok, I look forward to it... :)
0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

I have helped a lot of people on EE with their coding sources and have enjoyed near about every minute of it. Sometimes it can get a little tedious but it is always a challenge and the one thing that I always say is:  The Exchange of information …
I would like to start this tip/trick by saying Thank You, to all who said that this could not be done, as it forced me to make sure that it could be accomplished. :) To start, I want to make sure everyone understands the importance of utilizing p…
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now