/* Tabs Model */
function TabModel(idx)
{
	this.idx	=	idx;
	this.tabs	=	'';
	this.conf	=	{
		media_convert:{
			select:function(event,ui){
				try {
					media.set_convert_mode(ui.index);
				} catch (e) {
				}
			}
		},
		normal:{
		}
	};

	this.init = function (mode) {
		this.tabs = $(this.idx+" > ul");
		this.tabs.tabs(this.conf[mode]);
	};

	this.select = function(index) {
		this.tabs.tabs('enable', index);
		if (this.tabs.data('selected.tabs') != index) {
			this.tabs.tabs('select', index);
		}
	};

	this.selectOnly = function(index) {
		for (var i = 0;i < this.tabs.tabs('length'); i++) {
			if ( i == index ) {
				this.tabs.tabs('enable', index);
				if (this.tabs.data('selected.tabs') != index) {
					this.tabs.tabs('select', index);
				}
			} else {
				this.tabs.tabs('disable', i);
			}
		}
	};

	this.disable = function(index) {
		this.tabs.tabs('disable', index);
	};

	this.enable = function(index) {
		this.tabs.tabs('enable', index);
	};

	this.add = function(url, label) {
		this.tabs.tabs('add', null, label);

	};

	this.destroy = function() {
		this.tabs.tabs('destroy');
	};
}

function newWin(path,w,h,r) {
		window.open(path,"",'height='+h+',width='+w+',left='+((screen.width - w) / 2)+',top='+((screen.height - h) / 2)+',resizable='+r+',location=no,scrollbars=no,menubars=no,toolbars=no');
}
var CategoryModel = function() {

	var gate = conf.base_url + 'gate.php';

	var getFrontSubCategoryList = function (obj) {
		if (obj.id == undefined || obj.id == '') return;
		obj.target.attr("disabled", "disabled");
		$.post(gate, {module:"category", action:"get_front_category_list", parent:obj.id}, function (data) {
			obj.target.empty().append(data.list).show();
			obj.target.removeAttr("disabled");
		},
		"json"
		);
	};

	var getFrontModelList = function (obj) {
		obj.target.attr("disabled", "disabled");
		$.post(gate, {module:"model", action:"get_front_model_list", brand_id:obj.id}, function (data) {
			obj.target.empty().append(data.list);
			obj.target.removeAttr("disabled");
		},
		"json"
		);
	}
	var getFrontModList = function (_in) {
		_in.target.attr("disabled", "disabled");
		
		var obj = {module:"model", action:"get_front_mod_list", brand_id:_in.brand_id};
		if (_in.model_id != undefined) {
			obj.model_id = _in.model_id;
		}
		$.post(gate, obj, function (data) {
			_in.target.empty().append(data.list);
			_in.target.removeAttr("disabled");
		},"json");
	}
	
	$("#tiny_brand").change(function(){
		getFrontModelList({id:$(this).val(), target:$("#tiny_model")});
		getFrontModList({brand_id:$(this).val(), target:$("#tiny_mod")});
	});
	$("#tiny_model").change(function(){
		getFrontModList({brand_id:$("#tiny_brand").val(), model_id: $(this).val(), target:$("#tiny_mod")});
	});
	$("#tiny_category").change(function(){
		getFrontSubCategoryList({id:$(this).val(), target:$("#tiny_subcategory")});
	});
	$("#search_category").change(function(){
		getFrontSubCategoryList({id:$(this).val(), target:$("#search_sub_category")});
	});
	$("#search_brand").change(function(){
		getFrontModelList({id:$(this).val(), target:$("#search_model")});
		getFrontModList({brand_id:$(this).val(), target:$("#search_mod")});
		
	});
	$("#search_model").change(function(){
		getFrontModList({brand_id:$("#brand").val(), model_id: $(this).val(), target:$("#search_mod")});
	});
}
Review = {
	hotel_id:0,
	fi:'',
	load:0,
	form:function(fid) {
		$('#'+fid).unbind('submit').bind('submit', function(e) {
			e.preventDefault();
			$('#'+fid).hide();
			
			var data = $('#'+fid).formSerialize();
			$.post('/gate.php', data, function (data) {
					if (data.state) {
						$('#'+fid+'Success').show();
					} else {
						for (var i in data.err) {
							$('#err_'+i).text(data.err[i]);
						}
						$('#'+fid).show();
					}
				},
				"json"
			);
		});
	},
	showForm:function(wrap, fid) {
		$('#'+wrap).show();
		Review.form(fid);
	},
	list:function() {
		var data = {filter:Review.fi, hotel_id:Review.hotel_id, module:'review', action:'list', lang_id:conf.lang_id, lang_code:conf.lang_code};
		if (!Review.load) {
			Review.load = 1;
			$('#review_list').html('<p>load...</p>');
			$.post('/gate.php', data, function (data) {
					$('#review_list').html(data);
					Review.load = 0;
				}
			);
		}
	},
	filter:function (fi) {
		$('#rf_'+Review.fi).css({'font-weight':'normal'});
		Review.fi = fi;
		$('#rf_'+Review.fi).css({'font-weight':'bold'});
		Review.list();
	}
}
/* search */
var SearchModel = function() {
	var self		=	this;
	var submitForm = function() {
		$("#search_form").submit();
	};
	//search by
	var setParam = function (e) {
		$("#search_order_by").val(e.target.id.split("_")[1]);
		submitForm();
	}
	$("#ss_price, #ss_manifacturer, #ss_bestbuy, #ss_new").live("click", setParam);
	
	//search vector
	var setVector = function (e) {
		$("#search_order_vector").val(e.target.id.split("_")[1]);
		submitForm();
	};
	$("#ss_asc, #ss_desc").live("click", setVector);
};
$(document).ready(function() {
	//Tabs = new TabModel('.tabulation');
	//Tabs.init("normal");
	//var category_obj = new CategoryModel();
	//CategoryModel = null;
	//thickbox
	tb_init("a.thickbox");
	//tooltip
	$('.tip').tooltip({delay:0});
	/*bodyHandler: function() {
			alert(this.title);
			return this.title;
		}*/
	/*var O = function() {
		this.items = ['news','promo'];
		this.show = function (key) {
			for (var i in this.items) {
				if (key != this.items[i]) {
					$("#"+this.items[i]+'_list').hide();
				} else {
					$("#"+this.items[i]+'_list').show();
				}
			}
		}
	}*/
  //var o_obj = new O();
  $("a.ad_popup")
	.click(function(e){
		e.preventDefault();
		newWin('/?req=ad_popup&image='+$(this).attr("href"), 320, 240, 0);
	});
	//NewsScrollStart();
	$("a.ad_gallery_item").click(function (event) {
		event.preventDefault();
		$("#gallery_front_image").attr("src", $(this).attr("href"));
	});
	//reload captcha
	$("#reload_captcha").live("click", function(){
		//href="javascript:media.setImage('captcha','{$base_url}captcha.jpg');"
	});
	var search_obj = new SearchModel;
	SearchModel = null;
	$("#search_tabs").tabs();
	
	//date picker
	$('#dpi')
		.datePicker({createButton:false})
		.bind('click', function() {
			updateSelectsI($(this).dpGetSelected()[0]);
			$(this).dpDisplay();
			return false;})
		.bind('dateSelected', function(e, selectedDate, $td, state) {
			updateSelectsI(selectedDate);})
		.bind('dpClosed', function(e, selected) {
			updateSelectsI(selected[0]);
			var d = selected[0];
			if (d) {
				d = new Date(d);
				$('#dpo').dpSetStartDate(d.addDays(1).asString());
				updateSelectsO(d.addDays(1).asString());
			}});
		//.dpSetStartDate('31/12/2010');
	
	$('#dpo').datePicker({
		createButton:false//,
		//startDate:today
		//endDate:'31/12/2010'
	}).bind('click', function() {
		updateSelectsO($(this).dpGetSelected()[0]);
		$(this).dpDisplay();
		return false;
	}).bind('dateSelected', function(e, selectedDate, $td, state) {
		updateSelectsO(selectedDate);
	}).bind('dpClosed', function(e, selected) {
		updateSelectsO(selected[0]);
		var d = selected[0];
		if (d) {
			d = new Date(d);
			$('#dpi').dpSetEndDate(d.addDays(-1).asString());
		}
	});
	var updateSelectsI = function (selectedDate) {
		var selectedDate = new Date(selectedDate);
		$('#cid option[value=' + selectedDate.getDate() + ']').attr('selected', 'selected');
		$('#cim option[value=' + (selectedDate.getMonth()+1) + ']').attr('selected', 'selected');
		$('#ciy').val(selectedDate.getFullYear());
	}
	var updateSelectsO = function (selectedDate) {
		var selectedDate = new Date(selectedDate);
		$('#cod option[value=' + selectedDate.getDate() + ']').attr('selected', 'selected');
		$('#com option[value=' + (selectedDate.getMonth()+1) + ']').attr('selected', 'selected');
		$('#coy').val(selectedDate.getFullYear());
	}
	// listen for when the selects are changed and update the picker
	$('#cid, #cim, #ciy').bind('change', function(){
		var d = new Date($('#ciy').val(), $('#cim').val()-1, $('#cid').val());
		$('#dpi').dpSetSelected(d.asString());
		
	});
	$('#cod, #com, #coy').bind('change', function(){
		var d = new Date($('#coy').val(), $('#com').val()-1, $('#cod').val());
		$('#dpo').dpSetSelected(d.asString());
		
	});
	
	// default the position of the selects to today
	var today = new Date().addDays(1);
	updateSelectsI(today.getTime());
	updateSelectsO(today.getTime());
	
	// and update the datePicker to reflect it...
	$('#cid').trigger('change');
	$("#hotel .s_tabs").tabs();
	
	//Review.form('ReviewAdd');
});
var setImage = function (where, what) {
	$("#"+where).attr("src", what);
}
