/* matc.js
 * MITSUE-LINKS Auto Tracking Code
 * Version 2.2.1
 * Copyright (C) 2010 MITSUE-LINKS
 * 
 * This JavaScript was created using "gatag.js" provided by Goodwebpractices.com.
 */


//変更可能箇所

//統合解析ドメイン（対象ドメインを「|」で追加）
var integrateddomain = /^integrateddomain$/i;
//統合解析サブドメイン（対象ドメインを「|」で追加）
var subdomain = /\.fujixerox\.co\.jp/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|dmg|hqx|lzh|sit|smi|tar|sea|xdw|bin|dat)/i;


//カテゴリ判定
function gory(dir, cate) {
this.dir = dir;
this.cate = cate;
}
var category = new Array();
//カテゴリ指定（カテゴリ毎に「category[i]」を作成。範囲指定は正規表現で、カンマ区切りの後にカテゴリ名を文字列で記述）
category[0] = new gory(/\/(|www\.)fujixerox\.co\.jp\/($|index\.html|\?)/i,"トップページ");
category[1] = new gory(/\/(|www\.)fujixerox\.co\.jp\/product\//i,"商品情報");
category[2] = new gory(/\/(|www\.)fujixerox\.co\.jp\/solution\//i,"ソリューション＆サービス");
category[3] = new gory(/(\/(|www\.)fujixerox\.co\.jp\/support\/|\/support\.fujixerox\.co\.jp\/|\/onlinesupport\.fujixerox\.co\.jp\/)/i,"サポート");
category[4] = new gory(/(\/(|www\.)fujixerox\.co\.jp\/download\/|\/download\.fujixerox\.co\.jp\/|\/downloadnavi\.fujixerox\.co\.jp\/)/i,"ダウンロード");
category[5] = new gory(/\/(|www\.)fujixerox\.co\.jp\/company\//i,"企業情報");
category[6] = new gory(/\/site-search\.fujixerox\.co\.jp\//i,"サイト内検索");


//以下、変更不可

//「onload」重複対応
if (window.addEventListener) {
    window.addEventListener('load', autotracking, false);
} else if (window.attachEvent) {
    window.attachEvent('onload', autotracking);
}

//条件分岐
function autotracking() {
	if(typeof firstTracker._trackPageview != '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 {}
	}
	//閲覧カテゴリ計測
	var n = 0;
	for(i in category) {
		if(document.URL.match(category[i].dir)) {
			n++;
			var locategory = category[i].cate;
			break;
		}
	}
	if(n == 0) {
		var locategory = "その他";
	}
	secondTracker._trackPageview(locategory);
	//
}

//クリック判定
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);
	if(typeof(firstTracker) == "object") firstTracker._trackPageview(mailto);
}
//ダウンロード・外部リンクのトラッキング
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;
	if(typeof(firstTracker) == "object") firstTracker._trackPageview(lnk);
}
//統合ドメインへの遷移トラッキング
function integrationtrack(evnt) {
	var e = (evnt.srcElement) ? evnt.srcElement : this;
	while(e.tagName != "A") {
		e = e.parentNode;
	}
	if(typeof(firstTracker) == "object") {
		if(e.target == "_blank") {
			window.open(firstTracker._getLinkerUrl(e.href),'_blank');
		} else {
			firstTracker._link(e.href);
		}
		evnt.returnValue = false;
		evnt.preventDefault();
	}
}
