//---------------------------------------------------------------

function init_project() {
	//console.log("init project");
	
}

function init_info() {
	//console.log("init info stuff");
	
	//setting height of items
	info_setheights();
	
	$$(".faqtable .item").each(function(elt) {
		//wiring rollovers
		//Event.observe(elt.down("div").down("strong"), "mouseover", info_question_over);
		Event.observe(elt.down("div"), "mouseover", info_question_over);
		Event.observe(elt.down("div"), "mouseout", info_answer_out);
	});
}

function resize_info() {
	//console.log("info window resized");
	info_setheights();
}

function info_setheights() {
	$$(".faqtable .item").each(function(elt) {
		var maxH = Math.max(elt.down("strong").getHeight(), elt.down("span").getHeight());
		elt.down("div").setStyle({
			height: (maxH+1)+"px"
		});
		elt.setStyle({
			height: maxH+"px"
		});
		elt.down("span").setStyle({
			display:'none'
		})
	});
}

function info_question_over(evt) {
	var target = evt.target;
	target.up("div").down("strong").hide();
	target.up("div").down("span").setStyle({
		display:'block'
	})
}
function info_answer_out(evt) {
	var target = evt.target;
	target.up("div").down("span").hide();
	target.up("div").down("strong").show();
}

function init_worklist() {
	//initializes work list stuff...
	//console.log("Initting work list");
			
	Event.observe($('filter_bar'), 'mouseover' , works_filter_over);
	Event.observe($('filter'), 'mouseout', works_filter_out);
	
	$$("#worklist .item .but").each(function(elt) {
		Event.observe(elt, "mouseover", workthumb_over);
		Event.observe(elt, "mouseout", workthumb_out);
	});
	resize_worklist();
}

function init_blog_filternav() {
	//initializes work list stuff...
	//console.log("Initting work list");

	Event.observe($('filter_bar'), 'mouseover' , works_filter_over);
	Event.observe($('filter'), 'mouseout', works_filter_out);

	$$("#worklist .item .but").each(function(elt) {
		Event.observe(elt, "mouseover", workthumb_over);
	});
}

var blog_side_post_page = 1;
var blog_side_tweet_page = 1;
var blog_post_blocks;
var blog_tweet_blocks;
function init_blog_sidebar() {
  //this inits the tweets and posts navigation
  blog_post_blocks = $$('#blog_recent_posts .block');
  blog_tweet_blocks = $$('#blog_recent_tweets .block');

  //wiring buts
  $$('#sideposts .head a.prev')[0].observe('click', blog_side_post_prevpage);
  $$('#sideposts .head a.next')[0].observe('click', blog_side_post_nextpage);

  $$('#twits .head a.prev')[0].observe('click', blog_side_tweet_prevpage);
  $$('#twits .head a.next')[0].observe('click', blog_side_tweet_nextpage);

  blog_update_side_navbuts();

  blog_side_tweet_updatepage();
  blog_side_post_updatepage();
}

function blog_update_side_navbuts() {
  //nothing here yet.
}

function blog_side_tweet_nextpage(evt) {
  Event.stop(evt);
  if (blog_side_tweet_page>=blog_tweet_blocks.length) {
    return false;
  }

  blog_side_tweet_page++;
  blog_side_tweet_updatepage();
  blog_side_post_updatepage();
}
function blog_side_tweet_prevpage(evt) {
  Event.stop(evt);

  if (blog_side_tweet_page<=1) {
    return false;
  }

  blog_side_tweet_page--;
  blog_side_tweet_updatepage();
}
function blog_side_tweet_updatepage() {
  var nextheight = blog_tweet_blocks[blog_side_tweet_page-1].getHeight();
  new Effect.Move('blog_recent_tweets', { x: -190*(blog_side_tweet_page-1), y: 0, mode: 'absolute', duration: 0.5 } );
  new Effect.Morph('blog_recent_tweets', { style: 'height:'+nextheight+'px;', duration: 0.5 });
}

function blog_side_post_prevpage(evt) {
  Event.stop(evt);
  if (blog_side_post_page<=1) {
    return false;
  }

  blog_side_post_page--;
  blog_side_post_updatepage();
}
function blog_side_post_nextpage(evt) {
  Event.stop(evt);
  if (blog_side_post_page>=blog_post_blocks.length) {
    return false;
  }

  blog_side_post_page++;
  blog_side_post_updatepage();
}
function blog_side_post_updatepage() {
  var nextheight = blog_post_blocks[blog_side_post_page-1].getHeight();
  new Effect.Move('blog_recent_posts', { x: -190*(blog_side_post_page-1), y: 0, mode: 'absolute', duration: 0.5 } );
  new Effect.Morph('blog_recent_posts', { style: 'height:'+nextheight+'px;', duration: 0.5 });
}

var resizeTimeout = undefined;
var unremovedBackIMGs = true;
function resize_worklist() {
	//resizing .item .but elements to match image sizes
	// console.log("worklist resized..");
	
	if (unremovedBackIMGs) {
		$$("#worklist img.backimg").each(function(elt) {
			elt.remove();
			//elt.parent.removeChild(elt);
		});
		$$("#worklist img.realimg").each(function(elt) {
			elt.setOpacity(0);
			elt.setStyle({'display':"block"});
			elt.appear();
			//elt.parent.removeChild(elt);
		});
		unremovedBackIMGs = false;
	}
	
	var docW = Math.max( 985, Math.min(document.viewport.getWidth(), 1255));
	
	$("content").style.width = (docW - parseInt($("content").getStyle("margin-right"))) + "px";
	$("filter").setStyle({width: (docW-177-70-20)+"px"});
	$$("#filter ul").first().setStyle({width: (docW-177-70-20 - 70)+"px"});
	
	if (resizeTimeout!=undefined) {
		clearTimeout(resizeTimeout);
	}
	resizeTimeout = setTimeout(resize_worklist_buts, 300);
}

function resize_worklist_buts() {
	// console.log("resizing worklist buts");
	
	clearTimeout(resizeTimeout);
	resizeTimeout = undefined;
	
	$$("#worklist .item").each(function(elt) {
		var imgElt = elt.down("img");
		var aElt = elt.down("a");
		aElt.setStyle({
			width: imgElt.getWidth()+"px",
			height: imgElt.getHeight()+"px"
		});
	});

	//also resizing the #filter to match #filter_all height
	$("filter").setStyle({height:$("filter_all").getHeight()+"px"});
	
}

function workthumb_over(evt) {
	//console.log("thumb over");
		
	var imgElt = evt.target.up().down("img");
	var infoElt = evt.target.up().down("div");
	var curtElt = evt.target.up().down("span");
	var realThumbElt = evt.target.up().down("i");
	
	realThumbElt.setStyle({width:imgElt.getWidth()+"px", height:imgElt.getHeight()+"px"});
	if (realThumbElt.curEffect!=null) {
		realThumbElt.curEffect.cancel();
		realThumbElt.curEffect = null;
	}
	realThumbElt.curEffect = new Effect.Appear(realThumbElt, {from: 0, to: 1, duration: 0.5});
	
	//realThumbElt.appear({duration:0.5});
		
	
	curtElt.setStyle({width:imgElt.getWidth()+"px", height:imgElt.getHeight()+"px"});
	curtElt.setOpacity(0);
	curtElt.show();

/*	
	if (curtElt.curEffect!=null) {
		curtElt.curEffect.cancel();
		curtElt.curEffect = null;
	}
*/
	curtElt.curEffect = new Effect.Opacity(curtElt, {from:0, to: 0.4, duration: 0.4});
	
	var deltaY = parseInt((imgElt.getHeight()-infoElt.getHeight())/2) +9;
	
	infoElt.setStyle({top: deltaY + "px"});
	infoElt.setStyle({top: deltaY + "px"});
	
	if (infoElt.curEffect!=null) {
		infoElt.curEffect.cancel();
		infoElt.curEffect = null;
	}
	
	infoElt.curEffect = new Effect.Appear(infoElt, {from: infoElt.getOpacity(), to: 1, duration: 0.4});
	
	//	infoElt.appear({duration:0.4});
	//evt.target.up().down("div").appear({duration:0.2});
}
function workthumb_out(evt) {
	//console.log("thumb out");
	var imgElt = evt.target.up().down("img");
	var infoElt = evt.target.up().down("div");
	var curtElt = evt.target.up().down("span");
	var realThumbElt = evt.target.up().down("i");
	
	if (infoElt.curEffect!=null) {
		infoElt.curEffect.cancel();
		infoElt.curEffect = null;
	}	
	evt.target.up().down("div").fade({duration:0.1});
	
	var realThumbElt = evt.target.up().down("i");
	
	if (realThumbElt.curEffect!=null) {
		realThumbElt.curEffect.cancel();
		realThumbElt.curEffect = null;
	}
	
	realThumbElt.fade({duration:0.1});
	
	/*
	var curtElt = evt.target.up().down("span");
	if (curElt.curEffect!=null) {
		curElt.curEffect.cancel();
		curElt.curEffect = null;
	}*/
	curtElt.hide();
	//curtElt.fade({duration:0.3});
}

function works_filter_over(evt) {
	// console.log("Filter OVER");
	
	//checking if we are really out of the #filter area
	
	$("filter_all").show();
	$("filter_current").hide();
}
function works_filter_out(evt) {
	// console.log("Filter OUT:"+evt.target);
	// 
	// console.log("out coords:"+evt.pointerX()+"/"+evt.pointerY());
	// console.log("inside #filter?"+Element.hasPosition($("filter"), evt.pointerX(), evt.pointerY()));

	if ( !Element.hasPosition($("filter"), evt.pointerX(), evt.pointerY()) ) {
		$("filter_all").hide();
		$("filter_current").show();
	}
}


var sideMover = null;

function reposition_sidebar() {
	var sideoff = $("sidebarbox").cumulativeOffset()[0];
	//alert($("sidebar").getStyle("marginLeft"));
	$("sidebar").setStyle({marginLeft: (sideoff+300)+"px"});
}

var siderepto;
function init_global() {
	Event.observe(window, "resize", reposition_sidebar);
	reposition_sidebar();
	randomize_p();
}

function randomize_p() {
	//return false;

	var max_p = 4;
		
	var p = Math.floor(Math.random()*max_p+1)
	$("letter_p").setStyle({
		backgroundImage : "url(/img/shared/plogo/"+p+".gif)",
		backgroundRepeat: "no-repeat",
		backgroundPosition: "50% 50%"
	});
}

function global_resize() {
	// console.log("global resizing");
	try {
	$$(".holder").first().style.height = (document.viewport.getHeight()-3)+"px";
	} catch(e) {}
}

var mailover_elt = null;
function init_contact() {
	Event.observe($("contact_email"), "mouseover", function() {
		if (mailover_elt!=null) return;
		try {
			$("contact_email").removeChild($("mailover"));
		}catch(e){}
		
		var rnd = Math.floor(Math.random()*100000000);
		var loadingimg = 'img/shared/mailover'+rnd+'.gif';
		
		mailover_elt = null;
		mailover_elt = new Element("img", { 'src': loadingimg , 'id' : 'mailover'});
		
		Event.observe(mailover_elt, "mouseout", function(evt) {
			if ( !Element.hasPosition($("contact_email"), evt.pointerX(), evt.pointerY()) ) {
				$("contact_email").removeChild($("mailover"));
				var filler = new Element("img", { 'src' : "/img/blank.gif", 'width' : '845', 'height' : '114' });
				$("contact_email").appendChild(filler);
				mailover_elt = null;
			}
		})
		$("contact_email").appendChild(mailover_elt);
		//mailover_elt.src = "img/shared/mailover.gif";
	});
	Event.observe($("contact_email"), "click", function() {
		var part1 = "hi@";
		var part2 = "perkybros";
		var part3 = ".com";
		var prot = "mailto:";
		window.location = prot+part1+part2+part3;
	});
}

Element.addMethods({ 
    hasPosition : function(element, x, y){ 
        element = $(element); 
        this.topleft = Element.cumulativeOffset(element); 

		this.topleft[1] += Element.cumulativeScrollOffset(element)[1]; 
		
        this.bottomright = [ 
            this.topleft[0] + element.offsetWidth, 
            this.topleft[1] + element.offsetHeight, 
        ]; 
        return (y >= this.topleft[1] && 
            y <  this.bottomright[1] && 
            x >= this.topleft[0] && 
            x <  this.bottomright[0]); 
    } 
});

Element.addMethods({
 redraw: function(element){
 element = $(element);
 var n = document.createTextNode(' ');
 element.appendChild(n);
 (function(){n.parentNode.removeChild(n)}).defer();
 return element;
}
});

//-----------------------------

document.observe("dom:loaded", function() { reposition_sidebar(); });
Event.observe(window, "load", init_global);
