/**************************************************************************************************
* Copyright(c) 2009 Fabian Gerold, http://www.alumniserver.net
*
* This script is part of the AlumniServer project. It is free software; you can redistribute it
* and/or modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 3 of the License, or (at your option) any later version.
*
* The GNU General Public License can be found at http://www.gnu.org/copyleft/gpl.html.
* A copy is found in the textfile GPL.txt
*
* This script is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
* even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
* General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************************************************/

function createRequest(){
	var httpRequest
	if(window.XMLHttpRequest) httpRequest=new XMLHttpRequest()
 	else if(window.ActiveXObject) httpRequest=new ActiveXObject("Microsoft.XMLHTTP")
	if(httpRequest==null){ alert("Your browser does not support XMLHTTP."); return null; }
 	return httpRequest
}
function IsNumeric(sText){
	var ValidChars="0123456789.";
	var IsNumber=true;
	var Char;

	for(i=0; i<sText.length && IsNumber==true; ++i){ 
		Char=sText.charAt(i); 
      	if(ValidChars.indexOf(Char)==-1){
			IsNumber=false;
		}
	}
	return IsNumber;
}
   
function loadIntoDiv(div,server_file,data){
	var target_div=document.getElementById(div);
	target_div.innerHTML='loading...';
	
	var load_r=createRequest();
	load_r.onreadystatechange=function(){
		if(load_r.readyState==4){
			target_div.innerHTML=load_r.responseText;
		}
	};
	var data='';
	load_r.open('POST',server_file,true);
	load_r.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	load_r.send(data);
}
function setMaxLength(id){
	var x=document.getElementById(id)
	var counter=document.getElementById('max')
	if(x.getAttribute('maxlength')){
		counter.appendChild(document.createTextNode('0/'+x.getAttribute('maxlength')))
		x.onkeyup=x.onchange=checkMaxLength
		x.onkeyup()
	}
}

function checkMaxLength(){
	var maxLength=this.getAttribute('maxlength')
	var counter=document.getElementById('max')
	var currentLength=this.value.length
	while(counter.hasChildNodes())counter.removeChild(counter.lastChild)
	if(currentLength>maxLength){
		counter.appendChild(document.createTextNode('maximum length of '+maxLength+' characters reached.'))
		this.value=this.value.substr(0,2000);
		this.scrollTop=this.scrollHeight;
	}
}
function checkUncheck(checkbox,send) {
	if(checkbox.checked==true){
		send.disabled=false;
	}
	else {
		send.disabled=true;
	}
}

function setPicture(path,ownerUid,ownerName,c,pid){
	var img_dest = document.getElementById('fullsize');
	img_dest.setAttribute("src",path);
	document.getElementById('owner').innerHTML=strFrom+': <a href="Profile.php?id='+ownerUid+'">'+ownerName+'</a><br/>';
	document.getElementById('comment').innerHTML=c;
	document.getElementById('todo').innerHTML='<a href="Pictures.php?todo=deletepicture&uid='+ownerUid+'&pid='+pid+'">Admin Delete</a>';
}

function refreshLogin(){
	var rr=createRequest();
	rr.onreadystatechange=function(){
		if(rr.readyState==4){
			if(rr.responseText=='true'){
				window.setTimeout('refreshLogin()',60000)
			}else{
				//alert('could not refresh login');
			}
		}
	}

	rr.open('POST','src/a/refreshLogin.php',true);
	rr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	rr.send('')
}
window.setTimeout('refreshLogin()',60000)

// messages
var messages=new Array()
var selected_msgs=new Array()
function selectMsg(mid,cell){
	unselect=false;for(i=0;i<selected_msgs.length;++i)if(mid==selected_msgs[i]){unselect=true;selected_msgs.splice(i,1);break}
	var d=document.getElementById('msgDiv'+mid);
	if(unselect){
		d.style.border='#fff 1px solid';
	}else{
		d.style.border='#b55454 1px solid';
		selected_msgs.push(mid);
	}
	if(selected_msgs.length>0){document.getElementById('del1').style.visibility='visible';}
	else{document.getElementById('del1').style.visibility='hidden';}
}
function unselectAllMessages(){
	for(i=0;i<selected_msgs.length;++i){
		var d=document.getElementById('msgDiv'+selected_msgs[i]);d.style.border='#fff 1px solid';
	}
	selected_msgs.length=0;document.getElementById('del1').style.visibility='hidden'
}
function delMsgs(box){
	if(!confirm(strReallyDeleteSelectedMessages+'? ('+selected_msgs.length+')')) return;
	if(selected_msgs.length==0) return;
	var rDelMsg=createRequest();
	rDelMsg.onreadystatechange=function(){
		if(rDelMsg.readyState==4){
			if(rDelMsg.status==200){
				var numDeleted=rDelMsg.responseText;
				if(numDeleted>0){
					for(i=0; i<selected_msgs.length; ++i){
						var mid=selected_msgs[i];
						var d=document.getElementById('msgDiv'+mid);
						while(d.hasChildNodes())d.removeChild(d.lastChild)
						var p=document.createElement("div");
						p.appendChild(document.createTextNode(strMessageDeleted));d.appendChild(p);
						d.style.border='0px';
					}
					selected_msgs.length=0;
					document.getElementById('del1').style.visibility='hidden';
				}
				else alert('Could not delete message.'+rDelMsg.responseText);
			}else alert('There was a problem with the request.');
		}
	}
	rDelMsg.open('POST','src/a/delMsg.php', true);
	rDelMsg.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	var ids=selected_msgs[0];
	for(i=1;i<selected_msgs.length;++i)ids+='#'+selected_msgs[i];
	if(box=='inbox'){rDelMsg.send('mids='+ids);}
	else if(box=='sent'){rDelMsg.send('midss='+ids);}
}

var hiddenLink;
function hideLink(mid){
	hiddenLink=document.getElementById('link'+mid)
	hiddenLink.style.visibility='hidden'
}
function cancelAnswerMsg(mid){
	document.getElementById('answer'+mid).innerHTML='';
}
function answerMsg(uid_to,mid){
	var answer_div_id='answer'+mid;
	var answer_div=document.getElementById(answer_div_id)
	hide=false;for(i=0;i<messages.length;++i)if(mid==messages[i]){hide=true;messages.splice(i,1);break}
	if(hide){
		answer_div.innerHTML='';
		return;
	}
	messages.push(mid)
	answer_div.innerHTML='<form name="msgForm">' +
			'<textarea id="msg" class="writeMsg"></textarea><br/>' +
			'<input type="button" value="'+strCancel+'" onclick="cancelAnswerMsg(\''+mid+'\')" class="redbtn" style="margin-right:3px;">' +
			'<input type="button" value="'+strSend+'" onclick="sendMsg(\''+uid_to+'\',\''+answer_div_id+'\')" class="btn">';
	document.getElementById('msg').focus();
}

var link_msg_to_content=new Array();
function cancelWriteMsgTo(uid_to){
	var d=document.getElementById('link_msg_to_'+uid_to);
	d.innerHTML=link_msg_to_content[uid_to];
	document.getElementById('msg_to'+uid_to).innerHTML='';
}

function writeMsgTo(uid_to){
	var dl=document.getElementById('link_msg_to_'+uid_to);
	link_msg_to_content[uid_to]=dl.innerHTML;
	dl.innerHTML='';
	var answer_div_id='msg_to'+uid_to;
	var d=document.getElementById(answer_div_id);
	
	d.innerHTML=//'<form>' +
			'<textarea id="msg" name="msg" class="writeMsg"></textarea><br/>' +
			'<input type="button" value="'+strCancel+'" class="redbtn" style="margin-right:3px;" onclick="cancelWriteMsgTo(\''+uid_to+'\')">' +
			'<input type="button" value="'+strSend+'" class="btn" onclick="sendMsg(\''+uid_to+'\',\''+answer_div_id+'\')">';
	document.getElementById('msg').focus();
}

function sendMsg(uid_to,div_id){
	var msg=document.getElementById("msg").value;
	var d=document.getElementById(div_id)
	d.innerHTML='<div>Sending message...</div>';
	var mr=createRequest();
	mr.onreadystatechange=function(){
		if(mr.readyState==4){
			if(mr.responseText=='true'){
				d.innerHTML='<p class="green">'+strMessageHasBeenSentSuccessfully+'</p>';
			}else{
				d.innerHTML='<p class="red">Sending the message failed. Please try again.</p>'+strMessage+':<br/>'+msg;
			}
		}
	}
	var msge=encodeURIComponent(msg)
	var data='to='+uid_to+'&msg='+msge;
	mr.open('POST','src/a/sendMsg.php',true);
	mr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	mr.send(data)
}
function loadMsg(m_id,box){
	var dlm=document.getElementById('msg'+m_id);
	dlm.innerHTML="Loading...";
	var rm=createRequest();
	rm.onreadystatechange=function(){
		if(rm.readyState==4){
			dlm.innerHTML=rm.responseText.replace(/&lt;br \/&gt;/g,'<br />');
		}
	};
	var data;
	if(box=='inbox')data='mid='+m_id;
	else if(box=='sent')data='mids='+m_id;
	rm.open('POST','src/a/getMsg.php',true);
	rm.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	rm.send(data)
}

// fellow students
function fs_page(page_num){
	fs_page_num=parseInt(page_num);
	fs_load_list();
}

function fs_load_list(){
	var dfs=document.getElementById('fs');
	var dfsloading=document.getElementById('fsloading');
	dfsloading.innerHTML='Loading...';
	var rfs=createRequest();
	rfs.onreadystatechange=function(){
		if(rfs.readyState==4){
			dfs.innerHTML=rfs.responseText.replace(/&lt;br \/&gt;/g,'<br />');
			dfsloading.innerHTML='';
		}
	};
	
	var data=fs_show_details_data+'orderby='+fs_order_by_data+'&page='+fs_page_num;
	rfs.open('POST','src/a/fs_search.php',true);
	rfs.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	rfs.send(data)
}
function fs_load_profile(uid){
	var dfs=document.getElementById(uid);
	var rfs2=createRequest();
	rfs2.onreadystatechange=function(){
		if(rfs2.readyState==4){
			dfs.innerHTML=rfs2.responseText.replace(/&lt;br \/&gt;/g,'<br />');
		}
	};
	var data='uid='+uid;
	rfs2.open('POST','src/a/fs_load_profile.php',true);
	rfs2.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	rfs2.send(data);
}

function fs_show_details(){
	var data='';
	if(document.form_fs_show_details.show_city.checked)			data=data+'show_city=1&';		else data=data+'show_city=0&';
	if(document.form_fs_show_details.show_employer.checked)		data=data+'show_employer=1&';	else data=data+'show_employer=0&';
	if(document.form_fs_show_details.show_placeofwork.checked)	data=data+'show_placeofwork=1&';else data=data+'show_placeofwork=0&';
	if(document.form_fs_show_details.show_graduation.checked)	data=data+'show_graduation=1&';	else data=data+'show_graduation=0&';
	fs_show_details_data=data;
	fs_load_list();
}
function fs_order_by(select_obj){
	var orderby=select_obj.options[select_obj.selectedIndex].value;
	fs_order_by_data=orderby;
	fs_load_list();
}
function fs_clear_search(){
	document.form_fs_search.search.value='';
	document.form_fs_search.submit();
}

