var myrules;

/******* GIRL FINDER FUNCTIONS *******/

function expandGirlFinder() {
    var gf = document.getElementById("girlfinder");
    gf.setAttribute("height", 141);
    gf.style.height = 141 + "px";
}

function collapseGirlFinder() {
    var gf = document.getElementById("girlfinder");
    gf.setAttribute("height", 22);
    gf.style.height = 22 + "px";
}

/******* JS DATA CACHE STUFF ********/
var cache = new Array();
cache.pointers = new Object();
cache.limits = new Object();
cache.currentpage = new Object();
cache.preloaded = new Object();



/******* COMMENT HOVAOVA *******/

var memberFloatTimeout;
var memberLoadLink = '';
var memberMouseObj;
var memberMouseEvent;
var memberPopTimeout;
var memberLoadTimeout;
function handleMemberMouseOver(mouseobj,e,link){
	if(memberPopTimeout) {
		clearTimeout(memberPopTimeout);
	}
	memberMouseObj = mouseobj;
	memberMouseEvent = e;
	memberLoadLink = link;
	memberPopTimeout = setTimeout('repositionMemberFloater()',3000);
	if((memberLoadLink != link) || (memberLoadLink.length > 0)){
		memberLoadTimeout = setTimeout('loadMemberFloater()',3050);
	}
}

function handleMemberMouseOverClearTimeout(){
	if(memberPopTimeout) {
		clearTimeout(memberPopTimeout);
	}
	if(memberLoadTimeout) {
		clearTimeout(memberLoadTimeout);
	}
}

function loadMemberFloater(){
	loadDoc(memberLoadLink,900);
}

function repositionMemberFloater(){
	var mouseobj = memberMouseObj;
	var e = memberMouseEvent;
	var objx = findPosX(mouseobj);
	var objy = findPosY(mouseobj);
	var hova = new ObjByName('memberHovaOva');
	var thepage = new ObjByName('content');
	var thepagex = findPosX(thepage);
	var hovax = findPosX(hova);
	var hovay = findPosY(hova);
	var hova_to_x;
	var hova_to_y;
	var mousex = 0;
	var mousey = 0;
	var topspace;

	hova.obj.innerHTML = '<div class="memberHova"><img src="../../../../img/common/loading16px1.gif" width="16" height="16" class="loading" alt="Loading"/></div>';

	if (!e) var e = window.event;
	if (e.pageX || e.pageY)
	{
		mousex = e.pageX;
		mousey = e.pageY;
	}

	try {
		if (e.clientX || e.clientY)
		{
			mousex = e.clientX + document.body.scrollLeft;
			mousey = e.clientY + document.body.scrollTop;
		}	
		if(e.clientY && document.body.scrollTop){
			topspace = e.clientY - document.body.scrollTop;
		}
	} catch(err) {
	}
	var offsety = -195;
	var offsetx = -30; 
	
	hova_to_x = objx + offsetx;
	hova_to_y = objy + offsety;
	if(hova_to_x < 0){ hova_to_x = 0; }	

	if(topspace > 0 && topspace < 200){
		hova_to_y = objy + 28;
	}

	hova.style.left = hova_to_x.toString() + 'px';
	hova.style.top = hova_to_y.toString() + 'px';
	showHideDiv(hova.obj,'show');
}


function memberPopGoAway(){
	showHideDiv('memberHovaOva','hide');
}

/**/


function loginBox(loginform){
	loginform.username.onfocus=function() {};
	loginform.password.onfocus=function() {};
	loginform.username.value = "";
	loginform.username.style.color="#513131";
	
	var size = loginform.password.size;
	// IE6 is evil so we can't just change the type
	var input = document.createElement('input');
	input.type='password';
	input.name='password';
	input.size=size;
	input.value='';
	input.style.color="#513131";
	
	loginform.password.parentNode.replaceChild(input, loginform.password);
}

function addAnotherUploader(limit){
	var id;
	if (arguments.length>1)
		id = arguments[1];
	var uploader = id ? document.getElementById('picsUploader'+id) : document.getElementById('picsUploader');
	var pics = uploader.getElementsByTagName('div');

	var newpic = pics[0].cloneNode(true);
	uploader.appendChild(newpic);

	var pics_count = 0;
	for (var i=0; i<pics.length; i++) {
		if (pics[i].className=='file') pics_count++;
		if (pics_count >= limit) {
			var link = document.getElementById('addAnotherLink');
			link.style.display = "none";
			return(false);
		}
	}
		
}

function attachImageToComment(obj){
	var commentForm = obj.form;
	var count = 0;
	for (var i=0; i<commentForm.elements.length; i++) {
		if (commentForm.elements[i].type=='file') {
			count++;
			if (commentForm.elements[i]==obj) break;
		}
	}
	
	commentForm.content.value += '\n[ATTACHED='+count+']\n';
}

function attachImageToNews(obj){
	var thisForm = obj.form;
	var count = 0;
	for (var i=0; i<thisForm.elements.length; i++) {
		if (thisForm.elements[i].type=='file') {
			count++;
			if (thisForm.elements[i]==obj) break;
		}
	}
	
	thisForm.text.value += '\n[ATTACHED='+count+']\n';
}

function launchGallery(url)
{
	var screenw = self.screen.availWidth;
	var screenh = self.screen.availHeight;

	width = 1020;
	height = 865;

	//default pos
	xposition = 20;
	yposition = 20;

	//new pos
	xposition = (screenw - width) / 2;
	yposition = (screenh - height) / 2;
	if (xposition < 0)
		xposition = 0;
	
	if (yposition < 0)
		yposition = 0;
	

	args = "width=" + width + "," 
	+ "height=" + height + "," 
	+ "location=0," 
	+ "menubar=0,"
	+ "resizable=1,"
	+ "scrollbars=1,"
	+ "status=0," 
	+ "titlebar=0,"
	+ "toolbar=0,"
	+ "hotkeys=0,"
	+ "left=" + xposition + ","
	+ "top=" + yposition;
	window.open(url,'sgGallery',args );
}

function disableSubmit( formName ) {
        eval('document.forms.' + formName + '.submit.value = \'Posting...\'');
        eval('document.forms.' + formName + '.submit.disabled = true;');
        return;
}

function showHideDiv(objid,state){
	var obj;
	try {
		if(objid.parentNode){
			//it's an object. we needn't do anything
			obj = objid;
		} else {
			//it's not an object
			obj = document.getElementById(objid);
		}
	} catch(e) {
		//it's not an object and the browser errors on undefined properties
		obj = document.getElementById(objid);
	}
	state = (state == "hidden" || state == "hide") ? 0 : 1;
	vista = (state) ? 'block' : 'none';
	obj.style.display = vista;
	return true;
}

function toggleDiv(objid,vis)
{
	var obj;
	try {
		if(objid.parentNode){
			//it's an object. we needn't do anything
			obj = objid;
		} else {
			//it's not an object
			obj = document.getElementById(objid);
		}
	} catch(e) {
		//it's not an object and the browser errors on undefined properties
		obj = document.getElementById(objid);
	}
	if(vis){		
		if (obj.style.visibility == 'hidden') {
			obj.style.visibility = 'visible';
		} else {
			obj.style.visibility = 'hidden';
		}
	} else {
		if (obj.style.display == 'none') {
			obj.style.display = 'block';
		} else {
			obj.style.display = 'none';
		}
	}
	return true;
}

function pulldownRedirect(url, selector)
{
	document.location.href = url + (selector.value ? (selector.value + '../../../../default.htm') : '');
}



function addElementEventHandler(elm, evType, fn, useCapture) {
    elm["on"+evType]=fn;return;
}

var fadeStepTime = 20;
var fadeColors = new Array();
var fadeObj;
var fadeProp;
function fadeItem(obj,prop,startcolor,endcolor,time){
	try {
		if(obj.parentNode){
			//it's an object. we needn't do anything
		} else {
			//it's not an object
			obj = document.getElementById(obj);
		}
	} catch(e) {
		//it's not an object and the browser errors on undefined properties
		obj = document.getElementById(obj);
	}
	if (prop == 'background' || prop == 'background-color'){
		prop = 'backgroundColor';
	}
	
	fadeObj = obj;
	fadeProp = prop;
	var startrgb = hexToRGB(startcolor);
	var endrgb = hexToRGB(endcolor);
	var rgbarr1 = startrgb.split(',');
	var rgbarr2 = endrgb.split(',');
	var steps = time / 20; //time(ms) / defaultStepTime(ms)
	if (rgbarr1 > rgbarr2){
		var rstep = Math.floor((rgbarr1[0] - rgbarr2[0]) / steps);
		var gstep = Math.floor((rgbarr1[1] - rgbarr2[1]) / steps);
		var bstep = Math.floor((rgbarr1[2] - rgbarr2[2]) / steps);
		var op = 'sub';
	} else {
		var rstep = Math.floor((rgbarr2[0] - rgbarr1[0]) / steps);
		var gstep = Math.floor((rgbarr2[1] - rgbarr1[1]) / steps);
		var bstep = Math.floor((rgbarr2[2] - rgbarr1[2]) / steps);	
		var op = 'add';
	}
	for(s=1;s<=steps;s++){
		if(op == 'sub'){
			rgbarr1[0] = parseInt(rgbarr1[0]) - rstep;
			rgbarr1[1] = parseInt(rgbarr1[1]) - gstep;
			rgbarr1[2] = parseInt(rgbarr1[2]) - bstep;
		} else {
			rgbarr1[0] = parseInt(rgbarr1[0]) + rstep;
			rgbarr1[1] = parseInt(rgbarr1[1]) + gstep;
			rgbarr1[2] = parseInt(rgbarr1[2]) + bstep;
		}
		var hexresult = eval('rgbToHex('+rgbarr1[0]+','+rgbarr1[1]+','+rgbarr1[2]+')');
		fadeColors.push(hexresult);
	}
	fadeColors.push(endcolor);
	hexFade();
}
function hexFade(){
	var newcolor = fadeColors.shift();
	try {
		var changeThis = fadeObj.style;
	} catch(e) {
		//alert(fadeObj);
	}
	eval('changeThis.'+fadeProp+' = "#'+newcolor+'"');
	try {
		if(fadeColors.length){
			setTimeout('hexFade()',fadeStepTime);
		}
	} catch(e) {
		//alert(e);
	}
}

//AJAX FUNCTIONS
var req = false;
var reqident;
var reqdata;

// initiate XML request
function loadDoc(url,reqIdent) {
	// equalize W3C/IE event models to get event object
//	alert(url);
	try {
		loadXMLDoc(url,reqIdent);
	}
	catch(e) {
		var msg = (typeof e == "string") ? e : ((e.message) ? e.message : "Unknown Error");
		alert("Unable to get XML data:\n" + msg);
		return;
	}
	return true;
}

// load XML data
function loadXMLDoc(url,reqIdent) {
	// branch for native XMLHttpRequest object
	reqident = reqIdent;
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
		req.onreadystatechange = processReqChange;
		req.open("GET", url, true);
		req.send(null);
	// branch for IE/Windows ActiveX version
	} else if (window.ActiveXObject) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {}
		}
		if (req) {
			req.onreadystatechange = processReqChange;
			req.open("GET", url, true);
			req.send();
		}
	}
}

// handle AJAX post requests
function makePOSTRequest(url, parameters, reqIdent) {
  req = false;
  reqident = reqIdent;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
	 req = new XMLHttpRequest();
	 if (req.overrideMimeType) {
		req.overrideMimeType('text/xml');
	 }
  } else if (window.ActiveXObject) { // IE
	 try {
		req = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
		try {
		   req = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	 }
  }
  if (!req) {
	 return false;
  }
  
  req.onreadystatechange = processReqChange;
  req.open('POST', url, true);
  req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  req.setRequestHeader("Content-length", parameters.length);
  req.setRequestHeader("Connection", "close");
  req.send(parameters);
}

// handle AJAX post requests
function makeXMLRPCRequest(url, parameters, reqIdent, reqData, x) {
  req = false;
  reqident = reqIdent;
  reqdata = reqData;

  if (window.XMLHttpRequest) { // Mozilla, Safari,...
	 req = new XMLHttpRequest();
	 if (req.overrideMimeType) {
		req.overrideMimeType('text/xml');
	 }
  } else if (window.ActiveXObject) { // IE
	 try {
		req = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
		try {
		   req = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	 }
  }
  if (!req) {
	 return false;
  }
  
  req.onreadystatechange = processReqChange;
  req.open('POST', url, true);
  req.setRequestHeader("Content-type", "text/xml");
  req.setRequestHeader("Content-length", parameters.length);
  req.setRequestHeader("Connection", "close");
  req.send(parameters);
}

function ajaxFormSubmit(myform,reqident,referrerobj){
	var url = myform.url.value;
	var poststr;
	var content;
	var comma = /,/g; 
	var slash = /\//g;
	var plus = /\+/g;
	for(i=0;i<myform.elements.length;i++){
			content = escape(myform.elements[i].value).replace(comma,"%2C");
			content = content.replace(slash,"%2F");
			content = content.replace(plus,"%2B");
			poststr = (i==0) ? myform.elements[i].name + '=' + content : poststr + "&" + myform.elements[i].name + '=' + content;
	}


	try { 
		if(referrerobj){
			referrerobj.innerHTML='<div style="text-align: center;"><img width="16" height="16" src="../../../../img/common/loading16px1.gif" /></div>';
		}
	} catch(e) {
	}


	makePOSTRequest(url, poststr, reqident);
}


// retrieve text of an XML document element, including
// elements using namespaces
function getElementTextNS(local, parentElem, index) {
    var result = "";
    try {
    	result = parentElem.getElementsByTagName(local)[index];
		if (result) {
			// get text, accounting for possible
			// whitespace (carriage return) text nodes 
			if (result.childNodes.length > 1) {
				return result.childNodes[1].nodeValue;
			} else {
				return result.firstChild.nodeValue;    		
			}
		} else {
			return ""; // XXX
		}
    } catch(e) {
    	return "";
    }

}


function rotatePreloadedSection(obj,id,arrowparent,num,itemclass, visiblenum)
{
	var arr = new Array();
	if(typeof(cache.preloaded[id]) == 'undefined'){
		cache.preloaded[id] = new Object();
	}
	if(typeof(cache.preloaded[id].pre) == 'undefined'){
		cache.preloaded[id].pre = new Array();
	}
	if(typeof(cache.preloaded[id].post) == 'undefined'){
		cache.preloaded[id].post = new Array();
	}
	arr = itemclass.split(':');
	var tag = (arr[0] != '') ? arr[0] : 'div';
	var classname = (arr[1] != '') ? arr[1] : '-1';
	
	var parent = getObject(id);
	var allitems = parent.getElementsByTagName(tag);
	var items = new Array();
	
	var source = obj.src.split('_');
	var k = source.length - 2;
	var arrow_dir = source[k];
	var next_arrow = 'next';
	var prev_arrow = 'prev';
	if (arrow_dir.indexOf('2') > -1){
		next_arrow += '2';
		prev_arrow += '2';
		arrow_dir = arrow_dir.substring(0,arrow_dir.length-1);
	}
	
	if(classname != '-1'){
		for(i=0; i<allitems.length; i++){
			objClass = allitems[i].className.split(' ')[0];
			if(objClass == classname || objClass == classname + " hidden"){
				items.push(allitems[i]);
			} else {
//				alert(allitems[i].className);
			}
		}
	} else {
		items = allitems;
	}


	var direction = (arrow_dir == 'next') ? 'up' : 'dn';

	
	var lastindex = items.length - 1;
	if (direction == 'up'){
		for(i=0;i<num;i++){
			var first = items[i];
			var firstobj = parent.removeChild(first);
			cache.preloaded[id].pre.push(firstobj);
			if(cache.preloaded[id].post.length > 0){
				parent.appendChild(cache.preloaded[id].post.pop());
			}
		}
	} else {
		for(i=0;i<num;i++){
			if(cache.preloaded[id].pre.length > 0){
				var inserted = parent.insertBefore(cache.preloaded[id].pre.pop(), items[0]);
			}
		}
	}


	for (i=num; i<items.length; i++){
		if(direction == 'up'){
			var limit = visiblenum + num;
		} else {
			var limit = visiblenum - num;
		}
		if(i >= limit){
			showHideDiv(items[i], 'hide');
		} else {
			showHideDiv(items[i], 'show');
		}
	}

	
	if(items.length <= 6){
		swapPageArrows(arrowparent,next_arrow,'off','');
	} else {
		swapPageArrows(arrowparent, next_arrow, 'on', "rotatePreloadedSection(this.getElementsByTagName('img')[0],'"+id+"','"+arrowparent+"',"+num+",'"+itemclass+"',"+visiblenum+");");			
	}
	
	if(cache.preloaded[id].pre.length > 0){
		swapPageArrows(arrowparent, prev_arrow, 'on', "rotatePreloadedSection(this.getElementsByTagName('img')[0],'"+id+"','"+arrowparent+"',"+num+",'"+itemclass+"',"+visiblenum+");");		
	} else {
		swapPageArrows(arrowparent,prev_arrow,'off','');
	}

	if(direction == 'dn'){
		swapPageArrows(arrowparent, next_arrow, 'on', "rotatePreloadedSection(this.getElementsByTagName('img')[0],'"+id+"','"+arrowparent+"',"+num+",'"+itemclass+"',"+visiblenum+");");					
	}
}

function swapPageArrows(parentitem,arrow,state,clickevent){
	var arrowsobj = document.getElementById(parentitem + 'Arrows');
	var imgs = arrowsobj.getElementsByTagName('img');
//	alert(parentitem + "\n" + arrow + "\n" + state + "\n" + clickevent);
	var needslink = false;
	var arrowclass = (arrow == 'prev2' || arrow == 'next2') ? arrow.slice(0,-1) : arrow;
//	alert(arrowclass + "\n" + arrow + "\n" + state + "\n" + clickevent);
	for(i = 0; i < imgs.length; i++){
		if(imgs[i].className == 'arrow_'+arrowclass){
			if(imgs[i].src != '../../../../img/buttons/button_'+arrow+'_'+state+'.gif'){
				imgs[i].src = '../../../../img/buttons/button_'+arrow+'_'+state+'.gif';				
				if(imgs[i].parentNode.tagName != 'A'){
					needslink = true;
				} else if (state == 'off'){
					imgs[i].parentNode.onclick = function() { return false; };
					imgs[i].parentNode.onmouseover = null;
					imgs[i].parentNode.onmouseout = null;
				} else {
					while(clickevent.indexOf('return false;') > -1){
						clickevent = clickevent.replace('return false;','');
					}
					while(clickevent.indexOf('return (false);') > -1){
						clickevent = clickevent.replace('return (false);','');
					}
					imgs[i].parentNode.onclick = function() { eval(clickevent); return false; }
					imgs[i].parentNode.onmouseover = function() { displayArrowMouseOver(this) };
					imgs[i].parentNode.onmouseout = function() { displayArrowMouseOut(this) };					
				}
			}
		}
	}
	if(needslink === true){
		var linkobj = document.createElement('a');
		linkobj.href = '#';
		linkobj.onclick = function() { eval(clickevent); return false; }
		linkobj.onmouseover = function() { displayArrowMouseOver(this) };
		linkobj.onmouseout = function() { displayArrowMouseOut(this) };
		var nextimg = arrowsobj.removeChild(arrowsobj.lastChild);
		var previmg = arrowsobj.removeChild(arrowsobj.lastChild);
		if(arrowclass == 'prev'){
//			alert(arrowsobj.id + "\n\n" + linkobj.onclick + "\n\n" + clickevent + "\n\n" + arrow);
			linkobj.appendChild(previmg);
			arrowsobj.appendChild(linkobj);
			arrowsobj.appendChild(nextimg);
		} else if (arrowclass == 'next') {
			linkobj.appendChild(nextimg);
			arrowsobj.appendChild(previmg);
			arrowsobj.appendChild(linkobj);
		} else if (arrowclass == 'lgprev'){
			linkobj.appendChild(previmg);
			arrowsobj.appendChild(nextimg);
			arrowsobj.appendChild(linkobj);
		} else if (arrowclass == 'lgnext'){
			linkobj.appendChild(nextimg);
			arrowsobj.appendChild(linkobj);
			arrowsobj.appendChild(previmg);
		}
	}
}

function changePageNumbersBar (parent,newpage,pghref,pgonclick){

	var obj = getObject(parent);
	var listbar = obj.childNodes[1];
	var children = listbar.childNodes;
	for(i=0;i<children.length;i++){
		if(children[i].className == 'pageList'){
			pagelist = children[i].childNodes;
			pagelist_obj = children[i];
			i=children.length;
		}
	}

	for(i=0;i<pagelist.length;i++){
		if (pagelist[i].tagName == 'SPAN'){
			var nextChild = pagelist[i].nextSibling;
			var oldpage = pagelist[i].innerHTML;
			pagelist_obj.removeChild(pagelist[i]);
			var oldpageobj = document.createElement('a');
			oldpageobj.setAttribute('href', pghref);
			oldpageobj.setAttribute('onclick', pgonclick);
			oldpageobj_content = document.createTextNode(oldpage);
			oldpageobj.appendChild(oldpageobj_content);
			pagelist_obj.insertBefore(oldpageobj,nextChild);
		}
		if (pagelist[i].innerHTML == newpage){
			var nextChild = pagelist[i].nextSibling;
			pagelist_obj.removeChild(pagelist[i]);
			var pageobj = document.createElement('span');
			pageobj.className = 'thisPage';
			pageobj_content = document.createTextNode(newpage);
			pageobj.appendChild(pageobj_content);
			pagelist_obj.insertBefore(pageobj,nextChild);
			
			
		}
		//alert(i + "\n\n" + pagelist[i].tagName + "\n\n" + pagelist[i].innerHTML);	

	}
	
}


function xmlPageArrows(parentitem,classnames,moreitems,itemtag,xmlparent,code,features,featurecode,posteachcode,noreplacedata){
	var start = getElementTextNS('startNum',req.responseXML,0);
	var length = getElementTextNS('lengthNum',req.responseXML,0);
	var page = getElementTextNS('page',req.responseXML,0);
	var last_page = getElementTextNS('last_page',req.responseXML,0);
	if(typeof features == 'undefined'){
		var features = 0;
	}
	if(typeof noreplacedata == 'undefined'){
		var noreplacedata = false;
	}
	var replace_data = (noreplacedata) ? false : true;
	
	var wayprevstart = parseInt(start) - (2 * parseInt(length));
	var prevstart = parseInt(start) - parseInt(length);
	if (prevstart < 0) { 
		prevstart = 0;
	}
	var nextstart = parseInt(start) + parseInt(length);
	var waynextstart = nextstart + parseInt(length);
	var arrowsobj = document.getElementById(parentitem + 'Arrows');

	var haveAll = false;
	var havePrev = false;
	var haveNext = false;
	var allObj;
	var prevHref;
	var prevOnclick;
	var prevObj;
	var nextObj;
	var arrowkids = arrowsobj.getElementsByTagName('img');
	for (i=0; i<arrowkids.length; i++){
		if(arrowkids[i].className == 'arrow_all'){
			if(haveAll){
				if(arrowkids[i].parentNode != arrowsobj){
					var removed = arrowsobj.removeChild(arrowkids[i].parentNode);
					i--;
				} else {
					var removed = arrowsobj.removeChild(arrowkids[i]);	
					i--;
				}	
			} else {
				allObj = arrowkids[i];
				haveAll = true;
			}
		} else if(arrowkids[i].className == 'arrow_prev'){
			if(havePrev){
				if(arrowkids[i].parentNode != arrowsobj){
					var removed = arrowsobj.removeChild(arrowkids[i].parentNode);
					i--;
				} else {
					var removed = arrowsobj.removeChild(arrowkids[i]);	
					i--;
				}	
			} else {
				prevObj = arrowkids[i];
				havePrev = true;
			}
		} else if(arrowkids[i].className == 'arrow_next'){
			if(haveNext){
				if(arrowkids[i].parentNode != arrowsobj){
					var removed = arrowsobj.removeChild(arrowkids[i].parentNode);
					i--;
				} else {
					var removed = arrowsobj.removeChild(arrowkids[i]);	
					i--;
				}	
			} else {
				nextObj = arrowkids[i];
				haveNext = true;
			}
		}
	}

	if(nextObj.parentNode.tagName == 'A'){
		nextObj = nextObj.parentNode;
	}

	if(prevObj.parentNode.tagName == 'A'){
		prevObj = prevObj.parentNode;
	}
	
	if(haveAll){
		if(allObj.parentNode.tagName == 'A'){
			allObj = allObj.parentNode;
		}
	}
	
	var nextclick = nextObj.onclick.toString();
	var prevclick = false;
	var prevarrowtype;
	var nextarrowtype;
	if(prevObj.tagName == 'A'){
		prevclick = prevObj.onclick.toString();
		prevarrowtype = (prevObj.getElementsByTagName('img')[0].getAttribute('src').indexOf('prev2') > 0) ? 'prev2' : 'prev';
	} else {
		prevarrowtype = (prevObj.src.indexOf('prev2') > 0) ? 'prev2' : 'prev';
	}
	nextarrowtype = prevarrowtype.replace('prev','next');
	
	//nextclick = nextclick.replace('../../../../'+start, '../../../../'+nextstart);
	
	if(parseInt(start) == 0){
		swapPageArrows(parentitem,prevarrowtype,'off','');
	} else {
		//if we want to use an onclick method other than loadDoc, the two instances in here where that's mentioned will have to be rewritten
		var nextendchar = (nextclick.indexOf('}') > 0) ? nextclick.indexOf('}') : '';
		var nextstartchar = (nextclick.indexOf('{') > 0) ? nextclick.indexOf('{') : 0;
		if(endchar > 0) { 
			nextclick = nextclick.substring(nextstartchar, nextendchar);
		}
		if(nextclick.indexOf('clickevent') > -1 || nextclick.indexOf('return') == 17 || nextclick.indexOf('return') == 13){
			nextclick = nextObj.name;
		}
		if(prevclick == false || prevclick.indexOf('loadDoc') < 0){
			prevclick = nextclick;
		}
		prevclick = prevclick.replace('return false;','');
		prevclick = prevclick.replace('return(false);','');
		prevclick = prevclick.replace('../../../../'+start+'../../../../default.htm', '../../../../'+prevstart+'../../../../'); 
		prevclick = prevclick.replace('../../../../'+wayprevstart+'../../../../default.htm', '../../../../'+prevstart+'../../../../'); 
		prevclick = prevclick.replace('../../../../'+waynextstart+'../../../../default.htm', '../../../../'+prevstart+'../../../../'); 
		prevclick = prevclick.replace('../../../../'+nextstart+'../../../../default.htm', '../../../../'+prevstart+'../../../../'); 
		prevclick = prevclick.replace('../../../../'+prevstart+'../../../../'+prevstart+'../../../../default.htm','../../../../'+prevstart+'../../../../'+moreitems+'../../../../');
		var endchar = (prevclick.indexOf('return') > -1) ? prevclick.indexOf('return') : prevclick.indexOf('}');
		if((prevclick.indexOf('loadDoc') > 0) && (endchar > 0)) { 
			prevclick = prevclick.substring(prevclick.indexOf('loadDoc'), endchar);
		}
		swapPageArrows(parentitem,prevarrowtype,'on',prevclick);
	}

	if(nextclick.indexOf('clickevent') > -1 || nextclick.indexOf('return') == 17 || nextclick.indexOf('return') == 13){
		//nextclick.indexOf('return') will equal 17 in Safari and 13 in IE when we need to swap
		nextclick = nextObj.name;
	}
	nextclick = nextclick.replace('return false;','');
	nextclick = nextclick.replace('return(false);','');
	nextclick = nextclick.replace('../../../../'+waynextstart+'../../../../default.htm', '../../../../'+nextstart+'../../../../');
	nextclick = nextclick.replace('../../../../'+start+'../../../../default.htm', '../../../../'+nextstart+'../../../../');
	nextclick = nextclick.replace('../../../../'+nextstart+'../../../../'+nextstart+'../../../../default.htm', '../../../../'+nextstart+'../../../../'+moreitems+'../../../../');
	var endchar = (nextclick.indexOf('}') > 0) ? nextclick.indexOf('}') : '';
	if((nextclick.indexOf('loadDoc') > 0) && (endchar > 0)) { 
		nextclick = nextclick.substring(nextclick.indexOf('loadDoc'), endchar);
	}
	if(parseInt(last_page) == parseInt(page)){
/*
		if(nextObj.name == ''){
			nextObj.setAttribute("name",nextclick);
		}
*/
		swapPageArrows(parentitem,nextarrowtype,'off','');
	} else {
/*
		nextObj.setAttribute("name",nextclick);
*/
		swapPageArrows(parentitem,nextarrowtype,'on',nextclick);
	}
	if(replace_data){
	
		// IF WE DON'T CLONE THERE'S NASTY JUMPING AROUND THE SCREEN
		var parent = document.getElementById(parentitem);
		var clone = parent.cloneNode(true);
		var children = clone.getElementsByTagName(itemtag);
		for(i=0;i<children.length;i++){
			if (children[i].className.indexOf(classnames[0])==0){
				var doomed = children[i];
				var thisparent = doomed.parentNode;
				var removed = thisparent.removeChild(doomed);
				i--;
			} 
		}
		var newstuff = req.responseXML.getElementsByTagName(xmlparent);
		var html = clone.innerHTML;
		for(i=0;i<newstuff.length;i++){
			if (!newstuff[i].childNodes.length)
				continue;
			var newchild = newstuff[i];
			if(features && (i < features)){
				var newcode = eval(featurecode);
			} else {
				var newcode = eval(code);
			}
			html = html + newcode;
			if(posteachcode) {
				html = html + posteachcode;
			}
		}
	
		parent.innerHTML = html;
	
		return false;
	} else {
		return true;
	}
}

function xmlNewPage(parentitem,classnames,itemtag,xmlparent,code,postcode){
	var parent = document.getElementById(parentitem);
	var children = parent.getElementsByTagName(itemtag);
	for(i=0;i<children.length;i++){
		if ((children[i].className.indexOf(classnames[0])==0) || (children[i].className.indexOf(classnames[1])==0)){
			var doomed = children[i];
			var thisparent = doomed.parentNode;
			var removed = thisparent.removeChild(doomed);
			i--;
		} 
	}
	var newstuff = req.responseXML.getElementsByTagName(xmlparent);
	var html = parent.innerHTML;
	for(i=0;i<newstuff.length;i++){
		var newchild = newstuff[i];
		var newcode = eval(code);
		if(i==1){
			//alert(postcode);
		}
		html = html + newcode;
		if(postcode) {
			html = html + postcode;
		}
	}
	parent.innerHTML = html;
	
	Behaviour.apply();
}

// COMMENT FUNCTIONS
function commentHandler(){
	var functionName = getElementTextNS('handler',req.responseXML,0);
	eval(functionName+'()');
}

function commentError(){
	var commentid = getElementTextNS('comment_id',req.responseXML,0);
	var error = getElementTextNS('errorString',req.responseXML,0);
	try {
		if(commentid){
			displayCommentMessage(commentid,error);
		}
	} catch(e){
		//alert(req.responseText);
	}
}

function displayCommentLoading(commentid) {
	var commentcontent = document.getElementById('commentContent' + commentid);
	var commentmessage = document.getElementById('commentMsg' + commentid);

	commentmessage.innerHTML = '<div style="text-align: center;"><img width="16" height="16" src="../../../../img/common/loading16px1.gif" /></div>';

	commentcontent.style.display = "none";
	commentmessage.style.display = "block";
}

function displayCommentMessage(commentid,msg) {
	var commentMessage = document.getElementById('commentMsg'+commentid);
	commentMessage.style.display = 'block';
	commentMessage.innerHTML = '<div class="quote">' + msg + '</div>';
}
function hideCommentMessage(commentid) {
	var commentMessage = document.getElementById('commentMsg'+commentid);
	commentMessage.style.display = 'none';
}
function displayCommentFormMessage(commentid,msg) {
	var commentMessage = document.getElementById('commentFormMsg'+commentid);
	var faq = document.getElementById('commentFormFAQ'+commentid);
	commentMessage.style.display = 'block';
	faq.style.display = 'none';
	commentMessage.innerHTML = msg;
}
function hideCommentFormMessage(commentid) {
	var commentMessage = document.getElementById('commentFormMsg'+commentid);
	var faq = document.getElementById('commentFormFAQ'+commentid);
	commentMessage.style.display = 'none';
	faq.style.display = 'block';	
}
function unhideCommentContent(commentid){
	var commentcontent = document.getElementById('commentContent' + commentid);
	commentcontent.style.display = "block";
}

function commentReset(commentid){
	var commentcontent = document.getElementById('commentContent' + commentid);
	commentcontent.style.display = "block";
	var commentmessage = document.getElementById('commentMsg' + commentid);
	commentmessage.style.display = "none";

	var commentfunctions = document.getElementById('commentFunctions' + commentid);
	commentfunctions.style.display = "block";
	var commentcancel = document.getElementById('commentCancelFunctions' + commentid);
	commentcancel.style.display = "none";
}

function commentsCheck(){
	var commentid = getElementTextNS('comment_id',req.responseXML,0);
	var commentidnum = getElementTextNS('comment_numid',req.responseXML,0);	
	var commentForm = getElementTextNS('commentForm',req.responseXML,0);			
	var secs_left = getElementTextNS('seconds',req.responseXML,0);	
	var is_admin = getElementTextNS('is_admin',req.responseXML,0);	
	
	if (secs_left < 1){
		displayCommentMessage(commentidnum,'You time to edit this comment has expired.');
		unhideCommentContent(commentidnum);
		return false;
	}
	
	var section = getElementTextNS('section',req.responseXML,0);		
	var success = getElementTextNS('success',req.responseXML,0);	
	var content = getElementTextNS('content',req.responseXML,0);
	var mins_left = Math.floor(secs_left / 60);
	var word = mins_left==1 ? 'MINUTE' : 'MINUTES';
	var num_left = mins_left;
	if (mins_left < 1){
		var word = secs_left==1 ? 'SECOND' : 'SECONDS';
		num_left = secs_left;
	}

	// switch comment functions
	var commentfunctions = document.getElementById('commentFunctions' + commentidnum);
	commentfunctions.style.display = "none";
	var commentcancel = document.getElementById('commentCancelFunctions' + commentidnum);
	commentcancel.style.display = "block";
	
	var commentobj = document.getElementById('commentMsg'+commentidnum);
	commentobj.innerHTML = commentForm;
	commentobj.style.display = "block";
	
	if(section == 'reviews'){
		showHeartsEditForm(commentid);
	}
	
	var textarea = commentobj.getElementsByTagName('textarea');
//	textarea[0].defaultValue = content;
	textarea[0].value = content;
	
	if (is_admin == 0)
	{
		displayCommentFormMessage(commentidnum,num_left+' '+word+' LEFT TO EDIT');
	}
}
function initCommentEdit(section,commentidnum){
	displayCommentLoading(commentidnum);
	loadDoc('../../../../xml/comments/check/'+section+'../../../../'+commentidnum+'../../../../default.htm',100);
}
function initCommentReply(section,commentidnum){
	displayCommentLoading(commentidnum);
	loadDoc('../../../../xml/comments/get/'+section+'../../../../'+commentidnum+'/setupCommentReply',100);
}
function initCommentDelete(section,commentidnum){
	if (confirm('Are you sure you want to delete this comment?')) {
		loadDoc('../../../../xml/comments/delete/'+section+'../../../../'+commentidnum+'../../../../default.htm',100);
	}
}

function setupCommentReply(){
	var section = getElementTextNS('section',req.responseXML,0);		
	var success = getElementTextNS('success',req.responseXML,0);	
	var content = getElementTextNS('content',req.responseXML,0);
	var alias = getElementTextNS('alias',req.responseXML,0);	
		
	var commentid = getElementTextNS('comment_id',req.responseXML,0);
	var commentidnum = getElementTextNS('comment_numid',req.responseXML,0);	
	var commentForm = getElementTextNS('commentForm',req.responseXML,0);			
		
	// switch comment functions
	var commentfunctions = document.getElementById('commentFunctions' + commentidnum);
	commentfunctions.style.display = "none";
	var commentcancel = document.getElementById('commentCancelFunctions' + commentidnum);
	commentcancel.style.display = "block";
	
	var commentobj = document.getElementById('commentMsg'+commentidnum);
	var originalcomment = document.getElementById('commentContent'+commentidnum);	
	var htmlcontent = originalcomment.innerHTML;
		
	commentobj.innerHTML = commentForm + '<div class="commentFormMessage">ORIGINAL COMMENT:</div><div class="message"><div class="quotedComment">'+htmlcontent+'</div></div>';

	var faq = document.getElementById('commentFormFAQ'+commentidnum);
	if (faq)
		faq.style.display = 'none';	

	commentobj.style.display = "block";
	
	var textarea = commentobj.getElementsByTagName('textarea');
	
//	textarea[0].defaultValue = '[QUOTE][MEMBER=' + alias + '] said:\n' + content + '[/QUOTE]\n\n';
	textarea[0].value = '[QUOTE][MEMBER=' + alias + '] said:\n' + content + '[/QUOTE]\n\n';

}

function commentsAdd(){
 	var comment_url = getElementTextNS('comment_url',req.responseXML,0);
 	var msg = document.getElementById('addCommentMsg');
 	showHideDiv('addCommentMsg','show');

	document.REPLIER.content.value='';
	msg.innerHTML = '<p class="success">Your comment has been added. <a href="'+comment_url+'">Click here</a> to read it.</p>';
}

function commentsReply(){
	var redirect = getElementTextNS('comment_url',req.responseXML,0);
	var fullurl = 'http://'+location.hostname+redirect;
	window.location.replace(fullurl);
}

function commentsEdit(){	
	var commentid = getElementTextNS('comment_numid',req.responseXML,0);	
	var content = getElementTextNS('content',req.responseXML,0);
	
	var commentcontent = document.getElementById('commentContent' + commentid);
	commentcontent.innerHTML = content;

	commentReset(commentid);
}

function commentsDelete(){	
	var commentid = getElementTextNS('comment_id',req.responseXML,0);	
	var comment = document.getElementById(commentid);
	if (comment)
		comment.style.display = "none";
}

// TOPICS FUNCTIONS
function topicEditMode(){
	var div = document.getElementById('thread');
	var topics = div.getElementsByTagName('div');
	for(i=0;i<topics.length;i++){
		if (topics[i].className=='title') {
			toggleDiv(topics[i]);
		}
	}
	var editButton = document.getElementById('editButton');
	var links = editButton.getElementsByTagName('a');
	if (links[0].innerHTML.indexOf('edit')==-1){
		links[0].innerHTML = '<img src="../../../../img/buttons/button_edit.gif" width="32" height="18" alt="EDIT TOPIC" />';
	} else {
		links[0].innerHTML = '<img src="../../../../img/buttons/cancel.gif" width="43" height="18" alt="CANCEL" />';
	}
}
function saveTopic(where, topic){
	var id = topic.substring(5);
	var div = document.getElementById(topic);
	var links = div.getElementsByTagName('a');
	links[0].innerHTML = '<img width="16" height="16" src="../../../../img/common/loading16px1.gif" />';
	var inputs = div.getElementsByTagName('input');
	var values = new Array();
	for(j=0;j<inputs.length;j++){
		if (!inputs[j].value) {
			values.push('0');
		} else {
			if (inputs[j].type=='checkbox') {
				if (inputs[j].checked) {
					values.push(escape(inputs[j].value));
				} else {
					values.push('0');
				}
			} else {
				values.push(escape(inputs[j].value));
			}
		}
	}
	var selects = div.getElementsByTagName('select');
	if (selects && selects.length) {
		values.push(escape(selects[0].value));
	}
	var args = values.join('../../../../');
	loadDoc('../../../../xml/topics/edit/'+where+'../../../../'+id+'../../../../'+args+'../../../../default.htm',100);
}

function topicsError(){
	var where = getElementTextNS('where',req.responseXML,0);
	var topicid = getElementTextNS('topic_id',req.responseXML,0);
	var error = getElementTextNS('errorString',req.responseXML,0);
	
	var id = 'topic' + topicid;
	
	try {
		if(id){
			displayTopicsMessage(id,error);
		}
	} catch(e){
		//alert(req.responseText);
	}
}

function displayTopicsMessage(topic,error) {
	var div = document.getElementById(topic);
	var divs = div.getElementsByTagName('div');
	var seen;
	for(i=0;i<divs.length;i++){
		if(divs[i].className == 'save'){
			if (seen) {
				divs[i].innerHTML = '';
			} else {
				divs[i].innerHTML = '<p class="error">' + error + '</p>';
				seen=1;
			}
		}
	}
}

function handleTopicsEdit(){
	var topicid = getElementTextNS('topic_id',req.responseXML,0);
	var topic = getElementTextNS('topic',req.responseXML,0);
	var closed = getElementTextNS('closed',req.responseXML,0);
	var id = 'topic' + topicid;
	
	var div = document.getElementById(id);
	var inputs = div.getElementsByTagName('input');
	inputs[0].value = topic;
	
	var links = div.getElementsByTagName('a');
	links[0].innerHTML = '<img src="../../../../img/buttons/save.gif" width="34" height="18" alt="SAVE TOPIC" />';
	
	var thread = document.getElementById('thread');
	
	var header1 = thread.getElementsByTagName('h1');
	var headerlinks = header1[0].getElementsByTagName('a');
	headerlinks[0].innerHTML = topic;

	var button = document.getElementById('addCommentButton');
	
	if (closed && closed=='y') {
		button.innerHTML = '<img src="../../../../img/buttons/topic_closed.gif" width="68" height="18" alt="TOPIC CLOSED"/>';
	} else {
		button.innerHTML = '<a href="#addComment"><img src="../../../../img/buttons/button_add_comment.gif" width="76" height="18" alt="ADD A COMMENT"/></a>';
	}
	
	topicEditMode();
	
}

// PICS FUNCTIONS
function picsEditMode(){
	var div = document.getElementById('thumbs');
	var pics = div.getElementsByTagName('div');
	for(i=0;i<pics.length;i++){
		if (pics[i].className=='controlStrip') {
			toggleDiv(pics[i]);
		}
		if (pics[i].className=='control') {
			toggleDiv(pics[i]);
		}
		if (pics[i].className=='title') {
			toggleDiv(pics[i]);
		}
		if (pics[i].className=='editPic') {
			toggleDiv(pics[i]);
		}
		if (pics[i].className=='pic') {
			var this_pic = pics[i].getElementsByTagName('div');
			for(j=0;j<this_pic.length;j++){
				if (this_pic[j].className=='options') {
					pics[i].className = 'pic edit';
					break;
				}
			}
		}
		else if (pics[i].className=='pic edit') {
			pics[i].className = 'pic';
		}
	}
}
function myPicsEditMode(){
	var div = document.getElementById('thumbs');
	var pics = div.getElementsByTagName('div');
	for(i=0;i<pics.length;i++){
		if (pics[i].className=='control') {
			toggleDiv(pics[i]);
		}
		if (pics[i].className=='editPic') {
			toggleDiv(pics[i]);
		}
		if (pics[i].className=='pic') {
			var this_pic = pics[i].getElementsByTagName('div');
			for(j=0;j<this_pic.length;j++){
				if (this_pic[j].className=='options') {
					pics[i].className = 'pic edit';
					break;
				}
			}
		}
		else if (pics[i].className=='pic edit') {
			pics[i].className = 'pic';
		}
	}
}

function picHandler(){
	var functionName = getElementTextNS('handler',req.responseXML,0);
	eval(functionName+'()');
}

function editPic(pic){
	var picobj = document.getElementById(pic);
	var picobj_contents = picobj.getElementsByTagName('div');
	for(i=0;i<picobj_contents.length;i++){
		if(picobj_contents[i].className == 'options'){
			toggleDiv(picobj_contents[i]);
		}
		if(picobj_contents[i].className == 'info'){
			toggleDiv(picobj_contents[i]);
		}
	}
}
function cancelEditPic(pic){
	var picobj = document.getElementById(pic);
	var picobj_contents = picobj.getElementsByTagName('div');
	for(i=0;i<picobj_contents.length;i++){
		if(picobj_contents[i].className == 'options'){
			toggleDiv(picobj_contents[i]);
		}
		if(picobj_contents[i].className == 'info'){
			var infodiv = picobj_contents[i];
			var inputs = infodiv.getElementsByTagName('input');
			if (inputs && inputs.length>=1) {
				infodiv.style.display = 'none';
			} else {
				infodiv.style.display = 'block';
			}
		}
	}
}

function savePic(where, pic){
	var id = pic.substring(3);
	var div = document.getElementById(pic);
	var links = div.getElementsByTagName('a');
	links[links.length-1].innerHTML = '<img width="16" height="16" src="../../../../img/common/loading16px1.gif" />';
	var inputs = div.getElementsByTagName('input');
	var str = escape(inputs[0].value);
	loadDoc('../../../../xml/pics/edit/'+where+'../../../../'+id+'../../../../'+str+'../../../../default.htm',200);
}
function deletePic(where, pic){
	var id = pic.substring(3);
	if(confirm("Are you sure you want to remove this pic?")){
		var div = document.getElementById(pic);
		
		var picobj_contents = div.getElementsByTagName('div');
		for(i=0;i<picobj_contents.length;i++){
			if(picobj_contents[i].className == 'options'){
				toggleDiv(picobj_contents[i]);
			}
		}
		
		var links = div.getElementsByTagName('a');
		links[3].innerHTML = '<img width="16" height="16" src="../../../../img/common/loading16px1.gif" />';
		loadDoc('../../../../xml/pics/delete/'+where+'../../../../'+id+'../../../../default.htm',200);
	}
}

function picsError(){
	var where = getElementTextNS('where',req.responseXML,0);
	var imageid = getElementTextNS('image_id',req.responseXML,0);
	var error = getElementTextNS('errorString',req.responseXML,0);
	
	var id = 'pic' + imageid;
	
	try {
		if(id){
			displayPicsMessage(id,error);
		}
	} catch(e){
		//alert(req.responseText);
	}
}

function handlePicsEdit(){
	var imageid = getElementTextNS('image_id',req.responseXML,0);
	var caption = getElementTextNS('caption',req.responseXML,0);
	var id = 'pic' + imageid;
	
	var div = document.getElementById(id);
	div.title = caption;
	var inputs = div.getElementsByTagName('input');
	inputs[0].value = caption;
	
	var headers = div.getElementsByTagName('h1');
	headers[0].innerHTML = caption;

	var links = div.getElementsByTagName('a');
	links[links.length-1].innerHTML = '<img src="../../../../img/buttons/save.gif" width="34" height="18" alt="SAVE CAPTION" />';
	editPic(id);
}

function handlePicsDelete(){
	var imageid = getElementTextNS('image_id',req.responseXML,0);
	var id = 'pic' + imageid;
	
	var picobj = document.getElementById(id);
	picobj.style.display = "none";
	
	var count = 0;
	
	var thumbs_div = document.getElementById('thumbs');
	if (thumbs_div){
		var thumbs = thumbs_div.getElementsByTagName('div');
		for (i=0; i<thumbs.length; i++) {
			if ((thumbs[i].className.indexOf('pic')==0) && thumbs[i].style.display!='none') {
				count++;
			}
		}
	}
		
	if (count == 0) {
		var redirect;
		var pics = location.pathname.indexOf('/pics/');
		if (pics==-1) {
			redirect = '../../../../albums/default.htm';
		} else {
			var member_url = location.pathname.substr(0, pics);
			redirect = member_url + '../../../../pics/default.htm';
		}
		var fullurl = 'http://'+location.hostname+redirect;
		window.location.replace(fullurl);
	}
}

function displayPicsMessage(pic, error){
	var div = document.getElementById(pic);
	var divs = div.getElementsByTagName('div');
	for(i=0;i<divs.length;i++){
		if(divs[i].className == 'options' && divs[i].style.display == 'block'){
			var nav = divs[i].getElementsByTagName('div');
			for(j=0;j<nav.length;j++){
				if(nav[j].className == 'select'){
					nav[j].innerHTML = '<p class="error">' + error + '</p>';
				}
				if(nav[j].className == 'icons') {
					nav[j].innerHTML = '<a href="#" onclick="cancelEditPic(\''+ pic +'\');return(false);"><img src="../../../../img/buttons/close_mini_grey.gif" height="17" width="17" alt="CANCEL" /></a>';
				}
			}
		}
	}
}

function saveAlbum(where, album){
	var id = album.substring(5);
	var div = document.getElementById(album);
	var links = div.getElementsByTagName('a');
	links[0].innerHTML = '<img width="16" height="16" src="../../../../img/common/loading16px1.gif" />';
	
	var inputs = div.getElementsByTagName('input');
	var title = escape(inputs[0].value);
	var description = escape(inputs[1].value);
	for (i=2;i<inputs.length;i++) {
		if (inputs[i].checked != false) {
			var priv = escape(inputs[i].value);
		}
	}
	loadDoc('../../../../xml/albums/edit/'+where+'../../../../'+id+'../../../../'+title+'../../../../'+description+'../../../../'+priv+'../../../../default.htm',200);
}
function handleAlbumsEdit(){
	var albumid = getElementTextNS('album_id',req.responseXML,0);
	var title = getElementTextNS('title',req.responseXML,0);
	var description = getElementTextNS('description',req.responseXML,0);
	var id = 'album' + albumid;
	
	var div = document.getElementById(id);
	div.title = title;
	var inputs = div.getElementsByTagName('input');
	inputs[0].value = title;
	inputs[1].value = description;
	
	var links = div.getElementsByTagName('a');
	links[0].innerHTML = '<img src="../../../../img/buttons/save.gif" width="34" height="18" alt="SAVE ALBUM" />';
	
	var thumbs = document.getElementById('thumbs');
	
	var header1 = thumbs.getElementsByTagName('h1');
	header1[0].innerHTML = title;

	var header2 = thumbs.getElementsByTagName('h2');
	header2[0].innerHTML = description;
	
	picsEditMode();
}

function albumsError(){
	var where = getElementTextNS('where',req.responseXML,0);
	var albumid = getElementTextNS('album_id',req.responseXML,0);
	var error = getElementTextNS('errorString',req.responseXML,0);
	
	var id = 'album' + albumid;
	
	try {
		if(id){
			displayAlbumsMessage(id,error);
		}
	} catch(e){
		//alert(req.responseText);
	}
}

function displayAlbumsMessage(album, error){
	var div = document.getElementById(album);
	var divs = div.getElementsByTagName('div');
	var seen;
	for(i=0;i<divs.length;i++){
		if(divs[i].className == 'save'){
			if (seen) {
				divs[i].innerHTML = '';
			} else {
				divs[i].innerHTML = '<p class="error">' + error + '</p>';
				seen=1;
			}
		}
	}
}

function stripHTML(content){
	var re = /<\S[^>]*>/g; 
	content = content.replace(re,""); 
	return content;
}

function createCookie(name,value,days)
{
	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name)
{
	createCookie(name,"",-1);
}

function moveObject(obj,e,offsetx,offsety) {
	try {
		if(obj.parentNode){
			//it's an object. we needn't do anything
		} else {
			//it's not an object
			obj = document.getElementById(obj);
		}
	} catch(e) {
		//it's not an object and the browser errors on undefined properties
		obj = document.getElementById(obj);
	}
	if (obj==null) return;
	var tempX = 0;
	var tempY = 0;
//	if (document.all) {
//		tempX = event.clientX + document.body.scrollLeft;
//		tempY = event.clientY + document.body.scrollTop;
//	} else {
		tempX = e.pageX;
		tempY = e.pageY;
//	}
	if (tempX < 0){tempX = 0}
	if (tempY < 0){tempY = 0}
	obj.style.top  = (tempY + offsety) + 'px';
	obj.style.left = (tempX + offsetx) + 'px';
	showHideDiv(obj,'show');
}


function setIdProperty( id, property, value )
{
    if (document.getElementById)
    {
        var styleObject = document.getElementById( id );
        if (styleObject != null)
        {
            styleObject = styleObject.style;
            styleObject[ property ] = value;
        }
    }
    else if (document.layers)
    {
        document[id][property] = value;
    }
    else if (document.all)
    {
         document.all[id].style[property] = value;
    }
}

function ObjByName(name){
  if (document.getElementById){
  	this.obj = document.getElementById(name);
	this.style = document.getElementById(name).style;
  }
  else if (document.all)
  {
	this.obj = document.all[name];
	this.style = document.all[name].style;
  }
  else if (document.layers)
  {
   	this.obj = document.layers[name];
   	this.style = document.layers[name];
  }
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}
//old functions

function insertSmilie(smilie, target)
{
	if (!target) 
	{
		target = 'insertTarget';
	}
	
	document.getElementById(target).value += ' ' + smilie + ' ';
	document.getElementById(target).focus();
	//return false;
}

function insertFormat(format, target)
{
	var insert = '';
	if (!target) 
	{
		target = 'insertTarget';
	}
	
	switch(format)
	{
		case 'url':
			var url = prompt("Enter the address of the web page you are linking", "http://");
			var title = prompt("Enter the title of the web page you are linking.  For example, if you entered http://suicidegirls.com, you might use 'SuicideGirls'.", "");
			insert = "[URL="+url+"]"+title+"[/URL]";
		break;
		
		case 'member':
			var member = prompt("Enter the name of the member", "");
			insert = "[MEMBER="+member+"]";	
		break;

		case 'email':
			var email = prompt("Enter the complete email address (someone@somewhere.com) that you wish to add.", "");
			insert = "[EMAIL]"+email+"[/EMAIL]";
		break;
			
		case 'image':
			var image = prompt("Enter the complete URL for the image you wish to display.", "http://");
			insert = "[IMG]"+image+"[/IMG]";	
		break;
				
		case 'bold':
			var bold = prompt("Enter the text that you wish to make bold.", "");
			insert = "[B]"+bold+"[/B]";
		break;
		
		case 'italics':
			var italics = prompt("Enter the text that you wish to italicize.", "");
			insert = "[I]"+italics+"[/I]";	
		break;	

		case 'spoiler':
			insert = "[SPOILER]\n\n[/SPOILER]";
		break;
					
		case 'quote':
			insert = "\n[QUOTE]\n\n[/QUOTE]";
		break;
				
		case 'code':
			insert = "\n[CODE]\n\n[/CODE]";	
		break;
		
		case 'liststart':
			insert = "\n[LIST]\n";
		break;	
		
		case 'listitem':
			var item = prompt("Enter the new list item.  Note that each list group must be preceeded by a List Start and the entire list group must end with a List End (in order to display properly).", "");
			insert = "[LISTITEM]"+item+"[/LISTITEM]";
		break;	
		
		case 'listend':
			insert = "\n[/LIST]\n";
		break;			

		case 'youtube':
			var url = prompt("Enter the address of the YouTube page containing the video you'd like to embed", "");
			if(url != null)
				insert = "[YOUTUBE]"+url+"[/YOUTUBE]";
		break;
	}
	document.getElementById(target).value += insert;
	document.getElementById(target).focus();			
}

function getCharDecValue(Hex){

	if(Hex == "A")
	Value = 10;
	else
	if(Hex == "B")
	Value = 11;
	else
	if(Hex == "C")
	Value = 12;
	else
	if(Hex == "D")
	Value = 13;
	else
	if(Hex == "E")
	Value = 14;
	else
	if(Hex == "F")
	Value = 15;
	else
	Value = eval(Hex);
	return Value;

}
function getCharHexValue(Dec){

	if(Dec == 10)
	Value = "A";
	else
	if(Dec == 11)
	Value = "B";
	else
	if(Dec == 12)
	Value = "C";
	else
	if(Dec == 13)
	Value = "D";
	else
	if(Dec == 14)
	Value = "E";
	else
	if(Dec == 15)
	Value = "F";
	else
	Value = "" + Dec;
	
	return Value;

}

function hexToRGB(hex){

	hex = hex.toUpperCase();
	
	a = getCharDecValue(hex.substring(0, 1));	
	b = getCharDecValue(hex.substring(1, 2));
	c = getCharDecValue(hex.substring(2, 3));
	d = getCharDecValue(hex.substring(3, 4));
	e = getCharDecValue(hex.substring(4, 5));
	f = getCharDecValue(hex.substring(5, 6));
	
	x = (a * 16) + b;
	y = (c * 16) + d;
	z = (e * 16) + f;
	
	var rgb = x + ',' + y + ',' + z;
	return rgb;
}

function rgbToHex(Red,Green,Blue){
	a = getCharHexValue(Math.floor(Red / 16));
	b = getCharHexValue(Red % 16);
	c = getCharHexValue(Math.floor(Green / 16));
	d = getCharHexValue(Green % 16);
	e = getCharHexValue(Math.floor(Blue / 16));
	f = getCharHexValue(Blue % 16);
	hex = a + b + c + d + e + f;
	return hex;
}

function popWindow(url,width,height)
{
	//default pos
	xposition = 0;
	yposition = 0;
	
	//center it
	if ((parseInt(navigator.appVersion) >= 4 ))
	{
		xposition = (screen.width - width) / 2;
		yposition = (screen.height - height) / 2;
	}
	
	args = "width=" + (width) + "," 
	+ "height=" + (height) + "," 
	+ "location=0," 
	+ "menubar=0,"
	+ "resizable=1,"
	+ "scrollbars=auto,"
	+ "status=1," 
	+ "titlebar=0,"
	+ "toolbar=0,"
	+ "hotkeys=0,"
	+ "left=" + xposition + ","
	+ "top=" + yposition;
	window.open(url,'sgPop' + Math.floor(Math.random()*1000000000),args);
}

function popWindowScroll(url,width,height)
{
	//default pos
	xposition = 0;
	yposition = 0;
	
	//center it
	if ((parseInt(navigator.appVersion) >= 4 ))
	{
		xposition = (screen.width - width) / 2;
		yposition = (screen.height - height) / 2;
	}
	
	args = "width=" + (width) + "," 
	+ "height=" + (height) + "," 
	+ "location=0," 
	+ "menubar=0,"
	+ "resizable=1,"
	+ "scrollbars=1,"
	+ "status=1," 
	+ "titlebar=0,"
	+ "toolbar=0,"
	+ "hotkeys=0,"
	+ "left=" + xposition + ","
	+ "top=" + yposition;
	window.open(url,'sgPop' + Math.floor(Math.random()*1000000000),args);
}

function popWindowNoScroll(url,width,height)
{
        //default pos
        xposition = 0;
        yposition = 0;

        //center it
        if ((parseInt(navigator.appVersion) >= 4 ))
        {
                xposition = (screen.width - width) / 2;
                yposition = (screen.height - height) / 2;
        }

        args = "width=" + (width) + ","
        + "height=" + (height) + ","
        + "location=0,"
        + "menubar=0,"
        + "resizable=1,"
        + "scrollbars=0,"
        + "status=1,"
        + "titlebar=0,"
        + "toolbar=0,"
        + "hotkeys=0,"
        + "left=" + xposition + ","
        + "top=" + yposition;
        window.open(url,'sgPop' + Math.floor(Math.random()*1000000000),args);
}

/*
 * opens link in parent window
 * for popups
 */
function main(url)
{
opener.location.href=url;
}

function changeTimezoneDropDown() {

	continentSelected  = document.forms.myForm.continent.options[document.forms.myForm.continent.selectedIndex].value;

    // build the region list
    regionArray  = region[continentSelected];
	regionidArray = regionid[continentSelected];
    destList        = document.forms.myForm.region.options;
    
    //empty the options list
    destList.length = 0;

    //populate region options list
    //first add dashes option
    destList[0] = new Option('PLEASE CHOOSE', '');

    //now populate with data set in above arrays
    for (loop = 0; loop < regionArray.length; loop++) {
        //because the 0th position contains dashes, we want option[1] = data[0], option[2] = data[1] and so on
        destList[loop + 1] = new Option(regionArray[loop], regionidArray[loop]);
    }

    //select the region if its in the list (recursively look through array) - we only need to do this if a region has been selected
    if (regionSelected) {
      for (i = 1; i < destList.length; i++){
          if(destList[i].value == regionSelected){
              destList.selectedIndex = i;
              break; //no need to keep looking through, now we're done
          }
      }
    }
}

function checkAll(theElement) {
	var theForm = theElement.form, z = 0;
	for(z=0; z<theForm.length;z++){
		if(theForm[z].type == 'checkbox') {
			if (theElement.value == 'Select All') {
				theForm[z].checked = true;
			} else {
				theForm[z].checked = false;
			}
		}
	}
	return true;
};

function confirmGeneric(url) {
	if (confirm('Woah there! Are you sure?')) {
		location.href = url;
	}
}

function confirmUnsubscribeEvent(url) {
	if (confirm('Are you sure you want to unsubscribe from this event?')) {
		location.href = url;
	}
}

function confirmDeleteEvent(url) {
	if (confirm('Are you sure you want to delete this event?')) {
		location.href = url;
	}
}

function confirmLink(url) {
	if (confirm('Are you sure you want to delete this message?')) {
		location.href = url;
	}
}

function confirmEndFriendship(url) {
	if (confirm('Are you sure you want to end this friendship?')) {
		location.href = url;
	}
}

function confirmIgnore(url) {
	if (confirm('Are you sure you want to ignore this person?')) {
		location.href = url;
	}
}

function confirmSpam(url) {
	if (confirm('Are you sure you want to mark this message as spam?')) {
		location.href = url;
	}
}
function confirmDeleteAlbum(url) {
        if (confirm('Are you sure you want to delete this entire album and every pic? THIS CANNOT BE REVERSED!')) {
                location.href = url;
        }
}

function confirmCloseAlbum(url) {
        if (confirm('Are you sure you want to close this album?')) {
                location.href = url;
        }
}

function confirmDeleteTopic(url) {
        if (confirm('Are you sure you want to delete this entire topic and every comment? THIS CANNOT BE REVERSED!')) {
                location.href = url;
        }
}

function compareNumbers(a, b) {
   return a - b
}

function showDiv(link){
	mom = link.parentNode;
	if (mom.children){
		//this is for IE
		mom.children[1].style.display='block';
	} else {
		//this is for everything else
		mom.childNodes[3].attributes[0].value ='display:block';
	}
}

function getObject( nameStr )
{
	
    if (document.getElementById)
    {
        return document.getElementById( nameStr );
    }
    else if (document.all)
    {
        return document.all[nameStr];
    }
}

var buttonInitState;
function displayArrowMouseOver(obj) {

//	alert(obj.onclick);
	var button;
	buttonInitState = (obj.innerHTML.indexOf("_off") > 0) ? "off" : "on";
	switch(obj.innerHTML.substr(obj.innerHTML.indexOf("/img/"),25)){
		case '../../../../img/buttons/button_prev_':
			button = 'prev';
		break
		case '../../../../img/buttons/button_prev2':
			button = 'prev2';
		break
		case '../../../../img/buttons/button_next_':
			button = 'next';
		break
		case '../../../../img/buttons/button_next2':
			button = 'next2';
		break
		case '../../../../img/buttons/button_bar_p':
			button = 'bar_prev';
		break
		case '../../../../img/buttons/button_bar_n':
			button = 'bar_next';
		break
		case '../../../../img/buttons/button_lgpre':
			button = 'lgprev';
		break
		case '../../../../img/buttons/button_lgnex':
			button = 'lgnext';
		break
	}
	obj.getElementsByTagName('img')[0].src = '../../../../img/buttons/button_'+button+'_over.gif';
}

function displayArrowMouseOut(obj) {
	
	var button;
//	alert(obj.innerHTML.substr(obj.innerHTML.indexOf("/img/"),25));
	switch(obj.innerHTML.substr(obj.innerHTML.indexOf("/img/"),25)){
		case '../../../../img/buttons/button_prev_':
			button = 'prev';
		break
		case '../../../../img/buttons/button_prev2':
			button = 'prev2';
		break
		case '../../../../img/buttons/button_next_':
			button = 'next';
		break
		case '../../../../img/buttons/button_next2':
			button = 'next2';
		break
		case '../../../../img/buttons/button_bar_p':
			button = 'bar_prev';
		break
		case '../../../../img/buttons/button_bar_n':
			button = 'bar_next';
		break
		case '../../../../img/buttons/button_lgpre':
			button = 'lgprev';
		break
		case '../../../../img/buttons/button_lgnex':
			button = 'lgnext';
		break
	}
	
	obj.getElementsByTagName('img')[0].src = '../../../../img/buttons/button_'+button+'_'+buttonInitState+'.gif';
}

function forceState(select_obj){
	var state_div = getObject("state_div");
	var zip_div = getObject("zip_div");
	if(select_obj.value != "US"){
		state_div.style.display = "none";
		zip_div.style.display = "none";
	} else {
		state_div.style.display = "block";
		zip_div.style.display = "block";
	}
}


function CommaFormatted(amount)
{
	var delimiter = ","; // replace comma if desired
	var a = amount.split('.',2)
	var d = a[1];
	var i = parseInt(a[0]);
	if(isNaN(i)) { return ''; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	var n = new String(i);
	var a = [];
	while(n.length > 3)
	{
		var nn = n.substr(n.length-3);
		a.unshift(nn);
		n = n.substr(0,n.length-3);
	}
	if(n.length > 0) { a.unshift(n); }
	n = a.join(delimiter);
	if(d.length < 1) { amount = n; }
	else { amount = n + '.' + d; }
	amount = minus + amount;
	return amount;
}


function in_array($needle, $haystack)
{
    for (var $i in $haystack)
    {
         if ($haystack[$i] == $needle)
         {
              return true;
         }
    }
    return false;
}

