var Member = function() {  
	var translateTags = {};
	function myPrivateMethod() {
		// some code here...
	} 
	
	function getFieldValues(fields){
		var i = fields.length;
		var params = {};
		while(i--){
			var elm = $("#"+fields[i]);
			var domEl = elm.get(0);
			if (domEl){
				if (domEl.tagName == "INPUT"){
					if (elm.attr("type").toLowerCase() == "checkbox"){
						if (elm.attr("checked")){
							params[fields[i]] = 1;
						}
						else {
							params[fields[i]] = 0;
						}
					}
					else {
						params[fields[i]] = elm.val();
					}
				}
				else {
					params[fields[i]] = elm.val();
				}
			}
		}
		return params;
	}
	
	function postForm(params, url, fnc){
		$.ajax({ 
			method: "POST",
			type: "POST",
			url: url,
			data: params, 
			timeout: 10000,
			beforeSend: function(){
			}, //show loading just when link is clicked 
			complete: function(){ 
			}, //stop showing loading when the process is complete 
			success: fnc.success,
			error: function (XMLHttpRequest, textStatus, errorThrown) {
					if (textStatus == "timeout"){
						alert(translateTags.errorAjaxTimeOut);
					}
					else {
						alert(translateTags.errorAjax);
					}
				}
			});
			/*
			function(html){ //so, if data is retrieved, store it in html 
				$("#TB_ajaxContent").html(html);
				} 
			*/
	}
	
	return {
		login : function(fields, frm_id){
			var url = $("#"+frm_id).attr("action");
			var params = getFieldValues(fields);
			params.login_submit = 1;
			var fnc = {success: function(html){ //so, if data is retrieved, store it in html 
				$("#TB_ajaxContent").html(html);
				}
			};
			postForm(params, url, fnc);
		},
		register : function(fields, frm_id){
			var url = $("#"+frm_id).attr("action");
			var params = getFieldValues(fields);
			params.register_submit = 1;
			var fnc = {success: function(html){ //so, if data is retrieved, store it in html 
				$("#TB_ajaxContent").html(html);
				var temp_imageId = document.getElementById("temp_imageId");
				var temp_imageUrl = document.getElementById("temp_imageUrl");
				if (temp_imageId && temp_imageUrl){
					if (temp_imageId.value.length > 0 && temp_imageUrl.value.length){
						Member.setProfileImage(temp_imageId.value, temp_imageUrl.value, 'register_file_id');
					}
				}
			
				}
			};
			postForm(params, url, fnc);
		},
		registerConfirm : function(fields, frm_id){
			var url = $("#"+frm_id).attr("action");
			var params = getFieldValues(fields);
			params.registerConfirm_submit = 1;
			var fnc = {success: function(html){ //so, if data is retrieved, store it in html 
				$("#TB_ajaxContent").html(html);
				}
			};
			postForm(params, url, fnc);
		},
		profile : function(fields, frm_id){
			var url = $("#"+frm_id).attr("action");
			var params = getFieldValues(fields);
			params.profile_submit = 1;
			var fnc = {success: function(html){ //so, if data is retrieved, store it in html 
				$("#TB_ajaxContent").html(html);
				var temp_imageId = document.getElementById("temp_imageId");
				var temp_imageUrl = document.getElementById("temp_imageUrl");
				if (temp_imageId && temp_imageUrl){
					if (temp_imageId.value.length > 0 && temp_imageUrl.value.length){
						Member.setProfileImage(temp_imageId.value, temp_imageUrl.value, 'profile_file_id');
					}
				}
				}
			};
			postForm(params, url, fnc);
		},
		password : function(fields, frm_id){
			var url = $("#"+frm_id).attr("action");
			fields.push("password_captcha-input");
			fields.push("password_captcha-id");
			var params = getFieldValues(fields);
			params.password_submit = 1;
			var fnc = {success: function(html){ //so, if data is retrieved, store it in html 
				$("#TB_ajaxContent").html(html);
				}
			};
			postForm(params, url, fnc);
		},
		setTranslateTags: function(tags){
			translateTags = tags;
		},
		uploadFile: function(form, frame){
			var frm = document.getElementById(form);
			var onsubmitFcn = frm.onsubmit;
			frm.onsubmit = function(){};
			var frmAction = frm.action;
			frm.action = "/nl_BE/members/upload";
			frm.target = frame;
			frm.submit();
			frm.onsubmit = onsubmitFcn;
			frm.action = frmAction;
			frm.target = "";
			//profile_form
			//uploadFrm")
		},
		setProfileImage :function(id, url, field){
			var fieldObj = document.getElementById(field);
			if (fieldObj){
				//fieldObj.type="hidden"; 			// hier zet je het file-field op hidden
				//fieldObj.value = id;				// en de value op het id van de image		(enkel FF)
				
				// verwijder de file-tag
				div = document.getElementById('file_upload_container');
				oldElement = document.getElementById(field);
				div.removeChild(oldElement);
				
				// voeg de hidden-tag toe
				newElement = document.createElement("<input type='hidden' id='" + field + "' name='" + field + "' VALUE='" + id + "'>");
				div.appendChild(newElement);

			}
			var container = document.getElementById("file_upload_container");
			if (container){
				var images = container.getElementsByTagName("img");
				var img = null;
				var createTag = false;
				if (images.length == 0){
					var img = document.createElement("img");
					createTag = true;
				}
				else {
					img = images[0];
				}
				img.src = url;
				if (createTag){
					container.appendChild(img);
				}
			}
			
			var inputBtn = document.getElementById("upload_remove_button");
			if (inputBtn){
				inputBtn.value = "Verwijder uw foto";
				inputBtn.onclick = function() {Member.removeProfileImage(field)};
			}
		},
		removeProfileImage: function(field){
			var fieldObj = document.getElementById(field);
			if (fieldObj){
				//fieldObj.value = "";			// hier zet je de value op leeg
				//fieldObj.type="file";			// en maak je er weer een file-field van  (enkel FF)
				
				// verwijder de file-tag
				
				// voeg de hidden-tag toe
				// verwijder de file-tag
				div = document.getElementById('file_upload_container');
				oldElement = document.getElementById(field);
				div.removeChild(oldElement);
				
				// voeg de hidden-tag toe
				newElement = document.createElement("<input type='file' id='" + field + "' name='" + field + "' VALUE=''>");
				div.appendChild(newElement);

			
			}
			
			var inputBtn = document.getElementById("upload_remove_button");
			if (inputBtn){
				inputBtn.value = "Upload";
				
				var parent = inputBtn.parentNode;
				while (parent.tagName != "FORM"){
					parent = parent.parentNode;
				}
				var parentId = parent.id;
				
				inputBtn.onclick = function() {Member.uploadFile(parentId, "uploadFrm")};
			}
			
			var container = document.getElementById("file_upload_container");
			if (container){
				var images = container.getElementsByTagName("img");
				var i = images.length;
				while (i--){
					container.removeChild(images[i]);
				}
			}
		}
		
	};  
}();
