/*url = new url;
url.seturipart(['controller','action','id']);
action = url.get('uripart','action');*/
var url = function() {
if (!(this.url = document.URL)) {
if (!(this.url = document.location.href)) {
if (!(this.url = self.location.href)) {
if (!(this.url = document.location)) {
this.url = null;
}
}
}
}
parts = this.url.split('://');
this.protocol = parts[0].toLowerCase();
this.href = parts[1];
this.uripart = this.href.split('/');
this.domain = this.uripart.shift();
last = this.last().split('?');
if (1 < last.length){
this.last(last[0]);
query = last[1].split('&');
for (i in query){
parts = query[i].split('=');
this.query[parts[0]] = parts[1];
}
}
this.uri = this.uripart.join('/');
}
url.prototype = {
url:null,
href : null,
protocol : null,
domain : null,
uri : null,
uripart : [],
query : [],
seturipart:function(route){
if ('object' !== typeof route || !route.length){
return false;
}
uripart = [];
for (i in route){
uripart[route[i]] = this.uripart[i];
}
this.uripart = uripart;
},
last:function(value) {
if (!this.uripart || 0 == this.uripart.length) {
return false;
}
if (value) {
this.uripart[this.uripart.length - 1] = value;
}
return this.uripart[this.uripart.length - 1];
},
get:function(part,index){
if ('string' !== typeof part){
return false;
}
if (!this[part]){
return false;
}
if (index){
if ('number' === typeof index){
index += 1;
}
if (!this[part][index]){
return false;
}
return this[part][index];
}
return this[part];
}
};