var ajaxForm = {
	
	prepForm:function() {
		
		var formDiv = document.getElementById('formdiv');
		var buttons = document.getElementById('submitbuttons');
		if (!formDiv || !buttons) { return; }
		var forms = formDiv.getElementsByTagName('form');
		if (forms.length < 1) { return; }
		var formAction = forms[0].getAttribute('action');
		if (!formAction) { return; }
		if (formAction == '#formdiv') {
			
			var successfunc = function() {

	            formDiv.innerHTML = ajax.request.responseText;
                forms = formDiv.getElementsByTagName('form');
                if (forms.length > 0) {
                    var f = forms[0];
                    for (var i = 0; i < f.elements.length; i++) {
                        
                        if (f.elements[i].name && f.elements[i].className == 'error') {
                            
                            f.elements[i].focus();
                            break;
                        }
                    }
	                ajaxForm.prepForm();
                } 
			}
			forms[0].onsubmit = function() {
				
				ajaxForm.loadBar(buttons);
				ajax.data = ajaxForm.getData(forms[0]); 
				return ajax.send({successfunc: successfunc});
			}
		}
		ajaxForm.loaderImg = new Image(200, 8);
		ajaxForm.loaderImg.src = ajaxLoaderSrc;
        var captcha = document.getElementById('captcha_img');
        if (captcha) {
            var a = document.createElement('a');
            a.setAttribute('href', '#');
            a.appendChild(document.createTextNode('Reload image'));
            a.onclick = function() {
                var file = 'securimage_show.php?';
                var pos = captcha.src.indexOf(file);
                captcha.src = captcha.src.substr(0, pos) + file + Math.random();
                this.blur();
                return false;    
            }
            captcha.parentNode.appendChild(a);
        }
	},
	
	getData:function(elm) {
		
		var data = '';
        for (var i = 0; i < elm.elements.length; i++) {

            if (!elm.elements[i].name) { continue; }
            var inputType = elm.elements[i].getAttribute('type');
            if (inputType == 'checkbox' || inputType == 'radio') {

                if (elm.elements[i].checked) {

                    data += elm.elements[i].name;
                    data += '=';
                    data += encodeURIComponent(elm.elements[i].value);
                    data += '&';
                }
            }
            else {
                data += elm.elements[i].name;
                data += '=';
                data += encodeURIComponent(elm.elements[i].value);
                data += '&';
            }
        }
        if (!data) { return false; }
		data += 'ajax=1';
		return data;	
	},
	
	loadBar:function(elm) {

		var elmHeight = elm.offsetHeight;
		while (elm.hasChildNodes()) {
			
			elm.removeChild(elm.lastChild);
		}
	    var newDiv = document.createElement('div');
	    newDiv.className = 'loadbar';
		newDiv.style.height = elmHeight + 'px';
		newDiv.style.padding = 0;
		elm.style.padding = 0;
	    var loaderImg = document.createElement('img');
	    loaderImg.src = ajaxForm.loaderImg.src;
	    newDiv.appendChild(loaderImg);
	    elm.appendChild(newDiv);
	}
}
 
coreFuncs.addLoadEvent(ajaxForm.prepForm);
