Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND SYSTEM FOR CONTEXTUAL ACTIVATION OF WEB SERVICES
Document Type and Number:
WIPO Patent Application WO/2005/045690
Kind Code:
A1
Abstract:
The present invention allows websites to integrate third party contextual services onto their pages by means of a tag retrieves code which traps right-clicks and/or highlighting actions (103, 105); analyzes their content and context; chooses relevant services from a dynamic list; and either defaults to a specific feature or service, or presents the user with a choice (107, 109). In this way, the present invention provides an added layer of functionality that activates itself when users perform certain activities, like highlighting a string of text (109, 111). This event triggers an algorithm that categorizes such text in which it is found, user history and personal information, and various datasets from any number of databases (111). Based on its findings the algorithm also may perform a default action or offer a range of them.

Inventors:
Caballero, Manuel (Malabia 2491 4A, Capital Federal, Buenos Aires, AR)
Tenembaum, Samuel Sergio (Edificio Centro Lafayette, Calle 24 Esquina 21 1 Piso 104, Punta del Este 104, UY)
Repetto, Ramiro (Arenales 947 9* B, Capital Federal, Buenos Aires, AR)
Ivan, Entel (Teodoro Garia 1783, 15 Piso Capital Federal, Buenos Aires, AR)
Application Number:
PCT/US2004/037212
Publication Date:
May 19, 2005
Filing Date:
November 04, 2004
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
Porto Ranelli SA. (Tequendama 1, Apto. 402, Punta del Este, UY)
Trust PI. (116 West 23rd Street, Suite 500 New York, NY, 10011, US)
Caballero, Manuel (Malabia 2491 4A, Capital Federal, Buenos Aires, AR)
Tenembaum, Samuel Sergio (Edificio Centro Lafayette, Calle 24 Esquina 21 1 Piso 104, Punta del Este 104, UY)
Repetto, Ramiro (Arenales 947 9* B, Capital Federal, Buenos Aires, AR)
Ivan, Entel (Teodoro Garia 1783, 15 Piso Capital Federal, Buenos Aires, AR)
International Classes:
G06F15/16; G06F17/30; H04K1/00; H04L29/06; H04L29/08; (IPC1-7): G06F15/16; G06F17/30; H04K1/00
Foreign References:
US6169992B12001-01-02
US20040199657A12004-10-07
US20040205554A12004-10-14
US20050010689A12005-01-13
Attorney, Agent or Firm:
Lerch, Joseph B. (Darby & Darby P.C, Post Office Box 5257 New York, NY, 10150-5257, US)
Download PDF:
Claims:
WHAT IS CLAIMED :
1. A method for achieving enhanced functionality in a communication program running on a user's computer, the user having access to a computer network on which his computer is a client computer, comprising the steps of: providing a computer on the network which acts as a server; at the server, generating executable code which is effective, when run on a client computer, to: produce a first executable program module which detects operations performed by the user on a display produced on the user's computer by the communication program and operations being performed by the user with respect to operating the communication program; and produce a second executable program module which takes predetermined actions in relationship to the operation detected by the first executable program module ; and delivering the executable code to the client computer in a communication sent over the network from the server to the communication program in a form that will cause automatic execution of the executable code.
2. The method of claim 1 wherein the communication program is a web browser and the network is the Internet.
3. The method of claim 1 or 2 wherein the operations include manipulations of a pointing device.
4. The method of claim 3 wherein the pointing device is a mouse which includes left and right buttons, the operations including clicks of the mouse buttons.
5. The method of claim 4 wherein the operations include clicks over a portion of the display and highlighting a portion of the display.
6. The method of claim 1 or 2 wherein the action includes presenting a contextual menu, communicating with the network to obtain a new display, and performing a search over the network for information related to the detected operation.
7. The method of claim 6 wherein the second module includes executable code which examines the display and uses information it finds therein in determining what action to take.
8. The method of claim 1 wherein the second module includes executable code which examines the display and uses information it finds therein in determining what action to take.
9. In a system for achieving enhanced functionality in a communication program running on a user's computer, the user having access to a computer network on which his computer is a client computer, the system comprising: a computer on the network which acts as a server; the server being programmed to generate executable code which is effective, when run on a client computer, to: produce a first executable program module which detects operations performed by the user on a display produced on the user's computer by the communication program and operations being performed by the user with respect to operating the communication program; and produce a second executable program module which takes predetermined actions in relationship to the operation detected by the first executable program module ; and a transmitter acting over the network to send the executable code in a communication over the network from the server to the communication program, the executable code being in a form that will cause automatic execution of the executable code.
10. The system of claim 9 wherein the communication program is a web browser and the network is the Internet.
11. The system of claim 9 or 10 wherein the operations include manipulations of a pointing device.
12. The system of claim 11 wherein the pointing device is a mouse which includes left and right buttons, the operations including clicks of the mouse buttons.
13. The system of claim 12 wherein the operations include clicks over a portion of the display and highlighting a portion of the display.
14. The system in accordance with any of claims 9 or 10 wherein the action includes presenting a contextual menu, communicating with the network to obtain a new display, and performing a search over the network for information related to the detected operation.
15. The system of claim 14 wherein the second module includes executable code which examines the display and uses information it finds therein in determining what action to take.
16. The system of claim 9 wherein the second module includes executable code which examines the display and uses information it finds therein in determining what action to take.
Description:
METHOD AND SYSTEM FOR CONTEXTUAL ACTIVATION OF WEB SERVICES Field of the Invention The present invention relates generally to a method for contextual activating events and services based on selected and/or highlighted content, its context and other data. The invention can be used to enhance the user interface of an operating system, specific programs and/or specific documents, like web pages. It also allows for a new way of distributing push network services.

Background of the Invention The advent of the Internet has triggered an ever growing number services and business models. The sheer volume of offerings and their variety has become part of one of the most serious issues troubling modern life : how to sort the relevant from the irrelevant ? How to find what one is looking for? Search engines, registered user databases, data mining, profiling, and many other methods and solutions currently exist, yet they require that users know where to find these services or, at least, that they know where to look for them.

A common example of this arises when performing a web search: if a user is reading an article and comes across a term, name or phrase that he wants to research; he must perform the following steps:

1. Highlight the text; 2. Copy it; 3. Open another browser window; 4. Type the URL of a favorite search engine; 5. Wait for the page to load ; 6. Paste the text; 7. Press the"Search button" ; 8. Wait for the answers page; and 9. Sift through the answers.

This model could be described as a pulled transaction, in which a user actively seeks a provider (in this case, the search engine) to solve a problem (a search). The current invention reverses this paradigm, in which users must actively seek the solution that is relevant to the present problem, and it makes it possible for providers to offer solutions based, not only on content, but also on context. The current invention reverses the burden of contact, turning the transaction around, and allowing providers of solutions to offer their services when and where users might need them, by acknowledging the context, and therefore the need, in which the user finds himself.

Most, if not all, online services can benefit from this method of promotion and distribution; from the aforementioned search engines to, for example, translation services, financial services, people locators, entertainment sites, and travel sites.

Not only do service providers benefit from this model, but users get additional functionality in a dynamic, contextual fashion that did not exist before.

Also, publishers get to enhance their offerings and generate revenues from the new services. When a user moves between Internet sites looking for a solution, there is currently no relationship between the two sites. No lead can be traced from one to the other, so even if the combination of their services is what allowed a user to solve a problem, usually a single entity gets all the credit for it (and all the income). The present invention permits new business models (profit sharing, licensing, transaction fees, credits, etc. ) to arise among the various parties, by {W : \04224\2200459woO\00285182. DOC *042242200459WOO*}

establishing connections between the various tools being used by a given user while dealing with a specific issue.

Thanks to the invention, a new type of transaction becomes possible between the parties: users may be viewing free, paid or sponsored content, either locally or remotely ; and they may use contextual services that can also be free, paid or sponsored. Whichever is the case, a variety of business opportunities can emerge from use of the invention. For example, users may pay for the contextual services, or publishers may pay for them in order to be differentiated from their competition, or contextual service providers could pay publishers for their leads, or any of a number of options and combinations.

Specific examples: - Users could pay for services and make purchases by having an account with a"contextual selection and highlighting service". For example, a user could purchase a movie, a book or anything anywhere, just by selecting its name on his computer. There is no need to enter billing or shipping data. Furthermore, if the client lead comes directly from his or her own desktop, there are savings in marketing costs (commissions, fees, etc. ) that could be used in a loyalty program (discounts, miles, etc. ), taking into account everything purchased via this method.

- The technology could be built into sponsored software which could, in turn, result in cheaper or free programs and services in exchange for the ability to promote services and products. The key to this is relevance ; providers can now ensure it, making the investment in promotion more efficient and providing a better return on the investment.

The present invention solves the problems described above by using the contextual menu usually activated by pressing on the right mouse button of a Microsoft Windows PC (or control + the mouse button on an Apple Macintosh). It enables the remote management of the contents and features of {W : \04224\2200459woO\00285182. DOC * 042242200459WO0 *}

the contextual menu (also known as right-button menu). Thus, one or many providers can assess the needs of a user who presses the button or highlights content, and offer solutions and services based on the activity being performed.

The current invention can be realized using a number of existing technologies, as well as yet non-existing ones, and it can be system-wide, or document specific.

Brief Description of the Invention One way to understand the current invention is to view it as an added layer of functionality that activates itself when users perform certain activities, like highlighting a string of text. This event triggers an algorithm that categorizes such text based on parameters such as: the contents of the selection itself, the context in which it is found, user history and personal information (if available), and various datasets from, for example, any number of databases.

Based on its findings the algorithm also may perform a default action or offer a range of them. For example: if a user highlights a sentence written in a language other than his own, the invention could automatically translate it-or offer various alternatives. Or, if a user highlights a product name, the invention could automatically provide technical specifications, retailers and even pricing.

These are only examples, but should provide some insight into the untapped and novel business relationships that could arise between publishers, service providers (like search engines, retailers, marketers, on-line tools of all kinds) and users.

The following list of potential services and features is included for illustrative purposes only and to facilitate the understanding of the invention. It is by no means comprehensive: 1. If the selected/highlighted text includes"www", then a new window may pop open with the URL. This is useful on the many occasions in which a URL is not an active link.

2. If the selected/highlighted text includes"@", then an email composing program or service could open a message composing screen. Or it could trigger a search for a person, or find the person in a chat room, or in an instant messenger, or find a matching telephone number, etc.

{W : \04224\2200459woO\00285182. DOC *042242200459WOO*}

3. If the selected/highlighted text is in a language other than the Operating Systems, then a translation engine could offer its services.

4. If the selected/highlighted text includes a word or a phrase, a dictionary and thesaurus could spring into action, even contextual ones (legal, technical, medical, etc...) 5. If the selected/highlighted text includes a product name, then dealer locators, offers, comparisons to other products, etc... can be triggered.

6. If the selected/highlighted text includes an address, then a map service or driving directions could be offered.

7. If the selected/highlighted text includes a name, then a biography could appear, or a phone number and an email address, books on or by such person, etc...

Brief Description of the Drawings The foregoing brief description, as well as further objects, features, and advantages of the present invention will be understood more completely from the following detailed description of a presently preferred, but nonetheless illustrative embodiment, with reference being had to the accompanying drawings, in which: Figure 1 is a flowchart of the distribution process that results in the enablement of the invention on a web page; Figure 2 is a flowchart of the generic operation of the invention; Figure 3 is a flowchart of a specific implementation of the invention; and Figure 4 is a block diagram illustrating the preferred environment for using the present invention.

Description of the Currently Preferred Embodiment The currently preferred embodiment allows for websites to integrate third party contextual services onto their pages by means of a JavaScript tag.

{W: \04224\2200459woO\00285182. DOC *042242200459WOO*}

Such tag retrieves code that traps right-clicks and/or highlighting actions; analyzes their content and context; chooses relevant services from a dynamic list ; and either defaults to a specific feature or service, or presents the user with a choice.

Figure 4 illustrates the preferred environment for the present invention. A plurality of users'computers U1... Un (clients) are connected to the Internet I. A plurality of servers (computers) S1... Sn are also connected to the Internet I and are available to the users. One of these servers, an"activation" server, for example Sn includes a page Pn to be used by a user's browser, which will cause the user's browser to become contextually responsive to additional information that appears in the browser page. Page Pn has a tag (an instruction to acquire code from a remote location). The tag is activated when the user accesses page Pn. Executable code is then downloaded to the user's computer which, when run in his browser, causes the browser to become contextual responsive.

The process described in the flowchart of Figure 1 results in the delivery of code onto a web page, enabling the current invention, the process involves steps performed by the client (client"side") and steps performed by the activation server ("server"side), which are shown in left and right panels, L and R, respectively, to demonstrate the interactions of the client and server. The process begins at block 101 at the client side and goes on to block 103, where a user types or otherwise enters a URL. At block 105, the browser contacts the server and requests an HTML document. At block 107, the server receives the request and retrieves or acquires the appropriate web page, which includes an HTML tag that will result in activation of the invention.

At block 109, after receiving the HTML document, the browser executes it, including the aforementioned tag. On execution, the tag requests additional JavaScript code from the server. However, those skilled in the art will appreciate that the tag can be set up to request the code from another server.

The server receives the request at block 111 and delivers the code to the user as a modified HTML page, which the client receives and executes at block 113.

Upon executing the modified HTML page, the client acquires the added functionality. The process ends at block 115. From now on, selecting, highlighting or multi-clicking on the page will activate the process described in Figure 2.

{W: \04224\2200459woO\00285182. DOC * 042242200459WO0 *}

Figure 2 in a flowchart which describes the generic operation of the currently preferred embodiment of the invention, which remains active as long as the HTML document served in Figure 1 is open. It should be noted that the current invention is meant to be expanded to include different kinds of features and services, both locally and remotely (web services and others), hence its description cannot possibly allow for all of them. The extensibility should become apparent from the following description.

The process begins on block 201, with the click of a button on the mouse. Block 203 determines whether it was the right or left button that was pressed. If the right button was pressed, the process continues on to block 205, where it is determined if the current click is taking place over selected text. If the answer is positive, the process continues on to 207, where a contextual menu is presented to the user with a list of services and actions. Parameters used to decide which services and actions to take are included, among others: the text selected, the context of the entire page, the URL, any number of databases (i. e.: registered user info), geographic location and any other external or internal data set. In turn, any of the options presented to the user may trigger a number of actions. After such action is taken, process returns to block 201 and starts over.

If the answer is negative at block 205 (the click is not being made over previously selected text), the process goes to block 209, where it is determined whether any text was previously selected in the entire document. If the answer is positive, then it is de-selected at block 211 and the process returns to block 201 and starts over. If the answered at block 209 is negative, control returns to block 201 and the process starts over.

If, block 203 had determined that the button being pressed is the left one, then flow continues at block 213, where it is determined whether the action is a single-click or not. If it is a single-click, then flow continues at block 215, if not, the process goes to block 227, where additional features, services and functionality can be added, taking specific actions based on numerous factors, including the type of selection being made, the text, context, language.

Then, flow re-starts at block 201.

At block 215, (after it is determined that a single right-click has taken place), the system determines whether the user is making a selection, if not; flow goes on to block 209 and continues as described above. If the {W: \04224\2200459woO\00285182. DOC *042242200459WOO*}

determination at block 215 is"yes", the process goes on to block 217, where, if the selection is an URL, a new browser window is opened and displays such URL (block 219), and restarts the process. If not, flow goes on to block 221, where the selected text is checked for being an email address, if yes, flow goes on to block 223, where the default email program is used to compose an email to this address (or other actions, like a reverse look-up) and then resumes from the start. If not, the system continues on to block 225.

Block 225 represents a generic condition. This shows the extensibility of the current invention, which can be expanded easily to include other conditions using parameters like, for example: the text selected, the type of selection (multiple-clicks, multi-button mice, modifier keys-like shift or alt), the context (other content on the page or even the domain), real time data like weather, geography, recent activities, and even identifiable information from databases. The result of conditionals represented in this block could result in the flow taking a number of actions depending on the questions asked, these actions are represented in block 227, from where the flow re-starts. If all conditionals return a negative answer, then the process re-starts without taking any action.

In order to further exemplify the invention, Figure 3 is a flowchart illustrating an implementation of the current invention, in which highlighting text in a web page triggers a search for the selected string. It should be noted that such search may use as parameters not only the highlighted text but also the context in which it is found. This is a key benefit of the current invention: if, instead of using the invention, the user had highlighted the desired text, copied it and pasted it into a search engine, such search could not take context into account.

The text search would be devoid of context.

The process described in Figure 3 starts at block 301, with the user clicking on the mouse button. Block 303 determines if the button pressed was the left one, if yes, then flow moves on to block 305; otherwise it re-starts. Block 305 determines whether the user has highlighted text, if so, flow continues on to block 307, otherwise the process re-starts. Block 307 determines whether the search feature is active or not, if yes, flow goes on to block 309, otherwise, the process re-starts. At block 309, the system obtains the search parameters, which may be limited to the highlighted text or may include additional data, like the URL or other text. At block 311 the search is requested. Next, at block 313, the search engine {W: \04224\2200459woO\00285182. DOC *042242200459WOO*}

processes the data, makes decisions and generates the response. Lastly, the search results are delivered to the user and displayed. The process may either finish or restart from this point.

Presently preferred code for realizing the preferred embodiment of the present invention is provided in accompanying Appendix A.

Alternate embodiments In addition to the preferred embodiment described above, those skilled in the art will recognize other ways of achieving similar results using various programming languages and turning the invention from a client/server and script based solution to a downloadable solution with the capability to establish connections to online service provider/s. This alternate embodiment can also benefit from functioning across the entire operating system, and not just on an HTML document. Nevertheless, while the preferred embodiments distribution relies on a line of code on a web page (that may be even trafficed via an ad server), this alternate method would require users to download an executable program, unlike the preferred method.

Those skilled in the art will appreciate that the technology can also be used to research, document and analyze user behavior by reporting every single click performed.

Those skilled in the art will also appreciate that the functionality of the invention could be incorporated into a web browser.

Although preferred embodiments of the invention have been disclosed for illustrative purposes, those skilled in the art will appreciate that many additions, modifications and substitutions are possible without departing from the scope or spirit of he present invention.

APPENDIX A Code Section <SCRIPT LANGUAGE="JavaScript"> document. write ('<div style="position: absolute; top-5555px ; left :-5555px ;"xform action="http ://dictionary. reference. com/translate/text. html" method="post" name="trans_form" targetF="blank"xmputtype="hidden"name="r"value="106563120366 184500"xinputtype="hidden" name="lp"value=""xinput type="hidden"name="text"value=""x/form/div>') ; var theSRC='http : //vip. unitedsites. com. ar/bue/ih/' ; var flashWidth=200, flashHeight=200, shTop=O, shLeft=O, flashName='ramatxt. swf ; document. write ('<OBJECT ID="sh contextMenu" STYLE="position : absolute; top:'+shTop+'px ; left :'+shLeft+'px ; z-index: 1000; display: none;" CLASSID="clsid: D27CDB6E-AE6D-llcf-96B8-444553540000" CODEBASE="http://download. macromedia. com/pub/shockwave/cabs/flash/swflash. cab&num version=4, 0,2, 0" width="'+flashWidth+"'height="'+flashHeight+"'xPARAM NAME=movie VALUE="'+theSRC+flashName+"'xPARAM NAME=quality VALUE=highxPARAM NAME="LOOP" VALUE="false"xPARAM NAME="wmode"VALUE="transparent"XPARAM NAME=SALIGN VALUE=TxPARAM NAME=MENU VALUE=FALSE></OBJECT>') ; function iHi () { /* Constants */ var IS TEXT = 0 ; var IS URL = 1 ; var IS EMAIL = 2 ; var IS_SEARCH = 3 ; var IS TRANSLATE = 4; /* End of Constants */ /* Properties */ var theMode= 0 ; in 0 = Express 1 = Deluxe var selectionType = null ; var theSectionObj = null ; var extraData = null; var parsedSelection = null; var clipBoardMem= new Array ("","","","") ; var elObjSelectedHTML; var elObjSelectedTXT; /* End of Properties */ /* Methods */ this. changeMode = changeMode ; this. getSelection = gesSelection ; this. getSelectionTypeExpress = getSelectionTypeExpress; this. iligth = iligth; //-----Express Functions--// this. goMailExpress = goMailExpress; this. goUrlExpress = goUrlExpress; this. goSearchExpress = goSearchExpress; this. goTranslateExpress = goTranslateExpress; // ----- Expres Functions END ------ // //-----Deluxe Functions---// this. setMailDeluxe = setMailDeluxe; this. setUrlDeluxe = setUrlDeluxe; this. setSearchDeluxe =setSearchDeluxe ; this. goTranslateDeluxe = goTranslateDeluxe; this. goMailDeluxe = goMailDeluxe; // ----- Deluxe Functions END------- // this. clearSel = clearSel ; this. clearSelAll= clearSelAll; this. lookIsClearSel = lookIsClearSel ; this. menuDerecho = menuDerecho ; /* End of Methods */ function getSelection () { // if user select a image, input or text area, dont do anything if (event. srcElement. tagName. toLowerCase ()! ="img" && event. srcElement. tagName. toLowerCase ()! ="input" && event.srcElement.tagName.toLowerCase()!="textarea") { // Left click button if (event.button == 1) { document.all.sh_contextMenu.style.display="none"; this. theSectionObj = document. selection. createRange () ; elObjSelectedHTML= document. selection. createRange (). htmlText ;// HTML SELECTED elObjSelectedTXT= document. selection. createRange (). text ;//TEXT SELECTED parsedSelection=elObj SelectedHTML. toLowerCase (). replace (/< [A>] *>/g,' '). replace (/ (  ; ) */g, "). replace (/\s* [, ] +/g, ','). replace (/\s+/g,''). replace (/^\s+/g,"). replace (#s+@/g,") ; if (parsedSelection.length>0) { if (theMode==0)//1 click mode // left click { getSelectionTypeExpress(); if (selectionType==1) goUrlExpress() ; else if (selectionType=2) goMailExpress () ; else if (selectionType=3) goSearchExpress () ; else if (selectionType==4) goTranslateExpress(); } else { getSelectionTypeDeluxe();//2 clicks mode // left click } } } else // right click button { if (event.button == 2) { document.all.sh_contextMenu.style.display="nome"; //clicks over selected area if (parseFloat (this. theSectionObj. offsetLeft+this. theSectionObj. boundingWidth) >=parseFloat (event. clientX) && this. theSectionObj. offsetLeft<=event. clientX && parseFloat (this. theSectionObj. offsetTop+this. theSectionObj. boundingHeight) >=parseFloat (event. clientY) && this. theSectionObj. offsetTop<=event. clientY) if(theMode==0) // if is 1 click mode { return false; else // if is 2 click mode { if (selectionType=0) setCopyDeluxe () ; else if (selectionType==1) setUrlDeluxe () ; else if (selectionType=2) setMailDeluxe () ; else if (selectionType==3) setSearchDeluxe() ; if (this. theSectionObj && elObjSelectedTXT. length>0)<BR> { document. all. sh contextMenu. style. posTop=shGetY (this. theSectionObj) +document. body. scrollTo p; document. all. sh contextMenu. style. posLeft=event. screenX; document. all. sh contextMenu. style. display="inline" ; } clearSelAll(); } } else // click out off selection { clearSelAll(); } } } } } function getSelectionTypeExpress() // 1 click { /* This next Regular Expression Trims the selection and converts dirty characters like Enters, multiple spaces, etc to one single space. It"cleans"the selection. */ var tmp="" ; var tmpObj=elObjSelectedHTML. toLowerCase () ; var tmpInicio=0, tmpFinal=0, tmpArray, isInTheText=-1, tmpCont=0, elLinkObj=""; tmpObj=tmpObj. replace (/A (  ; ) */g, ") ;//remove"  ;" from the beginning tmp=parsedSelection. split ("") ; if ( ( (parsedSelection. indexOf ("http ://") >=0 1} parsedSelection. indexOf ("https://") zozo parsedSelection. indexOf ("www. ") >=0) && parsedSelection. indexOf ("") <0 && parsedSelection. indexOf (".") >0)) extraData=""; selectionType = IS URL; } else if (parsedSelection. indexOf ("@") >0 && parsedSelection. indexOf (".") >0 && parsedSelection. indexOf ("") <0) selectionType = IS EMAIL ; else if (tmp. length <4) selectionType = ISSEARCH ; else if (tmp. length >=4) selectionType = IS TRANSLATE ; } function getSelectionTypeDeluxe ()//2 clicks { /* This next Regular Expression Trims the selection and converts dirty characters like Enters, multiple spaces, etc to one single space. It"cleans"the selection. */ var tmp=""; var tmpObj=elObjSelectedHTML. toLowerCase () ; var tmpInicio=0, tmpFinal=0, tmpArray, isInTheText=-l, tmpCont=0, elLinkObj="" ; tmpObj=tmpObj. replace (/A ( ) */g, ") ;// remove" " from the beginning tmp=parsedSelection. split ("") ; if ( ( (parsedSelection. indexOf ("http ://") >=0 11 parsedSelection. indexOf ("https ://")>=0 # parsedSelection. indexOf ("www. ") >=0) && parsedSelection. indexOf ("") <0 && parsedSelection. indexOf (".") >0)) { extraData =""; selectionType = ISURL ; } else if (parsedSelection. indexOf ("@") >0 && parsedSelection. indexOf (".") >0 && parsedSelection. indexOf ("") <0) selectionType = IS EMAIL ; else if (tmp. length <4) selectionType = IS SEARCH ; else if (tmp. length >=4) <BR> <BR> selectionType = ISTEXT ;<BR> <BR> <BR> } function goMailExpress () { window.open("mailto:"+parsedSelection,"",""); } function goMailExpress () { window.open("mailto:"+parsedSelection,"",""); } function goSearchExpress () { window.open("http://www.google.com.ar/search?q="+escape(pars edSelection),"",""); } function goTranslateExpress() { if (this. theSectionObj && elObjSelectedTXT. length>0) { document. forms. transform. text. value=elObjSelectedTXT; var elIdioma=navigator. browserLanguage. substr (0,2) ; if (elIdioma="en") document. forms. trans_form.lp.value="en_es"; else document. forms. transform. lp. value="esen" ; document. forms. trans form. submit () ; } function goUrlExpress () { if (extraData! ="") { window. open (extraData. href,"","") ; extraData="" ; else if (elObjSelectedTXT.toLowerCase().indexOf("http://")>=0 # elObj SelectedTXT. toLowerCase (). indexOf ("https ://") >=0) window. open (elObjSelectedTXT,"","") ; else window.open("http://"+elObjSelectedTXT,"",""); } function changeMode () { if (theMode=0) theMode=l ; else theMode=0; } function clearSel() { //clear selection document.selection.empty(); } function clearSelAll() <BR> <BR> {<BR> //clear selection document. selection. empty () ; this.theSectionObj=""; } function shGetY(obj) { var shY=0 ; while(obj) <BR> <BR> {<BR> <BR> shY+=obj.offsetTop;<BR> <BR> <BR> <BR> <BR> <BR> <BR> <BR> <BR> obj=obj.offsetParent;<BR> <BR> } return shY; <BR> <BR> }<BR> <BR> <BR> <BR> <BR> <BR> <BR> <BR> <BR> <BR> <BR> function shGetX(obj)<BR> <BR> { var shX=0; while(obj) { shX+=obj.offsetLeft; obj=obj. offsetParent ; return shX; } function menuDerecho() { rethurn false; } function lookIsClearSel () { //click out of selection if (this. theSectionObj) if ( ! (parseFloat (this. theSectionObj. offsetLeft+this. theSectionObj. boundingWidth) >=parseFloat (event. client) && this. theSectionObj. offsetLeft<=event. clientX && parseFloat (this. theSectionObj. offsetTop+this. theSectionObj. boundingHeight) >=parseFloat (event. clientY) && this. theSectionObj. offsetTop<=event. clientY)) clearSelAll (); } function setUrlDeluxe () { document. all. shcontextMenu. SetVariable ('texto','Go To URL} Shop} Copy} Translate} Search} '); alert("setUrlDeluxe") } function setMailDeluxe() { document. all. shcontextMenu. SetVariable ('texto','Send E- mail} Shop} Copy} Translate} Search}') ; alert ("setMailDeluxe") ; i function setSearchDeluxe () { document. all. sh contextMenu. SetVariable ('texto','Search} Shop} Copy} Translate} Send E-mail} '); alert("setSearchDeluxe"); } function setTranslateDeluxe() { document.all.sh_contextMenu.SetVariable('texto','Translate}S hop}Copy}Send E- mail} Search}') ; alert("setTranslateDeluxe"); } function setCopyDeluxe () { var elSize=clipBoardMem.length-1; for (elSize; elSize>0 ; elSize--) { clipBoardMem [elSize] =clipBoardMem [elSize-1] ; } clipBoardMem[0]=parsedSelection; window. clipboardData. setData ("Text", parsedSelection); for (tmpI=0 ; tmpI<clipBoardMem. length; tmpI++) alert (tmpI+" : "+clipBoardMem [tmpI] ) ; document. all. sh_contextMenu. SetVariable ('texto','Copy} Shop} Translate} Send E- mail} Search}') ; alert("setCopyDeluxe"); } } var a = new iHi(); //conect object width methods document. oncontextmenu=a. menuDerecho; document. body. onmouseup=a. getSelection; document. body. onmousedown=a. lookIsClearSel ; </SCRIPT>