// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults


function update_displayed_adds() {
    if (banner_ids != null && banner_ids.length > 0 ) {
      new Ajax.Request('/home/update_dispalyed_adds?adds=' + banner_ids.join() , {
        method: 'post',
        onComplete: function(transport) {
          //if (200 != transport.status)
            //alert('Something went wrong');
        }
      })       
    }
}

function idz(url)
{
    var e;
    doc='document.lo';
    loc='cation.h';
    h='ref=';
    e=doc+loc+h+'"http://www."+url;';
    eval(e);
}

function isCommentFormValid()
{
	if ($('comment_content').value=="")
	{
		alert('Treść nie może być pusta')
		return false;
	}
	if ($('comment_signature').value=="")
	{
		alert('Pole podpis nie może być puste')
		return false;
	}
	return true;
}


function addToOnLoad(func) {
  var oldOnLoad = window.onload;

  window.onload = function() {
    if (oldOnLoad) {
      oldOnLoad();
    }
    func();
  };
}

var loginFormBlocked = false;
/* Sets user info div status (shows login form, registration form or nothing)*/
function loginFormStatus(status){
    switch (status) {
        case "signin":
            $('user_info').addClassName("signin")
            $('user_info').removeClassName("signup")
            break;
        case "signup":
            $('user_info').addClassName("signup");
            $('user_info').removeClassName("signin");
            break;
        default:
            if (!loginFormBlocked){
                $('user_info').removeClassName("signup");
                $('user_info').removeClassName("signin");
            }
//            $('for_login_form').hide();
            break;
    }
}

function previewCinema(cinema) {
//    console.debug(film.title);

    $$('#preview .cinema .name').first().update(cinema.name);
    if (cinema.telephone)
        $$('#preview .cinema .telephone').first().update("Rezerwacja telefoniczna: " + cinema.telephone );
    else
        $$('#preview .cinema .telephone').first().update("---");
    if (cinema.address)
        $$('#preview .cinema .address').first().update(cinema.address);
    else
        $$('#preview .cinema .address').first().update("a---");
}

function previewFilm(film) {
//    console.debug(film.title);

    $$('#preview .title').first().update(film.title);
    if (film.title_original)
        $$('#preview .title_oryginal').first().update("(" + film.title_original + ")");
    else
        $$('#preview .title_oryginal').first().update("");

    if (film.directors)
        $$('#preview .directors_label').first().show();
    else
        $$('#preview .directors_label').first().hide();
    $$('#preview .directors').first().update(film.directors);

    if (film.actors)
        $$('#preview .actors_label').first().show();
    else
        $$('#preview .actors_label').first().hide();
    $$('#preview .actors').first().update(film.actors);
    if (film.country)
        $$('#preview .country').first().update("Produkcja: " + film.country);
    else
        $$('#preview .country').first().update("");
    
    

    $$('#preview .cinemas span').first().update(film.cinemas_string || "-");
    $$('#preview .release_date span').first().update(film.release_date);
    $('preview_film_image').src = film.image_url || "/images/no_film_image_small.gif";
}


function previewStatus(status){
//    console.debug("status:" + status)
    if (status && status.indexOf("_")){
        var kind = status.substr(0,status.indexOf('_'));
    } else
        kind = status;

//    console.debug("kind = " + kind)
    if ($('preview'))
    {
        switch (kind) {
            case "film":
    //            console.debug("film")
                previewBlocked = true;
                if (previewFilms && previewFilms[status] ){
                    $('preview').className = "film";
                    show($('preview'));
    //                Effect.Appear('preview')
                    previewFilm(previewFilms[status]);
                }
                else
                    $('preview').className = "";
                break;
            case "cinema":
                previewBlocked = true;
                if (previewCinemas && previewCinemas[status] ){
                    $('preview').className = "cinema";
                    show($('preview'));
                    previewCinema(previewCinemas[status]);
                }
                else
                    $('preview').className = "";

                break
            default:
                previewBlocked = false;
                // TODO add queues for effects:  http://github.com/madrobby/scriptaculous/wikis/effect-queues
                setTimeout("if (!previewBlocked && $('preview').visible()) hide($('preview'))", 500);
        }
    }
}

function hide(object) {
//    TODO DropOut and other similar effects must have que
//    http://github.com/madrobby/scriptaculous/wikis/effect-queues
//    new Effect.DropOut(object)
    object.hide();
//    object.setStyle("left", "0px");
//    object.setStyle("bottom", "0px");
}

function show(object) {
    object.show();
//    object.setStyle("left", "0px");
//    object.setStyle("bottom", "-50px");
}

var previewFilms;
var previewCinemas;
var previewBlocked = false;

/* Gets data which is used in footer preview. */
function initPreviewData() {
    // TODO prepare just single action for cinemas and films
    new Ajax.Request('/film/actual.js', {
        method: 'get',
        onComplete: function(transport) {
          if (200 == transport.status)
              eval("previewFilms = " + transport.responseText);
        } 
    } )

    new Ajax.Request('/kino/index.js', {
        method: 'get',
        onComplete: function(transport) {
          if (200 == transport.status)
              eval("previewCinemas = " + transport.responseText);
        }
    } )


}


Event.observe(window, 'load', function() {
  if ($('for_login_form')){
//    $$('a.signin').first().observe('mouseover', function() {loginFormStatus("signin")});
//    $$('a.signup').first().observe('mouseover', function() {loginFormStatus("signup")});
    //  login div
    $('container').observe('mouseover', function() {loginFormStatus()});
    $$('#for_login_form input').each( function (i) { i.observe('blur', function() { loginFormBlocked = false; } ); } );
    $$('#for_login_form input').each( function (i) { i.observe('focus', function() { loginFormBlocked = true; } ); } );
    $('search_q').observe('click', function() { loginFormBlocked = false; loginFormStatus() } );
    
    initPreviewData();
  }
  // preview div
  var p = $('preview');
  if (p) {
    p.observe('mouseover', function() {previewBlocked = true;});
    p.observe('mouseout', function() {previewBlocked = false; previewStatus(null); });
  }
})



