/*
update_image.js
Don Havey: www.donhavey.com
for MESH: www.mesh-arc.com
*/
function update_image(iid){
	if(!document.getElementById("image_image")){ return false; }
	if(parseInt(iid)!=current_iid){
		load_image(["/_front/xml/image.php?iid="+iid],true);
	}
	current_iid = iid;
	return false;
}

/*
submit_select.js
Don Havey: www.donhavey.com
for MESH: www.mesh-arc.com
*/
function submit_select(selection){
	selection = selection.split("|");
	tid = parseInt(selection[0]);
	iid = parseInt(selection[1]);
	tag = selection[2];
	if(tid&&tid>0){
		request_cards(["/_front/xml/query.php?primary=true&tid="+escape(tid)],true,false,"tag",tag);
		if(iid>0){
			load_image(["/_front/xml/image.php?iid="+escape(iid)],true);
		}
	}else{
		alert("No tag selected!");
	}
	return false;
}

/*
submit_search.js
Don Havey: www.donhavey.com
for MESH: www.mesh-arc.com
*/
function submit_search(query){
	if(query&&query!=""&&query!=" "){
		request_cards(["/_front/xml/query.php?search="+escape(query)],true,false,"query",query);
	}else{
		alert("No query entered into the search field!");
	}
	return false;
}

/*
state_change.js
Don Havey: www.donhavey.com
for MESH: www.mesh-arc.com
*/
var cheight = 70;
var padding = 5;
function state_change(o1,o2){
	var e1 = document.getElementById(o1); //content
	var e2 = document.getElementById(o2); //content text
	if(Math.abs(e1.offsetHeight-e2.offsetHeight)<=padding*2){
		scale([o1],cheight,0.3);
	}else{
		scale([o1],e2.offsetHeight+padding,0.3);
	}
	setTimeout("refresh()",1000);
	return false;
}

/*
request_cards.js
Don Havey: www.donhavey.com
for MESH: www.mesh-arc.com
*/
function request_cards(files,clear,skip,filter_type,filter_text){
	if(clear){
		clear_cards();
	}
	if(document.getElementById("loading-cards").className=="loading-cards-off"){
		document.getElementById("loading-cards").className = "loading-cards-on";
	}
	if(filter_type){
		//create search info card
		var cards = document.getElementById("cards_holder");
		var eid = "_search_info_";
		var card = dom_element("div",cards,"card","c"+eid);
		var content = dom_element("div",card,"content","c"+eid+"c");
		//content holder
		var holder = dom_element("div",content,"holder");
		//content holder text
		var text = dom_element("div",holder,"text","c"+eid+"ct");
		if(filter_type=="tag"){
			var text_txt = dom_text("Showing '"+filter_text+"' entries. Click a thumbnail or title...",text);
		}else if(filter_type=="query"){
			var text_txt = dom_text("Showing entries containing '"+filter_text+"'. Click a thumbnail or title...",text);
		}  
		content.style.height = "auto";
		text.style.color = "#ffff66"; 
		refresh(true);
	}
	//send xml requests
	for(var i=0;i<files.length;i++){
		setTimeout("new xml('"+files[i]+"',load_cards,"+skip+")",30+100*i);
	}
	return false;
}

/*
position_scrollbar.js
Don Havey: www.donhavey.com
for MESH: www.mesh-arc.com
*/
var scroller_dy = 50;
function position_scrollbar(reset){
	if(!document.getElementById("scrollbar")||!document.getElementById("scrollbar_bar")||!document.getElementById("scrollbar_image")||!document.getElementById("cards")){ return false; }
	tooltip();
	var e1 = document.getElementById("scrollbar");
	var e2 = document.getElementById("scrollbar_bar");
	var e3 = document.getElementById("scrollbar_image");
	if(reset){
		e2.style.top = 0;
		document.getElementById("cards_holder").style.top = 0;
	}
	if(document.getElementById("cards_holder").offsetHeight+document.getElementById("navigation").offsetHeight>e1.offsetHeight){
		drag.init(e2,null,0,0,0,e1.offsetHeight-scroller_dy);
		e2.onDrag = function(x,y){
			var dy = document.getElementById("cards_holder").offsetHeight+document.getElementById("navigation").offsetHeight;
			var ratio = (e1.offsetHeight-dy)/(e1.offsetHeight-scroller_dy);
			document.getElementById("cards_holder").style.top = (ratio*y)+"px";
		};
		e2.style.visibility = "visible";
		e3.style.visibility = "visible";
	}else{ 
		e2.style.top = 0;
		document.getElementById("cards_holder").style.top = 0;
		e2.style.visibility = "hidden";
		e3.style.visibility = "hidden";
	}
	return false;
}

/*
position_image.js
Don Havey: www.donhavey.com
for MESH: www.mesh-arc.com
*/
function position_image(){
	if(!document.getElementById("image_image")||!document.getElementById("image")||!document.getElementById("ii")||!document.getElementById("left").offsetWidth||!document.getElementById("content")||!document.getElementById("cards")||!document.getElementById("scrollbar")){ return false; }
	var img = document.getElementById("ii");
	var image = document.getElementById("image");
	var image_image = document.getElementById("image_image");
	var ow = parseInt(img.offsetWidth);
	var oh = parseInt(img.offsetHeight);
	var ratio = ow/oh;
	var w = parseInt(document.getElementById("content").offsetWidth)-parseInt(document.getElementById("content").offsetWidth)%100;
	var h = Math.round(w/ratio);
	if(h>parseInt(document.getElementById("content").offsetHeight)-5){
		h = parseInt(document.getElementById("content").offsetHeight)-5;
		w = Math.round(h*ratio);
	}
	img.style.width = w+"px";
	img.style.height = h+"px";
	img.style.visibility = "visible";
	image.style.width = w+"px";
	image.style.height = h+"px";
	image.style.visibility = "visible";
	image_image.style.width = w+"px";
	image_image.style.height = h+"px";
	image_image.style.visibility = "visible";
	return false;
}

/*
load_image.js
Don Havey: www.donhavey.com
for MESH: www.mesh-arc.com
*/
function load_image(files,clear){
	if(clear){
		clear_image();
	}
	if(document.getElementById("loading-image").className=="loading-image-off"){
		document.getElementById("loading-image").className = "loading-image-on";
	}
	for(var i=0;i<files.length;i++){
		var x = new xml(files[i],add_image);
	}
	return false;
}


/*
load_cards.js
Don Havey: www.donhavey.com
for MESH: www.mesh-arc.com
*/
function load_cards(data,n,skip){
	if(document.getElementById("loading-cards").className=="loading-cards-off"){
		document.getElementById("loading-cards").className = "loading-cards-on";
	}
	if(!skip){
		var structure = ["id","eid"];
		var entries = data.responseXML.documentElement.getElementsByTagName("entry");	
		var vars = [];
		for(var i=0;i<entries.length;i++){
			vars[i] = xmls[n].parse(entries[i],structure);
		}
		if(vars.length>0){
			for(var i=0;i<vars.length;i++){
				if(vars[i].eid){
					setTimeout("new xml('/_front/xml/entry.php?eid="+vars[i].eid+"',add_card)",30+100*i);
				}
			}
		}else{
			if(document.getElementById("loading-cards").className=="loading-cards-on"){
				document.getElementById("loading-cards").className = "loading-cards-off";
			}
			//create a no results card
			var cards = document.getElementById("cards_holder");
			var eid = "_no_results_";
			var card = dom_element("div",cards,"card","c"+eid);
			var content = dom_element("div",card,"content","c"+eid+"c");
			//content holder
			var holder = dom_element("div",content,"holder");
			//content holder text
			var text = dom_element("div",holder,"text","c"+eid+"ct");
			//content holder text txt
			var text_title = dom_element("div",text,"title","c"+eid+"ctt");
			var text_title_txt = dom_text("Bad news...",text_title);
			var text_txt = dom_text("No results were returned. Try a different search word or try browsing by entry tags (use the drop-down menu above).",text); 
			refresh(true);
		}
	}else{
		add_card(data,n);
	}
	return false;
}

/*
clear_image.js
Don Havey: www.donhavey.com
for MESH: www.mesh-arc.com
*/
function clear_image(){
	tooltip();
	var imgs = document.getElementsByTagName("a");
	var images = [];
	for(var i=0;i<imgs.length;i++){
		if(imgs[i].parentNode.getAttribute("id")=="image_image"){
			images.push(imgs[i].getAttribute("id")); //store as ids and reselect to avoid collapsing the array
		}
	}
	for(var i=0;i<images.length;i++){
		var e = document.getElementById(images[i]);
		e.parentNode.removeChild(e);
	}
	return false;
}

/*
clear_cards.js
Don Havey: www.donhavey.com
for MESH: www.mesh-arc.com
*/
function clear_cards(){
	tooltip();
	var divs = document.getElementsByTagName("div");
	var cards = [];
	for(var i=0;i<divs.length;i++){
		if(/^card$/.test(divs[i].className)){
			cards.push(divs[i].getAttribute("id")); //store as ids and reselect to avoid collapsing the array
		}
	}
	for(var i=0;i<cards.length;i++){
		var e = document.getElementById(cards[i]);
		e.parentNode.removeChild(e);
	}
	return false;
}

/*
add_image.js
Don Havey: www.donhavey.com
for MESH: www.mesh-arc.com
*/
var current_iid = -1;
function add_image(data,n){
	position_image();
	if(document.getElementById("loading-image").className=="loading-image-on"){
		document.getElementById("loading-image").className = "loading-image-off";
	}
	var structure = ["iid","priority","filepath","width","height","bytes",["thumbnail",["filepath","width","height","bytes"]],["credit",["full_name"]],"eid"];
	var image = document.getElementById("image_image");
	var images = data.responseXML.documentElement.getElementsByTagName("image");
	var vars = [];
	for(var i=0;i<images.length;i++){
		vars[i] = xmls[n].parse(images[i],structure);
	}
	for(var i=0;i<vars.length;i++){
		var iid = vars[i].iid;
		var eid = vars[i].eid;
		//image img
		var image_a = dom_element("a",image,"ia","ia");
		image_a.setAttribute("href","javascript:void(0)");
		image_a.onclick = add_function(eid,"if(slideshows['c"+eid+"ctiss']){ slideshows['c"+eid+"ctiss'].next(); update_image(slideshows['c"+eid+"ctiss'].images[slideshows['c"+eid+"ctiss'].i].iid); };");
		var img = dom_element("img",image_a,"ii","ii");
		img.style.margin = "5px 0 0 0";
		img.src = vars[i].filepath;
		var w = vars[i].width;
		var h = vars[i].height;
		var ratio = w/h;
		var mw = parseInt(document.getElementById("image").style.width);
		var mh = parseInt(document.getElementById("image").style.height);
		if(w>mw){
			img.style.width = mw+"px";
			img.style.height = Math.round(mw/ratio)+"px";
		}
		if(Math.round(mw/ratio)>mh){
			img.style.height = mh+"px";
			img.style.width = Math.round(mh*ratio)+"px";
		}
	}
	current_iid = iid;
}

/*
add_card.js
Don Havey: www.donhavey.com
for MESH: www.mesh-arc.com
*/
function add_card(data,n){
	if(document.getElementById("loading-cards").className=="loading-cards-on"){
		document.getElementById("loading-cards").className = "loading-cards-off";
	}
	var structure = ["eid","title","content","link","priority","time_created","time_updated",["project",["id","title","priority","date_begun","date_completed","budget","square_footage","location",["credit",["full_name"]]]],["image",["iid","priority","filepath","width","height","bytes",["thumbnail",["filepath","width","height","bytes"]],["credit",["full_name"]]]],["author",["full_name"]],["tag",["tid","name"]]];
	var cards = document.getElementById("cards_holder");
	var entries = data.responseXML.documentElement.getElementsByTagName("entry");
	var vars = [];
	for(var i=0;i<entries.length;i++){
		vars[i] = xmls[n].parse(entries[i],structure);
	}
	for(var i=0;i<vars.length;i++){
		if(!vars[i].eid||!vars[i].content){ continue; }
		var eid = vars[i].eid;
		var card = dom_element("div",cards,"card","c"+eid);
		//content
		var content = dom_element("div",card,"content","c"+eid+"c");
		//content holder
		var holder = dom_element("div",content,"holder");
		//content holder text image
		var images = dom_element("div",holder,"images","c"+eid+"cti");
		var image_title = dom_element("div",images,"title","c"+eid+"ctit"); 
		var image_title_txt = dom_text(vars[i].time_updated,image_title);
		var image = dom_element("div",images,"image","c"+eid+"ctii");
		if(vars[i].image){
			//content holder text image slideshow
			var data = [];
			for(var j=0;j<vars[i].image.length;j++){
				data[j] = {width:vars[i].image[j].thumbnail[0].width,height:vars[i].image[j].thumbnail[0].height,bytes:vars[i].image[j].thumbnail[0].bytes,filepath:vars[i].image[j].thumbnail[0].filepath,iid:vars[i].image[j].iid};
			}
			//slideshows["c"+eid+"ctiss"] = new slideshow("c"+eid+"ctiss",104,78,5000,data,null,image,false,null,{onclick:"if(current_iid==slideshows['c"+eid+"ctiss'].images[slideshows['c"+eid+"ctiss'].i].iid){ slideshows['c"+eid+"ctiss'].next();} update_image(slideshows['c"+eid+"ctiss'].images[slideshows['c"+eid+"ctiss'].i].iid);"});
			slideshows["c"+eid+"ctiss"] = new slideshow("c"+eid+"ctiss",65,49,5000,data,null,image,false,null,{onclick:"update_image(slideshows['c"+eid+"ctiss'].images[slideshows['c"+eid+"ctiss'].i].iid); slideshows['c"+eid+"ctiss'].next();"});
			slideshows["c"+eid+"ctiss"].init();
		}
		//content holder text
		var text = dom_element("div",holder,"text","c"+eid+"ct");
		//content holder text txt
		var text_title = dom_element("div",text,"title","c"+eid+"ctt");
		if(vars[i].project){
			var text_title_a = dom_element("a",text_title);
			text_title_a.setAttribute("href","javascript:void(0)");
			text_title_a.onclick = add_function(eid,"request_cards(['http://www.mesh-arc.com/_front/xml/entry.php?id="+vars[i].project[0].id+"'],true,true);");
			var text_title_txt = dom_text(vars[i].title,text_title_a);
		}else{
			var text_title_txt = dom_text(vars[i].title,text_title);
		}
		var text_txt = dom_text(vars[i].content,text);
		//link
		if(vars[i].link){
			var br1 = dom_element("br",text);
			var text_link = dom_element("a",text,"link","c"+eid+"ctl");
			text_link.setAttribute("href",vars[i].link);
			text_link.style.textDecoration = "underline";
			var text_link_txt = dom_text(vars[i].link,text_link);
		}
		//footer
		var footer = dom_element("div",card,"footer","c"+eid+"f");
		//footer cover
		//var cover = dom_element("div",footer,"cover","c"+eid+"fc");
		//footer timestamp
		var timestamp = dom_element("div",footer,"text");
		//var timestamp_txt = dom_text(vars[i].time_updated,timestamp);
		//footer readmore and tags
		if(Math.abs(text.offsetHeight)>cheight){
			var readmore = dom_element("div",footer,"readmore","c"+eid+"fr");
			var readmore_a = dom_element("a",readmore);
			var readmore_a_txt = dom_text("read more",readmore_a);
			readmore_a.setAttribute("href","javascript:void(0)");
			readmore_a.onmouseover = add_function(eid,"if(Math.abs(document.getElementById('c"+eid+"c').offsetHeight-cheight)<2){ tooltip('Click to expand this entry',true) };");
			readmore_a.onmouseout = add_function(eid,"tooltip();");
			readmore_a.onclick = add_function(eid,"if(this.blur){ this.blur() }; state_change('c"+eid+"c','c"+eid+"ct','c"+eid+"cti','c"+eid+"ctt'); if(document.getElementById('c"+eid+"fr').firstChild.firstChild.nodeValue=='close'){ document.getElementById('c"+eid+"fr').firstChild.firstChild.nodeValue = 'read more' }else{ document.getElementById('c"+eid+"fr').firstChild.firstChild.nodeValue = 'close' };");				
			/*
			if(vars.length==1){
				state_change("c"+eid+"c","c"+eid+"ct","c"+eid+"cti","c"+eid+"ctt");
				document.getElementById("c"+eid+"fr").firstChild.firstChild.nodeValue = "close";
			}
			*/
		}
		if(vars[i].tag){
			var tags = dom_element("div",footer,"tag");
			var tags_txt = dom_text("tags: ",tags);
			for(var j=0;j<vars[i].tag.length;j++){
				var tags_a = dom_element("a",tags);
				var tags_a_txt = dom_text(vars[i].tag[j].name,tags_a);
				tags_a.setAttribute("href","javascript:void(0)");
				tags_a.onclick = add_function(eid,"submit_select('"+vars[i].tag[j].tid+"|-1|"+vars[i].tag[j].name+"');");
			}
		}	
	}
	//if(!(browser_detect.browser=="Explorer"&&parseInt(browser_detect.version)<7)){
	refresh(true,false);
	//}
}
