function getObj(id){
	obj = document.getElementById(id);
	if(obj != undefined){
		return obj;
	}
}
function show(id){
	obj = getObj(id);
	if(obj != undefined){
		obj.style.display = "block";
	}
}

function hide(id){
	obj = getObj(id);
	if(obj != undefined){
		obj.style.display = "none";
	}
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function showError(id, error, focusfield){
	errorObj = getObj("errorFloater");
	error_text = getObj("errorText");
	error_text.innerHTML = error;
	obj = getObj(id);
	pos = findPos(obj);
	errorObj.style.left = (pos[0] + 30) + 'px';
	errorObj.style.top = (pos[1] - 33) + 'px';
	if(focusfield){
		obj.focus();
	}
	show("errorFloater");
}

function validateField(id, validate, error, compare_field, focusfield){
	var checkEmail = /^[a-zA-Z0-9._-]{2,}@[a-zA-Z0-9.-]{2,}\.+[a-zA-Z.]{2,5}$/;
	var checkPhone = /^[0-9]{10,14}$/;
	var checkDate = /^([1-9]|0[1-9]|[12][0-9]|3[01])[- \/.]([1-9]|0[1-9]|1[012])[- \/.]([0-9]{2}|19[0-9]{2}|20[0-9]{2})$/;
	switch(validate){
		case "password":
			if(getObj(id).value != getObj(compare_field).value || getObj(id).value == ""){
				showError(id, error, focusfield);
				return false;
			}
			else{
				hide("errorFloater");
				return true;
			}
		break;
		case "email":
			if(!checkEmail.test(getObj(id).value)){
				showError(id, error, focusfield);
				return false;
			}
			else{
				hide("errorFloater");
				return true;
			}
		break;
		case "phone":
			var temp = getObj(id).value;
			var phone = temp.replace(/[\+\ \(\)\-]/g, "");
			if(!checkPhone.test(phone)){
				showError(id, error, focusfield);
				return false;
			}
			else{
				hide("errorFloater");
				return true;
			}
		break;
		case "checkbox":
			if(!getObj(id).checked){
				showError(id, error, focusfield);
				return false;
			}
			else{
				hide("errorFloater");
				return true;
			}
		break;
		case "radio":
			objs = document.getElementsByTagName("input");
			for(var i = 0; i < objs.length; i++){
				if(objs[i].name == id){
					if(objs[i].checked){
						hide("errorFloater");
						return true;
					}
				}
			}
			showError(id, error, focusfield);
			return false;
		break;
		case "date":
			if(!checkDate.test(getObj(id).value)){
				showError(id, error, focusfield);
				return false;
			}
			else{
				hide("errorFloater");
				return true;
			}
		break;
		default:
			if(getObj(id).value == ""){
				showError(id, error, focusfield);
				return false;
			}
			else{
				hide("errorFloater");
				return true;
			}
		break;
	}
}

function validateForm(longtext, formobj, obj, url, fun_vars){
	var array = new Array();
	var tempArray = new Array();
	tempArray = longtext.split("##");
	for(var i = 0; i < tempArray.length; i++){
		var tempArray2 = new Array();
		tempArray2 = tempArray[i].split("**");
		array[i] = tempArray2;
	}
	for(var i = 0; i < array.length; i++){
		if(!validateField(array[i][0], array[i][1], array[i][2], array[i][3], true)){
			return false;
		}
	}
	if(obj == 0 && url == 0){
		if(fun_vars != 0){
			var fun_varArray = new Array();
			fun_varArray = fun_vars.split("##");
			showDialog(fun_varArray[0], fun_varArray[1]);
		}
		return true;
	}
	else{
		post_form(formobj, obj, url);
		return false;
	}
}

function showDialog(id, message){
	errorObj = getObj("errorFloater");
	textObj = getObj("errorText");
	textObj.innerHTML = message;
	obj = getObj(id);
	pos = findPos(obj);
	errorObj.style.left = (pos[0] + 34) + 'px';
	errorObj.style.top = (pos[1] - 41) + 'px';
	show("errorFloater");
}

function post_form(formobj, obj, url){
	var querystring = "";
	var rowcount = 0;
	for(var i = 0; i < formobj.elements.length; i++){
		if(formobj.elements[i].value != undefined){
			rowcount++;
			var extra = "&";
			if(rowcount == 1){
				extra = "";
			}
			if(formobj.elements[i].type == "radio"){
				if(formobj.elements[i].checked == true){
					querystring += extra+formobj.elements[i].name+"="+formobj.elements[i].value;
				}
			}
			else{
				querystring += extra+formobj.elements[i].name+"="+formobj.elements[i].value;
			}
		}
	}
	$("#" + obj).load(url, querystring);
	
	return false;
}
