/**
 * @name: 		form_mpl.js
 * @author: 	Albert Harounian
 * @copyright: 	inManage LTD
 * @since:		August 1, 2007
 * @since:		November 4, 2007
 * @desc:		Form JS manipulations(check, send ajax form) functions
 */

function checkForm(formID){
	var str = validate(formID,'inputErrorClass',true);
	if(str.indexOf('<ok />') == -1){
		return false;
	}
	return true;
}

function submitAjaxForm(formID, frmAction, finishFunction, isToSalat){
	function submitAjaxForm_done(data){
		alert(data);
	}
	var str 		= makeAjaxForm(formID);
//	var frmAction 	= document.getElementById(formID).action; // -> Returns the full path and because of that is not good
	if(str.indexOf('<err />')>-1){
		return false;
	}else{
		im_ajax.send(frmAction, finishFunction ? finishFunction : submitAjaxForm_done, str, isToSalat);
	}
}

function makeAjaxForm(formID){
	var str = checkForm(formID);
	if(str==false){
		return "<err />";
	}else{
		str = "";
	}
	/* var formElement = eval('document.'+formID); */
	var formElement = document.getElementById(formID);
	var inputs = formElement.length;
	for(i=0;i<inputs;i++){
		switch(formElement.elements[i].type.toLowerCase()){
			case "radio":
			case "checkbox":
				if(formElement.elements[i].checked){
					str += formElement.elements[i].name + "=" + formElement.elements[i].value + "&";
				}
				break;
			case "select-one":
			case "select-multiple":
				str += formElement.elements[i].name + "=" + formElement.elements[i].options[formElement.elements[i].selectedIndex].value + "&";
				break;
			case "option":
			case "reset":
				break;
			default:
				str += formElement.elements[i].name + "=" + formElement.elements[i].value + "&";
		}
	}
	str = str.substr(0,str.length-1);
	return str;
}