k=document;
function lim(tf, m) {
	if (tf.value.length + 1 >= m) {
		tf.value = tf.value.substring(0, m);
	}
}
boxes = new Array();
function changeState(id) {
	q = k.getElementById(id);
	if (!boxes[id]) {
		boxes[id] = q.innerHTML;
		q.innerHTML = '';
		k['img_' + id].src = '/assets/images/smallBullet.gif';
	}
	else {
		q.innerHTML = boxes[id];
		boxes[id] = false;
		k['img_' + id].src = '/assets/images/smallBulletDown.gif';
	}	
}
var z = new Array();
function addImage(id, img) {
	var tmp = new Image();
	tmp.src = img;
	tmp.onLoad = setTimeout("_addImage('" + id + "', '" + img + "', '" + tmp +"')", 25);
}
function _addImage(id, img, tmp) {
	var len = z.length;
	z[len] = new Array(id,img,tmp);
	var string = z[len][1];
	var name = string.substring(string.lastIndexOf('/')+1, string.length);
	z[len][3] = destSize(len);
	z[len][4] = name;
	hideImage(len);
}
function destSize(i) {
	var w = 540;
	var h = 600;
	var dRatio = w/h;
	var destSize = new Array();	
	if (z[i][2].width < w && z[i][2].height < h) {
		destSize[0] = z[i][2].width;
		destSize[1] = z[i][2].height;
	}
	else {
		srcRatio = z[i][2].width / z[i][2].height;
		if (dRatio > srcRatio) {
			destSize[1] = h;
			destSize[0] = h * srcRatio;
		} 
		else {
			destSize[0] = w;
			destSize[1] = w / srcRatio;
		}
	}
	return destSize;
}
function viewImage(i) {
	var q = k.getElementById(z[i][0]);
	q.innerHTML = "<div onClick='javascript:hideImage(" + i + ")' style='cursor:pointer;width:" + (Math.round(z[i][3][0])+2) + ";background:#fff;border:1px solid #000;border-bottom:0;height:16px;padding-left:2px;'><img src='/assets/images/close.gif' /> " + z[i][4] + "</div>";
	q.innerHTML += "<div style='width:" + (Math.round(z[i][3][0])+2) + ";height:" + (Math.round(z[i][3][1])+2) + ";background:#fff;border:1px solid #000;border-top:0;padding-left:2px;'><a target='_blank' href='" + z[i][1] + "'><img width='" + Math.round(z[i][3][0]) + "' height='" + Math.round(z[i][3][1]) + "' src='" + z[i][1] + "' border='0' /></a></div>";
}
function hideImage(i) {
	var q = k.getElementById(z[i][0]);
	q.innerHTML = "<div onClick='javascript:viewImage(" + i + ")' style='cursor:pointer;width:" + (Math.round(z[i][3][0])+2) + ";background:#fff;border:1px solid #000;height:16px;padding-left:2px;'><img src='/assets/images/expand.gif' /> " + z[i][4] + "</div>";
}


function imageMouseover(i) {
	var q = k.getElementById(['over_'+i]).style;
	q.display = "block";
}

function imageMouseout(i) {
	var q = k.getElementById(['over_'+i]).style;
	q.display = "none";
}

// Hilite messaging.
function liteOver(pid, def, v) {
	k.getElementById("td" + pid).style.backgroundColor = v ? '#d9e1ec' : '#' + def;
}
function liteClick(pid) {
	k.modify[pid].checked = !k.modify[pid].checked;
}

// Ajax, bitches.
function loadXMLDoc(url) {
	if (window.XMLHttpRequest) {
		//alert('window.XMLHttpRequest');
		req = new XMLHttpRequest();
		//alert('object made');
		req.onreadystatechange = processReqChange;
		req.open("GET", url, true);
		//alert('object opened');
		req.send(null);
		//alert('sent');
	}
	else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) {
			req.onreadystatechange = processReqChange;
			req.open("GET", url);
			req.send();
		}
	}
}
function processReqChange() {
	if (req.readyState == 4) {
		if (req.status == 200) {
			//alert('processReqChange finished');
			var tarr = req.responseText.split('&');
			var rarr = new Array();
			for (var i = 0; i < tarr.length; i++) {
				var t = tarr[i].split('=');
				rarr[t[0]] = t[1];
			}
			eval(rarr['method'] + '(rarr)');
		}
		else {
			alert('Error: ' + req.statusText);
		}
	}
}
// Functions using Ajax.
function updateMod(table, id, mod) {
	if (mod == -1) {
		return;
	}
	loadXMLDoc('/modPostAjax.php?table=' + table + '&id=' + id + '&mod=' + mod);
}
function updateModReturn(result) {
	if (!result) {
		alert('Refresh page please.  Currently debugging.');	
	}
	if (result['error']) {
		k.getElementById('mod' + result['id']).innerHTML = 'Invalid';
	}
	else {
		k.getElementById('fontmod' + result['id']).innerHTML = '<b>Mod Breakdown</b><br />' + result['modShowMouseOver'];
		k.getElementById('mod' + result['id']).innerHTML = result['modShow'];
		result['modPoints'] = Math.floor(result['modPoints']) - 1;
		k.getElementById('modPoints').innerHTML = '<b>' + result['modPoints'] + '</b> Mod Point' + (result['modPoints'] == 1 ? '' : 's');
	}
	k.getElementById('select' + result['id']).value = -1;
	k.getElementById('select' + result['id']).blur();
}
var req;