// v9.4.9


// ----------------------------------------------------------------------------
// Cookies
// ----------------------------------------------------------------------------


/**
 * This is the Cookie() constructor function.
 *
 * This constructor looks for a cookie with the specified name for the current
 * document.  If one exists, it parses its value into a set of name/value pairs
 * and stores those values as properties of the newly created object.
 *
 * To store new data in the cookie, simply set properties of the Cookie object.
 * Avoid properties named "store" and "remove" since these are reserved as 
 * method names.
 * 
 * To save cookie data in the web browser's local store, call store().
 * To remove cookie data from the browser's store, call remove().
 *
 * The static method Cookie.enabled() returns true if cookies are
 * enabled and returns false otherwise.
 */
function Cookie(name) 
{
    this.$name = name;  // Remember the name of this cookie

    // Get a list of all cookies that pertain to this document. We do this by
    // reading the magic Document.cookie property. If there are no cookies, we 
    // don't have anything to do 
    var allcookies = document.cookie;
    if (allcookies == "") return;

    // Break the string of all cookies into individual cookie strings, then 
    // loop through the cookie strings, looking for our name
    var cookies = allcookies.split(';');
    var cookie = null;
    for(var i = 0; i < cookies.length; i++) 
    {
        // Does this cookie string begin with the name we want?
        cookie = cookies[i].replace(/^\s+|\s+$/g, ''); // trim()

        if (cookie.substring(0, name.length + 1) == (name + "="))
            break;
        else
            cookie = null;
    }

    // If we didn't find a matching cookie, quit now
    if (cookie == null) return;

    // The cookie value is the part after the equals sign
    var cookieval = cookie.substring(name.length+1);

    // Now that we've extracted the value of the named cookie, we must break 
    // that value down into individual state variable names and values. The
    // name/value pairs are separated from each other by ampersands, and the
    // individual names and values are separated from each other by colons. We
    // use the split() method to parse everything.
    var a = cookieval.split('&');    // Get an array of name/value pairs
    for(var i=0; i < a.length; i++)  // Break each pair into an array
        a[i] = a[i].split(':');

    // Now that we've parsed the cookie value, set all the names and values as
    // as properties of this Cookie object. Note that we decode the property 
    // value because the store() method encodes it.
    for(var i = 0; i < a.length; i++) {
        this[a[i][0]] = decodeURIComponent(a[i][1]);
    }
}

/**
 * This function is the store() method of the Cookie object.
 *
 * Arguments:
 *
 *   daysToLive: the lifetime of the cookie, in days. If you set this to zero,
 *     the cookie will be deleted. If you set it to null, or omit this argument,
 *     the cookie will be a session cookie and will not be retained when the
 *     browser exits. This argument is used to set the max-age attribute of the 
 *     cookie.
 *   path: the value of the path attribute of the cookie
 *   domain: the value of the domain attribute of the cookie
 *   secure: if true, the secure attribute of the cookie will be set
 */
Cookie.prototype.store = function(daysToLive, path, domain, secure) 
{
    // Loop through the properties of the Cookie object and put together the 
    // value of the cookie. Since cookies use the equals sign and semicolons as 
    // separators, we'll use colons and ampersands for the individual state 
    // variables we store within a single cookie value. Note that we encode the 
    // value of each property in case it contains punctuation or other illegal 
    // characters.
    var cookieval = "";
    for(var prop in this) 
    {
        // Ignore properties with names that begin with '$' and also methods
        if ((prop.charAt(0) == '$') || ((typeof this[prop]) == 'function')) 
            continue;
        if (cookieval != "") cookieval += '&';
        cookieval += prop + ':' + encodeURIComponent(this[prop]);
    }

    // Now that we have the value of the cookie, put together the complete 
    // cookie string, which includes the name and the various attributes 
    // specified when the Cookie object was created.
    var cookie = this.$name + '=' + cookieval;
    if (daysToLive || daysToLive == 0) 
    { 
        cookie += "; max-age=" + (daysToLive*24*60*60);
        
        var expiry = new Date();
        expiry.setDate( expiry.getDate() + daysToLive );
        cookie += "; expires=" + expiry.toGMTString();
    }

    if (path) cookie += "; path=" + path;
    if (domain) cookie += "; domain=" + domain;
    if (secure) cookie += "; secure";

    // Now store the cookie by setting the magic Document.cookie property
    document.cookie = cookie;
}

/**
 * This function is the remove() method of the Cookie object; it deletes the
 * properties of the object and removes the cookie from the browser's local 
 * store.
 * 
 * The arguments to this function are all optional, but to remove a cookie you
 * must pass the same values you passed to store().
 */
Cookie.prototype.remove = function(path, domain, secure) 
{
    // Delete the properties of the cookie
    for(var prop in this) 
    {
        if (prop.charAt(0) != '$' && typeof this[prop] != 'function') 
            delete this[prop];
    }

    // Then, store the cookie with a lifetime of 0
    this.store(0, path, domain, secure);
}

/**
 * This static method attempts to determine whether cookies are enabled. It 
 * returns true if they appear to be enabled and false otherwise. A return value
 * of true does not guarantee that cookies actually persist. Non-persistent 
 * session cookies may still work even if this method returns false.
 */
Cookie.enabled = function() 
{
    // Use navigator.cookieEnabled if this browser defines it
    if (navigator.cookieEnabled != undefined) return navigator.cookieEnabled;

    // If we've already cached a value, use that value
    if (Cookie.enabled.cache != undefined) return Cookie.enabled.cache;

    // Otherwise, create a test cookie with a lifetime
    document.cookie = "testcookie=test; max-age=10000";  // Set cookie

    // Now see if that cookie was saved
    var cookies = document.cookie;
    if (cookies.indexOf("testcookie=test") == -1) 
    {
        // The cookie was not saved
        return Cookie.enabled.cache = false;
    }
    else 
    {
        // Cookie was saved, so we've got to delete it before returning
        document.cookie = "testcookie=test; max-age=0";  // Delete cookie
        return Cookie.enabled.cache = true;
    }
}


// ----------------------------------------------------------------------------
// Windows
// ----------------------------------------------------------------------------


function insite_OpenWindowCenter( url, name, width, height, attributes ) 
{
    if ( attributes != null && attributes.length > 0 )
        attributes += ",";
    
    if ( attributes != null )
	    attributes += "height=" + height + ",width=" + width;
	else
	    attributes = "height=" + height + ",width=" + width;
	
	if ( window.screen ) 
	{
		var ah = screen.availHeight - 30;
		var aw = screen.availWidth - 10;

		var xc = (aw - width) / 2;
		var yc = (ah - height) / 2;

		attributes += ",left=" + xc + ",screenX=" + xc;
		attributes += ",top=" + yc + ",screenY=" + yc;
	}
	
	var newwindow = window.open( url, name, attributes );
	if ( !newwindow.opener ) 
	    newwindow.opener = self;
	if (window.focus) 
	    newwindow.focus();
		
	return newwindow;
}


// ----------------------------------------------------------------------------
// Custom
// ----------------------------------------------------------------------------

function insite_ShowPopup() 
{
    if (surveyCookie.survey != 'show')
        return;

    scroll(0, 0);

    var popup = document.getElementById('insite_Popup');
    if (popup) popup.className = 'insite-popup-on';
}

function insite_HidePopup() 
{
    scroll(0, 0);

    var popup = document.getElementById('insite_Popup');
    if (popup)
        popup.className = 'insite-popup-off';

    surveyCookie.survey = 'hide';
    surveyCookie.store(10000);
}

function insite_OpenSurvey() 
{
    insite_HidePopup();
    insite_OpenWindowCenter('https://secure.insitesystems.com/Web/Survey.aspx?Passkey=GZDS&q=46627&qp=1&referrer=schedule', '', 800, 600, 'scrollbars=1,resizable=1');
}

if ( (new Date()).getHours() > 7 )
{
    // Create the cookie we'll use to save state for this web page.
    var cookie = new Cookie("vistordata");

    // First, try to read data stored in the cookie. If the cookie doesn't exist yet
    // (or doesn't have the data we expect), query the user.
    if (!cookie.name || !cookie.color) 
    {
        cookie.name = 'chip';
        cookie.color = 'white';
    }

    // Keep track of how many times this user has visited the page
    if (!cookie.visits) 
        cookie.visits = 1;
    else
        cookie.visits++;

    // Store the cookie data, which includes the updated visit count.  We set the
    // cookie lifetime to 100 days.  Since we don't specify a path, this cookie 
    // will be accessible to all web pages in the same directory as this one or 
    // "below" it.  We should be sure, therefore that the cookie name, "visitordata"  
    // is unique among these pages.
    cookie.store(100);

    // Create the cookie we'll use to save survey state for this web page.
    var surveyCookie = new Cookie("surveydata");

    // Keep variable to determine if required to show survey popup div
    if (!surveyCookie.survey)
        surveyCookie.survey = 'show';

    surveyCookie.store(10000);

    var insite = '';
    insite += '<style type="text/css">';
    insite += '.insite-popup-off { visibility: hidden; display: none; position: absolute; top: -100px; left: -100px; }';
    insite += '.insite-popup-on { position: absolute; top: 0px; left: 0px; visibility: visible; display: block; width: 100%; height: 100%; background-color: #666; z-index: 999; filter:alpha(opacity=85); -moz-opacity:0.85; padding-top:15%; }';
    insite += '.insite-popup-inner { text-align: center; width: 250px; height: 250px; }';
    insite += '.insite-popup-inner img { border: 0px; }';
    insite += '</style>';
    insite += '<div align="center" id="insite_Popup" class="insite-popup-off">';
    insite += '    <div class="insite-popup-inner">';
    insite += '        <img src="http://www.insitesurveys.com/Web/Extensions/Disney/S-GZDS.jpg" alt="" usemap="#pop" />';
    insite += '        <map id="pop" name="pop">';
    insite += '            <area alt="" shape="rect" coords="180,0,250,20" href="javascript:void(insite_HidePopup())" />';
    insite += '            <area alt="" shape="rect" coords="60,205,190,230" href="javascript:void(insite_OpenSurvey())" />';
    insite += '        </map>';
    insite += '    </div>';
    insite += '</div>';

    // document.write(insite);
    // insite_ShowPopup();
}