/*
* ArchonGroups
*/

function refreshCss() {
	var i,a,s;
	a=document.getElementsByTagName('link');
	for(i=0;i<a.length;i++) {
		s=a[i];
		if(s.rel.toLowerCase().indexOf('stylesheet')>=0&&s.href) {
			var h=s.href.replace(/(&|\\?)forceReload=d /,'');
			s.href=h+(h.indexOf('?')>=0?'&':'?')+'forceReload='+(new Date().valueOf());
		}
	}
}

function ajaxCss() {
	var myAjax = new Ajax.Updater( 'ajaxcss', '/misc/fetchcss.html', { method: 'get',
		onComplete: function( ) {





	var i,a,s;
	a=$('ajaxcss').getElementsByTagName('link');
	for(i=0;i<a.length;i++) {
		s=a[i];

		console.log(s.href);
		if(s.rel.toLowerCase().indexOf('stylesheet')>=0&&s.href) {
			var h=s.href.replace(/(&|\\?)forceReload=d /,'');
			s.href=h+(h.indexOf('?')>=0?'&':'?')+'forceReload='+(new Date().valueOf());
		}
	}



		} });


}


function requestJoin(gid,updateDivID) {
	
	
	
	if(updateDivID!=null && updateDivID!="")
	{
	
	
	}
	else
	{
	updateDivID ='req_' + gid; 
	
	}
	var x = $(updateDivID); //'req_' + gid);
	if(x!=null)
		x.innerHTML = "<img src='/images/spinner.gif' width='16' class='noset'/>Sending request...";
		
	var pars = 'Action=manage&ajax&do=REQUEST_JOIN&gid=' + gid;
	var myAjax = new Ajax.Updater( updateDivID, '/members', { method: 'get',parameters: pars });
}

function approveJoin(uid,gid) {
	var x = $('req_' + uid + '_' + gid);
	x.innerHTML = "<img src='/images/spinner.gif' width='16' class='noset'/>Approving request...";

	var pars = 'Action=manage&ajax&do=APPROVE_JOIN&uid=' + uid + '&gid=' + gid;
	var myAjax = new Ajax.Updater( 'req_' + uid + '_' + gid, '/members', { method: 'get',parameters: pars });
}

function rejectJoin(uid,gid) {
	var x = $('req_' + uid + '_' + gid);
	x.innerHTML = "<img src='/images/spinner.gif' width='16' class='noset'/>Rejecting request...";

	var pars = 'Action=manage&ajax&do=REJECT_JOIN&uid=' + uid + '&gid=' + gid;
	var myAjax = new Ajax.Updater( 'req_' + uid + '_' + gid, '/members', { method: 'get',parameters: pars });
}

function leaveGroup(uid,gid) {

	var x = $('req_' + uid + '_' + gid);
	x.innerHTML = "<img src='/images/spinner.gif' width='16' class='noset'/>Leaving group...";

	var pars = 'Action=manage&ajax&do=REMOVE&uid=' + uid + '&gid=' + gid;
	var myAjax = new Ajax.Updater( 'req_' + uid + '_' + gid, '/members', { method: 'get',parameters: pars });
}

function removeGroupMember(uid,gid) {

	var x = $('req_' + uid + '_' + gid);
	x.innerHTML = "<img src='/images/spinner.gif' width='16' class='noset'/>Sending request...";


	var pars = 'Action=manage&ajax&do=REMOVE&uid=' + uid + '&gid=' + gid;
	var myAjax = new Ajax.Updater( 'req_' + uid + '_' + gid, '/members', { method: 'get',parameters: pars });
}

function addGroupMember(uid,gid) {

	var x = $('req_' + uid + '_' + gid);
	x.innerHTML = "<img src='/images/spinner.gif' width='16' class='noset'/>Sending request...";


	var pars = 'Action=manage&ajax&do=ADD&uid=' + uid + '&gid=' + gid;
	var myAjax = new Ajax.Updater( 'req_' + uid + '_' + gid, '/members', { method: 'get',parameters: pars });
}



function addToFriends(uid) {
	var x = $('req_' + uid);
	x.innerHTML = "<img src='/images/spinner.gif' width='16' class='noset'/>Sending friend request...";

	var pars = 'Action=manage&ajax&do=REQUEST_FRIEND&uid=' + uid;
	var myAjax = new Ajax.Updater( 'req_' + uid, '/members', { method: 'get',parameters: pars });
}

function approveFriendRequest (uid) {
	var x = $('req_' + uid);
	x.innerHTML = "<img src='/images/spinner.gif' width='16' class='noset'/>Approving friend request...";

	var pars = 'Action=manage&ajax&do=APPROVE_JOIN&uid=' + uid;
	var myAjax = new Ajax.Updater( 'req_' + uid, '/members', { method: 'get',parameters: pars });
}

function rejectFriendRequest (uid) {
	var x = $('req_' + uid);
	x.innerHTML = "<img src='/images/spinner.gif' width='16' class='noset'/>Rejecting friend request...";

	var pars = 'Action=manage&ajax&do=REJECT_JOIN&uid=' + uid;
	var myAjax = new Ajax.Updater( 'req_' + uid, '/members', { method: 'get',parameters: pars });
}

function deleteMessage (rmid) {
	var pars = 'Action=delete_message&ajax&rmid=' + rmid;
	var myAjax = new Ajax.Updater( 'ajax_status', '/messaging', { method: 'get',parameters: pars });

	Effect.BlindUp('req_' + rmid);
}



/**
 * Retrieve the value for the selected check box
 *
 * @param form form name
 * @param string name of checkboxes
 * @return string value
 */
function getSelectedCheckBoxValue (form, name)
{
	for (var j=0; j < document.forms.length; j++)
	{
		if (document.forms[j].name == form)
		{
			for (var i=0; i < document.forms[j].elements.length; i++)
			{
				var e = document.forms[j].elements[i];

				if (e.type=='checkbox' && e.name==name && e.checked)
				{
					return e.value;
					break;
				}
			}
		}
	}
}

/**
 * Toggle all checkboxes for a given checkbox name.
 *
 * @param checkbox object
 * @param form form name
 * @param string name of checkboxes
 */
function toggleCheckBoxes (object, form, name)
{

	for (var j=0; j < document.forms.length; j++)
	{
		if (document.forms[j].name == form)
		{
			for (var i=0; i < document.forms[j].elements.length; i++)
			{
				var e = document.forms[j].elements[i];

				if (e.type=='checkbox' && e.name==name)
				{
					e.checked = object.checked;
				}
			}
			break;
		}
	}
}

/**
 * Check if certain checkboxes are selected
 *
 * @param form form name
 * @param string name of checkboxes
 * @return boolean
 */
function areAnyCheckBoxesSelected (form, name )
{
	for (var j=0; j < document.forms.length; j++)
	{
		if (document.forms[j].name == form)
		{
			for (var i=0; i < document.forms[j].elements.length; i++)
			{
				var e = document.forms[j].elements[i];

				if (e.name == name && e.checked)
				{
					return true;
				}
			}
			break;
			return false;
		}
	}
}

/**
 * Disables or enables a component with the form.
 *
 * @param form form name
 * @param string component
 * @return boolean
 */
function toggleState (name, component)
{
	for (var j=0; j < document.forms.length; j++)
	{
		if (document.forms[j].name == name)
		{
			for (var i=0; i < document.forms[j].elements.length; i++)
			{
				var e = document.forms[j].elements[i];

				if (e.name == component)
				{
					e.disabled = (e.disabled) ? false :true;
				}
			}
			break;
		}
	}
}


/**
 * Popup an image from a url
 *
 * @param string url
 * @param string image title
 */
function popImage(imageURL, imageTitle)
{
		  <!-- image popup -->
	PositionX = 100;
	PositionY = 100;

	defaultWidth  = 500;
	defaultHeight = 500;

	var AutoClose = true;

	if (parseInt(navigator.appVersion.charAt(0)) >= 4) {
		var isNN = (navigator.appName=="Netscape") ? 1 : 0;
		var isIE = (navigator.appName.indexOf("Microsoft") != -1) ? 1 : 0;
	}
	var optNN = 'scrollbars=no, width='+defaultWidth+', height='+defaultHeight+', left='+PositionX+', top='+PositionY+ ", resizable=true";
	var optIE = 'scrollbars=no, width=150, height=100, left='+PositionX+', top='+PositionY + ", resizable=true";


	if (isNN) {
		imgWin = window.open('about:blank', '', optNN);
	}
	if (isIE) {
		imgWin = window.open('about:blank', '', optIE);
	}

	with (imgWin.document) {
		writeln('<html><head><title>Loading...</title><style>body{margin:0px;}</style>');writeln('<sc'+'ript>');
		writeln('var isNN,isIE;');writeln('if (parseInt(navigator.appVersion.charAt(0))>=4){');
		writeln('isNN=(navigator.appName=="Netscape")?1:0;');writeln('isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}');
		writeln('function reSizeToImage(){');writeln('if (isIE){');writeln('window.resizeTo(100,100);');
		writeln('width=100-(document.body.clientWidth-document.images[0].width);');
		writeln('height=100-(document.body.clientHeight-document.images[0].height);');
		writeln('window.resizeTo(width,height);}');writeln('if (isNN){');
		writeln('window.innerWidth=document.images["archon"].width;');writeln('window.innerHeight=document.images["archon"].height;}}');
		writeln('function doTitle(){document.title="'+imageTitle+'";}');writeln('</sc'+'ript>');
		if (!AutoClose)
		{
			writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()">');
		}
		else
		{
			writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()" onblur="self.close()">');
			writeln('<img name="archon" src="'+imageURL+'" style="display:block"></body></html>');
			close();
		}
	}
}

/**
 * This function figures out the amount of selected
 * checkboxes for a given form.
 *
 * @param form name
 * @param string name of checkboxes
 * @return int count
 */
function selectedCheckBoxesCount(form, name)
{
	var count = 0;

	for (var j=0; j < document.forms.length; j++)
	{
		if (document.forms[j].name == form)
		{
			for (var i=0; i < document.forms[j].elements.length; i++)
			{
				var e = document.forms[j].elements[i];

				if (e.name == name && e.checked)
				{
					count++
				}
			}
			break;
		}
	}
	return count;
}

/**
 * This function creates an xml http object for backend
 * calls to the server. Attempts to create this object on all
 * browsers, if unsucessful, it pops up an alert to the user detailing
 * the errors.
 *
 * @return xmlhttp
 */
function getHTTPObject()
{
	var xmlhttp;

	try {
    	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    	try {
        	xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (E) {
            xmlhttp = false;
        }
    }

    if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
    {
    	try {
        	xmlhttp = new XMLHttpRequest();
        } catch (e) {
        	alert ("Your browser lacks some key features used by this page."+
				   "Some functionality might not work properly.Pleas contact your webmaster.");
        }
     }
	 return xmlhttp;
}

/**
 * Toggle div layers for hiding/showing.
 *
 * @param string name of div
 * @param string hidden flag
 */
function toggleLayer(whichLayer,hidden)
{
	if (document.getElementById)
	{
		// this is the way the standards work
		var style2 = document.getElementById(whichLayer).style;
		if (hidden == "true")
		{
			style2.display = style2.display? "":"none";
		}
		else {
			style2.display = style2.display? "":"block";
		}
	}
	else if (document.all)
	{
		// this is the way old msie versions work
		var style2 = document.all[whichLayer].style;
		style2.display = style2.display? "":"block";
	}
	else if (document.layers)
	{
		// this is the way nn4 works
		var style2 = document.layers[whichLayer].style;
		style2.display = style2.display? "":"block";
	}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}