// common.js
// REQUIRES: prototype.js, jQuery.js

var sitePath = '/';

// *************************************************
// ここからjQuery

if(typeof jQuery != 'undefined') {
    jQuery.noConflict();

    jQuery(document).ready(function($) {
        if (jQuery('#shopDesc').size()) {
            jQuery('#shopDesc').mb_embedMovies();
        }

    	jQuery('#couponArea tr').each(function(){
    		maxheight = 0;
    		jQuery('.shop_item',jQuery(this)).each(function(){
    			thisheight = jQuery(this).height();
    			if(maxheight < thisheight) maxheight = thisheight;
    		});
    		jQuery('.shop_item',jQuery(this)).height(maxheight);
    		maxheight = 0;
    		jQuery('.shop_title',jQuery(this)).each(function(){
    			thisheight = jQuery(this).height();
    			if(maxheight < thisheight) maxheight = thisheight;
    		});
    		jQuery('.shop_title',jQuery(this)).height(maxheight);
    	});
    	
    	jQuery("#eventArea li:last").addClass("last");
    	jQuery("#couponArea tr:last").addClass("last");
    	jQuery("#partnerArea li:last").addClass("last");
    	
    	jQuery('#shop-search-box .search-query').formtips();
    	
    	jQuery("#allQlep").each(function(){
    		jQuery('.pref a', this).click(function(){
    			jQuery('.qlep-list').hide();
    			jQuery( jQuery(this).attr("href") ).show('500');
    			return false;
    		});
    	});
    	
    	$('#header-bar').each(function(){
	    	$('#wrapper')
	    		.append('<p id="">&nbsp;</p>')
	    		.css({
	    			'marginTop': '0px'
	    		});
	    	$('#shinsai')
	    		.css({
	    			'backgroundColor': '#FFFFFF',
	    			'borderBottom': '1px solid red',
	    			'left': 0,
	    			'position': 'absolute',
	    			'top': 0,
	    			'width': '100%',
	    			'paddingTop': '8px',
	    			'textAlign': 'center',
	    			'height': '20px',
	    			'fontWeight': 'bold'
	    		});
	    });
    });

}

// ここまでjQuery
// *************************************************


Event.observe( window, 'load', function(){
	tabSetUp();
	rotateSetUp();
	setRollOver();
	mouseoverMenuSet();
});


// *************************************************
// 汎用関数
// *************************************************

// eventSetter
var isIE = isIE = (document.documentElement.getAttribute("style") == document.documentElement.style);

function eventSetter(obj,eventType,func){
	if(isIE) {
		obj.setAttribute(eventType,new Function(func));
	} else {
		obj.setAttribute(eventType,func);
	}
}


// open new window
function newWindow(uri,width,height){
	var myWindow = window.open(uri, 'newWindow', 'resizable=yes,scrollbars=yes,status=0,width='+width+',height='+height);
	if (myWindow.focus!=null) {
		myWindow.focus();
	}
}


// Ajax recover UTF-8 (for Safari)
function recover_utf8(text){
	if(navigator.appVersion.indexOf('KHTML') > -1){
		var esc = escape(text);
		if(esc.indexOf('%u') < 0 && esc.indexOf('%') > -1){
			text = decodeURIComponent(esc);
		}
	}
	return text;
}


// input clear
function inputClear(id,txt){
	if ($(id).value == txt) $(id).value = '';
}



// *************************************************
// スタートページに設定
// *************************************************

function setStartPage(){
	var url = "http://" + location.hostname + "/";
	document.body.style.behavior = "url('#default#homepage')";
	document.body.setHomePage(url);
}



// *************************************************
// サイト移動
// *************************************************

function moveFormSet(path){
	var select = $("moveURL");
	
	
	var parts = path.split('?', 2);
	path = parts[0];
	
	
	// 各詳細ページからは検索ページへ遷移する
	if (path.match(/^(.*)\/detail(_[^\/]+)?\.php$/i)) {
		path = RegExp.$1 + '/search' + RegExp.$2 + '.php';
	}


	// ca(カテゴリコード)以外のGETパラメータは削除
	if (parts[1] && parts[1].match(/^(.+&)?(ca=[^&]+)(&.+)?$/i)) {
		path += '?' + RegExp.$2;
	}
	

	if(arrayPref){
		for(i=0; i<arrayPref.list.length; i++){

	
			// トップページへの遷移以外の場合、全国へのリンクは作成しない
			if (path != '/') {
				if(arrayPref.list[i].url.match(/^https?:\/\/www\.qlep\.com$/i)) {
					continue;
				}
				if(arrayPref.list[i].url.match(/^https?:\/\/www(\.v2)?\.qlep-pv\.com$/i)) {
					continue;
				}
				if(arrayPref.list[i].url.match(/^https?:\/\/www\.qlep-test\.com$/i)) {
					continue;
				}
				if(arrayPref.list[i].url.match(/^https?:\/\/demo\.qlep-test\.com$/i)) {
					continue;
				}
			}
			
			if (arrayPref.list[i].url == '___opt') {
				var optgroup = document.createElement('optgroup');
				optgroup.label = arrayPref.list[i].name;
				optgroup.innerHTML = arrayPref.list[i].name;
				select.appendChild(optgroup);
				
			} else {
				var option = document.createElement('option');
				option.value = arrayPref.list[i].url + path;
				option.innerHTML = arrayPref.list[i].name;
				select.appendChild(option);
			}
		}
	}

	Event.observe(
		select,
		'change',
		function(){
			if(select.value != ''){
				location.href = select.value;
			}
		}
	);
}



// *************************************************
// タブメニュー
// *************************************************

var TabObject = Class.create();
TabObject.prototype = {
	initialize: function(target,array){
		this.target = target;
		this.array = array;
		Event.observe(
			this.target,
			'click',
			this.onClick.bindAsEventListener(this)
		);
	},
	onClick: function(){
		for(i=0; i<this.array.length; i++){
			if(this.array[i]==this.target){
				$(this.array[i]).className = 'current';
				$(this.array[i]+"Box").style.display = 'block';
			}else{
				$(this.array[i]).className = '';
				$(this.array[i]+"Box").style.display = 'none';
			}
		}
	}
}

function tabSetUp(){
//	if($("qponArea")){
//		var list = ["qponNew","qponTop"];
//		for(i=0; i<list.length; i++){
//			new TabObject(list[i],list);
//		}
//	}
	if($("qblogArea")){
		var list = ["qblogNew","qblogTop"];
		for(i=0; i<list.length; i++){
			new TabObject(list[i],list);
		}
	}
	if($("needsShopArea")){
		var list = ["shopNew","shopTop"];
		for(i=0; i<list.length; i++){
			new TabObject(list[i],list);
		}
	}
}



// *************************************************
// エリアトップローテーション
// *************************************************

var RotateObject = Class.create();
RotateObject.prototype = {
	initialize: function(target){
		this.target = $(target);
		this.array = this.target.getElementsByClassName('rotate');
		if(this.array.length > 0){
			this.current = Math.floor(Math.random()*this.array.length);
			this.changeRotate(this.current);
			Event.observe(
				this.target.getElementsByClassName('rotate_back')[0],
				'click',
				this.rotateBack.bindAsEventListener(this)
			);
			Event.observe(
				this.target.getElementsByClassName('rotate_next')[0],
				'click',
				this.rotateNext.bindAsEventListener(this)
			);
		}
	},
	changeRotate: function(num){
		for(i=0; i<this.array.length; i++){
			if(i == num){
				this.array[i].style.display = 'block';
			}else{
				this.array[i].style.display = 'none';
			}
		}
		this.current = num;
	},
	rotateBack: function(){
		if(this.current == 0){
			this.changeRotate(this.array.length - 1);
		}else{
			this.changeRotate(this.current - 1);
		}
	},
	rotateNext: function(){
		if((this.current+1) == this.array.length){
			this.changeRotate(0);
		}else{
			this.changeRotate(this.current + 1);
		}
	}
}

function rotateSetUp(){
	if($("spAreaB")){
		new RotateObject("spAreaB");
	}
}



// *************************************************
// ソーシャルブックマークメニュー
// *************************************************

var MouseoverMenu = Class.create();
MouseoverMenu.prototype = {
	initialize: function(area,target){
		this.area = area
		this.target = target;
		Event.observe(
			this.area,
			'mouseover',
			this.onMouseover.bindAsEventListener(this)
		);
		Event.observe(
			this.area,
			'mouseout',
			this.onMouseout.bindAsEventListener(this)
		);
	},
	onMouseover: function(){
		if($(this.target)){
			$(this.target).style.display = 'block';
		}
	},
	onMouseout: function(){
		if($(this.target)){
			$(this.target).style.display = 'none';
		}
	}
}

function mouseoverMenuSet(){
	if($('bookmarkMenu')){
		new MouseoverMenu('bookmarkMenu','bookmarkList');
	}
}



// *************************************************
// 画像ロールオーバー
// *************************************************

var ImgRollOver = Class.create();
ImgRollOver.prototype = {
	initialize: function(img,type){
		this.img = img;
		this.outImgSrc = img.src;
		var imgSrcArray = img.src.split('.');
		var fileType = imgSrcArray[imgSrcArray.length - 1];
		this.overImgSrc = img.src.split('.' + fileType)[0] + '_o.' + fileType;
		if(type == "img"){
			Event.observe(
				img.parentNode,
				'mouseover',
				this.mouseOver.bindAsEventListener(this)
			);
			Event.observe(
				img.parentNode,
				'mouseout',
				this.mouseOut.bindAsEventListener(this)
			);
		}else if(type == "input"){
			Event.observe(
				img,
				'mouseover',
				this.mouseOver.bindAsEventListener(this)
			);
			Event.observe(
				img,
				'mouseout',
				this.mouseOut.bindAsEventListener(this)
			);
		}
		var preImage = new Image();
		preImage.src = this.overImgSrc;
	},
	mouseOver: function(){
		this.img.src = this.overImgSrc;
	},
	mouseOut: function(){
		this.img.src = this.outImgSrc;
	}
}

function setRollOver(){
	var imgs = document.getElementsByTagName('img');
	var inputs = document.getElementsByTagName('input');
	var preImages = new Array();
	var preInputs = new Array();
	if(imgs){
		for(var i = 0,num = imgs.length;i < num;i++){
			img = imgs[i];
			if(Element.hasClassName(img, "roll")){
				new ImgRollOver(img,"img");
			}
		}
	}
	if(inputs){
		for(var i = 0,num = inputs.length;i < num;i++){
			input = inputs[i];
			if(input.type == 'image' && Element.hasClassName(input, "roll")){
				new ImgRollOver(input,"input");
			}
		}
	}
}



// *************************************************
// 旧スクリプトからの引継ぎ
// *************************************************

// ウィンドウを閉じる
function closeWindow(wnd) {
	if (!sbwin_closed(wnd)) {
		wnd.close();
		wnd = null;
	}
}

// 子ウィンドウの有無確認
function sbwin_closed(winVar) {
    var ua = navigator.userAgent;
    if (!!winVar) {
        if ((ua.indexOf('Gecko')!=-1 || ua.indexOf('MSIE 4')!=-1) && ua.indexOf('Win')!=-1) {
            return winVar.closed;
        } else {
		    return typeof winVar.document != 'object';
        }
    } else {
	    return true;
    }
}

// 地図
var objSubWindow;

function sbwin_open(url, w, h, scrollFlg) {
  var nm = 'shopmap';
  // 地図の画面をデフォルトの大きさとする
  if(w == null) {
    w = 730;
  }
  if(h == null) {
    h = 600;
  }
  if(scrollFlg == null) {
    scrollFlg = "no";
  }
  var x = 0;
  var y = 0;

  var size = 'left='+x+',top='+y+',width='+w+',height='+h+',scrollbars='+scrollFlg+',resizable=yes';
  if(sbwin_closed(objSubWindow)) {
    objSubWindow = window.open(url, nm, size);
  } else {
    objSubWindow.location.href = url;
  }
  objSubWindow.focus();
}

// 郵便番号から地域コード
function zipwin(url,zip_cd,areaObj,shkObj,addressObj,flag) {
  var nm = 'zipwindow';
  if(zip_cd==""){
  	alert("郵便番号を入力してください");
  	return false;
  }else if(zip_cd.match(/[^0-9]/)){
  	alert("郵便番号は半角数字で入力してください");
  	return false;
   }else if(zip_cd.length<7){
  	alert("郵便番号を7桁で入力してください");
  	return false;
  }

  url=url+"?zip_cd="+zip_cd;
  url=url+"&form_nm="+addressObj.form.name;
  if(areaObj){
	  url=url+"&area_input_nm="+areaObj.name;
  }
  if(shkObj){
	  url=url+"&shk_input_nm="+shkObj.name;
  }
  url=url+"&address_input_nm="+addressObj.name;
  url=url+"&flag="+flag;
  w = 400;
    h = 250;
    scrollFlg = "yes";
  var x = 0;
  var y = 0;

  var size = 'left='+x+',top='+y+',width='+w+',height='+h+',scrollbars='+scrollFlg+',resizable=no,status=no,toolbar=no,menubar=1';

    objSubWindow=window.open(url, nm, size);
/*
  if(sbwin_closed(objSubWindow)) {
    objSubWindow = window.open(url, nm, size);
  } else {
    objSubWindow.location.href = url;
  }
*/

  objSubWindow.focus();
}

// お詫び
function apolo(){
	if(document.cookie.match('apologize')) {
		return false;
	}
	document.cookie="apologize";
	w = 450;
	h = 550;
	scrollFlg = "no";
	var x = 0;
	var y = 0;
	var size = 'left='+x+',top='+y+',width='+w+',height='+h+',scrollbars='+scrollFlg+',resizable=yes';
	url="/qlep_html/apologize2.html";
	objSubWindow = window.open(url, "apolo", size);
	return true;
}

// クーポン
var hCoupon;

function openCoupon(url) {
  var w = 650, h = 600;
  var x = 0, y = 0;
  var size = 'left='+x+',top='+y+',width='+w+',height='+h+',scrollbars=yes,resizable=yes,toolbar=yes,menubar=yes';
  if(sbwin_closed(hCoupon)) {
    hCoupon = window.open(url, 'coupon', size);
  } else {
    hCoupon.location.href = url;
  }
  hCoupon.focus();
}

// チラシ一覧
var hFlier;

function openFlier(url) {
  var w = 650, h = 600;
  var x = 0, y = 0;
  var size = 'left='+x+',top='+y+',width='+w+',height='+h+',scrollbars=yes,resizable=yes,toolbar=yes,menubar=yes';
  if(sbwin_closed(hFlier)) {
    hFlier = window.open(url, 'coupon', size);
  } else {
    hFlier.location.href = url;
  }
  hFlier.focus();
}

// 営業用PV
var hPV;

function openPV() {
  var url = "/stream/stream.html";
  var w = 400, h = 400;
  var x = 0, y = 0;
  var size = 'left='+x+',top='+y+',width='+w+',height='+h+',scrollbars=yes,resizable=yes';
  if(sbwin_closed(hPV)) {
    hPV = window.open(url, 'PV', size);
  } else {
    hPV.location.href = url;
  }
  hPV.focus();
}


// 店舗詳細（プレビュー）
var hPreShop;

function openPreShop(url) {
  var w = 650, h = 600;
  var x = 0, y = 0;
  var size = 'left='+x+',top='+y+',width='+w+',height='+h+',scrollbars=yes,resizable=yes';
  if(sbwin_closed(hPreShop)) {
    hPreShop = window.open(url, 'preshop', size);
  } else {
    hPreShop.location.href = url;
  }
  hPreShop.focus();
}

// 会員カテゴリ選択
var hSelMemCat;

function openSelMemCat(mem_id) {
  var url = "/member/sel_mem_cat.php";
  if (mem_id) url += "?mem_id="+mem_id;
  var w = 660, h = 600;
  var x = 0, y = 0;
  var size = 'left='+x+',top='+y+',width='+w+',height='+h+',scrollbars=yes,resizable=yes';
  if(sbwin_closed(hSelMemCat)) {
    hSelMemCat = window.open(url, 'SelMemCat', size);
  } else {
    hSelMemCat.location.href = url;
  }
  hSelMemCat.focus();
}


// マイページお気に入り店舗詳細ページ移動
if (!window['submit_page_link'] || typeof(window['submit_page_link']) != 'function') {
window['submit_page_link'] = function(page){
//function submit_page_link(page){
  var Frm = document.change_page;
  Frm.intPage.value = page;
  Frm.submit();
};
}
