function modal_button()
{

}

function modal_button_on_mouse_button_up(i_mouse)
{
   this.parent().set_modal(false);
   this.parent().set_visible(false);
   this.parent().invalidate();
   this.on_mouse_button_up(i_mouse);

   return true;
}

modal_button.prototype = new button;
modal_button.on_mouse_button_up = modal_button_on_mouse_button_up;

function message_widget()
{
   this.m_ok_button = new modal_button();
   this.m_cancel_button =  new  modal_button();
   this.m_dont_show_again_checkbox = new check_box();
   this.m_has_cancel = false;
   this.m_has_ok_cancel = false;
   this.m_has_dont_show_again = false;
   this.m_title = "";
   this.m_message = new label();
   this.m_message2 = "";
}

function owk_message_widget_title()
{
  return this.m_title;
}

function owk_message_widget_set_title(i_title)
{
   this.m_title = i_title;
}


function owk_message_widget_message()
{
   return this.m_message;
}

function owk_message_widget_set_message(i_message)
{
   this.m_message.set_text(i_message);
}

function owk_message_widget_set_font(i_font)
{
   this.m_message.set_font(i_font);
   this.m_message.set_line_color(new color(255,255,255,255));
}


function owk_message_widget_message2()
{
   return this.m_message2;
}

function owk_message_widget_set_message2(i_message)
{
   this.m_message2 = i_message;
}

function owk_message_widget_ok_button()
{
   return this.m_ok_button;
}

function owk_message_widget_cancel_button()
{
   return this.m_cancel_button;
}

function owk_message_widget_dont_show_again_checkbox()
{
   return this.m_dont_show_again_checkbox;
}

function owk_message_widget_has_ok_cancel()
{
   return this.m_has_ok_cancel;
}

function owk_message_widget_set_has_ok_cancel(i_has_ok_cancel)
{
   this.m_has_ok_cancel = i_has_ok_cancel;
}

function owk_message_widget_has_dont_show_again()
{
   return this.m_has_dont_show_again;
}

function owk_message_widget_set_has_dont_show_again(i_has_dont_show_again)
{
   this.m_has_dont_show_again = i_has_dont_show_again;
}

function owk_message_widget_has_cancel()
{
   return this.m_has_cancel;
}

function owk_message_widget_set_has_cancel(i_has_cancel)
{
   this.m_has_cancel = i_has_cancel;
}

function owk_message_widget_load_patterns(i_url_button, i_url_checkbox, i_url_window)
{
   this.background_decorator().load(i_url_window, false);  
 
  // this.m_div.style.zIndex=0;

   if (this.has_cancel())
   {       
      this.ok_button().load_patterns(i_url_button,   true, true, true);
      this.cancel_button().load_patterns(i_url_button, true, true, true);
     // this.cancel_button().m_div.style.zIndex=99;
     // this.ok_button().m_div.style.zIndex=99;
   }
   else
   {      
      this.ok_button().load_patterns(i_url_button,   true, true, true);
     // this.ok_button().m_div.style.zIndex=99;
   }

   if (this.has_dont_show_again())
   {
      this.dont_show_again_checkbox().check_layer().load_image(i_url_checkbox + "checked.png");
	   this.dont_show_again_checkbox().uncheck_layer().load_image(i_url_checkbox + "uncheck.png");	
      //this.dont_show_again_checkbox().m_div.style.zIndex=99;
   }
}

function owk_message_widget_create(i_layer_group, i_wid, i_region, i_visible)
{
   this.ancestor_ancestor_create(i_layer_group,i_region, i_visible, false, false, false, "");                      
   this.m_message.create(this, new rectangle(20,20,this.region().size.width-40, this.region().size.height-140), true, "");

   if (this.has_cancel())
   { 
      this.ok_button().create(this, new rectangle(this.region().size.width - 140,  this.region().size.height - 70, this.region().size.width -60, this.region().size.height - 40), true, "");      
      this.cancel_button().create(this, new rectangle(this.region().size.width -230, this.region().size.height - 70, this.region().size.width -150, this.region().size.height - 40), true, "");      
   }
   else
   {
      this.ok_button().create(this, new rectangle(this.region().size.width / 2 - 25, this.region().size.height - 70, this.region().size.width / 2 + 25, this.region().size.height - 40), true, "");
   }

   if (this.has_dont_show_again())
   {
      this.dont_show_again_checkbox().create(this, new rectangle(40, this.region().size.height - 60, 20+180, this.region().size.height - 40), true, "Don't show this again");
   }
}

function owk_message_widget_destroy()
{
   this.cancel_button().destroy();
   this.ok_button().destroy();
   this.dont_show_again_checkbox().destroy();
   this.ancestor_destroy();
}

function owk_message_widget_draw_background()
{

}

message_widget.prototype = new widget;
message_widget.prototype.create = owk_message_widget_create;
message_widget.prototype.ancestor_ancestor_create = owk_widget_create;
message_widget.prototype.load_patterns = owk_message_widget_load_patterns;
message_widget.prototype.title = owk_message_widget_title;
message_widget.prototype.set_title = owk_message_widget_set_title;
message_widget.prototype.message = owk_message_widget_message;
message_widget.prototype.set_message = owk_message_widget_set_message;
message_widget.prototype.message2 = owk_message_widget_message2;
message_widget.prototype.set_message2 = owk_message_widget_set_message2;
message_widget.prototype.ok_button = owk_message_widget_ok_button;
message_widget.prototype.cancel_button = owk_message_widget_cancel_button;
message_widget.prototype.dont_show_again_checkbox = owk_message_widget_dont_show_again_checkbox;
message_widget.prototype.has_ok_cancel = owk_message_widget_has_ok_cancel;
message_widget.prototype.has_dont_show_again = owk_message_widget_has_dont_show_again;
message_widget.prototype.has_cancel = owk_message_widget_has_cancel;
message_widget.prototype.set_has_ok_cancel = owk_message_widget_set_has_ok_cancel;
message_widget.prototype.set_has_dont_show_again = owk_message_widget_set_has_dont_show_again;
message_widget.prototype.set_has_cancel = owk_message_widget_set_has_cancel;
message_widget.prototype.destroy = owk_message_widget_destroy;
message_widget.prototype.ancestor_destroy = owk_widget_destroy;
message_widget.prototype.draw_background = owk_message_widget_draw_background;
message_widget.prototype.set_message_font = owk_message_widget_set_font;

var msg_widget = new message_widget();
var create_widget = false;
function show_message(i_layer_group, i_title, i_message, i_message2, i_has_cancel, is_yes_no, i_on_ok_button, i_on_cancel_button_ptr, i_dont_show_again_checkbox_ptr)
{
   if(create_widget == true)
   { 
      msg_widget.m_div.parentNode.removeChild(msg_widget.m_div); 
   }
   
   msg_widget.ok_button().on_hit = i_on_ok_button;

   if (i_dont_show_again_checkbox_ptr)
      msg_widget.dont_show_again_checkbox().on_hit = i_dont_show_again_checkbox_ptr;

   if (i_on_cancel_button_ptr)
      msg_widget.cancel_button().on_hit = i_on_cancel_button_ptr;

   var rect = new rectangle(0, 0, 600, 180);
   rect.recenter(i_layer_group.region().size.width / 2, i_layer_group.region().size.height / 2);
   
   

   msg_widget.set_has_ok_cancel(true);
   msg_widget.set_has_cancel(i_has_cancel);
   msg_widget.set_has_dont_show_again((i_dont_show_again_checkbox_ptr != 0));

   create_widget = true;
   msg_widget.create(i_layer_group,0, rect, true);

   msg_widget.set_title(i_title);
   msg_widget.set_message(i_message);
   msg_widget.set_message2(i_message2);
   msg_widget.set_message_font(1);

   if (is_yes_no)
   {
      msg_widget.ok_button().set_title("Yes");
      try{msg_widget.cancel_button().set_title("No");}catch(e){}
   }
   else
   {
      msg_widget.ok_button().set_title( "OK");
      try{msg_widget.cancel_button().set_title("Cancel");}catch(e){}
   }

   msg_widget.set_modal(true);

  // msg_widget.invalidate();
}

function show_ok_cancel_dont_show_again_message (i_layer_group, i_title, i_message, i_message2, i_on_ok_button, i_on_cancel_button, i_dont_show_again_checkbox)
{
   show_message(i_layer_group, i_title, i_message, i_message2, 
      true, // i_has_cancel, 
      false, // is_yes_no, 
      i_on_ok_button,// i_on_ok_button, 
      i_on_cancel_button,// i_on_cancel_button_ptr, 
      i_dont_show_again_checkbox); // i_dont_show_again_checkbox_ptr
}

function show_yes_no_dont_show_again_message (i_layer_group, i_title, i_message, i_message2, i_on_ok_button, i_on_cancel_button, i_dont_show_again_checkbox)
{
   show_message(i_layer_group, i_title, i_message, i_message2, 
      true, // i_has_cancel, 
      true, // is_yes_no, 
      i_on_ok_button,// i_on_ok_button, 
      i_on_cancel_button,// i_on_cancel_button_ptr, 
      i_dont_show_again_checkbox); // i_dont_show_again_checkbox_ptr
}

function show_ok_cancel_message (i_layer_group, i_title, i_message, i_message2, i_on_ok_button, i_on_cancel_button)
{
   show_message(i_layer_group, i_title, i_message, i_message2, 
      true, // i_has_cancel, 
      false, // is_yes_no, 
      i_on_ok_button,// i_on_ok_button, 
      i_on_cancel_button,// i_on_cancel_button_ptr, 
      0); // i_dont_show_again_checkbox_ptr
}

function show_yes_no_message (i_layer_group, i_title, i_message, i_message2, i_on_ok_button, i_on_cancel_button)
{
   show_message(i_layer_group, i_title, i_message, i_message2, 
      true, // i_has_cancel, 
      true, // is_yes_no, 
      i_on_ok_button,// i_on_ok_button, 
      i_on_cancel_button,// i_on_cancel_button_ptr, 
      0); // i_dont_show_again_checkbox_ptr
}

function show_ok_message (i_layer_group, i_title, i_message,  i_message2, i_on_ok_button)
{
   show_message(i_layer_group, i_title, i_message, i_message2, 
      false, // i_has_cancel, 
      false, // is_yes_no, 
      i_on_ok_button,// i_on_ok_button, 
      0,// i_on_cancel_button_ptr, 
      0); // i_dont_show_again_checkbox_ptr
}


