function articleSearch(){}
articleSearch.prototype = {
	TAB : String.fromCharCode(9),
	LF : String.fromCharCode(10),
	presets : {},
	fm : new Object(),
	getData : function(url, success, error, data){
		var method = (data)? 'POST' : 'GET'; 
		$.ajax({
			type: method,
			url: url,
			data: data,
			dataType: 'json',
			cache: false,
			success: function(json){
				var stat = json.shift();
				if (stat.code != 0){
					alert(stat.errMsg);
					return false;
				}
	  			success(json);
			},
			error: function(){
				alert('サーバとの通信が出来ませんでした。');
				if (error != undefined) error();
			}
		});
	},
	getInfo: function(d){
		AS.getData('/getInfo.php', function(json){
			if (json[0].favCnt != undefined) $('a#article_bookmark_count').html(json[0].favCnt+'件');
			if (json[0].chkCnt != undefined) $('a#article_history_count').html(json[0].chkCnt+'件');
		}, null, d);
	},
	preset: function(k, v){
		if(k=='w') v=decodeURIComponent(v);
		this.presets[k] = v;
	},
	setPresets: function(){
		var AS = this;
		for(i in AS.presets){
			$("[name='"+i+"']", AS.fm).each(function(){
				AS.setVals($(this), AS.presets[i]);
			});
		}
		return false;
	},
	setVals: function(obj, val){
		if (val == undefined) return false;
		switch(obj.attr('type')){
			case 'radio':
			case 'checkbox':
				if (obj.attr('type') == 'radio'){
					var chk = 0;
					obj.each(function(){
						if (this.value == val) {
							chk++;
							return false;
						}
					});
					if (chk == 0) val = '';
				}
				var val = val.split(',');
			break;
			case 'hidden':
				return false;
			break;
		}
		obj.val(val);
	},
	getSel: function(jObj, m, k){
		if (jObj.val() == undefined) return false;
		var AS = this;
		if (k == undefined) k="";
		AS.getData('/getMaster/'+m+'/'+k, function(json){
			jObj.each(function(){
				this.options.length = 1;
				var n = this.name;
				for(i in json){
					this.options[this.options.length] = new Option(json[i].name, json[i].id);
				}
				if (AS.presets[n] && !$(this).hasClass('line_side')){
					$(this).val(AS.presets[n]);
					$(this).change();
				}
			});
		});
	},
	send: function(p){
		var str1 = new Array();
		str1 = AS.makeStrFromAry(p, 'feat[]', str1);
		str1 = AS.makeStrFromAry(p, 'aid[]', str1);
		if (p['lid'] != undefined) {
			str1.push('lid='+p['lid']);
		}
		if (p['type'] == 'routemap'){
			str1 = AS.makeStrFromAry(p, 'sts[]', str1);
			if (p['sid[]'] != undefined){
				str1 = AS.makeStrFromAry(p, 'lid[]', str1);
				str1 = AS.makeStrFromAry(p, 'sid[]', str1);
			}
		}else if (p['type'] == 'line'){
			if (p['ssid'] != undefined) {
				str1.push('ssid='+p['ssid']);
			}
			if (p['esid'] != undefined) {
				str1.push('esid='+p['esid']);
			}
		}else{
			if (p['sid'] != undefined) {
				str1.push('sid='+p['sid']);
			}
		}
		var str2 = new Array();
		str2 = AS.makeStrFromAry(p, 'at[]', str2);
		var str3 = new Array();
		str3 = AS.makeStrFromRange(p, 'rp', str3);
		if (str3 === false) return false;
		if (p['mf'] != undefined && p['mf']) {
			str3.push('mf='+p['mf']);
		}
		if (p['dp'] != undefined && p['dp']) {
			str3.push('dp='+p['dp']);
		}
		if (p['km'] != undefined && p['km']) {
			str3.push('km='+p['km']);
		}
		var str4 = new Array();
		str4 = AS.makeStrFromAry(p, 'cp1[]', str4);
		var str5 = new Array();
		str5 = AS.makeStrFromRange(p, 'ca', str5);
		if (str5 === false) return false;
		var str6 = new Array();
		if (p['cy'] != undefined && p['cy']) {
			str6.push('cy='+p['cy']);
		}
		if (p['ey'] != undefined && p['ey']) {
			str6.push('ey='+p['ey']);
		}
		if (p['wt'] != undefined) {
			str6.push('wt='+p['wt']);
		}
		str6 = AS.makeStrFromAry(p, 'mv[]', str6);
		var str7 = new Array();
		str7 = AS.makeStrFromAry(p, 'tag[]', str7);
		if (p['autolock'] != undefined && p['autolock']) {
			str7.push('autolock='+p['autolock']);
		}
		if (p['ev'] != undefined && p['ev']) {
			str7.push('ev='+p['ev']);
		}
		if (p['net'] != undefined && p['net']) {
			str7.push('net='+p['net']);
		}
		if (p['aiacon'] != undefined && p['aiacon']) {
			str7.push('aiacon='+p['aiacon']);
		}
		str7 = AS.makeStrFromAry(p, 'stove[]', str7);
		if (p['stove_num'] != undefined && p['stove_num']) {
			str7.push('stove_num='+p['stove_num']);
		}
		if (p['deliverybox'] != undefined && p['deliverybox']) {
			str7.push('deliverybox='+p['deliverybox']);
		}
		str7 = AS.makeStrFromAry(p, 'satellite[]', str7);
		if (p['catv'] != undefined && p['catv']) {
			str7.push('catv='+p['catv']);
		}
		if (p['parking'] != undefined && p['parking']) {
			str7.push('parking='+p['parking']);
		}
		if (p['pet'] != undefined && p['pet']) {
			str7.push('pet='+p['pet']);
		}
		if (p['article_area'] != undefined && p['article_area']) {
			str7.push('article_area='+p['article_area']);
		}
		if (p['lighting'] != undefined && p['lighting']) {
			str7.push('lighting='+p['lighting']);
		}
		if (p['room_floor'] != undefined && p['room_floor']) {
			str7.push('room_floor='+p['room_floor']);
		}
		var str8 = new Array();
		if (p['w'] != undefined && p['w']!='キーワードを入力してください。') {
			var w = p['w'];
			str8.push('w='+w);
		}
		var str = new Array();
		if(str1.length) str.push(str1.join('&'));
		if(str2.length) str.push(str2.join('&'));
		if(str3.length) str.push(str3.join('&'));
		if(str4.length) str.push(str4.join('&'));
		if(str5.length) str.push(str5.join('&'));
		if(str6.length) str.push(str6.join('&'));
		if(str7.length) str.push(str7.join('&'));
		if(str8.length) str.push(str8.join('&'));
		str = str.join('/');
		if (str == '') str = '-';
		/*
		if (str == ''){
			alert('検索項目を選択してください。');
			return false;
		}
		*/
		var url = '/search';
		var type = (p.type) ? p.type : 'area';
		var view = (p.view) ? p.view : 'list';
		if (type != 'area'){
			url += '/'+type;
		}
		url += '/'+view+'/'+str+'/1';
		location.href = url;
	},
	makeStrFromAry: function(p, n, str){
		var regex = /^--+/;   
		if (p[n] != undefined){
			for(var i=0;i<p[n].length;i++){
				var val=p[n][i];
				if(val.match(regex)) return false;
				str.push(n+'='+p[n][i]);
			}
		}
		return str;
	},
	makeStrFromRange: function(p, n, str){
		if (parseInt(p['max'+n], 10) < parseInt(p['min'+n], 10)){
			alert('最小値を最大値より大きくすることは出来ません。');
			return false;
		}
		if ((p['min'+n] != undefined && p['min'+n] != '')
			|| (p['max'+n] != undefined && p['max'+n] != '')){
			if (p['min'+n] != undefined && p['min'+n] != ''){
				str.push('min'+n+'='+p['min'+n]);
			}
			if (p['max'+n] != undefined && p['max'+n] != ''){
				str.push('max'+n+'='+p['max'+n]);
			}
		}
		return str;
	},
	getVal: function(fm){
		var p = new Object();
		$('select', fm).each(function(){
			p = AS.pickVal(p, this);
		});
		$('input', fm).each(function(){
			p = AS.pickVal(p, this);
		});
		return p;
	},
	pickVal: function(p, o){
		switch($(o).attr('type')){
			case 'radio':
			case 'checkbox':
				if (!o.checked) return p;
			break;
		}
		var name = o.name;
		var val = $(o).val();
		if (name == 'aid[]' && val.match(/^d\d+/)){
			name = 'did[]';
			val = val.replace(/^d/, '');
		}
		if (!val) return p;
		if (name.lastIndexOf('[]') != -1){
			if (p[name] == undefined) p[name] = new Array();
			p[name].push(val);
		}else{
			p[name] = val;
		}
		return p;
	},
	addBookmark: function(ids, callback){
		AS.getData('/bookmark/bookmark.php', function(json){
			if (json[0].favCnt != undefined){	
				var bfavCnt=$('a#article_bookmark_count').html();
				$('a#article_bookmark_count').html(json[0].favCnt+'件');
				var afavCnt=$('a#article_bookmark_count').html();
				if (json[0].flg == 0) alert('お気に入りに追加しました');
				if (json[0].flg == 1) alert('お気に入りに登録されています');
			}
			if (callback != undefined) callback();
		}, undefined, {
			mode: 'add',
			'id[]': ids
		});
	}
}
var AS = new articleSearch();
$(document).ready(function(){
	// 現在のURL取得
	var url = location.href;
	// 「http://www」ではじまっていなければ、プロトコル部分にwwwに書き加え
	if ( !url.match(/^[^:]+:\/\/www/) && location.protocol != 'https:' && !url.match(/mother\.co\.jp/) ) {
		url = url.replace( /^[^:]+:\/\//, location.protocol+'//www.' );
		location.href = url;
		return false;
	}
	if (typeof window['menuID'] != 'undefined') {
		var num = menuID.replace(/^[a-zA-Z]*([\d]+)$/, "$1");
		$('div#gnavi li#'+menuID+' a:first').html('<img src="/img/cmn_gnav'+num+'_on.gif" height="45">');
	}
	AS.getInfo();
	AS.fm = $('form.preset');
	AS.getSel($("select[name='lid']"), 'lid');
	$($("select[name='lid']")).change(function(){
		var g = '';
		var c = $(this).attr('class').split(' ');
		for(var i=0;i<c.length;i++){
			if (c[i].indexOf('line_') == 0){
				g = c[i];
				break;
			}
		}
		if (g == '') return false;
		AS.getSel($("select[name$='sid']."+g+", select[name$='ssid']."+g+", select[name$='esid']."+g), 'sid', $(this).val());
	});
	$("form.articleSearch").submit(function(){
		var p = AS.getVal(this);
		p.type = $("input[name='type']", this).val();
		p.view = $("input[name='view']", this).val();
		AS.send(p);
		return false;
	});
	$("a.article_bookmark").click(function(){
		bkWin = window.open('/bookmark/index.html','bookmark','scrollbars=yes,resizable=yes,width=970,height=600');
		bkWin.focus();
		this.blur();
		return false;
	});
	$("a.add_bookmark").click(function(){
		var ids = this.href.replace(/^.*#/, '');
		AS.addBookmark([ids]);
		this.blur();
		return false;
	});
	$("a.article_history").click(function(){
		rcWin = window.open('/history/index.php','history','scrollbars=yes,resizable=yes,width=970,height=600');
		rcWin.focus();
		this.blur();
		return false;
	});
	$('form.search_form').submit(function(){
		var aid = $("select[name='aid']", this).val();
		var type = $("input[name='type']", this).val();
		
		var regex = /^--+/;   
		if(!aid.match(regex)){
			if(type=='market'){
				location.href='/search/market.html#'+aid+',0';
			}else{
				location.href='/search/'+type+'/'+aid;
			}
		}
		return false;
	});
});
