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(obj, error){
	errorObj = getObj("errorFloater");
	error_text = getObj("errorText");
	error_text.innerHTML = error;
	pos = findPos(obj);
	errorObj.style.left = (pos[0] + 170) + 'px';
	errorObj.style.top = (pos[1] - 36) + 'px';
	//obj.focus();
	show("errorFloater");
}

function validateField(id, validate, error){
	var checkEmail = /^[a-zA-Z0-9._-]{3,}@[a-zA-Z0-9.-]{3,}\.+[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})$/;
	obj = getObj(id);
	switch(validate){
		case "default":
			if(obj.value == ""){
				showError(obj, error);
				return false;
			}
			else{
				hide("errorFloater");
				return true;
			}
		break;
		case "email":
			if(!checkEmail.test(obj.value)){
				showError(obj, error);
				return false;
			}
			else{
				hide("errorFloater");
				return true;
			}
		break;
		case "phone":
			var temp = obj.value;
			var phone = temp.replace(/[\+\ \(\)\-]/g, "");
			if(!checkPhone.test(phone)){
				showError(obj, error);
				return false;
			}
			else{
				hide("errorFloater");
				return true;
			}
		break;
		case "checkbox":
			if(!obj.checked){
				showError(obj, error);
				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].id == id){
					if(objs[i].checked){
						hide("errorFloater");
						return true;
					}
				}
			}
			showError(obj, error);
			return false;
		break;
		case "date":
			if(!checkDate.test(obj.value)){
				showError(obj, error);
				return false;
			}
			else{
				hide("errorFloater");
				return true;
			}
		break;
	}
}

function validateForm(longtext, formobj, obj, url){
	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])){
			return false;
		}
	}
	if(obj == 0 && url == 0){
		return true;
	}
	else{
		post_form(formobj, obj, url);
		return false;
	}
}

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 = "";
			}
			querystring += extra+formobj.elements[i].name+"="+formobj.elements[i].value;
		}
	}
	new Ajax.Updater(obj, url, {
		method: 'post',
		postBody: querystring
	});
	
	return false;
}
