// GLOBAL
if(typeof aa=="undefined")var aa={};
if(typeof aa.v=="undefined")aa.v={};
if(typeof aa.f=="undefined")aa.f={};
if(typeof aa.f.form=="undefined")aa.f.form={};
if(typeof aa.l=="undefined")aa.l={};
aa.v.sr=(new Date()).getTime();
aa.v.url=location.href;
aa.v.canonicalUrl='http://'+location.host + location.pathname.toString().replace(/index.*/, 'index\.htm');
aa.v.shortUrl;
aa.v.ref=document.referrer;
aa.v.loadcontents=new Array();
aa.v.loadlist=new Array();
aa.v.ad=new Array();
aa.v.consoleLog="off";
aa.v.dir=location.pathname.split("/");
aa.v.dir[0]=location.host;
aa.v.imp_cnt = new Array();
aa.v.domain=location.host;
aa.v.subdomain=(aa.v.domain.search(/allabout\.co\.jp/) != -1) ? aa.v.domain.match(/(.*?)\.?allabout\.co\.jp/)[1] : '';
aa.v.ylp_flg=0;
aa.v.ad_dir2 = 'M';
aa.v.enqClickCount = 1;
//
// prototype extentions
//
String.prototype.Trim=function(){
	return this.replace(/^\s+|\s+$/g,'');
}
String.prototype.splitTrim=function(t){
	return this.Trim().split(new RegExp('\\s*'+t+'\\s*'));
}
String.prototype.escapeHTML=function(){
	var i,e={'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;'},t=this;
	for(i in e)t=t.replace(new RegExp(i,'g'),e[i]);
	return t;
}
String.prototype.unescapeHTML=function(){
	var i,e={'&lt;':'<','&gt;':'>','&amp;':'&','&quot;':'"'},t=this;
	for(i in e)t=t.replace(new RegExp(i,'g'),e[i]);
	return t;
}
String.prototype.isEmail=function(){
	var rx=new RegExp("\\w+([-+.\']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
	var matches=rx.exec(this);
	return(matches != null && this == matches[0]);
}
String.prototype.isURL=function(){
	var rx=new RegExp("http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w-\\+ ./?%:&=#\\[\\]]*)?");
	var matches=rx.exec(this);
	return(matches != null && this == matches[0]);
}
String.prototype.contains=function(t){
	return this.indexOf(t) >= 0 ? true : false;
}

$(document).ready(function(){
	// ADD HOVER STATE
	$('ul.recent li.large, ul.archive li, ul.recent li.small div.top, ul.recent li.small div.bottom, div.autoStyle ul, #feature .galNavi li, div.brandWrap, body.brandHistory div.photo div').hover(function() {
		$(this).addClass('hover');
		$(this).find('p.more a').addClass('hover');
	},function(){
		$(this).removeClass('hover');
		$(this).find('p.more a').removeClass('hover');
	});
	$('div.search input.searchButton, form.enq img, form.enq input.enqButton').hover(function() {
		$(this).css('opacity', '0.7');
	},function(){
		$(this).css('opacity', '1');
	});
	$('.seriesCassette li:even').addClass('even');
	// ENQ
	$('form.enq :radio').click(function(){
		var fs = $(this).parents('fieldset');
		var findNotice = $(fs).find('.notice');
		var nextBtn = $(fs).find('img');
			if ( $(findNotice).is(':visible') ) {
				$(findNotice).css('display', 'none');
				$(nextBtn).css('display', 'block');
			}
	});
	$('form.enq img.enqNext').click(function() {
		var thisThis = $(this);
		var path = $(this).parents('fieldset');
		if ( $(path).hasClass('required') ) {
			var n = $(path).find('input:checked').length;
			if (n < 1) {
				$(path).find('.notice').css('display','block');
				$(thisThis).css('display', 'none');
			/* IF n less than 1 */
			} else { 
				$(path).fadeOut();
				$(path).next('fieldset').css('display','block')
				aa.v.enqClickCount++;
				$('#showCount .enqClickCount').text(aa.v.enqClickCount);
			}
		/* IF required */ 
		} else {
			$(path).fadeOut();
			$(path).next('fieldset').css('display','block')
			aa.v.enqClickCount++;
			$('#showCount .enqClickCount').text(aa.v.enqClickCount);
		}
	});
	$('form.enq img.enqBack').click(function() {
		var path = $(this).parents('fieldset');
		$(path).fadeOut();
		$(path).prev('fieldset').css('display','block');
	});
	aa.v.countFieldset = $('form.enq fieldset').length;
	$('#showCount .countFieldset').text(aa.v.countFieldset);
	$('#showCount .enqClickCount').text(aa.v.enqClickCount);
	// CATEGORY FIRST
	$('body.category div.middleCassette li:first').addClass('first');
	// SHUFFLE BY CLASS NAME
	// CAUTION: display: none; to .shufflebody
	// shufflecount
	$(".shufflebody").each(function(){
		var classitems = $(this).attr("class");
		var indexcount = classitems.indexOf("shufflecount");
		var viewitemcount = 0;
		if(indexcount>0){
			viewitemcount = parseInt(classitems.slice(indexcount+12));
		}
		var a=new Array();
		$(this).find(".shuffleitem").each(function(){
			a.push($(this).clone());
			$(this).remove();
		});
		if(a.length>1){
			a=aa.f.aryShuffle(a);
		}
		if( (viewitemcount == 0) || (viewitemcount > a.length) ){
			viewitemcount=a.length;
		}
		for(var i=0;i<viewitemcount;i++){
			$(this).append(a[i]);
		}
		$(this).css("display","block");
	});
	
	// SBM
	$('#articleFooter .detailInfo li a').click(function() {
		var url;
		var sbm  = $(this).parent('li').attr('class');
		var title = $('title').text();
		if (sbm == 'tweetbm') {
			aa.f.bitly_ajax();
			return false;
		} else if (sbm == 'hatenabm') {
			url = 'http://b.hatena.ne.jp/entry/'+aa.v.canonicalUrl;
		} else if (sbm == 'yahoobm') {
			url = 'http://bookmarks.yahoo.co.jp/action/bookmark?t='+encodeURIComponent(title)+'&u='+aa.v.canonicalUrl;
		} else if (sbm == 'newsingbm') {
			url = 'http://newsing.jp/add?url='+encodeURIComponent(aa.v.canonicalUrl);
		} else if (sbm == 'livedoorbm') {
			url = 'http://clip.livedoor.com/redirect?link='+aa.v.canonicalUrl+'&title='+encodeURIComponent(title)+'&ie=utf8';
		} else if (sbm == 'deliciousbm') {
			url = 'http://delicious.com/save?v=5&amp;noui&amp;jump=close&amp;url='+encodeURIComponent(aa.v.canonicalUrl)+'&amp;title='+encodeURIComponent(title);
		} else if (sbm == 'izabm') {
			url = 'http://www.iza.ne.jp/bookmark/add/regist/back/'+aa.v.canonicalUrl;
		}
		if (sbm != 'tweetbm') { $(this).attr('href',url); }
	});
	// Engagement
	$('#articleFooter .engagement li a').click(function() {
		var display = '#articleFooter .detailInfo .' + $(this).attr('href');
		var thisClass = $(this).attr('href');
	if (!$(this).parents('li').hasClass('current')) {
		$('#articleFooter .engagement li').removeClass('current');
		$('.detailInfo div').css('display','none');
		$(display).css('display','block');
		$(this).parents('li').addClass('current');
	}
	return false;
	});
	// RENSAI BKN
	var li_items = $('#rensai .backnumber ul li').length;
	if (li_items > 10) {
		$('#rensai .backnumber ul li:eq(5)').nextUntil('#rensai .backnumber ul li:last').wrapAll('<li class="wr"><ul class="hide"></ul></li>').end();
		$('#rensai .backnumber ul[class!=hide]').append('<li class="append"><em><span class="replace">more</span></em></a></li>');
			$('#rensai .backnumber ul li.append').hover(function() {
				$(this).css('opacity', '0.7');
			},function(){
				$(this).css('opacity', '1');
			});
		$('#rensai .backnumber ul li.append').click(function() {
			$('#rensai .backnumber ul.hide').slideDown(600);
			$('#rensai .backnumber ul li.append').fadeOut(600);
			return false;
		});
	}
	// RIGHT COL LAST
	$('#rightCol .regular li:last').addClass('last');
	// RIGHT CAROUSEL
	$("#rightCol .arrow").hover(
	function () {
		$(this).children('div').children('img').css( 'opacity','0.7' );
		$(this).css('background-color','#FFDBDB');
	}, 
	function () {
		$(this).children('div').children('img').css( 'opacity','1.0' );
		$(this).css('background-color','#F2F2F2');
	}
	);
	if ($('#rightCol').length != 0) {
		$('#rightCol div.scrollable').scrollable({
			vertical:true,
			size: 8,
			speed: 1500
		}).circular().autoscroll({
			api: true,
			interval: 4500
		});
	// RIGHT BIGGER LINK
	$('#rightCol .regular .items li, #rightCol .season li, #rightCol .side_dailyTips ul li, #business_topbox li').biggerlink();
		// BACK NUMBER PAGE BIGGER LINK
	} else if ($('#rensai').length != 0) {
		$('#rensai .bn li').biggerlink();
	} else if ($('#tips').length != 0) {
		$('#tips #list li').biggerlink();
	}
	$('.ga_tracking').each(function(){
		var rule = $(this).attr("rule").split(/,/);
		var p1 = rule.shift();
		var p2 = rule.shift();
		var i = 1;
		$(this).find('a').each(function(){
			var to = $(this).attr('href');
			var p3 = rule.join().replace(/\[from\]/,aa.v.url).replace(/\[to\]/,to).replace(/\[no\]/,i);
			var v;
			// js var
			var m = rule.join().match(/aa\.v\.[\w\.]+/g);
			if (m) {
				for (var j=0; j<m.length; j++) {
					eval('v = '+m[j]+';');
					p3 = p3.replace(m[j], v);
				}
			}
			$(this).click(function(){
				pageTracker._trackEvent(p1, p2, p3);
				aa.f.WtADClickMtxTag( encodeURIComponent(p1+','+p2+','+p3) );
			});
			i++;
		});
	});
// DOM READY END
});
// UNWRAP
(function($) {
	$.fn.unwrap = function(expr) {
		return this.each(function(){
			$(this).parents(expr).eq(0).after(this).remove();
		});
	}
})(jQuery);
// BACKGROUND-POSITION
(function($) {
	$.extend($.fx.step,{
		backgroundPosition: function(fx) {
			if (fx.state === 0 && typeof fx.end == 'string') {
				var start = $.curCSS(fx.elem,'backgroundPosition');
				start = toArray(start);
				fx.start = [start[0],start[2]];
				var end = toArray(fx.end);
				fx.end = [end[0],end[2]];
				fx.unit = [end[1],end[3]];
			}
			var nowPosX = [];
			nowPosX[0] = ((fx.end[0] - fx.start[0]) * fx.pos) + fx.start[0] + fx.unit[0];
			nowPosX[1] = ((fx.end[1] - fx.start[1]) * fx.pos) + fx.start[1] + fx.unit[1];
			fx.elem.style.backgroundPosition = nowPosX[0]+' '+nowPosX[1];
			
			function toArray(strg){
				strg = strg.replace(/left|top/g,'0px');
				strg = strg.replace(/right|bottom/g,'100%');
				strg = strg.replace(/([0-9\.]+)(\s|\)|$)/g,"$1px$2");
				var res = strg.match(/(-?[0-9\.]+)(px|\%|em|pt)\s(-?[0-9\.]+)(px|\%|em|pt)/);
				return [parseFloat(res[1],10),res[2],parseFloat(res[3],10),res[4]];
			}
		}
	});
})(jQuery);
// VERTICAL ALIGN
(function ($) {
$.fn.vAlign = function() {
	return this.each(function(i){
	var ah = $(this).height();
	var ph = $(this).parent().height();
	var mh = (ph - ah) / 2;
	$(this).css('margin-top', mh);
	});
};
})(jQuery);
// PRELOAD IMAGE
// USAGE $.preloadImages("top1_2.jpg", "top1_1.jpg");
(function($){
	$.fn.preload = function() {
	for(var i = 0; i<arguments.length; i++) {
		jQuery("<img>").attr("src", arguments[i]);
	}
	}
})(jQuery);
jQuery.preloadImages = function() {
	for(var i = 0; i<arguments.length; i++) {
	jQuery("<img>").attr("src", arguments[i]);
	}
}
// Bit.ly AJAX CALL
aa.f.bitly_ajax = function() {
	var longurl = encodeURIComponent(aa.v.canonicalUrl);
	var login = "aatwitter";
	var apikey = "R_de0d17b657ad9ef83c93d3a7b4cd9259";
	var version = "2.0.1";
	var url;
	var title;
	if (aa.v.dir[1]=='s') {
		title = $('.breadCrumb .title').text();
	} else if (aa.v.dir[1]=='r') {
		title = $('.breadCrumb .title').text();
	} else if (aa.v.dir[1]=='tips') {
		title = $('.breadCrumb .pageTitle').text();
	}
	$.ajax({
		url: 'http://api.bit.ly/shorten?'+'longUrl='+longurl+'&'+'login='+login+'&'+'apiKey='+apikey+'&format=json'
		,async: false
		,dataType: 'jsonp'
		,scriptCharset: 'utf-8'
		,timeout: 5000
		,success: function(data){
			aa.v.shortUrl = data.results[aa.v.canonicalUrl].shortUrl;
			url = 'http://twitter.com/home?status='+encodeURIComponent(title+' | '+aa.v.shortUrl+' [via @allabout_men]');
			window.open(url);
		}
	});
}

// BELOW FROM common.js
// SHUFFLE
aa.f.aryShuffle=function(ary){
	if(ary.length<2)return ary;
	var i=ary.length;
	while(--i){
		var j=Math.floor(Math.random()*(i+1));
		if(i==j)continue;
		var k=ary[i];
		ary[i]=ary[j];
		ary[j]=k;
	}
	return ary;
}
//
// by cookie.js
//
aa.f.WtScriptTag=function(u,c,i,t){
	var s,h,k,v;
	k=navigator.userAgent.indexOf("Safari");
	v=parseInt(navigator.userAgent.slice(k+7));
	if(k>=0&&v<300)t=1;
	c=c?c:'Shift-JIS';i?i:"";
	if(t)document.write('<scr'+'ipt charset="'+c+'" id="'+i+'" src="'+u+'"></scr'+'ipt>');
	else{
		h = document.getElementsByTagName("head")[0];
		s = document.createElement('script');
		s.type = 'text/javascript';
		s.charset = c;
		s.id = i;
		s.src = u;
		h.appendChild(s);
	}
}
aa.v.orig_cookie = document.cookie;
aa.f.ReadAllCookie=function(str){
	var c=new Object();
	var aryCookie = str=="fresh" ? document.cookie.toString().split(";") : aa.v.orig_cookie.toString().split(";");
	for(var idx in aryCookie){
		var aryCookieItem = aryCookie[idx].split("=");
		if(!aryCookieItem[1])aryCookieItem[1]="";
		c[aryCookieItem[0].Trim()]=aryCookieItem[1].Trim();
	}
	return c;
}
aa.f.ReadOldCookie=function(str){
	return aa.f.ReadAllCookie()[str];
}
aa.f.ReadCookie=function(str) {
	return aa.f.ReadAllCookie("fresh")[str];
}
aa.f.SetCookie=function(name,value,expdays,domain,path,seccon){
	var str = "";
	if(name) str += name.Trim() + "=" + value.Trim();
	if(expdays){
		var d=new Date();
		d.setTime(d.getTime()+1000*60*60*24*expdays);
		str+="; expires="+d.toGMTString();
	}
	if(domain)str+="; domain=" + domain;
	if(path)str+="; path="   + path;
	if(seccon && location.protocol == "https:")str+="; secure";
	if(name)document.cookie = str;
}
aa.f.ClearAllCookie=function(domain,path){
	var cookies = aa.f.ReadAllCookie();
	for(var c in cookies){
		aa.f.CookieClear(c, domain, path);
	}
}
aa.f.CookieClear=function(name,domain,path){
	aa.f.SetCookie(name, "", -10000, domain, path);
}
// parseError
aa.f.isParseError = function isParseError(doc){
	return (doc.parseError!=null&&doc.parseError.errorCode!=0)||(doc.documentElement.tagName=='parsererror'&&doc.documentElement.namespaceURI=='http://www.mozilla.org/newlayout/xml/parsererror.xml')||(doc.documentElement == null);
}
// DEQWAS
aa.f.WriteDeqwas=function(o){
	$.ajax({
		url: '/proxy/0/0/http://s.deqwas.net/d/allabout/item/'+o.xml,
		type: 'GET',
		cache: false,
		dataType: 'xml',
		timeout: 5000,
		error: function(){
		},
		success: function(xml){
			// parse error
			if(aa.f.isParseError(xml)){
				return false;
			}

			// xmlのidが別の場合、脱出
			var xml_id = '';
			$(xml).find('deqwas').each(function() {
				xml_id=$(this).attr('id');
			});
			if(xml_id+'.xml' != o.xml) {
				return false;
			}

			var html = '';
			$(xml).find('item').each(function(i){
				if (i == o.max) return false;
				var name = $(this).find('name').text();
				var url = $(this).find('link').text();
				if (url != url.match(/.*prev.*/)) {
				html += o.list.replace(/\[url\]/g, url).replace(/\[title\]/g, name);
				}
				
			});
			if(html) {
				$(o.selector)[o.method](o.header+html+o.footer);
			}
		}
	});
}

aa.f.WtADImpMtxTag=function(pk,ac,p,tmpl){
	var body = document.getElementsByTagName("body")[0];
	var img = document.createElement('img');
	$(function(){body.appendChild(img);});
	img.src = 'http://mtx.allabout.co.jp/mtx_cnt.gif?v=a&ac='+ac+'&tmplid='+tmpl+'&pkg='+pk+'&se='+p+'&srl='+aa.v.sr+'&page='+encodeURIComponent(aa.v.url)+'&ref='+encodeURIComponent(aa.v.ref);
}

/** Ad Functions **/
$(function(){
	if(typeof aa.v.ad_dir2 == 'undefined') {
		return;
	}
	var base_url = 
		(aa.v.ad_dir2 === 'F') ? 'http://forf.allabout.co.jp/' :
		(aa.v.ad_dir2 === 'M') ? 'http://form.allabout.co.jp/' :
		null;
	if(base_url === null) {
		return;
	}
	for(ac in aa.v.ad){
		aa.f.WtScriptTag(base_url+"ad_free"+ac+".txt","Shift-JIS","");
	}
});

// a
aa.f.ac48=function(o){
	var a = aa.v.ad[48];
	var l,s={};
	var c,n,t,u,d,i,i2,tid;

	o.shift();
	l=aa.f.aryShuffle(o);
	if(l.length>0){
		for(var j in aa.v.ad[48]){
			var html = '';
			var _p  = a[j][0];
			var _s = a[j][1];
			var _h  = a[j][2];
			var _f  = a[j][3];
			var _l  = a[j][4];
			var _t  = a[j][5];
			var _m  = a[j][6] ? a[j][6] : '99';

			for(var k in l){
				for (c=0; c<=2; c++) {
					n=(c===0)?'':c+1;
					if (c>0 && !l[k]['t'+n]) break;
					s[c]={};
					s[c].t=l[k]['t'+n];
					s[c].u=l[k]['u'+n];
					s[c].d=l[k]['d'+n];
					s[c].i=l[k]['i'+n+(c===0?'':'1')];
					s[c].i2=l[k]['i'+n+'2'];
				}
				n=Math.floor( Math.random() * (c) );
				t=s[n].t;
				u=s[n].u;
				d=s[n].d;
				i=s[n].i;
				i2=s[n].i2;

				tid = _t+""+n;
				u=u.replace("\&tmplid\=480","\&tmplid\="+tid+"\&op="+encodeURIComponent(document.domain + location.pathname));
				i = '//img.allabout.co.jp/Live'+i;

				html += _l.replace(/\[url\]/g, u).replace(/\[title\]/g, t).replace(/\[img\]/g, i).replace(/\[img2\]/g, i2).replace(/\[text\]/g, d);
				if (k >= _m) break;

			}
			html = _h + html + _f;
			$(_s).html(html);
		}
		aa.f.WtADImpMtxTag('000000','48',aa.v.ad_dir1,'480');
	}
};



