window.__div_backup = new Array() function ajax(url, data, options) { if (typeof(options.div)!='object' || !(options.div instanceof Array) && options.div != '') options.div = new Array(options.div); if (options.div != '') for(i = 0; i < options.div.length; i++) { marg_l = ($(options.div[i]).width() - 32) / 2; marg_t = ($(options.div[i]).height() - 32) / 2; window.__div_backup[i] = new Array(options.div[i], $(options.div[i]).html()); $(options.div[i]).html(""); } window.__url = url; window.__data = data; window.__options = options; document.body.style.cursor = 'wait'; $.ajax( { type: "POST", url: url, data: data, async: true, dataType: "json", global: false, success: function(values) { openMessages(values, options); document.body.style.cursor = 'default'; }, error: function() { restoreDivs(); document.body.style.cursor = 'default'; } }); return false; } function openMessages(values, options) { if(values) { $.each(values, function(key, value) { if (value['message'] == 'go_to_location') { window.location = value['location']; } else if (value['message'] == 'restore_divs') { restoreDivs(); } else // =html { $(value['div']).html(value['html']); //$(value['div']).css("opacity", 1.0); } if (options.success) options.success(value); }); } else if (options.success) options.success(false); return true; } function restoreDivs() { $.each(window.__div_backup, function(key, value) {$(value[0]).html(value[1])}); window.__div_backup = new Array(); } $(document).ready(function() { $(window).hashchange( function(){ ajax(location.hash.replace('#', ''), '', '#content'); }) if (location.hash.replace('#', '')) ajax(location.hash.replace('#', ''), '', '#content'); });