// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

var ua = navigator.userAgent.toLowerCase();
is_safari = (ua.indexOf("safari") != -1);
ie6_fix_is_present=false;
flash_notice = '';
flash_notice_purpose = 'success';
clear_inserted = false;

function google_map_load(address,country) {
  if (GBrowserIsCompatible()) {
    var geocoder = new GClientGeocoder();

    if(country) {
      address = address + " " + country;
    }
    
    geocoder.getLatLng(
      address,
      function(point) {
        if (point) {
          $('map_container').show();
          google_map_display(point)
        }
      }
    );
  }    
}

function google_map_display(point) { 
  var map = new GMap2($("map"));

  map.setCenter(point, 13);
  var marker = new GMarker(point);
  map.addOverlay(marker);
  map.addControl(new GSmallMapControl());
  map.addControl(new GMapTypeControl());
}

function toggle_ajax_working(state) {
//  if(state) {
//    $('ajax_working').style.display = 'block';
//  } else {
//    $('ajax_working').style.display = 'none';
//  }
}

// Disable form elements
function fdisable(elements) {
  if(elements.length > 0) {
    for(var i = 0; i < elements.length; i++) {
      if(undefined != elements[i] && elements[i] != null)
        elements[i].disable();
    }
  }
}

// Enable form elements
function fenable(elements) {
  if(elements.length > 0) {
    for(var i = 0; i < elements.length; i++) {
      elements[i].enable();
    }
  }
}

function start_church_slideshow() {
  var pics = $('church_slideshow').select('.slide');
  if(pics.length  > 1) {
    new PeriodicalExecuter(function(pe) {
      var pics = $('church_slideshow').select('.slide');
      var visible_pic = 0;
      for(i=0; i < pics.length; i++) {
        if(pics[i].visible())
          visible_pic = i;
      }
      var next_pic = (visible_pic == pics.length - 1 ? 0 : visible_pic + 1);
      /*constrain_image(pics[next_pic].id);*/
      Effect.Fade(pics[visible_pic].id, { duration: 2.0 });
      Effect.Appear(pics[next_pic].id, { duration: 2.0 });
    }, 5);
  } else {
    if(pics.length == 1)
      pics[0].show();
  }
}

function constrain_image(element_id) {
  var box_w = $('church_slideshow').getDimensions().width;
  var box_h = $('church_slideshow').getDimensions().height;
  var element_w = $(element_id).immediateDescendants()[0].width;
  var element_h = $(element_id).immediateDescendants()[0].height;
  
  if(element_w > box_w || element_h > box_h){
    ratio_x = box_w / element_w;
    ratio_y = box_h / element_h;
    if(ratio_x > ratio_y){
      $(element_id).immediateDescendants()[0].style.width = ratio_y * element_w + "px";
      $(element_id).immediateDescendants()[0].style.height = ratio_y * element_h + "px";
      
      // Center image horizontally in box
      // $(element_id).immediateDescendants()[0].style.left = (box_w - (ratio_y * element_w))/2 + 'px';
      
    } else{
      $(element_id).immediateDescendants()[0].style.width = ratio_x * element_w + "px";
      $(element_id).immediateDescendants()[0].style.height = ratio_x * element_h + "px";
      
      // Center image vertically in box
      $(element_id).immediateDescendants()[0].style.top = (box_h - (ratio_x * element_h))/2 + 'px';
      
    }
  } else {
    
  }
}

function event_repeats_toggle(freq, domId) {
  if(freq == 'Daily' || freq == 'Monthly' || freq == 'Weekly' || freq == 'Yearly') {
    $(domId).show();
  } else {
    $(domId).hide();
  }
  
  if(freq == 'Weekly') {
    $(domId + '_repeat_by').hide();
    $(domId + '_repeat_on').show();
  } else if(freq == 'Monthly') {
    $(domId + '_repeat_on').hide();
    $(domId + '_repeat_by').show();
  } else {
    $(domId + '_repeat_on').hide();
    $(domId + '_repeat_by').hide();
  }
  
  if(freq == 'Daily') {
    $(domId + '_time_span').innerHTML = 'days';
  } else if(freq == 'Weekly') {
    $(domId + '_time_span').innerHTML = 'weeks';
  } else if(freq == 'Monthly') {
    $(domId + '_time_span').innerHTML = 'months';
  } else {
    $(domId + '_time_span').innerHTML = 'years';
  }
}

function event_range_toggle(button_id, field_id) {
  if($(button_id).checked) {
    $(field_id).show();
  } else {
    $(field_id).hide();
  }
}

function hide_date_time_pickers() {
  var date_pickers = $('MB_main').getElementsByClassName('date_picker');
  var time_pickers = $('MB_main').getElementsByClassName('time_picker');
  
  
  for(d = 0; d < date_pickers.length; d++) {
    date_pickers[d].hide();
  }

  for(t = 0; t < time_pickers.length; t++) {
    time_pickers[t].hide();
  }
}

function hide_select_elements(){
  if (ie6_fix_is_present) hide_select_elements_now();
}

function show_select_elements(){
  if($('MB_main')!=null)
    if($('MB_main').getElementsByTagName('select')[0].style.visibility=='hidden'){
      var select_pickers = $('MB_main').getElementsByTagName('select');
  
      for(d = 0; d < select_pickers.length; d++) {
        select_pickers[d].style.visibility='visible';
      }
    }
}

function open_modal_box(){
  [ $('modalBox'), $('curtain'), $('admin_menu2') ].each(Element.show);
  
  selects=document.getElementsByTagName("select");
  for ( i=0; i<selects.length; i++ ) { selects[i].style.visibility = "hidden" };
  
  selects=$('modalBox').getElementsByTagName("select");
  for ( i=0; i<selects.length; i++ ) { selects[i].style.visibility = "visible" };
  
  selects=$A($('modalBox').getElementsByTagName("form")).findAll( function(frm){ return frm.enctype.indexOf('multipart') >= 0; });
  for ( i=0; i<selects.length; i++ ) { selects[i].target = "upload_frame" };
  
  members_g=0;
  $('MB_main').insert( {'bottom' : '<div style="clear:both; height:0; font-size:0">&nbsp;</div>'} );
  $('MB_main').insert( {'bottom' : '<iframe id="upload_frame" name="upload_frame" style="height:0; font-size:0; width:0; border: none; visibility:hidden"></iframe>'} );
  
  if (!clear_inserted) { $('MB_main').insert( {'after' : '<div style="clear:both; height:1px; font-size:0">&nbsp;</div>'} ); clear_inserted = true;}
  if (flash_notice!=''){
    if ($('notice_wrapper')) $('notice_wrapper').remove();
    $('MB_main').insert( {'top' : '<div id="notice_wrapper" class="' + flash_notice_purpose + '_message">' + flash_notice + '</div>'} );
    new Effect.Highlight('notice_wrapper', {duration:2, endcolor: (flash_notice_purpose == 'warning')? '#ffdddd' : '#ccffcc' });
    flash_notice = '';
  }
  flash_notice_purpose = 'success';
  
  close_loading();
  $("modalBox").scrollTop = 0;
}

function close_modal_box(){
  [ $('modalBox'), $('curtain'), $('admin_menu2') ].each(Element.hide);
  selects=document.getElementsByTagName("select");
  for ( i=0; i < selects.length; i++ ) { selects[i].style.visibility = "visible" };
  window.location.reload();
}

function open_loading(){
  selects=document.getElementsByTagName("select");
  for ( i=0; i<selects.length; i++ ) { selects[i].style.visibility = "hidden" };
  $('curtain').insert( {'before' : '<div id="loading_div"><div id="loading_inside"></div><p id="loading_square"><img src="/images/loading2.gif" /><br />loading</p></div>'} );
}

function close_loading(){
  if ($('loading_div')) $('loading_div').remove();
}

function domain_av_init(has_domain){
  if (has_domain == 'no_domain'){
    $('domain_av_tr').show();
    $('church_domain').style.backgroundColor = '#FFFFFF';
    $('church_domain').style.color = '#000000';
    $('domain_av_span').innerHTML = "<a onclick=\" if (validate_domain()) { $('domain_av_span').innerHTML='<img src=\\'/images/loading.gif\\' height=\\'15\\' />' ; new Ajax.Request('/churches/check_domain', {asynchronous:true, evalScripts:true, method:'get', parameters:'authenticity_token=' + encodeURIComponent('04fa7cf71b73567819baf1315a3a1b31aecbefe4') + '&amp;domain=' + $('church_domain').value}); return false;}\" href=\"#\">Check availability</a>"
  }
  else{
    $('domain_av_tr').hide();
    $('church_domain').style.backgroundColor = '#FFFFFF';
    $('church_domain').style.color = '#000000';
  }
}

function check_domain_price(){
  if ($('register_domain').checked){
     $('domain_price').show();
     $('no_domain_total').hide();
     $('domain_total').show();
   }
  else{
    $('domain_price').hide();
    $('domain_total').hide();
    $('no_domain_total').show();
  } 

}

function validate_domain(){
  sString = $('church_domain').value;
  while (sString.substring(0,1) == ' '){sString = sString.substring(1, sString.length);}
  if (sString=='') return false;
  return true;
}
