/* Copyright (c) Trafo (trafo dot com dot tr || http://www.trafo.com.tr)
 * Coder: Kerim ÇALIK (kcalik AT gmail dot com || kcalik@gmail.com)
 */

//Global değişkenler
var json;
var jsonCache = new Object();
var jsonShare = null;
var animateStatus = false;
var animateInterval = 0;
var widgetStopTime = 0;
var status = false;
var validateEventShare;
var $datePicker;
var datec = 0;
var lang = langcode;
var buttonCount = 0;
var lastMonth = false;

function AddEventToCalendar(eventid){
    var data = AjaxSetup('/Process.php', {op: 'addmycalendar', eid: eventid}, false, true, false);
    //var cssClass = $(this).attr('class');

    if (data.success) {
        $("div#middle > div.wrapper").prepend('<div class="mainpage form-message"><p>'+eval(data.message)+'</p><a>'+aclose+'</a></div>');
        $("#add-mycalendar"+eventid).removeClass("pin").addClass("unpin").text(removefromcalendar);
        //if(cssClass == 'add-mycalendar')
        //	$(this).removeClass('add-mycalendar').addClass('delete-mycalendar');
    } else {
        $("div#middle > div.wrapper").prepend('<div class="mainpage form-message"><p>'+eval(data.message)+'</p><a>'+aclose+'</a></div>');
    	//$(this).removeClass('delete-mycalendar').addClass('add-mycalendar');
        //$("body").append('<div class="form-message"><p><b>'+newsletterform+'</b><br />'+eval(data.message)+'</p><a>'+aclose+'</a></div>');        
    }    
}


function AddMyCalendar(eventId){
    var data = AjaxSetup('/Process.php', {op: 'addmycalendar', eid: eventId}, false, true, false);
    var $label = $('#day-detail-tool #add-mycalendar');

    if (data.success) {
        $("div#middle > div.wrapper").prepend('<div class="mainpage form-message"><p>'+eval(data.message)+'</p><a>'+aclose+'</a></div>');

        if($label.attr('class')=='add-mycalendar')
		{
            $label.removeClass().addClass('delete-mycalendar');
			$label.unbind().bind('click',function(){
               RemoveMyCalendar(eventId);
            });
		}
        else
		{
            $label.removeClass().addClass('add-mycalendar');
			$label.unbind().bind('click',function(){
               AddMyCalendar(eventId);
            });
		}
    }else{
        $("div#middle > div.wrapper").prepend('<div class="mainpage form-message"><p>'+eval(data.message)+'</p><a>'+aclose+'</a></div>');
    }
}

function RemoveMyCalendar(eventId)
{
    var data = AjaxSetup('/Process.php', {op: 'removemycalendar', eid: eventId}, false, true, false);
    var $label = $('#day-detail-tool #add-mycalendar');

    if (data.success) {
        $("div#middle > div.wrapper").prepend('<div class="mainpage form-message"><p>'+eval(data.message)+'</p><a>'+aclose+'</a></div>');

        if($label.attr('class')=='add-mycalendar')
		{
            $label.removeClass().addClass('delete-mycalendar');
			$label.unbind().bind('click',function(){
               RemoveMyCalendar(eventId);
            });
		}
        else
		{
            $label.removeClass().addClass('add-mycalendar');
			$label.unbind().bind('click',function(){
               RemoveMyCalendar(eventId);
            });
		}
    }else
	{
        $("div#middle > div.wrapper").prepend('<div class="mainpage form-message"><p>'+eval(data.message)+'</p><a>'+aclose+'</a></div>');
    }
}

//Özellikler
var dc = function(a) {
    return document.createElement(a);
};

$.fn.delay = function(time, name) {

    return this.queue((name || "fx"), function() {
        var self = this;
        setTimeout(function() {$.dequeue(self);}, time);
    });

};

jQuery.fn.extend({
    slideRightShow: function() {
        return this.each(function() {
            $(this).show('slide', {direction: 'right'}, 500);
        });
    },
    slideLeftHide: function() {
        return this.each(function() {
            $(this).hide('slide', {direction: 'left'}, 500);
        });
    },
    slideRightHide: function() {
        return this.each(function() {
            $(this).hide('slide', {direction: 'right'}, 500);
        });
    },
    slideLeftShow: function() {
        return this.each(function() {
            $(this).show('slide', {direction: 'left'}, 500);
        });
    },
    removeCss: function(cssName) {
        return this.each(function() {

            return $(this).attr('style',

            jQuery.grep($(this).attr('style').split(";"),
                    function(curCssName) {
                        if (curCssName.toUpperCase().indexOf(cssName.toUpperCase() + ':') <= 0)
                            return curCssName;
                    }).join(";"));
        });
    }
});

function DateFormat(date) {
    var obj = new Date(date);
    var day = Number(obj.getDate()) < 10 ? "0" + obj.getDate() : obj.getDate();
    var month = Number(obj.getMonth()) + 1;

    month = month < 10 ? "0" + month : month;

    return day + "." + month + "." + obj.getFullYear();
}

/*function replaceAll(txt, replace, with_this) {
    return txt.replace(new RegExp(replace, 'g'), with_this);
}*/
/*
function AjaxSetup(sendPage, params, processCache, errorWindow,sync) {
    var message = null;
    
    loadingCalendar(true);    
    
    $.ajax({
        type: 'POST',
        url: sendPage,
        data: params,
        dataType: 'json',
        cache: processCache,
        async: sync,
        success: function(data) {    		
    		if(data.success)	
    			message = data.message;
    		AddLog(data.message);
        },
        error: function(xhr, status, error) {
            if (!errorWindow)
                AddLog(xhr.responseText);
        },
        complete: function() {
            loadingCalendar(false);
        }
    });
    return message;
}
*/
function AjaxSetup(sendPage, params, processCache, errorWindow,sync) {
    var result = null;    
    
    $.ajax({
        type: 'POST',
        url: sendPage,
        data: params,
        dataType: 'json',
        cache: processCache,
        async: sync,
        success: function(data) {    		
            result = data;
        },
        error: function(xhr, status, error) {
            if (!errorWindow)
                alert(xhr.responseText+"-" + error);
        },
        complete: function() {
            loadingCalendar(false);
        }
    });
    return result;
}

// Gün detayında bulunan renkleri oluşturur
function getEventPointDayDetail(id, selectedDate) {
	
    $('#container-event-color-20x10').html('');

    $.each(json.events, function(i, event) {
        if (event.d == selectedDate) {
	
            if ($('.day-detail').is(':hidden'))
                $('.day-detail').slideLeftShow();

            status = true;
            ShowHideLoader(true);

            //if (event.c.length > 0) {
                //for (i = 0; i < event.c.length; i++) {
                    $('#container-event-color-20x10').append(
                        $(dc('span'))
                        .addClass('event-color-20x10')
                        .css('background-color', event.c).attr('id', 'event-color-20x10_' + event.id)
                        .bind('click', function() {                        	
                            getEventDetail($(this).attr('id').split('_')[1]);
                        })
                    );
                //}
            //}        
        }
    });
    
    if($('.event-color-20x10').length > 13)
    {
    	$('.cal-up').show();
    	$('.cal-down').show();
    	$('#container-event-color-20x10').flashscroll();
    }
    else
    {
    	$('.cal-up').hide();
    	$('.cal-down').hide();
    	//$('#container-event-color-20x10').flashscroll();
    }
    
	getEventDetail(id);
}

function ShowHideLoader(status) {
    var display = status ? 'none' : 'block';

    $('#day-detail-tool').css('display', display);
    $('#day-detail-content').css('display', display);
    $('#day-detail-loader').css('display', status ? 'block' : 'none');
}

// İstenilen gün detayını döndürür
function getEventDetail(id) {
    
    ShowHideLoader(false);
    //AddLog(id + ' - Veri alınıyor');
    status = false;

    //{"event":[{"id":1,"ip":"image.jpg","t":"başlık","d":"24 Kasım Pazartesi / 12:,,","l":"Harbiye","c":"içerik"}]};
    var data = AjaxSetup('/Process.php', {op: 'event', eventId: id, lang: lang}, false, true,false);

    try{
        var jsonEvent = data.message;

        if(jsonEvent != null){
			jsonShare = jsonEvent;
			var temp = id.split(',');
			if(temp.length > 1)
				id = temp[0];
	
            $('#eventid').val(id);

			//console.log(jsonEvent);

            $('.day-title').html(jsonEvent.t);
            $('p#share-title').html($('.day-title').html());
            $('.day-time').html(jsonEvent.d);
            $('.day-location').html(jsonEvent.l);
            $('.day-spot-text').html(jsonEvent.c);
			
			if(jsonEvent.b != '')
			{
				$('.day-ticket').html('<a href="' + jsonEvent.b + '" target="_blank" style="color:#fff;">' + (lang == 'en' ? 'Tickets' : 'Bilet al') + '</a>');
			}

            if(jsonEvent.i != "")
                $('div#day-detail-image').html('<img src="' + jsonEvent.i + '" alt="" style="width:280px;height:140px;" />');
			else
				$('div#day-detail-image').html('');

            if(jsonEvent.mc == 1)
			{
                $('#add-mycalendar').removeClass('add-mycalendar').addClass('delete-mycalendar')
				$('#add-mycalendar').unbind().bind('click',function(){
                   RemoveMyCalendar(id);
                });
			}
            else
			{
                $('#add-mycalendar').removeClass('delete-mycalendar').addClass('add-mycalendar');
				$('#add-mycalendar').unbind().bind('click',function(){
                   AddMyCalendar(id);
                });
			}
        }
    }catch(err){
        alert(err);
        ShowHideLoader(true);
    }
}

// Log tutar
function AddLog(log) {
    $('#log').prepend($(dc('span')).html(log = log != undefined ? log : 'undefined').fadeIn('slow').css('display', 'block'));
}

function processWaiting(){
    return $(dc('div')).css({'width':16,'height':16,'float':'left','display':'block','background':'url(media/calendar/ajax-loader-16x16.gif) no-repeat'}).attr('id','process-wating');
}

var FC = (function(){
    var stopTime = 0;
    
    function replaceAll(txt, replace, with_this) {
        return txt.replace(new RegExp(replace, 'g'), with_this);
    };
    
    return {
        open: function(fn) {
            if ($('.calendar-widget-create').is(':visible')) {
                $('.calendar-widget-create').hide('slide', {direction: 'left'}, 500);
                FC.stopTime += 500;
            }
	
            //var s = $('#news-holder a.control');
	
            $('.dp-calendar').css('height', 'auto');
            $('.calendar-container').css({bottom: 0, 'overflow': 'visible'});
            $('#date-picker').css({'top':0,'display':'block'});
            $('#date-picker').delay(FC.stopTime).animate({top: -($('#date-picker').height() + 2)}, 400, function() {
                $('.calender').css('z-index', 9997);

                var flyCTop = -206;
				AddLog($('.dp-calendar').height());
                if ($('.dp-calendar').height() > 280)
                    flyCTop = -246;
                //if ($('.dp-calendar').height() >= 280)
                //    flyCTop = -206;

                $(this).css('z-index', 9999).animate({top: flyCTop}, 400, function() {
                    $('#change-calendar-type').css('z-index', 9999);
	
                    if ($.browser.msie && parseInt($.browser.version.split('.')[0]) < 9)
                        $('#change-calendar-type').css('top', 0);
	
                    $('#change-calendar-type div:first-child').slideLeftShow();
                    status = true;

                    if (fn != undefined)
                        fn();

                    $('#montly-calendar').removeClass('open-montly-calendar').addClass('close-montly-calendar');
                });
            });
	        
            $.Watermark.ShowAll();
            buttonCount = 0;

			//console.log($("input[name='change-calendar-group']:checked").val());


			
            if ($("input[name='change-calendar-group']:checked").val() == 1) {
				$('.dp-calendar ul').css('left', -364);
				if($('.jScrollPaneContainer').length == 0)
				{
					$('.jScrollPaneContainer').removeAttr('style');
		            $('#date-picker-list-container').removeAttr('style');
		            $('#date-picker-list-container').css('overflow','hidden');
					$('#date-picker-list-container').jScrollPane();
				}
            }
			else
			{
				$('.dp-calendar ul').css('left', 0);
			}
			
			
			$('.dp-nav-next-month').bind('click', function(){
				if ($("input[name='change-calendar-group']:checked").val() == 1) {
					$('.dp-calendar ul').css('left', -364);
					if($('.jScrollPaneContainer').length == 0)
					{
						$('.jScrollPaneContainer').removeAttr('style');
			            $('#date-picker-list-container').removeAttr('style');
			            $('#date-picker-list-container').css('overflow','hidden');
						$('#date-picker-list-container').jScrollPane();
					}
	            }
				else
				{
					$('.dp-calendar ul').css('left', 0);
				}
			});
			
			$('.dp-nav-prev-month').bind('click', function(){
				if ($("input[name='change-calendar-group']:checked").val() == 1) {
					$('.dp-calendar ul').css('left', -364);
					if($('.jScrollPaneContainer').length == 0)
					{
						$('.jScrollPaneContainer').removeAttr('style');
			            $('#date-picker-list-container').removeAttr('style');
			            $('#date-picker-list-container').css('overflow','hidden');
						$('#date-picker-list-container').jScrollPane();
					}
	            }
				else
				{
					$('.dp-calendar ul').css('left', 0);
				}
			});
			
        },
        close: function(fn) {
            clearInterval(animateInterval);
            $('.dp-calendar').css('height', 'auto');

            if ($('#date-picker').is(':visible')) {
                if ($('#calendar-share-container').is(':visible')) {
                    $('#calendar-share-container').slideRightHide();
                    FC.stopTime += 500;
                }
                if ($('.day-detail').is(':visible')) {
                    $('.day-detail').delay(FC.stopTime).hide('slide', {direction: 'left'}, 500);
                    FC.stopTime += 500;
                }
	
                $('#change-calendar-type div:first-child').delay(FC.stopTime).hide('slide', {direction: 'left'}, 300, function() {
                    $(this).parent().css('z-index', 9990);
                    $('.calender').css('z-index', 9998);
                    $('#date-picker').animate({top: ($('#date-picker').height() + 2)}, 1000, function() {
                        $('#date-picker').css('z-index', 9997);
                        $(this).css('display', 'none');
                        status = false;
                        widgetStopTime = FC.stopTime + (FC.stopTime == 0 ? 1200 : 1500);

                        if (fn != undefined)
                            fn();

                        $('#montly-calendar').removeClass('close-montly-calendar').addClass('open-montly-calendar');
                    });
                });
	            
                validateEventShare.resetForm();
                $.Watermark.ShowAll();
            } else {
                if (fn != undefined)
                    fn();
            }
            buttonCount = 0;
        },
        createWeek: function(type){

            if ($('.calendar li').size()) {
                $('.calendar').empty();
            }

            var data2 = AjaxSetup($.dcVariable.V_PROCESS, {op: 'weeklycalendar', sec: type}, false, true, false);
            var json2 = data2.message;

            if(json2 != null){

                var date = new Date();
                var $ul = $('.calendar');
                var day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
                var $month = $ul.append(
                                            $(dc('li'))
                                            .attr('id', 'month')
                                            .html('<div><h1>' + day + '</h1><h4>' + (lang == "tr" ? Date.monthNamesUpper[date.getMonth()] : Date.monthNamesUpperEn[date.getMonth()])  + '</h4></div>')
                                        );
                var dbDay;
                var d = 0;

                for (var i = 0; i < json2.calendar.length; i++) {
                    d = i < 6 ? i + 1 : 0;
                    dbDay = json2.calendar[i].d.split('.')[0];

                    $ul.append(
                        $(dc('li'))
                        .attr('id', 'day_' + (i + 1))
                        .addClass('bottom-day-item')
                        .html('<div><h3>' + dbDay + '</h3><h6>' + (lang == "tr" ? Date.dayNames[d] : Date.dayNamesEn[d]) + '</h6><div class="point"></div></div>')
                    );

                    $('#date-picker').css({'position': 'absolute'});

                    var mod = 0;

                    for (var z = 0; z < json2.calendar[i].c.length; z++) {
                        $('li:last-child div div', $ul).append(
                            $(dc('span'))
                            .addClass('event-color-14x5')
                            .css('background-color', json2.calendar[i].c[z])
                            .attr('id', 'day_' + (i + 1) + '_point_' + (z + 1) + "_" + json2.calendar[i].id)
                        );

                        mod++;

                        if (mod % 3 == 0)
                            $('#day_' + (i + 1) + '_point_' + (z + 1) + "_" + json2.calendar[i].id).css('margin-right', '0');
                    }

                    $('#day_' + (i + 1)).bind('click', function() {
                        var count = 0;
                        var id = parseInt($(this).attr('id').split('_')[1]) - 1;
                        var eventId = 0;

                        $('.point span', $(this)).each(function(index) {
                            count++;
                            eventId = $(this).attr('id').split('_')[4];
                        });

                        //Bu özellik devre dışı bırakıldı
                        /*var dbMonth = parseInt(json2.calendar[id].d.split('.')[1]);
                        var currentMonth = (new Date().getMonth())+1;

                        if(dbMonth < currentMonth){
                            $('.dp-nav-prev-month').trigger('click');
                        }else if(dbMonth > currentMonth){
                            $('.dp-nav-next-month').trigger('click');
                        }*/

                        if(!$('#date-picker').is(':visible')){
                            FC.open(function(){
                                if (count > 0) {
                                    getEventPointDayDetail(eventId, json2.calendar[id].d);
                                }
                            });
                        }
                    });
                }
            }
        },
        getFullName: function(){
            var data = AjaxSetup($.dcVariable.V_PROCESS,{op: 'userfullname'},true,false,false);
            var fullname = data.message;

            if(fullname != null || fullname != undefined){
                    $('#user-login-container #user-logout #left span').html(fullname);

                    $('#user-login-container #user-login').fadeOut(500, function() {
                            $('#calendar-holder #user-login-container #user-logout').fadeIn(300);
                    });
            }
        },
        widget:{
            layout: function(){
                var color = new Array("ff0000", "ff9c00", "fcff00", "8aff00", "2e9fff", "6d0efb", "fb0ed1", "b0b0b0");
                var cssClass = new Array("red", "orange", "yellow", "green", "blue", "purple", "pink", "gray");
                var $ul = $('#select-color');
                var xColor = "b0b0b0";
                var xRow = 3;
                var xTitle = "İKSV'de görmeyi planladığım etkinlikler";
		
                for (var i = 0; i < color.length; i++) {
                    $ul.append($(dc('li')).css('background-color', '#' + color[i]).attr('rel', cssClass[i]));
                    $('li', $ul).bind('click', function() {
                        xColor = $(this).css('background-color');
                        $('#widget-preview').css('background-color', $(this).css('background-color'));
                        $('#widget-preview').attr('class', '').addClass($(this).attr('rel'));
                    });
                }
		
                $('#calendar-widget-create textarea').maxlength({status: true, showAlert: false, slider: false, maxCharacters: 45});

                $('#txtWidgetTitle').live('keyup', function() {
                    $('#widget-title p').text($(this).val());
                    xTitle = $(this).val();
                });
		
                $('#cbRows').change(function() {
                    var row = $(this).val();
                    var $li = $('#widget-rows-container ul:first-child > li').html();

                    xRow = row;
                    $('#widget-rows-container ul:nth-child(1)').first().html('');

                    for (var i = 0; i < row; i++) {
                        $('#widget-rows-container ul:nth-child(1)').first().append($(dc('li')).html($li));
                    }
                });
		
                var btnStatus = true;
			
                $('.calendar-widget-create #calendar-widget-create-button').click(function() {
                    $btn = $('label', this);

                    if (btnStatus) {
                        $('.calendar-widget-create table').hide('slide', {direction: 'right'}, 500, function() {
                            $('.calendar-widget-create #create-preview-code').show('slide', {direction: 'left'}, function() {
							
                                //var data = AjaxSetup('/Process.php', {op: 'createwidget', uid: 1, w: 300, h: xRow, c: xColor, t: xTitle}, false, true,false);
								
								$.post('/Process.php', {op: 'createwidget', uid: 1, w: 300, h: xRow, c: xColor, t: xTitle}, function(response){
									
									var hash = response.message;

	                                $('p:last-child', $('.calendar-widget-create #create-preview-code')).text('<script src="http://demo.trafo.com.tr/iksv/widget/js/postmessage.js?h=' + hash + '" type="text/javascript"></script><script src="http://demo.trafo.com.tr/iksv/widget/js/tw.js?h=' + hash + '" type="text/javascript"></script>');
	                                $btn.text('DEĞİŞTİR');
	                                btnStatus = false;
									
								}, 'json');

                                
                            });
                        });
                    } else {
                        btnStatus = true;
                        $btn.text('DEVAM ET');
                        $('.calendar-widget-create #create-preview-code').hide('slide', {direction: 'right'}, function() {
                            $('.calendar-widget-create table').show('slide', {direction: 'left'}, 500);
                        });
                    }
                });
            },
            create: function(){
                if (!$('.calendar-widget-create').is(':visible')) {
                    FC.Close;
                    widgetStopTime = widgetStopTime >= 1500 ? widgetStopTime : 0;
                    $('.calendar-container').css({bottom: 0, 'overflow': 'visible'});
                    $('.calendar-widget-create').css({'display': 'block', top: 0});
                    $('.calendar-widget-create').delay(widgetStopTime).animate({top: -521}, 400);
                }
            }
        }
    };
})();

function cssIEHack() {
    $('.calendar-container .calendar li:last-child').css({'border-right': 0, width: 60});
    $('.calendar-container .calendar li:last-child div').css('border-right', 0);
    $('.calendar-container .calendar-widget-create #widget-preview #widget-page a:last-child').css('margin-right', '0px');
}

function loadingCalendar(status) {
    if (status) {
        $('#calendar-holder #loading-calendar').delay(500).hide(50, function() {
            $('#calendar-holder .wrapper').show(50);
        });
    } else {
        $('#calendar-holder #loading-calendar').hide(50, function() {
            $('#calendar-holder .wrapper').delay(500).show(50);
        });
    }
}

function getFullName(){
    var fullname = AjaxSetup($.dcVariable.V_PROCESS,{op: 'userfullname'},true,false,false);

    if(fullname != null || fullname != undefined){
        $('#user-login-container #user-logout #left span').html(fullname);
        $('#user-login-container #user-login').fadeOut(500, function() {
            $('#calendar-holder #user-login-container #user-logout').fadeIn(300);
        });
    }
}

$(function() {

    $.dpText = {
        TEXT_PREV_YEAR: 'Önceki yıl',
        TEXT_PREV_MONTH: 'Önceki ay',
        TEXT_NEXT_YEAR: 'Sonraki yıl',
        TEXT_NEXT_MONTH: 'Sonraki ay',
        TEXT_CLOSE: 'Kapat',
        TEXT_CHOOSE_DATE: 'Tarih seç',
        HEADER_FORMAT: 'mmmm yyyy'
    }

    $.dcVariable = {
    	V_OFFSET: 3,
    	V_START_DATE: '01.01.2010',
    	V_PROCESS: '/Process.php'
    }
    
    $('#user-login-form').validate({
        ignoreTitle: false,
        rules: {
            pass: {
                required: true/*,
                rangelength: [4, 12]*/
            },
            email: {
                required: true,
                email: true
            }
        },
        messages: {
            pass: {required: "", rangelength: ""},
            email: {required: "", email: ""}
        },
        submitHandler: function(form) {
            //$('#user-login-container #user-login').fadeOut(500, function() {
                $.ajax({
                    type: 'POST',
                    url: $.dcVariable.V_PROCESS,
                    data: {op: 'login', email: $('#user-login-email').val(), pass: $('#user-login-pass').val()},
                    dataType: 'json',
                    cache: false,
                    success: function(data) {
                    	if (data.success) {
                    		$('#calendar-holder #user-login-container #user-login').fadeOut(300,function(){
                    			$('#user-login-container #user-logout #left span').html(data.message);
                            	$('#calendar-holder #user-login-container #user-logout').fadeIn(300);	                    			
                    		});                    		
                        } else {
                            $('#calendar-holder #user-login-container #user-login-request').fadeIn(200, function() {
                                $('span',this).html(data.message);
                                                               
                                $('a',this).click(function(){
                                	$(this).parent().fadeOut(300);
                                });                                
                            });
                        }
                    },
                    error: function(xhr, status, error) {
                        AddLog(xhr.responseText);
                    }
                });
            //});
            return false;
        }
    });
    
    function setCalendar(type) {
        
	    $datePicker = $('#date-picker')
			            .datePicker(
				            {
				                inline: true,
				                startDate: $.dcVariable.V_START_DATE,
				                showYearNavigation: false,
				                selectMultiple: false,
				                showHeader: 1,
				                renderCallback: CalendarCallback
				            }
			            );
        FC.createWeek(type);   
    }

    setCalendar($("input[name='select-calendar']:checked").val());
    FC.getFullName();

    function ListCalendar(date, color, title, category, eventId) {
        $('#date-picker-list').append($(dc('tr')));
        
        var $tr = $('#date-picker-list tr:last-child');
        var dateObj = new Date(date);
        var day = dateObj.getDate();
        var dayName = lang == "tr" ? Date.dayNames[dateObj.getDay()] : Date.dayNamesEn[dateObj.getDay()];
        var monthName = lang == "tr" ? Date.monthNames[dateObj.getMonth()] : Date.monthNamesEn[dateObj.getMonth()];

        for (var i = 0; i < 2; i++) {
            if (i == 0)
                $tr.append($(dc('td')).addClass('left').html(day))
            else
                $tr.append(
                        $(dc('td'))
                        .addClass('right')
                        .html('<span>' + monthName + ' ' + dayName + '</span><p style="color:' + color + '">' + title + '</p><p>' + category + '</p>')
                        .click(function() {
                            getEventPointDayDetail(eventId, DateFormat(date));
                        })
                    );
        }
    }

    function CalendarCallback($td, thisDate, month, year) {
		
		if(typeof(jsonCache['y_' + year]) == 'undefined' || typeof(jsonCache['y_' + year]['m_' + month]) == 'undefined')
		{
			var type = $("input[name='select-calendar']:checked").val();
			//var response = AjaxSetup($.dcVariable.V_PROCESS, {op: 'calendar2', offset: $.dcVariable.V_OFFSET, sec: type}, false, true, false);
			var response = AjaxSetup($.dcVariable.V_PROCESS, {op: 'calendar2', month: month, year: year, sec: type}, false, true, false);
			
			if(typeof(jsonCache['y_' + year]) == 'undefined')
				jsonCache['y_' + year] = new Object();
			
			jsonCache['y_' + year]['m_' + month] = response.message;
			json = jsonCache['y_' + year]['m_' + month];
		}
		else
		{
			json = jsonCache['y_' + year]['m_' + month];
		}

        var date = DateFormat(thisDate);
        datec++;

        $td.bind('click', function() {
            var date = DateFormat(thisDate);

            if ($td.attr('class').split(' ')[0] == 'current-month') {
                getEventPointDayDetail($td.attr('id').split('_')[1], date);
            }
        });
        
        var colorCache = new Object();
        
        if(json != null){
	
			var item = "<div class='container-event-color-5x5'>";
	
            for (var i = 0; i < json.events.length; i++) {
	
                if (json.events[i].d == date && $td.attr('class').split(' ')[0] != 'other-month') {
	
                    eventCount++;
                    
                    var width = 51;

                    if(typeof(colorCache[json.events[i].c.replace('#', '')]) == 'undefined')
                    {
                    	item += "<span class='event-color-5x5' style='background-color:" + json.events[i].c + "'></span>";
                    	colorCache[json.events[i].c.replace('#', '')] = 1;
                    }
                    ListCalendar(thisDate, json.events[i].c, json.events[i].t, json.events[i].d, json.events[i].id);
                    
                    if(!$td.attr('id'))
                    	$td.attr('id', 'weekday_' + json.events[i].id);
                }
            }

			item += "</div>";

            if ($.browser.msie && parseInt($.browser.version.split('.')[0]) < 9) {
                $('div.container-event-color-5x5 span:last-child').css('margin-right', '0px');
            }

            $td.html($td.html() + item);
            
			/*
            var listCount = 0;
            
            for(var i in json.events) {
            	if(parseInt(json.events[i].d.split('.')[1]) == month + 1)
                    listCount++;
            }
            
            if(listCount > 0) {
                
                $('.jScrollPaneContainer').removeAttr('style');
                $('#date-picker-list-container').removeAttr('style');
                $('#date-picker-list-container').css('overflow','hidden');

				console.log($("input[name='change-calendar-group']:checked").val());

                if ($("input[name='change-calendar-group']:checked").val() == 1) {
                    $('.dp-calendar ul').css('left', -364);
					$('#date-picker-list-container').jScrollPane();
                }
				else
				{
					$('.dp-calendar ul').css('left', 0);
				}
            }
			*/
			
			
			
			/*
			if($('.jCalendar tbody tr:last').find('td:last').html() == $td.html())
			{
				if(lastMonth && lastMonth != month)
				{
					if ($("input[name='change-calendar-group']:checked").val() == 1) {
						
						if($('.jScrollPaneContainer').length == 0)
						{
						
							setTimeout(function(){
							
								$('.dp-calendar ul').animate({left: -364}, 300, function(){
									if($('.jScrollPaneContainer').length == 0)
									{
										$('.jScrollPaneContainer').removeAttr('style');
							            $('#date-picker-list-container').removeAttr('style');
							            $('#date-picker-list-container').css('overflow','hidden');
										$('#date-picker-list-container').jScrollPane();
									}
								});
							
							}, 500);
						
						}
					
		            }
				}
	
				lastMonth = month;
			}
			
			
			console.log(lastMonth);
			*/
        }
    }

    FC.widget.layout();

    var toId = 0;
    var shareCalendarItervalId = 0;

    // Events
    $('.calendar-container').mouseenter(function() {
        //AddLog('Üzerinde. IntervalId = ' + toId);
        if (toId != 0)
          clearInterval(toId);
    });

    $('.calendar-container').mouseleave(function() {
        //toId = setTimeout('FC.close()', 4000);
    });

    $("input[name='change-calendar-group']:radio").click(function() {
        if ($(this).val() == 1) {
            $('.dp-calendar ul').animate({left: -364}, 300, function(){
				if($('.jScrollPaneContainer').length == 0)
				{
					$('.jScrollPaneContainer').removeAttr('style');
		            $('#date-picker-list-container').removeAttr('style');
		            $('#date-picker-list-container').css('overflow','hidden');
					$('#date-picker-list-container').jScrollPane();
				}
			});
        } else {
            $('.dp-calendar ul').animate({left: 0}, 300, function(){
				
			});
        }
    });

    $('#day-detail-tool-share').click(function() {
        if ($('.dp-calendar').height() > 260)
            $('#calendar-share-container').css('top',-422)
        else
            $('#calendar-share-container').css('top',-377);
        $('#calendar-share-container').slideRightShow();
    });    

    //var buttonCount = 0;
    function changeShowMontlyCalendar(o) {
        //var bp = o.css('background-position').replace(/px/g, '').split(' ');
        //var cTop = $('#date-picker').css("top").replace(/px/g, '');
        var isVisible = $('#date-picker').is(':visible');
        //if(buttonCount != 0)
            buttonCount++;
        //o.css('background','url(media/calendar/ajax-loader-16x16.gif) no-repeat top center');
        o.css('background','none');

        //if ((parseInt(bp[0]) + parseInt(bp[1])) == 100) {
        if (!isVisible) {
        //if (cTop >= 0 || cTop < 0) {
            FC.open(function() {
            	AddLog('aç');
                o.removeAttr('style');
            	buttonCount = 0;
            });
        } else {
            FC.close(function() {
            	AddLog('kapat');
                o.removeAttr('style');
            	buttonCount = 0;
            });
        }
    }

    $('#montly-calendar').click(function() {
        if(buttonCount == 0)
            changeShowMontlyCalendar($(this));
    });

    $('.close-window').click(function() {
        $(this).parent().hide('slide', {direction: 'left'}, 500);
        validateEventShare.resetForm();
        $.Watermark.ShowAll();
    });

    $('#calendar-holder #user-login-container #user-login input').keypress(function(e) {    	
    	if (e.which == 13) {
            e.preventDefault();
        }
    });

    $('#calendar-holder #user-login-container #user-login a').click(function() {
        $(this).parent().submit();
    });

    /*
    $('#user-login-container #user-logout #right label:first-child').click(function() {
        FC.widget.create();
    	//Widget.Create();
    	//OpenWidgetCreate();
    });
    */

    $('#user-login-container #user-logout #right label:last-child').click(function() {
        window.location.href = "/cikis.php";
    });

    //Takvim seçimi
    $("input[name='select-calendar']:radio").click(function() {
		jsonCache = new Object();
	
        var ct = $(this).val();
		
        FC.close(function() {setCalendar(ct);});
    });

    //Etkinliği paylaş
    $('#calendar-share-container a').each(function(i) {
        var aId = $(this).attr("id").split("-")[2];

        $(this).click(function() {
            socialShare(aId, jsonShare.u, jsonShare.t);
        });
    });

    //Etkinliği mail olarak gönder
    validateEventShare = $('#event-share-form').validate({
        ignoreTitle: false,
        rules: {
            txtFromFullName: {
                required: true
            },
            txtFromEmail: {
                required: true,
                email: true
            },
            txtToFullName: {
                required: true
            },
            txtToEmail: {
                required: true,
                email: true
            }
        },
        messages: {
            txtFromFullName: {required: ""},
            txtFromEmail: {required: "", email: ""},
            txtToFullName: {required: ""},
            txtToEmail: {required: "", email: ""}
        },
        submitHandler: function(form) {
            AddLog('event gönderildi.');
            $.Watermark.ShowAll();
        }
    });

    $('#calendar-share-container label').click(function() {
        $.Watermark.HideAll();
        $('#event-share-form').submit();
        return false;
    });
    
    $('#txtFromFullName').Watermark('Adınız, soyadınız', '#4f4d4d');
    $('#txtFromEmail').Watermark('E-Posta adresiniz', '#4f4d4d');
    $('#txtToFullName').Watermark('Arkadaşınızın adı,soyadı', '#4f4d4d');
    $('#txtToEmail').Watermark('Arkadaşınızın, e-posta adresi', '#4f4d4d');

    if ($.browser.msie && parseInt($.browser.version.split('.')[0]) < 9) {
        AddLog($.browser.version);
        cssIEHack();
    }
    //loadingCalendar(false);
});
