Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Porto Ranelli, Sa, Pi TrustfiledCriticalPorto Ranelli, Sa
Publication of WO2004070579A2publicationCriticalpatent/WO2004070579A2/en
Publication of WO2004070579A3publicationCriticalpatent/WO2004070579A3/en
G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
G06Q30/00—Commerce
G06Q30/02—Marketing; Price estimation or determination; Fundraising
G—PHYSICS
G06—COMPUTING; CALCULATING OR COUNTING
G06F—ELECTRIC DIGITAL DATA PROCESSING
G06F40/00—Handling natural language data
G06F40/10—Text processing
G06F40/103—Formatting, i.e. changing of presentation of documents
Definitions
the present inventionrelates generally to a method for laying out online advertisements over content. It allows for the graphical layout of ads over specific web pages or templates, eliminating guesswork and simplifying previews.
the inventionis a solution to the problem of arranging dynamic ads over dynamic pages.
the Internetincludes servers (computers), which offer electrical communication to client computers (operated by users) and to other servers.
the computers involvedmay range from mainframes to cellular telephones, and they may operate over any conceivable communication medium.
GUIgraphic user interface
Most usersconnect to the Internet (or "surf the net") through a personal computer running an operating system with a graphic user interface (GUI), such as one of the Windows® operating systems.
GUIgraphic user interface
Most userscommunicate over the Internet using a program called a "browser” running on their computers, the two most popular ones being Internet Explorer and Netscape, although many other browsers are in common use.
the browserreceives files in a format known as HTML, which is a mark-up language that permits multimedia to be embedded within formatted and stylized text, and it displays "pages", which may play sound and exhibit graphics and video. Narious programming languages, such as JavaScript, are also available which permit executable code to be embedded in an HTML file and to run, performing useful tasks when a browser presents the file to the user's computer.
the present inventionpermits untrained persons with little or no technical experience, while operating a special purpose, layout computer program, to overlay the ad on the background page(s), by simply dragging the ad into position.
this computer programis accessed in the form of executable code on a web page. This is a much simpler procedure than the old way, which entailed understanding display coordinates and a non-intuitive trial-and-error process of testing the ad and modifying coordinates, until the desired result was achieved.
a userconnects with a layout application server through his browser and receives an HTML page containing content and executable code.
the userselects the HTML page or template (or any other multimedia content) over which the ad is to be previewed and laid out, as well as the ad itself.
a copy of the selected HTML page, and the adare then loaded onto the layout application server, and through a proxy server, the host page (content) is modified to show the ad overlying the selected HTML page and by inserting executable code, which will result in the addition of a control toolbar and menu system.
the control toolbaris inserted on the page by way of an IFRAME, and the ad itself through an OBJECT.
the useris then presented with the modified HTML page, which includes the content, the ad overlying it, and a toolbar for controlling various features and parameters.
Each element —content, toolbar and ad-is placed in an independent layer within the same web page display. It should be noted that the toolbar is placed in an IFRAME so that it can float above all other elements and be accessible at all times. It should also be noted that prior to the present invention, overlaying
layer ads(as well as many other types of ads) required working in separate windows: first selecting features and modifying parameters, and later previewing the results in another window.
the code inserted by the proxy server application into the host or content pageallows for the control of the ad and its interaction within the page.
the usercan graphically and intuitively control several parameters including (but not limited to) ad size, location, positioning method, length, and even the order ofthe HTML layers.
the parametersare saved in a database and are used to generate JavaScript code that will control the ad when served to the end user.
the saved parameterscould include: position and positioning method, size and length of, objects on the page. These are relevant and affect features -like drop down menus that may need to be hidden or flash objects that must be prioritized in the z (layer) coordinate.
Fig. 1is a flow chart illustrating an embodiment of a process for laying out an ad on a web page
Fig. 2illustrates the data flow among the various parties involved in the process
Fig. 3is a screen shot showing the process in use.
Figure 1is flowchart illustrating the method ofthe invention.
Logic flowbegins at block 100, and at block 110, the user selects the page or template over which the ad will be laid out.
the aditself is selected.
the proxy serverdownloads the selected HTML code representing the page on which the ad is to appear, and at block 140 executable code is inserted onto the page.
a documented listing of this executable codeis provided in Appendix A.
the modified HTMLis displayed on the user's computer, now including the selected ad and the toolbars and palettes in its window over the page that contains the ad.
Figure 3is a screen shot showing the display on the user's computer, including the representation of the page to receive the ad 300, with the ad 310 superposed over it, and the toolbar 320 and the menu 320' on the top layer.
the adis a character resembling a soccer player, the portions of the ad window outside the player, so that the player alone will appear on the page.
the framing rectangle ofthe adrepresents the area occupied by entire ad being transparent
the toolbarexhibits a number of icons, any of which may be activated by clicking a mouse or other pointing device on them.
the menuincludes a number of similar control elements, three of which have been represented by the characters a, b, and c, which may be clicked upon to achieve certain actions on the display. For example, clicking on element a brings up a sub-menu of menu 320' that permits the user to hide an object or portion ofthe content page 300, clicking on element b brings up a sub-menu that permits the user to position the ad 310, and clicking on element c brings up a submenu that permits the user to size the ad 320.
the element chas been clicked previously, and the submenu for resizing is being displayed. Resizing is achieved by clicking on and dragging the rectangular strip 330 at the bottom ofthe ad.
the admay be positioned in the positioning menu in a similar fashion.
the userlays out the ad using the toolbar by dragging the ad into position by its handle (the bar across the bottom of the window).
the resulting parameterswhich have been stored, are used to generate JavaScript code that, when executed, will position and control the ad on the actual page, as defined by the user.
the codemay be generated at the user's computer and uploaded to the application server, or the parameters may be uploaded to the server and the code generated there.
the processends at block 180.
Figure 2depicts the signal or data flow between the following:
Web browserW, - used by End User
Web serverS, — communicates with web browser
Application ServerA, - hosts proprietary ad layout application
Database serverD, - parameters and code
File server, F, -holds media files; and Third party content server, C, - a publisher or content provider.
Data flow 1indicates the data entered by the user being sent to the web server via his browser.
the data entered by the useris then sent to the application server by the web server (data flow 3).
Data flow 4indicates the application server requesting the chosen background page (HTML document) from the content server. Then, the content server delivers the background page to the application server (data flow 5).
the application serverrequests the ad from the Database D and the File server F (data flow 6), and the database and file server deliver the ad to the application server (data flow 7).
the application serverinserts the executable code that displays the selected ad and the toolbar onto the saved HTML, the new web page is sent to the web server (data flow 8), which sends the modified code to the web browser, for display.
the Usersets up the ad and enters all parameters; the resulting data is sent to the web server (data flow 10) then on to the application server (data flow 11).
the application servergenerates Javascript code to control and position thread according to the parameters, which code is sent to the database (data flow 12). From there, it can be served in a number of standard ways. Commented code for the preferred embodiment is presented in
Module 1creates the interface and features as seen in Figure 3. It is responsible for displaying and operating the ad, the background page and the toolbar during the lay out process. The operation and use of this module results in the generation of a string of characters such as the following:
This stringrepresents the parameters generated as the user manipulates the ad.
Module 2is a Code Generator. Using the data contained in the above string, this module assembles a Timeline code, which represents the time sequence of the operation ofthe ad as created by the user. The information contained in the suing mentioned above is codified using a JavaScript function named escape (). Once decoded, the following values are extracted and used by the code generating module as parameters for the timeline.
Type ⁇ POS_TYPE ⁇fixed (values can be: centered, anchor) Top ⁇ POS_TOP ⁇ : -9 Left ⁇ POSJ.EFT ⁇ : 128
HIDE_1_TAG ⁇IMG (IMG/IFRAME/OBJECT/A/SELECT/INPUT) Index ⁇ HIDE JNDEX ⁇ : 1
LS ⁇ LS_FLAG ⁇ : 1 Module 3is a typical Timeline code to control the operation ofthe ad.
servers F, A, D and, although shown separate,need not run on separate computers. That is, two or more ofthe servers may reside on the same computer.
the application proxyretrieves the HTML code from the selected background page and adds 3 tags . 1 toolbar. asp
Querystring use explanationwindow. qs is the variable containing info on the Shoshkele configuration. This info is sent from the previous module through the querystring (The querystring is behind the ? character in an URL)
the querystringincludes only internal campaign info is sent to be saved again after editing.
buttonsPos ( )are shown, allowing for different users to access different features.
style.posTopbuttonsTo [i] ; document . all [ person [ PERSON_REVERSE [qs . Flaco] ] [i] ].
style .visibility"visible";
buttonsFunctions belonging to events for buttons, this functions are assigned to onmouseover, onmouseout, onclick for each button in window.
bButtons(variable) defined inside tblnit().
buttonsUpbuttons Up
tbShowPanelobjecto. id
inserta el codigo fuente del flashcorrespondiente al shoshkele y lo reproduce . adem-s, inserta tambiEn el codigo fuente correspondiente a los layers para arrastrar, mostrar bordes, o resize.
var shTopparselnt (pos . sh_all_anim_shoshkelizer. top)
var shLeftparselnt (pos . sh_all_anim_shoshkelizer. left)
var shLeftparselnt (pos . sh_all_anim_shoshkelizer. left)
Es llamado por db_traffic .asp(sendData (1) ) desde dentro del iframe.
tml_iftheCode; openlnlframe ( " form. html” ) ;
tmpTopreturnlnputVal ( "dockTop”)
tmpLeftreturnlnputVal ( "dockLeft” )
tmpLeftreturnlnputVal ( "dockLeft” )
devuelve el stringcorrespondiente a las propiedades del objecto solicitado. este puede estar anclado, ocultado, o ambos .
esta funcionsiaffir es Hamada intern though por returnDockHiddingObj ectProperties () ;
PVFORM. dockTop.value(top - objectTop) ;
⁇ var indexgetlndexTagCollection (obj .tagName, obj. index, obj.propl, obj.prop2);
⁇ var obj ectFoundparent .document . all . tags (obj .tagName) .ite (index) ;
var indexformGetlndexTagCollection (obj .tagName, obj. index, obj. name, obj. type)
⁇ var indexgetlndexTagCollection (obj .tagName, obj. index, obj.propl, obj.prop2);
⁇ var indexgetIndexTagCollectionA(obj .text) ;
Landscapes
Engineering & Computer Science
(AREA)
Theoretical Computer Science
(AREA)
Business, Economics & Management
(AREA)
Strategic Management
(AREA)
Finance
(AREA)
Development Economics
(AREA)
Accounting & Taxation
(AREA)
Physics & Mathematics
(AREA)
General Physics & Mathematics
(AREA)
General Health & Medical Sciences
(AREA)
General Engineering & Computer Science
(AREA)
Health & Medical Sciences
(AREA)
Computational Linguistics
(AREA)
Entrepreneurship & Innovation
(AREA)
Audiology, Speech & Language Pathology
(AREA)
Game Theory and Decision Science
(AREA)
Artificial Intelligence
(AREA)
Economics
(AREA)
Marketing
(AREA)
General Business, Economics & Management
(AREA)
User Interface Of Digital Computer
(AREA)
Information Transfer Between Computers
(AREA)
Abstract
Untrained persons (users), with little or no technical experience, are able to position and size a representation of an advertisement (ad) superposed on a representation of a background web page by simply dragging the representation of the ad. In the process, parameters are generated that result in executable code that will position and size the actual advertisement when served to a web client viewing the background page. A user connects with a layout application server through his browser and receives an HTML page containing a representation of the advertisement superposed a representation of the background page, as well as executable code, which results in the addition of a special control toolbar and menu system to the user's page. As the user manipulates the ad using the toolbar and menu system, his actions are recorder as a string of parameters, which later used to generate executable code to control the actual ad.
Description
METHOD FOR LAYING OUT MULTIMEDIA ADVERTISEMENTS
Field of The Invention
The present invention relates generally to a method for laying out online advertisements over content. It allows for the graphical layout of ads over specific web pages or templates, eliminating guesswork and simplifying previews.
The invention is a solution to the problem of arranging dynamic ads over dynamic pages.
Background of The Invention
Just as computer networks have gained widespread use in business, the Internet (one example of a computer network) has gained widespread use in virtually every aspect of our lives. The Internet includes servers (computers), which offer electrical communication to client computers (operated by users) and to other servers. The computers involved may range from mainframes to cellular telephones, and they may operate over any conceivable communication medium.
Most users connect to the Internet (or "surf the net") through a personal computer running an operating system with a graphic user interface (GUI), such as one of the Windows® operating systems. Also, most users communicate over the Internet using a program called a "browser" running on their computers, the two most popular ones being Internet Explorer and Netscape, although many other browsers are in common use. The browser receives files in a format known as
HTML, which is a mark-up language that permits multimedia to be embedded within formatted and stylized text, and it displays "pages", which may play sound and exhibit graphics and video. Narious programming languages, such as JavaScript, are also available which permit executable code to be embedded in an HTML file and to run, performing useful tasks when a browser presents the file to the user's computer. To support the many services that are offered via the Internet, most Internet sites rely on advertisements (ads). This has triggered the equivalent of an arms race for the most effective form of online advertisement, resulting in a variety of formats and technologies being developed by various companies. Some of the most successful of these share the feature that the ad is served on its own layer that can be controlled separately from the content. Examples of these are the floating ads sold by United Nirtualities of New York, New York under the mark SHOSHKELE.
These ads, as well as many others, interact visually with the background content, even though they are served independently ofthe content. Also, many ad formats and technologies are not of standard shape and size, which results in the need to overlay and preview each unit on several templates or pages in order to insure the intended user experience. The process of setting up these ads can be very tedious, time consuming and uneconomical to scale: running a single ad on multiple sites can entail the customization of the unit for each site or even for every page where it will play.
In order to simplify and streamline this process, the present invention permits untrained persons with little or no technical experience, while operating a special purpose, layout computer program, to overlay the ad on the background page(s), by simply dragging the ad into position. Preferably, this computer program is accessed in the form of executable code on a web page. This is a much simpler procedure than the old way, which entailed understanding display coordinates and a non-intuitive trial-and-error process of testing the ad and modifying coordinates, until the desired result was achieved.
Understanding this, it becomes clear that it would be useful and desirable to enable users to set up ads in a WYSIWYG ("what you see is what you get") manner, so that they can actually see the ad interacting with the background page.
For illustrative purposes, SHOSHKELE floating ads will be described, although it will be appreciated that the invention can be used for many other technologies, formats and platforms.
The presently preferred embodiment of the invention, included for illustration purposes only, functions as described immediately below.
A user connects with a layout application server through his browser and receives an HTML page containing content and executable code. In the received HTML Page, the user selects the HTML page or template (or any other multimedia content) over which the ad is to be previewed and laid out, as well as the ad itself. A copy of the selected HTML page, and the ad are then loaded onto the layout application server, and through a proxy server, the host page (content) is modified to show the ad overlying the selected HTML page and by inserting executable code, which will result in the addition of a control toolbar and menu system. The control toolbar is inserted on the page by way of an IFRAME, and the ad itself through an OBJECT. The user is then presented with the modified HTML page, which includes the content, the ad overlying it, and a toolbar for controlling various features and parameters. Each element —content, toolbar and ad- is placed in an independent layer within the same web page display. It should be noted that the toolbar is placed in an IFRAME so that it can float above all other elements and be accessible at all times. It should also be noted that prior to the present invention, overlaying
"layer ads" (as well as many other types of ads) required working in separate windows: first selecting features and modifying parameters, and later previewing the results in another window. The code inserted by the proxy server application into the host or content page allows for the control of the ad and its interaction within the page.
The user can graphically and intuitively control several parameters including (but not limited to) ad size, location, positioning method, length, and even the order ofthe HTML layers. After the user has completed laying out and setting up the ad, the parameters are saved in a database and are used to generate JavaScript code that will control the ad when served to the end user. The saved parameters could include: position and positioning method, size and length of, objects on the page. These are relevant and affect features -like drop down menus that may need to be hidden or flash objects that must be prioritized in the z (layer) coordinate.
Brief Description Of The Drawings
The foregoing 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 embodiment, with reference being had to the accompanying drawings, in which:
Fig. 1 is a flow chart illustrating an embodiment of a process for laying out an ad on a web page;
Fig. 2 illustrates the data flow among the various parties involved in the process; and Fig. 3 is a screen shot showing the process in use.
Detailed Description Of The Preferred Embodiment
Figure 1 is flowchart illustrating the method ofthe invention.
Logic flow begins at block 100, and at block 110, the user selects the page or template over which the ad will be laid out. At block 120 the ad itself is selected. Then, at block 130, the proxy server downloads the selected HTML code representing the page on which the ad is to appear, and at block 140 executable code is inserted onto the page. A documented listing of this executable code is provided in Appendix A. At block 150 the modified HTML is displayed on the user's computer, now including the selected ad and the toolbars and palettes in its window over the page that contains the ad.
Figure 3 is a screen shot showing the display on the user's computer, including the representation of the page to receive the ad 300, with the ad 310 superposed over it, and the toolbar 320 and the menu 320' on the top layer. In this case the ad is a character resembling a soccer player, the portions of the ad window outside the player, so that the player alone will appear on the page. The framing rectangle ofthe ad represents the area occupied by entire ad being transparent
As is typical, the toolbar exhibits a number of icons, any of which may be activated by clicking a mouse or other pointing device on them. The menu includes a number of similar control elements, three of which have been represented by the characters a, b, and c, which may be clicked upon to achieve certain actions on the display. For example, clicking on element a brings up a sub-menu of menu 320' that permits the user to hide an object or portion ofthe content page 300, clicking on element b brings up a sub-menu that permits the user to position the ad 310, and
clicking on element c brings up a submenu that permits the user to size the ad 320. In Fig. 3, the element c has been clicked previously, and the submenu for resizing is being displayed. Resizing is achieved by clicking on and dragging the rectangular strip 330 at the bottom ofthe ad. The ad may be positioned in the positioning menu in a similar fashion.
At block 160 the user lays out the ad using the toolbar by dragging the ad into position by its handle (the bar across the bottom of the window). After the user is finished laying out the ad, in block 170, the resulting parameters, which have been stored, are used to generate JavaScript code that, when executed, will position and control the ad on the actual page, as defined by the user. Those skilled in the art will appreciate that the code may be generated at the user's computer and uploaded to the application server, or the parameters may be uploaded to the server and the code generated there. The process ends at block 180.
The resulting code can be distributed in a number of ways. Figure 2 depicts the signal or data flow between the following:
End user, E;
Web browser, W, - used by End User; Web server, S, — communicates with web browser; Application Server, A, - hosts proprietary ad layout application; • Database server, D, - parameters and code;
File server, F, - holds media files; and Third party content server, C, - a publisher or content provider.
Initially, the user inputs the URL ofthe background page into his web browser and selects an ad to overlay on it (data flow 1). Data flow 2 indicates the data entered by the user being sent to the web server via his browser. The data entered by the user is then sent to the application server by the web server (data flow 3). Data flow 4 indicates the application server requesting the chosen background page (HTML document) from the content server. Then, the content server delivers the background page to the application server (data flow 5).
Next, the application server requests the ad from the Database D and the File server F (data flow 6), and the database and file server deliver the ad to the application server (data flow 7). After the application server inserts the executable code that displays the selected ad and the toolbar onto the saved HTML, the new web
page is sent to the web server (data flow 8), which sends the modified code to the web browser, for display.
After that, the User sets up the ad and enters all parameters; the resulting data is sent to the web server (data flow 10) then on to the application server (data flow 11).
In the preferred embodiment, the application server generates Javascript code to control and position thread according to the parameters, which code is sent to the database (data flow 12). From there, it can be served in a number of standard ways. Commented code for the preferred embodiment is presented in
Appendix A. This code is organized as three modules.
Module 1 creates the interface and features as seen in Figure 3. It is responsible for displaying and operating the ad, the background page and the toolbar during the lay out process. The operation and use of this module results in the generation of a string of characters such as the following:
This string represents the parameters generated as the user manipulates the ad.
Module 2 is a Code Generator. Using the data contained in the above string, this module assembles a Timeline code, which represents the time sequence of the operation ofthe ad as created by the user. The information contained in the suing mentioned above is codified using a JavaScript function named escape (). Once decoded, the following values are extracted and used by the code generating module as parameters for the timeline.
Description {VARIABLE_NAME}: value
Flash file
Name {FLASH_FlLE}: naka.swf Width {FLASH_WIDTH}: 550 Height {FLASH_HEIGHT}: 400
Ad positioning
Type {POS_TYPE}: fixed (values can be: centered, anchor) Top {POS_TOP}: -9 Left {POSJ.EFT}: 128
Objects on the page that will be hidden during adplay.
Objeto 1
Tag {HIDE_1_TAG}: IMG (IMG/IFRAME/OBJECT/A/SELECT/INPUT) Index {HIDE JNDEX}: 1
Width {HIDE_1_WIDTH}: 158
Height {HIDE_1_HEIGHT}: 78
Action {HIDE_1_ACTION}: hidden (centered, anchor)
Show again after playback {HIDE_1_SHOW_AT_THE_END}: Yes (Yes/No)
LS {LS_FLAG}: 1 Module 3 is a typical Timeline code to control the operation ofthe ad.
Those skilled in the art will appreciate that servers F, A, D and, although shown separate, need not run on separate computers. That is, two or more ofthe servers may reside on the same computer.
Although a preferred embodiment of the invention has been disclosed for illustrative purposes, those skilled in the art will appreciate that many addition, modifications and substitutions are possible without departing from the scope and spirit ofthe invention.
Appendix A
Code Section
Module 1 : Interface And Features Code Conventions:
Comments are included throughout the code xn the following maner:
comment html
//--> /* javascript comment
*/ ***
The application proxy retrieves the HTML code from the selected background page and adds 3 tags . 1 toolbar. asp
<IPRA E ιd="control" style="position. absolute; visibilitychidden; top.lOpx; left lOpx, wιdth:46px, height .345px; z-mdex: 100" NAME="theToolBar"
<SCRIPT SRC="http://www.shoshkelizer.com/traffic/control asp" ></SCRIPT> 2.1. files used in Frame simulation tb_azul .html tb_mysrc .html b_ro o html tb verde.html
< ! -xtrxtdxfont face="Verdana" size="2">A null offset value ("0") positions the Shoshkele on the center of page. Positive offset values position the Shoshkele? to the right of the center of the page. Negative offset values position the Shoshkele? to the left of the center of the page . </fontx/tdx/tr>//-->
<div id="vidrio" style= "position: absolute; visibility:hidden; background- Color : #000000; top:13px; left:0px; width:46px; height : 385px"x/div> <!-- /shoshkele data //-->
</f orm>
Scripting start
//--,
<script language="JavaScript ">
function uvAlert(txt)
{ alert (txt) ;
}
/* direcciϋn del ASP target */ var newLocation = theSRC + 'default .asp' ; var RO O = "FF1410"; var DOCKED = "docked"; var FIXED = "fixed"; var CENTERED = "center";
var HIDE = 1; var DOCK = 2; var BOTH = 3 ;
var ACTIONS = new Array ( ) ; ACTIONS [1] = "hide";
ACTIONS [2] = "dock"; ACTIONS [3] = "both";
7*
initial function
*/ window. ()
/* ====================== after completely reading control. asp main funtion starts.
Querystring use explanation: window. qs is the variable containing info on the Shoshkele configuration. This info is sent from the previous module through the querystring (The querystring is behind the ? character in an URL)
When a Shoshkele is edited from scratch, the querystring includes only internal campaign info is sent to be saved again after editing.
After editing and saving or applying changes, all config data is sent back to the server.
When the Shoshkele is edited thereafter, the previous module sends all Shoshkele info as part of the querystring
/* /*
Save current config in a variable
*/ window. qs = queryString_returnParams ( }
I *
Features specific to each user are shown, allowing for different users to access different features.
buttonsPos ( ) ;
if (qs.LS) document .all.btnLANDING. style .visibility
"visible" ;
var tmpPersonButtons = person [PERSON_REVERSE [qs. Flaco] ] .length; var tmpPersonType = PERSON_REVERSE [ qs . Flaco ]
window. bHeight = parent . document . all . control . style .posHeight = toolbarHeight [tmpPersonType] [tmpPersonButtons] ;
} /* buttonsPosO */
/* ====================== initialize variables and assign functions to each button
*/ function tblnitO { window.TBINITFLAG = true;
/*
Variable indicating toolbar title size
window.TBSIZE = "normal";
Variable containing the string of the pressed button. False if none
window. TBBUTTONDOWN = false;
/*
List of buttons
/ window. tbButtons
Array( "btnpos" , "btnhidding" , "btnresize") ;
/*
================-.===== assign events to declared buttons.
*/ for (var i=0; i<tbButtons . length; i++) { var tmp = document .all [ tbButtons [i] ];
t p . tm . ; tmp.>
}
/*
assign functions corresponding to each event so as to drag iframe from top bar.
*/
document . document . document . document .>
} /* fin de tblnitO */
EVENTS
*/
X ==
Functions belonging to events for buttons, this functions are assigned to onmouseover, onmouseout, onclick for each button in window. bButtons (variable) defined inside tblnit().
actualizaciUn de la variable que contiene el valor que indica si el objeto buscando sera ocultado o anclado.
esta variable sϋlo puede contener un estado siempre que se encuentre en el panel de posicionamiento o ocultamiento de objetos. =-.-.======-.==-.-.====-.===
cuando el panel se visualiza le asigno el texto del tϊtulo, Este se encuentra definido en el ALT del botϋn.
*/ document .all . theTitle. children [0] . innerHTML "<centerxb>" + documen . all [btnName] . children [0] .alt . toUpperCase ( ) + "</bx/center>" ;
} /* tbShowPanel (btnName) */
*
El formato de los nombres de los DIVs correspondiente a los botones es btnNOMBRE. Cada botϋn tiene su 'panel', que a la vez tambiEn es un DIV, Estos tienen el formato de nombre DivNOMBRE . Esto significa que al botϋn "bntselects" le corresponde el 'panel' cuyo id es 'Divselects'.
function tbBtnToDiv (btnName)
esta funcion es ejecutada en cada click a los botones de los paneles del toolbar (tbButtonPress () ) y tambiEn cuando se cambia el tipo de posiciUn (changeTypeOfPos 0 ) ;
inserta el codigo fuente del flash correspondiente al shoshkele y lo reproduce . adem-s, inserta tambiEn el codigo fuente correspondiente a los layers para arrastrar, mostrar bordes, o resize.
*/ function changeFlashO {
var pos = returnPositions 0 ;
var shTop = parselnt (pos . sh_all_anim_shoshkelizer. top) ; var shLeft = parselnt (pos . sh_all_anim_shoshkelizer. left) ;
var barraWidth = shWidth; var barraHeight = 20; var barraTop = parselnt (shTop) + parselnt (shHeight) ; var barraLeft = shLeft;
*l
setTi eout ("parent -flashSetVariablesAndShow(l) ",2000) ,-
window.previewFlag = true;
} /* changeFlash ( ) */
X
devuelve un array con las propiedades de sh_all_anim_shoshkelizer y su barra de drag .
*/ function returnPositions ( ) { var toReturn = new Array ( ) ; toReturn. sh_all_anim_shoshkelizer = new Array(); toReturn.drag = new Array(); var currentPosType = returnRadioVal ( " ypeOfPos" ) ; if (currentPosType == FIXED) {
/* top y left del sh_all_anim_shoshkelizer */ toReturn. sh_all_anim_shoshkelizer . left = parselnt (PVFORM. fixleft.value) ; toReturn. sh__all_anim_shoshkelizer. top = parselnt (PVFORM. fixtop.value) ,-
/* top y left de la barra de drag. */ toReturn.drag. left = parseln (PVFORM. fixleft .value) ; toReturn . drag . top = parselnt (PVFORM. fixtop .value) + parselnt (shHeight) ;
} else if (currentPosType == DOCKED) { var dockedObject = parent . lista [PVFOR . elancladoq. alue] ; dockedObj ectLeft = getX (dockedObject) ; dockedObjectTop = getY(dockedObject) ;
/* top y left del sh_all_anim_shoshkelizer */ toReturn. sh_all_anim_shoshkelizer . left = dockedObjectLeft + parselnt (PVFOR .'dockLeft .value) ; toReturn. sh_all_anim_shoshkelizer. top = dockedObjectTop + parselnt (PVFORM. ockTop. alue) ;
/* top y left de la barra de drag. */ toReturn. rag. left = toReturn. sh_all_anim_shoshkelizer. left ; toReturn.drag. top = toReturn. sh_all_anim_shoshkelizer. top + shHeight ;
{ /* si en el formulario no hay valores, los seteo con valor cero. */ if ( !parselnt (PVFORM. leftCenter. value) ) PVFORM. leftCenter.value = 0; if (!parselnt (PVFORM. topCenter.value) ) PVFORM. topCenter.value = 0;
/* posiciUn centrada de
para sh_all_anim_shoshkelizer */ var newCenter = (shGetWindowWidth ( ) - shWidth) / 2 ; var newTop = parselnt (PVFORM. topCenter .value) ; var newLeft = newCenter + parselnt (PVFORM. leftCenter .value) ;
/* top y left de sh_all_anim_shoshkelizer */ toReturn. sh_all_anim_shoshkelizer. left = newLeft; toReturn. sh_all_anim_shoshkelizer. top = newTop;
/* top y left de la barra de drag. */ toReturn. drag .lef = newLeft; toReturn.drag. top = newTop + parselnt (shHeight) ;
esta funciUn se ejecuta en el ondblclick de DragBar,
*/ function tbMinMaxO
{ if ( ! indow. TBINITFLAG) tblnit () ;
/* si el estado era normal, oculto todo, y cambio el estado. */ if (TBSIZE=="normal") { tbHideAll ( ) ; tbChangeSize (46, 13) ; TBSIZE = "compact";
} /* si estaba minimizada vuelvo todo a la normalidad */
/* si habϊan totones presionados muestro el panel */ /* correspondiente a ese boton . */ /* seteo el nuevo estado . */ else if (TBSIZE=="compacf) if ( !TBBUTTONDOWN)
/* habilito la visibilidad de cada uno de los botones. */ for(var i=0; i<tbButtons . length; i++) document .all [ tbButtons[i] ]. style.visibility = "visible"; TBSIZE = "normal"; } }
/'
EVENTS
/*
para que el iframe pueda arrastrarse por el parent es necesario capturar los eventos mousedown, mousemove, y mouseup para que envϊen la informaciϋn al parent . ======================
V function mouseDown(e) {
/* si el elemento en el que se est- presionando es */ /* DragBar (div) o imgDragBar (img) entonces debo setear */
/* true la variable mouseDownFlag para que el prϋximo */ /* evento (unmousemove) sepa que debe mover la barra. */
/* adem-s, le envϊo al parent el evento y la posiciUn */
/* para que pueda mover el iframe en el que estamos . */ tmpld = event . srcElement .id; if ( tmpld
== "DragBar" | | tmpld == "imgDragBar" )
{ window.mouseDownFlag = true; parent .mouseDown (event .offsetX, event. offsetY) ,- }
esta funcion se ejcuta solamente despues de haber pasado por mousedown, y se ocupa de enviar la posicion actual interna del iframe en donde esta el mouse, paren .movelf calcula la diferencia y mueve el iframe entero.
*/ function mouseMoveO { if (window.mouseDownFlag)
{ /* le mando al parent la posiciUn y la orden. */ parent .movelf (event . clientX, event .clientY) ; return false; }
}
le envio la senial al parent (control .asp)
*/ function mouseUpO { if (window.mouseDownFlag) parent .mouseup ( ) ; { window.mouseDownFlag = null;
} }
/*
esto es para evitar la selecciϋn de texto.
*/ function selectStart ( )
{ if ( event . srcElement . tagName != "INPUT" ) return false; }
TOOLBAR FORM
*/
function validateForm (theField, theError)
{ lastField = theField; , if (PVFOR [theField] .value
/* ====================== abre una ubicacion dentro de un iframe
*/ function openlnlframe (addr) thelframe. location. replace (addr) ;
function setQSVariable (variableName, variableValue) { qs [variableName] = variableValue; }
Es llamado por db_traffic .asp (sendData (1) ) desde dentro del iframe.
Abrira dentro del mismo iframe desde el cual fue llamado al sub-modulo que generara el codigo fuente del timeline.
Luego de generar el codigo fuente llamara a saveJS enviandole como argumento al codigo fuente.
devuelve el index del objeto dentro de la colecciϋn de acuerdo a las propiedades del mismo. esto significa que si el objeto tiene width=200 y height=200, buscar- saber si hay otros
objetos con estas propiedades, y entonces sabr- si este es el lro, 2do, etc...
esta funcion siempre es Hamada internamente por returnDockHiddingObj ectProperties () ;
*/ function returnDockHiddinglndex(objeto)
{ var coll = parent .document .all . tags (objeto. tagName) ; var ii = 0; for(var i=0; i<parselnt (coll . length) ; i++)
{ var objetoActual = coll . item(i) ,-
/* a los OBJECT & IFRAMES se los puede identificar por width/offsetWidth, height/offsetHeight */ var obj ectOrlframe = (objeto. tagName == "IFRAME" || obj eto . tagName == "OBJECT"); var widthVar = (objectOrlframe) ? "offsetWidth" : "width"; var heightVar = (objectOrlframe) ? "offsetHeight" : "height"; if ( parselnt (objeto. item) == i )
/* ANCLADO */ /* si el shoshkele est- anclado a algun objeto, entonces */ /* obtengo la posiciUn del flash en relaciϋn a tal objeto. */ if (PVFORM. elancladoq.value)
{ objectLeft = get (parent . lista [PVFORM. elancladoq. alue] ) ; objectTop = getY (parent .lista [PVFORM. elancladoq.value] ) ; PVFORM. dockLeft. value = (left - objectLeft) ;
restoreDH(toReturn) ; } /* function parseDockHiddingQS (str) */
function setDockedObj ect (object) { window.DOCKEDOBJECT = o ject ,- }
se ocupa de restaurar los objetos que anteriormente fueron ocultados o anclados. se ejecuta solamente cuando se vuelve a editar un shoshkele antes grabado.
el array que recibo tiene el siguiente formato pero las propiedades cambian segun el tipo de objeto que sea.
*/ function restoreDH(objArray)
for (var i=0; i<objArray. length; i++)
{ var obj = objArray [i] ,-
if (obj .tagName == "img")
{ var index = getlndexTagCollection (obj .tagName, obj. index, obj.propl, obj.prop2);
var action = ACTIONS [obj .action] ;
if (index != -1)
{ var obj ectFound = parent .document . all . tags (obj .tagName) .ite (index) ;
objectFound. theWidth = objectFound.width,- objectFound. theHeight = objectFound.height;
if ( obj. action == BOTH || obj. action == HIDE)
if (qs.posType == DOCKED --& (obj. action == DOCK || obj. action == BOTH) && index == -1 )
{ qs . top = 0 ,- qs.left = 0;
restorePosition (FIXED)
alert ("The object previously selected for dynamically positioning the Shoshkele is missing. The creative is now in a fixed coordinate. You may select a new object for anchoring."),-
********************************************************** /* partes del timeline ************************************/ /**********************************************************/
ONLOAD
Esta funcion es recursiva y se ejecuta hasta que el toolbar termina de cargar, en ese momento habilita los eventos y prepara a los Iframes y Objects, a los que les cambia el SRC por uno local, y que de esa forma podamos tener control total en ellos.
esta funcion pregunta constantemente si algun objeto Flash fue presionado
hace un for cada segundo por todos los OBJECT para ver si a alguno se le seteo la variable presionado esa veriable se setea internamente en el flash cuando se clickea dentro de el.
*/ function checkClickAndOverOnFlash () { if (OBJECT_COUNT == 0 && TOOLBARLOADED) { for(var i = 0; i < document .all . tags ( "OBJECT" ). length; i++)
/* esto indica que la solapa de [object hidding] o la de [docking] se encuentra visible o que */ /* un objeto fue agregado (restore) */ if (manualAction ==
"hide" I I manualAction == "dock" | | window. SELECTFOR == "hide" | | window. SELECTFOR == "dock") {
/* dependiendo de cu-1 sea la acciύh. onmouseover->send, onclick->caρture */ if(toDo == "send")
/* declareObj ectTo (objectltem, toDo, manualAction) */
esta funcion se encarga de mandar la informacion del OBJECT sobre el que se paso el mouse a TOOLBAR
*/ function sendObjectlnfo (objectltem, objWidth, objHeight) {
/* recibo la informacion de quE Item es en la colecciϋn de OBJECTS */ /* de la pagina, en esta linea asigno a selectedObject el objeto que me llamo, gracias <-- (?) */
SELECTEDOBJECT = ' document. all .tags ("OBJECT") . item (parseln (objectltem) ) ; if ( lchecklnputs ) return false,- /* borro el contenido de los inputs. */ clearlnputs () ,- /* empieza el paso de las variables del IFRAME al formulario */ /* Si el User esta ANCLANDO (SELECTFOR, contiene la accion y es variado desde el toolbar cuando */ /* presionan los botones) */ if (window.SELECTFOR == "dock")
/* termina el paso de variables del IFRAME al formulario */ } /* function sendObjectlnfo (objectltem, objWidth, objHeight) */
/*
Esta funcion se encarga de cambiar el color del OBJECT y de agregarlo al "array global de objetos seleccionados"
Cuando se cambia el color de un OBJECT forzosamente se genera un objeto nuevo, asi que cuando se selecciona un
OBJECT se genera en un array paralelo a lista, que se llama objetos [] una referenda directa al nuevo objeto.
*/ function addObjectToArray (obj ectltem, objWidth, objHeight, manualAction)
{ var hideSeleσt =
PVFORM . theHiddenObj ; /*
Estas variables son flasgs para saber si el OBJECT que se clickeo hay que agregarlo al Array global lista [] */ var addToHideList = false; var addToDockList = false,-
/* esta variable es un flag para saber si hay un item para borrar */ var deleteltem = false; tmpObject
/* si el objeto que se selecciono ya habia sido selecoionado se usa la misma casilla en la lista global */ for(i=0; i<= (lista. length-1) ,- i++) { if ( (lista [i] .item == tmpObject . item) && (lista [i] . tagName == tmpObject . tagName) ) { tmpObject = lista [i]; LASTPOSITION = i; }
} /* si el objeto no est- oculto, y fue selecoionado para ocultarse. */ if ( tmpObject. hide == false && (manualAction == "hide" | | window . SELECTFOR == "hide") ) { var isNone
/* Si el User esta ANCLANDO (SELECTFOR, contiene la accion y es variado desde el toolbar cuando presionan los botones) */ if (window.SELECTFOR == "dock")
/* Si el User esta OCULTANDO (SELECTFOR, contiene la accion y es variado desde el toolbar cuando presionan los botones) */ else if (window. SELECTFOR ==
} /* termina el paso de variables del IFRAME al formulario */ }
/* sendlframelnfo(itemPos, ifra eWidth, iframeHeight) */ function addlframeToArray ( itemPos, tmplframeWidth, tmplframeHeight , manualAction) { /* Estas variables son flags para saber si el IFRAME que se clickeo hay que agregarlo al Array global lista [] */ var addToHideList = false; var addToDockList = false,-
/* Esta variable es un flag para saber si hay un item para borrar */ var deleteltem = false;
/* busco si el objeto ya se encuentra en la lista. */ for(i=0; i<= (lista. length - 1); i++) { /* si lo encuentro, entonces no tengo que volver a ingresarlo en la lista. */ if( (lista [i] .item == SELECTEDOBJECT. item) && (lista [i] .tagName == SELECTEDOBJECT. tagName) ) {
SELECTEDOBJECT = lista [i] ; LASTPOSITION = i; }
} if (manualAction
== "hide" I I window. SELECTFOR == "hide") { if (returnObjectStatus () == "none")
{ PVFORM. theHiddenObj .length = 0 ; var cant = 0 ,- } else { var cant = PVFORM. theHiddenObj . length; . }
/*Agrega el text y el value al option de Hiding. */ unaOpcion
} if ( condition && (! index || (++obj Index == index)) )
window . shFlag = toReturn = it ; break ,-
} } /* for */
/* manualDockHide ( ) */
DOCKING (delete)
function filterDeleteDock (itemlnList) {
PVFORM. elanclado .value= " " ; si el objeto fue anclado manualmente entonces no tengo la necesidad de cambiarle el color. if ( lista [itemlnList] .manual ) { lista [itemlnList] .hide = false; else { deleteDock (itemlnList) PVFOR . elancladoq . value } /* function filterDeleteDoc (itemlnList)
*/ function deleteDock(itemlnList) { var currentstate
= returnObjectStatus (lista [parselnt (itemlnList) ]) ,- var tmpObjectDD = lista [parselnt (itemlnList) ] ; if (tmpObj ectDD. tagName == "A") { tmpObjectDD. style.backgroundColor = tmpObj ectDD. oldStyle,- tmpObj ectDD. dock = false; tmpObjectDD. selected = false; } else if (tmpObjectDD. tagName == "IMG") { if (currentstate == "selected") { tmpObjectDD. src = theSRC+ ' img/rojo.gif ' ; tmpObj ectDD . dock = false; tmpObjectDD. selected = false; } else if (currentstate == "dock") { tmpObjectDD. src = tmpObj ectDD. oldSrc ; tmpObjectDD. dock = false; }
/* si el objeto es del tipo radio, entonces selecciono todos los objetos */ /* con ese nombre . */ if( SELECTEDOBJECT . type == "radio" --& SELECTEDOBJECT.name ) { changeBG (SELECTEDOBJECT. tagName, SELECTEDOBJECT .name, ROJO) ;
/*Agrega el text y el value al option. */ unaOpcion = TOOLBAR.document . createElement ( "OPTION" ) ; unaOpcion. alue = LASTPOSITION; unaOpcion. text = theSelectText; PVFORM. theHiddenObj .options .add(unaOpcion) ;
/* Le resto uno porque la casilla 0 en el select esta reservada para el texto SELECCIONE UN OBJETO, */
/* pero la de la lista es utilizable asi que hay que empatarlas */ itemlnLista = PVFORM. theHiddenObj .options [PVFORM. theHiddenObj .selectedlndex] .value; var currentstate = returnObjectStatus ( lista [parselnt (itemlnLista) ] ) ; var tmpObjectDH = lista [parseln (itemlnLista) ] ; if( (tmpObjectDH. tagName == "INPUT" || tmpObjectDH. tagName == "SELECT") && tmpObjectDH. type != "image")
esta funcion recibe parametros de toolbar .mouseDown () . envia las posiciones X & Y internas del iframe correspondiente al toolbar en donde se presiono el mouse, esas posiciones son tomadas como iniciales, luego en el mouseMove dentro del toolbar se envϊan las nuevas posiciones, y calculando las diferencias se mueve el iframe.
} } } /* function movelf (offX, offY) */
function mouseUpO { var leftlnicial
= 0; var toplnicial = 0; MD = false; restoreToolBarPositionO ,- } /* function mouseUpO */
TOOLBAR
verifica que toolbar no haya sido arrastrada fuera de la pantalla. y si asi se hizo entonces la vuelve a la posicion mas cercana pero dentro de la ventana.
} /* si hay un panel visualizado, y no es el de posicion, lo visualizo. */ if (TOOLBAR. BBUTTONDOWN && TOOLBAR. BBUTTONDOWN != "btnpos") TOOLBAR. tbButtonPress (TOOLBAR. document .all.btnpos) ,-
} } } /* MD */
RESIZE FUNCTIONS
function resize_manualApρly ( ) { if (PVFORM. resizeWidth.value>0 I | PVFORM. resizeHeight .value>0)
{ var newW = PVFORM. resizeWidth.value; var newH = PVFORM. resizeHeight .value ; if (newW < 160) {
PVFORM. resizeWidth.value = document .all . sh_all_anim_shoshkelizer . style .posWidth; PVFORM. resizeHeight.value =
document .all . sh_all_anirt_shoshkelizer. style .posHeight; uvAlert ("Width must be larger than 160 pixels");
// Write the flash on the same page in which the tag was implemented although this may not be visible for being hidden. Also, write the necessary functions in order to communicate flash to js.
//
// The same page in which the tag was implemented can be "within an IFRAME" .
En that case, the flash will be loaded with the only intention of pre-load. //
// [STEP 4] If the implementation was made by IFRAME, then writes the flash again and the necessary code for the communication, but this time on the top page (in which the Shoshkele appears) // if (window. thelndex)
1. A method for producing a signal to control characteristics, including the position, size and appearance of a multimedia object to be placed over an image to be displayed by a client computer system running an application program and connected to a network, the image to be received via the application program from a content server connected to the network, the object to be received over the network separately from the image after the image is displayed, the method comprising the steps of: to a user's computer system downloading, from an application server connected to the network, a first signal producing on a display of the user's computer system, a representation of the image with a representation of the object overlying the image, and a second signal comprising executable code designed to produce, on the display, control elements actuable by the user to adjust characteristics ofthe object, including the position, size and appearance ofthe object; sensing the user's actuations ofthe control elements; and storing a control signal representing a plurality of the user's actuations ofthe control elements.
2. The method of claim 1, wherein the application program is a browser, and the image is part of the content displayed on a client computer browser page, the user's computer system running a browser and the first and second signals, being received in the browser.
3. The method of any preceding claim, wherein the object constitutes advertising material.
4. The method of any preceding claim, wherein the control signal is used to generate a timeline signal representing temporal and spatial characteristics of the object to be placed over the image, the timeline signal being subsequently provided to the client computer along with the multimedia object.
5. The method of any preceding claim, wherein one of the control elements is effective to anchor the object's position relative to a selected portion of the image.
6. The method of any preceding claim, wherein one of the control elements is effective to modify or hide a selected portion ofthe image.
7. The method of any preceding claim, wherein one of the control elements is effective to adjust the object's size relative to a selected portion of the image.
8. The method of any preceding claim, wherein one of the control elements is effective to adjust the object's size or position by operations performed with a pointing device.
9. The method of any preceding claim, wherein the control elements are constructed to create a toolbar.
10. The method of any preceding claim, wherein the control elements are constructed to create a menu or a system of linked menus.
11. The method of any preceding claim utilized in an operating system providing multilayered windows, the object being produced in the window of the image on a layer above any layer ofthe image.
12. The method according to any preceding claim, wherein a portion of the object is transparent, so that a portion of the image can be seen therethrough.
13. The method according to claim 12, wherein the transparent portion of the object is indicated by indicia appearing in the display of the user's computer system, representing to the user the portion of the object which is transparent.
PCT/US2004/0031032003-02-032004-02-03Method for laying out multimedia advertisements
WO2004070579A2
(en)
Designated state(s):
AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW
AL
Designated countries for regional patents
Kind code of ref document:
A2
Designated state(s):
BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG
121
Ep: the epo has been informed by wipo that ep was designated in this application
WWE
Wipo information: entry into national phase
Ref document number:
2431/DELNP/2006
Country of ref document:
IN
32PN
Ep: public notification in the ep bulletin as address of the adressee cannot be established
Free format text:
NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 69(1) EPC DATED 01-02-2006.