
var MethodType = {
	"GET" : "GET",
	"POST" : "POST"
};

/** Doesnt work under IE:( 
 * @param formId
 * @param url
 * @param method
 * @return
 */
function submitTo(formId, url, method) {
	var form = document.getElementById(formId);
	if(navigator.appName !== "Microsoft Internet Explorer"){
		form.method = method;
	}
	form.action = url;
	form.submit(); 
}

/**
 * Submits the form to specific url works on all browsers
 * @param formId
 * @param url
 * @return
 */
function submitTo(formId, url) {
	var form = document.getElementById(formId);
	form.action = url;
	form.submit();
}

/**
 * Adds param to the current url and submits
 * @param key
 * @param value
 * @return
 */
function addParamAndSubmit(key, value) {
	var url = document.location.search;

	key = escape(key);
	value = escape(value);

	var kvp = url.substr(1).split('&');
	if (kvp == "") {
		document.location.search = key + "=" + value;
	} else {

		var i = kvp.length;
		var x;
		while (i--) {
			x = kvp[i].split('=');
			if (x[0] == key) {
				x[1] = value;
				kvp[i] = x.join('=');
				break;
			}
		}

		if (i < 0) {
			kvp[kvp.length] = [ key, value ].join('=');
		}

		//this will reload the page, it's likely better to store this until finished
		document.location.search = kvp.join('&');
	}
}

/**
 * Remove the param from the current URL 
 * @param key
 * @return url without the specified param
 */
function removeParam(key) {
	var parameter = escape(key);
	var url = document.location.search;

	var urlparts = url.split('?');
	if (urlparts.length >= 2) {

		var prefix = encodeURIComponent(parameter) + '=';
		var pars = urlparts[1].split(/[&;]/g);
		for ( var i = pars.length; i-- > 0;)
			if (pars[i].lastIndexOf(prefix, 0) !== -1)
				pars.splice(i, 1);
		url = urlparts[0] + '?' + pars.join('&');
	}

	if (url[url.length - 1] == "?" || url[url.length - 1] == "&") {
		url = url.substr(0, url.length - 1);
	}
	return url;
}
/**
 * Remove the specified url and submits to the same page(makes refresh)
 * @param key
 * @return
 */
function removeParamAndSubmit(key) {
	var url = removeParam(key);
	document.location.search = url;
}
/**
 * Updates the value of specified param or adds the param or removes the param if it exists and submits
 * @param key
 * @param value
 * @return
 */
function updateParamAndSubmit(key, value) {
	var url = document.location.search;
	if (url.indexOf(key + "=" + value) != -1) {
		removeParamAndSubmit(key);
	} else {
		addParamAndSubmit(key, value);
	}
}
/**
 * Removes specified param with specified value as a pair from the current url and submits
 * @param key
 * @param value
 * @return
 */
function removeParamValuePairAndSubmit(key, value) {
	key = escape(key);
	value = escape(value);

	var url = document.location.search;
	url = url.replace(key + "=" + value, "");
	if (url[url.length - 1] == "?" || url[url.length - 1] == "&") {
		url = url.substr(0, url.length - 1);
	}

	document.location.search = url;
}

function setInputValueAndSubmit(formId, inputId, value) {
	
	document.getElementById(inputId).value = value;
	var form = document.getElementById(formId);
	form.submit();
	
}

