/*
 * init start point
 */
jQuery(document).ready(function(){	
  jsddm_init();
  ucalendar_init();
  slider_start();
  initFontResize();
});

/*
 * jsddm part
 */
var jsddm_timeout    = 500;
var jsddm_closetimer = 0;
var jsddm_ddmenuitem = 0;

function jsddm_open(){  
  jsddm_canceltimer();
  jsddm_close();
  jsddm_ddmenuitem = $(this).find('ul').eq(0).css('visibility', 'visible');
}
function jsddm_close(){	
  if(jsddm_ddmenuitem) jsddm_ddmenuitem.css('visibility', 'hidden');
}
function jsddm_timer(){	
  jsddm_closetimer = window.setTimeout(jsddm_close, jsddm_timeout);
}
function jsddm_canceltimer(){	
  if(jsddm_closetimer){	
    window.clearTimeout(jsddm_closetimer);
	jsddm_closetimer = null;
  }
}
function jsddm_init(){  
  if($('#topMenuNav').length > 0){
	document.onclick = jsddm_close;
	$('#topMenuNav > li').bind('mouseover', jsddm_open);
	$('#topMenuNav > li').bind('mouseout',  jsddm_timer);
  }
}

/*
 * ucanlendar part
 */

var ac;

function ucalendar_reload(){
  var day = $('.list-input-day',ac).val();
  var month = parseInt($('.list-input-month',ac).attr('tabindex'));
  var year = $('.list-input-year',ac).val();  
  
  if(month < 10) 
    month = '0'+month;
  
  var date = day+'.'+month+'.'+year;
  var form = ac.closest('form');
  
  if(form.length>0){
    form.append('<input type="hidden" name="choosen_date" value="'+date+'">');
	ac.closest('form').submit();
  }
}

function ucalendar_renew_date(ac,checkDay){
  var dobj = $('.list-input-day',ac);
  var index = $('[class^="list-input"]').index(dobj);
  var m = $('.list-input-month',ac).attr('tabindex');
  var y = $('.list-input-year',ac).val();
  var monthInYear = daysInMonth(m-1,y);
  var list = $('.list-handle:eq('+index+')', ac);
  list.html('');
  
  if($('input[name="show_nill_day"]').val() != ''){  
    $('<a href="javascript: void(0)">&nbsp;</a>')
	  .appendTo(list)
	  .addClass('calendar-day-nr');
  }
    
  //var listInputDay = $('.list-input-day');
  var listInputDayVal = dobj.val();
  var lastNr = null;
  var setLastDay = (listInputDayVal.length < 1) ? false : true;
  
  for(var i=0; i<monthInYear;i++){
	var nr = i+1; nr = (nr<10)?'0'+nr:nr;
	var a = $('<a class="calendar-day-nr" href="javascript: void(0)">'+nr+'</a>');	   
    list.append(a);    
    if(setLastDay && listInputDayVal == nr) setLastDay = false;
    lastNr = nr;
  }
  
  if(setLastDay && lastNr !== null && checkDay){
    dobj.val(lastNr);
  }
  
  ucalendar_listhandle(ac,list,index);
}

function ucalendar_listhandle(ac,list,index){
  $('a', list).bind('click',function(){
    var a = $(this);
    var input = $('[class^="list-input"]:eq('+index+')', ac);      
    var tabindex = a.attr('tabindex');
    if(tabindex && tabindex.length>0) input.attr('tabindex',tabindex);    
    var val = (a.text().length<2)?'':a.text();
    input.val(val);
    ucalendar_renew_date(ac,true);
    /*if(index > 0)$('.list-input-day').val('01');*/
    list.css({visibility:'hidden'});
  });
}

function ucalendar_process(ac){
  $('.list-input-month',ac).each(function(){
	var input = $(this);
    var index = $('[class^="list-input"]').index(this);
    var list = $('.list-handle:eq('+index+') > a', ac);
    var tabindex = parseInt($(this).attr('tabindex'))-1;
    input.val(list.eq(tabindex).text());    
  });
  
  ucalendar_renew_date(ac)
  
  $(document).bind('click', function(){
	$('.list-handle',ac).css({visibility:'hidden'});
  });   
  
  $('.list-handle',ac).each(function(index){
    ucalendar_listhandle(ac,$(this),index);
  });
  
  $('.list-trigger',ac).each(function(index){
    $(this).bind('click',function(){
      var list = $('.list-handle:eq('+index+')', ac);
      if(list.css('visibility') == 'hidden'){
    	ucalendar_bodyscroll(true);
    	$('.list-handle',ac).css({visibility:'hidden'});
    	list.css({visibility:'visible'});
    	
      }else{
    	  ucalendar_bodyscroll(false);
    	$('.list-handle',ac).css({visibility:'hidden'});
      }
      return false;
    });
  });
}


function ucalendar_bodyscroll(flag){
	var padding = flag ? "180px" : "0px"
	$("#content_part .archive-calendar").css("paddingBottom",padding);
}

/*function ucalendar_list_show(list){
  list.css({visibility:'visible'});	
}*/

function ucalendar_init(){	
  ac = $('.archive-calendar');  
  
  if(ac.length > 0){
    ucalendar_process(ac);
  }
}

/*
 * slider part
 */

function slider_start(){
  var photo_gal = $('.photo_gal');
  
  if(photo_gal.length>0){
	var slides = photo_gal.children();
	  
	if(slides.length > 1){
	  photo_gal.cycle({timeout: 5000,pause:1,fx:'none'});
	}else{
	  slides.show();	
	}
  }
}

/*
 * fontsize part
 */

function initFontResize(){
  var resizer = new FontResizer($("#font_resizer_tool > a"), function(){    
	
	$('ul#topMenuNav').find('*').css('font-size', '16px');
	  
	if(typeof scroll == 'function' && 
       $('#bannerArea').length > 0){
		scroll('stop');
		scroll('start');
    }
	
	$("div.archive").attr({ "class" : "archive archive-calendar"});
	$("div.archive").addClass("archive-size-" + (this.currentSize + 1));

	
  });
}
