// RefBack.js - HTTP referrer based history back object.
// Copyright (C) 2008 ASCII MEDIA WORKS Inc., All rights reserved.
// $Id: $
//


function RefBack(defURL, ownURL, aOpt){
	if(undefined == defURL || '' == defURL) {
		defURL = '/';
	}
	if(undefined == ownURL || '' == ownURL) {
		ownURL = '^https?://([-.a-zA-Z0-9]*)ascii\.jp';
	}
	if(undefined == aOpt) {
		aOpt = '';
	}
	
	this.defURL = defURL;
	this.ownURL = ownURL;
	this.aOpt   = aOpt;
}


// Get previouse URL (internal function)
function _RefBack_getBackURL() {
	var ret = document.referrer;
	var re  = new RegExp(this.ownURL, 'i');
	if(undefined == ret || ! ret.match(re)) {
		ret = this.defURL;
	} else {
		var str = this.getMyEID();
		if(str) ret += "#eid" + str ;
	}
	return ret;
}
RefBack.prototype.getBackURL = _RefBack_getBackURL;


// Jump to previouse page (for event handler)
function _RefBack_jumpBack() {
	location.href = this.getBackURL();
}
RefBack.prototype.jumpBack = _RefBack_jumpBack;


// Generate A tag for jump to previouce page
function _RefBack_genBackAOpen() {
	var url = this.getBackURL();
	document.write('<a href="' + url + '" ' + this.aOpt +'>');
}
RefBack.prototype.genBackAOpen = _RefBack_genBackAOpen;


// Generate close A tag (to use XHTML page)
function _RefBack_genBackAClose() {
	document.write('</a>');
}
RefBack.prototype.genBackAClose = _RefBack_genBackAClose;


// Get My EID 
function _RefBack_getMyEID() {
	var str    = location.href;
	var myData = str.split("/");
	var reg    = new RegExp('.*\/$', 'i');
	var re     = new RegExp('[0-9]', 'i');
	var ret    = (str.match(reg)) ? '' : myData[myData.length - 1] ;
	if('' == ret || ! ret.match(re)) {
		ret = myData[myData.length - 2];
	} else if (undefined == ret) {
		ret = '';
	}
	return ret;
}
RefBack.prototype.getMyEID = _RefBack_getMyEID;


