Welcome to OmniDate’s Virtual Dating Integration/Installation Guide.
You may follow our easy Three Step Install Process below to get up and running in no time. If you are an advanced user or are reading this document for the second time, consider reading the text inside of the light blue boxes for advanced tips and suggestions to give your site a more personal touch.
Contents
How Does It Work?
Step 1: Include the OmniDate Library Files
Step 2: Initializing A User
Choose Your Notification Style (Optional)
Profile While Dating (Optional)
Step 3: Display Invitation Buttons
Choose Your Button Style (Optional)
Custom Buttons (Optional)
Additional Features
Online User List
Custom Hover Text
Change Avatar Button
Prompt Non-Premium Members
Custom Non-Premium Member Prompt
Turning Sound Off By Default
Virtual Dating Information Center
Suggestions
Have Questions?
How Does It Work?
Our system utilizes a variety of technologies to establish the online presence of your site’s users (up to the second) and allows them to create invitations and connect on a virtual date in real time without leaving your site.
Our scripts take care of all of the necessary notifications, online status, and invitations for all of your members. There is no database integration required!
When you sign on with us, we will provide you with an account name and will support you throughout the process. Once you have it installed, we can test with you and ensure you are using all the available resources to their fullest extent before going live with your members.
A typical integration is quick and straightforward and takes a few minutes to a few hours to get up and running. Since all sites are not created equal, in special cases it may take some extra effort to get up and running. If you are unsure about where to start, you can contact us with any concerns or questions you may have.
THREE EASY STEPS
1. Include the OmniDate Library Files
There are three files that need to be included on each of your pages in order to get have users create and receive invitations. The first script is a standard publically available jQuery Ajax Library (http://jquery.com/); if you are already using a current version of jQuery, you do not need to include this first script. The second and third succeeding files are the OmniDate Cascading Style Sheet and JavaScript Libraries, respectively.
Paste this code into the <head> tag of all pages that logged-in users can access:
// jQuery JavaScript File
<script type="text/javascript" src="http://www.omnidate.net/jquery-1.3.2.min.js"></script>
// OmniDate Style Sheet
<link href="http://www.omnidate.net/Omni_Style_5.css" rel="stylesheet" type="text/css" />
// OmniDate Main JavaScript
<script type="text/javascript" src="http://www.omnidate.net/Omni_Include_5.js"></script>
2. Initializing A User
In order to establish a user’s online presence, the library function Omni_Initialize() must be called on every page a logged on user would have access to. In order to ensure all content is loaded before starting to establish presence, the Omni_Initalize() function is wrapped inside of a JavaScript window.onload event.
The values being passed into the Omni_initialize() function are what our system uses to determine who’s available to invite and allows us to get them on a date with all the features you would come to expect from an integrated solution.
The 'profile' value is simply a link to the user’s profile on your site so we can direct the user there to contact the date when the experience has completed. The url you provide should be one where a userid can be appended to the end of it. The value you provide might look something like this:
'profile','http://www.omnidate.com/getProfileInfo.aspx?userid='
Paste this code below your website’s opening <body> tag and fill in the underlined spaces with the value that correspond to the current logged in user (the value for 'account' will be provided to you at the time of sign-up):
<script type="text/javascript">
window.onload = function () {
if (typeof(Omni_Initialize) != 'undefined') {
Omni_Initialize(
'userid',' ',
'username',' ',
'gender',' ',
'account',' ',
'profile','http:// '
);
}
};
</script>
For Advanced Users
show/hide
Choose Your Notification Style (Optional)
Though some of our clients are happy to be up and running as quickly as possible, others prefer a personal touch as unique as they are. We have numerous invite notification graphic styles available for you to choose from.
| Style Name |
Inviting |
Being Invited |
| Banner01 |
 |
 |
Once you've selected from one of the styles above, you can include the optional 'style' attribute that corresponds to your desired interface. Simply copy the Style Name into the blank line after 'style'.
<script type="text/javascript">
window.onload = function () {
if (typeof(Omni_Initialize) != 'undefined') {
Omni_Initialize(
'userid',' ',
'username',' ',
'gender',' ',
'account',' ',
'style',' ',
'profile','http:// '
);
}
};
</script>
Profile While Dating (Optional)
In order for users to see information about their date, you may pass the information for a user via XML. The optional "userxml" value passed into the Omni_initialize() (see above), is the location of a file on your server used to return XML about a user when called upon. The xml link passed in should be all but the UserID, which will be added to the link when called by our system.
For example, if we're looking for the profile information for a user named "User123" and the location of the file that will return a user’s info is getProfileInfo.aspx (for example), you might pass into Omni_Initialize():
'userxml','http://www.omnidate.com/profile.aspx?userid='
When a date is started, we would make the call out to that file location and append the userId automatically: http://www.omnidate.com/getProfileInfo.aspx?userid=User123
Our application will parse XML and displayer the following fields: name, quote, gender, age, location, profession, photo (which is a url to their main photo), about. The XML should be formed without any markup (HTML) or non-unicode characters.
Here’s an example of what the XML should look like:
<profile>
<userid>User123</userid>
<name>BillyBob</name>
<quote>I’m not much for quotes</quote>
<gender>male</gender>
<age>50</age>
<location>New York, NY</location>
<profession>Real Estate</profession>
<photo>http://www.omnidate.com/member_images/thumbs/User123.jpeg</photo>
<about>I'm a fun guy who likes to go out and have a good time. I enjoy listening and playing music (sax and guitar mostly). I’m a creative person, who enjoys watching live music, attending art shows and live theatre.</about>
</profile>
The entire Omni_Initialize() function might now look something like this:
<script type="text/javascript">
window.onload = function () {
if (typeof(Omni_Initialize) != 'undefined') {
Omni_Initialize(
'userid','347854',
'username','Jessi123',
'gender','female',
'account','TESTACCOUNT',
'profile','http://www.omnidate.com/profile.aspx?userid=',
'userxml','http://www.omnidate.com/getProfileInfo.aspx?userid='
);
}
};
</script>
In order for our software to read the XML file on your server, you must include the crossdomain.xml file at the root of your website: http://wwww.________.com/crossdomain.xml
Download crossdomain.xml (right-click, save as...)
If you already have a crossdomain.xml file on your server, you can edit that file and inclide OmniDate as an exception:
<allow-access-from domain="*.omnidate.net" />
<allow-access-from domain="*.omnidate.com" />
In order for a user to see the online status of another user and create an invitation, include a small snippet of code providing the id of the user whose status we wish to know. Our scripts handle the updating the status of the user (online, offline, busy, etc) and will generate an invite automatically on click.
For each user you wish to display, the button is as follows:
<script type="text/javascript">
Omni_Button('userid','_____');
</script>
You would usually put a button any place you display a user or their profile. On a profile, in a search list, or maybe even on the home page! Anywhere you want invitations to be sent.
For Advanced Users
show/hide
Choose Your Button Style (Optional)
As with our custom date notifications, we also allow you to customise your invitation buttons. We have numerous button graphic styles available for you to choose from.
| Style Name |
Online |
Inactive |
Dating |
Offline |
| Button01 |
 |
 |
 |
 |
| Button02 |
 |
 |
 |
 |
| Button03 |
 |
 |
 |
 |
| Button041 |
 |
 |
 |
 |
| Button052 |
 |
 |
 |
 |
| Button06 |
 |
 |
 |
 |
| Button07 |
 |
 |
 |
 |
| Button083 |
 |
 |
 |
 |
1 Not actual size, actual is 170x28. 2 Not actual size, actual is 160x25. 3 Not actual size, actual is 124x28.
Once you've selected from one of the styles above, you can include the optional 'style' attribute that corresponds to your desired style. Simply copy the Style Name into the blank line after 'style'.
<script type="text/javascript">
Omni_Button('userid',' ', 'style',' ');
</script>
Custom Buttons (Optional)
Have a specific design in mind? Some of our clients prefer to create their own buttons to match their site’s design scheme. To create your own, you'll need to design four button images as you see in the table above. Each design will correspond to the various states the system is in.
Copy the following code and place it in inside the <body> of your site HTML. Complete the url’s in the first four long blank spaces with the location of the image file you've created for that button state. In the shorter two blanks, fill in the image height and width respectively.
<script type="text/javascript">
var MyButton = new Object;
MyButton.online = "http:// "; // Online State Image
MyButton.inactive = "http:// "; // Inactive State Image
MyButton.dating = "http:// "; // Dating State Image
MyButton.offline = "http:// "; // Offline State Image
MyButton.height = " "; // Image Height
MyButton.width = " "; // Image Width
</script>
Take the name of the Object you have defined and pass it into the Omni_Button() function without the surrounding quotes.
<script type="text/javascript">
Omni_Button('userid',' ', 'style',MyButton);
</script>
CONGRATULATIONS
The installation is now complete! If you followed the three steps above, your users are now able to create initiations and go on a Virtual Date.
Additional Features
If you were comfortable with the installation and would like to further customise the experience for your users, we offer additional features you may like to take advantage of. The below features are completely optional, but provides some functionality you may find useful.
Online User List
Our database keeps up to the minute online stats for all users who are currently available for a Virtual Date on your site. Providing a section where users can view only available daters allow for convenience and ease of use - thus greater usage, time on site, and overall dating success!
<Users>
<OnlineUsers>
<OnlineUser>
<UserID>347854</UserID>
<DatingStatus>Online</DatingStatus>
<Requesting />
<RequestedBy />
</OnlineUser>
<OnlineUser>
<UserID>546285</UserID>
<DatingStatus>Online</DatingStatus>
<Requesting />
<RequestedBy />
</OnlineUser>
</OnlineUsers>
</Users>
In addition to a list of all users online, we can also provide information on one specific user’s availability if you so desire.
To learn how to see an XML list for online users, please contact us at support@omnidate.com.
Custom Hover Text
By default, when you hover your mouse over the invitation buttons, each state provides a different message.
| Style Name |
Default Hover Text |
| online |
Invite This User on a Virtual Date Now! |
| inactive |
You cannot Invite this User right now. |
| dating |
This User is on a Virtual Date. |
| offline |
Unavailable for a Virtual Date. Message Them Now to Schedule a Date. |
Not sure you like the wording? You can change it yourself copying the following code and place it in inside the <body> of your site HTML, before the Omni_Include() function.
<script type="text/javascript">
var MyText = new Object;
MyText.online = " "; // Online State Text
MyText.inactive = " "; // Inactive State Text
MyText.dating = " "; // Dating State Text
MyText.offline = " "; // Offline State Text
</script>
Once you have filled in the text for each of the button states, take the name of the Object you have defined and pass it into the Omni_Button() function without the surrounding quotes, to the 'hover' parameter:
<script type="text/javascript">
Omni_Button('userid',' ', 'hover',MyText);
</script>
Change Avatar Button
Users are able to select and customize their Virtual Dating Avatar through our user-friendly interface that pops over your existing content without disturbing your flow or layout. To display a button that will trigger that popover, use the following function call:
<script type="text/javascript">
Omni_Avatar(
'style',' ',
'gender',' '
);
</script>
The gender only needs to be specified for buttons styles that contain a male/female version. Passing in 'male' or 'female', will show the appropriate button where applicable. Failing to pass in gender will result in the default button being shown.
The available style values are shown in the chart:
| Style Name |
Male/Default |
Female |
| Avatar01 |
 |
 |
Prompt Non-Premium Members
Some client sites prefer to use Virtual Dating as a means to encourage their users to upgrade their accounts to a premium membership. We have built in some functionality to allow you to do so.
To flag a Non-Premium users, pass values 'premium' (for regular page redirection) or 'premiumpop' (for a popup style registration) to Omni_Initialize(), followed by the URL to your registration page. When a user attempts to initiate an invitation, they will be prompted with a popover reminding them to register for a premium account in order to have access to virtual dating and continue that invitation.
<script type="text/javascript">
window.onload = function () {
if (typeof(Omni_Initialize) != 'undefined') {
Omni_Initialize(
'userid','347854',
'username','Jessi123',
'gender','female',
'account','TESTACCOUNT',
'premiumpop','http://www.______.com/RegisterPremium.aspx'
);
}
};
</script>
As well as disallowing non-premium users to initiate invitations, the same prompt will appear after the date as well for non-premium users who were invited by premium members**
**Typically the best way to use a premium-required setup is to allow premium members to invite ANY user on a date (non-premium included), and restrict non-premium users from initiating invitations by using the 'premium'/'premiumpop' value.
Custom Non-Premium Member Prompt
If you wish to customize the wording of the premium membership popover, we have built that ability into our application as well!
Along with passing the values 'premium' or 'premiumpop' to the Omni_Initialize() function, also passing the name of a file containing "Well-Formed XML" after the value 'premiumxml' will push that custom XML content into the popover box. The name of the file passed MUST reside on the same domain-name as the page the user will be viewing it on. You do not pass the domain name, as it will be picked up automatically, just the relative file name, as below:
<script type="text/javascript">
window.onload = function () {
if (typeof(Omni_Initialize) != 'undefined') {
Omni_Initialize(
'userid','347854',
'username','Jessi123',
'gender','female',
'account','TESTACCOUNT',
'premiumpop','http://www.______.com/RegisterPremium.aspx',
'premiumxml','xmlfiles/MyCustomDesign.xml'
);
}
};
</script>
HTML is allowed within the XML tags, but must be wrapped inside of the character data tag's opening <![CDATA[ and closing ]]>
The box itself will always use the same general layout and design, but will allow custom wording. The popover lays out like this:

The XML file that would result in the above-right design would look like this:
<?xml version="1.0" encoding="utf-8" ?>
<premium>
<maintext>
<![CDATA[Please upgrade your account to invite someone on a
<a href='javascript:MoreInfo(\"1\")'>virtual date</a> now.<br />
<img src='http://www.omnidate.net/images/screen2a.jpg' />
<img src='http://www.omnidate.net/images/asseenon.gif' />]]>
</maintext>
<subtext>
<![CDATA[<a href='javascript:MoreInfo("2")'>Choose your virtual
character now</a>]]>
</subtext>
<question>Would you like to register?</question>
<button-yes>Yes, Please</button-yes>
<button-no>Maybe Later</button-no>
</premium>
Turning Sound Off By Default
Our product features fully licensed music by independent artists from around the globe that users will listen to as minimum volume background ambiance to enhance their dating experience. However, you may wish to have users start the experience with music turned off by default. To do so, include the 'sound','false' parameters to the Omni_Initialize() function:
<script type="text/javascript">
window.onload = function () {
if (typeof(Omni_Initialize) != 'undefined') {
Omni_Initialize(
'userid','347854',
'username','Jessi123',
'gender','female',
'account','TESTACCOUNT',
'sound','false'
);
}
};
</script>
In addition to turning off the music and alerts within the date itself, the familiar "You have been invited on a date", will change to a faint digital beep so users will know they have been invited on a Virtual Date.
Virtual Dating Information Center
If you are looking for a way to tell you users about the benefits of Virtual Dating, you may like to setup a Virtual Dating Information Page. We can provide you the necessary HTML, complete with images and language that your users can understand. Email support@omnidate.com for details or resources.
Suggestions
We are always looking for ways to make our product better. Different sites have different needs, and we would like to accommodate you as best we can. If you have any idea suggestions, be sure to drop us a line and let us know how we can make our product work for your business.
In the mean time, here are some other ideas we are currently working on:
- User Customizable Invitation Notifications
- Missed Initiation E-Mail Interface
- Optional Popup Window Dates
We're always glad to assist with any installation questions and can walk you through an install or provide example scripts where necessary. Call us at (416) 623-7445 or email support@omnidate.com.
Back