$("query_rate").value = "输入国家地区或下拉选择";
var content_slide = false;
new Effect.SlideUp('query_rate_select',{ duration: 0.0});	
Event.observe($("query_rate"), "focus", function(){
	if($("query_rate").value == "输入国家地区或下拉选择")
		$("query_rate").value = "";
	$("query_rate").style.color = "#000";
	$("query_rate_select").style.display = 'none';
});
 
Event.observe($("close"), "click", function(){
	$("query_rate").value = "";
	$("query_rate_suggest").style.display = 'none';
	$("query_rate_result").style.display = 'none';
	if(content_slide){
		new Effect.SlideDown('rateContent',{ duration: 0.5});	
		content_slide = false;
	}
	$("close").style.display = 'none';
	clearInput();
});
 
Event.observe($("query_rate"), "blur", clearInput);
function clearInput(){
	if($("query_rate").value == ""){
		$("query_rate").value = "输入国家地区或下拉选择";
		$('query_rate_suggest').style.display = 'none';
		$("query_rate").style.color = "#ccc";
		Searcher.lastKey = null;
	}
}
var query_rate_select_slide = false;
 
Searcher = {
	isSlide:false,
	eventHandler:null,
	data:null,
	lastKey:null,
	number:null,
	slideUp:function(){
		if(this.isSlide){
			new Effect.SlideUp('query_rate_select',{ duration: 0.5});
			$('select').style.background = 'url(/images/down_arrow.png)';
			this.isSlide = false;
			if(this.eventHandler!=null){
				Event.stopObserving(document, "click", this._bindCloseEvent.bind(this));
				this.eventHandler = null;
			}
			var ele = $('query_rate_select').getElementsByTagName('ul')[0];	
			ele.innerHTML = '';
		}
	},
	slideDown:function(){		
		if(!this.isSlide){
			new Effect.SlideDown('query_rate_select',{ duration: 0.5});
			$('select').style.background = 'url(/images/up_arrow.png)';
			this.isSlide = true;
			if(this.eventHandler == null)
				Event.observe(document, "click", this._bindCloseEvent.bind(this));	
			this.display('A');		
		}
	},
	click:function(){
		if(!this.isSlide){
			this.slideDown();
		}else{
			this.slideUp();
		}
	},
	_checkClose:function(){	
		if (document.all) { // grab the x-y pos.s if browser is IE
			   tempX = event.clientX + document.body.scrollLeft
			   tempY = event.clientY + document.body.scrollTop
			 } else {  // grab the x-y pos.s if browser is NS
			   tempX = e.pageX
			   tempY = e.pageY
			 }  
			var r = Position.within($('query_rate_select'),tempX,tempY) || Position.within($('query_rate_div'),tempX,tempY);
			return !r;
	},
	_bindCloseEvent:function(e){
		if(this.eventHandler!=null && this._checkClose()){
			this.slideUp();
		}
		this.eventHandler = e;
	},
	
	loadData:function(){
		if(this.data == null){
			var url = '/getRateData.json'; 
			var myAjax = new Ajax.Request( 
		         url, 
		         {method: 'get' ,asynchronous:false, onComplete: function(res){
					i = eval('(' + res.responseText + ')');
					this.data = i.result;
		         	}.bind(this)
		         }
		    ); 
		}
		
	},
 
	display:function(s){
		this.loadData();	
		var ele = $('query_rate_select').getElementsByTagName('ul')[0];	
		ele.innerHTML = '';
		this.data.each(function(v){
			if(s == v.startwith){
				var li = document.createElement('li');
				var a = document.createElement('a');
				a.innerHTML = v.memo;
				a.href="javascript:void(0);";
				Event.observe(a,"click", function(){$('query_rate').value=v.memo;Searcher.rateSearch(v);$('query_rate_suggest').style.display='none';}.bind(this));
				li.appendChild(a);				
				ele.appendChild(li);
			}
		});	
	},
 
	searchNumber:function(){
		var url = '/bill/fee.json'; 
		var pars = 'number='+this.number; 
		var myAjax = new Ajax.Request( 
	         url, 
	         {method: 'post' ,asynchronous:false, parameters: pars, onComplete: function(res){
				i = eval('(' + res.responseText + ')');
				if(i.rate)
					this.displayRate('[+'+ i.rate.code + ']' +i.rate.memo + ':<span class="num">' + i.rate.rate/100 + '</span>元/分钟');
				else
					this.displayRate('未能查到您的信息!');
	         	}.bind(this)
	         }
	    ); 
	},
	
	suggest:function(){
		this.loadData();
		var key = $('query_rate').value;
		var number;
		if(key == ""){
			$('close').style.display = 'none';
			$('query_rate_suggest').style.display = 'none';
			return;
		}else if(/^[0-9]*[1-9][0-9]*$/.test(key)){
			this.number = key;
		}else{
			$('close').style.display = 'inline';
		}
		var ele = $('query_rate_suggest').getElementsByTagName('ul')[0];
		ele.innerHTML = '';
		if(this.number == null){
			this.data.each(function(v){
				if(v.memo && v.memo.indexOf(key)>=0){
					var li = document.createElement('li');
					var a = document.createElement('a');
					a.innerHTML = v.memo;
					a.href="javascript:void(0);";
					Event.observe(a,"click", function(){$('query_rate').value=v.memo;Searcher.rateSearch(v);$('query_rate_suggest').style.display='none';}.bind(this));
					li.appendChild(a);
					ele.appendChild(li);
				}
				$('query_rate_suggest').style.top = $('query_rate_div').offsetTop + 30 + 'px';
				$('query_rate_suggest').style.left = $('query_rate_div').offsetLeft;
				$('query_rate_suggest').style.display = 'block';
			});
			if(ele.innerHTML == '') ele.innerHTML ='无法匹配信息';
		}
	},
	rateSearch:function(r){		
		this.displayRate(r.memo + ':<span class="num">' + r.rate/100 + '</span>元/分钟' );
	},
	displayRate:function(s){
		if(!content_slide){
			new Effect.SlideUp('rateContent',{duration: 0.5});
			content_slide = true;
		}
		$('close').style.display = 'inline';
		
		$('query_rate_result').innerHTML =  s;
		$('query_rate_select').style.display = 'none';
		setTimeout(function(){
			$('query_rate_result').style.display = 'block';
		},495);
	}
}

