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

var cw = 1000;
var ch = 500;
var fr = 30;
var sp = 40;
var others;
var multi;
var atimer;
var flag=true;

var h_fr = 40;
var h_sp = 15;
var w_fr = 40;
var w_sp = 8;
var f_fr = 60;
var f_sp = .24;

var xf_fr = 60;
var xf_sp = .15;


function newsfeedH(){
	e = document.getElementById('newsfeed');
	h = e.offsetHeight + h_sp;
	if(h >= ch - 60){
		h = ch-60;
		clearInterval(atimer);
		atimer = undefined;
	}
	e.style.height = h + 'px';
}

function newsfeedW(){
	e = document.getElementById('newsfeed');
	w = e.offsetWidth + w_sp;
	if(w >= cw - 60){
		w = cw-60;
		clearInterval(atimer);
		atimer = setInterval(newsfeedH, h_fr);
	}
	e.style.width = w + 'px';
}

function fadeOthers(){
	l=others.length;
	multi -= f_sp;
	if(multi<=0){
		multi = 0;
		clearInterval(atimer);
		e = document.getElementById('newsfeed');
		c = e.parentNode;
		for(var i=0;i<l;i++){
			c.removeChild(others[i]);
		}
		atimer = setInterval(newsfeedW, w_sp);
	} else {
		for(var i=0;i<l;i++){
			others[i].style.opacity=multi;
		}
	}
}

function expandNews(content){
	e = document.getElementById('newsfeed');
	c = e.parentNode.childNodes;
	others = [];
	l = c.length;
	j =0;
	for(var i=0;i<l;i++){
		if(c[i].nodeName=='DIV'&&c[i]!=e){
			others[j] = c[i];
			j++;
		}
	}
	e.removeChild(document.getElementById('morenews'));
	multi = 1;
	atimer = setInterval(fadeOthers, f_fr);
}

function getDivs(e){
	es = e.childNodes;
	el = es.length;
	ds = [];
	dl = 0;
	for(var i=0;i<el;i++){
		if(es[i].nodeName=='DIV'){
			ds[dl]=es[i];
			dl++;
		} else{
			//alert(es[i]);
			//e.removeChild(es[i]);
		}
	}
	return ds;
}

function slideD(){
	e = document.getElementById('content');
	ds = getDivs(e);
	dl = ds.length;
	for(var i=0;i<dl;i++){
		ds[i].style.top = (ds[i].offsetTop + sp) + 'px';
	}
	if(ds[dl-1].offsetTop>=0){
		ds[dl-1].style.top = '0px';
		clearInterval(e.timer);
		e.timer=undefined;
		for(var j=0;j<dl-1;j++){
			e.removeChild(ds[j]);
		}
	}
}

function slideIn(content){
	e = document.getElementById('content');
	if(typeof e.timer == 'undefined'){
		Element.insert(e, content);
		ds = getDivs(e);
		//alert(ds.length);
		//alert(ds[0].innerHTML);
		ds[ds.length-1].style.top=-ch+'px';
		e.timer = setInterval(function(){slideD();}, fr);
	}
}

function crossFade(ds){
	e = document.getElementById('content');
	if(ds[1].parentNode){
		ds[1].op -= xf_sp;
		if(ds[1].op<0){
			ds[1].parentNode.removeChild(ds[1]);
			ds[0].style.display = '';
			ds[0].style.display = 'relative';
		} else {
			ds[1].style.opacity = ds[1].op;
		}
	} else{
		ds[0].op += xf_sp;
		if(ds[0].op>1){
			ds[0].style.opacity = 1;
			clearTimer(e.timer);
			e.timer=undefined;
		} else{
			ds[0].style.opacity = ds[0].op;
		}
	}
}

function crossFadeIn(content){
	e = document.getElementById('content');
	if(typeof e.timer != 'undefined'){
		clearTimer(e.timer);
		e.timer=undefined;
	}
	ds = getDivs(e);
	l = ds.length;
	for(var i=1; i<l; i++){
		ds[i].parentNode.removeChild(ds[i]);
	}
	Element.insert(e.firstChild,{ before: content});
	
	ds = getDivs(e);

	ds[0].style.display='none';
	ds[0].style.opacity=0;
	ds[0].op = 0;
	ds[1].style.opacity = 1;
	ds[1].op = 1;

	e.timer = setTimer(function(ds){crossFade(ds);}, ds, xf_fr);
}

function animatePage(obj){
	//alert(obj);
	//alert(obj.html);

	var e = document.createElement('div');
	e.className = 'slidercontent';
	e.innerHTML=obj.html;
	//slideIn(e);
	c = document.getElementById('content');
	crossFadeIn(e);
	document.getElementById("navbar").replace(obj.navbar);
	window.location.hash = escape(obj.uri);
	urlhash = window.location.hash
	if(typeof flashtimer != 'undefined'){
		clearTimeout(flashtimer);
	}

	if(obj.flash_message){
		$('flash_message').innerHTML = obj.flash_message;
		new Effect.BlindDown('flash_message');
	} else {
		if($('flash_message').style.display != 'display:none;'){
			new Effect.BlindUp('flash_message');	
		}
	}

	if(obj.flash_notice){
	//	alert(obj.flash_notice);
		$('flash_notice').innerHTML = obj.flash_notice;
		new Effect.BlindDown('flash_notice');
	} else {
	//	alert('no notice');
		if($('flash_notice').style.display != 'display:none;'){
			new Effect.BlindUp('flash_notice');	
		}
	}

	if(obj.flash_error){
		$('flash_error').innerHTML = obj.flash_error;
		new Effect.BlindDown('flash_error');
	} else {
		if($('flash_error').style.display != 'display:none;'){
			new Effect.BlindUp('flash_error');	
		}
	}
}

function checkHash(){
	if(window.location.hash != urlhash){
		urlhash = window.location.hash;
		if(urlhash==""){
			urlhash = "#"+window.location.replace(/\.js/,'');
		}
		new Ajax.Request(urlhash.substr(1), {asynchronous:true, evalScripts:true, method:'get', onComplete:function(request){var x = eval('(' + request.responseText + ')'); animatePage(x);}});
	}
}

//function facebook_onlogin(){
//	var user_box = document.getElementById("fbuser"); 
// add in some XFBML. note that we set useyou=false so it doesn't display "you" 
//	user_box.innerHTML = "<span>" +
//	"<fb:profile-pic uid=loggedinuser facebook-logo=true></fb:profile-pic>" +
//	"Welcome, <fb:name uid=loggedinuser useyou=false></fb:name>." +
//	"<br/>" + 
//	"You are signed in with your Facebook account.  <a href='#' onclick='FB.Connect.logout(); facebook_logout(); return false;'>Logout</a>" +
//	"</span>";
//	user_box.show();
//	FB.XFBML.Host.parseDomTree();  
//	document.getElementById('fbloginbutton').hide();
//}

function facebook_logout(){
	document.getElementById('fbloginbutton').show();
	document.getElementById('fbuser').hide();
}