// getXMLHttpRequest object
function getXMLHttpRequestObject(){
	var xmlobj;
    // check for existing requests
    if(xmlobj!=null&&xmlobj.readyState!=0&&xmlobj.readyState!=4){
        xmlobj.abort();
    }
    try{
        // instantiate object for Mozilla, Nestcape, etc.
        xmlobj=new XMLHttpRequest();
    }
    catch(e){
        try{
            // instantiate object for Internet Explorer
            xmlobj=new ActiveXObject('Microsoft.XMLHTTP');
        }
        catch(e){
            // Ajax is not supported by the browser
            xmlobj=null;
            return false;
        }
    }
	return xmlobj;
}

/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
function openThisPr(pid,cid,uc,layout) {
	if(cid != '0') cardRoll(cid,'out');
	else cardRoll(pid,'out');
	if(layout == 'comment') {
		var loader = document.getElementById('loadc_'+cid);
		var hover = document.getElementById('hover_c_'+cid);
	} else {
		var loader = document.getElementById('load'+pid);
		var hover = document.getElementById('hover_'+pid);
	}
	var cur = document.getElementById('current_open');
	var curc = document.getElementById('current_cid');
	var curuc = document.getElementById('current_uc');
	var curlay = document.getElementById('current_layout');
	
	var prev = document.getElementById('prev_open');
	var prevc = document.getElementById('prev_cid');
	var prevuc = document.getElementById('prev_uc');
	var prevlay = document.getElementById('prev_layout');
	
	
	if(prev) prev.value = cur.value;
	if(prev) prevc.value = curc.value;
	if(prev) prevuc.value = curuc.value;
	if(prev) prevlay.value = curlay.value;
	
	if(layout == 'comment') curc.value = cid;
	else if(curc) curc.value = 'none';
	cur.value = pid;
	curuc.value =uc;
	curlay.value = layout;
	
	if(hover) hover.style.display = "none";
	loader.style.display = "block";
	
	if(prev.value != 'none' && (prev.value != cur.value || prevc.value != curc.value)) { 
		closeThisPr(prev.value,prevc.value,prevuc.value,true,prevlay.value); 
		
	} else openThisPr_ajax(pid,cid,uc,layout);
	
	
	
	return false;

}

function openThisPr_ajax(pid,cid,uc,layout) {
	
	//var loadSpin = document.getElementById('loadHold_'+pid);
	//if(loadSpin)  loadSpin.src=eval("loadspin.src"); 
	
	var prdl = document.getElementById('prdl').value;
	var ismoderator = document.getElementById('ismod').value;
	
	prOpenXMLHttpObj=getXMLHttpRequestObject();
	
	// open socket connection
	if(layout == 'wildcard') prOpenXMLHttpObj.open("POST","projectfeed/wildcard-detail.php",true);
	else if(layout != 'comment') prOpenXMLHttpObj.open("POST","projectfeed/entry-detail.php",true);
	else if(layout == 'comment') prOpenXMLHttpObj.open("POST","projectfeed/comment-detail.php",true);
	
	// set form http header
	prOpenXMLHttpObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	prOpenXMLHttpObj.send("pid="+pid+"&cid="+cid+"&uc="+uc+"&layout="+layout+"&prdl="+prdl+"&ismod="+ismoderator);
	prOpenXMLHttpObj.onreadystatechange=openThisPrStatusChecker;
	
	//if(prev.value != 'none') closeThisPr(prev.value,prevuc.value,true);
	
	return false;
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function openThisPrStatusChecker(){
    // check if request is completed
    if(prOpenXMLHttpObj.readyState==4){
        if(prOpenXMLHttpObj.status==200) openThisPrInline(prOpenXMLHttpObj);
    }
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function openThisPrInline(reqObj) {
	var response = reqObj.responseText;
	var starting1 = response.indexOf("|#=#|");
	var starting2 = response.indexOf("|##=##|");

	var pid = reqObj.responseText.substring(2, starting1);
	var layout = reqObj.responseText.substring((starting1+5), starting2);
	var content = reqObj.responseText.substring((starting2+7), reqObj.responseText.length);	
	
	var container=document.getElementById('pr_contain_item_'+pid);
	if(container) container.style.backgroundColor = "#ffffff";
	if(document.getElementById('botw'+pid)) document.getElementById('botw'+pid).className = "rbottom";
	var module = document.getElementById('item_'+pid);
	
	var wildclose = document.getElementById('wild_close_'+pid);
	var wild_headinfo = document.getElementById('wild_headinfo_'+pid);
	
	//module.className = "pr_module_full";
	container.innerHTML=content;
	
	
	var prepid = document.getElementById('prev_open').value
	var precid = document.getElementById('prev_cid').value
	var curpid = document.getElementById('current_open').value
	var curcid = document.getElementById('current_cid').value
	var cur = document.getElementById('current_open').value;
	var curc = document.getElementById('current_cid').value;
	var prev = document.getElementById('prev_open').value;
	var curlay = document.getElementById('current_layout').value;
	var prevlay = document.getElementById('prev_layout').value;
	
	if(prepid != 'none' && (prev != cur || precid != curc)) {
		if(precid != 'none' && precid != '0') var closecontainer=document.getElementById('pr_contain_item_c_'+precid);
		else var closecontainer=document.getElementById('pr_contain_item_'+prepid);
		
		closecontainer.innerHTML = document.getElementById('moduleholder').value;
		
		if(precid != 'none' && precid != '0') {
			shiftClose('c_'+precid);
			var hover = document.getElementById('hover_c_'+precid);
			
		} else {
			shiftClose(prepid);
			var hover = document.getElementById('hover_'+prepid);
		}
		
	}
	
	//console.log('shifting'+pid);
	
	if(prevlay == 'comment') var hover = document.getElementById('hover_c_'+precid);
	else var hover = document.getElementById('hover_'+prepid);

	if(hover && (precid != curcid || prepid != curpid)) hover.style.display = "block";	
	shiftPosition(pid,'close',layout);
		
	var loader = document.getElementById('load'+pid);
	if(loader) loader.style.display = "none";
	
	if(wildclose) wildclose.style.display = "block";
	if(wild_headinfo) wild_headinfo.style.display = "block";
	
	if(layout == "wildcard" && navigator.userAgent.indexOf('MSIE') > 0) shiftPosition(pid,'false','');
	
	
}
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
function closeThisPr(pid,cid,uc,reopen,layout) {
		 
	prCloseXMLHttpObj=getXMLHttpRequestObject();
	
	// open socket connection
	prCloseXMLHttpObj.open("POST","projectfeed/close-detail.php",true);
	
	// set form http header
	prCloseXMLHttpObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	prCloseXMLHttpObj.send("pid="+pid+"&cid="+cid+"&uc="+uc+"&reopen="+reopen+"&layout="+layout);
	prCloseXMLHttpObj.onreadystatechange=closeThisPrStatusChecker;
	
	return false;
	
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function closeThisPrStatusChecker(){
    // check if request is completed
    if(prCloseXMLHttpObj.readyState==4){
        if(prCloseXMLHttpObj.status==200) closeThisPrInline(prCloseXMLHttpObj);
    }
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function closeThisPrInline(reqObj) {
	var response = reqObj.responseText;
	var starting1 = response.indexOf("|#=#|");
	var starting2 = response.indexOf("|##=##|");
	var starting3 = response.indexOf("|###=###|");
	var starting4 = response.indexOf("|####=####|");
	
	var pid = reqObj.responseText.substring(1, starting1);
	var cid = reqObj.responseText.substring((starting1+5), starting2);
	var reopen = reqObj.responseText.substring((starting2+7), starting3);
	var layout = reqObj.responseText.substring((starting3+9), starting4);
	var content = reqObj.responseText.substring((starting4+11), reqObj.responseText.length);
	
	if(cid != '0' && cid != 'none') {
		var container=document.getElementById('pr_contain_item_c_'+cid);
		var module = document.getElementById('item_c_'+cid);
		var hover = document.getElementById('hover_c_'+cid);
	
	} else {
		var container=document.getElementById('pr_contain_item_'+pid);
		var module = document.getElementById('item_'+pid);
		var hover = document.getElementById('hover_'+pid);
	}	
	
	
	var cur = document.getElementById('current_open');
	var curc = document.getElementById('current_cid');
	var curuc = document.getElementById('current_uc');
	var curlay = document.getElementById('current_layout');
	
	
	
	if(reopen == 'true') {
		openThisPr_ajax(cur.value,curc.value,curuc.value,curlay.value);
		document.getElementById('moduleholder').value = content;
		
	} else {
		container.innerHTML=content;
		if(hover) hover.style.display = "block";
		if(cid != '0' && cid != 'none') shiftPosition('c_'+cid,'open',layout);
		else shiftPosition(pid,'open',layout)
		
		
	}
	
	if(container.className == "mod_wild_container" || container.className == "mod_wild_container_ie") {
		container.style.backgroundColor = "#f1f1f1";
		document.getElementById('botw'+pid).className = "rbottom wild";
		var wildclose = document.getElementById('wild_close_'+pid);
		var wild_headinfo = document.getElementById('wild_headinfo_'+pid);
		wildclose.style.display = "none";
		wild_headinfo.style.display = "none";
		if(navigator.userAgent.indexOf('MSIE') > 0) shiftPosition(pid,'false','');
	}
	
	
	
}

/////////////////////////////////////////////////////////////////////////////////////////////////
function remThisPr(prgid,prid) {
	var agree=confirm("Remove item from project?");
	if (agree) {
		prRemXMLHttpObj=getXMLHttpRequestObject();
		prRemXMLHttpObj.open("POST","projectfeed/delete-card.php",true);
		prRemXMLHttpObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		prRemXMLHttpObj.send("prgid="+prgid+"&prid="+prid);
			
		var card = document.getElementById('item_'+prgid);
		Effect.Fade(card);
	}
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function sendToTop(prgid,prid,prdl) {
	var agree=confirm("Move item to top of gallery?");
	if (agree) {
		totopXMLHttpObj=getXMLHttpRequestObject();
		totopXMLHttpObj.open("POST","projects/pr-sortprocess.php",true);
		totopXMLHttpObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		totopXMLHttpObj.send("prgid="+prgid+"&prid="+prid+"&prdl="+prdl+"&type=totop");
		
		setTimeout("document.location.href='/projects/"+prdl+"/sort';",1000);
	}
}
/////////////////////////////////////////////////////////////////////////////////////////////////
	function setBGcolor() {
		var prc = document.getElementById('prc').value;
		var color = document.getElementById('CLCPbasicHex').value;
		var savebtn = document.getElementById('picksave');
		savebtn.innerHTML = "<img src=\"http://spacecollective.org/_gfx/loadingAnim.gif\" style=\"border: 0 none;\">";
		bgcolorXMLHttpObj=getXMLHttpRequestObject();
		bgcolorXMLHttpObj.open("POST","../projectfeed/setcolor.php",true);
		bgcolorXMLHttpObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		bgcolorXMLHttpObj.send("color="+color+"&prc="+prc);
		bgcolorXMLHttpObj.onreadystatechange=bgcolorStatusChecker;
		
		return false;
		
	}
	/////////////////////////////////////////////////////////////////////////////////////////////////
	function bgcolorStatusChecker(){
		// check if request is completed
		if(bgcolorXMLHttpObj.readyState==4){
			if(bgcolorXMLHttpObj.status==200) {
				var savebtn = document.getElementById('picksave');
				savebtn.innerHTML = "<img src=\"http://spacecollective.org/_gfx/colorpickr-save.gif\" style=\"border: 0 none;\" onclick=\"setBGcolor()\">";
				document.getElementById('basecolor').value = document.getElementById('hexValue_0').value;
				parent.document.location.href=parent.document.location;
			}
		}
	}
/////////////////////////////////////////////////////////////////////////////////////////////////
function showcardedit(type,pid) {
	var container =  document.getElementById("editcontainer");
	var content = document.getElementById("editcontent").value;
	
	style = "padding:5px; width:540px; height:150px; color:#1E1E1E; border:1px solid #BDBDBD;";
	if(type == 'editorial') style += "font-family:arial; line-height:165%; font-size:12px;";
	else if(type == 'quote') style += "font-family:Georgia; font-size:22px; font-style:italic;";
	
	output = "<textarea style='"+style+"' id='cardmod'>"+urldecode(content.replace(/<br>/g,'\n'))+"</textarea><br><br>";
	output += "<table height=\"21\"><tr><td>"
	output += "<a href='javascript:void(0)' onClick='processCardEdit("+pid+")'><img src='../_gfx/save_btn.gif' width='62' height='21'></a>";
	output += "</td><td>&nbsp;&nbsp;<a id=\"redlink\" href=\"javascript:void(0)\" onClick=\"editComplete('cancel')\">cancel</a></td></tr></table>";
	container.innerHTML = output;
	
	if(document.getElementById("quote_content")) layout = 'quote';
	else layout = 'editorial';
	shiftPosition(pid,'close',layout);
}
/////////////////////////////////////////////////////////////////////////////////////////////////
		function processCardEdit(pid) {	
			var content = document.getElementById('cardmod').value;
			cardEditXMLHttpObj=getXMLHttpRequestObject();
			cardEditXMLHttpObj.open("POST","projects/pr-edit-card.php",true);
			cardEditXMLHttpObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			cardEditXMLHttpObj.send("pid="+pid+"&content="+content);
			cardEditXMLHttpObj.onreadystatechange=cardEditStatusChecker;
			
			return false;
			
		}
		/////////////////////////////////////////////////////////////////////////////////////////////////
		function cardEditStatusChecker(){
			// check if request is completed
			if(cardEditXMLHttpObj.readyState==4){
				if(cardEditXMLHttpObj.status==200) editComplete(cardEditXMLHttpObj);
			}
		}
		/////////////////////////////////////////////////////////////////////////////////////////////////
		function editComplete(reqObj) {
			if(reqObj == 'cancel') var response = document.getElementById("editcontent").value;
			else var response = document.getElementById("cardmod").value; //reqObj.responseText;
			var container =  document.getElementById("editcontainer");
			var pid = document.getElementById("pid").value;
			
			output = response+"<br /><br /><a href=\"javascript:void(0)\" onClick=\"showcardedit('editorial','"+pid+"');\">edit</a>";
			document.getElementById("editcontent").value = response;
			container.innerHTML = response.replace(/\n/g,'<br>');
			
			if(document.getElementById('quote_content')) layout = 'quote';
			else layout = 'editorial';
			shiftPosition(pid,'close',layout);
			
		}

/////////////////////////////////////////////////////////////////////////////////////////////////
function urldecode(str) {
  var lsRegExp = /\+/g;
  return unescape(String(str).replace(lsRegExp, " ")); 
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function cardRoll(pid,dir) {
	var bg = document.getElementById('pr_contain_item_'+pid);
	var cbg = document.getElementById('pr_contain_item_c_'+pid);
	var topc = document.getElementById('topc'+pid);
	var botc = document.getElementById('botc'+pid);	
	var botw = document.getElementById('botw'+pid);	
	var title = document.getElementById('title_'+pid);
	

	if(dir == "over") {
		if(title) title.className = "mod_title_over";
		if(bg) bg.style.backgroundColor = "#dadada"; //"#ffc1c1"
		if(cbg) cbg.style.backgroundColor = "#dadada"; //"#ffc1c1"
		if(topc) topc.className = "rtop_over"; 
		if(botc) botc.className = "rbottom_over";
		if(botw) botw.className = "rbottom_over";
		
	} else if(dir == "out") {
		if(title) title.className = "mod_title";
		if(bg && bg.className == "mod_wild_container") bg.style.backgroundColor = "#f1f1f1";
		else if(bg && bg.className == "mod_wild_container_ie") bg.style.backgroundColor = "#f1f1f1";
		else if(bg) bg.style.backgroundColor = "#ffffff";
		if(cbg) cbg.style.backgroundColor = "#ffffff";
		if(topc) topc.className = "rtop";
		if(botc) botc.className = "rbottom";
		if(botw) botw.className = "rbottom wild";
				
	}
}


/////////////////////////////////////////////////////////////////////////////////////////////////
function feedCommentAnchor(anchorLink) {
	url = window.location.href.split("#");
	document.location.href= url[0]+"#"+anchorLink;
	window.scrollBy(0,-177);
}

function feedAnchor(anchorLink) {
	url = anchorLink.split("anchor");
	//console.log(url[0]+' / '+url[1]);
	//scrollto("item_"+url[1]);
	setTimeout('scrollto("item_"+url[1])',200);
}

var timer;
var lastT;
function scrollto(obj) {
	var t=0;	
	var pad = 70;
	var strTop = document.getElementById(obj).style.top;
	pxPos = strTop.indexOf("px");
	targetYPos = parseInt(strTop.substring(0, pxPos)) - pad;
	var y = document[getDocElName()].scrollTop;
	//console.log(obj);
	doscroll(targetYPos,y,t);
}
function doscroll(targetYPos,y,t) {
	var speed = 6;
	var diff = targetYPos - y;
	var steps = diff/(speed*speed);
	t += (t+steps)/diff;
	newY = (t==1) ? y+diff : y + (diff * (-Math.pow(2, -10 * t/1) + 1));
	if(t) window.scrollTo(0, newY);
	
	if(t >= 1 || lastT == t || !t) clearTimeout(timer);
	else timer=setTimeout("doscroll("+targetYPos+","+y+","+t+")",1);
	
	lastT = t;
	//console.log(t+' / '+lastT);
	
	return false;
}


function getDocElName(){
	if(document.compatMode && document.compatMode == "CSS1Compat") return "documentElement";
	else return "body";
}

function handle(delta) {
	clearTimeout(timer);
}

function wheel(event){
	var delta = 0;
	if (!event) event = window.event;
	if (event.wheelDelta) {
		delta = event.wheelDelta/120; 
		if (window.opera) delta = -delta;
	} else if (event.detail) {
		delta = -event.detail/3;
	}
	if (delta)	handle(delta);
}

/* Initialization code. */
if (window.addEventListener)
	window.addEventListener('DOMMouseScroll', wheel, false);
window.onmousewheel = document.onmousewheel = wheel;

	// arrows //
	pg_gallery_prev=new Image()
 	pg_gallery_prev.src="../_gfx/btn_gallery_page_prev.gif"
	pg_gallery_prev_over=new Image()
 	pg_gallery_prev_over.src="../_gfx/btn_gallery_page_prev_o.gif"
	
	pg_gallery_next=new Image()
 	pg_gallery_next.src="../_gfx/btn_gallery_page_next.gif"
	pg_gallery_next_over=new Image()
 	pg_gallery_next_over.src="../_gfx/btn_gallery_page_next_o.gif"
	
	
	// close button //
	feedclose=new Image()
 	feedclose.src="../_gfx/feedclose.gif"
	feedclose_over=new Image()
 	feedclose_over.src="../_gfx/feedclose_o.gif"
	
	feedclose48=new Image()
 	feedclose48.src="../_gfx/feedclose48.gif"
	feedclose48_over=new Image()
 	feedclose48_over.src="../_gfx/feedclose48_o.gif"
	
	// close button //
	modbl=new Image()
 	modbl.src="../_gfx/module_bl_e2.gif"
	modbr=new Image()
 	modbr.src="../_gfx/module_br_e2.gif"
	modtl=new Image()
 	modtl.src="../_gfx/module_tl_e2.gif"
	modtr=new Image()
 	modtr.src="../_gfx/module_tr_e2.gif"
	
	

