var selfDoc = window.location.toString();
selfDoc = selfDoc.substr(0, selfDoc.indexOf("?"));

function include (file) {
	var script = document.createElement('script');
	script.src = file;
	script.type = 'text/javascript';
	
	document.getElementsByTagName('head').item(0).appendChild(script);
}

function hideMe(objectName) {
	document.getElementById(objectName).style.display = 'none';
}
function showMe(objectName) {
	document.getElementById(objectName).style.display = 'block';
}
function toggleShow(objectName) {
	document.getElementById(objectName).style.display = (document.getElementById(objectName).style.display == 'block')? 'none' : 'block';
}

function login(username, password) {
	var editAdder = function(response) { 
		if (response.indexOf("Success") != -1) 
			if (response.indexOf("editor") != -1)
				addEdits();
			else
				window.location.reload();
		else 
			alert("Problem logging in: "+response);
	}
	shortRequest("fastUser.php?action=login&username="+username+"&password="+password, editAdder);
	return false;
}
function logout() {
	var reloader = function(response) { 
		if (response.indexOf("Success") != -1) 
			window.location.reload();
		else 
			alert("Problem logging out: "+response);
	}
	shortRequest("fastUser.php?action=logout", reloader);
}

function defaultResponse () { 
	this.go = function (http_request) {
		if (http_request.readyState == 4) {
			if (http_request.status == 200) {
				this.action(http_request.responseText);
			} else {
				alert('There was a problem with the request.');
			}
		}
	};
	
	this.action = function(response) {
		if (response != "Success") {
			alert(response);
		}
	}
}

var response = null;

function getRequestObj() {
	var http_request = false;
	
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		//if (http_request.overrideMimeType) {
		//	http_request.overrideMimeType('text/xml');
		//}
	} 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('AJAX unavailable. Please upgrade to Firefox!');
		return false;
	}
	return http_request;
}

function shortRequest(url, response) {
	var http_request = getRequestObj();
	defaultObj = new defaultResponse();
	
	if (typeof(response) == "function") {
		var responder = response;
		defaultObj.action = function( newResponse ) { responder(newResponse); };
		response = defaultObj;
	} else
		response = (response == null) ? defaultObj : response;
	
	try {
		http_request.onreadystatechange = function() { response.go(http_request); };
		http_request.open('GET', url, true);
		http_request.send(null);
	} catch (e) {alert(e);}
}

function postRequest(url, response, content) {
	var http_request = getRequestObj();
	var defaultObj = new defaultResponse();
	
	if (typeof(response) == "function") {
		var responder = response;
		defaultObj.action = function( newResponse ) { responder(newResponse); };
		response = defaultObj;
	} else
		response = (response == null) ? defaultObj : response;
	
	try {
		http_request.onreadystatechange = function() { response.go(http_request); };
		http_request.open('POST', url, true);
		http_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		http_request.send(content);
	} catch (e) {alert(e);}
}

function postArray( url, response, data ) {
	var content = "";
	for (var i in data) {
		content += i+"=" + escape(data[i]).replace("+", "%2B").replace("/", "%2F") +"&";
	}
	
	postRequest(url, response, content);
}

function getXMLObj( response ) {
	var doc = null;
	
	if (window.ActiveXObject) {
		doc = new ActiveXObject("Microsoft.XMLDOM");
		doc.async = false;
		doc.loadXML(response);
	} else {
		var parser = new DOMParser();
		var doc = parser.parseFromString( response, "text/xml" );
	}
	
	return doc;
}

function getVarParse() {
	var GET = Array();
	var location = window.location.toString();
	location = location.replace(/#/g,'');
	var data = location.substr(location.indexOf('?')+1);
	
	data = data.split('&');
	for (var i = 0; i < data.length; i++) {
		var dataS = data[i].split('=');
		GET[dataS[0]] = dataS[1];
	}
	
	return GET;
}

function sentenceCase( data ) {
	var splitDat = data.split(" ");
	for ( i in splitDat ) 
		if (typeof(splitDat[i]) == "string") 
			splitDat[i] = splitDat[i].substr(0,1).toUpperCase() + splitDat[i].substr(1);
	
	return splitDat.join(" ");
}

function inArray(value, array) {
    for (var i = 0; i < array.length; i++)
        if (array[i] === value)
            return true;
			
    return false;
}
