//--------------------------------------------------------------------
/*
form2php(form)
AUTHOR			:	vivepascal
DATE				:	080203
VERSION			:	v1.1
PURPOSE			:	scan a form (var form) and send an array to a ajaxed php.
VAR					:	- form : a html object <form>
							- ajax : "ajax" or nothing => will we have to send the form by ajax or by simlpe submit
							- content_result : str (the div content result)
							- phpfile : str (the php file called by ajax
							- endfunc : str (the func to be launched at the end of ajax process
DEP. FILE		:	vp.ajax.v2.js
CALL				:	<input type="button" value="GO"  onClick="f_form(this.parentNode)">

NOTES				:	if ajax not set, we submit the form
*/
function form2php(form_id, ajax, content_result, phpfile, endfunc){
	
	// If it exists, we ask tinyMCE to send its value to the related textarea
	if (isset("tinyMCE")) tinyMCE.triggerSave();
	
	
	form = document.getElementById(form_id);
	
	vars2send = "";
	
	var l = form.elements;
	
	for (var i=0; i<l.length; i++){
		var tag = form.elements[i];
		// we keep only the usable form tags
		if (	tag.tagName!=undefined &&
					(
					tag.tagName == "INPUT" ||
					tag.tagName == "TEXTAREA" ||
					tag.tagName == "SELECT"
					) && 
					tag.type.toUpperCase() != "BUTTON"){
			
			// exeption for checkboxes : if checked => value = 1, else value = 0
			if (tag.type.toUpperCase()=="CHECKBOX"){
				tag.checked ? tag.value = 1 : tag.value = 0;
			}
			// exeption for radio button : we keep only if checked;
			if ((tag.type.toUpperCase() == "RADIO" && tag.checked) ||
				 	(tag.type.toUpperCase() != "RADIO" && (!tag.multiple))
					){
					
				
				// we encode the "<" for the ajax process
				/*var reg=new RegExp("(<)", "g");
				var value = tag.value.replace(reg,'|#open#|');
				var reg=new RegExp("(>)", "g");
				var value = value.replace(reg,'|#close#|');
				vars2send += "form["+tag.name+"]="+value+"&";
				*/
				
				// code for tinyMCE : the tinyMCE's cleanup process convert the html text as url_encode() php function does.
				//	So the html text containts "&". This is bad if we send it by ajax, in post.
				//	So we encoded all the "&".
				var reg=new RegExp("(&)", "g");
				var value = tag.value.replace(reg,'|#and#|');
				
				// we deal with the special Word chars.
				var reg=new RegExp("(’)", "g");
				var value = value.replace(reg,"'");
				
				var reg=new RegExp("(«)", "g");
				var value = value.replace(reg,'"');
				
				var reg=new RegExp("(»)", "g");
				var value = value.replace(reg,'"');
				
				vars2send += "form["+tag.name+"]="+value+"&";
				
				//vars2send += "form["+tag.name+"]="+tag.value+"&";
				
			}
			
			// exeption for SELECT if multiple
			if (tag.tagName == "SELECT" && tag.multiple){
				vars2send += "form[select_multiple]["+tag.name+"]=";
				var tmp = "";
				var ls = tag.childNodes;
				for (n=0; n<ls.length; n++) {
					if (ls[n].selected){
						tmp += ls[n].value+",";
					}
				}
				tmp = tmp.substring(0,tmp.length-1); // we trash the last ","
				vars2send += tmp+"&";
			}
		}
		
	}
	//debug(vars2send);
	// exit :
	if (arguments.length>1){
		if(ajax="ajax"){
			// we send to vp.ajax.v2.js
			ajax_send_form(	content_result,
											phpfile,
											vars2send,
											endfunc
											);
		}
	}else{
		// DO NOT WORK
		form.submit();
	}
	
}
//--------------------------------------------------------------------
/*

HISTORIQUE :

v1.0 :
function form2php(form, ajax, content_result, phpfile, endfunc){
	vars2send = "";
	var l = form.elements;
	for (var i=0; i<l.length; i++){
		var tag = form.elements[i];
		// we keep only the usable form tags
		if (	tag.tagName!=undefined &&
					(tag.tagName == "SELECT" ||
					tag.tagName == "INPUT" ||
					tag.tagName == "TEXTAREA") && 
					tag.type.toUpperCase() != "BUTTON"){
			
			// exeption for checkboxes : if checked => value = 1, else value = 0
			if (tag.type.toUpperCase()=="CHECKBOX"){
				tag.checked ? tag.value = 1 : tag.value = 0;
			}
			// exeption for radio button : we keep only if checked;
			if ((tag.type.toUpperCase() == "RADIO" && tag.checked==true) ||
				 	(tag.type.toUpperCase()!="RADIO")){
				vars2send+= "form["+tag.name+"]="+tag.value+"&";
			}
		}
	}
	
	if(ajax="ajax"){
		// we send to ajax_post.js
		ajax_send_form(	content_result,
										phpfile,
										vars2send,
										endfunc
										);
	}else{
		form.submit();
	}
	
	
}
*/