﻿var dir;
var formObject = {
    "preformSuccess": function(a) {}, 
    "performBeforeSubmit": function(a,b,c) {}
};

(function($) {

    var defaults = {
        color:'#62573a'
    };

    old='';
    w=0;
    h=0;
    urli=0;
    var init = false;
    //target='';


    var methods = {
        init:function(params) {
            // актуальные настройки, будут индивидуальными при каждом запуске
            var options = $.extend({}, defaults, params);

            if (!init) 
            {
                //Создаем базис(канонический) просмотрщика(
                $('body').prepend('<div id="disp" style="display:none;position:absolute;width:100%;height:100%;top:0;left:0;z-index:9999;"></div>');
                $('#disp').append('<div id="disp_wrap" style="display:block;position:absolute;top:0;left:0;z-index:2;"></div>');


                $('#disp_wrap').append('<div id="disp_cont" style="display:block;position:absolute;top:0;left:0;z-index:2;"></div>');
                $('#disp_wrap').append('<div id="disp_nav" style=""></div>');
                $('#disp_wrap').append('<div id="close" style="display:block;background:url(disp/delete.png) right top no-repeat;position:absolute;right:0px;top:0px;cursor:pointer;height:24px;width:24px;z-index:6;"></div>');


                $('#disp_nav').append('<div id="nav_left" style="display:block;background:url(disp/left_arrow.png) left bottom no-repeat;position:absolute;left:5px;bottom:10px;cursor:pointer;height:100%;width:35%;z-index:5;border:0px red solid;"></div>');
                $('#disp_nav').append('<div id="nav_right" style="display:block;background:url(disp/right_arrow.png) right bottom no-repeat;position:absolute;right:5px;bottom:10px;cursor:pointer;height:100%;width:35%;z-index:5;border:0px green solid;"></div>');




                $('#disp').append('<img style="top:50%;left:50%;display:none;position:absolute;z-index:4;" src="disp/loadingAnimation.gif" id="preI">');

                $('#disp').append('<div id="fonII" style="display:none;position:absolute;left:0px;top:0px;width:1px;height:1px;background:white;z-index:1;"></div>');
                $('#disp').append('<div id="fonner" style="display:block;position:absolute;left:0px;top:0px;width:100%;height:100%;background:'+options.color+';z-index:0;"></div>');

                $('#fonner').css('opacity',0.6);
                /////////////////////////////////////////)


                //Инициализируем закрытие просмотрщика по нажатию (
                $("#fonner,#close").expire().livequery('click',function(){
                    obj_on=false;
                    $('#disp').fadeOut('fast');
                    $('#preI').css({
                        display: 'none'
                    });
                    $(idi).css({
                        display: 'none'
                    });
                    $('#fonI').remove();
                //		alert('From remove: '+obj+'\n || '+urli+'\n || '+$('#fonI').attr('src')+'\n || '+w+'\n || '+h+'\n ||css w:'+$('#fonI').css('width')+'\n ||css h:'+$('#fonI').css('height'));
                });	
                //////////////////////////////////////////////////)



					
                //Меняем размер при скролле и ресайзе окна браузера(
                $(window).scroll(function () {
                    if(obj_on=='div_cont')
                        size_maker(w,h,idi,false);
                    else if(obj_on=='img')
                        size_maker(w,h,'#disp_wrap',true,function(){});
                });

                $(window).resize(function (){
                    if(obj_on=='div_cont')
                        size_maker(w,h,idi,false);
                    else if(obj_on=='img')
                        size_maker(w,h,'#disp_wrap',true);
                });
            ///////////////////////////////////////////////////)	
            }
            // инициализируем один раз
            init = true;
            var global_this = $(this).selector;
			
            var idi=0;
            var obj_on=false;
			
            //$(this).css({'border':'1px red solid'});
            $(this).expire('click.view').livequery('click.view',function(event)
            {
                if (!event) event = window.event;
                target = (event.target) ?
                event.target : event.srcElement;
                //alert(global_this);
                //$(global_this).css({'border':'1px red solid'});
                //$(this).css({'border':'6px red solid'});
                size = viewport();
                dw = $(window).width();
                dh = $(window).height();
                urli = $(this).attr('rel');
                $('#disp').css({		
                    top:0, 
                    left:0,
                    width: size[0],
                    height: size[1]
                });
                $('#preI').css({
                    top:(dh-13)/2+$(window).scrollTop(), 
                    left:(dw-208)/2+$(window).scrollLeft(),
                    display:'block'
                });
                $('#disp').fadeIn();


                if(urli.indexOf('#')==-1)
                {
                    if($(global_this).filter(':eq('+($(global_this).index($(target))-1)+')').size()!=0)
                        $('#nav_left').css({
                            'display':'block'
                        });
                    else
                        $('#nav_left').css({
                            'display':'none'
                        });
						
                    if($(global_this).filter(':eq('+($(global_this).index($(target))+1)+')').size()!=0)
                        $('#nav_right').css({
                            'display':'block'
                        });
                    else
                        $('#nav_right').css({
                            'display':'none'
                        });

                    $('#fonI').fadeOut('fast');
                    $('#fonI').unbind('load').remove();
                    $('#disp_cont').prepend("<img style='top:0px;left:0px;display:none;position:absolute;' src='' id='fonI'>");

                    $('#fonI').load(function()
                    {
                        $('#preI').css('display','none');
                        w=$('#fonI').width();
                        h=$('#fonI').height();
                        obj_on='img';
							
                        //			alert('From load: '+obj+'\n || '+urli+'\n || '+$('#fonI').attr('src')+'\n || '+w+'\n || '+h+'\n ||css w:'+$('#fonI').css('width')+'\n ||css h:'+$('#fonI').css('height'));
							
                        size_maker(w,h,'#disp_wrap',true, function (){
                            //Инициализируем навигаю назад (
                            $("#nav_left").expire().livequery('click',function(){
                                if($(global_this).filter(':eq('+($(global_this).index($(target))-1)+')').size()!=0)
                                {
                                    $("#nav_left").expire();
                                    obj_on=false;
                                    $(global_this).filter(':eq('+($(global_this).index($(target))-1)+')').click();
                                }
                            });	
                            ///////////////////////////////)

                            //Инициализируем навигаю вперед (
                            $("#nav_right").expire().livequery('click',function(){
                                if($(global_this).filter(':eq('+($(global_this).index($(target))+1)+')').size()!=0)
                                {
                                    $("#nav_right").expire();
                                    obj_on=false;
                                    $(global_this).filter(':eq('+($(global_this).index($(target))+1)+')').click();
                                }
                            });	
                        /////////////////////////////////)
							
                        });
							

                    //alert('||'+w+'\n ||'+h+'\n ||'+$('#fonI').width()+'\n ||'+$('#fonI').height());

                    });

                    $('#fonI').attr('src',urli);
                }
                else
                {
                    obj_on='div_cont';
                    $('#preI').css('display','none');
                    w=$(urli).width();
                    h=$(urli).height();
                    $(urli).css({
                        position:'absolute',
                        'z-index':10000
                    });
                    idi = urli;
                    size_maker(w,h,urli,false);
                }

						
            });	
			
			
			
			
        },

        destroy:function() {
            $('#disp').remove();
            init = false;
            $(this).expire("click.view");
        }
    };

    $.fn.view = function(method)
    {
        // немного магии
        if ( methods[method] ) {
            // если запрашиваемый метод существует, мы его вызываем
            // все параметры, кроме имени метода прийдут в метод
            // this так же перекочует в метод
            return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
        } else if ( typeof method === 'object' || ! method ) {
            // если первым параметром идет объект, либо совсем пусто
            // выполняем метод init
            return methods.init.apply( this, arguments );
        } else {
            // если ничего не получилось
            $.error( 'Метод "' +  method + '" не найден в плагине jQuery.view' );
        }


    };


    ////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////
    this.size_maker = function(ws,hs,obj,resize,callback)
    {
        //alert('From size_maker : '+obj+'\n || '+ws+'\n || '+hs+'\n ||css w:'+$('#fonI').css('width')+'\n ||css h:'+$('#fonI').css('height'));
        /*$('#wid').val(w);
$('#hei').val(h);
$('#widI').val($(obj).width());
$('#heiI').val($(obj).height());
$('#widIn').val($(obj).innerWidth());
$('#heiIn').val($(obj).innerHeight());*/
        dw = $(window).width();
        dh = $(window).height();
        callback = (callback)?callback:function (){};
        if(hs>=dh)
        {  
            mh=dh-50; 
            mw=(ws/(hs/(mh))); 
            mt=(dh-mh)/2;
            ml=(dw-mw)/2;
            if(mw>=dw)
            {
                mw=dw-50;
                mh=(hs/(ws/mw));
                mt=(dh-mh)/2;
                ml=(dw-mw)/2;
            }
        }
        else
        {
            mh=hs;
            mw=ws;
            mt=(dh-mh)/2;
            ml=(dw-mw)/2;
            if(mw>=dw)
            {
                mw=dw-50;
                mh=(hs/(ws/mw));
                mt=(dh-mh)/2;
                ml=(dw-mw)/2;
            }
        }
        if(!resize)
        {
            mh=hs;
            mw=ws;
            mt=(dh-mh)/2;
            ml=(dw-mw)/2;
        }
        mt += $(window).scrollTop();
        ml += $(window).scrollLeft();
					
			
        $(obj).fadeOut('fast',function() {
            belfon(mw,mh,dw,dh,function (){
                if(obj=='#disp_wrap')
                {
                    $('#disp_wrap').css({
                        left:ml, 
                        top:mt, 
                        width: mw, 
                        height:mh
                    }).fadeIn('fast');
                    $('#fonI').css({
                        width: mw, 
                        height:mh,
                        display:'block'
                    });
                }
                else if(obj_on=='div_cont')
                    $(obj).css({
                        left:ml, 
                        top:mt, 
                        width: mw, 
                        height:mh
                    }).fadeIn();

            //	alert('From belfon: '+obj+'\n || '+w+'\n || '+h+'\n ||css w:'+$('#fonI').css('width')+'\n ||css h:'+$('#fonI').css('height'));
            });
            //alert('From size_maker after: '+obj+'\n || '+w+'\n || '+h+'\n ||css w:'+$('#fonI').css('width')+'\n ||css h:'+$('#fonI').css('height'));
            callback();
        });

    }

})(jQuery);

this.belfon = function(mw,mh,dw,dh,callback)
{
    $('#fonII').stop(true).animate({
        width: mw+20,
        height: mh+20,
        top:((dh-mh+20)/2-20)+$(window).scrollTop(), 
        left:((dw-mw+20)/2-20)+$(window).scrollLeft()
    },'slow',callback);

}


function resizew(select)
{
    size = viewport();
    $(select).css({
        top:0, 
        left:0,
        width: size[0],
        height: size[1]
    });
}

/////Экран затемнения, неактивный
var on=false;
function smoke_screen(switcher,color)
{
    if(!on)
    {
        $('body').prepend('<div id="smoke_p" style="display:none;position:absolute;width:100%;height:100%;top:0;left:0;z-index:9999;"><div id="smoke" style="display:block;position:absolute;left:0px;top:0px;width:100%;height:100%;background:'+color+';"></div></div>');
        $('#smoke_p').css({
            opacity:0.6
        });
        $(window).resize(function (){
            resizew('#smoke');
        });

        on=true;
    }
    resizew('#smoke_p');
    if(switcher=='on')
        $('#smoke_p').fadeIn('fast');
    else
        $('#smoke_p').fadeOut('fast');

}


this.mvalid = function(email)
{
    dd = "email="+email;
    arr['email']=false;
    filledOut(arr);
    $.ajax({
        type: "POST",
        url: "email_valid.php",
        data: dd,
        success: function(msg){
            if(msg=='true')
                arr['email']=true;
            else
                arr['email']=false;
            filledOut(arr);
        }
    });
}

this.filledOut = function(arrs){
    no=false;
    for (val in arrs) { 
        if (arrs[val]==false) {
            $('#SS').attr('disabled',true);
            no=true;
            $('#'+val).css({
                border: '2px outset red'
            });
        }
        else
        {
            if(!no)
                $('#SS').attr('disabled',false);
            $('#'+val).css({
                border: '2px outset green'
            });
        }
    }
    no=false;
}



function viewport() {
				
    // the horror case
    if ($.browser.msie) {
			
        // if there are no scrollbars then use window.height
        var d = $(document).height(), w = $(window).height();
        var d1 = $(document).width(), w1 = $(window).width();
        return [
        d1 - w1 < 30 ? w1 : d1, 					// ie6 quirks mode
        d
        ];
    } 
		
    // other well behaving browsers
    return [$(document).width(), $(document).height()];
		
} 
this.pageLoad = function(obj)
{
    if(!obj) obj = '.pages';
    $(obj).expire().livequery('click',function (event, callback){
        //alert('1');
        if (!event) event = window.event;
        var target = (event.target) ?
        event.target : event.srcElement;
        url = $(target).attr('rel');
        smoke_screen('on','#62573a');
        $(target).parents('div:eq(1)').load(url,function (resp){
            smoke_screen('off');
            if(typeof callback == 'function')
                callback();
        });

    });

}

this.delPhoto = function(obj)
{
    $(obj).livequery('click',function (event){
        return false;
    });
    $(obj).livequery('click',function (event){
        if (!event) event = window.event;
        var target = (event.target) ?
        event.target : event.srcElement;
        del_url = $(target).attr('href');
        refresh_url = $(target).attr('rel');
        targetid = $(target).parents('div:eq(0)').attr('id');
        smoke_screen('on','#62573a');
        $.ajax({
            type: "GET",
            url: del_url,
            success: function(msg){

                $("#"+targetid).load(refresh_url,function (){
                    smoke_screen('off');

                });
            }
        });



    });
}

///////////////////////////////////////Плавающее меню///////////////////////////////////////////
this.flow_menu = function(options)
{
    options = options || {};
    var name =  options['name'] || "#menu";
    var pb =  options['pb'] || 0;
    var ptarget =  options['ptarget'] || "";

    if(!isNaN(parseInt($(name).css("top"))))
    {

        menuYloc = parseInt($(name).css("top").substring(0,$(name).css("top").indexOf("px")));
        ptstart = $(name).offset().top;

        var offset = menuYloc+$(document).scrollTop()-ptstart+"px";
        var calc = $(document).scrollTop()+parseInt($(name).height());

        if(calc<pb&&($(document).scrollTop()>ptstart))
            $(name).animate({
                top:offset
            },{
                duration:500,
                queue:false
            });

        if($(document).scrollTop()<ptstart)
            $(name).animate({
                top:menuYloc
            },{
                duration:500,
                queue:false
            });

        $(window).scroll(function () {

            if(ptarget=='')
                pbr = viewport()[1]-pb;
            else
                pbr =  $(ptarget).offset().top+$(ptarget).height()-pb;

            var offset = menuYloc+$(document).scrollTop()-ptstart+"px";
            var calc = $(document).scrollTop()+parseInt($(name).height());

            if(calc<pbr&&($(document).scrollTop()>ptstart))
                $(name).animate({
                    top:offset
                },{
                    duration:500,
                    queue:false
                });

            if($(document).scrollTop()<ptstart)
                $(name).animate({
                    top:menuYloc
                },{
                    duration:500,
                    queue:false
                });
        /*		$('#wid').val($(name).width());
		$('#hei').val($(name).height());
		$('#heiMT').val($(ptarget).height());
		$('#heiD').val(pbr);
		$('#offY').val(offset);
		$('#calc').val(calc);*/

        });
    }
}
/////////////////////////////////////////////////////////////////////////////////////////////////


function initForm() {
    var options = {
        target:     '#mc', 
        success:    function(response) {
            type = $('.storeForm').attr('title');
            formObject["performSuccess"](response);
            
            switch(type)
            {
                case 'viewPhotos':
                {
                    smoke_screen('off');
                    $('#SS').attr('disabled',false);
                    $('#storeForm').animate({
                        opacity:1
                    },'normal');
                    $('#mc').fadeIn('normal');
                    break;
                }
                default:
                {
                    //                    smoke_screen('off');
                    //                    $('#storeForm').fadeOut('normal',function (){
                    //                        $('#mc').fadeIn('normal');
                    //                    });
                    //                    $('#addMore').click(function (){
                    //                        $('#mc').fadeOut('normal',function (){
                    //                            $('#SS').attr('disabled',false);
                    //                            $('#storeForm').resetForm();
                    //                            $('#storeForm').fadeIn('normal').animate({
                    //                                opacity:1
                    //                            },'normal');
                    //                        });
                    //                    });
                    //
                    //                    break;
                    }
            }
        },
        beforeSubmit: function (formData, jqForm, options)
        {
            formObject.performBeforeSubmit(formData, jqForm, options);
            type = $('#storeForm').attr('title');
            switch(type)
            {
                case 'gb':
                {
                    if(formData[0].value!=''&&formData[1].value!=''&&formData[3].value!='')
                    {
                        if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(formData[2].value))&&formData[2].value!='')
                        {
                            $('#storeForm').animate({
                                opacity:1
                            },'normal');
                            $('#SS').attr('disabled',false);
                            alert('Неправильный e-mail! '+formData[2].value);
                            return false;
                        }
                    }
                    else
                    {
                        alert('Не все поля формы заполнены');
                        return false;
                    }
                    break;
                }
                case 'order':

                {
                        if(formData[0].value!=''&&formData[1].value!='')
                        {
                            if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(formData[6].value))&&formData[6].value!='')
                            {
                                $('#storeForm').animate({
                                    opacity:1
                                },'normal');
                                $('#SS').attr('disabled',false);
                                alert('Неправильный e-mail! '+formData[6].value);
                                return false;
                            }
                        }
                        else
                        {
                            alert('Не все обязательные поля формы заполнены');
                            return false;
                        }
                        break;
                    }
                default:
                {
                    }

            }

            smoke_screen('on','#62573a');
//            $('#SS').attr('disabled',true);

        }
    }; 


    $('.storeForm').ajaxForm(options);  
}


////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////
$(window).resize(function (){
    resizew('#disp');
});
$(document).ready(function() {
    $(".menu_td a img").hover(
        function () {
            $(this).attr('src',$(this).attr('rel'));
        },
        function () {
            $(this).attr('src',$(this).attr('rel1'));
        }
        );


    size = viewport();
    $('#disp').css({
        top:0, 
        left:0,
        width: size[0],
        height: size[1]
    });
    delPhoto('.del_href');
    pageLoad();
    $('div.itooltip').view({
        'color':'#063800'
    });
    //view('div.lenta','#063800');
    $('.center .obj_img').view({
        'color':'#063800'
    });
    $('.part_img').view({
        'color':'#063800'
    });


    initForm();

});
