Event.observe(window, 'load', prepareCalendar)
//Event.observe(window, 'load', prepareTips)

var audio_player = new Template('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,47,0" width="20" height="20" id="wimpy_button_63709" name="wimpy_button_63709" ><param name="movie" value="#{media_url}/wimpy/wimpy_button.swf?theFile=#{media_url}/audio/#{file}" /><param name="quality" value="high" /><param name="bgcolor" value="#6A7A95" /><embed src="#{media_url}/wimpy/wimpy_button.swf?theFile=#{media_url}/audio/#{file}" width="20" height="20" quality="high" bgcolor="#6A7A95" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"  name="wimpy_button_63709" /></object>')

function dateChanged(calendar) 
{
  if (calendar.dateClicked) {
    var y = calendar.date.getFullYear()
    var m = calendar.date.getMonth() + 1
    var d = calendar.date.getDate()
    window.location = "/events/" + y + "/" + m + "/" + d + "/"
  }
}

function dateIsSpecial(year, month, day) 
{
  var m = SPECIAL_DAYS[month]
  if (!m) return false
  for (var i in m) if (m[i] == day) return true
  return false
}
function ourDateStatusFunc(date, y, m, d) 
{
  if (dateIsSpecial(y, m, d)) {
    return "special"
  } else {
    return false
  }
}

function prepareCalendar()
{
  if ($('calendar-container'))
  Calendar.setup({
    flat           : "calendar-container",
    flatCallback   : dateChanged,
    dateStatusFunc : ourDateStatusFunc,
    weekNumbers    : 0
  })
}

function prepareTips()
{
  var div1 = $('events-list')
  var div2 = $('detail')
  if (!div1 && !div2) return
  var div = div1? div1 : div2
  div.getElementsBySelector('[rel="player"]').each(function(e){
    var details = e.getElementsBySelector('[rel="audio_details"]')
    new Tip(
      e,
      details[0].innerHTML,                 
      {  
        className: 'tool-tip',
        showOn: 'mouseover',
        hideOn: 'mouseout',
        duration: 0.3, 
        delay: 0.2,
        effect: 'appear',
//        offset: {x:-10, y:-10},
        fixed: true, 
//        onActivate: function(){sIFR.setup();sIFR.replaceElement(named({sSelector: ".tool-title", sFlashSrc: media_url+"/flash/lutz.swf", sBgColor: "#FFFFFF", sColor: "#710E31", sWmode: "transparent"}));},
        hook: {target: 'topRight', tip: 'bottomLeft'}
      }
    )
  })
}


function showSendForm(index)
{
  var validation_dict = {validIcon: media_url+'/images/validation_tick.png', validMessage: ''}
  
  $('send-form').show()
  $('send-form').innerHTML = '<img src="'+media_url+'/images/progress.gif" vspace="10" border="0" />'
  new Ajax.Updater('send-form', '/events/send/'+index+'/', {
    method: 'get', 
    parameters: '', 
    onComplete: function(transport) {
      prepareSendForm()
  	},
  	onLoading: function(transport) {
  	},
  	onFailure: function(transport) {
      alert('error')
  	},
    evalScripts: true
  })
}

function hideSendForm()
{
  $('send-form').hide()
}

function sendEvent(f, index)
{
  var pars = Form.serialize(f)
  f.innerHTML = '<img src="'+media_url+'/images/progress.gif" vspace="10" border="0" />'
  new Ajax.Updater(f, '/events/send/'+index+'/', {
    method: 'post', 
    parameters: pars, 
    onComplete: function(transport) {
      prepareSendForm()
  	},
  	onLoading: function(transport) {
  	},
  	onFailure: function(transport) {
  	   alert('error')
  	},
    evalScripts: true
  })
}

function prepareSendForm()
{
  if (!$('send-form')) return
  var v = new LiveValidation('id_name', validation_dict);
  v.add( Validate.Presence );
  var v = new LiveValidation('id_email', validation_dict);
  v.add( Validate.Email, {failureMessage: "You must type correct email address"} );
  var v = new LiveValidation('id_friend_name', validation_dict);
  v.add( Validate.Presence );
  var v = new LiveValidation('id_friend_email', validation_dict);
  v.add( Validate.Email, {failureMessage: "You must type correct email address"} );
}