jQuery.fn.scgrph_swapper = function(settings) {
	var regExp = {
		name_NUM_n_o:{
			attach:{regexp:new RegExp("^(.+)_n(\.gif|\.jpg|\.png)$"),callback:"$1_o$2"},
			dettach:{regexp:new RegExp("^(.+)_o(\.gif|\.jpg|\.png)$"),callback:"$1_n$2"}
		},
		name_NUM_o:{
			attach:{regexp:new RegExp("^(.+)(\.gif|\.jpg|\.png)$"),callback:"$1_o$2"},
			dettach:{regexp:new RegExp("^(.+)_o(\.gif|\.jpg|\.png)$"),callback:"$1$2"}
		},
		name_o_NUM:{
			attach:{regexp:new RegExp("^(.+[^o])(_[0-9]+)(\.gif|\.jpg|\.png)$"),callback:"$1_o$2$3"},
			dettach:{regexp:new RegExp("^(.+)_o(_[0-9]+)(\.gif|\.jpg|\.png)$"),callback:"$1$2$3"}
		}
	}
	
	var absolutePath = function (path){
		var e = document.createElement('span');
		e.innerHTML = '<a href="' + path + '" />';
		return e.firstChild.href;
	}

	
	var basename = function(path){
		if(path.indexOf("http://") != 0 && path.indexOf("/") != 0) path = absolutePath(path);
		if(path.indexOf("?")!=-1) path = path.substring(0,path.indexOf("?"));
		if(path.indexOf("#")!=-1) path = path.substring(0,path.indexOf("#"));
		
		if(path.indexOf(window.location.protocol + "//")>-1) return path;
		if(path.charAt(path.length-1) == "/"){
			//if(path.indexOf("/") == 0) path = path.substr(1);
//			path += "index.html";
		}
		return window.location.protocol + "//" + window.location.hostname +  path;
	}
	
	settings = jQuery.extend({
		regexp: "name_o_NUM"
	}, settings || {});

	var re = regExp[settings.regexp];
	
	this.
	each(function(){
		var e = jQuery(this);
		var src = e.attr("src").replace(re.dettach.regexp,re.dettach.callback);
		
		if(basename(window.location.href).indexOf(basename(e.parent().attr("href"))) == 0){
			src = src.replace(re.attach.regexp,re.attach.callback);
			e.addClass("scgrph-cur");
		}
		e.attr({src:src});
	}).
	mouseover(function(){
		if(!jQuery.className.has(this,"scgrph-cur")){
			var e = jQuery(this);
			var src = e.attr("src").replace(re.attach.regexp,re.attach.callback);
			e.attr({src:src});
		}
	}).
	mouseout(function(){
		if(!jQuery.className.has(this,"scgrph-cur")){
			var e = jQuery(this);
			var src = e.attr("src").replace(re.dettach.regexp,re.dettach.callback);
			e.attr({src:src});
		}
	});
	
};


jQuery.fn.scgrph_openWin = function(settings) {
	
	this.click(function(){
		var href = this.href;
		var name = href.split("-").join("_").split("/").join("_").split(".").join("_").split(":").join("_").split("?")[0].split("#")[0];
		var ext = eval("[{"+this.rel+"}]")[0];
		var w = (ext && ext["w"])?ext["w"]:640;
		var h = (ext && ext["h"])?ext["h"]:480;
		var s = (ext && ext["s"])?ext["s"]:0;
		var r = (ext && ext["r"])?ext["r"]:0;
		var win = window.open(href,name,'width=' + w + ',height=' + h + ',scrollbars=' + s+",resizable="+r);
		win.focus();
		return false;
	});

};





