
/* 数値に関する汎用関数 */
/*function edComma(val){
	var mny = ('' + val).replace(/[ ,]/g, "");
	var hrnum = Math.ceil(mny.length / 3);
	var amari = mny.length - ((Math.ceil(mny.length / 3) - 1) * 3);
	var hrmny = new Array(hrnum);
	var start = 0;
	for(var i = 0; i < hrnum ; i++){
		hrmny[i] = mny.substring(start, amari);
		start = amari;
		amari = amari + 3;
	}
	return hrmny.join(',');
}
function clrComma(mny){
	return mny.replace(/,/g, "");
}
function pluSpc(mny){
	var limit = 9 - ('' + mny).length;
	for(var i = 1; i <= limit; i++){
		mny = ' ' + mny;
	}
	return mny;
}
function delSpc(mny){
	return mny.replace(/ /g, "");
}

*/
/* 配列に関する汎用関数 */
function array_push(arr,val){
	var num = arr.length;
	arr[num] = val;
	return arr;
}

/* onload処理 */
function class_onloadlib(){
	this.onloadFunc = new Array();
	this.addFunc = addFunc;
	this.exec = exec;
	this.completed = false;
	
	function addFunc(fn){
		this.onloadFunc = array_push(this.onloadFunc, fn);
	}
	function exec(){
		for(var i = 0; i < this.onloadFunc.length; i++){
			eval(this.onloadFunc[i]);
		}
		this.completed = true;
	}
}
var ssonload = new class_onloadlib();
function ssonload_add(fn){
	ssonload.addFunc(fn);
}
function ssonload_exec(fn){
	ssonload.exec();
}
window.onload = ssonload_exec;



/*---------------------------------------------------------------------------*/


var Banner = {
	scPrefix: '',
	customLink: function ($linkName, $url) {
		callScCustomLink(Banner.scPrefix+$linkName, $url);
	},
	scrollTo: function ($y, $callback) {
		var body = $(/safari/i.test(navigator.userAgent)?'body':'html');
		if (arguments[0] === false) {
			body.stop();
		} else {
			body.animate({scrollTop:$y}, 'normal', $callback);
		}
	},
/*	scrollToBuyArea: function () {
		Banner.scrollTo($('#BUY-AREA').offset().top-20);
		return false;
	},
	getPageSize: function () {
		var body = document.body;
		var doc = document.documentElement;
		var w, h;
		if (window.innerHeight && window.scrollMaxY) {
			w = body.scrollWidth;
			h = window.innerHeight + window.scrollMaxY;
		} else if (body.scrollHeight > body.offsetHeight) {
			w = body.scrollWidth;
			h = body.scrollHeight;
		} else {
			w = body.offsetWidth;
			h = body.offsetHeight;
		}
		var winW, winH;
		if (window.innerHeight) {
			winW = doc.clientWidth || window.innerWidth; 
			winH = window.innerHeight;
		} else if (doc && doc.clientHeight) {
			winW = doc.clientWidth;
			winH = doc.clientHeight;
		} else if (body) {
			winW = body.clientWidth;
			winH = body.clientHeight;
		}
		var pageW = (w < winW)? w : winW;
		var pageH = (h < winH)? winH : h;
		return {pageW:pageW, pageH:pageH, winW:winW, winH:winH};
	},*/
	_toggleWindow: function ($win, $src, $open, $callbackOpen, $callbackClose) {
		var overlay = $('#layer');
		var isOpen = overlay.is(':visible');
		if (typeof $open != 'boolean') $open = !isOpen;
		if (isOpen == $open) return false;
		Banner.scrollTo(false);
		overlay.stop().unbind();
		if ($open) {
			Banner.autoscroll(false);
			var top = $src.offset().top;
			var size = Banner.getPageSize();
			var callback = function(){Banner._toggleWindow($win,$src,false,null,$callbackClose)};
			overlay.click(callback).css({opacity:0, width:size.pageW, height:size.pageH}).show()
			Banner.scrollTo(top-20, function () {
				overlay.animate({opacity:0.2}, 400, function () {
					$win.unbind().click(callback).find('a').unbind().click(function($event){$event.stopPropagation()});
					$callbackOpen();
				});
			});
		} else {
			overlay.animate({opacity:0}, 300, function () {
				$callbackClose();
				$(this).hide();
				$win.css({left:-20000, top:-20000});
				Banner.autoscroll(true, true);
			});
		}
	},
	toggle: function ($open) {
		if ($('#slide_banner').length == 0) return;
		var area = $('#slide_banner').css('zIndex', 100);
		var closed = $('#close');
		var opened = $('#CAMPAIGN-OPENED');
		Banner._toggleWindow(opened, area, $open, function () {
			closed.hide();
			opened.css({left:-5, top:-5});
		}, function(){closed.show()});
	},
	toggleWin: function ($winID, $src, $open) {
		$('#slide_banner').css('zIndex', 98);
		$src = $($src);
		var win = $('#'+$winID);
		Banner._toggleWindow(win, $src, $open, function () {
			win.css({left:$('#TAB-BODY').offset().left+5, top:$src.offset().top-5});
		}, jQuery.noop);
	},
	isCampaignScrollable: function () {
		return (3 < $('#banner_list li').length);
	},
	isScrolling: false,
	scroll: function ($rewind) {
		if (Banner.isScrolling) return;
		Banner.isScrolling = true;
		var list = $('#banner_list');
		if ($rewind === true) {
			var left = list.children('li:eq(1)').position().left;
			list.animate({marginLeft:-left}, 600, function () {//nextスクロールタイム 300
				list.append(list.children('li:first')).css('marginLeft', 0);
				Banner.isScrolling = false;
			});
		} else {
			var item = list.children('li:last');
			var left = item.outerWidth(true);
			list.css('marginLeft', -left).prepend(item).animate({marginLeft:0}, 600, function(){Banner.isScrolling=false});//prevスクロールタイム 300
		}
	},
	scrollTimer: null,
	autoscroll: function ($start, $rewind) {
		if ($('#slide_banner').length == 0) return;
		if (!Banner.isCampaignScrollable()) return;
		if ($start && $('#layer').is(':hidden')) {
			Banner.scrollTimer = setInterval(function(){Banner.scroll($rewind)}, 4000);//スクロール間隔 5000
		} else {
			clearInterval(Banner.scrollTimer);
			Banner.scrollTimer = null;
		}
/*	},
	openGallery: function ($url, $target) {
		sswin_open($url, $target, 'scrollbars=yes,resizable=yes,status=yes,width=1020,height=740');
	},
	tabClick: function ($self, $id, $inner) {
		var num = $inner? '2' : '';
		$('#TAB'+num+'-HEAD a.current,#TAB'+num+'-BODY div.tab'+num+'Body.current').removeClass('current');
		$($self).addClass('current');
		$('#'+$id).addClass('current');
	},
	tabLoad: function ($index) {
		$('#TAB-HEAD .tabHead:eq('+$index+') a').click();
	},
	gotoCTS: function ($dom) {
		var ctsNO = $($dom).parents('div.shadowBox:first').find('input:radio:checked').val();
		top.location.href = ($dom.href+'?open=cts&cts_no='+ctsNO);
*/	}
};




$(document).bind('ready', function () {

/*if (/MSIE 6/.test(navigator.userAgent)) {
	$('#WIN-AREA div.shadowBox div.wrapper:first-child').addClass('first');
	$('#WIN-AREA div.shadowBox div.box li:first-child').addClass('first');
	$('#RECOMMEND-AREA div.box:first').addClass('first');
	$('#CONTENT-AREA > div.rightContent > div.sideMenu > ul > li:first-child').addClass('first');
}

$('#WIN-AREA li.cts').click(function ($e) {
	$(this).find('input')[0].checked = true;
	$e.stopPropagation();
});
*/
if (Banner.isCampaignScrollable()) {
	$('#prev,#next').css('visibility', 'visible');
}

$('#close').bind('mouseenter mouseleave', function ($event) {
	Banner.autoscroll($event.type == 'mouseleave', true);
});

var q = location.search;

/*
var matches = location.pathname.match(/^\/Special\/Computer\/Vaio\/([^\/]+)\//);
if (matches) {
	var prefix = 'vaio_';
	prefix += (q.indexOf('view=biz') == -1)? 'b2c' : 'b2b';
	prefix += ('_' + matches[1].toLowerCase() + '_');
	Banner.scPrefix = prefix;
}
*/
/*if (q.indexOf('campaign=open') != -1) {
	Banner.toggle(true);
} else {
	ssonload_add('Banner.autoscroll(true,true);');
}*/
ssonload_add('Banner.autoscroll(true,true);');

/*if (q.indexOf('lineup=open') != -1) {
	Banner.scrollToBuyArea();
}
*/
/*matches = q.match(/[\?&]?tab=(\d+)/);
if (matches) {
	Banner.tabLoad(matches[1] * 1 - 1);
	Banner.scrollToBuyArea();
}
*/
});

