//this script is a combination of 4 things: (1)create dynamic layer and (2)follow mouse (3)while onMouseOver
//with lots of (4)browser detection going on to avoid crashing

//declare variables
var pop_x = 0;
var pop_y = 0;
var pop_allow = 0;
var pop_showing = 0;
var pop_nocounter = 0;
var left = 7;
var right = 8;
var center = 9;
var above = 35;
var below = 36;
var offcss = 51;
var ol_frame = self;
var pop_text = "";
var pop_background = "";
var pop_close = "Close";
var pop_hpos = right;
var pop_offsetx = 10;
var pop_offsety = 10;
var pop_width = 100;
var pop_status = "";
var pop_autostatus = 0;
var pop_fixx = -1;
var pop_fixy = -1;
var pop_fullhtml = 0;
var pop_vpos = below;
var pop_aboveheight = 0;
var pop_frame = self;
var pop_timeout = 0;
var pop_timerid = 0;
var pop_allowmove = 0;
var pop_function = null;
var pop_delay = 0;
var pop_delayid = 0;
var pop_hauto = 0;
var pop_vauto = 0;
var pop_closeclick = 0;
var pop_css = offcss;
var pop_fgclass = "";
var pop_bgclass = "";
// the layer variables
var over = null;
var fnRef;

// which browser version
var ns4 = (navigator.appName == 'Netscape' && parseInt(navigator.appVersion)== 4);
var ns6 = (document.getElementById)? true:false;
var ie4 = (document.all)? true:false;
if (ie4) var docRoot = 'document.body';
var ie5 = false;
if (ns4) {
var oW = window.innerWidth;
var oH = window.innerHeight;
window.onresize = function () {if
(oW!=window.innerWidth||oH!=window.innerHeight) location.reload();}
}

// Microsoft needs this: ref- mircrosoft.com
if (ie4) {
if ((navigator.userAgent.indexOf('MSIE 5') > 0) ||
(navigator.userAgent.indexOf('MSIE 6') > 0)) {
if(document.compatMode && document.compatMode =='CSS1Compat') docRoot =
'document.documentElement';
ie5 = true;}
if (ns6) {ns6 = false;}
}

// sends to showLayer function
if ( (ns4) || (ie4) || (ns6)) {
document.onmousemove = mouseMove
if (ns4) document.captureEvents(Event.MOUSEMOVE)
} else {
overlay = no_overlay;
nd = no_overlay;
ver3fix = true;
}

// Loads parameters 
function dpl() {
if ( (ns4) || (ie4) || (ns6) ) {
if (over) closeClick();
pop_frame = ol_frame;
if (ns4) over = pop_frame.document.overDiv
if (ie4) over = pop_frame.overDiv.style
if (ns6) over = pop_frame.document.getElementById("overDiv");
}

var parsemode = -1, udf, v = null;
var ar = arguments;
udf = (!ar.length ? 1 : 0);
for (i = 0; i < ar.length; i++) {
if (parsemode < 0) {

if (typeof ar[i] == 'number') {
udf = (ar[i] == FUNCTION ? 0 : 1);
i--;
} else {
pop_text = ar[i];
}

parsemode = 0;
} else {

if (ar[i] == center || ar[i] == left || ar[i] ==right) { pop_hpos = ar[i];
continue; }
if (ar[i] == below || ar[i] == above) { pop_vpos = ar[i]; continue; }
if (ar[i] == offcss) { pop_css = ar[i]; continue; }

}
}
if (udf && pop_function) pop_text = pop_function();

if (pop_delay == 0) {
return show_background();
} else {
pop_delayid = setTimeout("show_background()", pop_delay);
return false;
}
}

// clears popups 
function npl() {
if ( pop_nocounter >= 1 ) { pop_showing = 0 };
if ( (ns4) || (ie4) || (ns6) ) {
if ( pop_showing == 0 ) {
pop_allowmove = 0;
if (over != null) hideLayer(over);
} else {
pop_nocounter++;
}
}
return true;
}

// shows background
function show_background() {
// Make layer content
var layerhtml;
layerhtml = ol_content_simple(pop_text);
writeLayer(layerhtml);
pop_allowmove = 0;
disp(pop_status);
}

// Makes simple table 
function ol_content_simple(text) {
txt = "<TABLE WIDTH=150 BORDER=0 CELLPADDING=1 CELLSPACING=0 bgcolor=#000099><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0 bgcolor=#eeeeee><TR><TD><center><font size=-2 face='Arial, Helvetica, sans-serif'>"+text+"</font></center></TD></TR></TABLE></TD></TR></TABLE>";
return txt;
}

// displays the popup
function disp(statustext) {
if ( (ns4) || (ie4) || (ns6) ) {
if (pop_allowmove == 0) {
placeLayer();
showLayer(over);
pop_allowmove = 1;
}
}

if (statustext != "") {
self.status = statustext;
}
}

// decides where to put the layer: adapted from javascript share site
function placeLayer() {
var placeX, placeY;

winoffset = (ie4) ? eval('pop_frame.'+docRoot+'.scrollLeft'): pop_frame.pageXOffset;
if (ie4) iwidth = eval('pop_frame.'+docRoot+'.clientWidth');
if (ns4 || ns6) iwidth = pop_frame.innerWidth;

placeX = pop_x+pop_offsetx;
if ( (eval(placeX) + eval(pop_width)) > (winoffset + iwidth) ) {
placeX = iwidth + winoffset - pop_width;
if (placeX < 0) placeX = 0;
}

scrolloffset = (ie4) ?
eval('pop_frame.'+docRoot+'.scrollTop') : pop_frame.pageYOffset;

// From mouse
if (pop_vpos == above) {
if (pop_aboveheight == 0) {
var divref = (ie4) ?
pop_frame.document.all['overDiv'] : over;
pop_aboveheight = (ns4) ? divref.clip.height
: divref.offsetHeight;
}

placeY = pop_y - (pop_aboveheight + pop_offsety);
if (placeY < scrolloffset) placeY = scrolloffset;
} else {
// below
placeY = pop_y + pop_offsety;
}
// move the object
repositionTo(over, placeX, placeY);
}

// moves the layer
function mouseMove(e) {
if ( (ns4) || (ns6) ) {pop_x=e.pageX; pop_y=e.pageY;}
if (ie4) {pop_x=event.x; pop_y=event.y;}
if (ie5) {pop_x=eval('event.x+pop_frame.'+docRoot+'.scrollLeft');
pop_y=eval('event.y+pop_frame.'+docRoot+'.scrollTop');}

if (pop_allowmove == 1) {placeLayer();}
}

// close onMouseOver function
function closeClick() {
hideLayer(over);
pop_showing = 0;
return false;
}

// LAYER FUNCTIONS
function writeLayer(txt) {
txt += "\n";
if (ns4) {
var lyr = pop_frame.document.overDiv.document
lyr.write(txt)
lyr.close()
} else if (ie4) {
pop_frame.document.all["overDiv"].innerHTML = txt
} else if (ns6) {
range = pop_frame.document.createRange();
range.setStartBefore(over);
domfrag = range.createContextualFragment(txt);
while (over.hasChildNodes()) {
over.removeChild(over.lastChild);
}
over.appendChild(domfrag);
}
}

// layer visible - netscape version
function showLayer(obj) {
if (ns4) obj.visibility = "show";
else if (ie4) obj.visibility = "visible";
else if (ns6) obj.style.visibility = "visible";
}

// Hides layer - netscape version
function hideLayer(obj) {
if (ns4) obj.visibility = "hide";
else if (ie4) obj.visibility = "hidden";
else if (ns6) obj.style.visibility = "hidden";

if (pop_timerid > 0) clearTimeout(pop_timerid);
if (pop_delayid > 0) clearTimeout(pop_delayid);
pop_timerid = 0;
pop_delayid = 0;
self.status = "";
}

// moves layer
function repositionTo(obj,xL,yL) {
if ( (ns4) || (ie4) ) {
obj.left = (ie4 ? xL + 'px' : xL);
obj.top = (ie4 ? yL + 'px' : yL);
} else if (ns6) {
obj.style.left = xL + "px";
obj.style.top = yL+ "px";
}
}

// Center Dinner Window
function DinnerWin(Restaurant) { 
var winleft = (screen.width - 775) / 2;
var winUp = (screen.height - 525) / 2;
winProp = 'width=775,height=525,left='+winleft+',top='+winUp+',scrollbars=yes,resizable=yes,menubar=no,toolbar=no,status=yes';
window.open('https://secure02.mgm-mirage.com/rsvip/nyny.asp?ID='+Restaurant,'dinner',winProp);
}