/* ---------------------------------------------------------------------
JavaScript for AL BAZAR TOKYO
FileName: common.js
--------------------------------------------------------------------- */


// *** OS
var UA = navigator.userAgent;
var osWin = (UA.indexOf("Win", 0) != -1);
var osMac = (UA.indexOf("Mac", 0) != -1);


// *** browser
var brwOpera = (UA.indexOf('Opera') != -1);
var brwIE = (UA.indexOf('MSIE') != -1) && !brwOpera;
var brwFirefox = (UA.indexOf('Firefox') != -1);
var brwSafari = (UA.indexOf('Safari') != -1);
var brwGecko = (UA.indexOf('Gecko') != -1) && !(UA.indexOf('like Gecko') != -1);
var brwNetscape = (UA.indexOf('Netscape') != -1);


// *** browser type check
var brwType = 0;
if(UA.indexOf('MSIE') != -1 && UA.indexOf('Opera') == -1){
	var st = UA.indexOf("MSIE") + 5;
	var en = UA.indexOf(";", st);
	var verIE = Number(UA.substring(st, en));
	
	if(verIE < 5.5) brwType = 1; // gif
	else if(5.5 <= verIE && verIE < 7) brwType = 2; // filter PNG
	else brwType = 3; // transparent PNG
	if(UA.indexOf('Win') == -1) brwType = 1; // gif
} else {
	brwType = 3; // transparent PNG
}
UA = undefined;


// *** method
function DW(htmlSrc){document.write(htmlSrc);}
function DWL(htmlSrc){document.writeln(htmlSrc);}


// *** add preload object
var preLoadObj = new Array();

function addPreLoad(imgObj){
	preLoadObj = preLoadObj.concat(imgObj);
}


// *** image preload
function imgPreLoad(){
	preLoadImg = new Array();
	for(var i = 0; i < preLoadObj.length; i++){
		preLoadImg[i] = new Image();
		preLoadImg[i].src = preLoadObj[i];
	}
}


// *** image preload - initialize
addPreLoad(new Array(
	'/common/img/submenu_index_on.gif',
	'/common/img/submenu_about_on.gif',
	'/common/img/submenu_privacy_on.gif',
	'/common/img/submenu_contact_on.gif',
	'/common/img/navi_style_on.gif',
	'/common/img/navi_shop_on.gif',
	'/common/img/navi_access_on.gif',
	'/common/img/navi_store_on.gif'
));


// *** image over
function imgChange(imgObj){
	var imgSrc = imgObj.src;
	var imgStatus = imgSrc.indexOf("_on") != -1;
	if(!imgStatus){
		var P = imgSrc.lastIndexOf(".");
		imgSrc = imgSrc.substr(0, P) + '_on' + imgSrc.substring(P);
	} else {
		imgSrc = imgSrc.replace('_on', '');
	}
	imgObj.src = imgSrc;
}


// *** footer redraw
function footerReDraw(){
	var defH = 121; // フッターのデフォルト高
	var targetObj = document.getElementById('footer').getElementsByTagName('div')[0];

	var winH = document.documentElement.clientHeight;
	if(brwOpera) winH = document.body.clientHeight;
	if(brwSafari) winH = window.innerHeight;

	var submenuH = document.getElementById('submenu').offsetHeight;
	var containerH = document.getElementById('container').offsetHeight;
	var contentsH = document.getElementById('contents').offsetHeight;
	
	var difH = winH - (submenuH + containerH + contentsH); // ブロック合計値から差分を求める
	if(defH < difH) targetObj.style.height = difH + 'px';
	else targetObj.style.height = defH + 'px';
	document.getElementById('footer').style.visibility = 'visible';
}


// *** width check
function widthCheck(){
	var defW = 900; // コンテンツの最小幅

	var winW = document.documentElement.clientWidth;
	if(brwOpera) winW = document.body.clientWidth;
	if(brwSafari) winW = window.innerWidth;
	
	if(winW < defW){
		document.getElementById('container').style.width = defW + 'px';
		document.getElementById('footer').style.width = defW + 'px';
	} else {
		document.getElementById('container').style.width = '100%';
		document.getElementById('footer').style.width = '100%';
	}
}


// *** alpha image loader
function alphaImgLoader(src, method){
	var docSrc = '';
	docSrc += 'filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="';
	docSrc += src;
	docSrc += '", sizingMethod=';
	docSrc += method;
	docSrc += ');';
	return docSrc;
}


// *** image auto sizing
function imgAutoSizing(imgObj, maxW, maxH){
	if(osMac && brwIE && !brwOpera) return;
	if(maxH == undefined) maxH = maxW;
	var maxAspectRatio = maxW / maxH;
	var imgDummy = new Image();
	imgDummy.src = imgObj.src;
	var originalW = brwSafari ? imgObj.width : imgDummy.width;
	var originalH = brwSafari ? imgObj.height :  imgDummy.height;
	var originalAspectRatio = originalW / originalH;

	if(originalW < maxW && originalH < maxH){
		imgObj.style.width = originalW + 'px';
		imgObj.style.height = originalH + 'px';
		var styleW = imgObj.style.width;
		styleW = Number(styleW.substr(0, styleW.length - 2));
		var styleH = imgObj.style.height;
		styleH = Number(styleH.substr(0, styleH.length - 2));
		return new Array(styleW, styleH);
	}

	if(originalAspectRatio < maxAspectRatio){
		imgObj.style.width = Math.floor(maxH * originalAspectRatio) + 'px';
		imgObj.style.height = maxH + 'px';
	} else{
		imgObj.style.width = maxW + 'px';
		imgObj.style.height = Math.floor(maxW / originalAspectRatio) + 'px';
	}
	var styleW = imgObj.style.width;
	styleW = Number(styleW.substr(0, styleW.length - 2));
	var styleH = imgObj.style.height;
	styleH = Number(styleH.substr(0, styleH.length - 2));
	
	return new Array(styleW, styleH);
}


// *** onload event
window.onload = function(){
	imgPreLoad();
	footerReDraw();
	widthCheck();
}


// *** onresize event
window.onresize = function(){
	footerReDraw();
	widthCheck();
}


