
// ## webget ##


var http_request = false;
function webGet(url, parameters, destObj) {
	http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			// set type accordingly to anticipated content type
			//http_request.overrideMimeType('text/xml');
			http_request.overrideMimeType('text/html');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) {
		alert('Cannot create XMLHTTP instance');
		return false;
	}
	http_request.onreadystatechange = function() {
		if (http_request.readyState == 4) {
			if (http_request.status == 200) {
				//alert(http_request.responseText);
				result = http_request.responseText;
				document.getElementById(destObj).innerHTML = result;
			} else {
				alert('There was a problem with the request.');
			}
		}
	}

	http_request.open('GET', url + parameters, true);
	http_request.send(null);
}


function webGetForm(url,formObj,destObj) {

	var getstr = "?";
	for (i=0; i < formObj.getElementsByTagName("input").length; i++) {
		if (formObj.getElementsByTagName("input")[i].type == "text") {
			getstr += formObj.getElementsByTagName("input")[i].name + "=" + formObj.getElementsByTagName("input")[i].value + "&";
		}
		if (formObj.getElementsByTagName("input")[i].type == "checkbox") {
			if (formObj.getElementsByTagName("input")[i].checked) {
				getstr += formObj.getElementsByTagName("input")[i].name + "=" + formObj.getElementsByTagName("input")[i].value + "&";
			} else {
				getstr += formObj.getElementsByTagName("input")[i].name + "=&";
			}
		}
		if (formObj.getElementsByTagName("input")[i].type == "radio") {
			if (formObj.getElementsByTagName("input")[i].checked) {
				getstr += formObj.getElementsByTagName("input")[i].name + "=" + formObj.getElementsByTagName("input")[i].value + "&";
			}
		}
	}

	for (i=0; i < formObj.getElementsByTagName("textarea").length; i++) {
		getstr += formObj.getElementsByTagName("textarea")[i].name + "=" + formObj.getElementsByTagName("textarea")[i].value + "&";
	}

	for (i=0; i < formObj.getElementsByTagName("select").length; i++) {
		getstr += formObj.getElementsByTagName("select")[i].name + "=" + formObj.getElementsByTagName("select")[i].value + "&";
	}

	webGet(url,getstr,destObj);

}



// ## doPopup ##


function doPopup(popname,popwidth,popheight) {

	// Determine how much the visitor had scrolled

	var scrolledX, scrolledY;
	if( self.pageYOffset ) {
		scrolledX = self.pageXOffset;
		scrolledY = self.pageYOffset;
	} else if( document.documentElement && document.documentElement.scrollTop ) {
		scrolledX = document.documentElement.scrollLeft;
		scrolledY = document.documentElement.scrollTop;
	} else if( document.body ) {
		scrolledX = document.body.scrollLeft;
		scrolledY = document.body.scrollTop;
	}

	// Determine the coordinates of the center of browser's window

	var centerX, centerY;
	if( self.innerHeight ) {
		centerX = self.innerWidth;
		centerY = self.innerHeight;
	} else if( document.documentElement && document.documentElement.clientHeight ) {
		centerX = document.documentElement.clientWidth;
		centerY = document.documentElement.clientHeight;
	} else if( document.body ) {
		centerX = document.body.clientWidth;
		centerY = document.body.clientHeight;
	}

	var leftOffset = scrolledX + (centerX - popwidth) / 2;
	var topOffset = scrolledY + (centerY - popheight) / 2;

	document.getElementById(popname).style.top = topOffset + "px";
	document.getElementById(popname).style.left = leftOffset + "px";
	document.getElementById(popname).style.display = "block";

}



// ## formassist ##


function formassist(obj) {

	// document.getElementById('jsfeedback').innerHTML = obj.name;

	if (obj.name == 'ppassword1') {

		var labeltext;
		var labelclass = 'labelalert';
		var p2dis = 'true';
		document.forms[0].ppassword2.value = '';

		if (document.forms[0].ppassword1.value.length < 6) {
			labeltext = 'too short';
		} else if(document.forms[0].ppassword1.value.search('[^a-z0-9]') > -1) {
			labeltext = 'lowercase letters &amp; numbers only';
		} else if(document.forms[0].ppassword1.value.search('[a-z]') < 0) {
			labeltext = 'must have letters';
		} else if(document.forms[0].ppassword1.value.search('[0-9]') < 0) {
			labeltext = 'must have numbers';
		} else {
			labeltext = 'enter twice';
			labelclass = 'labelcaution';
			p2dis = false;
		}

		document.forms[0].ppassword2.disabled = p2dis;
		document.getElementById('labelpassword').innerHTML = labeltext;
		document.getElementById('labelpassword').className = labelclass;

	}

	if (obj.name == 'ppassword2') {

		var labeltext;
		var labelclass = 'labelcaution';

		if (document.forms[0].ppassword2.value != document.forms[0].ppassword1.value) {
			labeltext = 'not a match';
		} else {
			labeltext = 'match';
			labelclass = 'labelverify';
		}

		document.getElementById('labelpassword').innerHTML = labeltext;
		document.getElementById('labelpassword').className = labelclass;

	}


}



// ## insert ##

function insertAtCaret(id, text) {

	obj = document.getElementById(id);

	if(document.selection) {

		obj.focus();
		var orig = obj.value.replace(/\r\n/g, "\n");
		var range = document.selection.createRange();

		if(range.parentElement() != obj) {
			return false;
		}

		range.text = text;

		var actual = tmp = obj.value.replace(/\r\n/g, "\n");

		for(var diff = 0; diff < orig.length; diff++) {
			if(orig.charAt(diff) != actual.charAt(diff)) break;
		}

		for(var index = 0, start = 0;
			tmp.match(text)
				&& (tmp = tmp.replace(text, ""))
				&& index <= diff;
			index = start + text.length
		) {
			start = actual.indexOf(text, index);
		}
	} else if(obj.selectionStart) {
		var start = obj.selectionStart;
		var end   = obj.selectionEnd;

		obj.value = obj.value.substr(0, start)
			+ text
			+ obj.value.substr(end, obj.value.length);

	}

	if(start != null) {

		setCaretTo(obj, start + text.length);

	} else {

		obj.value += text;

	}

}

function setCaretTo(obj, pos) {
	if(obj.createTextRange) {
		var range = obj.createTextRange();
		range.move('character', pos);
		range.select();
	} else if(obj.selectionStart) {
		obj.focus();
		obj.setSelectionRange(pos, pos);
	}
}



// ## countdown ##

function timeout() {
	doPopup('poptimeout',200,200);
}

function countdown() {
	setTimeout('timeout()', maxtimestampwarn);
}


// ## webget ##

function webget(vurl,dobj) {

	if (window.XMLHttpRequest) {
			//We are in a non-IE browser
			httpObj=new XMLHttpRequest();
		} else if (window.ActiveXObject) {
			//We are in IE
			httpObj=new ActiveXObject('Microsoft.XMLHTTP');
		}

		document.getElementById('ajaxstatus').innerHTML = 'httpObj.status:' + httpObj.status;

	// document.getElementById(dobj).innerHTML = 'Loading...';

	//Return the XML document when it has finished loading
	httpObj.onreadystatechange=function() {
		if (httpObj.readyState==4) {
			if (httpObj.status==200) {
				document.getElementById(dobj).innerHTML = httpObj.responseText;
			} else {
				document.getElementById('ajaxstatus').innerHTML = 'httpObj.status:' + httpObj.status;
			}
		}
	}

	//Request the XML document
	httpObj.open('GET',vurl,true);
	httpObj.send(null);

}


// ## onload ##

window.onload = function() {

	// ## curvy corners

	var settings = {
		tl: { radius: 5 },
		tr: { radius: 5 },
		bl: { radius: 5 },
		br: { radius: 5 },
		antiAlias: true
	}
	curvyCorners(settings, "div.rounded");
	curvyCorners(settings, "div.feedbackinfo");
	curvyCorners(settings, "div.feedbackverify");
	curvyCorners(settings, "div.feedbackalert");
	curvyCorners(settings, "div.formblock");


	// ## timeout warning

	if(authuserid) {
		countdown();
		document.getElementById("poptimeout").style.display = "none";
	} else {
		document.getElementById("poplogin").style.display = "none";
	}


}



