$(function(){
	//Autocomplete for postcodes
	var _container_width = 'auto';
	try {
	    var autocomplete_url = WEB_PATH + "listings/postcode_autocomplete/";
	
		$("#postcode").autocomplete(autocomplete_url, {
			dataType: "jsonp",
			max: 8,
			multiple: false,
			width: _container_width,
			parse: function(data) {
				if (typeof data != "object") {
					return [];
				}
				var rows = [];
				for (var i=0; i < data.length; i++) {
					rows[i] = {
						"data"	: data[i],
						"value"	: data[i]["postcode"],
						"result": data[i]["postcode"]
					};
				}
				return rows;
			},
			formatItem: function(row, i, max) {
				if (row["city"] && row["region"]) {
					_item = row["postcode"] + ", " + row["city"] + ", " + row["region"];
				} else if (row["city"] && !row["region"]) {
					_item = row["postcode"] + ", " + row["city"];
				} else {
					_item = row["postcode"];
				}
				return _item;
			},
			selectFirst: false
		});

		// Autocomplete result event (fill city and region automatically)
		$("#postcode").result(function(evt){
			var _postcode = $(this).val();
			$.post(autocomplete_url, {"postcode" : _postcode}, function(data){
				data = eval("(" + data + ")");
				$("#city").val(data[0]["city"]);
				$("#region_box").val(data[0]["region_id"]);
			});
		
			// to stop automatic form submitting on 'enter'
			return false;
		});

	} catch (e) {
	}

	// Images displaying
 	var thumbs_width = 0;
	$(".ad-thumb-list li").each(function(i) {
		thumbs_width += $(this).outerWidth();
	});
	var _show_control_buttons = false;
	if (thumbs_width > $(".ad-thumbs").width()) {
		_show_control_buttons = true;
	}

	var galleries = $('.ad-gallery').adGallery({
		loader_image: _indicator_path,
		slideshow: {
			enable: false
		},
		display_back_and_forward : _show_control_buttons,
		display_next_and_prev: false,
		callbacks: {
			init: function() {
				var _controls_height = $(".ad-thumb-list").height();
				$(".ad-back").height(_controls_height).css("background-position", "center center");
				$(".ad-forward").height(_controls_height).css("background-position", "center center");
			}
		},
		effect: 'none'
	});

});

/* upload_photos for ads */
$(function(){
	var _id = null;
	var _ext = null;
	var _user_id = $("input:hidden[name=user_id]").val();
	var _ad_id = $("input:hidden[name=ad_id]").val();
	var indicatior = $("<img src='" + _indicator_path + "' alt='indicator' class='indicator' style='vertical-align:middle;'>");

	$(".ajax_upload").bind("change", function(){
		$(this).next().show();
		_ext = $(this).attr("value").split(".").slice(-1);
	});
/* Turned off
	$(".ajax_button").click(function() {
		$(this).after(indicatior);
		$(this).hide();
		_form_action = _upload_ad_photo_url;
		_id = $(this).attr("profy_photo_num");
		var _new_form_action = _form_action + "/" + _id;
		$("form[name=ajax_upload_form]").attr("action", _new_form_action);
		$("form[name=ajax_upload_form]").submit();

		return false;
	});
*/

	$(".ajax_delete").click(function (){
		if(!confirm(_confirm_text)) {
			return false;
		}
		$(this).parent().after(indicatior);
		_id = $(this).attr("profy_photo_num");
		var _span_i = $("span[profy_photo_num=i_" + _id + "]");

		var _delete_url = _span_i.find("a.ajax_delete").attr("href");
		$.get(_delete_url, function(){ 
			$("img.indicator").remove();
			var _span_f = $("span[profy_photo_num=f_" + _id + "]");		
			_span_f.find("input.ajax_upload[type=file]").val("");
			_span_f.find("a").hide();
			_span_f.show();
			$("span[profy_photo_num=i_" + _id + "]").hide();
		});

		return false;
	});

/* turned off
	$("iframe#hidden_iframe").bind("load", function() {
		if (_id == null) return false;

		var _img_src = $("input:hidden[name=photos_dir_path]").attr("value") + "thumb_" + _user_id + "-" + vertical_name + "-" + _ad_id + "-" +_id + "." + _ext + "?" + new Date().getTime();
		var _span_i = $("span[profy_photo_num=i_" + _id + "]");
		var _span_f = $("span[profy_photo_num=f_" + _id + "]");
		_span_i.find("img").attr("src", _img_src);
		$("img.indicator").remove();
		_span_f.hide();
		_span_i.show();
	});
*/

});

// Cross-browser form required fields checking function
function form_check(the_form) {
	try {
		var error_msg		= '';

		// Check auto-generated required fields
		for (i in req_fields) {
			var _cur_field = the_form[req_fields[i]];
			if (typeof _cur_field != 'object') {
				continue;
			}
			if (!_cur_field.value) {
				error_msg += "*" + req_fields_tr[i] + '\n';
			}
		}
		// Show error or submit form
		if (error_msg) {
			alert(_required_fields_text + ': \n\n' + error_msg);
			return false;
		} else {
			the_form.submit();
			return true;
		}
	} catch (x) {
		if (typeof the_form == "object") {
			the_form.submit();
			return true;
		}
		return false;
	}
}

$(function(){

	// Redirect to twitter with short url generation
	$("a.twitter").click(function(){
		var _clicked = $(this);
		var elem_class = _clicked.attr("class");
		var classes = elem_class.split(" ");
		if(classes.length > 1) {
			return false;
		}

		_clicked.after("<img class='ajax_indicator' src='" + _indicator_path + "' style='margin-left:5px;'>");

		open_twitter_window($(this));

		return false;
	});


function open_twitter_window(_clicked) {
		var _ad_block = _clicked.parents(".ad_item");
		var _permalink = _clicked.parents(".ad_item").find("h2 a").attr("href");

		$.post(_link_trimmer, {"ajax_mode" : 1, "permalink" : _permalink}, function(data){
			_form_action = _clicked.attr('href') + " " + data;
			$("img.ajax_indicator").remove();
			window.open(_form_action);
		});
}

	$(".sms_form_btn").click(function(){
		// find ad title
		var ad_container = get_ad_div($(this));
		var _ad_id  = get_ad_id($(this));
		var share_request = 0;
		var _clicked_elem = $(this);

		var elem_class = $(this).attr("class");
		var classes = elem_class.split(" ");

		if(in_array("facebook", classes) || in_array("twitter", classes)) {
			share_request = 1;
			var _link = $(this).attr("href");
			if(in_array("twitter", classes)) {
				var is_twitter = 1;
			}
		}

		// Show sms pay form
		$.post(sms_pay_form_url, {"ajax_mode" : 1, "get_form" : 1, "ad_id" : _ad_id, "share_request" : share_request}, function(data){
			if(!data) {
				return false;
			}
			$("#sms_pay_form_wrapper").html(data);
			$("#sms_pay_form_wrapper").find("form[name=check_code_form] input[type=submit]").hide();

			var _form_buttons = {};

			_form_buttons[t_cancel]	= function() {
				$(this).dialog('close');
			};
			_form_buttons[t_submit]	= function() {

				var _buttons = $(this).parent().find("button");
//				var _submit_btn = _buttons[1];
//				var _cancel_btn = _buttons[0];

				var _paid_code = $("#sms_pay_form_wrapper").find("input[name=paid_code]").val();				
				$.post(sms_pay_form_url, {"ajax_mode" : 1, "submit" : 1, "paid_code" : _paid_code, "ad_id" : _ad_id, "share_request" : share_request}, function(data){
					$("#sms_pay_form_wrapper").html(data);
					$("#sms_pay_form_wrapper").find("form[name=check_code_form] input[type=submit]").hide();
					$("#sms_pay_form_wrapper").find(".info_container").hide();
					if($("#sms_pay_form_wrapper").find(".error").length > 0) {
						$("#sms_pay_form_wrapper").find(".error").css("width", "auto");
					}  
					var success_flag = $("#sms_pay_form_wrapper").find("input[name=success]:hidden");
					if(success_flag.length > 0 && success_flag.val() == 1) {
						_buttons.fadeOut("slow");

						$("#sms_pay_form_wrapper").bind('dialogclose', function(event, ui) {
							if (share_request == 1) {
								if(is_twitter == 1) {
									open_twitter_window(_clicked_elem);
								} else {
									window.open(_link);
								}
							}
							var cur_location = window.location.href;
							window.location.href = cur_location;
						});
	
						var _form_buttons_new = {};
						_form_buttons_new[t_continue] = function() { 
							$(this).dialog("close"); 
						} 

						$("#sms_pay_form_wrapper").dialog('option', 'buttons', _form_buttons_new);
					}

				});
			};

			$("#sms_pay_form_wrapper").dialog({
				bgiframe: true,
				autoOpen: false,                     
				width: 400,
				height: 430,
				modal: true,
				buttons: _form_buttons,
				open: function(){
					// Disable submit button
					var _buttons = $(this).parent().find("button");
					var _submit_btn = _buttons[1];

					$(_submit_btn).attr("disabled","disabled");
					$(_submit_btn).addClass("ui-state-disabled");
  					
					$("#paid_code").bind("keyup change", function (e) {
						if($("#paid_code").val().length == 6){
							$(_submit_btn).attr("disabled","");
							$(_submit_btn).removeClass("ui-state-disabled");
						} else {
							$(_submit_btn).attr("disabled","disabled");
							$(_submit_btn).addClass("ui-state-disabled");
						}
					});
					$("form[name=check_code_form]").submit(function(){
						return false;
					});
				},
				close: function() {
					$(this).dialog('destroy');
				}
			});

			$("#sms_pay_form_wrapper").dialog('open');
			$("#sms_pay_form_wrapper").show();
	
		});
		return false;
	});
});
