// JavaScript Document

function shCity() {
	jQuery().bind("click", function(event){
		var t = jQuery(event.target);
		if(t.is("span#acity")) {
			if (jQuery("#city-list").css("display")=='none') {
				jQuery("#city-list").show();
			}
			else {
				jQuery("#city-list").hide();
			}
  		}
		else {
			jQuery("#city-list").hide();
		}
	});
}

function shaCat() {
	jQuery().bind("click", function(event){
		var t2 = jQuery(event.target);
		if(t2.is("span#acateg2")) {
			if (jQuery("#cat-list").css("display")=='none') {
				jQuery("#cat-list").show();
				jQuery("#cat-list .aclist-line").css({'width': jQuery(".acatt").outerWidth()-3+"px",'border-left': "1px solid #b6ccdc"});
				jQuery(".acatt").css({'border-right': "1px solid #b6ccdc",'padding-right': "7px"});
			}
			else {
				jQuery("#cat-list").hide();
				jQuery(".acatt").css({'border-right': "none",'padding-right': "8px"});
			}
		}
		else {
			jQuery("#cat-list").hide();
			jQuery(".acatt").css({'border-right': "none",'padding-right': "8px"});
		}
	});
}

function shKosht(cena,id) {
	jQuery("#"+id).mouseout(function(){
		jQuery("#akosht").hide();
	});
	pos = jQuery("#"+id).position();
	if (!document.getElementById('akosht')) {
		jQuery("#apops").append('<div id="akosht"><div class="koleft"></div><div class="ko-brd"><strong>'+cena+'</strong> руб</div><div class="koright"></div></div>');
	}
	else {
		jQuery("#akosht .ko-brd strong").text(cena);
	}
	jQuery("#akosht").css({'left': pos.left+jQuery("#"+id).width()+'px','top': pos.top+jQuery("#"+id).height()+'px'}).show();
}

var tmpImg = '';
function shFilm(ktr, kpop) {
	if (!jQuery.browser.opera || (jQuery.browser.opera && jQuery.browser.version>=9.5)) {
	jQuery("#"+ktr).parent().mouseout(function(){
		jQuery("#"+kpop).hide();
	});
	//bpops = jQuery("#apops").position();
	pos = jQuery("#"+ktr).parent().offset();
	jQuery("#"+kpop).css({'visibility':'hidden', 'display': 'block'});

	if(document.getElementById(kpop+'-imgi'))
	{
    	/*tmpimg = document.createElement('img');*/
    	tmpImg = document.getElementById(kpop+'-imgi').getAttribute('rel');
    	imgPreload = new Image();
	    imgPreload.onload=function(){
		  document.getElementById(kpop+'-imgi').src = tmpImg;
	    }
        /*tmpimg.src = document.getElementById(kpop+'-imgi').getAttribute('rel');*/
        /*document.getElementById(kpop+'-imgi').src = tmpimg.src;*/
        imgPreload.src = tmpImg;
	}
	
	if ((jQuery(window).height()+jQuery(window).scrollTop())>(pos.top+jQuery("#"+ktr).height()+4+jQuery("#"+kpop).height())) {
		jQuery("#"+kpop).css({'left': pos.left+jQuery("#"+ktr).width()+20+'px', 'top': pos.top+jQuery("#"+ktr).height()+4+'px', 'visibility': 'visible'});
	}
	else if ((pos.top-jQuery(window).scrollTop())-(jQuery("#"+kpop).height()+10)<0) {
		jQuery("#"+kpop).css({'left': pos.left+jQuery("#"+ktr).width()+20+'px', 'top':jQuery(window).scrollTop()+jQuery(window).height()-(jQuery("#"+kpop).height()+10)+'px', 'visibility': 'visible'});
	}
	else {
		jQuery("#"+kpop).css({'left': pos.left+jQuery("#"+ktr).width()+20+'px', 'top': pos.top-jQuery("#"+kpop).height()-10+'px', 'visibility': 'visible'});
	}
	}

}



function shKtr(ktr, kpop) {
	if (!jQuery.browser.opera || (jQuery.browser.opera && jQuery.browser.version>=9.5)) {
	jQuery("#"+ktr).mouseout(function(){
		jQuery("#"+kpop).hide();
	});
	//bpops = jQuery("#apops").position();
	
	
	if(document.getElementById(kpop+'-imgi'))
	{
    	/*tmpimg = document.createElement('img');*/
    	tmpImg = document.getElementById(kpop+'-imgi').getAttribute('rel');
    	imgPreload = new Image();
	    imgPreload.onload=function(){
		  document.getElementById(kpop+'-imgi').src = tmpImg;
		  document.getElementById(kpop+'-imgi').setAttribute('width','168');
	    }
        /*tmpimg.src = document.getElementById(kpop+'-imgi').getAttribute('rel');*/
        /*document.getElementById(kpop+'-imgi').src = tmpimg.src;*/
        imgPreload.src = tmpImg;
        
	}
	
	
	pos = jQuery("#"+ktr).offset();
	jQuery("#"+kpop).css({'visibility':'hidden', 'display': 'block'});
	if ((jQuery(window).height()+jQuery(window).scrollTop())>(pos.top+jQuery("#"+ktr).height()+4+jQuery("#"+kpop).height())) {
		jQuery("#"+kpop).css({'left': pos.left+50+'px', 'top': pos.top+jQuery("#"+ktr).height()+4+'px', 'visibility': 'visible'});
	}
	else if ((pos.top-jQuery(window).scrollTop())-(jQuery("#"+kpop).height()+10)<0) {
		jQuery("#"+kpop).css({'left': pos.left+50+'px', 'top': jQuery(window).scrollTop()+jQuery(window).height()-(jQuery("#"+kpop).height()+10)+'px', 'visibility': 'visible'});
	}
	else {
		jQuery("#"+kpop).css({'left': pos.left+50+'px', 'top': pos.top-jQuery("#"+kpop).height()-10+'px', 'visibility': 'visible'});
	}
	}
}

function aCats() {
	ww = jQuery(".fmhide").width();
	alist = jQuery(".fmcatt-item li");
	iw = 0
	jQuery("#cat-list").hide();
	jQuery(".acatt").css({'visibility': 'hidden'});
	dd = jQuery("#cat-list div ul");
	dd.html('');
	for (i=0; i<alist.length; i++) {
		iw = iw + alist.eq(i).outerWidth();
		if (iw<=ww) {
			alist.eq(i).css({'visibility': 'visible'});
		}
		else {
			jQuery(".acatt").css({'visibility': 'visible'});
			dd.append(alist.eq(i).clone());
			alist.eq(i).css({'visibility': 'hidden'});
			dd.children().css({'visibility': 'visible'});
		}
	}
}


function datePop() {
  	dp = jQuery("#timeline div.rday, #timeline div.vday");
	dp.mouseover(function(){
		var oli = jQuery(this).parent();
		var id = jQuery(this).attr('id');
		var pos = oli.position();
		if (jQuery("#tmline div").is("div#datepop-"+id)) {
			jQuery("#datepop-"+id+" div.dpopmid ul li a").eq(0).css("background","#fff").mouseover(function(){jQuery(this).css("background","#fff")}).mouseout(function(){jQuery(this).css("background","#dcf7ff")});
			jQuery("#datepop-"+id+" div.dpoptop").mouseover(function(){jQuery("#datepop-"+id+" div.dpopmid ul li a").eq(0).css("background","#fff")});
			jQuery("#datepop-"+id).css({'top': pos.top+14+oli.outerHeight()+'px','left': pos.left-Math.abs(parseFloat(jQuery(this).parent().parent().css("left")))-14+'px'}).show();
		}
		else {
			jQuery("#tmline").append('<div id="datepop-'+jQuery(this).attr("id")+'" class="dpop" style="display:none;"><div class="dpoptop">.</div><div class="dpopmid"><ul></ul></div></div>');
			for (i=0; i<afobj.length; i++) {
				if (afobj[i][0]==id) {
					for (j=1; j<afobj[i].length; j++) {
						jQuery("#datepop-"+id+" div.dpopmid ul").append('<li>'+afobj[i][j]+'</li>');
					}
					break;
				}
			}
			jQuery("#datepop-"+id+" div.dpopmid ul li a").eq(0).css("background","#fff").mouseover(function(){jQuery(this).css("background","#fff")}).mouseout(function(){jQuery(this).css("background","#dcf7ff")});
			jQuery("#datepop-"+id+" div.dpoptop").mouseover(function(){jQuery("#datepop-"+id+" div.dpopmid ul li a").eq(0).css("background","#fff")});
			jQuery("#datepop-"+id).css({'top': pos.top+14+oli.outerHeight()+'px','left': pos.left-Math.abs(parseFloat(jQuery(this).parent().parent().css("left")))-14+'px'}).show();
		}
		oli.css({'background': "#fff",'border-color': "#b6ccdc"}).next().css('border-color', "#b6ccdc");
		jQuery(this).parent().mouseout(function(event){
			var relTarg = jQuery(event.relatedTarget);
			if (!relTarg.is('div#datepop-'+id) && !relTarg.parent().is('div#datepop-'+id) && !relTarg.parent().parent().is('div#datepop-'+id) && !relTarg.parent().parent().parent().is('div#datepop-'+id) && !relTarg.parent().parent().parent().parent().is('div#datepop-'+id)) {
				jQuery("#datepop-"+id).hide();
				oli.css({'background': "#dcf7ff",'border-color': "#fff"}).next().css('border-color', "#fff");
			}
		});
		jQuery("#datepop-"+id).mouseout(function(event){
			var relTarg = jQuery(event.relatedTarget);
			if (!relTarg.is('div#datepop-'+id) && !relTarg.parent().is('div#datepop-'+id) && !relTarg.parent().parent().is('div#datepop-'+id) && !relTarg.parent().parent().parent().is('div#datepop-'+id) && !relTarg.parent().parent().parent().parent().is('div#datepop-'+id)) {
				jQuery("#datepop-"+id).hide();
				oli.css({'background': "#dcf7ff",'border-color': "#fff"}).next().css('border-color', "#fff");
			}
		});
	});
}

//function timelineClick(yday, year, pbtype)
function timelineClick(lnk)
    {
        // Создаем новый объект JSHttpRequest.
        var req = new Subsys_JsHttpRequest_Js();

        // Код, АВТОМАТИЧЕСКИ вызываемый при окончании загрузки.
        req.onreadystatechange = function()
	    {
            if (req.readyState == 4)
	        {
                if (req.responseJS)
                {
                    if (req.responseJS.content != '' && req.responseJS.content != null)
                    {
                        if (document.getElementById("main-content-block"))
                            document.getElementById("main-content-block").innerHTML = req.responseJS.content;
                    }
                    if (req.responseJS.pbpath != '' && req.responseJS.pbpath != null)
                    {
                        if (document.getElementById("path"))
                            document.getElementById("path").innerHTML = req.responseJS.pbpath;
                    }
                    if (document.getElementById("timetable-block"))
                        document.getElementById("timetable-block").innerHTML = req.responseJS.timetable;

                    //tt-right
                    if (req.responseJS.pbcity != '' && req.responseJS.pbcity != null)
                    {
                        //alert('have city');
                        if (document.getElementById("city-block"))
                        {
                            document.getElementById("city-block").innerHTML = req.responseJS.pbcity;
                            shCity();
                        }
                    }

                    if (req.responseJS.timeline != '' && req.responseJS.timeline != null)
                    {
                        //alert('have city');
                        if (document.getElementById("timeline-block"))
                        {
                            document.getElementById("timeline-block").innerHTML = req.responseJS.timeline;
                            aCats();
                    		jQuery("#timeline").TimeLine({
                    		   		visible: '100%',
                    				start: 0
                    		});
                    		datePop();
                    		shCity();
                    		shaCat();
                        }
                    }
                }
            }
        }
        // Разрешаем кэширование (чтобы при одинаковых запросах
        // не обращаться к серверу несколько раз).
        req.caching = false;

        //var ls = location.href.split("?");
	    //var ajaxlink = ls[0]+'.yday-'+yday+'.year-'+mtype+'.catid-'+catid+'.pbid-'+pbid+'.eid-'+eid+'.dhandle-'+dhandle+'.ajax-1?ajax-1&'+ls[1];
	    var ajaxlink = lnk+'.ajax-1?ajax-1';

        req.open('GET', ajaxlink, true);
        // Посылаем данные запроса (задаются в виде хэша).
        req.send({ajax:1});

        return false;
    }

    function getTypeIndex(type_id)
    {
        for(i=0;i<pbtypes.length;i++)
            if(pbtypes[i] == type_id) return i;
        return -1;
    }

    function hideAll()
    {
        if (timetable.length < 1) return;
        for(i in timetable)
        {
            if(timetable[i].evcount < 1) continue;
            timetable[i].viscount = 0;
            for(j=0;j < timetable[i].evcount;j++)
            {
                hideLine(timetable[i].cat_id,timetable[i].events[j].id);
                timetable[i].events[j].visible = 0;
            }
            if(timetable[i].viscount == 0 && timetable[i].cat_id != 0) jQuery('#event-theater-'+timetable[i].cat_id+'-'+timetable[i].pbtype).addClass('dnone');
        }
    }

    function hideLine(cid,id,pbt)
    {
        //if (!timetable[cid]) return;
        if(cid != 0)
        {
            jQuery('#event-name-'+cid+'-'+id+'-'+pbt).addClass('dnone');
            document.getElementById('ev-ktr-'+cid+'-'+id+'-'+pbt).style.visibility = "hidden";
        }
        return;
    }

    function show()
    {
        //hideAll();
        if(timetable.length == 1 && timetable[0].cat_id == 0)
        {
            for(ii=0;ii<pbtypesEC.length;ii++) pbtypesEC[ii] = 0;
            for(j=0;j < timetable[0].evcount;j++)
            {
                if(timetable[0].events[j].visible == 1)
                {
                    timetable[0].viscount++;
                    pbtypesEC[getTypeIndex(timetable[0].events[j].pbtype)]++;
                    jQuery('#event-theater-'+timetable[0].events[j].id+'-'+timetable[0].events[j].pbtype).removeClass('dnone');
                }
                else
                {
                    jQuery('#event-theater-'+timetable[0].events[j].id+'-'+timetable[0].events[j].pbtype).addClass('dnone');
                }
            }

            vcall = 0;
            for(ii=0;ii<pbtypes.length;ii++)
            {
                //alert(pbtypesEC[ii]);
                if(pbtypesEC[ii] == 0)
                    jQuery("#event-type-"+pbtypes[ii]).addClass("dnone");
                else
                {
                    jQuery("#event-type-"+pbtypes[ii]).removeClass("dnone");
                    vcall++;
                }
            }

            if(vcall == 0)
            {
                jQuery('#noevents').removeClass('dnone');
                jQuery('#w-ban-end').removeClass('dnone');
            }
            else
                jQuery('#noevents').addClass('dnone');

            return;
        }

        vcall = 0;
        for(ii=0;ii<pbtypesEC.length;ii++) pbtypesEC[ii] = 0;

        if (timetable.length < 1) return;
        for(i in timetable)
        {
            if(timetable[i].evcount < 1) continue;
            timetable[i].viscount = 0;
            for(j=0;j < timetable[i].evcount;j++)
            {
                if(timetable[i].events[j].visible == 1)
                {
                    timetable[i].viscount++;
                    pbtypesEC[getTypeIndex(timetable[i].events[j].pbtype)]++;
                }
                //hideLine(timetable[i].cat_id,timetable[i].events[j].id);
            }
        }

        for(ii=0;ii<pbtypes.length;ii++)
            if(pbtypesEC[ii] == 0)
                jQuery("#event-type-"+pbtypes[ii]).addClass("dnone");
            else
                jQuery("#event-type-"+pbtypes[ii]).removeClass("dnone");

        for(i in timetable)
        {
            if(timetable[i].evcount < 1) continue;
            if(timetable[i].cat_id == 0) continue;
            if(timetable[i].viscount > 0)
                jQuery('#event-theater-'+timetable[i].cat_id+'-'+timetable[i].pbtype).removeClass('dnone');
            else
                jQuery('#event-theater-'+timetable[i].cat_id+'-'+timetable[i].pbtype).addClass('dnone');
        }

        for(i in timetable)
        {
            if(timetable[i].evcount < 1) continue;
            if(timetable[i].cat_id == 0) continue;
            viscount = 0;
            isFirst = 1;
            for(j=0;j < timetable[i].evcount;j++)
            {
                if(timetable[i].events[j].visible == 1)
                {
                    if(isFirst == 1)
                    {
                        isFirst = 0;
                        showLine(timetable[i].cat_id,timetable[i].events[j].id,1,timetable[i].pbtype);
                    }
                    else showLine(timetable[i].cat_id,timetable[i].events[j].id,0,timetable[i].pbtype);
                    viscount++;
                    vcall++;
                }
                else hideLine(timetable[i].cat_id,
                        timetable[i].events[j].id,timetable[i].pbtype);
            }
        }
        if(vcall == 0)
        {
            jQuery('#noevents').removeClass('dnone');
            jQuery('#w-ban-end').removeClass('dnone');
        }
        else
            jQuery('#noevents').addClass('dnone');
    }

    var test = 1;

    function showLine(cid,id,first,pbt)
    {
        if(cid == 0) return;

        jQuery('#event-name-'+cid+'-'+id+'-'+pbt).removeClass('dnone');

        if (first == 1)
                    document.getElementById('ev-ktr-'+cid+'-'+id+'-'+pbt).style.visibility = "visible";
        else
                    document.getElementById('ev-ktr-'+cid+'-'+id+'-'+pbt).style.visibility = "hidden";
        return;
    }

    function filterPremiere()
    {
        if (timetable.length < 1) return;
        for(i in timetable)
        {
            if(timetable[i].evcount < 1) continue;
            for(j=0;j < timetable[i].evcount;j++)
            {
                timetable[i].events[j].visible = 0;
                if(timetable[i].events[j].premiere > 0) timetable[i].events[j].visible = 1;
            }
        }
        show();
        toggleFilterButtons('premiere');
    }

    function unfilter()
    {
        if (timetable.length < 1) return;
        for(i in timetable)
        {
            if(timetable[i].evcount < 1) continue;
            for(j=0;j < timetable[i].evcount;j++)
                timetable[i].events[j].visible = 1;
        }
        show();
        toggleFilterButtons('all');
		aCats();
    }

    function toggleFilterButtons(fname)
    {
        for (i in filters)
        {
            if(filters[i].name == fname)
            {
                //jQuery('#'+filters[i].label+'_passive').removeClass('dnone');
                jQuery('#'+filters[i].label+'_active').addClass('afilter');
                if(fname != 'all')
                {
                    jQuery('.event-date-main-all').addClass('dnone');
                    jQuery('.event-date-main-filter').removeClass('dnone');
                    //fnel = document.getElementById('edm-filter-name');
                    //fnel.innerHTML = filters[i].title;
                    jQuery('.edm-filter-name').html(filters[i].title);
                    if(document.getElementById('w-ban-in'))
                    {
                        jQuery('#w-ban-end').removeClass('dnone');
                        jQuery('#w-ban-in').addClass('dnone');
                    }
                    else
                    {
                        jQuery('#w-ban-end').removeClass('dnone');
                    }

                    //jQuery('allf_active').removeClass('dnone');
                    //jQuery('allf_passive').addClass('dnone');
                }
                else
                {
                    jQuery('.event-date-main-all').removeClass('dnone');
                    jQuery('.event-date-main-filter').addClass('dnone');
                    if(document.getElementById('w-ban-in'))
                    {
                        jQuery('#w-ban-in').removeClass('dnone');
                        jQuery('#w-ban-end').addClass('dnone');
                    }
                    else
                    {
                        jQuery('#w-ban-end').removeClass('dnone');
                    }

                    //jQuery('allf_active').removeClass('dnone');
                    //jQuery('allf_passive').addClass('dnone');
                }
            }
            else
            {
                //jQuery('#'+filters[i].label+'_passive').addClass('dnone');
                jQuery('#'+filters[i].label+'_active').removeClass('afilter');
            }
        }
    }

    function filterByName()
    {
        fltrStr = document.getElementById('namefilter').value;
        for(i in timetable)
        {
            if(timetable[i].evcount < 1) continue;
            for(j=0;j < timetable[i].evcount;j++)
                if(timetable[i].events[j].name.toLowerCase().search(fltrStr.toLowerCase()) == 0)
                    timetable[i].events[j].visible = 1;
                else
                    timetable[i].events[j].visible = 0;
        }
        setTimeout(show,500);
        toggleFilterButtons('none');
		aCats();
    }

    function filterChildren()
    {
        if (timetable.length < 1) return;
        for(i in timetable)
        {
            if(timetable[i].evcount < 1) continue;
            for(j=0;j < timetable[i].evcount;j++)
            {
                timetable[i].events[j].visible = 0;
                for(k in timetable[i].events[j].genre)
                {
                    if((timetable[i].events[j].genre[k] == 10)||
                        (timetable[i].events[j].genre[k] == 34)||
                        (timetable[i].events[j].genre[k] == 53))
                        timetable[i].events[j].visible = 1;
                }
            }
        }
        show();
        toggleFilterButtons('children');
		aCats();
    }

    function filterGenre(gid)
    {
        if (timetable.length < 1) return;
        for(i in timetable)
        {
            if(timetable[i].evcount < 1) continue;
            for(j=0;j < timetable[i].evcount;j++)
            {
                timetable[i].events[j].visible = 0;
                for(k in timetable[i].events[j].genre)
                {
                    if(timetable[i].events[j].genre[k] == gid)
                        timetable[i].events[j].visible = 1;
                }
            }
        }
        show();
        toggleFilterButtons('genre-'+gid);
		aCats();
    }
