var OVERLAY=new function()
{
 var self=this;
 var overlay_id = 1;

 var exists=false;
 
 var main_container;
 var sub_container;
 var overlay;
 var mask;
 var container;

 var close_button;

 var header;
 var heading;
 var content;

 var body;

 var settings={};

 this.create=function(args)
 {
  overlay_id++;
  settings.overlay_class="";
  settings.close_class="grey";
  settings.heading="";
  settings.content="";
  settings.type="";
  settings.size="overlay_small";
  for(var i in args)
  {
   settings[i]=args[i];
  }
  if(!exists)
  {
   exists=true;
   build_overlay();
  }

  overlay.innerHTML="";
  if(types[settings.type])
  {
   types[settings.type]();
  }

  sub_container.className="overlay "+settings.overlay_class;
  close_button.className="close click "+settings.close_class;
  return overlay_id;
 }

 var types={
  message:function()
  {
   header=_CE('div',{className:'header'});
   heading=_CE('h3');
   content=_CE('div',{className:'content'});
   header.appendChild(heading);
   overlay.appendChild(header);
   overlay.appendChild(_CE('hr'));
   overlay.appendChild(content);

   heading.innerHTML=settings.heading;
   content.innerHTML=settings.content;
   heading.focus();
  },
  image:function()
  {
   var img_cont=_CE('div',{className:'center'});
   var image=_CE('img',{src:settings.image});
   img_cont.appendChild(image);
   overlay.appendChild(img_cont);

  },
  offer_vote:function()
  {
   var message_container=_CE('div',{className:'center'});
   content=_CE('h2',{innerHTML:settings.message,className:'very_large'});
   var form=_CE('form',{method:'post'});
   var html=[];
   if(settings.works == 'yes')
   {
    html.push('<input type="hidden" name="offer" value="'+settings.offer+'">');
    html.push('<table class="centered saved"><tr><td><div class="icon dollar"></div></td>');
    html.push('<td><input type="text" class="green logo dollars" name="dollars" onfocus="this.select()" maxlength="4"></td>');
    html.push('<td>.</td>');
    html.push('<td><input type="text" value="00" class="green logo cents" maxlength="2" name="cents" onfocus="this.select()"></td>');
    html.push('<td><input type="submit" class="button submit_orange" value=""></td></tr></table>');
    form.onsubmit=function(obj){return function(){return obj.savings_amount(this)}}(settings.manager);
   }
   else
   {
    html.push('<input type="hidden" name="offer" value="'+settings.offer+'">');
    html.push('<table class="centered a_left">');
    html.push('<tr><td><textarea name="message" class="green logo message"></textarea></td></tr>');
    html.push('<tr><td><input type="submit" class="button submit_green" value=""></td></tr>');
    html.push('</table>');
    form.onsubmit=function(obj){return function(){return obj.doesnt_work(this)}}(settings.manager);
   }
   var inner_form=_CE('div',{innerHTML:html.join('')});
   form.appendChild(inner_form);
   message_container.appendChild(content);
   message_container.appendChild(_CE('hr'));
   message_container.appendChild(form);
   overlay.appendChild(message_container);
  },
  save_share:function()
  {
   var message_container=_CE('div',{className:'center'});
   message_container.appendChild(_CE('h2',{innerHTML:settings.message,className:'very_large'}));
   var tb=_CE('table',{className:'centered'});
   var t=_CE('tbody');
   tb.appendChild(t);
   var r=_CE('tr');
   t.appendChild(r);
   var d1=_CE('td');
   var fb_img=_CE('div',{className:'social facebook click'});
   d1.appendChild(fb_img);
   var d2=_CE('td',{className:'pad r'});
   var fb_txt=_CE('span',{innerHTML:'Facebook',className:'click underline'});
   d2.appendChild(fb_txt);
   var d3=_CE('td',{className:'pad l'});
   var t_img=_CE('div',{className:'social twitter click'});
   d3.appendChild(t_img);
   var d4=_CE('td');
   var t_txt=_CE('span',{innerHTML:'Twitter',className:'click underline'});
   d4.appendChild(t_txt);
   fb_img.onclick=function(obj,info){return function(){obj.share_saved('facebook',info)}}(settings.manager,settings.vars);
   fb_txt.onclick=fb_img.onclick;
   t_img.onclick=function(obj,info){return function(){obj.share_saved('twitter',info)}}(settings.manager,settings.vars);
   t_txt.onclick=t_img.onclick;
   r.appendChild(d1);
   r.appendChild(d2);
   r.appendChild(d3);
   r.appendChild(d4);

   message_container.appendChild(_CE('hr'));
   message_container.appendChild(tb);
   overlay.appendChild(message_container);

  },
  status:function()
  {
   header=_CE('div',{className:'header center very_large'});
   heading=_CE('h2');
   header.appendChild(heading);
   overlay.appendChild(header);
   heading.innerHTML=settings.heading;
  },
  add_comment:function()
  {
   header=_CE('div',{className:'header'});
   heading=_CE('h2',{className:'very_large'});
   content=_CE('div',{className:'content'});
   header.appendChild(heading);
   overlay.appendChild(header);
   overlay.appendChild(_CE('hr'));
   overlay.appendChild(content);

   var form=_CE('form',{method:'post',id:'_overlay_ac_'+overlay_id});
   var html=[];
   html.push('<input type="hidden" name="comment__type_id" value="'+settings.comment_id+'"/>');
   html.push('<input type="hidden" name="comment__type" value="'+settings.comment_type+'"/>');
   html.push('<table class="add_comment">');
   html.push('<tr><td>Name:</td>');
   html.push('<td><input type="text" class="green logo" name="comment__name"/></td></tr>');
   html.push('<tr><td>Email:</td>');
   html.push('<td><input type="text" class="green logo" name="comment__email"/></td></tr>');
   html.push('<tr><td>Comment:</td>');
   html.push('<td><textarea class="green logo" name="comment__message"></textarea></td></tr>');
   html.push('<tr><td></td>');
   html.push('<td><input type="submit" class="button submit_green" value=""></td></tr></table>');
   form.onsubmit=function(obj){return function(){return obj.post_comment(settings.comment_id,this.id)}}(settings.manager);

   var inner_form=_CE('div',{innerHTML:html.join('')});
   form.appendChild(inner_form);
   overlay.appendChild(form);

   heading.innerHTML=settings.heading;
   content.innerHTML=settings.content;
  }
 };

 this.update_comment=function(vars)
 {
  if(exists && settings.type == 'add_comment' && overlay_id == vars.id)
  {
   heading.innerHTML=vars.heading;
   content.innerHTML=vars.content;
  }
 }
 function build_overlay()
 {
  body=_GTN('body').item(0);
  main_container=_CE('div',{id:'_overlay'});
  mask=_CE('div',{className:'mask'});
  container=_CE('div',{className:'main_container '+settings.size});
  sub_container=_CE('div',{className:'overlay'});
  close_button=_CE('div',{className:'close click',title:'Close'});

  var table=_CE('table',{className:'overlay_bg'});
  var tb=_CE('tbody');
  table.appendChild(tb);
  var tr=_CE('tr');
  tb.appendChild(tr);
  tr.appendChild(_CE('td',{className:'corner top_left'}));
  tr.appendChild(_CE('td',{className:'top_bottom top_edge'}));
  tr.appendChild(_CE('td',{className:'corner top_right'}));
  tr=_CE('tr');  
  tb.appendChild(tr);
  tr.appendChild(_CE('td',{className:'left_right left_edge'}));
  overlay=_CE('td',{className:'overlay_content'});
  tr.appendChild(overlay);
  tr.appendChild(_CE('td',{className:'left_right right_edge'}));
  tr=_CE('tr');  
  tb.appendChild(tr);
  tr.appendChild(_CE('td',{className:'corner bot_left'}));
  tr.appendChild(_CE('td',{className:'top_bottom bot_edge'}));
  tr.appendChild(_CE('td',{className:'corner bot_right'}));

  
  sub_container.appendChild(close_button);
  sub_container.appendChild(table);
  container.appendChild(sub_container);
  main_container.appendChild(mask);
  main_container.appendChild(container);
  
  body.appendChild(main_container);

  close_button.onclick=self.close;
 
 }
 

 this.close=function()
 {
  if(exists)
  {
   body.removeChild(main_container);
   exists=false;
  }
 }

}()

