var ajax_url = (window.location.pathname.search(/^\/public_dev.php/) >= 0)? '/public_dev.php/': '/', template = {};

document.observe('dom:loaded', function() {
  if ($('form-template-email-to-a-friend'))
  {
    // Fetch template
    window.email_a_friend_form = attachModalFormBehaviours($('form-template-email-to-a-friend'));
  }
    
  /**
   * Attach behaviour to email a friend trigger
   */
  $$('.sh-email a').invoke('observe', 'click', function (event)
  {
    event.stop();
    if(!window.email_a_friend_form) return false;
    window.email_a_friend_form.remove().show()
    displayModalForm(window.email_a_friend_form, {skip_behaviours:true});
  });
  
  /**
   * Set print page behaviour for share panel
   */
  $$('.sh-print a').invoke('observe', 'click', function(event) {
    event.stop();
    window.print();
  });
});

function displayModalForm (wrapper, params)
{
  var submit_trigger, ajax_loader;
  
  if (!wrapper) return;
  
  submit_trigger = wrapper.down('.trigger-submit');
  ajax_loader = wrapper.down('.ajax-loader');
  
  if (submit_trigger) submit_trigger.show();
  if (ajax_loader) ajax_loader.hide();
  
  if (!params || !params.skip_behaviours) attachModalFormBehaviours(wrapper);
  
  broadcast.display(wrapper);
}

function attachModalFormBehaviours (wrapper)
{
  var close_triggers, cancel_trigger, form;
  
  close_triggers = wrapper.select('.trigger-close');
  cancel_trigger = wrapper.down('.trigger-cancel') || null;
  form = wrapper.down('form') || null;
    
  
  // Set behaviours
  if (close_triggers.length) close_triggers.invoke('observe', 'click', broadcast.dismiss.bind(broadcast));
  if (cancel_trigger && form) cancel_trigger.observe('click', function (event) { event.stop(); event.findElement('form').reset(); broadcast.dismiss(); });
  if (form) 
  {
    form.observe('submit', function (event)
    {
      var form, submit_trigger, ajax_loader;
      
      event.stop();
      
      form = event.findElement('form');
      submit_trigger = form.down('.trigger-submit');
      ajax_loader = form.down('.ajax-loader');
      
      if (submit_trigger) submit_trigger.hide();
      if (ajax_loader) ajax_loader.show();
      
      new Ajax.Request(form.getAttribute('action'),
      {
        parameters: form.serialize(true),
        onSuccess: function (transport)
        {
          displayModalForm(new Element('div').update(transport.responseText).down('div'));
          //if (transport.responseText.match(/confirmation/i)) (function () {broadcast.dismiss();}).delay(2);
        }
      });
    });
  }
  
  return wrapper;
}

// Email protection
function u(a){var b=[],i=ac=c=c1=c2=0;while(i<a.length){c=a.charCodeAt(i);if(c<128){b[ac++]=String.fromCharCode(c);i++}else if((c>191)&&(c<224)){c2=a.charCodeAt(i+1);b[ac++]=String.fromCharCode(((c&31)<<6)|(c2&63));i+=2}else{c2=a.charCodeAt(i+1);c3=a.charCodeAt(i+2);b[ac++]=String.fromCharCode(((c&15)<<12)|((c2&63)<<6)|(c3&63));i+=3}}return b.join('')}function d(a){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var c,o2,o3,h1,h2,h3,h4,bits,i=ac=0,dec="",tmp_arr=[];do{h1=b.indexOf(a.charAt(i++));h2=b.indexOf(a.charAt(i++));h3=b.indexOf(a.charAt(i++));h4=b.indexOf(a.charAt(i++));bits=h1<<18|h2<<12|h3<<6|h4;c=bits>>16&0xff;o2=bits>>8&0xff;o3=bits&0xff;if(h3==64){tmp_arr[ac++]=String.fromCharCode(c)}else if(h4==64){tmp_arr[ac++]=String.fromCharCode(c,o2)}else{tmp_arr[ac++]=String.fromCharCode(c,o2,o3)}}while(i<a.length);dec=tmp_arr.join('');dec=u(dec);return dec}function e(a){a=a.replace('--','==');a=a.replace('-','=');a=d(r(a));window.location=r('znvygb')+':'+a}function ri(){var a=new Array();var s="abcdefghijklmnopqrstuvwxyz";for(i=0;i<s.length;i++)a[s.charAt(i)]=s.charAt((i+13)%26);for(i=0;i<s.length;i++)a[s.charAt(i).toUpperCase()]=s.charAt((i+13)%26).toUpperCase();return a}function r(a){if(typeof rmap=='undefined')rmap=ri();s="";for(i=0;i<a.length;i++){var b=a.charAt(i);s+=(b>='A'&&b<='Z'||b>='a'&&b<='z'?rmap[b]:b)}return s}

