// Etsitään objekti
function findObject(n, d) {
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObject(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

// Avaa pop-up ikkunan
function openPopup(theURL,winName,features) {
  window.open(theURL,winName,features);
}

// Tarkastetaan lomake By Make Kurjonen / Copyright 2004 datafisher.com
function MM_validateForm()
{
	var i,obj,ok,args,nimi,errors='',pakolliset='';
	args=MM_validateForm.arguments;

	// käy functiolle lähetetyt argumentit läpi.->
	for (i=0; i<(args.length-2); i+=3)
	{
		obj = findObject(args[i]);// etsi objekti

		// löytyykö objectia?
		if (obj)
		{
			nimi = obj.id;
			if (!nimi) nimi = obj.name;

			//////////////////////////////
			// kenttä on pakollinen
			if (args[i+2].indexOf('R')!=-1)
			{
				if(obj.value.length == 0)
				{
					pakolliset+='- '+ nimi +'\n';
				}
			}
			/////////////////////////////
			// kenttä on email-osoite
			if(args[i+2].indexOf('isEmail')!=-1 && obj.value.length > 0)
			{
				if (	(obj.value.indexOf('@')==-1) ||						// onko @ merkkiä?
						(obj.value.indexOf('.')==-1) ||						// onko pistettä?
						(obj.value.indexOf('.')==(obj.value.length-1)) ||	// onko piste viimeinen merkki?
						(obj.value.indexOf('@')==(obj.value.length-1))	)	// onko @-merkki viimeinen?
				{
					errors+='- '+ nimi +'\n  ';

					if (args[i+1].length==0)
					{
						errors+='(sähköpostiosoite muodossa esim. matti.meikalainen@osoite.fi)\n';
					} else {
						errors+= args[i+1] + '\n';
					}
				}
			}
			/////////////////////////////
			// kenttä on päivämäärä (date)
			if(args[i+2].indexOf('date')!=-1 && obj.value.length > 0)
			{
				if (obj.value.charAt(2)!='.' || obj.value.charAt(5)!='.')
				{
					errors+='- '+ nimi +' päivämäärä pitää olla muodossa pp.kk.vvvv\n';
				} else {
					var paivat = parseInt(obj.value.substring(0,2));
					var kuukaudet = parseInt(obj.value.substring(3,5));
					var vuodet = parseInt(obj.value.substring(6,10));

					if (isNaN(paivat) || isNaN(kuukaudet) || isNaN(vuodet))
					{
						errors+='- '+ nimi +' päivämäärä pitää olla muodossa pp.kk.vvvv\n';
					} else if (paivat < 1 || paivat > 31 || kuukaudet < 1 || kuukaudet > 12 || vuodet < 1950 || vuodet > 2050)
					{
						errors+='- '+ nimi +' päivämäärä pitää olla muodossa pp.kk.vvvv\n';
					}
				}
			}
			/////////////////////////////
			// kenttä on kellonaika (time)
			if(args[i+2].indexOf('time')!=-1 && obj.value.length > 0)
			{
				if (obj.value.charAt(2)!=':')
				{
					errors+='- '+ nimi +' kellonaika pitää olla muodossa tt:mm\n';
				} else {
					var tunnit = parseInt(obj.value.substring(0,2));
					var minuutit = parseInt(obj.value.substring(3,5));
					var sekunnit = parseInt(obj.value.substring(6,8));

					if (isNaN(tunnit) || isNaN(minuutit))
					{
						errors+='- '+ nimi +' kellonaika pitää olla muodossa tt:mm\n';
					} else if (tunnit >23 || tunnit < 0 || minuutit > 59 || minuutit < 0)
					{
						errors+='- '+ nimi +' kellonaika pitää olla muodossa tt:mm\n';
					}
				}
			}
			/////////////////////////////
			// kenttä on checkbox
			if (args[i+2].indexOf('M')!=-1)
			{

				// multiple choice checkboxien tarkistus (onko edes yksi valittuna)
				if (isNaN(obj.length))
				{
					ok = obj.checked; // Jos checkboxeja onkin vain yksi kpl
				} else { // Normaalisti...
					for (var j=0; j<obj.length; j++)
						if(obj[j].checked ) ok=true;
				}

				if (!ok)
				{
					if (args[i+1].length==0)
					{
						errors += "- Ainakin yksi uutisluokka täytyy olla valittuna\n";
					} else {
						errors += "- "+ args[i+1] +"\n";
					}
				}
			}
		}
	}
	var virheteksti = "";
	if (pakolliset) virheteksti += "Seuraavat kentät ovat pakollisia:\n\n" + pakolliset + "\n";
	if (errors) virheteksti += "Virhe kentässä:\n\n" + errors + "\n";

	if (virheteksti) alert(virheteksti);
	document.MM_returnValue = (virheteksti == '');
}
