// SamuraiFactoryAnalyzer JavaScript Module
// Copyright 2006 SamuraiFactory Inc., All Rights Reserved.


//////////////////////////////////////////////////////////////////////
//-- getTime()
function sfaGT(){
	var now = new Date();
	return Math.floor(now.getTime()/1000);
}
//////////////////////////////////////////////////////////////////////
//-- getSession()
function sfaGSS(){
	var now = sfaGT();
	var mt = sfaGC('sfala');
	var retval = sfaGC('sfass');
	
	if (mt!='' && mt>0) {
		var diff = now - mt;
		if ( diff > 6*60*60 || diff<0 ) {
			retval = '';
		}
	}else{
		retval = '';
	}
	sfaSC('sfala',now);
	return retval;
}

function sfaCC(){
	sfaSC('sfacc','1');
	var val = sfaGC('sfacc');
	if (!val||val==''||val!='1') {
		return 0;
	}
	return 1;
}

//////////////////////////////////////////////////////////////////////
//-- main()
function sfaMain(act,dm){
	var dl = document.location;
	if (dl.protocol == 'file:') {
		return;
	}

	if (dm &&dl.hostname != dm) {
		return;
	}
	
	
	var d = sfaGDI(dm);
	var q = new Object();

	q['act'] = act;
	//q['ss'] = sfaGC('sfass');
	q['ss'] = sfaGSS();
	q['uq'] = sfaGC('sfauq');
	
	if (!q['ss'] || q['ss']=='') {
		q['m'] = 's';
		var b = sfaGBI();
		q['sw'] = b['sw'];
		q['sh'] = b['sh'];
		q['sc'] = b['sc'];
		q['ua'] = b['ua'];
		q['fl'] = b['fl'];

		q['ref'] = d['ref'];
		q['url'] = d['url'];
		q['q'] = d['q'];
		q['pre'] = sfaGC('sfapre');
		q['cc'] = sfaCC();
		
	} else {
		if (!d||d=='') {
			return;
		}
		q['m'] = 'r';
		q['url'] = d['url'];
		q['q'] = d['q'];
	}
	
	sfaSL(q);
}

//////////////////////////////////////////////////////////////////////
//-- sendLog(objq)
function sfaSL(objq){
	var tmp = new Array();
	for (k in objq) {
		if (objq[k]=='undefined'||!objq[k]||objq[k]==null) {
			objq[k] = '';
		}
		tmp.push(k + '=' + encodeURIComponent(objq[k]));
	}
	var t =  new Date();
	tmp.push('t=' +  t.getTime() + '.' + t.getMilliseconds());
	
	document.write('<sc'+'ript type="text/javasc'+'ript" charset="utf-8" src="http://pod.samurai.shinobi.jp/log2.php?'+tmp.join('&')+'"></sc'+'ript>');
	return;
	
	
	var obj = document.createElement('script');
	obj.setAttribute('src',document.location.protocol+'//pod.samurai.shinobi.jp/log2.php?'+tmp.join('&'));
	obj.setAttribute('type','text/javascript');
	obj.setAttribute('charset','utf-8');
	document.body.appendChild(obj);
	

}

//////////////////////////////////////////////////////////////////////
//-- getDocumentInfo()
// domain_name
function sfaGDI(dm){
	var dl = document.location;
	var ret = new Object();
	ret['ref'] = document.referrer;
	if (!ret['ref']) {
		ret['ref'] = '';
	}
	
	ret['url'] = dl.protocol +'//'+dl.hostname+dl.pathname;
	ret['q'] = dl.search+dl.hash;


	
	if (ret['ref'] && ret['ref']!='') {
		var idxret = ret['ref'].indexOf(dm);
		if (idxret>=0 && idxret<8) {
			ret['ref'] = '';
		}
	}
	
	var pre_url = sfaGC('sfapu');
	if (pre_url !='' && pre_url==ret['url']) {
		return '';
	}
	sfaSC('sfapu',escape(ret['url']+ret['q']));

	if (ret['url'] && dm!='') {
		ret['url'] = dl.pathname.substr(1);
	}
	

	return ret;
}


//////////////////////////////////////////////////////////////////////
//-- getBrowserInfo()
function sfaGBI(){
	var n = navigator;

	var ret = new Object();
	ret['ua'] = n.userAgent;
	if (self.screen) {
		ret['sw'] = screen.width;
		ret['sh'] = screen.height;
		ret['sc'] = screen.colorDepth;
	} else if (self.java) {
		var j = java.awt.Toolkit.getDefaultToolkit();
		var s = j.getScreenSize();
		ret['sw'] = s.width;
		ret['sh'] = s.height;
		ret['sc'] = '';
	} else {
		ret['sw'] = '';
		ret['sh'] = '';
		ret['sc'] = '';
	}

	if (n.plugins && n.plugins.length) {
		for (var i=0;i<n.plugins.length;i++) {
			if (n.plugins[i].name.indexOf('Shockwave Flash')!=-1) {
				ret['fl'] = n.plugins[i].description.split('Shockwave Flash ')[1];
				break;
			}
		}
	} else if (window.ActiveXObject) {
		for (var i=10;i>=2;i--) {
			try {
				var fl = eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash."+i+"');");
				if (fl) {
					ret['fl'] = i + '.0';
					break;
				}
			}
			catch(e) {}
		}
	}
	
	return ret;
}

//////////////////////////////////////////////////////////////////////
//-- getCookie()
//
function sfaGC(k){
	var tmp = document.cookie + ';';
	var index1 = tmp.indexOf(k, 0);
	if(index1 != -1){
		tmp = tmp.substring(index1,tmp.length);
		var index2 = tmp.indexOf('=',0) + 1;
		var index3 = tmp.indexOf(';',index2);
		return(unescape(tmp.substring(index2,index3)));
	}
	return '';
}

//////////////////////////////////////////////////////////////////////
//-- setCookie
//
function sfaSC(k, v, e){
	var cv = k + '=' + escape(v) + '; path=/;';
	if (e && e!='') {
		cv += 'expires='+e+'; path=/;';
	}
	document.cookie = cv;
}
