/* matc.js
 * MITSUE-LINKS Auto Tracking Code
 * Version 2.3.0
 * Copyright (C) 2010 MITSUE-LINKS
 * 
 * This JavaScript was created using "gatag.js" provided by Goodwebpractices.com.
 */

var matcaccount="UA-18172109-3";
var setdomainname=".oracletech.jp";
var setallowlinker=true;
var setallowhash=false;
var setallowanchor=true;

//変更可能箇所

//統合解析ドメイン（対象ドメインを「|」で追加）
var integrateddomain = /^integrateddomain$/i;
//統合解析サブドメイン（対象ドメインを「|」で追加）
var subdomain = /^subdomain$/i;
//外部遷移トラッキングドメイン（デフォルトは「.*」。対象を絞る際は、対象ドメインを「|」で追加）
var externaldomain = /./i;
//外部遷移トラッキングパス（任意入力。先頭の「/」は必須）
var externalpath = '/outgoing/';
//ダウンロードトラッキング対象拡張子（対象拡張子を「|」で追加）
var filetypes = /\.(doc|eps|svg|xls|ppt|pdf|zip|vsd|vxd|rar|exe|wma|mov|avi|wmv|mp3|mp4|m4v|epub)/i;

//以下、変更不可

//「onload」重複対応
if (window.addEventListener) {
    window.addEventListener('load', autotracking, false);
} else if (window.attachEvent) {
    window.attachEvent('onload', autotracking);
}

//条件分岐
function autotracking() {
	//if(typeof(_gaq.push(['matc._trackPageview'])) != 'function') return;
	if(typeof(_gaq.push) != 'function') return;
	var anchors = document.getElementsByTagName("a");
	for(var l = 0; l < anchors.length; l++) {
		var hn = anchors[l].hostname;
		if(anchors[l].protocol == "mailto:") {
			startListening(anchors[l],"click",trackMailto);
		} else if(anchors[l].hostname == location.hostname || hn.match(subdomain)) {
			var path = anchors[l].pathname + anchors[l].search;
			var matchtype = path.match(filetypes);
			if(matchtype) {
				startListening(anchors[l],"click",multipletrack);
			}
		} else if(hn.match(integrateddomain)) {
			startListening(anchors[l],"click",integrationtrack);
		} else if(hn.match(subdomain)) {
		} else if(hn.match(externaldomain)) {
			startListening(anchors[l],"click",multipletrack);
		} else {}
	}
}

//クリック判定
function startListening(obj,evnt,func) {
	if(obj.addEventListener) {
		obj.addEventListener(evnt,func,false);
	} else if(obj.attachEvent) {
		obj.attachEvent("on" + evnt,func);
	}
}
//メールリンクのトラッキング
function trackMailto(evnt) {
	var href = (evnt.srcElement) ? evnt.srcElement.href : this.href;
	var mailto = "/mailto/" + href.substring(7);
	//Page Tracking
	_gaq.push(['matc._trackPageview',mailto]);
	//Event Tracking _gaq.push(['_trackEvent', 'category', 'action', 'opt_label', opt_value]);
	_gaq.push(['matc._trackEvent', 'link_click', 'mailto', mailto, 0]);
}
//ダウンロード・外部リンクのトラッキング
function multipletrack(evnt) {
	var e = (evnt.srcElement) ? evnt.srcElement : this;
	while(e.tagName != "A") {
		e = e.parentNode;
	}
	var lnk = (e.pathname.charAt(0) == "/") ? e.pathname : "/" + e.pathname;
	if(e.search && e.pathname.indexOf(e.search) == -1) lnk += e.search;
	//if(e.hostname != location.host) lnk = externalpath + e.hostname + lnk;
	//_gaq.push(['matc._trackPageview',lnk]);
	
	//external_link_click
	if(e.hostname != location.host) {
	_gaq.push(['matc._trackEvent', 'external_link', e.hostname, e.href]);
	//download_link_click
	} else if (e.hostname == location.host && e.pathname.match(filetypes)) {
	_gaq.push(['matc._trackEvent', 'download_link', e.hostname, e.href]);
	_gaq.push(['matc._trackPageview', e.pathname]);
	}
}

//統合ドメインへの遷移トラッキング
function integrationtrack(evnt) {
	var e = (evnt.srcElement) ? evnt.srcElement : this;
	while(e.tagName != "A") {
		e = e.parentNode;
	}
		if(e.target == "_blank") {
			window.open(_gaq.push(['matc._link', e.href]),'_blank');
		} else {
			_gaq.push(['matc._link', e.href]);
		}
		evnt.returnValue = false;
		evnt.preventDefault();
}

var _gaq = _gaq || [],locategory = locategory || [];
_gaq.push(
['matc._setAccount',matcaccount],
['matc._setDomainName',setdomainname],
['matc._setAllowLinker',setallowlinker],
['matc._setAllowHash',setallowhash],
['matc._setAllowAnchor',setallowanchor]
);

(function() {
	var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
	ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
	var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
