/*=================   新規ウィンドウ作成   ======================*/

var wActive;

function openSmallWindow(wUrl, wWidth, wHeight){
	wActive = window.open(wUrl,"","width=" + wWidth + ",height=" + wHeight + ",toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no");
	
	var WW = wActive.outerWidth/2;
	var WH = wActive.outerHeight/2;
	var HUW = (screen.availWidth/2)-WW;
	var HSH = (screen.availHeight/2)-WH;
	
	wActive.moveTo(HUW,HSH);
	
	wActive.focus();
}


/*=================   frmSubmit処理   ======================*/

function frmSubmit(frm,url){
	var url;
	var frm;

	document.getElementById(frm).action = url;
	document.getElementById(frm).submit();
	return true;
}


/*=================   frmSubmit処理   ======================*/

function frmSubmitConfirm(frm,url){
	var url;
	var frm;

	if(window.confirm("実行してもよろしいですか？")){
		document.getElementById(frm).action = url;
		document.getElementById(frm).submit();
		return true;
	}else{
		return false;
		exit;
	}
	
}



/*=================   アイテム削除時の確認   ======================*/

function itemDel(actionurl) {
	var actionurl;
	
	if(actionurl){
		if(window.confirm("削除を実行してもよろしいですか？")){
			window.location.href = actionurl;
			return true;
		}
	}
}



/*=======================  エンターキー押下でもsubmitさせない  =======================*/

function BlockEnter(evt){
	evt = (evt) ? evt : event; 
	var charCode=(evt.charCode) ? evt.charCode : 
		((evt.which) ? evt.which : evt.keyCode);
	if ( Number(charCode) == 13 || Number(charCode) == 3) {
		return false;
	} else {
		return true;
	}
}

function attachBlockEnter(formid) {
	var elements = document.getElementById(formid).elements;
	for (var j=0; j < elements.length; j++) {
		var e = elements[j];	
		if (e.type == "text"){
			e.onkeypress=BlockEnter;
		}
	}
}



/*=======================  ロールオーバー  =======================*/
function initRollOverImages() {  
	var image_cache = new Object();  
	$(".rollover").not("[@src*='_on.']").each(function(i) {  
		var imgsrc = this.src;  
		var dot = this.src.lastIndexOf('.');  
		var imgsrc_on = this.src.substr(0, dot) + '_on' + this.src.substr(dot, 4);  
		image_cache[this.src] = new Image();  
		image_cache[this.src].src = imgsrc_on;  
		$(this).hover(  
			function() { this.src = imgsrc_on; },  
			function() { this.src = imgsrc; }  
		);  
	});  
}

//*******************************************************************************
//　郵便番号を取得する
//*******************************************************************************

function getZip(zip3_box_id,zip4_box_id,prefecture_box_id,address_box_id){
	
	if(zip3_box_id && zip3_box_id.indexOf("#") == -1){
		zip3_box_id = "#" + zip3_box_id;
	}

	if(zip4_box_id && zip4_box_id.indexOf("#") == -1){
		zip4_box_id = "#" + zip4_box_id;
	}

	if(prefecture_box_id && prefecture_box_id.indexOf("#") == -1){
		prefecture_box_id = "#" + prefecture_box_id;
	}

	if(address_box_id && address_box_id.indexOf("#") == -1){
		address_box_id = "#" + address_box_id;
	}
	
	var zip3 = $(zip3_box_id).val();
	var zip4 = $(zip4_box_id).val();
	
	var zipcode = zip3 + zip4;
	var url = "/api/get_zip.php";
	
	var formparts = new Object();
	
	if(isPostcode(zipcode) == false){
		alert("郵便番号は 000-0000 となるように半角数字で入力して下さい。");
		return false;
	}else{
		
		formparts["zipcode"] = zipcode;
		
		$.postJSON(
			url,
			formparts,
			function(data){
				if(data.result){
					if(data.result.postcode_prefecture_id){
						$(prefecture_box_id).val(data.result.postcode_prefecture_id);
					}
					if(data.result.postcode_city_kanji){
						
						var city_town = data.result.postcode_city_kanji;
						
						if(data.result.postcode_town_kanji){
							city_town = city_town + data.result.postcode_town_kanji;
						}
						$(address_box_id).val(city_town);
					}
				}else{
					alert("入力された郵便番号では住所を検索できませんでした。");
				}
			}
		);
		return true;
	}
}

//郵便番号が正しい形式かどうかの判別
function isPostcode( postcode ){
  if((postcode.match(/^\d{3}-?\d{4}$/))){
    return true;
  }else{
  	return false;
  }
}



/*=======================  初期設定  =======================*/

$(document).ready(function(){
	
	//ロールオーバーを実行可能にする
	initRollOverImages();
	
});

$(function(){
	
	var params = {height:"toggle", opacity:"toggle"};
	var second = 550;

	//カテゴリーアコーディオン絞り込み
	$("#categoryNavi01 .accordionBtn").toggle(function(){
		$(this).next("div").animate(params,second);
	}, function(){
		$(this).next("div").animate(params,second); 
	});
	
	
	//ジャンルアコーディオン絞り込み
	$("#genreNavi .accordionBtn").toggle(function(){
		$(this).next("div").animate(params,second); 
	}, function(){
		$(this).next("div").animate(params,second); 
	});
	
	
	//有料・無料アコーディオン絞り込み
	$("#feeNavi .accordionBtn").toggle(function(){
		$(this).next("div").animate(params,second); 
	}, function(){
		$(this).next("div").animate(params,second); 
	});
	
	
	//未就学児童アコーディオン絞り込み
	$("#childNavi .accordionBtn").toggle(function(){
		$(this).next("div").animate(params,second); 
	}, function(){
		$(this).next("div").animate(params,second); 
	});
	
	
	var params = {height:"toggle", opacity:"toggle"};
	var second = 400;
	
	//LeftNaviジャンルアコーディオン
	$("#genreList li .genreLeftBtn").toggle(function(){
		$(this).next("ul").animate(params,second); 
	}, function(){
		$(this).next("ul").animate(params,second); 
	});
	
	
	//トップカテゴリーアコーディオン
	$(".Calistbg dd").toggle(function(){
		$(this).parent().next("div").animate(params,second); 
	}, function(){
		$(this).parent().next("div").animate(params,second); 
	});
	
	
	//詳細検索表示
	$("#btnSearchDetail img").click(function(){
		$("#areaSearchConcertDetail").animate(params,second);
		$("#areaSearchPlaceDetail").animate(params,second);
	});
	
	//公演を検索
	$("#areaSearch #btnSearchConcert").click(function(){
		//ボタンの下を追加
		$("#btnSearchConcert").addClass("bgBtnSearchConcert");
		$("#btnSearchPlace").removeClass("bgBtnSearchPlace");
		$("#areaSearchPlace").hide();
		$("#areaSearchConcert").fadeIn(second);
		
	});
	
	//場所を検索
	$("#btnSearchPlace").click(function(){
		//ボタンの下を追加
		$("#btnSearchConcert").removeClass("bgBtnSearchConcert");
		$("#btnSearchPlace").addClass("bgBtnSearchPlace");
		$("#areaSearchConcert").hide();
		$("#areaSearchPlace").fadeIn(second);
		
	});
	
	//場所・エリア表示
	$("#btnSearchPlaceDetailArea").click(function(){
		$("#areaSearchPlaceDetailTown").hide();
		$("#areaSearchPlaceDetailArea").fadeIn(second);
		
	});

	//場所・市町村区表示
	$("#btnSearchPlaceDetailTown").click(function(){
		$("#areaSearchPlaceDetailArea").hide();
		$("#areaSearchPlaceDetailTown").fadeIn(second);
		
	});
	
	//公演・詳細閉じるボタン
	$('#concertClose01').click(function(){
		$("#areaSearchConcertDetail").animate(params,second);
		$("#areaSearchPlaceDetail").animate(params,second);
  });

	//場所・詳細エリア閉じるボタン
	$('#hallClose02').click(function(){
		$("#areaSearchConcertDetail").animate(params,second);
		$("#areaSearchPlaceDetail").animate(params,second);
  });

	//場所・詳細市区町村閉じるボタン
	$('#hallClose01').click(function(){
		$("#areaSearchConcertDetail").animate(params,second);
		$("#areaSearchPlaceDetail").animate(params,second);
  });

});


//*******************************************************************************
//　各種共通関数
//*******************************************************************************

//trim関数
function trim(str){
  return String(str).replace(/^[ 　]*/gim, "").replace(/[ 　]*$/gim, "");
}
String.prototype.trim = function (str){
  return String(str).replace(/^[ 　]*/gim, "").replace(/[ 　]*$/gim, "");
}

//POSTデータ送信時、JSONで値を返す
$.postJSON=function(url, data, callback){
    $.post(url, data, callback, "json");
};

// 全置換：全ての文字列 org を dest に置き換える  
String.prototype.replaceAll = function (org, dest){
  return this.split(org).join(dest);
}

