smesh/doc/salome/gui/SMESH/whcsh_home.htm
2005-11-28 09:57:47 +00:00

600 lines
12 KiB
HTML
Executable File

<html>
<script language="javascript1.2" src="whver.js"></script>
<script language="javascript1.2" src="whmozemu.js"></script>
<script language="javascript1.2" src="whutils.js"></script>
<script language="javascript1.2">
<!--
if(gbIE4||gbNav61)
{
document.write("<body></body>");
}
else
{
document.write("<frameset rows=\"100%,*\"><frame name=\"data_frm\" src=\"about:blank\"><frame name=\"dumb_frm\" src=\"about:blank\"></frameset>");
}
var gCSHFileName="whcshdata.htm";
var gHomePage="smesh.htm";
var gaProj=new Array();
gaProj[0]=new Object();
gaProj[0].sProjPath=_replaceSlash(_getPath(document.location.href));
gaProj[0].nLoadState=0;
var gCurrent=0;
var gsTopicURL="";
var gnCurProj=0;
var gnCommand=-1;
var CMD_SHOWTOC=1;
var CMD_SHOWINDEX=2;
var CMD_SHOWSEARCH=3;
var CMD_SHOWGLOSSARY=4;
var CMD_SHOWNONE=0;
var RHWO_LOCATION=0x01; /*need location bar?*/
var RHWO_MENUBAR=0x02; /*need menubar?*/
var RHWO_RESIZABLE=0x04; /*resizable window?*/
var RHWO_TOOLBAR=0x08; /*need toolbar?*/
var RHWO_STATUS=0x10; /*need statusbar?*/
var RHWO_SCROLLBARS=0x20; /*need scrollbars?*/
var gsStr="";
var gnId=-1;
var gsWindow="";
var gsJava="false";
var gbUseStr=false;
var gbURLReady=false;
var goWnd=new Object();
goWnd.sName="whCshDefault";
goWnd.nBOptions=RHWO_RESIZABLE|RHWO_SCROLLBARS;
goWnd.sBLeft="49%";
goWnd.sBTop="0";
goWnd.sBWidth="49%";
goWnd.sBHeight="49%";
goWnd.nPanes=1;
var goFullWnd=new Object();
goFullWnd.sName="whDefault";
goFullWnd.nBOptions=RHWO_RESIZABLE|RHWO_SCROLLBARS;
goFullWnd.sBLeft="20%";
goFullWnd.sBTop="0";
goFullWnd.sBWidth="79%";
goFullWnd.sBHeight="79%";
goFullWnd.nPanes=2;
var goNewWnd=null;
var gbLoadWnd=false;
var gsURL="";
function showCSH(sParam)
{
//id=
//str=
//url=
//cmd=
//with the format #<a=xxx>>b=xxx>>c=xxx...
parseParam(sParam);
SwitchURL();
}
function IsWndReady()
{
if(gaProj[0].nLoadState==0)
{
var sCshFile=_getFullPath(gaProj[0].sProjPath,gCSHFileName);
gaProj[0].nLoadState=1;
setTimeout("loadFail("+0+");",3000);
loadDataCsh(sCshFile);
gbLoadWnd=true;
return false;
}
else
return true;
}
function SwitchURL()
{
if(gbURLReady)
{
var sURL="";
var oWnd=null;
if(gsTopicURL)
{
sURL=_getPath(document.location.href)+gHomePage+"#"+gsTopicURL;
oWnd=goWnd;
}
else
{
if(gnCommand!=-1)
sURL=_getPath(document.location.href)+gHomePage+"#>>cmd="+gnCommand;
else
sURL=_getPath(document.location.href)+gHomePage;
oWnd=goFullWnd;
}
if(gsWindow)
{
if(!IsWndReady())
return false;
if(gaProj[gnCurProj].aWnd)
{
var aWnd=gaProj[gnCurProj].aWnd;
var bFound=false;
for(var i=0;i<aWnd.length;i++)
{
if(aWnd[i].sName.toLowerCase()==gsWindow.toLowerCase())
{
oWnd=aWnd[i];
bFound=true;
break;
}
}
if(!bFound&&gnCurProj!=0)
{
var aWnd=gaProj[0].aWnd;
for(var j=0;j<aWnd.length;j++)
{
if(aWnd[j].sName.toLowerCase()==gsWindow.toLowerCase())
{
oWnd=aWnd[j];
break;
}
}
}
}
}
if(sURL&&oWnd)
{
strURLOpt="";
if(oWnd.sCaption)
strURLOpt+=">>cap="+oWnd.sCaption;
if(oWnd.nPanes==1)
strURLOpt+=">>pan="+oWnd.nPanes;
else if(oWnd.nPanes==2)
{
strURLOpt+=">>pan="+oWnd.nPanes;
if(oWnd.nPOptions)
strURLOpt+=">>pot="+oWnd.nPOptions;
if(oWnd.sPButtons)
strURLOpt+=">>pbs="+oWnd.sPButtons;
if(oWnd.sPDefBtn)
strURLOpt+=">>pdb="+oWnd.sPDefBtn;
}
if(strURLOpt)
{
if(sURL.indexOf("#")==-1)
sURL+="#";
sURL+=strURLOpt;
}
if(gsJava=="false")
{
var strOpt=getBrowserOptionString(oWnd);
var sNewName=convertWindowName(oWnd.sName);
if(gbNav4)
{
if (gbNav6)
{
gsURL = sURL;
goNewWnd=window.open("about:blank",sNewName,strOpt);
setTimeout("postWindowNSOpen();",100);
}
else
{
window.open("about:blank",sNewName,strOpt);
var oNewWnd=window.open(sURL,sNewName);
window.close();
oNewWnd.focus();
}
}
else
{
if(gbIE5)
{
window.open("about:blank",sNewName,strOpt);
goNewWnd=window.open(sURL,sNewName);
}
else
{
gsURL = sURL; // IE4 had hard time to handle bookmark.
goNewWnd=window.open("about:blank",sNewName,strOpt);
}
setTimeout("postWindowOpen();",100);
}
}
else
document.location=sURL;
}
}
}
function convertWindowName(strName)
{
var strNewName = strName;
var strResultName = "";
var re=new RegExp("_","g");
strNewName = strName.replace(re,"__");
for (var i=0;i<strNewName.length;i++)
if (!(strNewName[i] == '_' ||
(strNewName[i] <= '9' && strNewName[i] >= '0') ||
(strNewName[i] <= 'z' && strNewName[i] >= 'a') ||
(strNewName[i] <= 'Z' && strNewName[i] >= 'A')))
{
strResultName += "_" + strNewName.charCodeAt(i);
}
else
strResultName += strNewName[i];
return strResultName;
}
function postWindowNSOpen()
{
if(goNewWnd)
{
if (gsURL)
goNewWnd.document.location.href=gsURL;
window.close();
goNewWnd.focus();
}
}
function postWindowOpen()
{
if(goNewWnd)
{
if (gsURL&&!gbIE5&&gbIE4)
goNewWnd.document.location.href=gsURL;
goNewWnd.focus();
}
}
function parseParam(sParam)
{
if(sParam)
{
var nBPos=0;
do
{
var nPos=sParam.indexOf(">>",nBPos);
if(nPos!=-1)
{
if(nPos>0)
{
var sPart=sParam.substring(nBPos,nPos);
parsePart(sPart);
}
nBPos=nPos+2;
}
else
{
var sPart=sParam.substring(nBPos);
parsePart(sPart);
break;
}
}while(nBPos<sParam.length);
}
}
function parsePart(sPart)
{
if(sPart.toLowerCase().indexOf("id=")==0)
{
fetchURLById(sPart.substring(3));
gbURLReady=false;
}
else if(sPart.toLowerCase().indexOf("str=")==0)
{
fetchURLByStr(sPart.substring(4));
gbURLReady=false;
}
else if(sPart.toLowerCase().indexOf("url=")==0)
{
gsTopicURL=sPart.substring(4);
gbURLReady=true;
}
else if(sPart.toLowerCase().indexOf("cmd=")==0)
{
var sCmd=sPart.substring(4);
if(sCmd.toLowerCase()=="toc")
{
gnCommand=CMD_SHOWTOC;
}
else if(sCmd.toLowerCase()=="idx")
{
gnCommand=CMD_SHOWINDEX;
}
else if(sCmd.toLowerCase()=="fts")
{
gnCommand=CMD_SHOWSEARCH;
}
else if(sCmd.toLowerCase()=="glo")
{
gnCommand=CMD_SHOWGLOSSARY;
}
else if(sCmd.toLowerCase()=="none")
{
gnCommand=CMD_SHOWNONE;
}
gbURLReady=true;
}
else if(sPart.toLowerCase().indexOf("wnd=")==0)
{
gsWindow=_browserStringToText(sPart.substring(4));
}
else if(sPart.toLowerCase().indexOf("java=")==0)
{
gsJava=sPart.substring(5);
}
}
function fetchURLById(sId)
{
var nId=parseInt(sId);
gsTopicURL="";
fetchURL("",nId,false);
}
function fetchURLByStr(sStr)
{
gsTopicURL="";
fetchURL(sStr,0,true);
}
function fetchURL(sStr,nId,bUseStr)
{
var bNeedLoad=false;
var bFound=false;
for(var i=0;i<gaProj.length;i++)
{
if(gaProj[i].nLoadState==3)
{
if(gaProj[i].aCsh)
{
for(var j=0;j<gaProj[i].aCsh.length;j++)
{
var sTopicURL="";
if(bUseStr)
{
if(gaProj[i].aCsh[j].strAliasId.toLowerCase()==sStr.toLowerCase())
sTopicURL=gaProj[i].aCsh[j].strUrl;
}
else
{
if(gaProj[i].aCsh[j].nTopicNum==nId)
sTopicURL=gaProj[i].aCsh[j].strUrl;
}
if(sTopicURL)
{
if(i!=0)
{
gnCurProj=i;
if(gaProj[i].sProjPath.indexOf(gaProj[0].sProjPath)==0)
{
var sRelPath=gaProj[i].sProjPath.substring(gaProj[0].sProjPath.length);
gsTopicURL=sRelPath+sTopicURL;
}
else
gsTopicURL=gaProj[i].sProjPath+sTopicURL;
}
else
gsTopicURL=sTopicURL;
bFound=true;
break;
}
}
}
}
else if(gaProj[i].nLoadState==0)
{
gsStr=sStr;
gnId=nId;
gbUseStr=bUseStr;
var sCshFile=_getFullPath(gaProj[i].sProjPath,gCSHFileName);
gaProj[i].nLoadState=1;
setTimeout("loadFail("+i+");",3000);
loadDataCsh(sCshFile);
bNeedLoad=true;
}
if(bFound||bNeedLoad)
break;
}
if(!bNeedLoad)
{
gbURLReady=true;
SwitchURL();
}
}
function loadDataCsh(sFile)
{
if(gbIE4||gbNav61)
loadData(sFile);
else
{
window.frames[0].location=sFile;
}
}
function loadFail(nProj)
{
if(gaProj[nProj].nLoadState==1)
{
gaProj[nProj].nLoadState=2;
if(!gbLoadWnd)
fetchURL(gsStr,gnId,gbUseStr);
else
SwitchURL();
}
}
function putCshData(strProj,aCsh,aWnd,aRmtProj)
{
if(strProj)
{
strProj=_replaceSlash(strProj);
if(strProj.lastIndexOf("/")!=strProj.length-1)
strProj+="/";
for(var i=0;i<gaProj.length;i++)
{
if(gaProj[i].sProjPath)
{
if(isSamePath(gaProj[i].sProjPath,strProj))
{
gaProj[i].nLoadState=3;
gaProj[i].aCsh=aCsh;
gaProj[i].aWnd=aWnd;
break;
}
}
}
if(aRmtProj&&aRmtProj.length)
{
for(var j=0;j<aRmtProj.length;j++)
{
var strRPath=_getFullPath(strProj,aRmtProj[j]);
var bFound=false;
for (var k=0;k<gaProj.length;k++)
{
if(gaProj[k].sProjPath)
{
if(isSamePath(gaProj[k].sProjPath,strRPath))
{
bFound=true;
break;
}
}
}
if(!bFound)
{
var len=gaProj.length;
gaProj[len]=new Object();
gaProj[len].sProjPath=strRPath;
gaProj[len].nLoadState=0;
}
}
}
if(!gbLoadWnd)
fetchURL(gsStr,gnId,gbUseStr);
else
SwitchURL();
}
}
function isSamePath(strPath1,strPath2)
{
return strPath1.toLowerCase()==strPath2.toLowerCase();
}
function getRelHomePage(strLocation)
{
var strCurPPath=_getPath(strLocation);
var strOriPPath=_getPath(getHomePage());
var strRelPath=_getRelativeFileName(strOriPPath,strCurPPath);
var strURL=getHomePage()+"#"+strRelPath;
return strURL;
}
function getHomePage()
{
var strHomePage;
var strTmp=location.toString();
var nPos=strTmp.indexOf("#");
if(nPos!=-1)
{
strHomePage=strTmp.substring(0,nPos);
}
else
{
strHomePage=strTmp;
}
return strHomePage;
}
function getBrowserOptionString(oWnd)
{
var strOpts="";
if(oWnd.bUseDefault)
return strOpts;
if(oWnd.nBOptions&RHWO_LOCATION)
strOpts+="location=yes";
else
strOpts+="location=no";
if(oWnd.nBOptions&RHWO_TOOLBAR)
strOpts+=",toolbar=yes";
else
strOpts+=",toolbar=no";
if(oWnd.nBOptions&RHWO_MENUBAR)
strOpts+=",menubar=yes";
else
strOpts+=",menubar=no";
if(oWnd.nBOptions&RHWO_STATUS)
strOpts+=",status=yes";
else
strOpts+=",status=no";
if(oWnd.nBOptions&RHWO_SCROLLBARS)
strOpts+=",scrollbars=yes";
else
strOpts+=",scrollbars=no";
if(oWnd.nBOptions&RHWO_RESIZABLE)
strOpts+=",resizable=yes";
else
strOpts+=",resizable=no";
if(oWnd.sBTop)
{
var nTop=getSValue(oWnd.sBTop,screen.height);
strOpts+=",top="+nTop;
strOpts+=",screenY="+nTop;
}
if(oWnd.sBLeft)
{
var nLeft=getSValue(oWnd.sBLeft,screen.width);
strOpts+=",left="+nLeft;
strOpts+=",screenX="+nLeft;
}
if(oWnd.sBWidth)
{
var nWidth=getSValue(oWnd.sBWidth,screen.width);
strOpts+=",width="+nWidth;
strOpts+=",outerWidth="+nWidth;
}
if(oWnd.sBHeight)
{
var nHeight=getSValue(oWnd.sBHeight,screen.height);
strOpts+=",height="+nHeight;
strOpts+=",outerHeight="+nHeight;
}
return strOpts;
}
function getSValue(sValue,nLength)
{
var nValue=0;
var nPos=sValue.indexOf("%");
if(nPos!=-1)
{
if(nPos>0)
{
var nPart=parseInt(sValue.substring(0,nPos));
nValue=nLength*nPart/100;
}
}
else
nValue=parseInt(sValue);
return nValue;
}
window.onload=window_OnLoad;
function window_OnLoad()
{
if(document.location.hash.length>0)
{
showCSH(document.location.hash.substring(1));
}
if(gsJava=="false")
window.moveTo(screen.width,screen.height);
}
//-->
</script>
</html>