| 751 | | if ( (key != "args") && (urlObj1[key] != urlObj2[key]) ) { |
|---|
| 752 | | return false; |
|---|
| 753 | | } |
|---|
| | 751 | if (options.test) { |
|---|
| | 752 | alert(key + "\n1:" + urlObj1[key] + "\n2:" + urlObj2[key]); |
|---|
| | 753 | } |
|---|
| | 754 | var val1 = urlObj1[key]; |
|---|
| | 755 | var val2 = urlObj2[key]; |
|---|
| | 756 | |
|---|
| | 757 | switch(key) { |
|---|
| | 758 | case "args": |
|---|
| | 759 | //do nothing, they'll be treated below |
|---|
| | 760 | break; |
|---|
| | 761 | case "host": |
|---|
| | 762 | case "port": |
|---|
| | 763 | case "protocol": |
|---|
| | 764 | if ((val1 == "") || (val2 == "")) { |
|---|
| | 765 | //these will be blank for relative urls, so no need to |
|---|
| | 766 | // compare them here -- call break. |
|---|
| | 767 | // |
|---|
| | 768 | break; |
|---|
| | 769 | } |
|---|
| | 770 | // otherwise continue with default compare |
|---|
| | 771 | // |
|---|
| | 772 | default: |
|---|
| | 773 | if ( (key != "args") && (urlObj1[key] != urlObj2[key]) ) { |
|---|
| | 774 | return false; |
|---|
| | 775 | } |
|---|
| | 776 | break; |
|---|
| | 777 | } |
|---|
| | 778 | |
|---|
| 822 | | urlObject.args = OpenLayers.Util.getArgs(a.search); |
|---|
| | 836 | var queryString = a.search; |
|---|
| | 837 | if (!queryString) { |
|---|
| | 838 | var qMark = url.indexOf("?"); |
|---|
| | 839 | queryString = (qMark != -1) ? url.substr(qMark) : ""; |
|---|
| | 840 | } |
|---|
| | 841 | urlObject.args = OpenLayers.Util.getArgs(queryString); |
|---|
| | 842 | |
|---|
| | 843 | |
|---|
| | 844 | //pathname (this part allows for relative <-> absolute comparison) |
|---|
| | 845 | if ( ((urlObject.protocol == "file:") && (url.indexOf("file:") != -1)) || |
|---|
| | 846 | ((urlObject.protocol != "file:") && (urlObject.host != "")) ) { |
|---|
| | 847 | |
|---|
| | 848 | urlObject.pathname = a.pathname; |
|---|
| | 849 | |
|---|
| | 850 | //Test to see if the pathname includes the arguments (Opera) |
|---|
| | 851 | var qIndex = urlObject.pathname.indexOf("?"); |
|---|
| | 852 | if (qIndex != -1) { |
|---|
| | 853 | urlObject.pathname = urlObject.pathname.substring(0, qIndex); |
|---|
| | 854 | } |
|---|
| | 855 | |
|---|
| | 856 | } else { |
|---|
| | 857 | var relStr = OpenLayers.Util.removeTail(url); |
|---|
| | 858 | |
|---|
| | 859 | var backs = 0; |
|---|
| | 860 | do { |
|---|
| | 861 | var index = relStr.indexOf("../"); |
|---|
| | 862 | |
|---|
| | 863 | if (index == 0) { |
|---|
| | 864 | backs++ |
|---|
| | 865 | relStr = relStr.substr(3); |
|---|
| | 866 | } else if (index >= 0) { |
|---|
| | 867 | var prevChunk = relStr.substr(0,index - 1); |
|---|
| | 868 | |
|---|
| | 869 | var slash = prevChunk.indexOf("/"); |
|---|
| | 870 | prevChunk = (slash != -1) ? prevChunk.substr(0, slash +1) |
|---|
| | 871 | : ""; |
|---|
| | 872 | |
|---|
| | 873 | var postChunk = relStr.substr(index + 3); |
|---|
| | 874 | relStr = prevChunk + postChunk; |
|---|
| | 875 | } |
|---|
| | 876 | } while(index != -1) |
|---|
| | 877 | |
|---|
| | 878 | var windowAnchor = document.createElement("a"); |
|---|
| | 879 | var windowUrl = window.location.href; |
|---|
| | 880 | if (options.ignoreCase) { |
|---|
| | 881 | windowUrl = windowUrl.toLowerCase(); |
|---|
| | 882 | } |
|---|
| | 883 | windowAnchor.href = windowUrl; |
|---|
| | 884 | |
|---|
| | 885 | //set protocol of window |
|---|
| | 886 | urlObject.protocol = windowAnchor.protocol; |
|---|
| | 887 | |
|---|
| | 888 | var splitter = (windowAnchor.pathname.indexOf("/") != -1) ? "/" : "\\"; |
|---|
| | 889 | var dirs = windowAnchor.pathname.split(splitter); |
|---|
| | 890 | dirs.pop(); //remove filename |
|---|
| | 891 | while ((backs > 0) && (dirs.length > 0)) { |
|---|
| | 892 | dirs.pop(); |
|---|
| | 893 | backs--; |
|---|
| | 894 | } |
|---|
| | 895 | relStr = dirs.join("/") + "/"+ relStr; |
|---|
| | 896 | urlObject.pathname = relStr; |
|---|
| | 897 | } |
|---|
| | 898 | |
|---|
| | 899 | if ((urlObject.protocol == "file:") || (urlObject.protocol == "")) { |
|---|
| | 900 | urlObject.host = "localhost"; |
|---|
| | 901 | } |
|---|