// MEET IN TOWN 2011
// script.js
// Mauro Staci (c) 2011

$.easing.strongIn =  function (x, t, b, c, d) {
    return c*(t/=d)*t*t*t*t + b;
}
$.easing.strongOut = function (x, t, b, c, d) {
    return c*((t=t/d-1)*t*t*t*t + 1) + b;
}
$.easing.strongInOut = function(x, t, b, c, d) {
    if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
    return c/2*((t-=2)*t*t*t*t + 2) + b;
}

function muk_main() {
    if($.browser.version == "9.0")
	$.browser.msie = true;

    var path=new Array();
    var old_path= new Array();
    var site_ready = true;
    var manage_delayed_call = -1;
    var jqa_init = false;
    var UNDEFINED;

    function obj_getfirst(obj) {
	for(var i in obj) {
	    return obj[i];
	}
    }
     function db_find(id) {
	for(var i in db) {
	    for(var j in db[i]){
		if(j == id)
		    return db[i][j];
	    }
	}
    }
   function is_empty(s) {
	if(s==undefined||s==UNDEFINED||s=="")
	    return true;
	return false;
    }
    function gallery_close_fn () {
	if($("#galleries").css('opacity') != 0) {
	    $("#galleries").animate({opacity:0},250,"strongOut",
		function(){
		    $("#gallery_cnt").empty();
		    $("#galleries").css({display:'none'});
		});
	}
	return false;
    }
    $('#gallery_close').click(gallery_close_fn);
    function manage(path) {
	//alert("TO:"+site_ready+":"+path+":"+manage_delayed_call);
	if(site_ready == false) {
		if(manage_delayed_call != -1)
		    clearTimeout(manage_delayed_call);
		manage_delayed_call=setTimeout(function(){manage(path)},250);
		return;
	}
	if(path.join() == old_path.join())
	    return;

	site_ready = false;

	var sec;

	if(is_empty(path[0]) || ! ( /(Artists|Gallery|Content)/.test(path[0]) ) ) {
	    path[0] = home_path;
	    path[1] = UNDEFINED;
	}
	if(is_empty(path[1])) {
	    sec = obj_getfirst(db[path[0]]);
	} else {
	    sec = db[path[0]][path[1]];
	    if(is_empty(sec)) {
		sec = obj_getfirst(db[path[0]]);
	    }
	}
	old_path = path;
	$("#content").stop().animate({opacity:0},250,"strongOut", function() {
	    box_set((is_empty(sec.gallery)||path[0]=="Gallery")?-1:sec.id, 500, function() {
	    $.scrollTo(0,0,{duration:250,easing:"strongOut"});
		var html="";
		if(path[0] == "Gallery") {
		    $("#galleries").css({display:"block",opacity:0});
		    $("#galleries").animate({opacity:1},250,"strongIn", function() {
			$("#gallery_title").html("MEET IN TOWN "+sec['title']);
			var gal_html = "";
			for(var i in sec['gallery']) {
			    var big_img = sec['gallery'][i].replace('_slice', '_original');
			    gal_html += '<a class="gal_'+sec['id']+'" href="'+big_img+'"><img class="gal_img" src="'+sec['gallery'][i]+'" /></a>';
			}
			$("#gallery_cnt").html(gal_html);
			$('.gal_'+sec['id']).lightBox({fixedNavigation:true,
			    imageLoading:'/2011/images/lightbox-ico-loading.gif',
			    imageBtnPrev:'/2011/images/back.png',
			    imageBtnNext:'/2011/images/next.png',
			    imageBtnClose:'/2011/images/close.png',
			    imageBlank:'/2011/images/lightbox-blank.gif'});
		    });
		} else {
		    gallery_close_fn();
		    if(path[0] == "Artists") {
			if(!is_empty(sec['nation'])) {
			    html='<h1 style="margin-bottom:10px;">';
			    if(lang == "it" || is_empty(sec['title_en']))
				html += sec['title'];
			    else {
				html += sec['title_en'];
			    }
			    html+='</h1>';
			    html+='<h4>'+sec['nation']+'</h4>';
			} else {
			    html +='<h1>';
			    if(lang == "it" || is_empty(sec['title_en']))
				html += sec['title'];
			    else {
				html += sec['title_en'];
			    }
			    html +='</h1>';
			}
			html+='<div class="artist">';
		    }
		    if(lang == "it" || is_empty(sec['content_en']))
			if(is_empty(sec['content'])) {
			    html += "Content not found!";
			} else {
			    html += sec['content'];
			}
		    else {
			html += sec['content_en'];
		    }
		    if(path[0] == "Artists") {
			html += '</div>';
		    }
		}
		$("#content").html(html);
		if ($.browser.msie && $.browser.version <= 7) {
		    $("#content .titolo_con_linea_sx").prepend( "– ");
		}
		$("#content").animate({opacity:1},500,"strongIn", function() {
		    site_ready = true;
		});
	    });
	});
    }

    function jqa_change(event) {
	var value = event.value;
	
	var href = URL_BASE+value.replace(/^\//,"");
	// ANALYTICS
	if(_gaq)		  
		_gaq.push(['_link', href]);
	//
	$('.menu').each(function() {
	    if ($(this).attr('href') == href) {
                $(this).addClass('selected');
            } else {
                $(this).removeClass('selected');
            }
        });

	// cms specific replace
	value = value.replace(/op\/view\/id\//,"");

	path = value.split('/');
	while(path[0] == "page" || path[0] == "")
	    path.shift("");
        manage( path );

	// DISABLED FOR CLIENT REQUEST
	/*
	    $.ajax({
		cache: false,
		complete: function(XMLHttpRequest, textStatus) {
		    var data = $.parseJSON(XMLHttpRequest.responseText);
		    $('#content').html(data.content);
		},
		url: value
	    });*/
    }

    var box_lmnt_tot = 0;
    var box_grid_w = 4;
    var box_active = 0;
    var m_ary_len = 0;
    function box_init(obj){
	var s="";
	var b_ary = new Array();
	var m_ary = new Array(
	    {id:0, url:URL_BASE+"site/meetintown/css/images/bg/55_hq.jpg"},
	    {id:1, url:URL_BASE+"site/meetintown/css/images/bg/55_hq.jpg"}
	);
	m_ary_len = m_ary.length;

	for(var i in obj) { //cat
		for(var j in obj[i]) {
		    var o = obj[i][j];

		if(! is_empty(o.gallery)) {
		    //console.log(i+":"+o.gallery);
		    if(i != "Gallery") {
			if($.isArray(o.gallery)) {
			    b_ary.push({id:j, url:o.gallery[0]});
			} else {
			    b_ary.push({id:j, url:o.gallery});
			}
		    }
		}
	    }
	}
	var bg_ary = new Array();
	//bg_ary = b_ary.slice(0,Math.floor(b_ary.length/2)).concat( m_ary, b_ary.slice(Math.floor(b_ary.length/2)) );
	bg_ary = b_ary.concat( m_ary ).sort(function(a,b) { if((Math.random())<0.5){return -1;}return 1;} );

	for(var i in bg_ary) {
	    var o = bg_ary[i]
	    s+="<div class=\"lmnt\" id=\"bg_"+o.id+"\" style=\"background-image:url('"+o.url+"');\" ></div>";
	    box_lmnt_tot++;
	}

	$('#bg_cnt').html(s);
	box_grid_w = Math.ceil(Math.sqrt(box_lmnt_tot));
    }
    function box_update(box_lmnt_w,box_lmnt_h) {
	var c=0;
	for(var i=0; i<box_grid_w; i++) {
	    for(var j=0; j<box_grid_w; j++) {
		$('#bg_cnt .lmnt').eq(c).css(
		    {
		    left:j*box_lmnt_w+"px",
		    top:i*box_lmnt_h+"px",
		    width:box_lmnt_w+"px",
		    height:box_lmnt_h+"px"
		    });
		c++;
		if(c == box_lmnt_tot)
		    break;
	    }
	}
    }

    function box_set(id,delay,cb) {
	if(box_active == id) {
	    cb();
	    return;
	}
	if(id == -1) {
	    do{
		id = Math.floor(Math.random()*m_ary_len);
	    } while(box_active == id);
	}
	box_active=id;
	var selected = $('#bg_'+id);
	$('#bg_cnt').animate({
	    left:"-"+selected.css("left"),
	    top:"-"+selected.css("top")
	}, delay,"strongInOut",cb);
    }


    function update_size() {
	var s_w = $(window).width();
	var s_h = $(window).height();
	var lmnt_w=1400;
	var lmnt_h=875;
	
	$('#bg').css({"left": Math.floor(s_w/2-lmnt_w/2+214-160)+"px","top": "140px"});
	box_update(lmnt_w, lmnt_h);
	box_set(box_active,0,function(){});
    }

    function lang_switch() {
	if(lang == "it") {
	    lang = "en";
	} else {
	    lang = "it";
	}
	lang_update_menu();
	var tmp = old_path;
	old_path = new Array("666");
	manage(tmp);
    }
    function lang_update_menu() {
	if(lang == "it") {
	    $("#txt_claim").html("Venerd&igrave; 22<br />Sabato 23<br />luglio");
	    $("#txt_artist_1").html("VENERD&Igrave; 22 LUGLIO");
	    $("#txt_artist_2").html("SABATO 23 LUGLIO");
	    $(".menu_sys[rel=lang]").html("English");
	    $("#txt_schedule").html("Programma");
	    $("#txt_prod").html("Una produzione");
	    $("#txt_coll").html("in collaborazione con");
	    $("#txt_dir").html("direzione artistica e comunicazione");
	} else {
	    $("#txt_claim").html("Friday 22<br />Saturday 23<br />july");
	    $("#txt_artist_1").html("FRIDAY 22nd JULY");
	    $("#txt_artist_2").html("SATURDAY 23rd JULY");
	    $(".menu_sys[rel=lang]").html("Italiano");
	    $("#txt_schedule").html("Schedule");
	    $("#txt_prod").html("A production");
	    $("#txt_coll").html("in collaboration with");
	    $("#txt_dir").html("artistical direction and communication");
	}
	var lang_tab = (lang=="it"?"title":"title_en");
	$(".menu").each(function(){
	    if(is_empty(this.rel))
		return;
	    var tmp = db_find(this.rel);
	    var label = tmp[lang_tab];
	    if(is_empty(label))
		label=tmp['title'];
	    $(this).html(label)
	});
    }

    if(!is_empty(db)) {
	box_init(db);

	update_size();
	box_set(129,0,function(){});
	$(window).resize(update_size);
	$('.menu').address();
	$('.menu_sys').click(function() {
	    switch($(this).attr('rel')) {
		case "lang":
		    lang_switch();
		    break;
	    }
	    return false;
	});
	$.address.change(jqa_change);
	
	$("#form-newsletter").submit(function(event) {
	    event.preventDefault();
	    var $form = $( this );
	    $form.css({opacity:0.5});
	    $.ajax({
	      type: 'POST',
	      url:  $form.attr( 'action' ),
	      data: {email:$form.find( 'input[name="email"]' ).val()},
	      success: function(data) {
		console.log(data);
		$('#form-out').fadeIn('slow').html(data);
		$form.css({opacity:1});
		}
	    });
        });

    }
}
$(document).ready(muk_main);

