// Explorer JavaScript

//var webroot = '/explorer2';
var webroot = '';

if (!Array.prototype.forEach) {
    Array.prototype.forEach = function(fun /*, thisp*/) {
        var len = this.length;
        if (typeof fun != "function")
            throw new TypeError();

        var thisp = arguments[1];
        for (var i = 0; i < len; i++) {
            if (i in this)
                fun.call(thisp, this[i], i, this);
        }
    };
}




/*----------------------------------------------------------------
 * Search Form Reset
 *---------------------------------------------------------------*/

function do_paging(index) {
    $('data[search][pageno]').value  = index;
    $('data[search][shuffle]').value = 0;
    $('frmSearch').submit();
}

function reset_page() {
    $('data[search][pageno]').value = 1;
    return true;
}


function reset_form() {
    $('reset').value = 1;
    $('data[search][pageno]').value = 1;
    $('frmSearch').submit();
}

/*----------------------------------------------------------------
 * Dining/Lodging Search -> Pagination
 * uses form = frmSearch
 *---------------------------------------------------------------*/

function paginate(pageno) {
    $('pageno').value = pageno; // Set form field variables
    $('frmSearch').submit();    // Submit form
}



// Unselect the multiselects if they select the all option
function check_default(el) {

    if ($(el.id).selectedIndex == 0) {
        for (var i = 1; i <= $(el.id).options.length - 1; i++) {
            $(el.id).options[i].selected = false;
        }
    }
}


var users = {

    process_login: function (event) {

        // Clear any existing messages
        if ($('login_msg') != null) { $('login_msg').value = ''; }

        // Clear the registration form
        if ($('register_msg') != null) { $('register_msg').style.display = 'none'; }
        if ($('ExplorerUserEmail1') != null) { $('ExplorerUserEmail1').value = ''; }
        if ($('ExplorerUserPassword1') != null) { $('ExplorerUserPassword1').value = ''; }
        if ($('ExplorerUserPassword2')) { $('ExplorerUserPassword2').value = ''; }

        var url = webroot + '/itinerary/login';

        new Ajax.Request(url, {
            method: 'post',
            parameters: Form.serialize('loginForm'),
            onSuccess: function (transport) {

                var json = transport.responseText.evalJSON();
                var text = '';

                if (json.err_msg != null) {

                    text = json.err_msg;

                    $('login_msg').addClassName('error');
                    $('login_msg').innerHTML = text;
                    $('login_msg').style.display = "block";

                    $('ExplorerUserMail').focus();
                    Modalbox.resizeToContent();

                } else {

                    switch (json.action_to_take) {

                        case 'save_trip':
                            tripUtils.show_save_trip_box({"text":"1", "title":"1"});
                            break;

                        case 'view_saved':
                            //$('saved_trips').innerHTML = '<a href="' + webroot + 'itinerary/saved">View Saved Trips</a>';
                            location.href = webroot + '/itinerary/saved';
                            hideObserver();
                            break;
                    }


                }
            }
        });
    },

    process_registration: function (event) {

        // Clear any existing messages
        // Clear the login form
        $('login_msg').style.display = 'none';
        $('ExplorerUserEmail').value = '';
        $('ExplorerUserPassword').value = '';


        var url = webroot + '/itinerary/register';

        new Ajax.Request(url, {
            method: 'post',
            parameters: Form.serialize('registerForm'),
            onSuccess: function (transport) {

                var json = transport.responseText.evalJSON();

                if (json.err_msg != null) {

                    $('register_msg').addClassName('error');
                    $('register_msg').innerHTML = json.err_msg;
                    $('register_msg').style.display = "block";
                    Modalbox.resizeToContent();

                } else {

                    switch(json.action_to_take) {
                        case 'save_trip':
                            tripUtils.show_save_trip_box({"text":"1", "title":"1"});
                            break;

                        case 'view_saved':
                            location.href = webroot + '/itinerary/saved';
                            hideObserver();
                            break;
                    }
                }
            }
        });
    }
}




var tripObservers = {

    setObservers_login: function (event) {
        $('login_button').observe('click', users.process_login);
        $('register_button').observe('click', users.process_registration);
    },


    setObservers_save: function (event) {

        $('save_button').observe('click', function () { tripUtils.save_trip(); });
        if ($('start_new_trip_form_btn')) {
            $('start_new_trip_form_btn').observe('click', function() {

                var url = webroot + '/itinerary/start_new_trip';

                new Ajax.Request(url, {
                    method: 'get',
                    onSuccess: function (transport) {

                        $('dest_count').innerHTML = 'View Destinations (0)';

                        // refresh destinations
                        location.href = webroot + '/winery/search';
                    }
                });
            });
        }
    },



    removeObservers_save: function (event) {

    },

    setObservers_delete: function (event) {

        $('delete_trip_yes').observe('click', function() {

            new Ajax.Request(webroot + '/itinerary/delete_trip', {
                method: "get",
                onSuccess: function(transport) {

                    var json = transport.responseText.evalJSON();

                    //$('dest_count').innerHTML = 'View Destinations (0)';
                    //$('view_saved_trips_top').innerHTML = '<a href="' + webroot + '/itinerary/saved">View Saved Trips (' + json.saved_count + ')</a>';

                    location.href = webroot + '/winery/search';
                }
            });
        });

        $('delete_trip_no').observe('click', function() {
            hideObserver();

        });
    },

    removeObservers_delete: function (event) {

    },


    setObservers_rename: function (event)
    {
        $('rename_this_button').observe('click', function() {

           var trip_id = $('trip_id').value;
           var name = encodeURI($('new_name').value);

           new Ajax.Request(webroot + '/itinerary/rename_trip/' + trip_id + '/' + name, {
                method: "get",
                onSuccess: function(transport) {
                    hideObserver();
                    location.href = webroot + '/itinerary/saved';
                }
           });
        });

    },

    removeObservers_rename: function (event) {

    },

    // For saved trip page
    setObservers_delete_trip: function (event) {

        $('delete_yes').observe('click', function() {

            var trip_id = $('trip_id').value;

            new Ajax.Request(webroot + '/itinerary/delete_saved_trip/' + trip_id, {
                method: "get",
                onSuccess: function(transport) {
                location.href = webroot + '/itinerary/saved';

                }
            });
        });

        $('delete_no').observe('click', function() {
            hideObserver();
        });
    }

}




/****
 * Itineryar Actions
 */
var loadTripListener = {


    trip_actions: function (event) {

        if ($('save_trip_link')) {

            $('save_trip_link').observe('click', function() {
                tripUtils.show_save_trip_box({"text":"1", "title":"1"});
            });
        }

        /****
         * Show the login form
         ****/

        if ($('view_saved_trips') != null) {
            $('view_saved_trips').observe('click', function() {
                //if (map != null) { map.closeInfoWindow(); }
                tripUtils.show_login('view_saved');
                //tripUtils.show_save_trip_box({"text":"1", "title":"1"});
            });
        }


        /**************************************************************************
         * View Saved Trips - TOP
         *************************************************************************/
        if ($('view_saved_login') != null) {
            $('view_saved_login').observe('click', function() {
                //if (map != null) { map.closeInfoWindow(); }
                tripUtils.show_login('view_saved');
            });
        }

        if ($('save_trip_link_login') != null) {
            $('save_trip_link_login').observe('click', function() {
                //map.closeInfoWindow();
                tripUtils.show_login('save_trip');
            });
        }



        if ($('log_out_link')) {
            $('log_out_link').observe('click', function() {

                var url = webroot + '/itinerary/logoff';

                    new Ajax.Request(url, {
                        method: 'get',
                        onSuccess: function (transport) {

                            alert ('You have been logged off');

                            location.href = webroot + '/winery/search';

                        }
                    });
            });
        }



        /**************************************************************************
         * Start New Trip - Link
         * prompt, are you sure, give option to save current
         *************************************************************************/
        if ($('new_trip_link')) {
            $('new_trip_link').observe('click', function() {

                tripUtils.show_save_trip_box();

            });
        }


        if ($('delete_all')) {
            $('delete_all').observe('click', function() {


                var text = '<div id="oMB_window"><p style="font-size:14px; padding-bottom:15px;">Are you sure you want to delete this Trip?</p>'
                         + '<input type="button" id="delete_trip_yes" value="Yes, delete">&nbsp;<input id="delete_trip_no" type="button" value="No, Do Not Delete"></div>';

                Modalbox.show(text,{title: 'Delete current trip?', width: 300, afterLoad: tripObservers.setObservers_delete, onHide: tripObservers.removeObservers_delete});
            });
        }

        if ($('get_directions_link')) {
            $('get_directions_link').observe('click', function() {
                tripDirections();
            });
        }


        if ($('print_trip_link')) {
            $('print_trip_link').observe('click', function() {
                tripPrint();
                return true;
            });
        }

    }
}


function confirm_delete(trip_id)
{

    var text = '<div id="oMB_window"><p style="font-size:14px; padding-bottom:15px;">Are you sure you want to delete this Trip?</p>'
             + '<input type="button" id="delete_yes" value="Yes, delete">&nbsp;<input id="delete_no" type="button" value="No, Do Not Delete"></div>'
             + '<form id="delete_this"><input type="hidden" id="trip_id" value="' + trip_id + '"></form>';

    Modalbox.show(text,{title: 'Delete current trip?', width: 300, afterLoad: tripObservers.setObservers_delete_trip, onHide: tripObservers.removeObservers_delete_trip});
}



function show_rename(trip_id, name)
{
    var text = '<div id="oMB_window">'
         + '<div style="text-align:left;"><p style="font-size:14px; padding-bottom:15px;">Enter a new name for this trip:</p>'
         + '<input type="text" id="new_name" name="new_name" size="100"  value="' + name + '" style="width:300px;">&nbsp;&nbsp;'
         + '<input type="button" id="rename_this_button" value="Save">'
         + '<form id="rename_this"><input type="hidden" id="trip_id" value="' + trip_id + '"></form>';
         + '</div></div>';

    Modalbox.show(text,{title: 'Rename Trip', width: 500, afterLoad: tripObservers.setObservers_rename, onHide: tripObservers.removeObservers_rename});
}


var tripUtils = {

    startAddress: [""],
    skipFirst: ["false"],




    /**************************************************************************
     * show_save_trip_box
     *************************************************************************/
    show_save_trip_box : function(params)  {

        var url = webroot + '/itinerary/show_save_form';

        new Ajax.Request(url, {
            method: 'get',
            parameters: params,
            onSuccess: function (transport) {

                Modalbox.show(transport.responseText, {title: 'Save This Trip', width: 530,  height:200, afterLoad: tripObservers.setObservers_save, onHide: tripObservers.removeObservers_save });

                Modalbox.resizeToContent();
            }

        });

    },


    /**************************************************************************
     * save_trip
     *************************************************************************/
    save_trip      : function() {

        var url = webroot + '/itinerary/save';

        new Ajax.Request(url, {
            method: 'post',
            parameters: Form.serialize('saveForm'),
            onSuccess: function (transport) {

                var json = transport.responseText.evalJSON();

                if (json.err_msg != null) {

                    $('msg').style.display = "block";
                    $('msg').addClassName('error');
                    $('msg').innerHTML = json.err_msg;
                    Modalbox.resizeToContent();


                } else if (json.msg != null) {

                    // Update My Trip Box - saved-count
                    $('view_saved_trips_top').innerHTML = '<a href="' + webroot + '/itinerary/saved">View Saved Trips (' + json.saved_count + ')</a>';


                    $('save_trip').innerHTML = '<a id="save_trip_link" href="javascript:void(0);">Save This Trip</a>';
                    $('save_trip_link').observe('click', function() {
                        tripUtils.show_save_trip_box({"text":"1", "title":"1"});
                    });

                    // Update the trip name
                    if ($('trip_name')) {
                        $('trip_name').style.display = "block";
                        $('trip_name').innerHTML = 'Trip Name: ' + json.trip_name;
                    }

                    // Show the success message and the continue button
                    $('msg').style.display = "block";
                    $('msg').removeClassName('error');
                    $('msg').addClassName('good');
                    $('msg').innerHTML = json.msg;

                    // show only the continue button
                    $('s_text').style.display = "none";
                    $('s_title').style.display = "none";
                    $('s_buttons').style.display = "none";
                    $('s_continue').style.display = "block";


                    // Update the trip action to enable logoff, just in case they just logged in
                    if ($('saved_trips')) {
                        $('saved_trips').innerHTML = '<a href="' + webroot + '/itinerary/logoff">Log off</a>';
                    }

                    Modalbox.resizeToContent();
                }
            }
        });
    },

    /**************************************************************************
     * show_login
     *************************************************************************/
    show_login      : function(calling_action) {

        if (calling_action) {
            var hidden = '<input type="hidden" id="ExplorerUserAction" name="data[ExplorerUser][action]" value="' + calling_action + '">';
        } else {
            var hidden = '';
        }

        var html =  '<div id="oMB_window">'
                    +'<p style="text-align:left;">An Oregon Wine Explorer account is required to save and manage your Trips. If you already have an account, please login below, otherwise please create an account.</p>'
                    +'<div id="register_box">'
                    +'<form id="registerForm">'
                    +'<p class="intro">Create an account to save your Trips:</p>'
                    +'<div class="container">'
                    +'<p id="register_msg"></p>'
                    +'<div class="formLabel">E-Mail Address:&nbsp;<font color="red">*</font></div>'
                    +'<div><input type="text" size="30" class="frmText" id="ExplorerUserEmail1" name="data[ExplorerUser][email1]"></div>'
                    +'<div class="formLabel">Password:&nbsp;<font color="red">*</font></div>'
                    +'<div><input type="password" size="30" class="frmText" id="ExplorerUserPassword1" name="data[ExplorerUser][password1]"></div>'
                    +'<div class="formLabel">Confirm Password:&nbsp;<font color="red">*</font></div>'
                    +'<div><input type="password" size="30" class="frmText" id="ExplorerUserPassword2" name="data[ExplorerUser][password2]"></div>'
                    +'<div class="register_button"><input id="register_button" type="button" value="Create Account"></div>'
                    + hidden
                    +'</form>'
                    +'</div>'
                    +'</div>'
                    +'<div id="login_box">'
                    +'<p class="intro">Log in to manage your saved Trips:</p>'
                    +'<div class="container">'
                    +'<p id="login_msg"></p>'
                    +'<form id="loginForm">'
                    +'<div class="formLabel">E-Mail Address:&nbsp;<font color="red">*</font></div>'
                    +'<div><input type="text" size="30" class="frmText" id="ExplorerUserEmail" name="data[ExplorerUser][email]"></div>'
                    +'<div class="formLabel">Password:&nbsp;<font color="red">*</font></div>'
                    +'<div><input type="password" size="30" class="frmText" id="ExplorerUserPassword" name="data[ExplorerUser][password]"></div>'
                    +'<a href="' + webroot + '/users/forgot_password/1">Forgot your password?</a>'
                    +'<div class="login_button"><input id="login_button" type="button" value="Log In"></div>'
                    + hidden
                    +'</form>'
                    +'</div>'
                    +'</div>'
                    +'<div id="success_msg" style="display:none;"><div class="inner" id="success_msg_inner"></div></div>'
                    +'</div>';

        Modalbox.show(html, {
            title: 'Oregon Wine Explorer',
            width: 650,
            transitions : false,
            slideDownDuration: 0,
            slideUpDuration: 0,
            resizeDuration: 0,
            afterLoad: tripObservers.setObservers_login});

    },


    /**************************************************************************
     * loadTurnbyTurn
     *************************************************************************/
    loadTurnbyTurn  :   function() {

        //var startDirections = "";
        if ($('f_startAddress') != null) {
            tripUtils.startAddress = encodeURIComponent($('f_startAddress').value);
        }

        var queryTxt = "http://maps.google.com/maps?saddr=" + tripUtils.startAddress;

        for (var i=0; i < trip.length; i++)
        {

            if (tripUtils.skipFirst == "true" && i == 0) {
                continue;
            }

            if (tripUtils.startAddress != "") {
                queryTxt += "+to:";
            }

            queryTxt += encodeURIComponent(trip[i][0]+"@")+trip[i][1]+","+trip[i][2];
        }

        var newwindow = window.open(queryTxt,'name');
        if (window.focus) { newwindow.focus(); }

        if ($('f_startAddress') != null) {
            $('startAddress').style.display = "none";
        }
    },

    /**************************************************************************
     * getDirections
     *************************************************************************/
    getDirections   : function() {

        // Set it to the first location by default
        tripUtils.startAddress = encodeURIComponent(trip[0][0]+"@")+trip[0][1]+","+trip[0][2];

        if ($('useFirst').checked == false) {

            if ($('textAddr').value != "") {
                tripUtils.startAddress = encodeURIComponent($('textAddr').value);
            }
        } else {
            tripUtils.skipFirst = "true";
        }

        hideObserver();
        tripUtils.loadTurnbyTurn();
    },


    /**************************************************************************
     * remove_item
     *************************************************************************/
    remove_item : function (type,rn) {

        if (confirm('Are you sure you want to remove this item?')) {

            new Ajax.Request(webroot + '/itinerary/remove/' + type + '/' + rn, {
                method: "post",
                onSuccess: function (transport) {

                    var json = transport.responseText.evalJSON();

                    $('dest_count').innerHTML = '<a href="' + webroot + '/itineray/index">View Destinations (' + json.dest_count + ')</a>';

                    // update the list
                    get_itinerary_list();

                    // update the map and the sortable lists
                    getMarks();
                }

            });
        }
    }
}



/*----------------------------------------------------------------
 * Itinerary Sortables
 *
 *---------------------------------------------------------------*/

var SortableLists = {

    lists: ["trip_list"],

    updated: function (list) {

        new Ajax.Request(webroot + '/itinerary/update/', {
            method: "post",
            parameters: { data: Sortable.serialize(list) },
            onSuccess: function(transport) {

                /*** Update the row number value ***/
                // This is a list of sort_order (zero based), element_number
                var json = transport.responseText.evalJSON();

                // Update order number to left of destination item in list
                for (var i = 0; i <= json.length - 1; i++) {
                    var id = 'order' + json[i];
                    var new_text = (i + 1) + '.&nbsp;&nbsp;';
                    document.getElementById(id).innerHTML = new_text;
                }

                getMarks();
            }
        });

    },

    createSortables: function (event) {

        var lists = SortableLists.lists;

        lists.each(function (id) {

            Sortable.create(id, {
                dropOnEmpty: true,
                constraint: false,
                onUpdate: SortableLists.updated
            });
        });
    }
};


/** create the sortable list
 * will be passed from controller
document.observe("dom:loaded", SortableLists.createSortables);
**/


function get_itinerary_list() {

    new Ajax.Request(webroot + '/itinerary/itinerary_list', {
        method: "post",
        onSuccess: function (transport) {

            $('trip').innerHTML = transport.responseText;
            SortableLists.createSortables();
            //loadListener.delete_all_itinerary_items();

        }
    });

}


function getDestCount() {

    /* Save the information in a session variable */
    var url = webroot + '/itinerary/getDestCount';

    new Ajax.Request(url, {
        method: 'get',
        onSuccess: function (transport) {
            // Update the count

            $('dest_count').innerHTML = '<a href="' + webroot + '/itineray/index">View Destinations (' + transport.responseText + ')</a>';

            if ($('itinerary-link') != null) {
                $('itinerary-link').style.display = 'inline';
            }
        }
    });
}



/*----------------------------------------------------------------
 * Add Itinerary :: Shows Add Itinerary Modal Window and configures actions
 *
 * pages: winery.php, results.php, dining/search, dining/detail,
 *        lodging/search, lodging/detail
 *
 * uses: modalbox.js
 *---------------------------------------------------------------*/

function go_to_itinerary() {
    location.href = webroot + '/itinerary/index';
}


var hideObserver = Modalbox.hide.bindAsEventListener(Modalbox);

function setObservers() {
    $('continueBtn').observe('click', hideObserver);
    $('itineraryBtn').observe('click', go_to_itinerary);
}

function removeObservers() {
    $('continueBtn').stopObserving('click', hideObserver);
    $('itineraryBtn').stopObserving('click', hideObserver);
}

function makeModal(name, type, rn) {

    var url = webroot + '/itinerary/add/' + type + '/' + rn;

    map.closeInfoWindow();

    new Ajax.Request(url, {
        method: 'get',
        onSuccess: function (transport) {
            // destination count and record number returned
            var json = transport.responseText.evalJSON();

            // My Trip box
            $('dest_count').innerHTML = '<a href="' + webroot + '/itinerary/index">View Destinations (' + json.dest_count + ')</a>';


            // Detail
            if ($('detail-heading-trip-action') != null){
                //$('add-to-trip-button').innerHTML = '<a href="' + webroot + '/itinerary/index"><img id="detail-trip-action" src="' + webroot + '/images/trip/view_my_trip_' + json.type + '.gif" width="180" height="28" border="0"></a>';
                $('detail-heading-trip-action').innerHTML = '<a href="' + webroot + '/itinerary/index">VIEW MY TRIP</a>';
            }

            // Search
            if ($('add-itinerary-link-' + json.rn) != null) {
                $('add-itinerary-link-' + json.rn).style.display   = 'none';     // hide add link for selected dest
            }
        }
    });

    var node =  new Element('div', {id: 'oMB_window'}).update (
                new Element('p', {'class': 'title'}).update(name + ' has been added to your trip')).insert(
                new Element('p', {'class': 'next'}).update('What would you like to do now?')).insert(
                new Element('input', {type: 'button', value: 'Continue Exploring', id: 'continueBtn'})).insert(
                new Element('span').update('&nbsp;&nbsp;&nbsp;&nbsp;')).insert(
                new Element('input', {type: 'button', value: 'View My Trip', id: 'itineraryBtn'}));

    /* Show the modal window */
    Modalbox.show(node, {title: 'Oregon Wine Explorer', width: 676, afterLoad: setObservers, onHide: removeObservers });
}









/***
 * Trip PRINT
 */

function setObservers_tripPrint() {
    $('thisPageBtn').observe('click', utils.printpage);
    $('turnByTurnBtn').observe('click', tripUtils.loadTurnbyTurn);
}

function removeObservers_tripPrint() {
    $('thisPageBtn').stopObserving('click', hideObserver);
    $('turnByTurnBtn').stopObserving('click', hideObserver);
}


function tripPrint() {

    /* Define the modal window */
    var node =  new Element('div', {id: 'oMB_window'}).update (
                new Element('p').update('Would you like to print this page or Turn-by-turn directions?')).insert(
                new Element('input', {type: 'button', value: 'This Page', id: 'thisPageBtn'})).insert(
                new Element('span').update('&nbsp;&nbsp;&nbsp;&nbsp;')).insert(
                new Element('input', {type: 'button', value: 'Turn-by-turn Directions', id: 'turnByTurnBtn'}));

    /* Show the modal window */
    Modalbox.show(node, {title: 'Oregon Wine Explorer', width: 400, afterLoad: setObservers_tripPrint, onHide: removeObservers_tripPrint });
}




function setObservers_tripDirections() {
    $('getDirections').observe('click', tripUtils.getDirections);
}

function removeObservers_tripDirections() {
    $('getDirections').stopObserving('click', hideObserver);
}


function tripDirections() {

    urchinTracker('/outgoing/trip/directions');

    var text = '<div id=\'oMB_window\'>';
        text += '<div>';

        text += '<div style="text-align:left; width:350px;">Starting Location:</div>';

        text += '<br><div style="text-align:center;">';
        text += '<table style="width:350px"><tr><td style="width:25px;">';
        text += '<input type=\'checkbox\' checked="true" id=\'useFirst\' name=\'useFirst\' value=\'1\' onclick=" if (this.checked) { document.getElementById(\'enterAddress\').style.display=\'none\'; } else { document.getElementById(\'enterAddress\').style.display=\'block\'; }"></td>';

        text += '<td style="font-size:14px; text-align:left; width: 300px;">Use the first Trip location</td></tr></table></div>';

        text += '<div style="padding-top:10px;">OR</div>';

        text += '<div style="text-align:center; width:350px;">';
        text += '<div id="enterAddress" style="padding-top:10px; text-align:left; font-size:14px;">Enter a starting location:<br>';


        text += '<input id="textAddr" type="text" style="width:300px;">';
        text += '</div>';
        text += '</div>';

        text += '<div style="text-align:center; padding-top:15px;"><input type="button" id="getDirections" value="Get Directions"></div>';


        text += '</div>';
        text += '</div>';

    Modalbox.show(text, {title: 'Turn-by-turn Directions', width: 400, height: 250,  afterLoad: setObservers_tripDirections, onHide: removeObservers_tripDirections });

}














function siteInitialize() {
	/* other stuff */
	Sortable.create('mylist', {onUpdate:updateList});
}


function updateList() {
	var url = webroot + '/itinerary/test2/';
	var sorted = escape(Sortable.sequence('mylist'));
	var updateNavigation = new Ajax.Request(
			url,
			{
				method: 'get',
				parameters: "sort_order=" + sorted,
				onComplete: showUpdate

			});
	return true;
}

function showUpdate(originalRequest) {
	alert(originalRequest.responseText);
}




/*---------------------------
  * utilities
  *--------------------------*/

/**
 * Toggle the display of the current element
 */
function toggleElement(div_id) {

    alert($(div_id).style.display);

    $(div_id).style.display == "block";

    if ($(div_id).style.display == "none") {


    } else {
        //$(div_id).style.display == "none";
    }
}


var utils = {

    printpage : function() {
        hideObserver();
        window.print();
        return true;
    }
}



function changeDesc(x) {
    document.getElementById("iconExp").innerHTML = x;
}
function back(){
    alert(history(-1));
    return(false);
    if(history){
        history.go(-1);
    } else {
        window.open("wineries.php");
    }
}

function track_gu(outURL,ip)
{
    var query = 'url='+outURL+'&ip='+ip;
    if(window.XMLHttpRequest)
    {
        request = new XMLHttpRequest();
    }
    else
    {
        request = new ActiveXObject("Microsoft.XMLHTTP");
    }
    var url = 'jax_exittracker.php';
    // process request
    if(request)
    {
        request.open("POST",url);
        request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
        request.onreadystatechange =
        function() {
            if(request.readyState == 4)
            {
                return true;
            }
        }
        request.send(query);
    }
}


/**
 * SuckerFish CSS hack
 */
sfHover = function() {

	/*var sfEls = document.getElementById("nav").getElementsByTagName("LI");*/
	var sfEls = document.getElementById("mainnav").getElementsByTagName("LI");

	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" s9hover";
		}
		sfEls[i].onmouseout=function() {
				this.className=this.className.replace(new RegExp(" s9hover\\b"), "");
		}
	}
}

if (window.attachEvent) window.attachEvent("onload", sfHover);