WO2007143003A2 - A web-based experience editor in a recursive browser system and uses thereof - Google Patents
A web-based experience editor in a recursive browser system and uses thereof Download PDFInfo
- Publication number
- WO2007143003A2 WO2007143003A2 PCT/US2007/012795 US2007012795W WO2007143003A2 WO 2007143003 A2 WO2007143003 A2 WO 2007143003A2 US 2007012795 W US2007012795 W US 2007012795W WO 2007143003 A2 WO2007143003 A2 WO 2007143003A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- browser
- recursive
- user
- span
- window
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
Definitions
- the present invention relates generally to the fields of computer technology and web browser systems. More specifically, the present invention provides a system and method to integrate media and to manipulate content within a recursive browser environment.
- the Internet is arguably the most important innovation of the computer generation. To browse or surf the World Wide Web (the Web) is the fastest and most popular method of obtaining information today. However, current web browsers are primarily read only with little interactive capability. The Internet is "go to and visit" and not part of the experience. A user's experience on the Internet is a temporal series of URLs visited. Furthermore, group collaboration on the Web requires user authentication and is generally site specific. In addition most users are interested only in snippets of a web site they visit.
- a user must open a word processing, drawing or similar application or access another website to utilize or build on these snippets, if desired, or, for example, to create a document or image de novo.
- Browsers lack the ability to integrate different types of media according to user preferences. Selective access is missing. A live web is not close to being a reality.
- the present invention is deficient in systems and methods to display, manipulate and/or create content in a recursive browser environment.
- the present invention fulfills this long-standing need and desire in the art.
- the present invention is directed to a recursive browser system.
- the recursive /browser system comprises a recursive web browser configured to recursively display one or more web pages in a browser window thereof, means for interactively editing content within the browser window and means for storing the edited content on a computer storage medium.
- the recursive browser system further comprises means for launching a user-requested action.
- the present invention also is directed to a recursive web browser.
- the recursive web browser comprises a browser window configured to recursively display one or more web pages, means for launching a user-requested action, means for interactively editing content within the browser window, and means for storing the edited content on a computer storage medium.
- the present invention is directed further to a user-implemented method for interactively manipulating content within a recursive browser environment.
- the user- implemented method comprises dragging and dropping one or more web objects as one or more zBoxes or zFrames within a browser window of the recursive web browser described herein thereby interactively manipulating the content within the recursive browser environment.
- the user-implemented method further comprises positioning the zBox(es) or zFrame(s) at any user-determined location within the browser window.
- the object(s) is a hyperlink or URL dropped as a zBox and the method further comprises retrieving and displaying the web page(s) associated with the hyperlink(s) or URL(s) in one or more zFrames.
- the object(s) is text or an image and the method further comprises displaying the object(s) in a zFrame within the browser window.
- the object(s) is an action(s) dropped in a zBox and the method further comprises implementing the action(s) within the browser window.
- the method further comprises saving one or more of the object(s) as one or more files, zBlocks, or emails or to other computer-storage media.
- the entirety of the objects is saved as a retrievable user-interactive zPage.
- the present invention is directed further still to a user-implemented method for interactively manipulating content within a recursive browser environment.
- the method comprises opening one or more zFramesj zBoxes, zCubes or a combination thereof within a browser window of the recursive web browser described herein and adding one or more user-created objects therein, thereby interactively manipulating the content within the recursive browser environment.
- the user-implemented method further comprises positioning the zFrames at any user-determined location within the browser window.
- the user-implemented method further comprises saving one * or more of the object(s) as one or more files, zBlocks, or emails or other media or the entirety of the objects as a retrievable user-interactive zPage.
- Figure IA is a flowchart illustrating the life cycle of a zBox.
- Figure IB is a flowchart illustrating the double-click, drag and drop functions of the zEditor in creating a zBox.
- Figure 1C is a flowchart illustrating the lifecycle of a zPage.
- Figure 2A depicts a zBrowser window displaying content for assorted media.
- Figure 2B depicts a zBrowser window illustrating an example of postioning of content and zBoxes within the zBrowser page.
- a recursive browser system comprising a recursive web browser configured to recursively display one or more web pages in a browser window thereof; means for interactively editing content within the browser window; and means for storing the edited content on a computer storage medium.
- the method comprises means for launching a user- requested action.
- the means for launching a user-requested address action may be an action bar within a recursive browser window or may be an address bar located in a browser platform associated with the recursive web browser which triggers the action bar.
- the means for editing content comprises a process for dragging and dropping one or more web objects or html code into the browser window and transforming the object(s) or html code into one or more zBoxes or zCubes; or a process for creating an object within said browser window; or a combination thereof.
- the editing means may further comprise a process for displaying the dropped object(s) within the zBox(es) or zFrames.
- the editing means may further comprise a process for user-implemented positioning of the said zBox(es) or zFrame(s) within the browser window.
- the editing means may further comprise a process for separately saving one or more of said zBox(es) or zFrames containing said dropped object(s) as a file, a zBlock or an email or other media.
- the editing means may further comprise a process for saving the entirety of said said zBox(es) or zFrame(s) within the browser window as a retrievable user-interactive zPage.
- the dropped object may be a hyperlink or URL, script, an action or a locator contained within a zBox in said browser window.
- the dropped object may be a text or an image displayed within a zBox or zFrame in the browser window.
- user-created object may be a text or a drawing or handwritten content in VML, VRML or SVG.
- a recursive web browser comprising a browser window configured to recursively display one or more web pages therewithin; means for launching a user-requested address or action; means for interactively editing content within the browser window; and means for storing the edited content to a computer storage medium.
- the means for launching a user- requested address action may be an action bar within a recursive browser window or may be an address bar located in a browser platform associated with the recursive web browser which triggers the action bar.
- the means and processes for editing content and the dropped objects and user-created objects are as described supra.
- a user- implemented method for interactively manipulating content within a recursive browser environment comprising dragging and dropping one or more web objects as one or more zBoxes or zFrames within a browser window of the recursive web browser described herein thereby interactively manipulating the content within the recursive browser environment.
- the method comprises positioning the zBoxes at any user-determined location within the browser window.
- the user-implemented method comprises saving one or more of the zBoxes or zFrames* as one or more files, emails or other media or the entirety of the zBoxes and zFrames as a retrievable user-interactive zPage.
- the object(s) is a hyperlink or URL dropped as a zBox, the method further comprising retrieving and displaying the web page(s) associated with the hyperlink(s) or URL(s) in one or more zFrames.
- the object(s) is a text or an image, the method further comprising displaying the object(s) in a zFrame within the browser window.
- the object(s) is an action dropped in a zBox, the method further comprising implementing the action(s) within the browser window or within the zFrames therein.
- An action may be an event model, a script model, drag-drop formatting, or style formatting.
- a user- implemented method for interactively manipulating content within a recursive browser environment comprising opening one or more zFrames, zBoxes, zCubes or a combination thereof within a browser window of the recursive web browser described herein; and adding one or more user-created objects therein, thereby interactively manipulating the content within the recursive browser environment.
- the recursive browser environment may comprise zCubes.
- the method comprises positioning the zFrames at any user-determined location within the browser window.
- the method comprises saving one or more of said zFrames as one or more files, zBlocks or emails or to other computer storage media or saving the entirety of the objects as a retrievable user-interactive zPage.
- the recursive browser environment may comprise zCubes.
- the object(s) may be a text, a drawing or handwritten content using VML, VRML or SVG.
- the term “a” or “an” may mean one or more.
- the words “a” or “an” when used in conjunction with the word “comprising”, the words “a” or “an” may mean one or more than one.
- another or “other” may mean at least a second or more of the same or different claim element of components thereof.
- the term(s) "recursive browser” or “zBrowser” refers to a browser that uses existing browsers to enhance their functionality and to provide 3 dimensional multipart full browser functionality to improve browser experience
- the term “Action Bar” refers to a targeting bar, which may be the conventional URL bar, that can also be triggered from html or :href calls invoking, e.g., one or more web actions, web sites, web services, or action triggers.
- zBox refers to a part of a zPage that contains an html object(s), for example, but not limited to, images, scripts, Shockwave, and a recursive browser. zBoxes are copiable and individually and selectively formattable with drag-drop of style text.
- zPage or "zBrowser page” refers to a container of zBoxes that encompasses logic to display, edit, move, browse, and run scripts within the recursive browser. Parts of a zPage are copyable and individually and selectively formattable with drag-drop of style text.
- a zPage can be controlled by Zebra, i.e. zBox algebra, and is composed from data (that could be stored separately) with logic coming from the zCube server files.
- zPage can recieve and conduct Jumping-Jax (dynamically obtained server based javascripts), effecting dynamic page maintainance.
- the term(s) "zEditor” refers to a zPage that is a page, either local or on the web, primarily composed of HTML, which allows parts of the page, e.g., z- boxes, which may be shared by groups of users, groups of z-boxes, window layer, or background-layer, to be selected, edited, or dragged-and-dropped, to effect creation of new objects upon demand, by dragging-dropping, double-clicking, or pasting, based on instructions of the incoming HTML or script of diverse media, to receive events from and into individual zBoxes and routing them, to contain zBrowser(s), VML, SVG or other handdrawings/handwritings with pointers to remote or local z-boxes or with individually addressable z-boxes or controls.
- the term(s) "zCube” refers to a collection of zBoxes contained within a zPage. A zCube may be
- zCube world refers to one or more sets of zCube collections displayed under one context to the user.
- a zCube world may contain zPages.
- the present invention provides a system and method for displaying and manipulating content within a recursive browser environment.
- the system and method disclosed herein utilize zCubes which is a thin web-browser based envrionment without add-ins or plug-ins such as Shockwave.
- a zCubes environment allows a user to integrate a wide variety of media, to manage content and to save and to store content.
- the zCubes environment has the capabilities of a fully functional browser, a web content editor, photo management, multi-media integration, handwriting, JS scripting, QJax for client driven calls, and Jumping Jax for server driven calls.
- the zCubes provide support for containing any activeX enabled application, for example, but not limited to, PDF, Excel or Visio.
- zCubes enables infinite page size in the X-, y- and z-directions, linked zBoxes and addressable zBoxes. Also, zCubes supports zBox Algebra or Zebra. This enables arithmetical operations, i.e., adding, subtracting, multiplying and dividing, to be performed along with actions such as, but not limited to, merging, swapping, deleting, and copying. Both zBox and zCubes can be script driven or implemented with drag/drop processes.
- the recursive browser comprises an Action Bar within the zBrowser window or page as an entry point for any retrievable URL or executable action trigger within the zBrowser environment.
- the zBrowser is enabled to recursively display one or more web sites and/or web pages within the browser window.
- a user may browse or interact within a displayed web site and/or display any web page linked to a URL within the browser window or retrieve any content by utilizing the action bar, by utilizing a conventional URL bar or by opening a zBox.
- the present invention also provides a web-based experience editor or zEditor.
- a zEditor allows a user to retrieve and display web content including, inter alia, web pages, images, and video and audio files, to create user content, interact with other users in real time via chat, blogs, forums, newsgroups, or email all within a single browser window.
- the zEditor provides a "drag and drop” functionality such that any object may be double-clicked on and dropped into the browser page and transformed to a zBox or zCube.
- the object may be an action, such as, but not limited to, an event model, a script model, drag-drop formatting, or style formatting, such as, for example, shapes and colors.
- a zCube has the ability to raise events, e.g., a message not to close itself and is configured to provide this information to another zCube.
- zBlock i.e., zBlock
- user-added information to one zBlock will automatically update the others.
- a link within a web page or the URL for the web page itself may be dragged to the browser page. Clicking on the link or URL in the zBox or zCube will open the associated web page in another zFrame which is contained within a zNote within the browser window.
- any object within a web page for example, but not limited to, a text or an image may be dragged to the browser page and displayed within.
- a zBox or zFrame The zBoxes and zFrames are positionable anywhere within the browser window at any user-determined x-, y- or -z layer.
- zBoxes and zFrames are positionable in time because of scripting thus effectively implementing 4D pages.
- An edited zBrowser page may be saved in html format, without most of the logic that enables the zBrowser to behave as it does, i.e., the data may be stored separately from the logic of the web page.
- the zPage or one or more zBoxes or zFrames contained within the zPage may be saved or stored on a local harddisk or local machine, to the Internet on a server, or as an email or to any computer storage medium known and standard in the art.
- the zBoxes or zFrames may be saved as zBlocks especially when shared concurrently with other users.
- the edited zBrowser page can be sent to others as pure text.
- the edited zBrowser page may be saved onto a removable media, for example, but not limited to, a jumpdrive.
- saved files can be retrieved by opening them and making them live by passing the contents, either automatically or manually, to a suitable web site to rearchive the fully functional z-behavior.
- the links on the z-Edited page or zPage when clicked, retrieves and displays the URL in a frame contained within the page, effecting an in-frame or zFrame experience.
- zEditor functionality allows the user to create their own web content.
- a user may create his own web content, i.e., ,a user has the ability to draw an object or to compose in a manner similar to handwriting using, for example, the mouse.
- the created object may be saved as a webpage or zPage for reading using a browser.
- 2-D and 3-D objects may be created and subsequently moved and/or resized using zCubes without help from activeX or other embedded media.
- This technology may use VML, VRML or SVG.
- the created webcontent such as fully handwritten pages or hand-created drawings, can interact with zbox concepts, can be saved to a server, local file, or as email.
- Each zBox independently may be sized, layered, positioned, formatted, zoomed or unzoomed, scripted, copied, swapped, deleted and extracted.
- a zBox may comprise any arbitrary HTMl, applications, recursively included zBoxes or browser components. Also, a zBox can wrap any arbitrary HTML.
- a zBox also may represent actions, triggers or locators performable on the Web.
- One or more zBoxes float and function within a zCubes world.
- a zCube world is contained within a recursive web page, i.e., a zPage or document, i.e., a zDoc. It is contemplated that each zPage could be later considered as a hierarchy of zCubes world due to the recursive containment within the browser window. Both a zPage or zDoc may be saved to any media.
- a zCubes world is stored and retrieved therefrom.
- Both zBoxes and zPages have a lifecycle where each are at least able to be created, edited, saved, retrieved or deleted, or, if applicable, submitted to a server, e.g., a zCubes server.
- a zPage may comprise one or more zBoxes or other multi-media objects.
- Figure IA is a flowchart of the zBox lifecycle generally depicting the lifecycle steps of creating a zBox 100, editing the zBox 110, deleting the zBox 120 or saving the zBox 130, and retrieving the zBox 140. More specifically, in step 100 a zBox is created from, but not limited to, script, double-click/drag/drop of URL actions, copy/paste of content, user-input, actions/triggers from other zBoxes, or through zAlgebra. In step 110 the zBox is edited using the same actions, triggers, content, etc. used to create the zBox. Next a user can choose at step 115 to delete the zBox at step 120 where the lifecycle ends. If desired, a new zBox may be created after ending the lifecycle at step 120 or as discussed below, a user may retrieve a previously saved zBox at step 140.
- a zBox is created from, but not limited to, script, double-click/drag/drop of URL
- a user can choose at step 115 to save, at step 130, the zBox with the page in which it is contained or as separate blocks on the server.
- a saving process can be implemented using any of the actions, triggers, content, etc. used to create and edit the zBox. These same actions, triggers, content, etc. are used to retrieve a saved zBox step 140 either with the page in which it is contained or as separate blocks from the server. It should be noted that a user may start the lifecycle process by retrieving a previously saved zBox or zPage comprising the same and either editing the retrived zBox or creating one or more other zBoxes.
- Figure IB is a more detailed flowchart of step 100 in Fig. IA and illustrates the click, drag and drop function of the zEditor to create zBoxes and/or to display content with the recursive browser or zBrowser page.
- a user drops/pastes/enters the text of the content which may be, but not.limited to, a URL, text or script, to trigger an action into the zCubes base layer.
- zCubes logic interprets the type of the dropped content or call. This allows the wrapper HTML code or the action script to be created at step 103.
- step 104 a zBox is created and, in step 105, the HTML code created at step 103 is inserted into the document object model (DOM) or into the created zBox, as required, or, alternatively, steps to run the script are created.
- the process may be repeated in step 106.
- zBox creation can be implemented by double clicking on the empty space, i.e., the clipboard content is processed as if it is a drag-and-drop, by dragging and dropping any arbitrary javascript/html/url or other text, or by dragging and dropping from the action bar.
- a user can implement zBox creation by clicking on a hyperlink that launches a javascript to BrowseTo a link, from the action bar or from another webpage or application to achieve the same.
- zCubes logic extracts the text portion of the data that is dropped. For example, if the user drags and drops a link into the browser, the dropped information getTransferData as a 'text' call and returns the appropriate URL.
- the webpage will detect the URL link that is dropped.
- zCubes detect the type of the URL by intelligent parsing and form html tags that can be used to display or activate the content of the link.
- Every content type that is supported has a similar template.
- Each dropped content is converted into a zBox with wrapper code in HTML that can then be rendered or acted on by the browser capabilities.
- a support application e.g., SHOCKWAVE or PDF or WORD or other applications, for a link of type .html
- HTML is composed using, for example, TEXTBOX, DIV or IFRAME, to wrap the content and display it safely.
- zCubes will try to interpret the type of text and the appropriate display or action for it. For example, if the text is a potential script, then zCubes will try to execute it or form enough html tags to keep it potentially executable.
- Figure 1C is a flowchart of the zPage lifecycle generally depicting the lifecycle steps of creating a zPage 150, editing the zPage 160, deleting the zPage 170 or saving the zPage 175, retrieving the zPage 180, and submitting the zPage 190. More specifically, in step 150 a zPage is created from a new instance of a website page displayed within a recursive browser window. In step 160 the zPage is edited using a variety of applicable zCubes. Next a user can choose to delete the zPage at step 170 where the lifecycle ends. If desired, a new zPage may be created after ending the lifecycle at step 170 or as discussed below, a user may retrieve a previously saved zPage at step 180.
- a user can choose to save, at step 175, a zPage in pure DHTML as one page or several components comprising the entirety.
- the zPage or components thereof may be saved to, but not limited to, a local drive, a jump drive, to the Internet, to email or to other persistent media. Only data is generally saved and not the zCube full logic.
- a saved zPage is retrieved in its entirety or as separate blocks from the server on which it is stored and contains primarily data. Once retrieved, in step 190 the zPage is submitted to a zCubes server to attach the logic of the zCubes world to the basic data in the zPages.
- a user may start the lifecycle process by retrieving and submitting a previously saved zPage and either editing the retrived zPage or creating one or more other zPages within the browser window or from the submitted zPage.
- Figures 2A-2B illustrate the different types of content that can be interactively and simultaneously displayed within a recursive browser or zBrowser page.
- Figure 2A is a zBrowser 200 showing a zBrowser window 210 including an Action Bar 220 and a zBrowser page 230.
- the page 230 comprises an array of four zNotes 240 displayed as zFrames containing an article 240a, a movie 240b, live chat or messaging 240c, and the start of a research paper 24Od.
- a zNote contains a zFrame which contains a web page or other content.
- a user may use the displayed contents as research tools to create the research paper 24Od.
- the ability to chat or message while perusing the article and/or the movie provides an additional resource.
- Figure 2B demonstrates that zFrames and zBoxes displayed within a zBrowser page 230 can be positioned in any user-determined X-, y- and z- orientation to suit the immediate requirements of the user. As shown frames 240e,f and zBoxes 250a,b,c are positioned such that the user may immediately access the content. The zFrames 240g-j may be brought forward within the page, as needed by clicking thereon.
- Tables 1, 2 and 3 provide the source code for the recursive browser system, the zCubes or zBox and handwriting, respectively. Portions of the source code for zCubes and handwriting are identical and not repeated in each Table.
- zCubes includes the code for the recursive browser system and handwriting includes the code for the recursive browser system and for zCubes.
- the Tables contain an indicator where these particular source codes should be inserted.
- AddContentCodeAndExpand(' ⁇ % ThisServer%>/../Gallery/mypopup.ntm');blur(); ">Gallery ⁇ /span>
- SearchBoxFrame.location SomeLocation; RaiseObject(SearchBoxSpace);
- Table 2 zCubes Insert Recursive Browser Code /* HOMELOG_AE.JS */ var lastX; var lastY; var Adj ustX; var AdjustY; function onmousedownHandlerMover()
- AdjustY SomeObjectToMove.style.pixelTop-(document.body.scrollTop -t-window.event.y-oy);
- window.status ("+SomeObjectToMove.style.pixelLeft+”:"+SomeObjectToM ove. style.pixelTop+”:"+SomeObjectToMove.style.pixelWidth+”:"+SomeObjectToMove.st yle. pixelHeight + ")";
- sourceElementControl sourceElementControl.parentElement
- varNewContent window.clipboardData.getData('Text')+ document.all (SomeSpaceContent).innerHTML; returnC window. clipboardData.setData('Text',NewContent)); ⁇ function ZContentSet(ZBoxId, SomeContent)
- DrawFlag IDrawFlag; if (DrawFlag)
- AIlShapeImages[i].className "SelectionlmageDisabled”; ⁇ ⁇ ⁇ function MapSelectionlmagelndexToElementCImagelndex)
- DrawTarget. style, background "peachpuff”
- DrawTarget. style, position “absolute”
- DrawTarget.style.left “Opx”
- DrawTarget.style.top “Opx”;
- DrawTargetinsertAdjacentHTMLC'BeforeEnd VMLCode With Wrapper
- DrawTargetonmousemove GenerateRegularShape
- DrawTargetonmouseup EndDraw; break; case "roundrect”: NumberOfVMLSahpes-H-;
- DrawTargetonmousemove GenerateRegularShape;
- DrawTargetonmouseup EndDraw; break; case "polyline”: if (IPoIyLineDrawingFlag)
- DrawTarget.onmousemove GenerateRegularShape;
- DrawTarget.onmouseiip EndDraw; break; t default: // Draw freeline by default
- DrawTargetinsertAdjacentHTMLC'BeforeEnd VMLCodeWith Wrapper
- DrawTarget.onmousemove GenerateFreeShape
- DrawTarget.onmouseup EndDraw; break; ⁇
- DebugDiv.innerText DrawTarget.outerHTML; ⁇
- VMLCode VMLCode.replace('e"> ⁇ /v:shape> ⁇ eventclientX+7eventclientY+ l e"> ⁇ /v:shape>');
- VMLCode VMLCode. replace('e">', x + V + y + ' eV);
- VMLShapeElementouterHTML VMLCode;
- VMLShape.outerHTML VMLShape.outerHTML.replace('e"x/v:shape> t , event. clientX +', ! +event.clientY +'e"x/v:shape>');
- VMLShapeElement.style.width width + "px”
- VMLShapeElementstyle.height height + "px”
- ShapeName parent.document.forms[0].ShapeSelection.options[parent.document. forms[0].ShapeSelection.selectedIndex].text;
- var x event.clientX - DrawTarget.style.pixelLeft
- var y eventcIientY - DrawTargetstyle.pixelTop
- varVMLShapeElemenl document.getElementById("VMLShape"+NumberOfVML Shapes)
- var VMLCode VMLShapeElementouterHTML; if (AddPointJFlag) // Add a point to the last ⁇
- VMLCode VMLCode.replace('e">', x + V + y + ' e">');
- NewVMLCode + 'path 1 ;
- NewVMLCode + CoordinatesArray [i] + ','; ⁇
- NewVMLCode + x + ',' + y + ' e"x/v:shape>'; // If everything is expected
- VMLCode NewVMLCode
- VMLShapeElementouterHTML VMLCode
- DrawTargetonmousemove null;
- DrawTargetonmouseup null;
- document, body.ondblclick null; // reassign onmousedown to its initial event handler once poline drawing is finished
- DrawTargetonmousedown canvas_pnmousedown; /*
- DrawTargetclassName "garni”; AttachEvents(DrawTarget) ;
- ShapeName parent.document.forms[0].ShapeSelection.options[parent.document. forms[0].ShapeSelection.selectedIndex],text;
- DebugDiv.innerText ShapeName
- ShapeName "freeline”; // default shape ⁇
- DrawTargetonmousedown canvas_onmousedown; GenerateVMLCode(ShapeName); ⁇ ⁇ function StartEditMode(ThisVMLShapeWapper)
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
- Digital Computer Display Output (AREA)
Abstract
Provided herein is a recursive browser system including a recursive web browser and means for interactively editing content within the recursive browser window using a thin web-browser based envrionment or zCubes. Also provided are user-implemented methods of interactively manipulating content within a recursive browser environment.
Description
A WEB-BASED EXPERIENCE EDITOR IN A RECURSIVE BROWSER SYSTEM AND USES THEREOF
BACKGROUND OF THE INVENTION
Field of the Invention
The present invention relates generally to the fields of computer technology and web browser systems. More specifically, the present invention provides a system and method to integrate media and to manipulate content within a recursive browser environment.
Description of the Related Art
The Internet is arguably the most important innovation of the computer generation. To browse or surf the World Wide Web (the Web) is the fastest and most popular method of obtaining information today. However, current web browsers are primarily read only with little interactive capability. The Internet is "go to and visit" and not part of the experience. A user's experience on the Internet is a temporal series of URLs visited. Furthermore, group collaboration on the Web requires user authentication and is generally site specific. In addition most users are interested only in snippets of a web site they visit.
However, a user must open a word processing, drawing or similar application or access another website to utilize or build on these snippets, if desired, or, for example, to create a document or image de novo. Browsers lack the ability to integrate different types of media according to user preferences. Selective access is missing. A live web is not close to being a reality.
Creating a new browser to address these problems is not an easy solution. It is estimated that a new browser release can cost from $10 million to $100 million. In
addition the development and release processes are extremely time consuming. As such, one solution is to use the browser itself to expand browser functionalities.
Thus, there is a significant need in the art for improvements in the area of user-driven experiences. Specifically, the present invention is deficient in systems and methods to display, manipulate and/or create content in a recursive browser environment. The present invention fulfills this long-standing need and desire in the art.
SUMMARY OF THE INVENTION
The present invention is directed to a recursive browser system. The recursive /browser system comprises a recursive web browser configured to recursively display one or more web pages in a browser window thereof, means for interactively editing content within the browser window and means for storing the edited content on a computer storage medium. In a related invention the recursive browser system further comprises means for launching a user-requested action.
The present invention also is directed to a recursive web browser. The recursive web browser comprises a browser window configured to recursively display one or more web pages, means for launching a user-requested action, means for interactively editing content within the browser window, and means for storing the edited content on a computer storage medium.
The present invention is directed further to a user-implemented method for interactively manipulating content within a recursive browser environment. The user- implemented method comprises dragging and dropping one or more web objects as one or more zBoxes or zFrames within a browser window of the recursive web browser described herein thereby interactively manipulating the content within the recursive browser environment.
In a related invention the user-implemented method further comprises positioning the zBox(es) or zFrame(s) at any user-determined location within the browser window. In another related invention the object(s) is a hyperlink or URL dropped as a zBox and the method further comprises retrieving and displaying the web page(s) associated with the hyperlink(s) or URL(s) in one or more zFrames. In yet another related invention the object(s) is text or an image and the method further comprises displaying the object(s) in a zFrame within the browser window. In yet another related invention the
object(s) is an action(s) dropped in a zBox and the method further comprises implementing the action(s) within the browser window. In still another related invention the method further comprises saving one or more of the object(s) as one or more files, zBlocks, or emails or to other computer-storage media. Alternatively, the entirety of the objects is saved as a retrievable user-interactive zPage.
The present invention is directed further still to a user-implemented method for interactively manipulating content within a recursive browser environment. The method comprises opening one or more zFramesj zBoxes, zCubes or a combination thereof within a browser window of the recursive web browser described herein and adding one or more user-created objects therein, thereby interactively manipulating the content within the recursive browser environment. In a related invention the user-implemented method further comprises positioning the zFrames at any user-determined location within the browser window. In another related invention the user-implemented method further comprises saving one* or more of the object(s) as one or more files, zBlocks, or emails or other media or the entirety of the objects as a retrievable user-interactive zPage.
Other and further aspects, features and advantages of the present invention will be apparent from the following description of the presently preferred embodiments of the invention. These embodiments are given for the purpose of disclosure.
BRIEF DESCRIPTION OF THE DRAWINGS
So that the matter in which the above-recited features, advantages and objects of the invention, as well as others which will become clear, are attained and can be understood in detail, more particular descriptions of the invention briefly summarized above may be had by reference to certain embodiments thereof which are illustrated in the appended drawings. These drawings form a part of the specification. It is to be noted, however, that the appended drawings illustrate preferred embodiments of the invention and therefore are not to be considered limiting in their scope.
Figure IA is a flowchart illustrating the life cycle of a zBox. Figure IB is a flowchart illustrating the double-click, drag and drop functions of the zEditor in creating a zBox.
Figure 1C is a flowchart illustrating the lifecycle of a zPage.
Figure 2A depicts a zBrowser window displaying content for assorted media.
Figure 2B depicts a zBrowser window illustrating an example of postioning of content and zBoxes within the zBrowser page.
DETAILED DESCRIPTION OF THE INVENTION
In one embodiment of the present invention there is provided a recursive browser system, comprising a recursive web browser configured to recursively display one or more web pages in a browser window thereof; means for interactively editing content within the browser window; and means for storing the edited content on a computer storage medium. Further to this embodiment the method comprises means for launching a user- requested action. In this further embodiment the means for launching a user-requested address action may be an action bar within a recursive browser window or may be an address bar located in a browser platform associated with the recursive web browser which triggers the action bar.
In these embodiments the means for editing content comprises a process for dragging and dropping one or more web objects or html code into the browser window and transforming the object(s) or html code into one or more zBoxes or zCubes; or a process for creating an object within said browser window; or a combination thereof. Also, the editing means may further comprise a process for displaying the dropped object(s) within the zBox(es) or zFrames. In addition the editing means may further comprise a process for user-implemented positioning of the said zBox(es) or zFrame(s) within the browser window. Furthermore, the editing means may further comprise a process for separately saving one or more of said zBox(es) or zFrames containing said dropped object(s) as a file, a zBlock or an email or other media. Alternatively, the editing means may further comprise a process for saving the entirety of said said zBox(es) or zFrame(s) within the browser window as a retrievable user-interactive zPage.
In all these embodiments the dropped object may be a hyperlink or URL, script, an action or a locator contained within a zBox in said browser window. Also, in all embodiments the dropped object may be a text or an image displayed within a zBox or zFrame in the browser window. In addition, user-created object may be a text or a drawing or handwritten content in VML, VRML or SVG.
In another embodiment of the present invention there is provided a recursive web browser, comprising a browser window configured to recursively display one or more web pages therewithin; means for launching a user-requested address or action; means for interactively editing content within the browser window; and means for storing the edited content to a computer storage medium. In this embodiment the means for launching a user- requested address action may be an action bar within a recursive browser window or may be an address bar located in a browser platform associated with the recursive web browser which triggers the action bar. In these embodments the means and processes for editing content and the dropped objects and user-created objects are as described supra. In yet another embodiment of the present invention there is provided a user- implemented method for interactively manipulating content within a recursive browser environment, comprising dragging and dropping one or more web objects as one or more zBoxes or zFrames within a browser window of the recursive web browser described herein thereby interactively manipulating the content within the recursive browser environment. Further to this embodiment the method comprises positioning the zBoxes at any user-determined location within the browser window. Further still to these embodiments the user-implemented method comprises saving one or more of the zBoxes or zFrames* as one or more files, emails or other media or the entirety of the zBoxes and zFrames as a retrievable user-interactive zPage. In an aspect of these embodiments the object(s) is a hyperlink or URL dropped as a zBox, the method further comprising retrieving and displaying the web page(s) associated with the hyperlink(s) or URL(s) in one or more zFrames. In another aspect the object(s) is a text or an image, the method further comprising displaying the object(s) in a zFrame within the browser window. In yet another aspect the object(s) is an action dropped in a zBox, the method further comprising implementing the action(s) within the browser window or within the zFrames therein. An action may be an event model, a script model, drag-drop formatting, or style formatting.
In still another embodiment of the present invention there is provided a user- implemented method for interactively manipulating content within a recursive browser environment, comprising opening one or more zFrames, zBoxes, zCubes or a combination thereof within a browser window of the recursive web browser described herein; and adding one or more user-created objects therein, thereby interactively manipulating the content within the recursive browser environment. In this embodiment the recursive browser environment may comprise zCubes.
Further to this embodiment the method comprises positioning the zFrames at any user-determined location within the browser window. Further yet in this embodiment the method comprises saving one or more of said zFrames as one or more files, zBlocks or emails or to other computer storage media or saving the entirety of the objects as a retrievable user-interactive zPage. In all these embodiments the recursive browser environment may comprise zCubes. Also, in all embodiments the object(s) may be a text, a drawing or handwritten content using VML, VRML or SVG.
As used herein, the term "a" or "an" may mean one or more. As used herein in the claim(s), when used in conjunction with the word "comprising", the words "a" or "an" may mean one or more than one. As used'herein "another" or "other" may mean at least a second or more of the same or different claim element of components thereof.
As used herein, the term(s) "recursive browser" or "zBrowser" refers to a browser that uses existing browsers to enhance their functionality and to provide 3 dimensional multipart full browser functionality to improve browser experience As used herein, the term "Action Bar" refers to a targeting bar, which may be the conventional URL bar, that can also be triggered from html or :href calls invoking, e.g., one or more web actions, web sites, web services, or action triggers.
As used herein, the term(s) "zBox" refers to a part of a zPage that contains an html object(s), for example, but not limited to, images, scripts, Shockwave, and a recursive browser. zBoxes are copiable and individually and selectively formattable with drag-drop of style text.
As used herein, the term(s) "zPage " or "zBrowser page" refers to a container of zBoxes that encompasses logic to display, edit, move, browse, and run scripts within the recursive browser. Parts of a zPage are copyable and individually and selectively formattable with drag-drop of style text. A zPage can be controlled by Zebra, i.e. zBox algebra, and is composed from data (that could be stored separately) with logic coming from the zCube server files. zPage can recieve and conduct Jumping-Jax (dynamically obtained server based javascripts), effecting dynamic page maintainance.
As used herein, the term(s) "zEditor" refers to a zPage that is a page, either local or on the web, primarily composed of HTML, which allows parts of the page, e.g., z- boxes, which may be shared by groups of users, groups of z-boxes, window layer, or background-layer, to be selected, edited, or dragged-and-dropped, to effect creation of new objects upon demand, by dragging-dropping, double-clicking, or pasting, based on
instructions of the incoming HTML or script of diverse media, to receive events from and into individual zBoxes and routing them, to contain zBrowser(s), VML, SVG or other handdrawings/handwritings with pointers to remote or local z-boxes or with individually addressable z-boxes or controls. As used herein, the term(s) "zCube" refers to a collection of zBoxes contained within a zPage. A zCube may be made from templates that are stored in a gallery.
As used herein, the term(s) "zCube world" refers to one or more sets of zCube collections displayed under one context to the user. A zCube world may contain zPages.
The present invention provides a system and method for displaying and manipulating content within a recursive browser environment. The system and method disclosed herein utilize zCubes which is a thin web-browser based envrionment without add-ins or plug-ins such as Shockwave. A zCubes environment allows a user to integrate a wide variety of media, to manage content and to save and to store content. Particularly, the zCubes environment has the capabilities of a fully functional browser, a web content editor, photo management, multi-media integration, handwriting, JS scripting, QJax for client driven calls, and Jumping Jax for server driven calls. The zCubes provide support for containing any activeX enabled application, for example, but not limited to, PDF, Excel or Visio.
Within a recursive browser window, zCubes enables infinite page size in the X-, y- and z-directions, linked zBoxes and addressable zBoxes. Also, zCubes supports zBox Algebra or Zebra. This enables arithmetical operations, i.e., adding, subtracting, multiplying and dividing, to be performed along with actions such as, but not limited to, merging, swapping, deleting, and copying. Both zBox and zCubes can be script driven or implemented with drag/drop processes.
The recursive browser comprises an Action Bar within the zBrowser window or page as an entry point for any retrievable URL or executable action trigger within the zBrowser environment. The zBrowser is enabled to recursively display one or more web sites and/or web pages within the browser window. Furthermore, a user may browse or interact within a displayed web site and/or display any web page linked to a URL within the browser window or retrieve any content by utilizing the action bar, by utilizing a conventional URL bar or by opening a zBox.
The present invention also provides a web-based experience editor or zEditor. Generally, a zEditor allows a user to retrieve and display web content including, inter alia, web pages, images, and video and audio files, to create user content, interact with other users in real time via chat, blogs, forums, newsgroups, or email all within a single browser window.
As such, the zEditor provides a "drag and drop" functionality such that any object may be double-clicked on and dropped into the browser page and transformed to a zBox or zCube. The object may be an action, such as, but not limited to, an event model, a script model, drag-drop formatting, or style formatting, such as, for example, shapes and colors. A zCube has the ability to raise events, e.g., a message not to close itself and is configured to provide this information to another zCube. In addition, should two or more users have the same zBox or zCube, i.e., zBlock, displayed concurrently, then user-added information to one zBlock will automatically update the others.
Also, a link within a web page or the URL for the web page itself may be dragged to the browser page. Clicking on the link or URL in the zBox or zCube will open the associated web page in another zFrame which is contained within a zNote within the browser window. Furthermore, any object within a web page, for example, but not limited to, a text or an image may be dragged to the browser page and displayed within. a zBox or zFrame. The zBoxes and zFrames are positionable anywhere within the browser window at any user-determined x-, y- or -z layer. In addition, it is contemplated that zBoxes and zFrames are positionable in time because of scripting thus effectively implementing 4D pages.
An edited zBrowser page may be saved in html format, without most of the logic that enables the zBrowser to behave as it does, i.e., the data may be stored separately from the logic of the web page. The zPage or one or more zBoxes or zFrames contained within the zPage may be saved or stored on a local harddisk or local machine, to the Internet on a server, or as an email or to any computer storage medium known and standard in the art. Also, the zBoxes or zFrames may be saved as zBlocks especially when shared concurrently with other users. The edited zBrowser page can be sent to others as pure text. Alternatively, the edited zBrowser page may be saved onto a removable media, for example, but not limited to, a jumpdrive. Also, saved files can be retrieved by opening them and making them live by passing the contents, either automatically or manually, to a suitable web site to
rearchive the fully functional z-behavior. The links on the z-Edited page or zPage, when clicked, retrieves and displays the URL in a frame contained within the page, effecting an in-frame or zFrame experience.
Furthermore, zEditor functionality allows the user to create their own web content. A user may create his own web content, i.e., ,a user has the ability to draw an object or to compose in a manner similar to handwriting using, for example, the mouse. The created object may be saved as a webpage or zPage for reading using a browser. 2-D and 3-D objects may be created and subsequently moved and/or resized using zCubes without help from activeX or other embedded media. This technology may use VML, VRML or SVG. The created webcontent, such as fully handwritten pages or hand-created drawings, can interact with zbox concepts, can be saved to a server, local file, or as email.
Each zBox independently may be sized, layered, positioned, formatted, zoomed or unzoomed, scripted, copied, swapped, deleted and extracted. A zBox may comprise any arbitrary HTMl, applications, recursively included zBoxes or browser components. Also, a zBox can wrap any arbitrary HTML. A zBox also may represent actions, triggers or locators performable on the Web.
One or more zBoxes float and function within a zCubes world. A zCube world is contained within a recursive web page, i.e., a zPage or document, i.e., a zDoc. It is contemplated that each zPage could be later considered as a hierarchy of zCubes world due to the recursive containment within the browser window. Both a zPage or zDoc may be saved to any media. A zCubes world is stored and retrieved therefrom. Both zBoxes and zPages have a lifecycle where each are at least able to be created, edited, saved, retrieved or deleted, or, if applicable, submitted to a server, e.g., a zCubes server. A zPage may comprise one or more zBoxes or other multi-media objects. As described herein, the invention provides a number of advantages and uses. Embodiments of the present invention are better described below with reference to the Figures, however, such description or reference is not meant to limit the present invention in any fashion. The embodiments and variations described in detail herein are to be interpreted by the appended claims and equivalents thereof. Figure IA is a flowchart of the zBox lifecycle generally depicting the lifecycle steps of creating a zBox 100, editing the zBox 110, deleting the zBox 120 or saving the zBox 130, and retrieving the zBox 140. More specifically, in step 100 a zBox is created from, but not limited to, script, double-click/drag/drop of URL actions, copy/paste
of content, user-input, actions/triggers from other zBoxes, or through zAlgebra. In step 110 the zBox is edited using the same actions, triggers, content, etc. used to create the zBox. Next a user can choose at step 115 to delete the zBox at step 120 where the lifecycle ends. If desired, a new zBox may be created after ending the lifecycle at step 120 or as discussed below, a user may retrieve a previously saved zBox at step 140.
Alternatively, a user can choose at step 115 to save, at step 130, the zBox with the page in which it is contained or as separate blocks on the server. A saving process can be implemented using any of the actions, triggers, content, etc. used to create and edit the zBox. These same actions, triggers, content, etc. are used to retrieve a saved zBox step 140 either with the page in which it is contained or as separate blocks from the server. It should be noted that a user may start the lifecycle process by retrieving a previously saved zBox or zPage comprising the same and either editing the retrived zBox or creating one or more other zBoxes.
With continued reference to Fig. IA, Figure IB is a more detailed flowchart of step 100 in Fig. IA and illustrates the click, drag and drop function of the zEditor to create zBoxes and/or to display content with the recursive browser or zBrowser page. In step 101 a user drops/pastes/enters the text of the content which may be, but not.limited to, a URL, text or script, to trigger an action into the zCubes base layer. At step 102 zCubes logic interprets the type of the dropped content or call. This allows the wrapper HTML code or the action script to be created at step 103. Subsequently, if required, in step 104 a zBox is created and, in step 105, the HTML code created at step 103 is inserted into the document object model (DOM) or into the created zBox, as required, or, alternatively, steps to run the script are created. The process may be repeated in step 106.
More specifically, zBox creation can be implemented by double clicking on the empty space, i.e., the clipboard content is processed as if it is a drag-and-drop, by dragging and dropping any arbitrary javascript/html/url or other text, or by dragging and dropping from the action bar. Also, a user can implement zBox creation by clicking on a hyperlink that launches a javascript to BrowseTo a link, from the action bar or from another webpage or application to achieve the same. Once any drop option is made, zCubes logic extracts the text portion of the data that is dropped. For example, if the user drags and drops a link into the browser, the dropped information getTransferData as a 'text' call and returns the appropriate URL. If the user dragged and dropped a URL to a picture or movie, for example, the webpage will detect the URL link that is dropped. zCubes detect the type
of the URL by intelligent parsing and form html tags that can be used to display or activate the content of the link.
For example, if a picture link is dropped, e.g. http://www.bitsofcode.com/logo.gif, then the zCubes will detect that it is a potential picture, create a new zBox and wrap the dropped URL in sufficient html to display or to activate it. In this case, this wrapping code would be <DIV><IMG SRC=" http://www.bitsofcode.com/logo.gif "><IMG></DIV>. That is the incoming URL is put into the template <DIVxIMG SRC="[PICTUREURL]"xIMGx/DIV>.
Every content type that is supported has a similar template. Each dropped content is converted into a zBox with wrapper code in HTML that can then be rendered or acted on by the browser capabilities. If a support application is required, e.g., SHOCKWAVE or PDF or WORD or other applications, for a link of type .html, then enough HTML is composed using, for example, TEXTBOX, DIV or IFRAME, to wrap the content and display it safely. If the content dropped is a text of arbitrary length, then zCubes will try to interpret the type of text and the appropriate display or action for it. For example, if the text is a potential script, then zCubes will try to execute it or form enough html tags to keep it potentially executable.
Figure 1C is a flowchart of the zPage lifecycle generally depicting the lifecycle steps of creating a zPage 150, editing the zPage 160, deleting the zPage 170 or saving the zPage 175, retrieving the zPage 180, and submitting the zPage 190. More specifically, in step 150 a zPage is created from a new instance of a website page displayed within a recursive browser window. In step 160 the zPage is edited using a variety of applicable zCubes. Next a user can choose to delete the zPage at step 170 where the lifecycle ends. If desired, a new zPage may be created after ending the lifecycle at step 170 or as discussed below, a user may retrieve a previously saved zPage at step 180.
Alternatively, at step 165 a user can choose to save, at step 175, a zPage in pure DHTML as one page or several components comprising the entirety. The zPage or components thereof may be saved to, but not limited to, a local drive, a jump drive, to the Internet, to email or to other persistent media. Only data is generally saved and not the zCube full logic. In step 180 a saved zPage is retrieved in its entirety or as separate blocks from the server on which it is stored and contains primarily data. Once retrieved, in step 190 the zPage is submitted to a zCubes server to attach the logic of the zCubes world to the basic data in the zPages. It should be noted that a user may start the lifecycle process by
retrieving and submitting a previously saved zPage and either editing the retrived zPage or creating one or more other zPages within the browser window or from the submitted zPage.
Figures 2A-2B illustrate the different types of content that can be interactively and simultaneously displayed within a recursive browser or zBrowser page. Figure 2A is a zBrowser 200 showing a zBrowser window 210 including an Action Bar 220 and a zBrowser page 230. The page 230 comprises an array of four zNotes 240 displayed as zFrames containing an article 240a, a movie 240b, live chat or messaging 240c, and the start of a research paper 24Od. A zNote contains a zFrame which contains a web page or other content. In this example, a user may use the displayed contents as research tools to create the research paper 24Od. Furthermore, the ability to chat or message while perusing the article and/or the movie provides an additional resource.
With continued reference to Fig. 2A, Figure 2B demonstrates that zFrames and zBoxes displayed within a zBrowser page 230 can be positioned in any user-determined X-, y- and z- orientation to suit the immediate requirements of the user. As shown frames 240e,f and zBoxes 250a,b,c are positioned such that the user may immediately access the content. The zFrames 240g-j may be brought forward within the page, as needed by clicking thereon.
Tables 1, 2 and 3 provide the source code for the recursive browser system, the zCubes or zBox and handwriting, respectively. Portions of the source code for zCubes and handwriting are identical and not repeated in each Table. For example, zCubes includes the code for the recursive browser system and handwriting includes the code for the recursive browser system and for zCubes. The Tables contain an indicator where these particular source codes should be inserted.
Table 1: Recursive Browser /* Recursive Browser Code */ /* zcubes.aspx */
<script language="javascript" src="../include/scripts/util.js"x/script> <script language= "javascript" src=".VincludeZscripWLookups.js"><Zscript> <script language= "j avascript" src= " ../include/scri pts/homel og_ae.js "xZscript> <script language= "javascript" src="..ZincludeZscripts/homelog_ae_ii.js"xZscript> <script language="javascript" src="../includeZscripts/rss.js"xZscript> <LINK href=".JincludeZbocsitelog.css" type="text/css" rel="stylesheet"> <bodyonload="DoFirst();"onclick="onClickEventHandler()"onbeforeunload= "CheckAndCloseO;" onkeyup="CatchKey();" onscroll="MovePanel();" > <div id="bg" unselectable="on" style="zoom:1.0;background-color:Gainsboro;position: absolute;left:Opx;top:Opx;height: 100%;width: 100%;" ondragenter="UponDragEnter() " ondragover="GetEventCancelled()" ondragleave="UponDragLeave() " ondrop="UponDrop()" ondblclick="GetIncomingData();" > <div id="gets" style="visibility:hidden;display:none;">
<iframe name="getsframe" id="getsframe" src="zcompsmain.aspx"x/iframex/div> <Zbody> <Zhtml>
Z* zcompsmain.aspx */ <script language="javascript"> function GetMe(Somelndex)
{ switch (Somelndex) i
case 1: return(document.all("zCubesPanelDiv").outerHTML); case 2: return(document.all("SearchBoxSρace").outerHTML); case 3: return(document.all("zCubesOtherPanelDiv").outerHTML); case 4: return(document.all("DanySpace")-outerHTML); case 5: return(document.all("banners").outerHTML);
} }
</script> </head> <body onload="parent.DoFirstSetup();"> <div id="me"> <div id="DanySpace" unselectable="on" class="gami" style="zoom:l;visibility:visible;display:none;background-color:white; position:absolute;left:50px;top: 100px;height:260px;width:260px;vertical-align: top;padding:10px;border:0px solid white;cursor:hand;" title="DanySpace" ondblclick="ShowBarSwitch('DanySpaceBar');GetEventCancelledO;" onmouseenter="ShowBar('DanySpaceBar', true);" onmouseleave="ShowBar('DanySpaceBar', false);" onclick="if(window.event.ctrlKey!=true){ClearSelectedZBoxes(); AddToSelectedZBoxesCDanySpace1);}" ondrop="TryToMergeStyle(lDany');GetEventCanceIled();" >
<div id="DanySpaceHeader" class="likemenu" ALIGN="center" contenteditable="true" onmousedown="GetEventCancelIed{);" STYLE="position:absolute;zoom: 1.0;top:-30px;height:30px; visibility:hidden;display:none;font-weight:bold;width:100%;background- coloπlightsteelbiue; font-face: Arial;"
>
Dany </div>
<div id="DanySpaceCover" STYLE="height:250px;width:250px;" style="background-color:ghostwhite;overflow:hidden;cursor:default;">
<div id="DanySpaceContent" ALIGN="left"
STYLE="zoom:1.0;overflow-x:auto;overflow- y:auto;height: 100%;width: 100%;background-color: ghostwhite; font-face: Arial ; filteriprogidiDXImageTransform.Microsoft.ShadowCcolo^WOOOOO', Direction=135, Strength=2);filter:progid:DXImageTransform.Microsoft.Alpha( Opacity=100);" ondblclick="QuickEdit('Danyl, true);"
onchange="RegisterChange('Dany');"
>
</div> </div>
<div id="DanySpaceFooter" class="Hkemenu" ALIGN="left" contenteditable="true" onmousedown="GetEventCancelled();"
STYLE="position:absolute;zoom:1.0;height:30px;visibility:hidden;display:none;fon t- weight:bold;width: 100% ;backgrouπd-color.iightsteel blue; font-face: Arial;"
> </div>
<divid="DanySpaceBar" unselectable="on" contenteditable= "false" style="position:absolute;visibility:hidden;height:3px;background-color:ghostwhite; top:0px;left:-100px;width:100px;height:100%;display:inline;padding:5pt; filter:progid: DXImageTransform. Microsoft. AIpha(opacity=50) ;" onmouseenter="Highlight();" onmouseleave="Lowlight();" >
<a name="DanySpaceTab"> </a>
<span id="DanySpaceStoreLabel" unselectable="on" style="align:right;display:none;visibility:hidden;" xinput id="DanySpaceStore" type="hidden" value=" "/xinput id="DanySpaceEventStore" type="hidden" value= '"7χinputid="DanySpaceServerFileStore" type="hidden" value="7x/span>
<!--span id="DanyCloseLabel" style="align:right;" onclick="DestroySpace('DanySpace');" onmousedown="GetEventCancelled(); ">Close</span— >
<span id="DanySpaceDragLabel" unselectable="on" style="align:right;display:block;" xa href=""ondragstart="CopyAndDragBox ('DanySpaceContent') ; ">Drag</ax/span>
<span id="DanySpaceControls" unselectable="on" style="align:right;display:block;" >
<nobr>
<span style="text-align:right;display: inline;color:black" onclick="GoSmaller(document.all('DanySpace1))" title="Smaller">[-] </span>
<span style="text-align: right; display:inline;color:black" onclick="GoBigger(document.all('DanySpace'))" title="Bigger">[+] </span>
<span style="text-align:right;display: inline;color:black" onclick="GoBiggest(document.all(lDanySpace'))" title="FuH">[A;] </span>
<span style="text-align:right;display: inline;color:black" onclick= "GoA way (document.all('Dany Space'))" title="Delete">|x] </span> </nobr> </span>
<span style="align:right;display:block;" unselectable="on" onmousedown="GetEventCancelled();"> </span>
<span id="DanySpaceLiveLabel" unselectable="on" style="align:right;display:block;" onclick="ServerSaveZNote('DanySpace1);" onmousedown="GetEventCancelIed() ;">Live</span>
<span id="DanySpaceAddPaste" unselectable="on" style="align:right;display:block;" onclick="AddPaste('DanySpaceContent1);" onmousedown="GetEventCanceIled();">AddPaste</span>
<span id="DanySpaceEditLabel" unselectable="on" style="align:right;display:block;" onclick="QuickEditCDany', false);" onmousedown="GetEventCancelled();">Edit</span>
<span id="DanySpaceHeaderLabel" unselectable="on"
style="align:right;display:block;" onclick="ShowGubeHeader('DanySpace');" onmou sedown= "GetEventCancell ed() ; ">Header</span>
<span id="DanySpaceHeaderLabel" uπselectable="on" style=ltalign:right;display:block;" onclick="ShowCubeFooter('DanySpace');" onmousedown="GetEventCancelled();">Footer</span>
<span id="DanySpaceFitLabel" unselectable="on" style="align:right;display:block;" onclick="ZFit('Dany');">Fit</span>
<!-- span id="DanySpaceInLay" style="align:right;display:block;" onclick="Inlay('DanySpaceContent');" onmousedown="GetEventCancelled();">InLay</span— >
<span style="align:right;display:block;" unselectable="on" onmousedo wn= "GetEventCancel 1 ed() ; "> </span>
<span id="DanySpaceInLayWithMove" unselectable="on" style="align:right;display:block;" oncllck="InlayWithMove('DanySpaceContent1);" onmousedown="GetEventCancelled();">InLay</span>
<span id="DanySpaceInLayWithMove" unselectable="on" style="align:right;display:block;" onclick="HideBox('Dany');" onmousedown="GetEventCancelled();">Hide</span>
<span id="DanySpaceConvertToEvaluate" unselectable="on" style="align:right;display:block;" onclick='ΕxpandToSource('DanySpaceContent');" onmousedown="GetEventCanceIled();">Expand</span>
<span id="DanySpaceDivideImages" unselectable="on" style="align:right;display:block;" onclick="ExpandMedia('DanySpaceContent')" onmousedown="GetEventCancelled();">Media</span> <span id="DanySpaceHTML" unselectable="on" style="align:right;display:block;" onclick="ShowSource('DanySpaceContent', true);" onmousedow n= "GetEventCancelled() ; ">HTML</span>
<span id="DanySpaceOuterHTML" unselectable="on" style="align:right;display:block;" onclick="ShowSource('DanySpaceContent', false);" onmousedown="GetEventCancelled();">HTMLX</span>
<span id="DanySpaceConvertToSource" uπselectable="oπ" style="align:right;display:block;" onclick="EditHTML('DanySpaceContent');" onmousedown="GetEventCancelIed();">HTMLEdit</span>
<span id="DanySpaceApplyProperty" unselectable="on" style="align:right;display:block;" onclick=" CallZBoxEditor('<%=ThisServer%> ','DanySpaceContent');" onmousedown="GetEventCancelled();">EditFont</span>
<span style="align:right;display:block;" unselectable="on" onmousedown="GetEventCancelled();"> </span>
<span id="DanySpaceDouble" unselectable="on" style="align:right;display:block;" onclick="MultiplyContent('DanySpaceContent');" onmousedown="GetEventCancelled();">Double</span>
<!-span id="DanySpaceHide" style="align:right;display:block;" onclick="ShowBar(lDanySpaceBart, false);" onmousedown="GetEventCanceHed();">HideBar</span— >
<span style="align:right;display:block;" unselectable="on" onmousedown=="GetEventCancelled();"> </span>
<span id="DanySpaceGetLink" unselectable="on" style="align:right;display:block;" onclick="GetLinkToClipboard('DanySpaceTabf)" onmousedown="GetEventCanceIled();">BoxLink</span>
<span id="DanySpaceCalculate" unselectable="on" style="align:right;display:block;" onclick="CaIculateBox('DanySpace')" onmousedown="GetEventCancelled();">Run</span>
<span style="align:right;display:block;" unselectable="on" onmousedown="GetEventCanceHed();"> </span>
<!~span id="DanySpaceRSS" style="align:right;display:block;
" onclick="ProcessRSSContent('DanySpaceContent')" onmousedown= "GetEventCancell ed() ; ">RSS</span~>
<span id="DanySpaceZoomPlus" unselectable="on" style="align:right;display:block;" onclick="ZoomPlus('DanySpaceContent');" onmousedown="GetEventCancelled(); ">Zoom</span>
<span id="DanySpaceZoomMinus" unselectable="on" style="align:right;display:block;" onclick="ZoomMinus('DanySpaceContent');" onmousedown="GetEventCancelled();">UnZoom</span>
<span id="DanySpaceZoomVariable" unselectable="on" style="align:right;display:block;" onclick="ZoomVariable('DanySpaceContent');" onmousedown="GetEventCanceIled();">Zoom</span>
<span style="align:right;display:block;" unselectable="on" onmousedown="GetEventCancelled();"> </span>
<span id="DanySpaceCopy" unselectable="on" style="align: right;display: block; " onclick= "CopyBox('DanySpaceContent')" onmousedown= "GetEventCancel 1 ed() ; ">Copy</span>
<span id="DanySpaceCloseLabell" unselectable="on" style="align:right;display:block;" onclick="DestroySpace('DanySpace');" onmousedown="GetEventCancelled();">Delete</span> </div>
</div> <!-- style="position:absolute;visibility:visible;" —>
<div class="gami" id="zCubesPaneIDiv" style="position:absolute;left:0;top:10; width: 1000px;z-index:l;padding:5px;border:0px solid white;"> <div class="zCubesPanel" >
<span unselectable="on" onmousedown="document.aIl('SenderTextt).styIe. width='600px';" onmouseout="document.all('SenderText').style.width=I100pxl;">
<span unselectable="on">
<input type="button" id="GoButton" onclick= "SendToSearchAndShow(document.aH('SenderTextl).value);blur();" value="Go" />
</span>
<LABEL FOR="SenderText" ACCESSKEY=11I" unselectable="on" >:</LABEL>
<input id="SenderText" ACCESSKEY="G" type="text" value= "http://www.google.com" onkeydown="DoEnterKey()" onkeyup="DoCalc() " style="width: 100px;" /> </span>
<span unselectable="on" style="position:absolute;visibility:visible;height: 3px;background-color:ghostwhite;top:Opx;left:-lθ6px;width:100px;height:100%;display: inline;padding:5pt;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50);" >
<span id="EvalBox" style="position:absolute;background-color: silver;overflow:auto;" title="Use the Power Calculator! Type in a math expression in the box to the left to evaluate it dynamically !">[=]</spanx/nobr>
</span>
<br>
<span unselectable="on"> <span class="zCubesButton" onclick="document.all('bg1).style. zoom=document.all('bg').style.zoom*2.0;blur();">++</span>
<span class="zCubesButton" onclick="document.all(Ibg1).style. zoom=document.all(1bg').style.zooni/2.0;blur();">— </span> </span>
<span>
<span class="zCubesButton" onclick="history.go(-l);blur(); GetEventCancelled();">Back</span>
</span> <span>
<span class="zCubesButton" onclick="history.go(l);blur(); ">Forward</span>
</span> <span>
<span class="zCubesButton" onclick="ShowAllBorders(true); blur();">Show</span> </span>
<span>
<span class="zCubesButton" onclick="ShowAHBorders(false); bIur();">Hide</span>
</span> <span>
<span class="zCubesButton" onclick="TileDivs(SelectedZBoxes, 2);blur();">TiIe</span>
</span> <span> <span class="zCubesButton" onclick="CascadeDivs
(SelectedZBoxes);blur();">Cascade</span>
</span> <span>
<span class="zCubesButton" onclick= "javascript: MoveTo(AddContentCodeAndExpand('<%=ThisServer%>/Effects/colors.htm'), 200, 200,550,625);blur();">Colors</span>
</span> <span>
<span class="zCubesButton" onclick="javascript: CallZBoxEditor ('<%=ThisServer%>');blur();">ZBoxEditor</span>
</span> <span>
<span class="zCubesButton" onclick="javascript:
MoveTo(AddContentCodeAndExpand('<%=ThisServer%>/Clock/Clock.htmI), 200, 200>550,625);blur();">Clock</span>
</span> <span>
<span cIass="zCubesButton" onclick="ShowBIog(); blur() ;">ZBlogs</span> </span>
<span>
<span class="zCubesButton" id='ZBlogNameSpace' style= "display:none;visibility:hidden" xinput id="ZBlogName" type="text" value=""/x/span>
</span> <span> <span class="zCubesButton" id='ZBlogCreate' onclick=
"ServerSaveDoc(l,'Blog');blur();" style='display:none;visibility:hidden'>Create</span>
</span>
<br> <span> <span class="zCubesButton" unselectable="on" id="_CreateZNote" onclick="CreateNewZBoxWithPaste();GetEventCancelledO;blur();" />z-Paste</span>
<input type="button" ACCESSKEY="Z" onclick= "_CreateZNote.click();" width="lpx" height="lpx">
<span class="zCubesButton" onclick="DoNew();blur();" />z-Note </span>
</span> <span>
<span class="zCubesButton" onclick="SaveDoc();blur();" />Save< /span> </span>
<span>
<span class="zCubesButton" onclick="ClearAIIBoxes();blur();" />Clean</span>
</span> <span>
<span class="zCubesButton" onclick= "javascript:
AddContentCodeAndExpand('<%=ThisServer%>/../Gallery/mypopup.ntm');blur(); ">Gallery</span>
</span> <span>
<span class="zCubesButton" onclick="javascript: AddContentCodeAndExpand('<%=ThisServer%>/tempgallery.htm');blur();">Test</span>
</span> <span>
<!-INPUT TYPE=button VALUE=MServerSave" onclick= "ServerSaveDoc();blur();"->
<INPUT TYPE=text id="ThisFileName" VALUE=""> <div style="visibility:hidden;display:none;"> <form name="PostTextToServer" action=
"http://216.165.209.213/zsave/createfile.cgi " target="SearchBoxFrame" method="POST">
<textarea name="data" rows="20" cols="80"> </textarea>
<input type="submit" value="Save Data"> <input type="reset"> </form> </div> <%
Dim TypeLib = Server.CreateObject("Scriptlet.TypeLib")
Dim GetGuid = TypeLib.Guid
%>
<span class="zCubesButton" onclick= "ServerSaveDoc (0,'<%=GetGιiid %>');blur();">Publish</span>
</span> <span>
<spari class="zCubesButton" onclick= "MoveTo
(AddContentCodeAndExpand('<%=SaveServer%>/zboxFileuploader/AUImage_Default. aspx?from=<%=ThisServer%>/',true), 200, 200,850,575);blur();">Upload</span>
</span> <span>
<span class="zCubesButton" onc!ick="ToggleShow ( 'zCubesOtherPanelDiv');blur();">Other</span> </span>
<span id="ResubmitForm">
<INPUT id="SendContentToServer" TYPE="button" VALUE= "Live! " onclick="document.all('bgcontent'). va!ue=bg.outerHTML; SendTextToServer. submit();blur();"x/INPUT> <div style="visibility:hidden;display:none;">
<FORM name="SendTextToServer" action=
"<%=ThisServer%>/zcubes.aspx" method="post">
<INPUT type="hidden" id="thisfilenametostore" name= "thisfilenametostore"xBR>
<INPUT type="hidden" id="bgcontent" name= "bgcontent"xBR>
<INPUT type="submit" value="Live!"> </FORM> </div> </span> <span>
<span class="zCubesButton" onclick= "AdvancedPanel.style. visibility='visible';AdvancedPanel.style.display='block';blur();">Advanced</span>
<div id="AdvancedPanel" style="visibility:hidden;display:none;"> <span>
<span class="zCubesButton" onclick= "AdvancedPanel.style. visibility=lhidden';AdvancedPanel.style.display='none';blur()">Hlde</span>
</span>
<span>
<input type="button" ACCESSKEY=11N" onclick= "_NewWindowControl.click();" value="7>
<span id="_NewWindowControl" class="zCubesButton" onclick="javascript:SendToSearchOut(SenderText.value);blur();">New Browser</span>
</span> <span>
<span id="_ShowBrowser" class="zCubesButton" oncIick="javascript:SendToSearchOut(SenderText.value);blur();">Show Browser</span>
<input type="button" ACCESSKEY="S" onclick= "_ShowBrowser.click();" value="'7>
</span> <span> <span class="zCubesButton" onclick= "StripWindow();
blur() ; ">F1 oat</span>
</span> <span>
<span class="zCubesButton" oncIick="UnStripWindow(); blur();">UnFloat</span>
</span> <span>
<span class="zCubesButton" onclick="fnGo(); blur();">Home</spanxIE:HOMEPAGE ID="oHomePage" /> </span>
<span>
<span class="zCubesButton" onclick="MakeSecureFrame (true);blur() ;">Out</span>
</spaπ> <span>
<span class="zCubesButton" onclick="MakeSecureFrame (false) ;blur();">In</span>
</span> <!— span> <span class="zCubesButton" onclick="DrawLines(); bl ur() ; ">Li ne</span>
</span> <span>
<span class="zCubesButton" onclick="NewDoc(); blur();">New Doc</span>
</span> <span>
<span class="zCubesButton" onclick="alert ( AddContentCodeAndActivate('a=2;b=3;a+b;', 'javascript'));blur();">Make Code</span> </span— >
<span>
<!— document. allCemailcontent^.valuesEmailDocOjalert ('submitting1 + document.all ('emailcontent').value);SendEmailFromServer.submit();— >
<span id='ZEmailSendControls' > <FORM name="SendEmailFromServer" action=
"<%=ThisServer%>/Email.aspx" method="post">
Title:<INPUT type="text" id="emailtitle" name="emailtitie">
From:<INPUT type="text" id="fromemail" name= "fromemail"> To:<INPUT type="text" id="toemail" name="toemail" >
<span onclick="ShowMoreEmail();blur();">...</span>
<span class="zCubesButton" id='ZEmailMoreOptions' style="display:none;visibility:hidden" >
Cc:<INPUT type="text" id="toemailCc" name= "toemailCcV
Bcc:<INPUT type="text" id="toemailBcc" name= "toemailBcc">
<span onclick="HideMoreEmail();blur();"xfont size= " 1 "x«/fontx/span> </span>
<span class="zCubesButton" id='ZEmailemailcontent' style="display:none;visibility:hidden" >
<INPUT type="hidden" id="emailcontent" name= "emailcontent"> <INPUT type="submit" value="">
</span> </FORM>
<INPUT id="SendContentByEmail" TYPE=button VALUE= "Send Email" onclick="EmailDoc();blur();"x/INPUT> </span>
<FORM name="SendFromEmail" action= "http://delta/zboxdev/li veblogs/zcubes.aspx " method="post">
<span class="zCubesButton" id= 'ZEmailHidden' style="display:none;visibility:hidden" > <textarea name="hiddenEmailContent" type="hidden" value="l" rows="l " cols="l "> </textarea>
</span>
<span class="zCubesButton" id= 'ZEmailMakeLike1 style="display:none;visibility:hidden" > <INPUT id="SendFromEmail2"
TYPE=submit VALUE="Make live" ></INPUT>
</span> </FORM> </span> </div> </span>
</div> </div> <div id="SearchBoxSpace" class="gami" style="position:absolute;left:350px;top:150px;height:500px;width:800px;padding- left:Opx;padding-right:Opx;padding-bottom:Opx;visibility:hidden;display:none;border: Opx solid #ffifff;text-decorati on: none;font-weight:bold;font-color:black;">
<div id="SearchBox" UNSELECTABLE class="likemenu" style="background- color:silver;color:white;cursor:hand;width: 100%">
<table border="0px" cellspacing=O cellpadding=O width="100%"> <tr>
<td align="left" width="80%"title="Move this window by clicking and dragging this area. The information displayed in this window may could from external/third-party websites and applications." >
<span style="text-align:left;width: 100%;display: inline;color:black">WWW</span>
</td>
<td align="right" width="20%" onmousedown="">
<span style="text-align:right;display:inline;color:black" onclick="GoSmaller(SearchBoxSpace)" onmousedown="MouseDown()" title="Click - to make smaller">[-] </span> <span style="text-align:right;display:inline;color:black" onclick="GoBigger(SearchBoxSpace)" onmousedown="MouseDown()" title="Click + to make bigger">[+] </span>
<span style="text-align:right;display:inϊine;color:black" oncIick="GoBiggest(SearchBoxSpace)"
onmousedown="MouseDown()" title="Click Λ to make full">[Λ] </span>
<span style="text-align:right;display:inline;color:black" onclick="GoAway(SearchBoxSpace)" onmousedown="MouseDown()" title="Click x to close ">[x] </span> </nobr> </td>
</ti> </table> </div> <di v id="SearchBoxContainer" style="width: 100%;height: 100%;"> <iframe id="SearchBoxFrame" name="SearchBoxFrame" src="" style="width: 100%;height: 100%;" style="background-color:silver;"x/iframe>
</div>
<div class="likemenustatus" style="align:bottom;width:100%;height: 10px;background-color:silver;" title="Resize this window by clicking and dragging this area">
<br/> </div> </div> <div id="banners"> <v:shape id="ZCubesBanner" class="gami" style="LEFT: lOOpx; WIDTH: 1052px;
POSITION: absolute; TOP: 100px; HEIGHT: 807px" coordsize = "1052,807" filled = "f" strokecolor = "red" strokeweight = ".75pt" path = " ml38,134, 1138,134,138,133,138,132,138,131,138,130,138,129,138,127,138,125,138,124,138,122,138 121,138,119,138,118,138,117,138,116,138,117,139,118,141,120,142,121,144,122
145,123,147,123,149,123,152,123,154,123,157,123,159,123,162,123,163,121,166,120,169, 120,171,120,173,119,175,118,176,117,176,116,175,116,174,116,173,117,171,119 169,120,166,123,163,126,159,130,155,135,151,141,147,145,142,152,138,156,132,163,127, 168,123,174,120,178,119,183,116,185,114,187,113,189,112,189,112,191,112,192 112,194,112,195,112,196,112,195,112,194,112,192,112,190,112,188,113,186,114,185,114, 183,115,182,117,182,119,181,121,181,123,181,125,181,126,181,127,181,129,181 132,182,136,184,140,187,144,188,147,190,150,192,151,193,154,194,156,196,158,197,161,
199,163,200,164,200,165,200,166,200,167,198,168,197,169,195,169,193,169,191
169,188,169,186,169,184,169,182,169,180,170,179,170,178,170,177,170,176,271,147
1271,147,271,146,271,145,271,144,271,142,271,140,271,137,271,134,271,131,271,128,270 125,268,121,267,119,266,118,264,116,261,116,259,115,257,115,256,115,254,115
252,115,250,117,248,117,246,119,243,121,242,123,239,126,238,128,236,130,236,133,234, 137,234, 140,234, 144,234, 149,234, 155 ,234, 160,234, 166,235 , 170,237, 174,239, 178 240,180,242,181,243,183,245, 184,247,185,249,186,251,187,254,187,256,188,258,189,260, 189,262,189,265,189,268,189,269,189,271,188,272,186,274,183,277,180,279,177 280,173,282,167,284,163,285,157,286,153,288,147,289,143,290,140,292,137,293,135,293, 133,293,134,293,135,293,138,293,140,293,143,293,146,293,151,293,156,293,162 293,167,293,172,293,178,293,181,295,183,296,185,297,187,298,188,298,190,300,190,300, 191,301,191,302,191,304,189,306,188,307,187,309,186,310,183,312,181,314,178 316,175,318,171,322,166,325,160,328,156,330,152,331,150,333,148,333,147,333,146,333, 145,333,144,333,143,333,142,333,141,333,140,333,139,333,138,333,137,333,136
333,137,333,138,333,140,333,143,333,145,333,148,333,153,333,158,334,162,334,166,334, 169,335,172,336,174,337,177,337,179,337,181,337,183,337,185,337,187,337,190 337,192,338,194,339,195,339,196,339,197,340,197,340,196,341 ,196,343,195,344,194,346, 193,348,192,351,190,353,189,357,185,360,181,366,175,371,167,376,160,380,151 384,144,389,136,394,128,398,122,401,116,404,110,405,107,407,103,408,100,409,96,409, 93, 409,90,409,88,409,85,409,81,408,79,406,76,406,74,405,72,403,71 403,70,403,68,402,68,401,67,401,66,400,66,399,65,398,65,397,65,396,65,394,65,393,66, 392,67,390,68,390,69,388,70,388,71,387,73,386,74,386,75 385,78,384,81,384,84,384,88,383,92,383,99,383,104,383,111,383,118,383,124,383,130,38 4,
136,385,140,386,144,387,150,388,154,389,160,390,165,391,172,392,178 392,183,392,188,393,192,395,195,396,198,397,200,398,201,398,202,399,202,399,201,400, 200,401,198,403,197,405,195,406,193,409,191,410,189,413,185,414,182,415,179 416,175,417,172,417,169,417,167,417,164,417,162,417,160,416,157,416,156,415,154,414, 154,414,153,414,152,413,152,413,151,412,151,412,150,412,149,411,149,410,149
410,148,410,149,410,150,410,151,411,153,412,154,413,155,415,156,417,156,419,156,422, 157,425,157,427,157,431,157,434,157,438,156,442,155,445,153,448,152,452,151 455,149,458,147,460,144,464,143,4^7,141,470,139,472,138,474,137,475,137,476,136,476, 135,476,134,476,133,475,133,475,132,474,131,473,131,472,131,472,130,471,130 470,129,469,129,468,128,467,128,466,128,464,128,463,128,462,128,461,128,460,129,459, 131,458,132,458,133,456,135,456,137,455,139,454,140,454,143,454,146,454,148 454,151,454,154,454,157,454,160,456,162,456,164,457,165,458,167,459,169,459,170,460, 172,461,174,461,175,462,177,463,178,463,179,464,180,465,181,466,182,467,182 469,182,470,182,471,181,474,180,475,179,476,179,478,177,481,176,484,173,487,171,489, 167,492,163,495,158,500,152,505,146,508,139,511,134,513,132,515,129,516,128
518,126,518,125,519,125,520,125,520,124,519,124,518,124,517,124,515,124,513,125,511, 126,509,127,507,129,505,131,503,132,502,135,500,136,498,138,497,139,497,140 498,140,499,140,501,140,503,140,506,140,508,140,511,141,515,142,519,143,522,143,525, 145,527,146,530,147,531,149,532, 150,533,152,534,154,535,156,537,158,538,160 538,163,540,166,541,168,542,170,542,171,542,172,542,173,542,174,541, 174,540,174,538, 174,536,174,534,173,532,173,530,172,528,171,527,170,526,170,525,169,523,168 523,167,522,165,520,163,520,161,519,159,519,156,519,154,521,153,522,153,523,152,526, 152,527,152,529,152,531,152,533,154,534,155,535,156,535,159,536,161,536,164 536,166,536,169,536,171,536,172,535,172,535,171,534,171,534,170
e"xv:pathx/v:pathxv:fillx/v:fillχv:strokex/v:stroke>
<v:extrusion id="ZCubesBannerE" on = "t" type = "perspective" backdepth = "20px"x/v:extrusion>
</v:shape> <v:rect id="Cubel " class="gami" style="LEFT: 100;WIDTH:50;POSITION: absolute;TOP:550;HEIGHT:50" fillcolor="red">
<v:extrusion id="CubelE" on = "t" type = "perspective" backdepth = "50px"x/v: extrusion>
</v:rect> <v:rect id="Cube2" class="gami" style="LEFT: 150;WIDTH:50;POSITION: absolute;TOP:550;HEIGHT:50" fillcolor = "green">
<v:extrusion id="Cube2E" on = "t" type = "perspective" backdepth = "50px"x/v: extrusion>
</v:rect> <v:rect id="Cube3" class="gami " style="LEFT:200;WIDTH:50;POSITION: absolute; TOP:550;HEIGHT:50" fillcolor = "blue">
<v:extrusion id="Cube3E" on = "t" type = "perspective" backdepth = "50px"x/v: extrusion>
</v:rect> </div>
<div class="gami"id="zCubesOtherPanelDiv"style="position:absoIute;visibility: hidden;display:none;left:28px;top:l 1 lpx;width: 1200px;z-index:l;border:5px solid white">
<div class="zCubesOtherPanel" unselectable="on" onmousedown="GetEventCancelled();" > <input type= button value='Slide Show' onclick='DoSlideShow()'>
<input id="CallJSValue" type='text' value="2008">
<!~input type='button' oncIick="MakeQJaxCalls(lCalendar.js', •MakeCodeExecute('+ V + CallURLValue.value + 1V +')')"-->
<input type='button' value= 'call calender JS' onclick="MakeQJaxCalIs('GetMonth.js', 'MakeCodeExecute1, CallJSValue. value )">
<input id="SomeResponseText" type=text value="Waiting"> <input type='button' value= 'call Opacify JS1 onclick="MakeQJaxCalls('ChangeOpacity.jsl, 'MakeCodeExecute', CallJSValue. value )">
<input type='button' value= 'call TableCreate JS' onclick="MakeQJaxCalls(TableCreate.js', 'MakeCodeExecute', CallJSValue. value )">
<input id="WebServiceURLValue" tyρe='text'
vaIue="http://teachatechie.com/GJTTWebServices/ZipCode.asmx/GetDistance?ZipCodel=
77
450&ZipCode2=77042">
<input type^button1 value = 'Call QJax WebService' onclick="MakeQJaxCalls(WebServiceURLValue.value, 'MakeCodeExecuteForWS')">
<!~input type='button' onclick="MakeQJaxCalls('ZBoxZoomIn.js', TestQJax('+ V + CallURLValue. value + 1Y' +')')"->
<!~input type='button' onclick="MakeQJaxCaIls('ZBoxZoomIn.js', TestQJax1, 'http://www.cnn.com');"—>
<i n put i d = " We b S erv i ceU RLV al uel " t y p e = ' t e x t ' value="http://www.cnn.com">
<input type='button' value = 'Call CNN' onclick= "MakeQJaxCalls (WebServiceURLValue 1.value, 'ForTesting')"> <input type='button' value= 'call GetMonthWithEvent JS' onclick=
"MakeQJaxCalls('GetMonthWithEvent.js', 'MakeCodeExecute', CallJSValue. value )">
<div id='CNNBox'xdiv> </div> </div> </div> </body> </html>
/* LOOKUPSJS */ var SomeLookupArray = new Array ( new ArrayCg.', true, 'http://www.google.com/search?query=', "), new Array('m.', true, 'http.7/search.msn.com/results.aspx?q=', "), new ArrayCy.', true, 'http://search.yahoo.com/search?p=' , "), new Array('a.\ true, 'http://www.amazon.com/gp/search/ref=nb_ss_gw/102- 4931566-3663363 ?url=search-alias%3Daps&field-key words=\ '&Go.x=0&Go.y=0'), new ArrayCe.1, true, 'http://search.ebay.com/search/search. dll?from=R40&satitle=' , "), new Array('ms.', true, 'http://www.msn.com' , "), new ArrayCmsn.', true, 'http://www.msn.com' , "), new Array('ya.', true, 'http://www.yahoo.com' , "),
new ArrayCmm.', true, 'http://msdn.microsoft.com' , "), new Array('mx.r, true, 'https://mail.bitsofcode.com/exchange' , "), new Array('b.', true, 'http://www.bitsofcode.com' , "), new Array('we.', true, 'http://www.weather.com/' , "), //Weather new ArrayCamc.', true, 'http://www.amctheatres.com/' , "), //Theatre new Array('boc.\ true, 'http://www.bitsofcode.com' , "), //Software new Array('ms.', true, 'http://www.microsoft.com' , "), //Software new ArrayOam.1, true, 'http://www.amazon.com' , "), //Shopping new ArrayCbb.', true, 'http://www.bestbuy.com/' , "), //Shopping new ArrayC'cc.', true, 'http://www.circuitcity.com/' , "), //Shopping new Array('cu.', true, 'http://www.compusa.com/' , "), //Shopping new Array('e.', true, 'http://www.ebay.com' , "), //Shopping new Array('wal.\ true, 'http://www.walmart.com/' , "), //Shopping new ArrayCa.', true, 'http://search.aol.com/' , "), //Search new Array('m.\ true, 'http://search.msn.com/' , "), //Search new ArrayCg.', true, 'http://www.google.com' , "), //Search new Array('bn.', true, 'http://news.bbc.co.uk/' , "), //News new ArrayCgn.', true, 'http://news.google.com/' , "), //News new ArrayCyn.', true, 'http://news.yahoo.com/' , "), //News new Array('cnn.', true, 'http://www.cnn.com/' , "), //News new Array('nt.', true, 'http://www.nytimes.com/' , "), //News new ArrayCgm.', true, 'http://maps.google.com' , "), //Maps/Direction new ArrayCym.', true, 'http://maps.yahoo.com' , "), //Maps/Direction new ArrayOmq.', true, 'http://www.mapquest.com ' , "), //Maps/Direction new Array('mqd.', true, 'http://www.mapquest.com/directions/' , "),
//Maps/Direction new ArrayCym.', true, 'http://mail.yahoo.com' , "), //Mail new ArrayC'h.', true, 'http://www.hotmail.com' , "), //Mail new ArrayCaoI.', true, 'http://www.aol.com/' , "), //Featured new Array('bbc.', true, 'http://www.bbc.co.uk/7ok' , "), //Featured new ArrayC'msn.1, true, 'http://www.msn.com' , "), //Featured new ArrayCns.', true, 'http://www.netscape.com/' , "), //Featured new ArrayCy.', true, 'http://www.yahoo.com' , "), //Featured
new Array('en.\ true, 'http://en.wikipedia.org/wiki/Main_Page' , "), //Encyclopedia new ArrayCdow.', true, 'http://www.download.com/1 , "), //downloads new Array('di.', true, 'http://dictionary.cambridge.org/' , "), //Dictionary new ArrayCal.1, true, 'http://www.alamo.com/' , "), //Car Rentals new ArrayCent.', true, 'http://www.enterprise.com/car__rental/' , "), //Car Rentals new ArrayCh.1, true, 'http://www.justlisted.com' , ") //Buy a Home
); /* HOMELOG_AE.JS */ var BrowseHistory;
BrowseHistory=newArray("http://www. bitsofcode.com/bocedit/bitsofcode/source/ homelite.aspx"); var SearchHi story; SearchHistory= new Array(); function BTo(sp)
{
//SearchBoxFrame.location.replace(sp); SetSearchBoxFrame(sp); BrowseHistory.push(sp);
//self.setTimeout('ShowText()', 1000);
} function BToBack()
{ if(BrowseHistory.length >= 2)
{ var SomeURL;
//get the previous value from the stack. SomeURL = BrowseHistory.popO; if(SomeURL != ")
{
SomeURL = BrowseHistory.popO; if(SomeURL != ")
{
BTo(SomeURL ); } } }
} var NewGoToLocation= new Array; var AllSearchArray = new Array("m.","g.",tty.","a.","e."); function SendToSearchAndShow(SomeText) { var iii; var iij; var XPosition=0; var YPosition=40; var NewWidth=350; var NewHeight=300;
// Make this so that the lookupcodes work both ways - TASK TO DO. if(FindInString(SomeText,"*.")== true)
{ for(iii=0; iii < AllSearchArray.length; iii++)
{ var SearchStringForThisSite = AHSearchArraypii] +' '+ RemoveInString(SomeText, "*."); varSomeLocationToGoTo=GoFindBrowseLink (SearchStringForThisSite); if(SomeLocationToGoTo != "")
{
GoToLocation = SomeLocationToGoTo;
} else
{
GoToLocation = "http://www.google.com/search?query=" + SomeText;
}
NewGoToLocation[iii]=GoToLocation;
} var Hx=O;
for(iij=0; iij < AHSearchArray.length; iij++)
{
MoveTo(AddContentCodeAndExpand(NewGoToLocation[iij]),XPosition, YPosition,NewWidth,NewHeight); if(iix==2) {
XPosition = 0 YPosition += 400; iix=0;
} else
{
XPosition += 400; iix++;
} }
} else
{
ShowSearchBrowserWindowO; SendToSearch(SomeText);
} } function SendToSearch(SomeText)
{ SetSearchBoxFrame(FindSearch(SomeText));
} function FindSearch(SomeText)
{
var GoToLocation;
GoToLocation = "http://www.google.com/search?query=" + "BitsOfCode"; if(SomeText == "")
{ GoToLocation = "http.7/www.google.com/search?query=" + "BitsOfCode";
} if(SomeText != "")
{ if(SomeText.indexOf("http://") == 0) {
GoToLocation = SomeText; } else if(FindInString(SomeText,"w.")== true) { SomeText= RemoveInString(SomeText, "w.")
GoToLocation = "http://www." + SomeText + ".com";
} else
{ var SomeLocationToGoTo = GoFindBrowseLink(SomeText); if(SomeLocationToGoTo != "")
{
GoToLocation = SomeLocationToGoTo;
} else
{
GoToLocation = "http://www.google.com/search ?query=" + SomeText;
} }
} return(GoToLocation);
function SendToSearchOut(SomeText)
{ popup(FindSearch(SomeText));
} function FindInString(SomeText,WhatToFind) { var WhatToFindTrimmed; var SomeSplitText ; var i; SomeSplitText = SomeText.split(' '); for(i=0;i<SomeSplitText.length;i++)
{ if(SomeSplitText[i] == WhatToFind)
{ return(true);
} } return(false);
} function RemoveInString(SomeText,WhatToFind)
{ var WhatToFindTrimmed; var SomeSplitText ; var i; var result = 0; var ReturnString = ""; SomeSplitText = SomeText.split(' '); for(i=0;i<SomeSplitText.length;i++)
{ if(SomeSplitText[i] != WhatToFind)
{ if(i > 0)
{
ReturnString = ReturnString + " ";
}
ReturnString = ReturnString + SomeSplitTextfi] ;
} > return(ReturnString);
} function DoEnter() { if(event.keyCode==13)
{ if(lastButton !=null)
{ document.all(lastButton).click(); }
} } function DoEnterKeyO
{ if(event.keyCode==13)
{ documentall('GoButton').click();
> } function ConductSearch()
{ lastButton=window.event.srcElement.id; SendToSearch(SenderText. value);
} function ConductChat()
{ lastButton=window. event. srcElementid; if(SenderText. value != ")
SendText(SenderText. value); SenderText.value="; SenderText.focus(); }
} function ConductMapO
{ lastButton=window.event.srcElement.id; SendToMap(SenderText.value);
} var Stripped Window = false; function DoCaI c()
{ try
{ if(ShowHintBox(SenderText. value) == false)
{ var SomeString = eval(SenderText. value); if(IsPossibleJS(SomeString) == false)
{
EvalBox.innerHTML=T + (SomeString) + 'J';
} else {
EvalBox.innerHTML='[false]';
} catch (e)
{
EvalBox.innerHTML = "[=?]"
}
} function ShowHintBox(SomeString)
{ var SomeArray; var ik;
SomeArray = SomeString.split(" "); for(ik=0; ik < SomeArray. length; ik++)
{ if((SomeArray[ik].charAt(0)=='.')ll(SomeArray[ik].charAt(SomeArray[ik].length-l)
{
//alertCSearchLookupCSomeArray [ik].substr( 1.SomeArray [ikj.length- 1 )));
EvalBox.innerHTMl^CSearchLookupCSomeArraypkJ.subst^l, SomeArray [ik].length-l)));
// Do the logic for Gobutton in case codes are with periods in front or end. return(true); } } return(false);
} function CalculateBox(SomelD)
{ return(eval(document.all(SomeID+ "Content").innerText)); } function GoTo(SomeUrl)
{ xm.Iocation=urlbox.value;
} function fnGo(){ oHomePage.navigateHomePageO ; event.returnValue=false;
} function GoBack(SomeUrl)
{ xm.backQ; } function GoFront(SomeUrl)
{ xm.forwardO
} function GoFindBrowseLink(SomeText)
{ return(GetLink(SomeLookupArray,SomeText));
} function GetLink(SomeLookupArray,SomeText) { var i; for(i=0; i<SomeLookupArray. length; i++)
{ var Some Link = ""; SomeLink = GoBrowseAndSearchLine(SomeText, SomeLookupArray[i][0],
SomeLookupAiτay[i]Il], SomeLookupArray[i][2], SomeLookupArray[i][3]); if(SomeLink != "")
{ return(SomeLink); }
} returnC"");
} function SetSearchBoxFrameCSomeLocation) { if(StrippedWindow == false)
{ if(IsVisibleBrowserWindow() == false)
{
ShowSearchBrowserWindow();
}
SearchBoxFrame.location = SomeLocation; RaiseObject(SearchBoxSpace);
} else
{ window. open(SomeLocation, 'SearchBoxFrame'); }
Table 2: zCubes Insert Recursive Browser Code /* HOMELOG_AE.JS */ var lastX; var lastY; var Adj ustX; var AdjustY; function onmousedownHandlerMover()
{ document.selection.empty(); if(window.event.button == 2)
{
RightMouseButtonClicked = true;
} else
{
RightMouseButtonClicked = false;
} if(RightMouseButtonClicked == true) { return; // No garni.
} var SomeSrcElement; d = 0; //window, status = (window.event.srcElement.tagName);
//alert(window.event.srcElement.tagName); if((window.event.srcElement.tagName == "A") Il (window.event.srcElementtagName == "INPUT") Il (window.event.srcElement.tagName == "SELECT") Il (window.event.srcElement.tagName = "TEXTAREA") Il
(window. eventsrcElementxlassName == "zCubesButton") Il (window.event.srcElement.className.indexOfC'mOl") > -1) (window. eventsrcElement.id.indexOf("Status") > -I))
{ window.event.returnValue = true; return;
} if(MoveOnIyWithControlKey == true)
{ if(window.event.ctrlKey == false) >
{ window.event.returnValue = true; d = 0; return;
} else
{ //MoveOptionControl.style.backgroundColor = 'white';
}
} else
{ //MoveOptionControl.style.backgroundColor = 'white'; if(window.event.ctrlKey == true)
{ window.eventreturnValue = true; d = 0; if(window.event.srcElement.classNarne.toLowerCase() == "gami")
{
AddToSelectedZBoxesCwindow.eventsrcElement.id);
} return; }
} window.eventreturnValue = false; if(d != 0)
{ window. event.returnValue = true; return;
} var SomeOriginalSourceElement; var SomeOriginalSourceElementClass; SomeSrcElement = window.eventsrcElement; if(SomeSrcElement = null)
{ window. event.returnValue = true; return;
}
SomeOriginalSourceElement = window.eventsrcElement; //alert(SomeOriginalSourceElement.outerHTML); SomeOriginalSourceElementClass = SomeSrcElement.className.toLowerCaseO; while(SomeSrcElement.className.toLowerCase() != "garni")
{ if(SomeSrcElement.id.indexOf( "Content") > 0)
{ varSomeScrollComponent=SomeSrcElement.componentFromPoint(window. eventx, window.event.y); if(SomeScrollComponent != "")
{ window.eventreturnValue = true; d = 0; return;
} if(ZGet(GetBoxIndex(SomeSrcElementid), "Editing") == "true")
{ window.eventreturnValue = true; d = 0; return; }
}
SomeSrcElement = SomeSrcElement.parentElement; if((SomeSrcElement.tagName=="A")H(SomeSrcElement.tagName=="FONT") H(SomeSrcElement.tagName == "IMG")) { return;
} } if(SomeSrcElement.className.toLowerCase() != "garni") { window. event.returnValue = true; return;
} if(SomeObjectToMove == null) {
SomeObjectToMove = SomeSrcElement;
}
SomeObjectToMove. setCapture();
Rai seObj ect(S omeObj ectToMove) ; d=l; ox=window. event, off setX; oy=window.event.offsetY ;
//alert(window.event.offsetParent); var SomeDelta; SomeDelta = 20; if(window.event.offsetY < 50)
{
SomeDelta = 20;
} //ZInfo("SomeOriginalSourceElementClass=='likemenustatus"1,
SomeOriginalSourceElementClass=='likemenustatus'); if((window.event.ctrlKey==false)&&((SomeOriginalSourceElementCIass== 'likemenustatusOIICCSomeObjectToMove. style. pixeIWidth-ox<SomeDelta)&& (SomeObjectToMove.style.pixelHeight -oy< SomeDelta))))
{
//RESIZING
//window.status=('Resize'+SomeOriginalSourceElementClass+SomeObjectToMove. style.pixelWidth +":"+ox+":"+SomeObjectToMove.style.pixelHeight+":"+oy); //SomeObjeciToMove.style.border d=2; lastX = window .eventxlientX; lastY = window.event.clientY; SomeObjectToMove.style.cursor = "SE-resize"; SetBorderOfObject(SomeObjectToMove, "resize");
} else
{
//MOVING AdjustX=SomeObjectToMove.style.pixelLeft-(document.body.scrollLeft+ window.event.x-ox);
AdjustY=SomeObjectToMove.style.pixelTop-(document.body.scrollTop -t-window.event.y-oy);
SomeObjectToMove.style.cursor = "hand"; SetBorderOfObjectCSomeObjectToMove, "move");
> } function onmousemoveHandlerMover()
{ if(window.event.button == 2)
{
RightMouseButtonClicked = true;
} else {
RightMouseButtonClicked = false; }
if(d==O)
return; if(SomeObjectToMove == null)
{ return; } if(MoveOn!yWithControlKey == true)
{ if(window.event.ctrlKey == false)
{ MoveOptionControl.style.fontWeight = 'bold1;
MoveOptionControl.style.backgroundColor = 'red1; window, eventxeturn Value = true; d = 0; return; }
} if(d == l)
{
if((SeIectedZBoxes.trim()=="")ll(IsInSelectedZBoxes(SomeObjectToMove.id)
= false))
{
ResizeBox(SomeObjectToMove.id,document.body.scrollLeft+window.event. x-ox+AdjustX, document.body.scrollTop+window.event.y-oy+ AdjustY, null, null)
} else
{ var LeftChange = (document.body.scroIlLeft+window. event.x-ox+ AdjustX) - SomeObjectToMove.style.pixelLeft; var TopChange = (document.body.scrollTop+window. event.y-oy+ AdjustY) - SomeObjectToMove.style.pixelTop;
ChangeSelectedObjects(LeftChange, TopChange, 0, 0); } } else if(d == 2) { var thisX = window.eventclientX; varthisY = window.eventclientY; if((SelectedZBoxes.trim()=="")lt(IsInSelectedZBoxes (SomeObjectToMove.id) == false)) {
ResizeBox(SomeObjectToMove.id,null,null, SomeObjectToMove. style.pixelWidth+(thisX-lastX),SomeObjectToMove.style.pixeIHeight+(thisY-lastY));
} else {
ChangeSelectedObjects(0, 0, (thisX - lastX), (thisY - lastY));
window.status="("+SomeObjectToMove.style.pixelLeft+":"+SomeObjectToM ove. style.pixelTop+":"+SomeObjectToMove.style.pixelWidth+":"+SomeObjectToMove.st yle. pixelHeight + ")";
} lastX = thisX; lastY = thisY;
} window.status="("+SomeObjectToMove.style.pixelLeft+":"+SomeObjectToMove. style.pixelTop+":"+SomeObjectToMove.style.pixelWidth+":"+SomeObjectToMove.style. pixelHeight + ")"; if(event.shiftKey == true)
{
ExpandBackground();
SomeObjectToMove.scrollIntoViewCfalse); . } } function onmouseupHandlerMover() { if(window.event.button === 2)
{
RightMouseButtonClicked = true;
} else
{
RightMouseButtonClicked = false;
} if(d==O) return; if(SomeObjectToMove == null)
{ return;
} if(MoveOnly WithControlKey == true)
{ if(window.event.ctrlKey == false)
{
MoveOptionControl.style.fontWeight = 'bold1; MoveOptionControl.style.backgroundColor = 'white1; window.eventreturn Value = true; d = 0; return;
} } if(d == l) {
if((SelectedZBoxes.trim()=="")ll(IsInSelectedZBoxes(SomeObjectToMove.id) == false))
ResizeBox(SomeObjectToMove.id,document.body.scrollLeft+window.event. x-ox+AdjustX,document.body.scrollTop+window.event.y-oy + AdjustY, null, null);
} else { var LeftChange=(document.body.scrollLeft+window.event. x-ox+AdjustX)-SomeObjectToMove.style.pixelLeft; varTopChange=(document.body.scrollTop+window.event. y-oy+AdjustY)-SomeObjectToMove.style.pixelTop; ChangeSelectedObjects(LeftChange , TopChange, 0, 0);
} } else if(d == 2)
{
//window.status=SomeObjeciToMove.style.pixelWidth+":"+SomeObjectToMove. style.pixelHeight;
} d=0; SomeObjectToMove. style. cursor = "hand";
SetBorderOfObjectCSomeObjectToMove, "none"); ExpandBackground(); if (S omeObjectToMo ve. sty Ie. pi xel Left>document body . scrol 1 Lef t+document.body . clientWidth) {
SomeObjectToMove.scrollIntoViewCfalse);
} SomeObjectToMove.releaseCaptureQ;
//LowerObjectζSomeObjectToMove); SomeObjectToMove = null;
} function onClickEventHandlerO {
//d=0; var sourceElementControl = window.eventsrcElement; if(window.event.srcElement.className.indexOf("m01") > -1)
{ while(sourceElementControl.tagName != "A")
{ sourceElementControl = sourceElementControl.parentElement;
} } else
{
// should not step through above body. while((sourceElementControl.tagName!= "A")&&(sourceElementControl. tagName != "BODY")) { sourceElementControl = sourceElementControl.parentElement;
}
} if(sourceElementControl.tagName == "A") { if(sourceElementControl.href.indexOf("javascript:") == -1)
{
BTo(sourceElementControl .href) ; window. event.returnValue = false; GetEventCancelledO;
} } }
function ResizeBox(SomeBox, LeftValue, TopValue, WidthValue, HeightValue)
{
Just resize.
} var BoxSteps= 1 ; //var ix=0; function DoNew()
{ var SomeNew Window; //ix = ix + l; ix = FindNextEmptySpace();
SomeNewWindow=GetStringReplaced(document.all("DanySpace").outerHTML,
"Dany", (ix + "")); document.all("bg").insertAdjacentHTML('BeforeEnd', SomeNewWindow); document.all(ix+"Space").style.pixelLeft=document.all(ix+"Space") style.pixe
ILefM-
(20*BoxSteps); document. all(ix+"Space").style.pixeITop=document.all(ix+"Space").style.pixelTop+ (20*BoxSteps); document.all(ix+"Space").style.visibility="visible"; document.all(ix+"Space").style.display ="inline"; AttachEvents(document.all(ix+"Space")); if(BoxSteps >= 10)
{ BoxSteps = 1 ;
} else
{
BoxSteps = BoxSteps + 1; }
RaiseObject(document.all(ix+"Space")); ZRaiseEventøx, "CHANGE_START"); return(ix+"Space");
} function ToggleEdit(SomeObjectId, SomeFeedbackld, Coverld, Barld)
{ var SomeObject = document.all(SomeObjectld); var SomeCoverObject = documentall(SomeObjectId.split("Content")[0]); var SomeFeedback = document.all(SomeFeedbackId); var SomeCover = document.alI(CoverId); currentState = SomeObject.isContentEditable; newState = ! currentState; SomeObjectcontentEditable = newState; if(newState == true)
{
SomeCoverObject.style.border='5px ridge pink';
SomeCoverObject.style.padding='5px'; SomeCoverObject.style.backgroundColor="pink";
//DetachEvents(S omeCo ver ) ;
AttachEventCancellers(SomeCoverObject);
SomeFeedback.innerHTML='Done';
ShowBar(BarId, true); SomeObjectstyle.cursor = "text";
ZSet(SomeObjectId, "Editing", true);
ZRaiseEvent(SomeObjectId, "CHANGE_START");
} else {
SomeCoverObject.style.border='5px solid white';
SomeCoverObject.style.padding='5pxl;
SomeCoverObject.style.backgroundColor="white";
//AttachEvents(SomeCover); DetachEventCancellers(SomeCoverObject);
SomeFeedback.innerHTML='Edit';
ShowBar(BarId, false);
Someθbject.style.cursor = "hand";
ZSet(SomeObjectId, "Editing", false);
ZRaiseEvent(SomeObjectId, "CHANGE_END "); } } function CopyAndDragBox(SomeSpaceContent)
{ event.dataTransfer.setData("Text", document.all(SomeSpaceContent).innerHTML);
} function CopyBox(SomeSpaceContent)
{ returnCwindow.clipboardData.setDataCText1, document.aH(SomeSpaceContent). innerHTML));
} function CopyBoxPlus(SomeSpaceContent)
{ varNewContent=window.clipboardData.getData('Text')+ document.all (SomeSpaceContent).innerHTML; returnC window. clipboardData.setData('Text',NewContent)); } function ZContentSet(ZBoxId, SomeContent)
{ var SomeBoxID = GetBoxIndex(ZBoxId); if(typeof SomeContent != "undefined") {
ZRaiseEvent(SomeBoxID , "CHANGE_START"); document.all(SomeBoxID + "SpaceContent").innerHTML = SomeContent;
}
ZRaiseEvent(SomeBoxID , "CHANGE_END"); } var ToEvaluateLinkNumber = 0; var SomeRegularExpression ; function AddContentCode(SomeLink, AddWindowName)
if(SomeLink.slice(0,7) == "ZCUBES:")
{
// This is a restore. return;
} var NewWindowName; var SomeLeftPosition; var SomeTopPosition; if(typeof AddWindowName == "undefined")
{
AddWindowName = false;
}
NewWindowName = ""; if(SomeLink == null)
{ return(NewWindowName);
} if(window.event != null) {
SomeLeftPosition = window.eventx + document.body.scrollLeft; SomeTopPosition = window.eventy + document.body.scroHTop; //alertCRightMouseButtonClicked); if((window.event.ctrlKey = true) Il (RightMouseButtonClicked == true)) {
//alertC'ControlPressed"); SetSearchBoxFrame(SomeLink); return(New Wi ndowName) ;
} } else
{
SomeLeftPosition = 10;
SomeTopPosition = 10;
}
//alert("Creating Box"); NewWindowName = DoNew(); document.aIl(ix+"Space").style.visibility = "visible"; document.all(ix+"Space").style.width = "250px"; document.all(ix+"Space")-styIe.height= "15px"; documentall(ix+"Space").style.left= SomeLeftPosition ; document.all(ix+"Space").style.top = SomeTopPosition ; document.all(ix+"Space").contentEditable = false; if(AddWindowName == true)
{
SomeLink = SomeLink + "&box=" + NewWindowName;
} //document.all(ix+"Space").style.filter='progid:DXImageTransform.Microsoft.
Alpha( Opacity=100)';
SomeLink = SomeLink.trim() SomeLink = GetlmageURL(SomeLink); if((IsStartsWith(SomeLink,"http://")==true)ll(IsStartsWith(SomeLink,"https://") ==true))
{
// DO FOR EACH TYPE OF FILE.
if((lsEndsWith(SomeLink,"jpg")==true)||(lsEndsWith(SomeLink,".jpeg"==true) ||(lsEndsWith(SomeLink,".gifI)==true)||(lsEndsWith(SomeLink1".png")==true)) {
document.aπ(ix+"SpaceContent").innerHTML="<divstyle='overflow:auto;scroll: both;'ximgborder=I0lsrc=l"+SomeLink+t"width=l100%ltitle="onclick='if(this.readyState ==\"uninitiaIized\"){this.title=\"Picture may not be at this address (or) the picture server may be too slow\";}'x/imgx/div>";
ZFit(ix); }
else if(IsEndsWith(SomeLink, ".swf ')==true)
{ document.all(ix+"SpaceContent").innerHTML=
'<divstyle="overflow:auto;scroll:both;">'+ '<objectclassid="clsid:d27cdb6e-ae6d-l lcf-96b8-444553540000"codebase=
"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version= 7,0,0,0" width="100%" height="100%" id="index" align="middle">1 +
'<param name="alIowScriptAccess" value="sameDomain" />' +
'<param name= "movie" value='" + SomeLink + '" />' + '<param name="menu" value="false" />' +
•<param name="quality" value="autolow" />' +
(<param name="wmode" value="opaque" />' +
'<param name="bgcolor" value="#000000" />' +
'</object>' + '</div>';
> etc.
}
ZRaiseEvent(ix, "CHANGE_END"); return(NewWindowName);
}
/* HOMELOG_AE_II.JS */ function onmousedownSelectorHandlerO
{ var SomeSrcEIement; selectd = 0; if(window.event.srcElement == document.all("bg"))
{ selectd = 1 ; ClearSelectedZBoxesO;
// START CREATING MARKERS } }
function onmousemoveSelectorHandlerO
{ if(selectd==O) return; window. status=window.event.clientX + ":" + window .eventcIientY;
// TRACK MARKERS
} function onmouseupSelectorHandler()
{ if(selectd==O) return;
// END MARKER AND HGURE SELECTION } } function AddToSelectedZBoxes(SomeZBoxName)
{ } function ClearSelectedZBoxes()
{ } function ChangeSelectedObjects(LeftChange, TopChange, WidthChange, HeightChange)
{
} function IsInSelectedZBoxes(SomeZBoxName) { } function AlignSelectedZBoxes(SomeTags)
{
// THROUGH ZBOX ALGEBRA SET THE POSITIONING } function GetListOfAttributes(SomeAttribute)
{
}
function SetListOfAttributes(SomeAttribute, SomeValue, Somelncrement) {
} function FindAggregate(SomeString, SomeAggregateFunction) {
// TO CALCULATE MIN, MAX, AVG, etc.
} functionApplyFunctionToBoxes(SomeSelectedZBoxes,SomeFunction,InsideFlag, IsGiveResult) {
ApplyFunctionToSeIectionBox(SomeFunction,InsideFlag,IsGiveResult,Some SelectedZBoxes);
} functionApplyFunctionToSelectionBox(SomeFunction,InsideFlag,IsGiveResult,Some SelectedZBoxes)
{
// THROUGH EVAL, EVAL THE SELECTION BOXES TO THIS FUNCTION
} function ApplyFunctionToSelectionfSomeFunction) { return(ApplyFunctionToSelectionBox(SomeFunction, false, true));
} function Apply FunctionToSelectionOnContent(SomeFunction)
{ return(ApplyFunctionToSelectionBox(SomeFunction, true, true));
} function Add()
{
ZALGEBRA - ADD TWO BOXES } function MultiplyO
{
ZALGEBRA - MULTIPLY TWO BOXES
}
\
function Divide()
{
ZALGEBRA - DIVIDE BOX LINKS INTO NEW WINDOWS WITH EXPANSION while(i<length) {
HtmlString="; for(j=Oy<DivideBy;j++)
{ if (a [i ]==undef ined) {
HtmlString+=";
} else
{ var SomeNewWindow = AddContentCodeAndExpand(a[i].href);
Mo veTo(SomeNew Window , NewX, New Y); NewX = NewX + 25; New Y = NewY + 25;
}
} } }
Table 3: Handwriting
/* zCube Browser Code */
/* zcubes.aspx */
<xml : namespace ns= " urn : schemas-microsoft-com : vml " prefi x=" v "/> <style type="text/css"> v\:* { behavior: url(#default#VML);}
</style>
Insert recursive browser
Insert zcube browser /* DRAWBOARD.HTM */
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www. w3.org/1999/xhtml" >
<head>
<title>Drawing Board</title> <link rel="Stylesheet" href="DrawBoard.css" type="text/css" />
<script language="JavaScript"> function fnlnit()
{ document.all.Draw Area, style, height = DrawBoard.offsetHeight; } function fnResize()
{ documentall.DrawArea.style.height = DrawBoard.offsetHeight;
} var Draw Flag = false; var SelectionlmageSelected = null; function ToggIeDrawStatus()
{
DrawFlag = IDrawFlag; if (DrawFlag)
{
EnableAHSelectionlmages(true);
//var AlIShapelmages = ShapeImagesSelectionArea.aIl.tags("img");
AUShapeImages[i].className = "SelectionlmageRegular";
} . } } } function SwitchSelectionlmageCThisShapelmage)
{ if (IDrawFlag) return;
SelectionlmageSelected = ThisShapelmage; //var AllShapelmages = ShapeImagesSelectionArea.all.tags("img"); var AllShapelmages = SelectionArea.all.tags("img"); for(var i=0;i< AHShapelmages.length ; i++)
{ if (AUShapeImages[i] != ThisShapelmage) {
AllShapeImages[i].className = "SelectionlmageRegular";
} else
{ AllShapeImages[i].className = "SelectionlmageSelected"; varImageIndex=parseInt(AlIShapeImages[i].attributes.getNamedItem("imageindex"). value) MapSelectionlmagelndexToElement(Imagelndex);
} } } function EnableAllSelectionlmagesCEnableFlag)
{
SelectionlmageSelected = null;
//var AllShapelmages = ShapeImagesSelectionArea.all.tags("img"); var AllShapelmages = SelectionArea.all.tags("img"); for(var i=0;i< AHShapelmages.length ; i++)
{ if (EnableFlag)
63
{
AHShapeImages[i].className = "SelectionlmageRegular";
} else //Disable all images {
AIlShapeImages[i].className = "SelectionlmageDisabled"; } } } function MapSelectionlmagelndexToElementCImagelndex)
{ varShapeName ="none";//This is the draw flag to be passed to the drawing area in a iframe var Editingθption="none" //This is the editing flag to be passed to the drawing area in a iframe if (Imagelndex <= 0)
{ document.forms[0].ShapeSelection.value = "-1"; document.forms[0].EditingSelection.value = "100"; return;
} if (Imagelndex > 100)
{ document.forms[0].ShapeSelection. value = "0"; document.forms[0].EditingSelection.value = Imagelndex; return;
} documentforms [O]. ShapeSelection. value = Imagelndex; document.forms[0].EditingSelection. value = "100"; /* sw i tch(lmagel ndex)
{ case 1: ShapeName = "freeline"; break;
64
case 2: ShapeName = "polyline"; break; case 3: ShapeName = "bezierline"; break; case 4: ShapeName = "rect"; break; case 5: ShapeName = "roundrect"; break; case 6: ShapeName = "oval"; break; case 7: ShapeName = "heart"; break; case 8: ShapeName = "star"; break; case 9: ShapeName = "triangle"; break; case 101: EditingOption = "select"; ShapeName = "editing"; break; case 102: EditingOption = "resize"; ShapeName = "editing"; break; case 103: EditingOption = "move"; ShapeName = "editing"; break; case 104: EditingOption = "make_stencil"; ShapeName = "editing"; break; case 105: EditingOption = "edit_polyline"; ShapeName = "editing"; break; case 106: EditingOption = "erase"; ShapeName = "editing"; break; default: break;
}
document.forms[0].ShapeSelection.value = ShapeName; documentforms[0].EditingSelection. value = EditingOption; */
>
</script>
</head>
<body id="Body" scroll="no" onload="fnlnit()" onresize="fnResize()"> <table id="DrawBoard" border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
<tr>
<td align="center" valign="top" style="background:peachpuff; width: 140px">
<form action=""> <br/>
<inputtype="button"id="DrawControlButton"class="Button"value="CIicktoDraw" onclick="ToggleDrawStatus()" />
<br /xbr />
65
<!-- Images for all available shapes -->
<!-- Important: Need to change javascript function MapShapelmageToSelection switch statement if the sequence of images being changed — >
<div id="SelectionArea"> . <div id="ShapeImagesSelectionArea" style="text-align:left;">
<imgsrc="Images/FreeLine.gif"alt="FreeLine"class="SelectionImageDisabled" imageindex="l"oninit="SetDefaultSelectionImageSelected(this)"onmouseover= "BrowseSelectionImages(this)"onclick="SwitchSelectionImage(this)"/>
<imgsrc="Images/PoIyLine.gif"alt="PolyLine"class="SeIectionImageDisabled" imageindex="2"onmouseover="BrowseSelectionImages(this)"oncHck="SwitchSelection Image(this)"/>
< i m g s r c = " I m a g e s / B e z i e r L i n e . g i f " a l t = " B e z i e r
Line"class="SelectionImageDisabled" imageindex="3"onmouseover="BrowseSelectionImages(this)"onclick="SwitchSelection Image(this"/>
<imgsrc="Images/Rect.gif'aIt="RectangIe"class="SelectionImageDisabled" imageindex="4"onmouseover="BrowseSelectionImages(this)"onclick="SwitchSelection Image(this)"/>
<imgsrc="Images/RoundRect.gif"alt="RoundRectangle"class="SelectionImage Disabled"imageindex="5"onmouseover="BrowseSeIectionImages(this)"onclick= "SwitchSelectionImage(this)'7>
<imgsrc="Images/Oval.gif"alt="Oval"cIass="SelectionImageDisabled" imageindex="6"onmouseover="BrowseSelectionImages(this)"onclick="SwitchSelection Image(this)'V> <imgsrc="Images/Heart.gif"alt='Ηeart"class="SelectionImageDisabled" imageindex="7"onmouseover="BrowseSelectionImages(this)"onclick="SwitchSelectionI mage(this)"/>
<imgsrc="Images/Star.gif"alt="Star"class="SelectionImageDisabled"imageindex=" 8"onmouseover="BrowseSelectionImages(this)"onclick="SwitchSelectionImage(this)"/> <imgsrc="Images/Triangle.gif"alt="Triangle"class="SelectionImageDisabled" imageindex="9"onmouseover="BrowseSelectionImages(this)"onclick="SwitchSelection Image(this)"/>
</div>
<!--
<div style="display:none">
<!— Hidden shape selection associated with shape images display and action above ->
66
<div>
<select id="ShapeSelection" style="WIDTH: 100px">
<optionvalue="-l "selected="selected">none</option> <!— This option is the draw flag ~> <option value="0">editing</option>
<option value="l ">freeline</option>
<option value="2">polyline</option>
<option value="3">bezierline</option>
<option value="4">rect</option> <option value="5">roundrect</option>
<option value="6" >oval</option>
<option value="7" >heart</option>
<oρtion value="8" >star</option>
<option value="9" >triangle</option> </select>
</div>
<br />
<div id="EditingImagesSelectionArea" style="text-align:left;"> <imgsrc="Images/Select.gif"alt="Select"cIass="SelectionImageDisabled" imageindex="101"onload="SetDefaultSelectionImageSelected(this)"onmouseover= "BrowseSelectionImages(this)"onclick="SwitchSelectionImage(this)'7>
<imgsrc="Images/Resize.gif"alt="Resize"class="SelectionImageDisabled" imageindex="102"onmouseover="BrowseSelectionImages(this)"onclick="SwitchSelection Image(this)"/>
<imgsrc="Images/Move.gif"alt="Move"class="SelectionIπnageDisabled" imageindex="103"onmouseover="BrowseSeIectionImages(this)"onclick="SwitchSelection Image(this)'V>
<br /> <imgsrc="Images/MakeStencil.gif"aIt="MakeStencil"class="SelectionImageDisable d" imageindex="104"onmouseover="BrowseSelectionImages(this)"onclick="SwitchSelectionI mage(this)"/>
<imgsrc="Images/EditPolyline.gif"alt="EditPolyIine"class="SelectionImageDi sable d" imageindex="105"onmouseoven="BrowseSelectionImages(this)"onclick="SwitchSelection Image(this)'7>
67
<imgsrc="Images/Erase.gif"alt="Erase"class="SelectionImageDisabled" imageindex="106"onmouseoveπ=liBrowseSelectionImages(this)"onclick="SwitchSelection Image(this)'V>
</div> <!--
<div style="display:none"> ^.
<!— Hidden shape selection associated with shape images display and action above - -> <div>
<select id="EditmgSelection" style="WIDTH: 100px">
<option value="100 selected="selected">none</option> <!~- This option is the editing flag --> <option value="101">select</option>
<option value=" 102">resize</option> <option val ue=" 103 ">move</option> <option value=" 104">make_stencil</option> <option value=" 105">edit_polyline</option> <option value="106" >erase</option>
</select> </div> </div> </form> </td>
<td align="center" valign="top" style="border:0">
<iframeid="DrawArea"name="DrawArea"src="DrawArea.htm"width="100%"frameborder ="0"scrolling="no"x/iframe>
</td> <!--
<td align= "center" valign="top" style="border:0"> <iframeid="DrawArea2"name="DrawArea2"src="DrawArea2.htm"width="100%"fra meborder=lO"scrolling-"no"></iframe>
</td>
68
— >
</tr>
</tbody>
</table> </body>
</html>
/* DRAWAREA.HTM */
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns:v="urn:schemas-microsoft-com:vml"> <head>
<title>UntitIed Page</title>
<style> vV* { behavior: url(#defau!t#VML); }
</style> <script language="javascript" src="util.js"x/script>
<script language="javascript" src="homeen.js"x/script>
<script language="javascript" src="bocsiteae.js"x/script>
<script Ianguage="javascript" src="vmlselector.js"x/script>
<script language="javascript" type="text/javascript"> // <!CDATA[ var DrawStartFlag = false; var PolyLineDrawingFlag = false; var NumberOfVMLSahpes = 0; var DrawTarget = null; var OriginalX=0, OriginalY=0; function GenerateVMLCode(ShapeName)
{ if (DrawTarget == null)
{ // Generate a DrawTarget div on too of everything
DrawTarget = document.createElementC'div");
DrawTargetJd = "DrawTarget";
DrawTargetstyle.zIndex = 101;//This will be dynamically generated and on top of the
69
current max layers
DrawTarget. style, background = "peachpuff"; DrawTarget. style, position = "absolute"; DrawTarget.style.left = "Opx"; DrawTarget.style.top = "Opx";
DrawTarget.style.width = document body.offsetWidth; DrawTargetstyle. height = documentbody.offsetHeight; document. body.appendChild(DrawTarget);
} DrawStartFlag = true; var VMLCode = null; var x = event.clientX - DrawTargetstyle.pixelLeft; var y = eventxIientY - DrawTargetstyle.pixelTop;
OriginalX = x; OriginalY = y;
/* var coordoriginX = 0; var coordoriginY = 0; var coordsizeX = DrawTarget.style.pixelWidth; var coordsizeY = DrawTargetstyle.pixelHeight; var s=lcoordorigin="'+coordoriginX+"+coordoriginY+"'coordsize="' coordsize+" +coordsizeY + "";
*/
//VMLCode ='<v:shape id="VMLShape' + NumberOfVMLSahpes + '" filled = "f" strokecolor = "black" ' + s + ' style="position:absolute;top:Opx;left:Opx;width:' + documentbody.offset Width + 'px;height:' + document. body.offsetHeight + 'px" coordsize = "'+ document.body.offsetWidth+1,1 + document.body.offsetHeight + '"path ="m ' + x +',' + y +' I ' + x + 7 + y + ' e"x/v:shape>'; switch(ShapeName) { case "freeline": NumberOfVMLShapes++;
VMLCode = '<v:shape id="VMLShape' + NumberOfVMLSahpes + '" filled = "f ' strokecolor = "black" style="position:absolute;top:Opx;left:Opx;width:' + document.body .offsetWidth + *px;height:' + document.body.offsetHeight + 'px" coordsize ="' + document.
70
body.offsetWidth +',' + documentbody.offsetHeight +"' path ="m' + x +',' + y +' 1' + x + ',' + y + ' e"x/v:shape>';
VMLCode With Wrapper = '<span id="VMLShape' + NumberOfVMLSahpes + "Wrapper" contenteditable="false" onmousedown="StartEditMode(this)">' + VMLCode + '</span>'; // Wrap span element around VML element gives VML ability to accept events and actions such as move or delete
DrawTarget.insertAdjacentHTML("BeforeEnd", VMLCodeWith Wrapper); DrawTarget.onmousemove = GenerateFreeShape; DrawTarget-onmouseup = Endbraw; break; case "rect": NumberOfVMLSahpes-H-;
VMLCode = '<v:rect id="VMLShape' + NumberOfVMLSahpes + '"strokecolor = "black" style="position:absolute; left: ' + x + '; top: ' + y + '; width: lpx; height: lpx;"x/v:rect>';
VMLCode With Wrapper = '<span id="VMLShape' + NumberOfVMLSahpes + 'Wrapper" contenteditable="false" onmousedown="StartEditMode(this)">' + VMLCode + '</span>'; // Wrap span element around VML element gives VML ability to accept events and actions such as move or delete
DrawTargetinsertAdjacentHTMLC'BeforeEnd", VMLCode With Wrapper); DrawTargetonmousemove = GenerateRegularShape; DrawTargetonmouseup = EndDraw; break; case "roundrect": NumberOfVMLSahpes-H-;
VMLCode = '<v: roundrect id="VMLShape' + NumberOfVMLSahpes + '" strokecolor = "black" style="position:absolute; left: ' + x + '; top: ' + y + '; width: lpx; height: lpx;"x/v:roundrect>';
VMLCodeWith Wrapper = '<span id="VMLShape' + NumberOfVMLSahpes + 'Wrapper" contenteditable="false" onmousedown="StartEditMode(this)">' + VMLCode + '</span>'; // Wrap span element around VML element gives VML ability to accept events and actions such as move or delete
DrawTarget.insertAdjacentHTML("BeforeEnd", VMLCodeWith Wrapper); DrawTarget.onmousemove = GenerateRegularShape; DrawTargetonmouseup = EndDraw;
71
W 2
break; case "oval": NumberOfVMLSahpes++;
VMLCode = '<v:oval id="VMLShape' + NumberOiVMLSahpes + '" strokecolor = "black" style="position:absolute; left: ' + x + '; top: ' + y + '; width: lpx;height: lpx;" x/v:oval>';
VMLCodeWith Wrapper = '<span id="VMLShape' + NumberOfVMLSahpes + 'Wrapper" contenteditable="false" onmousedown="StartEditMode(this)">' + VMLCode + '</span>'; // Wrap span element around VML element gives VML ability to accept events and actions such as move or delete
DrawTarget.insertAdjacentHTML("BeforeEnd", VMLCodeWith Wrapper); DrawTargetonmousemove = GenerateRegularShape; DrawTargetonmouseup = EndDraw; break; case "polyline": if (IPoIyLineDrawingFlag)
{
NumberOfVMLShapes++;
VMLCode = '<v:shape id="VMLShape' + NumberOfVMLSahpes + '" filled = "f'strokecolor = "black" style="position:absolute;top:Opx;left:Opx;width:' + document. body.offsetWidth + 'px;height:' + document, body. offsetHeight + 'px" cσordsize ='" + documentbody.offsetWidth + ',' + documentbσdy.offsetHeight + •" path ="m' + x +',' + y +' I' + x + V+ y + ' e"x/v:shape>';
VMLCode With Wrapper = '<span id="VMLShaρe' + NumberOfVMLSahpes + 'Wrapper" contenteditable="false" onmousedown="StartEditMode(this)">' + VMLCode + '</span>'; // Wrap span element around VML element gives VML ability to accept events and actions such as move or delete
DrawTarget.insertAdjacentHTML("BeforeEnd", VMLCode With Wrapper); PolyLineDrawingFlag = true; DrawTarget.onmousemove = GeneratePolyLineWithoutNewPoint;
DrawTarget.onmousedown = GeneratePolyLineWithNewPoint; document, body. ondblclick = EndDraw;
} break; case "bezierline": break; case "heart":
72
case "star": case "triangle": case "abc":
NumberOfVMLSahpes++; VMLCode = '<v:shape type="#' + ShapeName + '" id="VMLShape' +
NumberOfVMLShapes + '" strokecolor = "black" style="position:absolute; left: ' + x + '; top:1 + y + '; width: lpx; height: lpx;"x/v:oval>?;
VMLCode With Wrapper = '<span id="VMLShape' + NumberOfVMLSahpes + 'Wrapper" contenteditable="false" onrnousedown=="StartEditMode(this)">' + VMLCode + '</span>'; // Wrap span element around VML element gives VML ability to accept events and actions such as move or delete
DrawTarget.insertAdjacentHTML("BeforeEnd", VMLCodeWith Wrapper); DrawTarget.onmousemove = GenerateRegularShape; DrawTarget.onmouseiip = EndDraw; break; t default: // Draw freeline by default
VMLCode = '<v:shape id="VMLShape' + NumberOfVMLSahpes + '" filled = "f" strokecolor = "black" style="position:absolute;top:Opx;Ieft:Opx;width:' + document. body. offsetWidth + 'px;height:' + documentbody.offsetHeight + 'px" coordsize ="' + document. body.offsetWidth + ',' + document. body. off setHeight + '" path ="m' + x +',' + y +' 1' + x + V + y + ' e"x/v:shape>';
VMLCode With Wrapper = '<span id="VMLShape* + NumberOfVMLSahpes + 'Wrapper" contenteditable="false" onmousedown="StartEditMode(this)">' + VMLCode + '</span>'; // Wrap span element around VML element gives VML ability to accept events and actions such as move or delete
//VMLCodeWith Wrapper = '<span id="VMLShape' + NumberOfVMLSahpes + 'Wrapper" contenteditable= "false" unselectable="on" onmousedown="StartEditMode(this)" >'+ VMLCode + '</span>'; // Wrap span element around VML element gives VML ability to accept events and actions such as move or delete
DrawTargetinsertAdjacentHTMLC'BeforeEnd", VMLCodeWith Wrapper); DrawTarget.onmousemove = GenerateFreeShape; DrawTarget.onmouseup = EndDraw; break; }
//Debug
DebugDiv.innerText = DrawTarget.outerHTML; }
73
function GenerateFreeShape()
{ if (eventbutton != 1) return false; if (IDrawStartFlag) return false; var x = eventclientX - DrawTargetstyle.pixelLeft; var y = eventclientY - DrawTarget.style.pixelTop; varVMLShapeElement=document.getEIementById("VMLShape"+ NumberOf VMLShapes); var VMLCode = VMLShapeElementouterHTML;
//VMLCode=VMLCode.replace('e"></v:shape>\eventclientX+7eventclientY+le"> </v:shape>');
//Add a point VMLCode = VMLCode. replace('e">', x + V + y + ' eV); VMLShapeElementouterHTML = VMLCode;
//VMLShape.outerHTML =VMLShape.outerHTML.replace('e"x/v:shape>t, event. clientX +',!+event.clientY +'e"x/v:shape>');
//document.body.insertAdjacentHTMLC'AfterBegin", '<p>my test mouse move</p>'); } function GenerateRegularShape()
{ if (eventbutton != 1) return false; if (IDrawStartFlag) return false; var x = event.clientX - DrawTargetstyle.pixelLeft; var y = eventclientY - DrawTarget.style.pixelTop; var width, height; varVMLShapeEIement=document.getElementById("VMLShape"+NumberOfVML Shapes); if ( x >= OriginalX)
{ width — x - OriginalX + 1 ;
74
} else
{ width = OriginalX - x + 1; VMLShapeElement.style.left = x + "px";
}
if ( y >~ OriginalY)
{ height = y - OriginalY + 1 ;
} else
{ height = OriginalY - y; VMLShapeElement.style.top = y + "px";
}
VMLShapeElement.style.width = width + "px"; VMLShapeElementstyle.height = height + "px";
> function GeneratePolyLineWithόutNewPoint() // onmousemove
{ if (event. button != 1) return false; if (JDrawStartHag) return false;
GeneratePolyLine(false);
} function GeneratePolyLineWithNewPoint() // onmousedown for polyline
{ if (event, button != 1) return false;
// secondary onmousedown event handler needs to check DrawFlag as well! var ShapeName = null;
75
try ,
{
//ShapeName = parent.document.forms[0].ShapeSeIection. value;
ShapeName= parent.document.forms[0].ShapeSelection.options[parent.document. forms[0].ShapeSelection.selectedIndex].text;
} catch (e)//when the parent window or draw shape selection area does not exist or does not behave properly
{ ShapeName = "freeline"; // default shape
} var DrawFlag = false;//User has to specify explicitly if he/she wants to draw or not in the parent window
DrawFlag = (ShapeName != "none"); if (IDrawFlag)
{
EndDrawO; return false;
} if(ShapeName!="polyIine")//shape selection has been changed, need to give onmousedown back to original event handler and invoke the original handler
{
//Wrap up the polyline if there is no chance to detect finishing of polyline due to the selection change EndDraw(); var EditModeFlag = false; EditModeFIag = (ShapeName == "editing"); if (EditModeFlag)
{ DrawTarget.onmousedown = null;
DrawTarget. onmousedown = onmousedownSelectorHandler;
// Direct event to the right event handler onmousedownSelectorHandlerO ; }
76
else
{ '
GenerateVMLCode(ShapeName);
} return true;
}
// Now handles polyline mousedown events only if (IDrawStartFIag) return false; GeneratePolyLine(true);
} function GeneratePolyLine(AddPointFlag)
{ var x = event.clientX - DrawTarget.style.pixelLeft; var y = eventcIientY - DrawTargetstyle.pixelTop; varVMLShapeElemenl=document.getElementById("VMLShape"+NumberOfVML Shapes); var VMLCode = VMLShapeElementouterHTML; if (AddPointJFlag) // Add a point to the last {
VMLCode = VMLCode.replace('e">', x + V + y + ' e">');
} else // Change the last point
{ try
{ var VMLCodeSpIitArray = null; var New VMLCode = null; VMLCodeSpIitArray = VMLCode.split('path'); NewVMLCode = VMLCodeSplitArray[0];
NewVMLCode += 'path1;
NewVMLCode += VMLCodeSpIitArray[l].split(T)[OJ; NewVMLCode += 1I1;
77
CoordinatesArray = VMLCodeSplitArray[l].split('r)[l].splitC e')[θ].split(7); for (var i=0; i<CoordinatesArray.Iength-2; i++)
{ NewVMLCode += CoordinatesArray [i] + ','; }
NewVMLCode += x + ',' + y + ' e"x/v:shape>'; // If everything is expected
VMLCode = NewVMLCode;
} catch (e)
{
// Do nothing
} } VMLShapeElementouterHTML = VMLCode;
} function EndDraw()
{
DrawStartFlag = false; PolyLineDrawingFIag = false; // detach all other event handlers DrawTargetonmousemove = null; DrawTargetonmouseup = null; document, body.ondblclick = null; // reassign onmousedown to its initial event handler once poline drawing is finished
DrawTargetonmousedown = canvas_pnmousedown; /*
DrawTarget. onmousemove = function()
{ return false;
};
DrawTargetonmouseup = function() {
78
return false;
}; document.body.ondblclick = function()
{ return false;
};
*/
//Re-enable DrawTarget "garni" peoperty after drawing /* if (DrawTarget != null)
{
DrawTargetclassName = "garni"; AttachEvents(DrawTarget) ;
} */
//Debug //alert(DrawTarget.outerHTML);
} function canvas_onmousedown() { if (event, button != 1) return false; var ShapeName = null; try {
ShapeName= parent.document.forms[0].ShapeSelection.options[parent.document. forms[0].ShapeSelection.selectedIndex],text;
//The next line works the same as above
//ShapeName= parent.document.formsfOJ.ShapeSelection.optionsfparent.document. forms[0].ShapeSelection.selectedIndex].value;
//Debug
DebugDiv.innerText = ShapeName; }
79
catch (e)//when the parent window or draw shape selection area does not exist or does not behave properly
{
ShapeName = "freeline"; // default shape }
//Check DrawFlag var DrawFlag = faJse//User has to specify explicitly if he/she wants to draw or not in the parent window
DrawFlag = (ShapeName != "none"); if(IDrawFlag) return false;
//Check EditingFlag to determin if in drawing mode or editing mode var EditModeFlag = false;
EditModeFlag = (ShapeName == "editing"); DrawTarget= document. getElementById("DrawTarget"); if (EditModeFlag) // Editing mode
{
// Assign the group selector event handler DrawTargeLonmousedown = null; DrawTarget.onmousedown = onmousedownSelectorHandler;
// Direct event to the right event handler onmousedownSelectorHandlerO ;
} else // Drawing mode {
DrawTargetonmousedown = canvas_onmousedown; GenerateVMLCode(ShapeName); } } function StartEditMode(ThisVMLShapeWapper)
{ Il This is the event handler for each individual vml shape varEditModeFlag=(parent.document.forms[0].ShapeSelection.options[parent.document. foπns[0].ShapeSelection.selectedIndex].text == "editing");
80
if (!EditModeFlag) ., return false; // Editing mode varEditingOption=parent.document.forms[0].EditingSeIection.options[parent.document. forms[0].EditingSelection.selectedIndex].text; -
//Move
//Resize
//eventcancelBubble = true;
} /* function EndEditMode(ThisVMLShapeWapper)
{
Thi s VMLShapeWapper. onmousemove = null; ThisVMLShapeWapper.onmouseup = null; This VMLS hapeWapper.onmousedown = StartEditMode; eventcancelBubble = true;
> function HandleEditing(ThisVMLShapeWapper)
{ var x = eventclientX - DrawTarget.style.pixelLeft; var y = event.clientY - DrawTarget.style.pixelTop; var width = event.srcElement.style.pixelWidth + x - OriginalX; var height = event.srcEIementstyle.pixelHeight + y - OriginalY; eventsrcEIementstyle.pixelWidth = (width>10)?width:10; event.srcElement.style.pixelHeight = (height>10)?height: 10; eventcancelBubble = true;
} */ function window_onload() {
GenerateStencilsO;
//"garni"
DoFirstQ;
81
W
} function GenerateStencils()
{ } // ]]> </script> </head> <body style="background:peachpuff" scroll="no" onload= "return window_onload()">
<divid="DebugDiv"style="background:gray;position:absolute;left:Opx; top:0px; width:500px; height:500px; z-index:0">Lower Layer</div>
<divid="DrawTarget"unselectable=1'on"style="background:peachpuff;background-image: url('Irπages/GridLines.gif );position:absolute;Jeft: lGOpx;top: 100px;width:500px; height: 500px; z-index:100" onmousedown="return canvas_onmousedown()"x/div> <!--
<v:shapeclass="gami"id=nrlstyle="LEFT:0px;WIDTH:787px;POSmON:absoIute;TOP: Opx; HEIGHT: 546px" coordsize = "787,546" filled = "f" strokecolor = "black" strpkeweight
=".75pt"path="ml22>931122,93,124,97,128,104,132,109,137,l 17,145,126,153,137,161,150, 171,164,186,182,199,197,211,211,224,228,236,243,245,254,255,263,263,271,269,277,274, 282,279,286281,289,283,291 e"x/v:shape>
<v:oval class="gami"id=nrlstyle="LEFT:58px;WIDTH: 110px;POSITION:absolute;TOP: 73px; HEIGHT: 38px" coordsize = "21600,21600" filled = "f" strokecolor = "black" strokeweight = ".75pt"x/v:oval> <v:oval class="gami"style="LEFT:200px;WIDTH:l 10px;POSITION:absolute;TOP:200px; HEIGHT: 38px" fillcoIor="red"x/v.Oval>
— >
</body> </html>
82
Claims
1. A recursive browser system, comprising: a recursive web browser configured to recursively display one or more web pages in a browser window thereof; means for interactively editing content within the browser window; and means for storing said edited content on a computer storage medium.
2. The recursive browser system of claim 1, further comprising means for launching a user-requested action.
3. The recursive browser system of claim 2, wherein said means for launching a user-requested address action is an action bar within a recursive browser window or an address bar located in a browser platform associated with the recursive web browser which triggers the action bar.
4. The recursive browser system of claim 1, wherein said means for editing content comprises: a process for dragging and dropping one or more web objects or html code into the browser window and transforming said object(s) or html code into one or more zBoxes or zCubes; or a process for creating an object within a zFrame of said browser window; or a combination thereof.
5. The recursive browser system of claim 4, further comprising a process for displaying said dropped object(s) within said zBox(es) or zFrames.
6. The recursive browser system of claim 4, further comprising a process for user-implemented positioning of said said zBox(es) or zFrames within the browser window.
83
7. The recursive browser system of claim 4, further comprising a process for separately saving one or more of said zBox(es) or zFrames containing said dropped object(s) as a file, a zBlock or an email or to other computer storage media.
8. The recursive browser system of claim 4, further comprising a process for saving the entirety of said objects within the browser window as a retrievable user-interactive zPage.
9. The recursive browser system of claim 4, wherein said dropped object is a hyperlink or URL, script, an action or a locator contained within a zBox in said browser window.
10. The recursive browser system of claim 4, wherein said dropped object is a text, an image displayed within a zBox or zFrame in said browser window.
11. The recursive browser system of claim 4, wherein said user-created object is a text or a drawing or handwritten content in VML, VRML or SVG.
12. A recursive web browser, comprising: a browser window configured to recursively display one or more web pages therewithin; means for launching a user-requested address or action; means for interactively editing content within the browser window; and means for storing said edited content to a computer storage medium.
13. The recursive web browser of claim 12, wherein said means for launching a user-requested address action is an action bar within a recursive browser window or an address bar located in a browser platform associated with the recursive web browser which triggers the action bar.
14. The recursive web browser of claim 12, wherein said means for editing content comprises:
84 a process for dragging and dropping one or more web objects or html code into the browser window and transforming said object(s) or html code into one or more zBoxes or zCubes; or a process for creating an object within a zFrame of said browser window; or a combination thereof.
15. The recursive web browser of claim 14, further comprising a process for displaying said dropped object(s) within said zBox(es) or zFrames.
16. The recursive web browser of claim 14, further comprising a process for user-implemented positioning of said zBox(es) or zFrames within the browser window.
17. The recursive web browser of claim 14, further comprising a process for separately saving one or more of said zBox(es) or zFrames containing said dropped object(s) as a file, a zBIock or an email or to other computer storage media.
18. The recursive web browser of claim 14, further comprising a process for saving the entirety of said objects as a retrievable user-interactive zPage.
19. The recursive web browser of claim 14, wherein said dropped object is a hyperlink or URL, script, an action or a locator contained within a zBox in said browser window.
20. The recursive web browser of claim 14, wherein said dropped object is a text, an image displayed within a zBox or zFrame in said browser window.
21. The recursive web browser of claim 14, wherein said user-created object is a text or a drawing or handwritten content in virtual modeling language.
22. A user-implemented method for interactively manipulating content within a recursive browser environment, comprising:
85 dragging and dropping one or more web objects as one or more zBoxes or zFrames within a browser window of the recursive web browser of claim 12 thereby interactively manipulating said content within the recursive browser environment.
23. The user-implemented method of claim 22, wherein said recursive browser environment comprises zCubes.
24. The user-implemented method of claim 22, further comprising positioning said zBox(es) or zFrames at any user-determined location within the browser window.
25. The user-implemented method of claim 22, wherein said object(s) is a hyperlink or URL dropped as a zBox, the method further comprising: retrieving and displaying the web page(s) associated with said hyperlink(s) or URL(s) in one or more zFrames.
26. The user-implemented method of claim 22, wherein said object(s) is text or an image, the method further comprising: displaying the object(s) in a zFrame within the browser window.
27. The user-implemented method of claim 22, wherein said object(s) is an action(s) dropped in a zBox, the method further comprising: implementing the action(s) within the browser window or within the zFrames therein.
28. The user-implemented method of claim 27, wherein said action is an event model, a script model, drag-drop formatting, or style formatting.
29. The user-implemented method of claim 22, further comprising saving one or more of said zBoxes or zFrames as one or more files, zBlocks or emails or to other computer-storage media or saving the entirety of said zBoxes and zFrames as a retrievable user-interactive zPage.
86
30. A user-implemented method for interactively manipulating content within a recursive browser environment, comprising: opening one or more zFrames, zBoxes, zCubes or a combination thereof within a browser window of the recursive web browser of claim 12; and adding one or more user-created objects therein, thereby interactively manipulating said content within the recursive browser environment.
31. The user-implemented method of claim 30, wherein said recursive browser environment comprises zCubes.
31. The user-implemented method of claim 29, further comprising positioning said zFrames at any user-determined location within the browser window.
32. The user-implemented method of claim 29, further comprising saving one or more of said zFrames as one or more files, emails or other media or the entirety of said objects as a retrievable user-interactive zPage.
33. The user-implemented method of claim 29, wherein said object(s) is text, a drawing or handwritten content using VML, VRML or SVG.
87
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/445,441 | 2006-05-31 | ||
US11/445,389 | 2006-05-31 | ||
US11/445,389 US20070283258A1 (en) | 2006-05-31 | 2006-05-31 | User-implemented handwritten content in a recursive browser system |
US11/443,939 US20070283251A1 (en) | 2006-05-31 | 2006-05-31 | Web-based experience editor in a recursive browser system and uses thereof |
US11/443,939 | 2006-05-31 | ||
US11/445,441 US20070283262A1 (en) | 2006-05-31 | 2006-05-31 | Recursive browser system and uses therefor |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2007143003A2 true WO2007143003A2 (en) | 2007-12-13 |
WO2007143003A3 WO2007143003A3 (en) | 2008-09-25 |
Family
ID=38802031
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2007/012865 WO2007143050A2 (en) | 2006-05-31 | 2007-05-31 | User-implemented handwritten content in a recursive browser system |
PCT/US2007/012910 WO2007143078A2 (en) | 2006-05-31 | 2007-05-31 | Recursive browser system and uses therefor |
PCT/US2007/012795 WO2007143003A2 (en) | 2006-05-31 | 2007-05-31 | A web-based experience editor in a recursive browser system and uses thereof |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2007/012865 WO2007143050A2 (en) | 2006-05-31 | 2007-05-31 | User-implemented handwritten content in a recursive browser system |
PCT/US2007/012910 WO2007143078A2 (en) | 2006-05-31 | 2007-05-31 | Recursive browser system and uses therefor |
Country Status (1)
Country | Link |
---|---|
WO (3) | WO2007143050A2 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6278448B1 (en) * | 1998-02-17 | 2001-08-21 | Microsoft Corporation | Composite Web page built from any web content |
US20020109729A1 (en) * | 2000-12-14 | 2002-08-15 | Rabindranath Dutta | Integrating content with virtual advertisements using vector graphics images obtainable on the web |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6789231B1 (en) * | 1999-10-05 | 2004-09-07 | Microsoft Corporation | Method and system for providing alternatives for text derived from stochastic input sources |
AU2001284644A1 (en) * | 2000-08-16 | 2002-02-25 | Verisign, Inc. | A numeric/voice name internet access architecture and methodology |
US7865498B2 (en) * | 2002-09-23 | 2011-01-04 | Worldwide Broadcast Network, Inc. | Broadcast network platform system |
US7284192B2 (en) * | 2004-06-24 | 2007-10-16 | Avaya Technology Corp. | Architecture for ink annotations on web documents |
-
2007
- 2007-05-31 WO PCT/US2007/012865 patent/WO2007143050A2/en active Application Filing
- 2007-05-31 WO PCT/US2007/012910 patent/WO2007143078A2/en active Application Filing
- 2007-05-31 WO PCT/US2007/012795 patent/WO2007143003A2/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6278448B1 (en) * | 1998-02-17 | 2001-08-21 | Microsoft Corporation | Composite Web page built from any web content |
US20020109729A1 (en) * | 2000-12-14 | 2002-08-15 | Rabindranath Dutta | Integrating content with virtual advertisements using vector graphics images obtainable on the web |
Also Published As
Publication number | Publication date |
---|---|
WO2007143050A3 (en) | 2008-09-25 |
WO2007143003A3 (en) | 2008-09-25 |
WO2007143050A2 (en) | 2007-12-13 |
WO2007143078A3 (en) | 2008-09-04 |
WO2007143078A2 (en) | 2007-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10706091B2 (en) | User driven computerized selection, categorization, and layout of live content components | |
US11822615B2 (en) | Contextual editing in a page rendering system | |
US20090217153A1 (en) | Document processing and management approach to editing a document in a mark up language environment using undoable commands | |
US20090132907A1 (en) | Annotation Structure for Web Pages, System and Method for Annotating Web Pages | |
JP2006107458A (en) | Document content transmitting system, online content transmitting method, online information storage system, common online content system, and online content transmitting program | |
WO2008033530A2 (en) | System for controlling objects in a recursive browser system | |
CN102065114A (en) | Method and device for mobile terminal to access webpage | |
WO2006051975A1 (en) | Document processing device | |
US20070283251A1 (en) | Web-based experience editor in a recursive browser system and uses thereof | |
US20070255722A1 (en) | Data-driven page layout | |
WO2006051904A1 (en) | Data processing device and data processing method | |
WO2002017162A2 (en) | Capture, storage and retrieval of markup elements | |
KR100522186B1 (en) | Methods for dynamically building the home page and Apparatus embodied on the web therefor | |
Krottmaier et al. | Transclusions in the 21st Century. | |
WO2007143003A2 (en) | A web-based experience editor in a recursive browser system and uses thereof | |
WO2006051868A1 (en) | Document processing device and document processing method | |
WO2006051973A1 (en) | Document processing device and document processing method | |
WO2006051906A1 (en) | Archiver device, data acquisition device, and data acquisition method | |
Crespo et al. | Responsive interaction for a large Web application: the meteor shower architecture in the WebWriter II Editor | |
Hadlock | jQuery Mobile: Develop and design | |
WO2009073007A1 (en) | Netvariables in a recursive browser system | |
Petkovic | Component development of the client side of the Web applications | |
Peel | HTML Macros--Easing the Construction and Maintenance of Web Texts | |
Tanaka et al. | Meme media architecture for the reediting and redistribution of web resources | |
GB2373698A (en) | Storage of a portion of a web-page containing a link |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 07795521 Country of ref document: EP Kind code of ref document: A2 |
|
NENP | Non-entry into the national phase in: |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 07795521 Country of ref document: EP Kind code of ref document: A2 |