function ajaxRequest(method, parameters, url, functionName){

	var myAjax = new Ajax.Request(domainNamePort + ""+  url, {
		method: method,
		asynchronous: false,
		postBody: parameters,
		onSuccess: functionName,
		on404: function(t){
			alert('Error ' + t.status + ' -- ' + t.statusText);
		},
		// Handle other errors
		onFailure: function(t){
			alert('Error ' + t.status + ' -- ' + t.statusText);
		}
	});	
}
function trim(str) {
	str = str.replace(/^\s+/, '');
	for (var i = str.length - 1; i >= 0; i--) {
		if (/\S/.test(str.charAt(i))) {
			str = str.substring(0, i + 1);
			break;
		}
	}
	return str;
}

function isMalFormedInt(inputString) {	
	
	var pattern = /[^0-9]/;	
	return pattern.test(inputString);
}

function isMalFormedFloat(inputString) {	

	var pattern =/\d+\.\d{0,}$/;
	var pattern1 =/\d+\.{1}\d{0,}$/;
	
	if(isMalFormedInt(inputString)){
		/*
		var ass = "dasdas";
		var i = ass.indexOf(".");
		
		var sufix = inputString.substring(0,inputString.indexOf("."));
		var prefix = inputString.substring(inputString.indexOf("."));
		alert(sufix + "   " + prefix);
	//	alert(pattern.test(inputString) + "  " + pattern1.test(inputString));*/
		return !pattern.test(inputString);
	}else{
		return false;
	}
}

function isMalformedString(inputString){
	var pattern =/[^a-zA-Z0-9_-]/;
	return pattern.test(inputString);
}


function closest_parent_by_tag_name(node, tag_name){
	
	tag_name = tag_name.toLowerCase();
   	if(node.nodeName.toLowerCase() == tag_name){
   		return node;
	}else{
   		var p = node.parentNode;
   		while(p){
   			if(tag_name == '' || p.nodeName.toLowerCase() == tag_name){
				return p;
			}else{
				p = p.parentNode;
			}
   		}   
   } 
}


