Ajax.xRequest = Class.create(Ajax.Request, {
	initialize: function($super, url, options) {
		options = options || {};
		var onSuccess = options.onSuccess || Prototype.K;
		if(!Ajax.xRequest.cache[url] || options.reload){
			options.onSuccess = function(transport) {
				Ajax.xRequest.cache[url] = transport;
				onSuccess(transport);
			}
			$super(url, options);
		}else{
			var transport = Ajax.xRequest.cache[url];
			this.dispatch.defer();
			[options.onLoading,onSuccess, options.onComplete].each(function(m) {m && m(transport) });
		}
	},
	dispatch: function() {
		Ajax.Responders.dispatch('onComplete', null);
	}
});
Ajax.xUpdater = Class.create(Ajax.Request, {
	initialize: function($super, id, url, options) {
		options = options || {};
		var onSuccess = options.onSuccess || Prototype.K;
		if(!Ajax.xRequest.cache[url] || options.reload){
			options.onSuccess = function(transport) {
				Ajax.xRequest.cache[url] = transport;
		$(id).update(transport.responseText);
				onSuccess(transport);
			}
			$super(url, options);
		}else{
			var transport = Ajax.xRequest.cache[url];
			$(id).update(transport.responseText);
			this.dispatch.defer();
			[options.onLoading,onSuccess, options.onComplete].each(function(m) {m && m(transport) });
		}
	},
	dispatch: function() {
		Ajax.Responders.dispatch('onComplete', null);
	}
});
Ajax.xRequest.cache = {};

function P_showShadow() {
	G_showShadow(function(){
		$('G_shadow').observe('click',function(){
			if($('nav2').style.display == ''){
				$('nav2').blindUp({
					duration: 0.3
				});
				G_closeShadow();
			};
		});
	});
};
function P_chg_customize(){
	P_showShadow();
	$('nav2').blindDown({duration: 0.5});
};
function P_country_change(country_id,city_id,type_id){
	var country = $(country_id);
	var city = $(city_id);
	var type = '';
	if(type_id) type = type_id;
	new Ajax.xUpdater(city_id, '/ajaxs/search_city/'+$F(country)+'/'+type,{
			onLoading:function(){$('ajaxLoadingDiv').show();},
			onComplete:function(){
				var div = city.up('div');
				var _div  = div.down('div');
				_div.remove();
				initSelect(city,true);
				$('ajaxLoadingDiv').hide();
			}
	});
};
function P_goto_customize(){
	if(!$F('CustomizeCountryId').empty() && !$F('CustomizeCityId').empty())
		window.location = '/customize/index?a='+$F('CustomizeCountryId')+'&b='+$F('CustomizeCityId');
};
function P_goto_worldwide(a,b,c){
	if(!$F(a).empty() && !$F(b).empty())
		window.location = '/worldwide/show?a='+$F(a)+'&b='+$F(b)+'&c='+c;
}
function P_search_spaces(z,a,b,c,d){
	var div_main_dumascroll = $$('.div_main_dumascroll')[0];
	$(div_main_dumascroll).hide();
	new Ajax.xUpdater('div_right', '/ajaxs/search_spaces/'+z+'/'+a+'/'+b+'/'+c+'/'+d,{
			evalScripts:true,
			onLoading:function(){$('ajaxLoadingDiv').show();},
			onComplete:function(){
				$('ajaxLoadingDiv').hide();
			}
	});
};
function P_show_div_main_dumascroll(a_tag,space_id){
	var img = $(a_tag).down('img');
	
	$$('.grand_list a').each(function(_a_tag){
		var _img_tag = $(_a_tag).down('img');
		if(_a_tag == a_tag){
			_a_tag.addClassName('current');
			_img_tag.addClassName('current');
			_img_tag.src = '/images/icon_2_2.gif';
		}else{
			_a_tag.removeClassName('current');
			_img_tag.removeClassName('current');
			_img_tag.src = '/images/icon_2.gif';
		}
	});
	
	var realOffset = Position.realOffset(img);
	var viewport = img.viewportOffset();
	var body_height = $(document.body).style.height;
	var left = (viewport.left+20);
	var top = viewport.top+realOffset.top;
//	if(top > body_height - 1050){
//		top = body_height - 1050;
//	}
	var div_main_dumascroll = $$('.div_main_dumascroll')[0];
	$(div_main_dumascroll).removeAttribute('id');
	$(div_main_dumascroll).update(
		'<a class="close" href="javascript:;" onclick="P_close_div_main_dumascroll(this)"></a>'+
		'<img class="load" src="/images/loading.gif" />'
	);
	if(div_main_dumascroll.style.display == 'none'){
		$(div_main_dumascroll).setStyle({
			left:left+'px',
			top:top+'px'
		});
		P_show_div_main_dumascroll_end(div_main_dumascroll,space_id);
	}else{
		new Effect.Move(div_main_dumascroll,{
			x: left, y: top, mode: 'absolute',
			afterFinish:function(){
				P_show_div_main_dumascroll_end(div_main_dumascroll,space_id);
			}
		});
	}
	
};
function P_show_div_main_dumascroll_end(div_main_dumascroll,space_id){
	new Effect.Appear(div_main_dumascroll);
	new Ajax.xUpdater(div_main_dumascroll, '/ajaxs/search_spaces_detail/'+space_id,{
			onLoading:function(){$('ajaxLoadingDiv').show();},
			onComplete:function(){
				window.duma.BeautifyScrollBar.init();
				$('ajaxLoadingDiv').hide();
			}
	});
};
function P_close_div_main_dumascroll(a_tag){
	var div = $(a_tag).up('div');
	if(!div.hasClassName('div_main_dumascroll')){
		div = $(div).up('div');
	}
	new Effect.SwitchOff(div,{
		afterFinish:function(){
			$$('.grand_list a').each(function(_a_tag){
				var _img_tag = $(_a_tag).down('img');
				_a_tag.removeClassName('current');
				_img_tag.removeClassName('current');
				_img_tag.src = '/images/icon_2.gif';
			});
		}
	});
};

