User:CuBaN VeRcEttI/common.js

window.SkinPropagation = { skin: '', init: function { if (window.location.href.indexOf('useskin=') == -1) return; var url = SkinPropagation.parseURL(window.location.href); if (url.query.useskin) { SkinPropagation.skin = (url.query.propagateskin || url.query.useskin); }		if (SkinPropagation.skin != '') { $(document.body).bind('click.skinpropagation', SkinPropagation.clicEvent); $('form').bind('submit.skinpropagation', SkinPropagation.submitEvent); }	},	parseURL: function(url) { var ret = {base:,qs:,query:{},hash:''}; var loc = url.indexOf('#'); if (loc != -1) { ret.hash = url.substr(loc+1); url = url.substr(0,loc); }		loc = url.indexOf('?'); if (loc != -1) { ret.qs = url.substr(loc+1); url = url.substr(0,loc); var paras = ret.qs.split('&'); for (var i = 0; i < paras.length; i++) { var p = paras[i].split('='); if (p.length == 2) { ret.query[p[0]] = p[1]; }			}		}		ret.base = url; return ret; },	getURL: function(url) { var nurl = url.base + '?'; for (var p in url.query) { nurl += p + '=' + url.query[p] + '&'; }		nurl = nurl.substr(0,nurl.length-1); if (url.hash != '') { nurl += '#'+ url.hash; }		return nurl; },	clicEvent: function(e) { if (e.target.tagName.toLowerCase != 'a') return; if (e.target.href.indexOf(window.wgServer) != 0) return; var url = SkinPropagation.parseURL(e.target.href); var thisloc = SkinPropagation.parseURL(window.location.href); if (url.base == thisloc.base && url.qs == thisloc.qs && url.hash != '') { return; }		if (url.query.useskin && url.query.useskin != SkinPropagation.skin) { url.query.propagateskin = SkinPropagation.skin; } else { url.query.useskin = SkinPropagation.skin; }		e.target.href = SkinPropagation.getURL(url); },	submitEvent: function(e) { if (this.action.indexOf(window.wgServer) != 0) return; if (this.method == 'post') { var url = SkinPropagation.parseURL(this.action); url.query.useskin = SkinPropagation.skin; this.action = SkinPropagation.getURL(url); } else { $(this).append(''); }	},	stop: function { $(document.body).unbind('click.skinpropagation'); $('form').unbind('submit.skinpropagation'); } };

$(SkinPropagation.init);