var focused = 'message';

function __set_style(property,value)
{
	if(document.getElementById)
	{		
		document.getElementById(focused).style[property] = value;	
	}
}

function __set_focus(object)
{
	focused = object.id;
}

function __store_caret(object)
{
	if(object.createTextRange) 
	{
		object.caretPos = document.selection.createRange().duplicate(); 
	}	
}

function __add_text(text)
{
	var formObject = document.forms['theForm'];	
		
	if(formObject[focused].createTextRange && formObject[focused].caretPos)
	{
		var caretPos = formObject[focused].caretPos;
		caretPos.text = text;
	}
	else
	{
		formObject[focused].value += text;
	}
	
	formObject[focused].focus(); 	
}

function __insert_link()
{
	var url = prompt('URL Link?','http://');
	
	if(url == null)
	{
		return false;
	}
	
	var description = prompt('Link Description?','');
		
	if(url != null && description != null)
	{
		if(url.substr(0,7) != 'http://')
		{
			url = 'http://' + url;
		}
		
		__add_text("[link=" + url + "]" + description + "[/link]");		
	}
}

function __insert_email()
{
	var email = prompt('Email Address?','');
	
	if(email != null)
	{
		__add_text("[email]" + email + "[/email]");	
	}
}

function __insert_image()
{
	var image = prompt('Image URL?','http://');
	
	if(image != null)
	{
		if(image.substr(0,7) != 'http://')
		{
			image = 'http://' + image;
		}
		
		__add_text("[img]" + image + "[/img]");
		
	}
}

function __get_style()
{
	var formObject = document.forms['theForm'];
	
	if(formObject)
	{
		var mstyle = new Array();
		var sstyle = new Array();
		
		if(formObject['signature'])
		{
			if(formObject['signature'].value.replace(/\s+/g,"").length > 0)
			{
				sstyle[0] = formObject['signature'].style.fontFamily;
				sstyle[1] = formObject['signature'].style.color;
				sstyle[2] = formObject['signature'].style.fontSize;
				
				formObject['sig_style'].value = sstyle.join("|QQ|");
			}	
		}
		
		mstyle[0] = formObject['message'].style.fontFamily;
		mstyle[1] = formObject['message'].style.color;
		mstyle[2] = formObject['message'].style.fontSize;
				
		formObject['msg_style'].value = mstyle.join("|QQ|"); 
	}
}

function __create_post()
{
	var formObject = document.forms['theForm'];
	var error = false;
	
	if(formObject)
	{
		if(formObject['subject'] && formObject['subject'].value.replace(/\s+/g,'').length == 0)
		{
			alert("Please enter the subject ! ");
			formObject['subject'].focus();
			
			error = true;
		}
		else if(formObject['message'].value.replace(/\s+/g,"").length == 0)
		{
			alert("Please enter a message ! ");
			formObject['message'].focus();
			
			error = true;
		}
		
		if(!error)
		{
			if(formObject['data'])
			{	
				__get_style();
				__toggle_buttons('y','theForm');
			
				formObject.target = "_self";
				formObject.action = "create.php";		
				formObject.submit();
			}
		}
	}
}

function __create_poll()
{
	var formObject = document.forms['theForm'];
	var error = false;
	
	if(formObject)
	{
		if(formObject['question'].value.replace(/\s+/g,'').length == 0)
		{
			alert("Please enter the poll question ! ");
			formObject['question'].focus();
			
			error = true;
		}
		else if(formObject['subject'].value.replace(/\s+/g,'').length == 0)
		{
			alert("Please enter the subject ! ");
			formObject['subject'].focus();
			
			error = true;
		}
		else if(formObject['choices'].value.replace(/\s+/g,"").length == 0)
		{
			alert("Please enter at least 2 poll choices ! ");
			formObject['choices'].focus();
			
			error = true;
		}
		else if(formObject['message'].value.replace(/\s+/g,"").length == 0)
		{
			alert("Please enter a message ! ");
			formObject['message'].focus();
			
			error = true;
		}
		else
		{
			var answers = formObject['choices'].value.split(/\n/);
			var count = 0;
			
			for(i=0 ; i<answers.length ; i++)
			{
				answers[i] = answers[i].replace(/\s+/g,"");
				
				if(answers[i].length > 0)
				{
					count += 1;
				}
			}
			
			if(count < 2)
			{
				alert("Please enter at least 2 poll choices ! ");				
				formObject['choices'].focus();
				
				error = true;
			}
			else if(count > 10)
			{
				alert("Please enter at most 10 poll choices ! ");				
				formObject['choices'].focus();
				
				error = true;
			}	
		}
		
		if(!error)
		{
			if(formObject['data'])
			{	
				__get_style();
				__toggle_buttons('y','theForm');
			
				formObject.target = "_self";
				formObject.action = "create.php";		
				formObject.submit();
			}
		}
	}
}

function __preview_post()
{
	var formObject = document.forms['theForm'];
	var error = false;
	
	if(formObject)
	{	
		if(formObject['message'].value.replace(/\s+/g,"").length == 0)
		{
			alert("Please enter a message ! ");
			formObject['message'].focus();
			
			error = true;
		}
		
		if(!error)
		{
			__get_style();
			
			window.open('preview.php','preview','width=700, height=350, scrollbars=yes');	
		
			formObject.target = "preview";
			formObject.action = "preview.php";
			formObject.submit();
		}
	}
}

function __preview_poll()
{
	var formObject = document.forms['theForm'];
	var error = false;
	
	if(formObject)
	{	
		if(formObject['question'].value.replace(/\s+/g,'').length == 0)
		{
			alert("Please enter the poll question ! ");
			formObject['question'].focus();
			
			error = true;
		}
		else if(formObject['choices'].value.replace(/\s+/g,"").length == 0)
		{
			alert("Please enter at least 2 poll choices ! ");
			formObject['choices'].focus();
			
			error = true;
		}
		else
		{
			var answers = formObject['choices'].value.split(/\n/);
			var count = 0;
			
			for(i=0 ; i<answers.length ; i++)
			{
				answers[i] = answers[i].replace(/\s+/g,"");
				
				if(answers[i].length > 0)
				{
					count += 1;
				}
			}
			
			if(count < 2)
			{
				alert("Please enter at least 2 poll choices ! ");				
				formObject['choices'].focus();
				
				error = true;
			}
			else if(count > 10)
			{
				alert("Please enter at most 10 poll choices ! ");				
				formObject['choices'].focus();
				
				error = true;
			}	
		}
		
		if(!error)
		{
			__get_style();
			
			window.open('preview.php','preview','width=700, height=350, scrollbars=yes');	
		
			formObject.target = "preview";
			formObject.action = "preview.php";
			formObject.submit();
		}
	}
}

function __submit_vote(id)
{
	var formObject = document.forms['poll_' + id];	
	
	if(formObject)
	{
		var selection = null;
		
		for(i=0 ; i<formObject.elements.length ; i++)
		{
			if(formObject.elements[i].type == 'radio' && formObject.elements[i].name == 'vote')
			{
				if(formObject.elements[i].checked)
				{
					selection = formObject.elements[i].value;
					break;
				}
			}
		}
		
		if(selection == null)
		{
			alert('Please make a selection before voting ! ');
			
			return false;			
		}
		else
		{
			__toggle_buttons('y','poll_' + id);
			
			formObject['mode'].value = 'vote';
			formObject.method = 'post';
			formObject.submit();
		}
	}
}

function __get_vote_results(id)
{
	var formObject = document.forms['poll_' + id];	
	
	if(formObject)
	{
		__toggle_buttons('y','poll_' + id);	
			
		formObject['mode'].value = 'view';			
		formObject.method = 'post';
		formObject.submit();
	}
}

function __submit_form(msg,mode)
{
	var formObject = document.forms['theForm'];
	
	if(formObject)
	{	
		if(msg != null)
		{
			if(confirm(msg))
			{
				__toggle_buttons('y','theForm');
								
				formObject['mode'].value = mode;
				formObject.submit();				
			}
		}
		else
		{
			__toggle_buttons('y','theForm');
				
			formObject['mode'].value = mode;
			formObject.submit();	
		}
	}
}

function __cancel_form_submission(msg,mode,target)
{
	if(mode == 'form')
	{
		var formObject = document.forms['theForm'];
		
		if(formObject)
		{		
			if(msg != null)
			{
				if(confirm(msg))
				{
					__toggle_buttons('y','theForm');
					
					formObject['mode'].value = target;					
					formObject.submit();
				}
			}
			else
			{
				__toggle_buttons('y','theForm');
					
				formObject['mode'].value = target;					
				formObject.submit();
			}
		}
	}
	else if(mode == 'location')
	{
		if(msg != null)
		{
			if(confirm(msg))
			{
				__toggle_buttons('y','theForm');
				
				window.location.href = target;	
			}
		}
		else
		{
			__toggle_buttons('y','theForm');
				
			window.location.href = target;
		}
	}
}

function __get_navigation()
{				
	if(document.getElementById)
	{
		var dimensions = __get_page_dimensions();
		
		if(dimensions.length > 0)
		{		
			document.getElementById('navigator').style.display = '';
			
			document.getElementById('navigator').style.top = (dimensions[3]-140)/2;
			document.getElementById('navigator').style.left = (dimensions[2]-500)/2;
		}
	}
}

function __close_navigation()
{
	if(document.getElementById)
	{		
		document.getElementById('navigator').style.display = 'none';		
	}
}

function __get_colleges(id)
{
	var XMLHttpObject = __xmlhttp_request();
		
	if(XMLHttpObject)
	{
		__show_loader('visible');			
	
		XMLHttpObject.open('POST','rpc.php?mode=colleges',true);
		
		XMLHttpObject.onreadystatechange = function()
		{
			if(XMLHttpObject.readyState == 4)
			{
				if(XMLHttpObject.status == 200)
				{
					__show_loader('hidden');					
					
					if(document.getElementById)
					{
						if(XMLHttpObject.responseXML.getElementsByTagName("college"))
						{
							var html = "";
							var xmlData = XMLHttpObject.responseXML.getElementsByTagName("college");
							
							for(i=0 ; i<xmlData.length ; i++)
							{
								html += "<a href=\"../forums/?data=" + xmlData[i].getAttribute('id') + "\" class=\"linkForumCategory\">" + xmlData[i].childNodes[0].nodeValue + "</a><br>";
							}
							
							document.getElementById('colleges').style.overflow = 'auto';
							document.getElementById('colleges').innerHTML = html;	
						}
					}
				}
			}
		}
		
		XMLHttpObject.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		XMLHttpObject.send('mode=colleges&id=' + id); 		
	}	
}

function __trace_characters(field,target,limit)
{
	if(document.getElementById)
	{
		document.getElementById(target).innerHTML = field.value.length;
		
		if(field.value.length >= limit)
		{
			field.value = field.value.substring(0, limit);
		}
	}
}

function __handle_group_access(value)
{
	var formObject = document.forms['theForm'];
	
	if(formObject)
	{
		formObject['visible'].disabled = (value == 3 ? true : false);
		formObject['visible'].checked = (value == 3 ? false : true)
	}
}

function __upload_group_image(mode)
{
	var formObject = document.forms['theForm'];
	var error = false;
	
	if(formObject)
	{
		if(formObject['image_upload'].value.replace(/\s+/g).length == 0)
		{
			error = true;			
			formObject['image_upload'].focus();
		}
		
		if(!error)
		{
			__toggle_buttons('y','theForm');
			
			formObject['mode'].value = mode;
			formObject.submit();
		}
		else
		{
			return false;
		}		
	}
}

function __handle_search_section(entity)
{
	var formObject = document.forms['theForm'];
	
	if(formObject)
	{
		if(document.getElementById)
		{	
			var entities = new Array('people','groups');
		
			for(i=0 ; i<entities.length ; i++)
			{
				if(entities[i] == entity)
				{
					document.getElementById(entities[i]).className = 'linkTab';	
					document.getElementById(entities[i]).blur();
				}
				else
				{
					document.getElementById(entities[i]).className = 'linkTabOff';
				}
			}
			
			formObject['mode'].value = entity;
			
			switch(entity)
			{
				case 'people':
				
					if(formObject['keyword'].value == 'Search by title or type')
					{
						formObject['keyword'].value = 'Search by name, email or address';	
					}
			
				break;
					
				case 'groups':
					
					if(formObject['keyword'].value == 'Search by name, email or address')
					{
						formObject['keyword'].value = 'Search by title or type';	
					}
			
				break;
			}
		}
	}
}

function __quick_search()
{
	var formObject = document.forms['theForm'];
	
	if(formObject)
	{
		if(formObject['keyword'].value == 'Search by name, email or address' || formObject['keyword'].value == 'Search by title or type')
		{
			formObject['keyword'].value = '';	
		}
		
		formObject.action = 'results.php';
		formObject.method = 'get';
		
		formObject.submit();		
	}
}