$(function () {
		
//console.time('test time');
		
    var tmp=window.location.hash;		
    if (tmp=="") {
    	window.location.search=="?0" ? lang=0: lang=1;
        var compare=0;
        var time=0;
        var l_mode=0;
        var r_mode=0;
        var scene;
        var l_light;
        var r_light;
    } else {
        window.location.hash="";
        lang=parseInt(tmp[1]);
        compare=parseInt(tmp[2]);
        time=parseInt(tmp[3]);
        l_mode=parseInt(tmp[4]);
        r_mode=parseInt(tmp[5]);
        scene=parseInt(/s(\d+)/.exec(tmp)[1]);
        var l_light_n=parseInt(/l(\d+)/.exec(tmp)[1]);
        var r_light_n=parseInt(/r(\d+)/.exec(tmp)[1]);
    }
	
    var intervalID;
    var nya_time;
    var score;		
    var scenes=0;
    var allshow=0;		
    var load_to="one";
	var s=0;
	var z="";
    var myRe=/\S+/g;
    var number_in_scene = new Array();
    var my_li = new Array();
    var rus = new Array("Сравнение:","вкл","выкл","Сцена:","Выдержка:","Выбор фонаря","свернуть все (","показать все (","Постоянная ссылка на это изображение","с","Главная","О проекте","Методика тестов","Обзоры фонарей","Сотрудничество","Форум","Фонаревка: независимая интерактивная база тестов фонарей от fonarevka.ru","шт.)","Поиск");
    var eng = new Array("Comparison:","on","off","Scene:","Exposure:","Flashlight select","hide all (","show all (","Permanent link to this image","s","Home","About","Testing methodics","Reviews","Partnership","Forum","Fonarevka: flashlights in beamshot comparasion","pcs.)","Search");
	var sc = new Array();
		
    function setlang (atr) {
        lang=atr;		
        if (atr==1) {
            compare==1 ? $("#compare_txt").text(rus[1]) : $("#compare_txt").text(rus[2]);
            allshow==1 ? $("#c_txt").text(rus[6]) : $("#c_txt").text(rus[7]);
            $("#compare_name").text(rus[0]);
            $("#scene_name").text(rus[3]);
            $("#time_name").text(rus[4]);
            $("#choose_title").text(rus[5]);
            $("#permalink").text(rus[8]);
            $("#lang_rus").addClass("active").siblings().removeClass("active");
			$("#time_current").text($("#time_current").text().replace(eng[9],rus[9]));
			$("#time_choose li").each(function() {
				$(this).text($(this).text().replace(eng[9],rus[9]));
			});
			$("#menu li").each(function() {
				$(this).children("a").text(rus[$(this).index()+10]);
			});
			$("#menu li").eq(0).children("a").attr("href","/");
			$("#menu li").eq(1).children("a").attr("href","project.html");
			$("#menu li").eq(2).children("a").attr("href","test.html");
			$("#menu li").eq(4).children("a").attr("href","partner.html");
			$("h1").text(rus[16]);
			$("#c_txt2").text(rus[17]);
			$("#search").text(rus[18]);
        } else {
            compare==1 ? $("#compare_txt").text(eng[1]) : $("#compare_txt").text(eng[2]);
            allshow==1 ? $("#c_txt").text(eng[6]) : $("#c_txt").text(eng[7]);
            $("#compare_name").text(eng[0]);
            $("#scene_name").text(eng[3]);
            $("#time_name").text(eng[4]);
            $("#choose_title").text(eng[5]);
            $("#permalink").text(eng[8]);
            $("#lang_eng").addClass("active").siblings().removeClass("active");
			$("#time_current").text($("#time_current").text().replace(rus[9],eng[9]));
			$("#time_choose li").each(function() {
				$(this).text($(this).text().replace(rus[9],eng[9]));
			});
			$("#menu li").each(function() {
				$(this).children("a").text(eng[$(this).index()+10]);
			});
			$("#menu li").eq(0).children("a").attr("href","/?0");
			$("#menu li").eq(1).children("a").attr("href","project_en.html");
			$("#menu li").eq(2).children("a").attr("href","test_en.html");
			$("#menu li").eq(4).children("a").attr("href","partner_en.html");
			$("h1").text(eng[16]);
			$("#c_txt2").text(eng[17]);
			$("#search").text(eng[18]);
        }
    }
		
    function showimage(targ) {	
        $("#img_"+targ+" img")
        //.attr("src",$("#scene_current").text()+"/"+$("#"+targ+" .name_txt").text()+"/"+$("#"+targ+" .active").text()+"/"+$("#time_current").text().slice(0,-1)+".JPG")
		.attr("src","http://fonarevka.ru/beamshot/"+$("#scene_current").text()+z+"/"+$("#"+targ+" .name_txt").text()+"/"+$("#"+targ+" .active").text()+"/"+$("#time_current").text().slice(0,-1)+".JPG")
        .error(function() {
            $(this).attr("src", "img/missing.png");
        });
    }
						
    function showcompare_start() {
        lang==1 ? $("#compare_txt").text(rus[1]) : $("#compare_txt").text(eng[1]);
        compare=1;
        $(".ui-draggable").css("display","block");
        $("#img_two").css("display","block");
        $("#two").css("display","block");
        $("#compare_dot").css("left",12);
        $("#compare_bg").css("background","#009707");
    }
	
	function showcompare_none() {
        lang==1 ? $("#compare_txt").text(rus[2]) : $("#compare_txt").text(eng[2]);
        compare=0;
		load_to="one";
        $(".ui-draggable").css("display","none");
        $("#img_two").css("display","none");
        $("#two").css("display","none");
        $("#compare_dot").css("left",0);
        $("#compare_bg").css("background","#cb0000");
		$("#one .name_check").addClass("active2");
    }
				
    function showcompare() {
        if (compare==1) {
            lang==1 ? $("#compare_txt").text(rus[2]) : $("#compare_txt").text(eng[2]);
            compare=0;
            load_to="one";
            $(".ui-draggable").fadeOut(200);
            $("#img_two").fadeOut(200);
            $("#two").fadeOut(200);
            $("#one .name_check").addClass("active2");
            $("#compare_dot").animate({
                left:0
            },200);
            $("#compare_bg").animate({
                backgroundColor:"#cb0000"
            },200);
        } else {
            lang==1 ? $("#compare_txt").text(rus[1]) : $("#compare_txt").text(eng[1]);
            compare=1;
            $(".ui-draggable").fadeIn(200);
            $("#img_two").fadeIn(200);
            $("#two").fadeIn(200);
            $("#two .name_check").removeClass("active2");
            $("#compare_dot").animate({
                left:12
            },200);
            $("#compare_bg").animate({
                backgroundColor:"#009707"
            },200);
        }
    }
		
    function selectlight(act,targ) {
        var a="";
        a+="<div class='name_check'></div><div class='name_txt'>"+act.parent().prev().children().text()+" "+act.text()+"</div><div class='name_modes'>";					
        while ((myArray = myRe.exec(act.attr("m"))) != null) {
            a+="<div class='name_mode'>"+myArray[0]+"</div>";
        };
        a+="</div>";
        $("#"+targ).html(a);
        $("#"+targ+" .name_mode:first").addClass("active");
        $("#"+load_to+" .name_check").addClass("active2");	
        if (targ=="one") {
            l_light=act.index(".model li");
        } else {
            r_light=act.index(".model li");
        }		
        showimage(targ);
    }
		
    function selectscene(act) {
        $("#choose_light").html(my_li[act.attr("num")]);
		$("#c_num").text(number_in_scene[act.attr("num")]);
        $("#scene_current").text(act.text());			
        var a="<ul>";
        while ((myArray = myRe.exec(act.attr("t"))) != null) {
            a+="<li class='chs_scn'>"+myArray[0]+(lang==1 ? rus[9] : eng[9])+"</li>";
        }
        a+="</ul>";
		$("#time_choose").html(a);       
        $("#time_current").text($("#time_choose li:first").text());			
        a=Math.floor(Math.random()*number_in_scene[act.attr("num")]);
        do {
            var b=Math.floor(Math.random()*number_in_scene[act.attr("num")])
        } while (b==a);
        selectlight($(".model li").eq(a),"one");
        selectlight($(".model li").eq(b),"two");
        $("#"+load_to+" .name_check").addClass("active2");
        lang==1 ? $("#c_txt").text(rus[7]) : $("#c_txt").text(eng[7]);
        allshow=0;
        scene=act.attr("num");
		/*if (scene==17) {
			$("#zoom").css("display","block");
		} else {
			z="";
			$("#zoom").css({"display":"none","background-position":"0 -43px"});
		};*/
    }
				
    $("#choose_show").click(function () {
        if (allshow==1) {
           lang==1 ? $(this).children("#c_txt").text(rus[7]) : $(this).children("#c_txt").text(eng[7]);
            allshow=0;
            $(".model").slideUp(200);
            $(".brand li").removeClass("active");
        } else {
            lang==1 ? $(this).children("#c_txt").text(rus[6]) : $(this).children("#c_txt").text(eng[6]);
            allshow=1;
            $(".model").slideDown(200);
            $(".brand li").addClass("active");
        }
    });
		
    $("#compare").click(function () {
        showcompare();
    });
	
	$("#zoom").click(function () {
		if (z=="") {
			z="_zoom";
			$("#zoom").css("background-position","-34px -43px");
		} else {
			z="";
			$("#zoom").css("background-position","0 -43px");
		};
		showimage("one");
		showimage("two");
	});
	
	$("#search").click(function () {
		if (s==0) {
			s=1;
			$("#all").css("width","1262px");
			$("#content").css("margin-left","130px").animate({"margin-left":"260px"});
			$("#list-all").css({"display":"block","left":"130px"}).animate({"left":"0"});
		} else {
			s=0;			
			$("#content").animate({"margin-left":"130px"});
			$("#list-all").animate({"left":"130px"},function() {
				$("#all").css("width","1002px");
				$(this).css({"display":"none"});
				$("#content").css("margin-left","0")
			});
		};
	});
		
    $(".name").click(function (e) {
        var a=$(e.target).attr("class");
        if (a=="name_mode") {
            $(e.target).addClass("active").siblings().removeClass("active");
            showimage($(this).attr("id"));            
        } else
        if (a=="name_check" || a=="name_txt") {				
            load_to=$(this).attr("id");
            $(".name_check").removeClass("active2");
            $(this).children(".name_check").addClass("active2");
        }
    });
		
    $("#choose_light").click(function (e) {
        if ($(e.target).parent().attr("class")=="brand") {
            $(e.target).parent().next().slideToggle(200);
            $(e.target).toggleClass("active");
        } else
        if ($(e.target).parent().attr("class")=="model") {				
            selectlight($(e.target),load_to);
        }
    });
	$("#list-all").click(function (e) {
        if ($(e.target).parent().attr("class")=="brand_all") {
            $(e.target).parent().next().slideToggle(200);
            $(e.target).toggleClass("active");
        } else
        if ($(e.target).parent().attr("class")=="model_all") {
            $(e.target).next().slideToggle(200);
        } else
		if ($(e.target).attr("class")=="chs_scn_all") {
        	selectscene($(e.target));
			showcompare_none();
			selectlight($(e.target).parent().prev(),load_to);
			l_light=$(".model li:contains("+$(e.target).parent().prev().text()+")").index(".model li");
        }
    });
		
    $("#lang_select").click(function (e) {
        $(e.target).attr("id")=="lang_rus" ? setlang (1) : setlang (0);
    });
		
    $("#scene_current").mouseenter(function() {
        $("#scene_choose")
        .click(function (e) {
            if ($(e.target).attr("class")=="chs_scn") {
                selectscene($(e.target));						
            }
        })
        .mouseleave(function() {
            $(this).fadeOut(100);
        })
        .fadeIn(100);
    });
		
    $("#time_current").mouseenter(function() {
        $("#time_choose")
        .click(function (e) {
            if ($(e.target).attr("class")=="chs_scn") {
                $("#time_current").text($(e.target).text());
                time=$(e.target).index();
                showimage("one");
                showimage("two");
            }
        })
        .mouseleave(function() {
            $(this).fadeOut(100);
        })
        .fadeIn(100);
    });
		
		
		
    $("#permalink").click(function () {
		var h=$(document).height();
		var w=$(document).width();
        $("#permalink_bg").css({"display":"block","height":h,"width":w});
        $("#permalink_text").text("http://"+window.location.hostname+window.location.pathname+"#"+lang+compare+time+$("#one .active").index()+$("#two .active").index()+"s"+scene+"l"+l_light+"r"+r_light);
        $("#permalink_window").css({"top":0.5*h,"left":0.5*w}).fadeIn(1000);
    });
		
    $("#permalink_bg").click(function () {
        $("#permalink_bg").css("display","none");
        $("#permalink_window").css("display","none");
    });
		
    $("#permalink_close").click(function () {
        $("#permalink_bg").css("display","none");
        $("#permalink_window").css("display","none");			
    });
		
    function makeNyan() {
        $("<div class='nya'></div>")
        .appendTo("#content")
        .css({
            "top":10+Math.floor(Math.random()*($("#content").height()-30))
        })
        .animate({
            "left":"100%"
        },Math.floor((Math.random()*0.5+0.5)*nya_time),"linear",function() {
            $(this).remove();
        })
        .click(function () {
            $(this).remove();
            nya_time+=200;
            score++;
            $("#permalink_score").text(score);
        });
        if (nya_time>500) {
            nya_time-=400
        }
        $("#permalink_score").text(score);
    }
		
    $("#permalink_link").click(function () {
        if ($("#audio").html()=="") {		
            $("#audio").html("<audio autoplay='autoplay'><source src='http://cooltyn.narod.ru/files/nyan.ogg'></source><source src='http://cooltyn.narod.ru/files/nyan.mp3'></source></audio>");
            score=0;
            nya_time=15000;
            $("<div id='permalink_score'></div>").appendTo("#permalink_all");
            makeNyan();
            intervalID=setInterval(makeNyan, 1000);
        } else {
            $("#audio").html("");
            $("#permalink_score").remove();
            $(".nya").remove();
            clearInterval(intervalID);				
        }
    });
	
	$("#menu a").click(function (e) {
		a=$(e.target).parent().index();
		if (a==1 || a==2 || a==4) {
			$("#list-all").css({"display":"none"});
			$("#all").css("width","1002px");
			$("#content").css("margin-left","0");				
			$("#loader").load($(e.target).attr("href"));
			$(e.target).parent().siblings().removeClass("active");
			$(e.target).parent().addClass("active");
			return false;
		};
	});
		
    $(".ui-draggable").draggable({
        axis:"x", 
        containment:"#img_one", 
        cursor:"pointer", 
        drag: function(event, ui) {
            $("#img_two img").css("margin-left", -ui.position.left-23);
        }
    });
                
    $("#permalink_bg").css("opacity",0.6);
								
    $.ajax({
        type: "GET",
        url: "data.xml",
        dataType: "xml",
        success: function(xml) {			
            setlang (lang);
            var full = new Array();
			var list_all="";
            var my_sc="<ul>";
            $(xml).find("scene").each(function() {
                my_sc+="<li class='chs_scn' t='"+$(this).find("t").text()+"' num='"+$(this).attr("id")+"'>"+$(this).find("n").text()+"</li>";
                scenes++;	
            });
            my_sc+="</ul>";
            $("#scene_choose").html(my_sc);		
            for (i=0; i<scenes; i++) {
                my_li[i]="<ul class='light-list'>";
                number_in_scene[i]=0;
            }			
            $(xml).find("f").each(function() {
				list_all+="<ul class='brand_all'><li>"+$(this).attr("id")+"</li></ul><ul class='model_all'>";
                $(this).find("l").each(function() {
					var t="<li m='"+$(this).find("m").text()+"'>"+$(this).find("n").text()+"</li>";
					list_all+=t+"<ul class='scenes_all'>";
                    var str = $(this).find("s").text();
                    while ((myArray = myRe.exec(str)) != null) {
                        var r=parseInt(myArray[0]);
                        if (full[r]!=1) {
                            full[r]=1;
                            my_li[r]+="<ul class='brand'><li>"+$(this).parent().attr("id")+"</li></ul><ul class='model'>";							
                        }
						a=$(xml).find("scene:#"+r);
						list_all+="<li class='chs_scn_all' t='"+a.find("t").text()+"' num='"+a.attr("id")+"'>"+a.find("n").text()+"</li>";
                        my_li[r]+=t;
                        number_in_scene[r]++;
                    }
					list_all+="</ul><div class='clear'></div>";
                });
				list_all+="</ul>";
                for (i=0; i<scenes; i++) {
                    if (full[i]==1) {
                        full[i]=0;
                        my_li[i]+="</ul>";
                    }
                }			
		    });
            for (i=0; i<scenes; i++) {
                my_li[i]+="</ul>";					
            }
			
			$("#list-all").html(list_all);
            if (scene==null) {
                //selectscene($("#scene_choose li").eq(Math.floor(Math.random()*scenes)));
				selectscene($("#scene_choose li").eq(4));
            } else {
                var n;
                $("#scene_choose li").each(function() {
                    if ($(this).attr("num")==scene) {
                        n=$(this).index();
                    }
                });
                selectscene($("#scene_choose li").eq(n));
                l_light=l_light_n;
                r_light=r_light_n;
                selectlight($(".model li").eq(l_light),"one");
                selectlight($(".model li").eq(r_light),"two");
                if (compare==1) {
                    showcompare_start();
                }
                $("#time_current").text($("#time_choose li").eq(time).text());
                $(".name_mode").removeClass("active");
                $("#one .name_mode").eq(l_mode).addClass("active");
                $("#two .name_mode").eq(r_mode).addClass("active");
                showimage("one");
                showimage("two");					
            }
				
        }
    });
		
//console.timeEnd('test time');
		
});
