Plugin development (with support for FF2+, IE6+).
The plugin should have installation page, auto update and ability to show popup messages.
**Requirements from the developer / process:**
1. Full payment upon complete product delivery (as it's small size project)
2. Elegant and well documented code
3. Fully tested on all browsers and machines (WinXP / Vista / Win7 / MacOS)
4. Support for bugs
## Deliverables
**Plugin requirements:
**
Browser support:
1. Firefox 2+
2. IE6+
3. Safari? (is there support for Safari plugins?)
Plugin Installation page:
[note: should be the same page (url) for all browsers]
1. URL with unique id cause id (cid) as query string - for example "**?cid**=XXXX" or "?**cid**=XXXX&uid=YYYY"
2. If the browser is not supported by us (such as Chrome, etc.) there should be a message "this browser is not supported. Do you want to set our site as your homepage?" which will set oursite (" [tromly][1][.com/?][1][cid][1][=XXXX][1]" <-- the id is based on the query string on the current page) as the user homepage.
2.2 When possible also set search provider ([[login to view URL]][2])
3. If we do support this browser:
3.1. This page will store never expire cookie (30yrs):
{ key: "installation_cause_id" value: extracted from the url's query string ('cid') }
3.2. INSTALL (when clicking on install) - only one install button (link) which will be set automatically according to the supported browser type.
3.2.1. If our plugin already installed then we just need to replace the cause_id (note: do full installation in case the plugin is not the latest version).
3.2.2. If our plugin wasn't installed previously then do a real installation process on the machine
Installation (i.e., actions):
1. Read the "installation_cause_id" cookie and set it as our plugin variable "cause_id" (from now on every time we refer to 'cid' it's the value we stored in our plugin as 'cause_id')
2. Set the homepage to "[tro][1][[login to view URL]][1]"
3. Set the browser search component + address bar search to "[sea][2][[login to view URL]][2]"
4. Set "New Tab" window to a fixed html code we will provide. This fixed html must be updatable from our site (i.e., every 24hrs or new browser opening (the latest: when opening new browser unless it's less than 24hrs since your last check) you should check if there is a new html for this and download it for later use).
5. Upon installation completion you should open a popup in fixed dimension that open a fixed link (as iframe) in it (for the example, let's assume the size is 400x400 and the link is [tro][3][[login to view URL]][3])
Example of this popup (should be on top of the browser and not within the browser canvas / regular alert):
![][4]
Popup - zoon screenshot
![][5]
Popup - full screenshot
6. Landing page: last step (in parallel of showing the popup window in step #5 above) is to open the browser in our landing page ([tromly][6][.com/success?cid=XXXX][6])
* Upon browser restart:
1. At the plugin preferences page we should have checkbox for "Enable switch back to default search engine" which is checked by default. If it's checked then:
1.1. If the browser address bar search component is not set to us then we should change it back to [search.][2][tromly][2][.co][2][m/?][2][cid][2][=XXXX][2]
1.2. If the browser search component ('open search') is not set to us then it should be changed back to [search.][7][tromly][7][.com/?][7][cid][7][=XXX][7] <-- please note: this should be done no more than once a week!
2. If the user uncheck the "Enable switch back to default search engine" from the plugin preferences we should show an alert (title + text) that the user should confirm the uncheck.
* Additional features required:
1. plugin auto-update:
Upon browser restart (but not more than once in 24hrs period) we should check if there is a new version of the plugin and install it automatically. Note: if this can't be done we should show a popup message (something like "There is a new version of the plugin, do you want to update it?") and re-install/update theplugnig while keeping the same cause_id ('cid')
2. message popup
At the same version check (browser restart but not more than once every 24hrs) you should check the "message_id" from the server - if the message_id you get from the server is higher than the one stored in the plugin you should open a popup in width and height you get in the reply and show a web page in it (as an iframe. url is also part of the reply). To summarize this: when you are doing a "message_id" check you get in the response: message_id, width, height and url. In case the repsponse_message_id is higher than the plugin_message_id, open a popup at the dimension ofresponse_width x response_height and open response_link as an iframe in it.
[note: the popup style should be similar to the welcome popup described at item #4 in the installation section above]
3. note re texts in the plugin
Every text/message being shown to the user (from the plugin) should come from a const and not hard coded in the code. all text consts should be at one place at the codeso we can change the text easily later.
**Requirements from the developer / process:**
1. Full payment upon complete product delivery (as it's small size project)
2. Elegant and well documented code
3. Fully tested on all browsers and machines (WinXP / Vista / Win7 / MacOS)
4. Support for bugs