function debug(aMsg) {
	//alert ('aMsg = ' + aMsg);
  	//setTimeout(function() { throw new Error("[debug] " + aMsg); }, 0);
}

function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
      try{
       	ro = new ActiveXObject("Microsoft.XMLHTTP");
      } catch(e){
      	ro = new XMLHttpRequest();
      }
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}

function getCookie( name ) {
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) )
	{
		return null;
	}
	if ( start == -1 ) return null;
	var end = document.cookie.indexOf( ";", len );
	if ( end == -1 ) end = document.cookie.length;
	return unescape( document.cookie.substring( len, end ) );
}

var http = createRequestObject();

function sndReqArg(args) {
	args = escape(args);

	var userID = getCookie('userID');
	http.open('get', 'http://questionville.com/ajax.php?args=' + escape(args + ',userID-||-' + userID));
	http.onreadystatechange = handleResponse;
	http.send(null);
}

function handleResponse() {

	if(http.readyState == 4){
		var response = http.responseText;
		var update = new Array();
		var debugCheck = response.indexOf('debugAjax');
		//alert ('response = ' + response);
		//alert ('debug = ' + debug);
		if(debugCheck != -1) {
			debug(response);
		} else if(response.indexOf('-|-' != -1)) {
			update = response.split('-|-');
			var resultType = update[0].split('---');

			resultType[0] = resultType[0].replace(/^\W+/,'')
			resultType[0] = resultType[0].replace(/\W+$/,'')
			if (resultType[0]){
				switch (resultType[0]){
					case 'target-innerHTML':
						try{
							document.getElementById(resultType[1]).innerHTML = update[1];
							mceAddControlToAllTextareas();
						}
						catch(e){
						}
						break;
					case 'target-function':
						var runFunction = (resultType[1] + '(' + update[1] + ')');
						eval(runFunction);
					break;
				}
			}
		}
	}
}