/*  Author:
    TAMER AYDIN - http://tamerayd.in
*/

function setPlaceholder(id) {
    if (id.val()=="" && id.attr("placeholder")!=""){
        id.val(id.attr("placeholder"));
        id.focus(function(){
            if (id.val()==id.attr("placeholder"))
                id.val("");
        });
        id.blur(function(){
            if (id.val()=="")
                id.val(id.attr("placeholder"));
        });
    }
}

function disableImgDrag(e) { //disable image dragging
    e.preventDefault();
}

window.onload = function (e) {
    var evt = e || window.event, imgs, i;
    if (evt.preventDefault) {
        imgs = document.getElementsByTagName('img');
        for (i = 0; i < imgs.length; i++) {
            imgs[i].onmousedown = disableImgDrag;
        }
    }
};

ETI = {
    msie : false,
    webkit : false,
    ff : false,
    idevice : false, //iphone or ipad
    build : function () {
        if ($.browser.msie) {ETI.msie=true}
        if ($.browser.webkit) {ETI.webkit=true}
        if ($.browser.mozilla) {ETI.ff=true}
        if ((navigator.platform.indexOf("iPhone") != -1) || (navigator.platform.indexOf("iPod") != -1) || (navigator.platform.indexOf("iPad") != -1)) {ETI.idevice=true}
        if (!Modernizr.input.placeholder) {
            setPlaceholder($('#searchKeyword'));
        }
        ETI.menu.init();
        ETI.accordion.slideUp('');
        ETI.slider.setTimer();
        ETI.calendar.changePositionTo(1);
        ETI.form.init();
    },
    menu : {
        innerHeight : 0,
        timer : 0,
        slideTimer : 0,
        init : function () {
            $('li.submenu:not(".activeSub")').css('height','0px');
        },
        slideDown : function () {
            var subMenu = $(this).next('li.submenu');
            clearTimeout(ETI.menu.slideTimer);
            ETI.menu.slideTimer = setTimeout(function () {
                ETI.menu.slideUp();
                if (subMenu != -1) {
                    //subMenu.stop().animate({'height':subMenu.children('ul').height()+8},1000);
                    $('#siteNavigation li').removeClass('activeSub');
                    subMenu.stop().animate({'height':subMenu.children('ul').height()+8},'fast');
                    subMenu.addClass('activeSub');
                }
            },500);
        },
        slideUp : function () {
            //$('li.submenu').stop().animate({'height':'0px'},'fast');
            clearTimeout(ETI.menu.timer);
            ETI.menu.timer = setTimeout(function () {$('li.submenu:not(".activeSub")').stop().animate({'height':'0px'},'fast');},1000);
        },
        onMouseEnterSub : function () {
            $('#siteNavigation li').removeClass('activeSub');
            $(this).addClass('activeSub');
            ETI.menu.slideUp();
        },
        onMouseLeaveSub : function () {
            $('#siteNavigation li').removeClass('activeSub');
            ETI.menu.slideUp();
        },
        onMouseEnter : function () {
            $(this).siblings('a').addClass('active');
        },
        onMouseLeave : function () {
            $(this).siblings('a').removeClass('active');
        }
        /*
        onClick : function () {
            var subMenu = $(this).next('li.submenu');
            if (!subMenu.hasClass('expanded')) {
                subMenu.addClass('expanded');
                $('li.submenu').removeClass('epxanded');
                $('li.submenu').stop().animate({'height':'0px'},'fast');
                if (subMenu.index() != -1) {
                    subMenu.stop().animate({'height':subMenu.children('ul').height()+8},1000);
                }
            }
        }
        */
    },
    slider : {
        timer : 0,
        currentPos : 0,
        setTimer : function () {
            clearInterval(ETI.slider.timer);
            if ($('#sliderView').index()!=-1)
                ETI.slider.timer = setInterval(function () {if ($('#sliderView > div').queue('fx').length==0) ETI.slider.next();},12000);
        },
        next : function () {
            if (ETI.slider.currentPos == 3)
                ETI.slider.currentPos = 0;
            else
                ETI.slider.currentPos = ETI.slider.currentPos + 1;
            ETI.slider.move(ETI.slider.currentPos);
        },
        prev : function () {
            if (ETI.slider.currentPos == 0)
                ETI.slider.currentPos = 3;
            else
                ETI.slider.currentPos = ETI.slider.currentPos - 1;
            ETI.slider.move(ETI.slider.currentPos);
        },
        move : function (pos) {
            ETI.slider.setTimer();
            ETI.slider.currentPos = pos;
            $('#sliderShortcuts > a, #sliderView > div > div').removeClass('active');
            $('#sliderShortcuts > a:eq('+ETI.slider.currentPos+'), #sliderView > div > div:eq('+ETI.slider.currentPos+')').addClass('active');
            $('#sliderView > div').stop().animate({'margin-left':'-'+(pos*960)+'px'},'slow');
            $('#sliderView > div > div:not(".active") figure, #sliderView > div > div:not(".active") article').fadeOut('slow');
            $('#sliderView > div > div.active figure, #sliderView > div > div.active article').fadeIn('slow');
        }
    },
    accordion : {
        slideUp : function (parentClass) {
            if (parentClass!='')
                parentClass = '.'+parentClass;
            $('.accordionList'+parentClass+' li').removeClass('opened');
            $('.accordionList'+parentClass+' li.content').slideUp();
            if (parentClass=='')
                $('.accordionList.leftSide li.content li.selected').parent('ul').parent('li').slideDown();
        },
        slideDown : function () {
            var parentClass;
            if ($(this).parent('ul').hasClass('rightSide'))
                parentClass = 'rightSide';
            else
                parentClass = 'leftSide';
            if (!$(this).hasClass('opened')) {
                if ($(this).next('li.content').index()!=-1) {
                    ETI.accordion.slideUp(parentClass);
                    $(this).addClass('opened');
                    $(this).next('li.content').slideDown();
                }
            } else {
                ETI.accordion.slideUp(parentClass);
            }
        }
    },
    calendar : {
        currentPosition : 1,
        monthCount : 17,
        changePositionTo : function (pos) {
            ETI.calendar.currentPosition = pos;
            var leftPos,monthNo;
            switch (pos) {
                case 16:leftPos = 471;monthNo = 24;break;
                case 15:leftPos = 437;monthNo = 21;break;
                case 14:leftPos = 405;monthNo = 18;break;
                case 13:leftPos = 373;monthNo = 15;break;
                case 12:leftPos = 341;monthNo = 12;break;
                case 11:leftPos = 310;monthNo = 11;break;
                case 10:leftPos = 277;monthNo = 10;break;
                case 9:leftPos = 245;monthNo = 9;break;
                case 8:leftPos = 214;monthNo = 8;break;
                case 7:leftPos = 181;monthNo = 7;break;
                case 6:leftPos = 149;monthNo = 6;break;
                case 5:leftPos = 117;monthNo = 5;break;
                case 4:leftPos = 84;monthNo = 4;break;
                case 3:leftPos = 52;monthNo = 3;break;
                case 2:leftPos = 21;monthNo = 2;break;
                default :leftPos = -9;monthNo = 1;break;
            }
            $('#calendarDragContainer').css('left',leftPos);
            $('#calendarSlider > ul li a, #calendarContent article').removeClass('selected');
            $('#calendarSelector'+pos).addClass('selected');
            $('#calendarContent article:eq('+(pos-1)+')').addClass('selected');
            $('#calendarDrag').html(monthNo);
            $('#calendarCurrentMonth').html(monthNo);
        },
        nextMonth : function () {
            if (ETI.calendar.currentPosition != ETI.calendar.monthCount)
                ETI.calendar.changePositionTo(ETI.calendar.currentPosition + 1);
            else
                ETI.calendar.changePositionTo(1);
        },
        prevMonth : function () {
            if (ETI.calendar.currentPosition != 1)
                ETI.calendar.changePositionTo(ETI.calendar.currentPosition - 1);
            else
                ETI.calendar.changePositionTo(16);
        },
        events : {
            onMouseDown : function (event) {
                event.preventDefault ? event.preventDefault() : event.returnValue = false;
                $('body').bind('mousemove',function(e) {ETI.calendar.events.onMouseMove(e);});
                $('body').bind('mouseup',function(e) {ETI.calendar.events.onMouseUp(e);});
            },
            onMouseMove : function (e) {
                var insideDragbox = e.pageX - $('#calendarSlider').offset().left;
                if (insideDragbox > 0 && insideDragbox < 531) {
                    $('#calendarDragContainer').css('left',insideDragbox-34);
                }
            },
            onMouseUp : function (e) {
                $('body').unbind('mousemove');
                $('body').unbind('mouseup');
                var insideDragbox = e.pageX - $('#calendarSlider').offset().left;
                var roundedPos = Math.round((insideDragbox/31)*10)/10;
                if (roundedPos < 1.1) {
                    ETI.calendar.changePositionTo(1);
                } else if (roundedPos > 1.0 && roundedPos < 2.1) {
                    ETI.calendar.changePositionTo(2);
                } else if (roundedPos > 2.0 && roundedPos < 3.1) {
                    ETI.calendar.changePositionTo(3);
                } else if (roundedPos > 3.0 && roundedPos < 4.1) {
                    ETI.calendar.changePositionTo(4);
                } else if (roundedPos > 4.0 && roundedPos < 5.1) {
                    ETI.calendar.changePositionTo(5);
                } else if (roundedPos > 5.0 && roundedPos < 6.1) {
                    ETI.calendar.changePositionTo(6);
                } else if (roundedPos > 6.0 && roundedPos < 7.1) {
                    ETI.calendar.changePositionTo(7);
                } else if (roundedPos > 7.0 && roundedPos < 8.1) {
                    ETI.calendar.changePositionTo(8);
                } else if (roundedPos > 8.0 && roundedPos < 9.1) {
                    ETI.calendar.changePositionTo(9);
                } else if (roundedPos > 9.0 && roundedPos < 10.1) {
                    ETI.calendar.changePositionTo(10);
                } else if (roundedPos > 10.0 && roundedPos < 11.1) {
                    ETI.calendar.changePositionTo(11);
                } else if (roundedPos > 11.0 && roundedPos < 12.1) {
                    ETI.calendar.changePositionTo(12);
                } else if (roundedPos > 12.0 && roundedPos < 13.1) {
                    ETI.calendar.changePositionTo(13);
                } else if (roundedPos > 13.0 && roundedPos < 14.1) {
                    ETI.calendar.changePositionTo(14);
                } else if (roundedPos > 14.0 && roundedPos < 15.1) {
                    ETI.calendar.changePositionTo(15);
                } else if (roundedPos > 15.0) {
                    ETI.calendar.changePositionTo(16);
                }
            }
        }
    },
    pregnancy : {
        changeWeek : function () {
            if (!$(this).hasClass('selected')) {
                $('#pregnancyContent article, #pregnancyCalendar > a').removeClass('selected');
                $(this).addClass('selected');
                var itemIndex = $(this).index();
                $('#pregnancyContent article:eq('+itemIndex+')').addClass('selected');
                $('#pregnancyCalendarSign').remove();
                if (itemIndex!=0) {
                    $('body').prepend('<div id="pregnancyCalendarSign" style="top:'+($(this).offset().top-8)+'px;left:'+($(this).offset().left-8)+'px;"></div>');
                }
            }
        },
        calculate : function () {
            var circleDate = $('#circleDate').val();
            
            //hesaplamalar...
            
            $('#pregnancyResult1,#pregnancyResult2').stop().animate({'padding-bottom':'0px','padding-top':'0px','height':'0px'},'fast',function () {
                
                //sonuclar
                $('#resultWeek').html('12');
                $('#resultDay').html('3');
                $('#resultBirth').html('16.09.2011');
                
                $('#pregnancyResult1').animate({'padding-bottom':'20px','padding-top':'20px','height':'28px'},'fast',function () {
                    $('#pregnancyResult2').animate({'padding-bottom':'20px','padding-top':'20px','height':'28px'},'fast');
                });
            });
        }
    },
    names : {
        type : '',
        show : function(type) {
            $('#switchGender').attr('class','button '+type);
            ETI.names.type = type;
            $('#nameChoice,#nameMeanings div').hide();
            $('#nameLetters,#nameMeanings div.'+type).show();
            $('#nameLetters').attr('class',type);
            $('#nameLetters > a:first').click();
        },
        changeLetter : function () {
            if (!$(this).hasClass('selected')) {
                $('#nameMeanings article, #nameLetters > a').removeClass('selected');
                $(this).addClass('selected');
                var itemIndex = $(this).index();
                $('#nameMeanings article:eq('+itemIndex+')').addClass('selected');
                $('#pregnancyCalendarSign').remove();
                $('body').prepend('<div id="pregnancyCalendarSign" style="top:'+($(this).offset().top-8)+'px;left:'+($(this).offset().left-8)+'px;"></div>');
            }
        },
        switchGender : function () {
            if (ETI.names.type=='male') {
                ETI.names.show('female');
            } else {
                ETI.names.show('male');
            }
        }
    },
    form : {
        init : function () {
            $('.field input, .field textarea').each(function () {
                if ($(this).val()!='')
                    $(this).siblings('label').hide();
            });
        },
        onClick : function () {
            $(this).siblings('input,textarea').focus();
        },
        onFocus : function () {
            $(this).siblings('label').hide();
        },
        onBlur : function () {
            function checkVal(id) {
                if ($(id).val()=='')
                    $(id).siblings('label').show();
            }
            if ($(this).attr('id')=='askBabyBirthdate') {
                setTimeout(function () {checkVal('#askBabyBirthdate');},300);
            } else {
                checkVal('#'+$(this).attr('id'));
            }
        },
        checkbox : function () {
            $(this).siblings('label').click();
        },
        label : function () {
            $(this).siblings('.psuedoCheckbox').toggleClass('checked');
        }
    }
}

$(document).ready(function() {
    
    ETI.build();
    
    $('#siteNavigation li > ul > li.sub').bind('mouseover',ETI.menu.slideDown);
    $('#siteNavigation li > ul > li.submenu').bind('mouseenter',ETI.menu.onMouseEnterSub);
    $('#siteNavigation li > ul > li.submenu').bind('mouseleave',ETI.menu.onMouseLeaveSub);
    $('#siteNavigation').bind('mouseleave',ETI.menu.slideUp);
    $('nav > ul > li > ul').bind('mouseenter',ETI.menu.onMouseEnter);
    $('nav > ul > li > ul').bind('mouseleave',ETI.menu.onMouseLeave);
    //$('#siteNavigation li > ul > li.sub').bind('click',ETI.menu.onClick);
    
    $('.accordionList > li').not('.content').bind('click',ETI.accordion.slideDown);
    
    $('#calendarDrag').bind('mousedown',function(e) {ETI.calendar.events.onMouseDown(e);});
    //$('#calendarDrag').bind('mouseup',function(e) {ETI.calendar.events.onMouseUp(e);});
    
    $('#pregnancyCalendar > a').bind('click',ETI.pregnancy.changeWeek);
    $('.calculatePregnancy').bind('click',ETI.pregnancy.calculate);
    
    $('#nameLetters > a').bind('click',ETI.names.changeLetter);
    $('#switchGender').bind('click',ETI.names.switchGender);
    
    //FORMS
    $('form .field > label').bind('click',ETI.form.onClick);
    $('form .field > input,form .field > textarea').bind('focus',ETI.form.onFocus);
    $('form .field > input,form .field > textarea').bind('blur',ETI.form.onBlur);
    $('.psuedoCheckbox').bind('click',ETI.form.checkbox);
    $('.psuedoCheckbox').siblings('label').bind('click',ETI.form.label);
    $("#askForm").validate({
            rules: {
                    askName: "required",
                    askEmail: {
                            required: true,
                            email: true
                    },
                    askMessage: "required"
            },
            messages: {
                    askName: "Lütfen isminizi giriniz.",
                    askEmail: "Lütfen geçerli bir e-posta adresi giriniz.",
                    askMessage: "Bir mesaj girmelisiniz."
            }
    });
    
});
