/* matc.js
 * MITSUE-LINKS Auto Tracking Code
 * Version 2.1.2
 * Copyright (C) 2010 MITSUE-LINKS
 * 
 * This JavaScript was created using "gatag.js" provided by Goodwebpractices.com.
 */


//変更可能箇所

//統合解析ドメイン（対象ドメインを「|」で追加）
var integrateddomain = /,/i;
//統合解析サブドメイン（対象ドメインを「|」で追加）
var subdomain = /\.mitsue\.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)/i;


//カテゴリ判定
function gory(dir, cate) {
this.dir = dir;
this.cate = cate;
}
var category = new Array();
//カテゴリ指定（カテゴリ毎に「category[i]」を作成。範囲指定は正規表現で、カンマ区切りの後にカテゴリ名を文字列で記述）
category[0] = new gory(/\/(www\.|)mitsue\.co\.jp\/($|index\.html)/i,"トップページ");
category[1] = new gory(/\/(www\.|)mitsue\.co\.jp\/(service\/|solution\/mipro1_1\.html|analytics\/)/i,"サービス");
category[2] = new gory(/\/(www\.|)mitsue\.co\.jp\/product\//i,"ソリューション");
category[3] = new gory(/\/(www\.|)mitsue\.co\.jp\/(case\/design\/|glossary\/|case\/glossary\/)/i,"Web制作用語集");
category[4] = new gory(/\/(www\.|)mitsue\.co\.jp\/case\//i,"メソッド");
category[5] = new gory(/\/(www\.|)mitsue\.co\.jp\/(news\/|release\/|support\/)/i,"ニュース");
category[6] = new gory(/\/(www\.|)mitsue\.co\.jp\/history\//i,"実績紹介");
category[7] = new gory(/\/(www\.|)mitsue\.co\.jp\/column\//i,"コラム");
category[8] = new gory(/\/(www\.|)mitsue\.co\.jp\/company\//i,"会社案内");
category[9] = new gory(/\/(www\.|)mitsue\.co\.jp\/recruit\//i,"採用情報");
category[10] = new gory(/\/(www\.|)mitsue\.co\.jp\/search\//i,"サイト内検索");
category[11] = new gory(/\/(www\.|)mitsue\.co\.jp\/english\//i,"English");
category[12] = new gory(/\/csr\.mitsue\.co\.jp\//i,"CSRサイト");
category[13] = new gory(/\/photo\.mitsue\.co\.jp\//i,"社内風景");
category[14] = new gory(/\/recruit\.mitsue\.co\.jp\//i,"採用サポート情報");
category[15] = new gory(/\/m-tech\.mitsue\.co\.jp\//i,"週間テックセミナーBlog");
category[16] = new gory(/\/(www\.|)mitsue\.co\.jp\/toiawase\/|^mailto:/i,"お問い合わせ");
category[17] = new gory(/\/(www\.|)mitsue\.co\.jp\/topics\//i,"トピックス一覧");
category[18] = new gory(/\/(www\.|)mitsue\.co\.jp\/seminar\//i,"セミナーのご案内");
category[19] = new gory(/\/(www\.|)mitsue\.co\.jp\/form\//i,"フォーム");
category[20] = new gory(/\/videocast\.mitsue\.co\.jp\//i,"Videocasting");
category[21] = new gory(/\/marketing\.mitsue\.co\.jp\//i,"実践！Webマーケティング：Blog");
category[22] = new gory(/\/accessibility\.mitsue\.co\.jp\//i,"アクセシビリティBlog");
category[23] = new gory(/\/log-analysis\.mitsue\.co\.jp\//i,"アクセス解析Blog");
category[24] = new gory(/\/writing\.mitsue\.co\.jp\//i,"WebライティングBlog");
category[25] = new gory(/\/notation\.mitsue\.co\.jp\//i,"ウェブ標準表記Blog");
category[26] = new gory(/\/cms-blog\.mitsue\.co\.jp\//i,"CMS Blog");
category[27] = new gory(/\/usability\.mitsue\.co\.jp\//i,"ユーザビリティBlog");
category[28] = new gory(/\/ms\.mitsue\.co\.jp\//i,"Web屋のマネジメントシステムBlog");
category[29] = new gory(/\/blog\.mitsue\.co\.jp\//i,"創業者の独り言");
category[30] = new gory(/\/standards\.mitsue\.co\.jp\//i,"Web標準Blog");
category[31] = new gory(/\/solution\.mitsue\.co\.jp\/seminar\//i,"セミナー管理システム");
category[32] = new gory(/\/solution\.mitsue\.co\.jp\/search\//i,"FindSupporter");


//以下、変更不可

//「onload」重複対応
if (window.addEventListener) {		//	W3C DOM
	window.addEventListener('load', autotracking, false);
} else if (window.attachEvent) {	//	IE用
	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) {
			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 = "other";
	}
	n = 0;
	for(i in category) {
		if(document.referrer.match(category[i].dir)) {
			n++;
			var recategory = category[i].cate;
			break;
		}
	}
	if(n == 0) {
		if((document.referrer.indexOf(location.hostname) != -1) || (document.referrer.match(integrateddomain))) {
			var recategory = "other";
		} else {
			var recategory = "none";
		}
	}
	secondTracker._trackPageview(locategory);
	secondTracker._trackEvent("閲覧カテゴリ",locategory,location.pathname);
	secondTracker._trackEvent("カテゴリ間遷移",recategory + ">" + locategory,document.referrer + ">" + location.pathname);
	//
}

//クリック判定
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 href = (evnt.srcElement) ? evnt.srcElement.href : this.href;
	if(typeof(firstTracker) == "object") {
		firstTracker._link(href);
		evnt.returnValue = false;
		evnt.preventDefault();
	}
}