//Global variables:

save_this_search_status = 1;
//1 -> request should be handled by the "request_save_this_search" function, with "type" parameter ==1
//2 -> request should be handled by the "request_save_this_search" function, with "type" parameter ==2

//show_hide_save_search_popup
function show_save_search_popup(show_thanku_msg){
  var user_id = get_ulrp_usrlogin_cookie_value();  
  if(user_id!=''){
	var thanku_msg_holder = $('#stsp_thanku_msg');
	(show_thanku_msg) ? thanku_msg_holder.show() : thanku_msg_holder.hide();
    var layer_id = 'save_this_search_popup';
	stsp_restore();
	show_layer(layer_id);	  
  }
  else{
	login_logout_usr('save_this_search', 'show_save_search_popup');
  }
}

function hide_save_search_popup(){
  var layer_id = 'save_this_search_popup';
  hide_layer(layer_id);
}

function hide_thanku_msg(){
  var thanku_msg_holder = $('#stsp_thanku_msg');
  thanku_msg_holder.hide();
}

/***** PARAMETERS VALIDATION FUNCTIONS: start *****/
function valid_search_name(search_name){
  var search_name_length = 30;
  var search_name = trim(search_name);
  if(search_name && (search_name!='')){
    if(search_name.length <= search_name_length){
	  var regex_search_name = /^[a-zA-Z0-9 \-_]*$/;
	  if(search_name.search(regex_search_name) == -1){
	    return 0;
      }
	}
	else
	  return 0;
  }
  else
    return 0;
  return 1;
}

function valid_url(url){
  var url_length = 600;
  var url = trim(url);
  if(url && (url!='')){
    if(url.length <= url_length){
	  var regex_url = /^(http:\/\/|https:\/\/).*$/;
	  if(url.search(regex_url) == -1){
	    return 0;
      }
	}
	else
	  return 0;
  }
  else
    return 0;
  return 1;
}

/***** PARAMETERS VALIDATION FUNCTIONS: end *****/


function request_save_this_search(user_id, search_url, search_name, error_msg_holder, type){
  var url = '';
  url = '/templates/finder/includes/save_this_search_request_handler.xpnd';
  url = url + '?type=' + type;
  url = url + '&search_url=' + escape(search_url);
  url = url + '&search_name=' + escape(search_name);
  url = url + '&user_id=' + user_id;
  
  $.getJSON(url, function(result){
    if(result[0] != 1){
	  save_this_search_status = ( result[0] != 0) ? result[0] : 1;
	  display_error(0, result[1], error_msg_holder);
    }
    else{
	  hide_save_search_popup();
    }
  });
}

function save_this_search(form_id, search_name, search_url, user_id, error_msg_holder, default_values, type){
  if(user_id != ''){
     if(all_values_entered(form_id, default_values)){
		 if(valid_user_id(user_id)){
			if(valid_search_name(search_name)){
			  if(valid_url(search_url)){
				  //everything is right, save this search
				  request_save_this_search(user_id, search_url, search_name, error_msg_holder, type);
			  }
			  else
				display_error(6, '', error_msg_holder);  
			}
			else
			  display_error(5, '', error_msg_holder);  
		 }
		 else
		   display_error(4, '', error_msg_holder);
	 }
	 else
	   display_error(1, '', error_msg_holder);
  }
  else{
	show_save_search_popup(false);
	login_logout_usr('save_this_search', 'show_save_search_popup');
  }
}

function stsp_restore(){
  var stsp_search_name_input_id = 'fstsp_search_name';
  var stsp_error_msg_holder_id = 'stsp_error_msg';
  var stsp_search_name_input = $('#' + stsp_search_name_input_id);
  var stsp_error_msg_holder = $('#' + stsp_error_msg_holder_id);
  var stsp_input_default_val = 'enter search name';
  
  if (stsp_search_name_input.val() != stsp_input_default_val){
    stsp_search_name_input.val(stsp_input_default_val);
  }
  stsp_error_msg_holder.attr("innerHTML", '');
}

$(document).ready(function(){
  var form_id = 'stsp_form_holder';
  var stsp_id = 'save_this_search_popup';
  var li_sts_link_id = 'li_save_this_search_link';
  var ny_sts_link_id = 'ny_save_this_search_link';
  var stsp_close_btn_id = 'stsp_close_btn';
  var stsp_search_name_input_id = 'fstsp_search_name';
  var stsp_error_msg_holder_id = 'stsp_error_msg';
  var stsp_submit_btn_id = 'fstsp_submit_btn';
  
  var li_sts_link = $('#' + li_sts_link_id);
  var ny_sts_link = $('#' + ny_sts_link_id);
  var stsp_close_btn = $('#' + stsp_close_btn_id);
  var stsp_search_name_input = $('#' + stsp_search_name_input_id);
  var stsp_error_msg_holder = $('#' + stsp_error_msg_holder_id);
  var stsp_submit_btn = $('#' + stsp_submit_btn_id);
  
  stsp_default_values = {"fstsp_search_name":"enter search name"};
  
  li_sts_link.bind("click", function() {
    show_save_search_popup(false);
  });
  
  ny_sts_link.bind("click", function() {
    show_save_search_popup(false);
  });
  
  stsp_close_btn.bind("click", function() {
    hide_save_search_popup();
  });
  
  stsp_search_name_input.bind("focus", function() {
	clear_error_msg(stsp_error_msg_holder);
	hide_thanku_msg();
	clear_txt_input($(this), stsp_default_values[$(this).attr('id')]);
  });
  
  stsp_search_name_input.bind("blur", function() {
	fill_txt_input($(this), stsp_default_values[$(this).attr('id')]);
  });
  
  stsp_search_name_input.bind("keypress", function(e) {
	return validate_key_pressed(e,4);
  });

  stsp_submit_btn.bind("click", function() {
	hide_thanku_msg();
    save_this_search(form_id, stsp_search_name_input.val(), get_url(), get_ulrp_usrlogin_cookie_value(), stsp_error_msg_holder, stsp_default_values, save_this_search_status);
  });

});
