// 	valForm() - highlights empty required fields in a form and stops submitting if any. scrolls page to the first empty required field.
//	Versiunea 1.0 31 mai 2007
//	Usage: <form onsubmit="return valForm('className', 'inputName1', 'inputName2', etc...)">

function valForm()
{
	requiredclass=arguments[0];
	var isvalid=true;
	var tops=new Array();
	for(i=1;i<arguments.length;i++)
	{
		var elm=document.getElementsByName(arguments[i]);
		var isset=false;
		for(j=0;j<elm.length;j++)
		{
			if(((elm[j].type=="radio" || elm[j].type=="checkbox") && elm[j].checked) || (!(elm[j].type=="radio" || elm[j].type=="checkbox") && elm[j].value)) isset=true;
		}
		for(j=0;j<elm.length;j++)
		{
			if(!isset)
			{
				isvalid=false;
				elm[j].offsetParent.className=requiredclass;
				tops.push(findPosY(elm[j]));
			}
			else
			elm[j].offsetParent.className="";
		}
	}
	if(!isvalid)
	{
		tops.sort(sn);
		document.documentElement.scrollTop=tops[0]-50;
		needToConfirm=true;
		formsubmitted = false;
	}
	return isvalid;

	function sn(a, b)
	{
		return a-b;
	}
}

// 	valFormReq() - highlights empty required fields in a form and stops submitting if any. scrolls page to the first empty required field.
//	Version 2.0 - 25 sept 2007
//	Usage: <form onsubmit="return valForm('className', 'inputName1', 'inputName2', etc...)">
//	Exemple: if element with name='inputName' is empty, then the class of element with id='inputName_req' is set to 'className'

function valFormReq()
{
	requiredclass=arguments[0];
	var isvalid=true;
	var tops=new Array();
	for(i=1;i<arguments.length;i++)
	{
		var elm=document.getElementsByName(arguments[i]);
		var isset=false;
		for(j=0;j<elm.length;j++)
		{
			if(((elm[j].type=="radio" || elm[j].type=="checkbox") && elm[j].checked) || (!(elm[j].type=="radio" || elm[j].type=="checkbox") && elm[j].value)) isset=true;
		}
		for(j=0;j<elm.length;j++)
		{
			if(!isset)
			{
				isvalid=false;
				try
				{
					getel(elm[j].name+"_req").className=requiredclass;
				}
				catch(e) {}
//				elm[j].offsetParent.className=requiredclass;
				tops.push(findPosY(elm[j]));
			}
			else
			try {getel(elm[j].name+"_req").className="";} catch(e) {}
//			elm[j].offsetParent.className="";
		}
	}
	if(!isvalid)
	{
		tops.sort(sn);
		if(document.documentElement.scrollTop>tops[0])
		document.documentElement.scrollTop=tops[0]-50;
		try{alert(getel('errmsg').innerHTML)} catch(e){}
		needToConfirm=true;
		formsubmitted = false;
	}
	return isvalid;

	function sn(a, b)
	{
		return a-b;
	}
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
	curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
	curtop += obj.y;
	return curtop;
}

function findPosition( oElement ) {
  if( typeof( oElement.offsetParent ) != 'undefined' ) {
    for( var posX = 0, posY = 0; oElement; oElement = oElement.offsetParent ) {
      posX += oElement.offsetLeft;
      posY += oElement.offsetTop;
    }
    return [ posX, posY ];
  } else {
    return [ oElement.x, oElement.y ];
  }
}




function loadPlanRes(result, id)
{
	if(result!="Loading...")
	{
		getel(id).innerHTML=result;
		runScript(result);
		hideWaitDiv();
	}
}

function loadPlan(user_type_group,lang,planidsel)
{
	if(user_type_group==0)
	{
		getel('multi').style.display='';
		getel('thesections').style.display='';
	}
	else
	{
		getel('multi').style.display='none';
		getel('thesections').style.display='none';
	}
	request = new httpRequest("POST", HOSTNAME + "register_plans.php",
	"user_type_group="+user_type_group+"&lang="+lang+"&planidsel="+planidsel, true);
	if (request.initRequest())
	{
		showWaitDiv();
		request.setHandlerFunction("loadPlanRes", "theplans");
		request.sendRequest();
	}
}

function loadSectionsRes(result, id)
{
	if(result!="Loading...")
	{
		getel(id).innerHTML=result;
		runScript(result);
		hideWaitDiv();
	}
}

function loadSections(lang)
{
	var usertypeinputs=getel('usertypeinputs').getElementsByTagName('input');
	var inputs=new Array();
	for(i=0; i<usertypeinputs.length; i++)
	if(usertypeinputs[i].name && usertypeinputs[i].checked)
	inputs.push(usertypeinputs[i].name+"="+usertypeinputs[i].value);
	inputs=inputs.join("&");
	request = new httpRequest("POST", HOSTNAME + "register_sections.php","lang="+lang+"&"+inputs, true);
	if (request.initRequest())
	{
		showWaitDiv();
		request.setHandlerFunction("loadSectionsRes", "thesections");
		request.sendRequest();
	}
}

var checksno=0;

function maxChecks(id)
{
	if(getel(id).checked)
	checksno++;
	else
	checksno--;
	if(checksno>3)
	{
		getel(id).checked=false;
		checksno--;
	}
}

function valChecks()
{
	if(checksno<1)
	{
		getel("usertype_req").className="req";
		document.documentElement.scrollTop = findPosY(getel('usertype_req')) - 50;
		formsubmitted = false;
		return false;
	}
	else
	{
		getel("usertype_req").className="";
		return true;
	}
}

function valConfirm(msg) {
	formsubmitted = confirm(msg);
	return formsubmitted;
}