function toggle(element) {

  var folderElement = document.getElementById(element);

  if (folderElement.style.display == "block") {

    folderElement.style.display = "none";

  } else {

    folderElement.style.display = "block";

  }

}

function toggleon(element) {

  var folderElement = document.getElementById(element);
//  folderElement.style.display = "block";
  folderElement.className = "signup_error";

}

function toggleoff(element) {

  var folderElement = document.getElementById(element);
  folderElement.className = "signup_norm";

}

function open_window(link, width, height) {

  var features = 'height=' + height + ',width=' + width + ',menubar=no,resizable=no,status=no';
  var leftPos = (screen.availWidth - width) / 2;
  var topPos = (screen.availHeight - height) / 2;
  features += ',screenX=' + leftPos;
  features += ',screenY=' + topPos;
  window.open(link, '', features);

}

function comment_window(link) {

  var features = 'height=200,width=400,menubar=no,resizable=no,status=no';
  var leftPos = (screen.availWidth - 400) / 2;
  var topPos = (screen.availHeight - 200) / 2;
  features += ',screenX=' + leftPos;
  features += ',screenY=' + topPos;
  window.open(link, '', features);

}


function show_hidden_form( div_label ) {

	var div_id = document.getElementById( div_label );

  	var leftPos = (screen.availWidth - 500) / 2;
  	var topPos = (screen.availHeight - 500) / 2;

	if (topPos > 200) { topPos = 200; }

	div_id.style.display = "block";
	div_id.style.position = "absolute"
	div_id.style.left = leftPos + "px";
	div_id.style.top = topPos + "px";

}


function hide_hidden_form( div_label) {

	var div_id;
	
	div_id = document.getElementById( div_label );
	div_id.style.display = "none";

}


function lock_forms(caller_form) {

	// find all form objects from the caller!

	var inputs = caller_form.getElementsByTagName("*");

	for (var i=0; i < inputs.length; i++) {

		if (inputs[i].type == "submit" ) { inputs[i].disabled = "true"; }

	}
	
//	show_hidden_form('form_submitted');

	return true;

}


function lock_validate_form(caller_form) {

	// locks AND validates the form
	// find all form objects from the caller!

	var inputs = caller_form.getElementsByTagName("*");
	var passed = true; 
		
	for (var i=0; i < inputs.length; i++) {

		if (inputs[i].type == "text" || inputs[i].type == "textarea" ) { 
		
			if (inputs[i].value == "") { passed = false; }
		
		}

	}
	
	if (passed) {

		for (var i=0; i < inputs.length; i++) {

			if (inputs[i].type == "submit" ) { inputs[i].disabled = "true"; }

		}

//		show_hidden_form('form_submitted');
	
	} else {
	
		alert("The form was not completed fully, please try again");
	
	}

	return passed;

}

function forumQuote( div_label , author ) {

	var div_id;
	div_id = document.getElementById(div_label);

	alert (div_id.innerHTML);

	document.addpost.post.value += "<p class=forum_block_quote>Quoted from " + author + ":<br><br>\"" + div_id.innerHTML + "\"</p>";
	
}	
	
/*

	A load of AJAX stuff for dynamically loaded floting menus

*/	
	
function showAjaxForm(formType, contextID, height, width) {
	
	// initialise the http request
	// then launch generateAjaxForm(httpRequest)
	
	var httpRequest;

    if (window.XMLHttpRequest) { // Mozilla, Safari, ...

    	httpRequest = new XMLHttpRequest();
        if (httpRequest.overrideMimeType) { httpRequest.overrideMimeType('text/xml'); }
        
    } else if (window.ActiveXObject) { // IE
        
        try { httpRequest = new ActiveXObject("Msxml2.XMLHTTP"); } 
        catch (e) { try { httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); } 
        catch (e) {} }
        
    }

	if (!httpRequest) {
        alert('Your browser does not appear to support AJAX forms. Sorry!');
        return false;
    }
        
    httpRequest.onreadystatechange = function() { generateAjaxForm(httpRequest, width, height); };
    httpRequest.open('POST', 'xml_generate.php', true);
    httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    httpRequest.send('form_type=' + formType + '&context_id=' + contextID);

}


function generateAjaxForm(httpRequest, width, height) {	

	// httpRequest has been triggered
	// decode the UML and display the page
	
	var content;
	
  	if (httpRequest.readyState == 4) {
        if (httpRequest.status == 200) {

			// read the response
			content = httpRequest.responseText;
			document.body.appendChild(createHiddenForm(content, width, height));

        } else {
            alert('There was a problem with the request.');
        }

    }

}


function createHiddenForm(content, height, width) {

	var x_center;
	var y_center;
	var formID = "testID";

	var form;
	
	y_center = (document.body.clientWidth - width) / 2;
	x_center = (document.body.clientHeight - height) / 2;

	if (x_center > 100) { x_center = 100; }

	// generate a hidden form box


	hiddenForm = document.createElement("<div>");
	
	form = "<div class=hidden_form_wrapper style=\"display: block;\" id=\"testID\">";
	form += "<div class=hidden_form_background style=\"width: " + width + "px; height: " + height + "px; top: " 
		 + x_center + "; left: " + y_center + ";\">"
	
	form += "<div class=hidden_form_menubar>";
	form += "<a href=\"javascript:hide_ajax_hidden_form('" + formID + "');\" style=\"color: white;\">"; 
	form += "<img src=\"images/cross_button_20.gif\" border=0 alt=\"X\"></a></div>";

	form += content;
	form += "</div></div>";

	hiddenForm.innerHTML = form;
	
	return hiddenForm;

}	





function hide_ajax_hidden_form( div_label) {

	// find a div by tag name and then delete it!

	var div_id;

	alert(div_label);
	
	div_id = document.getElementsById(div_label);
	
	div_id.style.display = "none";
			
	for (var i=0; i < div_id.length; i++) {

		div_id[i].style.display = "none";
		div_id[i].setAttribute ("name", "deleted");
		div_id[i].innerHTML = "";

	}	

}


function validateLoginForm() {

	var msg = '';
	var fail = false;
	
	if (document.signup.forename.value == '') {	
		fail = true;
		msg += '- Forename was not completed\n';
		toggleon('forename_unfilled');		
	} else { toggleoff('forename_unfilled'); }
		
	if (document.signup.surname.value == '') { 
		fail = true;
		msg += '- Surname was not completed\n'; 
		toggleon('surname_unfilled');			
	} else { toggleoff('surname_unfilled'); }   
	
	if (document.signup.email.value == '') {
		fail = true;
		msg += '- Email Address was not completed\n';
		toggleon('email_unfilled');		
	} else { toggleoff('email_unfilled'); }
	   
	if (document.signup.form_username.value == '') {
		fail = true;
		msg += '- Username was not completed\n';
		toggleon('username_unfilled');	
	} else { toggleoff('username_unfilled'); }
	
	if (document.signup.email.value != document.signup.email2.value) {
		fail = true;
		msg += '- Email Addresses do not match\n';
		toggleon('email_different');	
	} else { toggleoff('email_different'); }
		   
	if (document.signup.form_password.value == '') {
		fail = true;
		msg += '- Password was not completed\n';
		toggleon('password_unfilled');		
	} else { toggleoff('password_unfilled'); }
	   
	if (document.signup.form_password.value != document.signup.password2.value) {
		fail = true; 
		msg += '- Passwords do not match\n';
		toggleon('password_different');	
	} else { toggleoff('password_different'); }   

	if (document.signup.confirm.checked == false) {
		fail = true;
		msg += '- You must abide by the terms and conditions\n';
		toggleon('tandc_unfilled');
	} else { toggleoff('tandc_unfilled'); }
	   
	if (document.signup.sec_text.value == '') {
		fail = true;
		msg += '- You must copy the security text precisely\n';
		toggleon('sec_text_unfilled');		
	} else { toggleoff('sec_text_unfilled'); }   
	
	if (fail == true) {
	
		msg = "Registration cannot continue because\n" + msg + '\nMake the required changes and try again';
		alert(msg);
		return false;  
	
	} else {
	
	    return true;
	
	}
	
	return false;
		
}

function validateProfileForm() {

	var msg = '';
	var fail = false;
	
	if (document.profile_edit.forename.value == '') {	
		fail = true;
		msg += '- Forename was not completed\n';
		toggleon('forename_unfilled');		
	} else { toggleoff('forename_unfilled'); }
		
	if (document.profile_edit.surname.value == '') { 
		fail = true;
		msg += '- Surname was not completed\n'; 
		toggleon('surname_unfilled');			
	} else { toggleoff('surname_unfilled'); }   
	
	if (document.profile_edit.email1.value == '') {
		fail = true;
		msg += '- Email Address was not completed\n';
		toggleon('email_unfilled');		
	} else { toggleoff('email_unfilled'); }
	   
	if (document.profile_edit.password1.value == '') {
		fail = true;
		msg += '- Password was not completed\n';
		toggleon('password_unfilled');		
	} else { toggleoff('password_unfilled'); }
	   
	if (fail == true) {
	
		msg = "Registration cannot continue because\n" + msg + '\nMake the required changes and try again';
		alert(msg);
		return false;  
	
	} else {
	
	    return true;
	
	}
	
	return false;
		
}


function show_search_form(sesskey) {
	
	// initiate an http request for the form
	var blankDisplay  = document.createElement("div");
	
	blankDisplay.className = "background_blank";
	blankDisplay.id = "background_blanker";
	document.body.appendChild(blankDisplay);
	
	var tableElement = document.createElement("div");
	var x_center;
	var y_center;

	tableElement.id = "search_form";
	tableElement.className = "meta_data_table";	

	tableElement.innerHTML = ""
	+ "<img src=\"images/button_cancel_blue.gif\" alt=\"Close This Window\" title=\"Close This Window\"></a>"
	+ '<b>Search</b><br /><br />When using the search, you can refine your search by using<br />'
	+ ' AND and OR eg: <i>foo AND bar </i>will search for <b>both</b> foo and bar<br /><br />'
	
	+ '<form name="site_search" action="search.php" method="post" onsubmit="return lock_forms(this);">'

	+ '<table border="0" cellpadding="0" cellspacing="4">'
	+ '<tbody>'

	+ '<tr><td colspan="3">Search String</td>'
	+ '<td colspan="6"><input name="query" value="Enter something here!" type="text" '
	+ 'onclick="document.site_search.query.value=\'\';" /></td></tr>'

	+ '<tr><td colspan="9">Search in:</td></tr>'

	+ '<tr>'
	+ '<td>Pages</td><td><input name="searchmode" value="content" type="radio" checked="checked" /></td>'
	+ '<td>Photos</td><td><input name="searchmode" value="gallerycontent" type="radio" /></td>'
	+ '<td>Forums</td><td><input name="searchmode" value="forum" type="radio" /></td>'
	+ '<td>News</td><td><input name="searchmode" value="news" type="radio" /></td>'

	+ '<td align="center" valign="middle">'
	+ '<input type="image" src="images/search_button.gif" value="log in" />'
	+ '</td></tr>'
	+ '</tbody></table></form>';

	document.body.appendChild(tableElement);
			
	y_center = (document.body.clientWidth - 400) / 2;
	x_center = (document.body.clientHeight - 400) / 2;

	if (x_center > 200) { x_center = 200; }

	tableElement.style.position = "absolute";	
	tableElement.style.display = "block";
	tableElement.style.left = y_center;
	tableElement.style.top = x_center;


}