Merge branch 'blinky/master' into gsoc2010-blinky
[phpmyadmin.git] / js / update-location.js
blobb8b001dfdba5ca04fb9cdfbd1053795e5ad57e96
1 /* vim: set expandtab sw=4 ts=4 sts=4: */
2 /**
3  * Scripts to update location to allow bookmarking of frameset
4  * and restoring the bookmark once the page is loaded.
5  *
6  * @version $Id$
7  */
9 var hash_to_set = "";
10 var hash_init_done = 0;
12 /**
13  * Sets hash part in URL, either calls itself in parent frame or does the
14  * work itself. The hash is not set directly if we did not yet process old 
15  * one.
16  */
17 function setURLHash(hash) {
18     if (jQuery.browser.webkit) {
19         /* 
20          * Setting hash leads to reload in webkit: 
21          * http://www.quirksmode.org/bugreports/archives/2005/05/Safari_13_visual_anomaly_with_windowlocationhref.html
22          */
23         return;
24     }
25     if (window.parent != window && window.parent.setURLHash) {
26         window.parent.setURLHash(hash);
27     } else {
28         /* Do not set if we're not updating frameset */
29         var path = window.location.pathname;
30         if (path.substring(path.length - 9, path.length) != "index.php") {
31             return;
32         }
33         if (hash_init_done) {
34             window.location.hash = "PMAURL:" + hash;
35         } else {
36             hash_to_set = "PMAURL:" + hash;
37         }
38     }
41 /**
42  * Handler for changing url according to the hash part, which is updated
43  * on each page to allow bookmarks.
44  */
45 $(document).ready(function(){
46     /* Don't do anything if we're not root Window */
47     if (window.parent != window && window.parent.setURLHash) {
48         return;
49     }
50     /* Check if hash contains parameters */
51     if (window.location.hash.substring(0, 8) == '#PMAURL:') {
52         window.location = 'index.php?' + window.location.hash.substring(8);
53         return;
54     }
55     /* Check if we should set URL */
56     if (hash_to_set != "") {
57         window.location.hash = hash_to_set;
58         hash_to_set = "";
59     }
60     /* Indicate that we're done (and we are not going to change location */
61     hash_init_done = 1;