var inputs = new Array();
var t2;
var quickprompt;
var quicktarget;
var errnum = 0;
var currFrom;
var idx = Array();
var inputs = Array();
var found = 0;

function do_void( p_formname )
{
	if (whizzies.length > 0) {
		syncTextarea();
	}
	window.scrollTo(0,0);
	
clearTimeout( t2 );
	trace (p_formname);
	currForm = document.getElementById(p_formname);
	errnum = 0;
	found = 0;
	inputs = Array();
	idx = Array();
	for(i = 0; i <= currForm.elements.length - 1; i++)
	{
//		trace(currForm.elements[i].name);
		if (currForm.elements[i].name != undefined && currForm.elements[i].name != "")
		{
			idx[inputs.length] = i;
			inputs[inputs.length] = currForm.elements[i].name;

		}
		
	}

	for (var i = 0; i < inputs.length; i++) {
		if (validater(currForm.elements[idx[i]])) errnum++;
//		trace (currForm.elements[idx[i]].name + ", " + errnum);	
	}
//	trace("tényleg:"+errnum);
	send_request();
}

function send_request()
{
//	trace ('okay');
	var href1 = 'void.php?mode=AJAX';
	for(i = 0; i <= currForm.elements.length - 1; i++)
	{
		if (currForm.elements[i].name == 'norefresh')
		{
			href1 += '&norefresh';			
		}
		if (currForm.elements[i].name == 'sql')
		{
			href1 += '&sql';			
		}
		
	}
	if (http.comp.readyState == 0 || http.comp.readyState == 4 )
	{
		if (errnum == 0) {
//			trace (inputs.length);
			for (var i = 0; i < inputs.length; i++) {
				if (currForm.elements[idx[i]].type == "radio") {
				   if (currForm.elements[idx[i]].checked) {
					  href1 += "&"+currForm.elements[idx[i]].name + "=" + currForm.elements[idx[i]].value;
				   }
				}
				else {
					href1 += "&"; //nem szükséges az elsot külön kezelni mert elotte már ott van a mode=AJAX
					if (currForm.elements[idx[i]].type == "checkbox") {
					   if (currForm.elements[idx[i]].checked) {
						  href1 += currForm.elements[idx[i]].name + "=" + currForm.elements[idx[i]].value;
					   } else {
						  href1 += currForm.elements[idx[i]].name + "=0";
					   }
					}
					else
					{
//						trace(escape(encodeURIComponent(currForm.elements[idx[i]].value)).replace(/%250D%250A/gi, '%250A'));
						href1 += currForm.elements[idx[i]].name + "=" + escape(encodeURIComponent(currForm.elements[idx[i]].value)).replace(/%250D%250A/gi, '%250A');
					}
				}
				found++;
				err = false;
				http.voidmode = true; //ne frissítsen hibánál!!!!
				if (currForm.elements[idx[i]].name == 'return' && currForm.elements[idx[i]].value != '')
				{
//					trace ('megvan a return');
					http.do_redraw = true;
					http.redraw_href = currForm.elements[idx[i]].value;
					http.refreshall = true;
					
				}
				if (currForm.elements[idx[i]].name == 'jsrefr' && currForm.elements[idx[i]].value != '')
				{
					http.do_redraw = true;
					http.refrfunc = currForm.elements[idx[i]].value;
				}
				if (currForm.elements[idx[i]].name == 'contrefr' && currForm.elements[idx[i]].value != '')
				{
					URL = document.baseURI || document.URL;
					http.do_redraw = true;
					http.redraw_div	 = 'main_win';				
					http.redraw_href = URL + "&mode=AJAX";
				}
		
			}
//		trace ("!!!!:"+http.redraw_href);
//		trace(href1);
		//	trace (href1);
				clearTimeout(t2);
				http.msg_target = 'AJAX_main';
				document.getElementById(http.msg_target).innerHTML = '';
				http.mode = 'post';
				http.doAAction(href1, null);
		}
	}
	else
	{
		t3 = setTimeout("send_request()", 500);	
	}
}

function chg_class ( elem, cls ) {
	elem.className = cls;
}

function validater( elem )
{
	var err;

	if(elem.getAttribute('checkfunc') != null)
	{
		chg_class(elem, 'input');
//		trace("validate_"+elem.getAttribute('checkfunc')+"("+elem+")");
//		err = eval("validate_"+elem.getAttribute('checkfunc')+"("+elem+")");
//				trace (currForm.elements[i].getAttribute('checkfunc'));
//		trace(":"+elem.getAttribute('checkfunc'));
		switch (elem.getAttribute('checkfunc')) {
			case 'date':
				err = validate_date(elem);
				break;
			case 'select':
				err = validate_select(elem);
				break;
			case 'ml_empty':
				err = validate_ml_empty(elem);
				break;
			case 'empty':
				err = validate_empty(elem);
				break;
			case 'checknick':
				err = validate_checknick(elem.name);
				break;
			case 'userpass':
				err = validate_userpass();
				break;
			case 'checkmail':
				err = validate_checkmail( elem.name );
				break;
			case 'numeric_2D':
				err = validate_numeric_bt0( elem );
				break;
		}
		if ( err ) {
			chg_class(elem, 'input_error');
		}
		return err;
	}
	else
	{
		return false;	
	}

}

function validaterById( id )
{
	validater(document.getElementById(id));
}

function validate_checknick ( elemname )
{
	if (http.comp.readyState == 0 || http.comp.readyState == 4 )
	{
		http.msg_target = elemname+"_prob";
		http.do_redraw = true;
		http.silentmode = true;
		http.refrfunc = 'validate_checknick_ret()';
		href1 = 'index.php?mode=AJAX&checknick='+document.getElementById(elemname).value;
		http.doAAction(href1, null);
	}
	else
	{
		t3 = setTimeout("validate_checknick('"+elemname+"')", 500);
	}
	
}

function validate_checknick_ret ()
{
//	trace ('meg volt a check');
	var response = http.comp.responseText;
//	trace (response);
	flag = response.substring(0,1);
//	trace (flag);
//	if (flag == 0 || flag == undefined || flag == null) chg_class(document.getElementById( 'usernev' ), 'input_error');
	if (flag == 0 || flag == undefined || flag == null)
	{
		chg_class(document.getElementById( http.msg_target.replace("_prob", "") ), 'input_error');
		errnum++;
	}
		
	document.getElementById( http.msg_target ).innerHTML = response.substring(1);
}

function validate_checkmail ( elemname )
{
	if (http.comp.readyState == 0 || http.comp.readyState == 4 )
	{
		http.msg_target = elemname+"_prob";
		http.do_redraw = true;
		http.silentmode = true;
		http.refrfunc = 'validate_checkmail_ret()';
		href1 = 'index.php?mode=AJAX&checkmail='+document.getElementById(elemname).value;
		http.doAAction(href1, null);
	}
	else
	{
		t3 = setTimeout("validate_checkmail('"+elemname+"')", 500);
	}
}

function validate_checkmail_ret ()
{
//	trace ('meg volt a check');
	var response = http.comp.responseText;
//	trace (response);
	flag = response.substring(0,1);
//	trace (flag);
//	if (flag == 0 || flag == undefined || flag == null) chg_class(document.getElementById( 'usernev' ), 'input_error');
	if (flag == 0 || flag == undefined || flag == null)
	{
		chg_class(document.getElementById( http.msg_target.replace("_prob", "") ), 'input_error');		
		errnum++;
	}
	document.getElementById( http.msg_target ).innerHTML = response.substring(1);
	

}

function validate_userpass()
{
	passminlength = 6;
	invisbyName('err_userpass2');
	pass1 = document.getElementById('userpass1');
	pass2 = document.getElementById('userpass2');
	if (pass1.value.length < passminlength) chg_visById('err_userpass2_short');
	if (pass1.value != pass2.value) chg_visById('err_userpass2_notequal');
	return !(pass1.value.length >= passminlength) || pass1.value != pass2.value;
	
}

function validate_date ( elem )
{
	var matchRE = /^[19|20]+\d{2}\-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/;
	if (elem.value.match(matchRE)) {
		return false;
	}
	else {
		return true;
	}
}

function validate_select ( elem )
{
	if (elem.selectedIndex == 0) {
		return true;
	}
	else {
		return false;
	}
}

function validate_empty ( elem )
{
	if ( elem.value == undefined || elem.value == null || elem.value == '')
	{
		return true;
	}
	else
	{
		return false;
	}
}

function validate_ml_empty ( elem )
{
	var name = elem.name.substr(0, elem.name.length - 3);
	var hits = 0;
	var err = 0;
	for (var i = 0, ertek; ertek = inputs[i]; i++) {
		
		if (inputs[i].substr(0, inputs[i].length - 3) == name)
		{
			hits++;
			err += validate_empty ( document.getElementById(inputs[i]) );	
		}
	}
	if (err == hits)
	{
		return true;
	}
	else
	{
		return false;
	}
}

function validate_numeric ( elem )
{
	return (isNaN(elem.value));
}

function validate_numeric_bt0 ( elem )
{
	return (isNaN(elem.value) || elem.value == 0);
}

function validate_file ( elem )
{
	var matchRE = /^([a-zA-Z0-9_\-\.\+\(\)]+)$/;
	if (elem.value.match(matchRE)) {
		return false;
	}
	else {
		return true;
	}
}

function set_shout_counter(p_szoveg)
{
//	trace('inside');
	var hossz = document.getElementById(p_szoveg).value.length;
	var t_div = document.getElementById('shout_counter');
	if (hossz > 250)
	{
		t_div.style.color = "#FF0000";	
	}
	else
	{
		t_div.style.color = "#000000";		
	}
	t_div.innerHTML = hossz;
	
}
function do_rate(p_class, p_clid, p_vid, p_id)
{
	var answer = confirm('Biztosan '+p_id+'-s értékelést adsz?');
	if (answer){
		var href1 = 'void.php?ratingform=1&vid='+p_vid+'&voteposs='+p_id+'&autosubmit=1&mode=AJAX';
		http.msg_target = 'AJAX_main';
		http.mode = 'post';
		http.doAAction(href1, null);
		http.do_redraw = true;
		if (p_class == 'gal_element')
		{
			http.redraw_div = 'full_value';
			http.redraw_href = 'index.php?gal_element='+p_clid+'&mode=AJAX&part=detail';
	//		alert(http.redraw_href);
		}
	}
}

function clearById( id )
{
	document.getElementById( id ).innerHTML = '';
}

