// -- images to preload
var preloaded_images = Array (
	'btn-over.png', 
	'btn_sml-over.png',
	'btn_cancel-over.png',
	'btn-over.png',
	'bg_nav-on.gif',
	'bg_tabs.png',
	'cap_left_on.gif',
	'cap_right_on.gif'
);

// -- force preloading
for (i=0; i<preloaded_images.length; i++) {
	var img = new Image();
	img.src = project_path + '/img/' + preloaded_images[i];
}

function changeVisibility (objectID, newVisibility) {
	var styleObject = getStyleObject(objectID);
	if (styleObject) {
		styleObject.visibility = newVisibility;
		return true;
	} else {
		return false;
	}
} // changeVisibility

function checkEmail (email, invalidaddress) {
	var testresults;
	var invalidcheck = 0;
	var str = email;
	var filter = /^(\w+(?:\.\w+)*)@((?:\w+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if (filter.test(str)) {
		var tempstring = str.split("@");
		tempstring = tempstring[1].split(".");
		if (invalidaddress != null) {
			for (i=0; i<invalidaddress.length; i++){
				if (tempstring[0]==invalidaddress[i]) invalidcheck = 1;
			}
		}
		if (invalidcheck != 1) return true;
		else return false;
	} else return false;
}

function flagAsOffensive () {
	if (!confirm('Are you sure you want to report this page as containing offensive content?')) return;
	$('flagging').innerHTML = '<img width="8" height="8" style="vertical-align: middle;" src="' + project_path + '/img/loader.gif" alt=""> flagging page';
	var myAjax = new Ajax.Request (project_path + '/scripts/flag.php', {
		method: 'post',
		parameters: $('flagging_form').serialize(),
		onSuccess: function (transport) {
			var response = transport.responseText;
			$('flagging').innerHTML = response;
		}
	});
}

function getStyleObject(objectId) {
	// cross-browser function to get an object's style object given its id
  if(document.getElementById && document.getElementById(objectId)) {
	// W3C DOM
		return document.getElementById(objectId).style;
  } else if (document.all && document.all(objectId)) {
	// MSIE 4 DOM
		return document.all(objectId).style;
  } else if (document.layers && document.layers[objectId]) {
	// NN 4 DOM.. note: this won't find nested layers
		return document.layers[objectId];
  } else {
		return false;
  }
} // getStyleObject

//get browser size
function getWindowSize() {
	if (parseInt(navigator.appVersion)>3) {
		if (navigator.appName=="Netscape") {
			winW = window.innerWidth;
			winH = window.innerHeight;
		}
		if (navigator.appName.indexOf("Microsoft")!=-1) {
			winW = document.body.offsetWidth;
			winH = document.body.offsetHeight;
		}
	}
	return new Array(winW,winH);
}

function numbersonly (myfield, e, dec) {
	var key;
	var keychar;
	
	if (window.event)
	   key = window.event.keyCode;
	else if (e)
	   key = e.which;
	else
	   return true;
	   
	keychar = String.fromCharCode(key);
	
	if ((key==null) || (key==0) || (key==8) || 
		(key==9) || (key==13) || (key==27) )
	   return true;
	
	else if ((("0123456789").indexOf(keychar) > -1))
	   return true;
	
	else if (dec && (keychar == "."))
	   {
	   myfield.form.elements[dec].focus();
	   return false;
	   }
	else
	   return false;
}

function performSearch () {
	var f = document.search_form;
	var search = f.s.value;
	if (!search.length) {
		alert('Enter a search value');
	} else {
		var url = "/" + escape(f.f.value) + "/?s=" + escape(search);
		window.location = project_path + url;
	} 
}

//open a centered popup
function popup(url,width,height,title,scrollbar,resizable,center) {

	//set defaults
	if (width == null) width = 600;
	if (height == null) height = 450;
	if (title == null) title = 'auto_popup';
	if (scrollbar == null) scrollbar = false;
	if (resizable == null) resizable = false;
	if (center == null) center = true;

	//set props
	scrollbar = scrollbar == true ? 'yes' : 'no';
	resizable = resizable == true ? 'yes' : 'no';
	winProperties = 'height='+height+',width='+width+',toolbar=no,location=no,scrollbars='+scrollbar+',titlebar=no,menubar=no,resizable='+resizable+',status=no';

	//open and move
	win = window.open(url,title, winProperties);
	if (!win) alert('Please disable your popup blocker to use this site.');
	else if (center) {
		if (self.screen) {
			sw = self.screen.width;
			sh = self.screen.height;
		} else return;
		win.moveTo((sw-width)/2,(sh-height)/2);
	}

}

function setTabs (tab_id, tab_prefix, tab_total) {
	for (i=1; i<=tab_total; i++) {
		var ctab = tab_prefix + i;
		var ccontent = tab_prefix + '_item_' + i;
		if (tab_id == i) {
			$(ctab).className = 'on';
			$(ccontent).style.display = 'block';
		} else {
			$(ctab).className = 'off';
			$(ccontent).style.display = 'none';
		}
	}
}

function showStatusMsg (msg) {
	var status_msg = document.getElementById('status_message');
	status_msg.innerHTML = msg;
	status_msg.style.display = '';
}

function toggleDisplay (obj_id, display_mode) {
	if (document.getElementById) {
		var obj = document.getElementById(obj_id);
		if (display_mode != null) obj.style.display = display_mode;
		else {
			if (obj.style.display == 'none') obj.style.display = '';
			else obj.style.display = 'none';
		}
		return obj.style.display;
	}
}

function toggleModule (obj_id) { 
	if (document.getElementById){
		var obj = document.getElementById(obj_id);
		var tag = document.getElementById(obj_id + "_action");
		if (obj.style.display == 'none') {
			obj.style.display = '';
			tag.innerHTML = '-';
		} else {
			obj.style.display = 'none';
			tag.innerHTML = '+';
		}
	}
}