isIE=/*@cc_on!@*/false;
isSafari = (navigator.appVersion.match('Safari')) ? 1:0;
isMozilla = 0;
isIE6 =false;
if(isIE && navigator.userAgent.match('MSIE 6')){
	isIE6 = true;
}
if(!isSafari && navigator.userAgent.match('Gecko')){
	isMozilla = 1;
}

function eventObserve(elem,evName,func,b){
	if (elem.addEventListener) {
		elem.addEventListener(evName,func, b);
	}
	else if (elem.attachEvent) {
		elem.attachEvent('on' + evName, func);
	}
	else {}
}

document.getElementsByClassName = function (className) {
	var i, j, eltClass;
	var objAll = document.getElementsByTagName ? document.getElementsByTagName("*") : document.all;
	var objCN = new Array();
	for (i = 0; i < objAll.length; i++) {
		eltClass = objAll[i].className.split(/\s+/);
		for (j = 0; j < eltClass.length; j++) {
			if (eltClass[j] == className) {
				objCN.push(objAll[i]);
				break;
			}
		}
	}
	return objCN;
}

function registGEOBOX(){
	var bodyElem = document.body;
	var wrapElem = blackoutWindow();
	var pageW = bodyElem.offsetWidth;
	var pageH = bodyElem.offsetHeight;
	var btnWrapper = document.createElement('div');
	btnWrapper.style.width = '300px';
	btnWrapper.style.padding = '4px';
	btnWrapper.style.background = '#fff';
	btnWrapper.style.zIndex = '1002';
	btnWrapper.style.position = 'absolute';
	var wrapPosX = 100;
	if(isIE){
		wrapPosX += document.documentElement.scrollTop;
	}
	else {
		wrapPosX += pageYOffset;
	}
	var wrapPosY = Math.floor((pageW - 300) / 2);
	btnWrapper.style.top = wrapPosX + 'px';
	btnWrapper.style.left = wrapPosY + 'px';
	btnWrapper.id = 'floatWindow';
	var closeWrapper = document.createElement('div');
	closeWrapper.align = 'right';
	var closeBtn = document.createElement('a');
	closeBtn.href = 'javascript:closeRegBox();';
	closeBtn.innerHTML = '[×]';
	closeBtn.className = 'px12';
	var addressLink = document.createElement('a');
	addressLink.href = baseURL + '/box/';
	addressLink.id = 'btnAddress';
	addressLink.innerHTML = '住所から選ぶ';
	var mapLink = document.createElement('a');
	mapLink.href = baseURL + '/box/map';
	mapLink.id = 'btnMap';
	mapLink.innerHTML = '地図から選ぶ';
	
	btnWrapper.appendChild(closeWrapper);
	closeWrapper.appendChild(closeBtn);
	btnWrapper.appendChild(addressLink);
	btnWrapper.appendChild(mapLink);
	bodyElem.appendChild(btnWrapper);
	
	eventObserve(wrapElem,'click',closeRegBox,false);
}

function closeRegBox(){
	var wrapElem = document.getElementById('blackout');
	var btnWrapper = document.getElementById('floatWindow');
	while(btnWrapper.firstChild){
		btnWrapper.removeChild(btnWrapper.firstChild);
	}
	document.body.removeChild(btnWrapper);
	document.body.removeChild(wrapElem);
}

function addReserveList(linkElem){
	var addurl = linkElem.href;
	var parentElem = linkElem.parentNode;
	$.get(
		addurl,
		function(){
			var addText = document.createElement('div');
			parentElem.innerHTML = '';
			addText.innerHTML = '追加完了';
			addText.className = 't5 px12 gry6';
			addText.style.fontWeight = 'bold';
			var stockLink = document.createElement('a');
			stockLink.innerHTML = '予約カートを見る';
			stockLink.href = '/my/reserve';
			stockLink.className = 'px12';

			parentElem.appendChild(addText);
			parentElem.appendChild(stockLink);
		}
	);
	return false;
}

function unreserveConfirm(val){
	var cookieData = eatCookie('GEOBOX_UNRESEREVE');
	if(cookieData){
		bakeCookie('GEOBOX_UNRESEREVE',1,12);
		return true;
	}
	else {
		var bodyElem = document.body;
		var pageW = bodyElem.offsetWidth;
		var pageH = bodyElem.scrollHeight;
		var confirmElem = document.createElement('form');
		confirmElem.id = 'confirmDialog';
		confirmElem.style.display = 'block';
		confirmElem.style.background = '#fff';
		confirmElem.style.width = '300px';
		confirmElem.style.border = '1px solid #ccc';
		confirmElem.style.padding = '10px';
		confirmElem.style.zIndex = '1002';
		confirmElem.style.position = 'absolute';
		var wrapPosX = 100;
		if(isIE){
			wrapPosX += document.documentElement.scrollTop;
		}
		else {
			wrapPosX += pageYOffset;
		}

		var wrapPosY = Math.floor((pageW - 300) / 2);
		confirmElem.style.top = wrapPosX + 'px';
		confirmElem.style.left = wrapPosY + 'px';

		var confirmText = document.createElement('div');
		confirmText.className = 'px12';
		confirmText.style.marginBottom = '5px';
		confirmText.innerHTML = '<b>「' + val.rel + '」</b>を予約カートから解除しますか？';
		confirmElem.appendChild(confirmText);
		
		var nextCheckWrapper = document.createElement('div');
		nextCheckWrapper.className = 'px12';
		nextCheckWrapper.style.textAlign = 'right';
		nextCheckWrapper.style.marginBottom = '10px';
		confirmElem.appendChild(nextCheckWrapper);
		
		var notNext = document.createElement('input');
		notNext.type = 'checkbox';
		notNext.name = 'noNext';
		notNext.id = 'noNext';
		nextCheckWrapper.appendChild(notNext);
		
		var notNextText = document.createElement('label');
		notNextText.setAttribute('for','noNext');
		notNextText.innerHTML = '&nbsp;次からは表示しない';
		nextCheckWrapper.appendChild(notNextText);
		
		var btnWrapper = document.createElement('div');
		btnWrapper.style.textAlign = 'center';
		confirmElem.appendChild(btnWrapper);
		
		var okBtn = document.createElement('input');
		okBtn.type = 'button';
		okBtn.id = 'deleteBtn';
		okBtn.style.textAlign = 'center';
		okBtn.style.float = 'none !important';
		if(isIE6){
			okBtn.style.margin = '10px 0 10px 22px';
		}
		else {
			okBtn.style.margin = '10px 0 10px 45px';
		}
		okBtn.value = '解除する';
		var clearElem = document.createElement('div');
		clearElem.className = 'f-clear';
		var canselBtnWrapper = document.createElement('div');
		canselBtnWrapper.className = 't10';
		var cancelBtn = document.createElement('a');
		cancelBtn.href = 'javascript:void(0);';
		cancelBtn.className = 'px12';
		cancelBtn.style.textAlign = 'center';
		cancelBtn.innerHTML = '閉じる';
		
		btnWrapper.appendChild(okBtn);
		canselBtnWrapper.appendChild(cancelBtn);
		btnWrapper.appendChild(clearElem);
		btnWrapper.appendChild(canselBtnWrapper);
		
		eventObserve(okBtn,'click',function(){
			okUnreserve(val.href);
		},false);
		eventObserve(cancelBtn,'click',cancelUnreserve,false);
		
		var wrapElem = blackoutWindow();
		document.body.appendChild(confirmElem);
		return false;
	}
}

function okUnreserve(url){
	if(document.getElementById('noNext').checked){
		bakeCookie('GEOBOX_UNRESEREVE',1,12);
	}
	location.href = url;
}

function cancelUnreserve(){
	var bodyElem = document.body;
	var confirmElem = document.getElementById('confirmDialog');
	var wrapElem = document.getElementById('blackout');
	while(confirmElem.firstChild){
		confirmElem.removeChild(confirmElem.firstChild);
	}
	bodyElem.removeChild(confirmElem);
	bodyElem.removeChild(wrapElem);
}

function blackoutWindow(){
	var bodyElem = document.body;
	var pageW = bodyElem.offsetWidth;
	var pageH = 1000;
	var pageH = Math.max(document.body.clientHeight,document.body.scrollHeight);
	pageH = Math.max(pageH,document.documentElement.scrollHeight);
	pageH = Math.max(pageH,document.documentElement.clientHeight);
	var wrapElem = document.createElement('div');
	wrapElem.id = 'blackout';
	wrapElem.style.height = pageH + 'px';
	wrapElem.style.width = pageW + 'px';
	bodyElem.appendChild(wrapElem);
	return wrapElem;
}

function bakeCookie(key,val,exp){
	var url = document.domain;
	url = url.replace('ssl\.','');
	var addMonth =exp * 30;
	var days = new Date();
	var oneDays = 60 * 60 * 24 * 1000;
	days.setTime(days.getTime() + oneDays * addMonth);
	var exdate = days.toGMTString();
	var cookievalue = key + '=' + escape(val);
	cookievalue += ';expires=' + exdate + ';';
	cookievalue += 'domain=' + url + ';path=/;';
	document.cookie = cookievalue;
}

function eatCookie(key){
	var rep = new RegExp("[ \n]",'g');
	var cookievalue = document.cookie;
	if(cookievalue.indexOf(key) > -1){
		var tmp = cookievalue.split(';');
		for(i=0;i < tmp.length;i++){
			var tmp2 = tmp[i].split('=');
			tmp2[0] = tmp2[0].replace(rep,"");
			if(tmp2[0] == key){
				var vals = tmp2[1];
			}
		}
		return (unescape(vals));
	}
	else{
		return '';
	}
}

function disableBtnEvent(){
	var formsAry = document.getElementsByTagName('form');
	for(i = 0;i < formsAry.length;i++){
		if(formsAry[i].id == ''){
			formsAry[i].id = 'form' + i;
		}
		formObserve(formsAry[i]);
	}
}

function formObserve(formElem){
	eventObserve(formElem,'submit',function(){
		btnElem = formElem.getElementsByTagName('input');
		for(j = 0;j < btnElem.length;j++){
			if(btnElem[j].type.match('submit|button')){
				btnElem[j].disabled = true;
			}
		}
	},false);
}

function unloadEvent(){
	var inputsAry = document.getElementsByTagName('input');
	for(i = 0;i < inputsAry.length;i++){
		if(inputsAry[i].type.match('submit|button')){
			inputsAry[i].disabled = false;
		}
	}
}

function unbook(){
	if(confirm('予約をキャンセルしますか？')){
		return true;
	}
	else {
		return false;
	}
}

function btn2hidden(val){
	var hiddenElem = document.createElement('input');
	hiddenElem.type = 'hidden';
	hiddenElem.name = val.name;
	hiddenElem.value = val.value;
	val.parentNode.appendChild(hiddenElem);
}

function addBox(linkElem,boxName){
	var addurl = linkElem.href;
	var parentElem = linkElem.parentNode;
	var boxNum = 0;
	var boxStockURL = addurl.replace('box\/','item/?k=');
	boxStockURL = boxStockURL.replace("\/add",'');
	$.get(
		'/my/box',
		{type:'ajax'},
		function(data){
			boxNum = Number(data);
			if(boxNum < 5){
				$.get(
					addurl,
					function(){
						var addText = document.createElement('div');
						parentElem.innerHTML = '';
						addText.innerHTML = 'マイGEOBOXに追加しました';
						addText.className = 't10 px12 gry6';
						addText.style.fontWeight = 'bold';
						var stockLink = document.createElement('a');
						stockLink.innerHTML = boxName + 'の在庫を確認する';
						stockLink.href = boxStockURL;
						stockLink.className = 'px12';
						parentElem.style.textAlign = 'center';
						parentElem.appendChild(addText);
						parentElem.appendChild(stockLink);
					}
				);
			}
			else {
				parentElem.innerHTML = 'マイGEOBOXは5つまで登録できます';
				parentElem.className = 't10 px12 gry6';
				parentElem.style.textAlign = 'center';
				parentElem.style.fontWeight = 'bold';
			}
		}
	);
	return false;
}

function removeBox(linkElem){
	var addurl = linkElem.href;
	var parentElem = linkElem.parentNode;
	$.get(
		addurl,
		function(){
			parentElem.innerHTML = 'マイGEOBOXから解除しました';
			parentElem.className = 't10 px12 gry6';
			parentElem.style.textAlign = 'center';
			parentElem.style.fontWeight = 'bold';
		}
	);
	return false;
}

function imageExt(){
	var imgExtension = '.png';
	isIE=/*@cc_on!@*/false;
	if(isIE){
		if (typeof document.body.style.maxHeight != "undefined") {}
		else { 
// IE6, older browsers 
			imgExtension = '.gif';
		}
	}
	return imgExtension;
}