// JavaScript Document

function redirect(URLStr) { location = URLStr; }


// Example: obj = findObj("image1");

function findObj(theObj, theDoc)

{

  var p, i, foundObj;

  

  if(!theDoc) theDoc = document;

  if( (p = theObj.indexOf("?")) > 0 && parent.frames.length)

  {

    theDoc = parent.frames[theObj.substring(p+1)].document;

    theObj = theObj.substring(0,p);

  }

  if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj];

  for (i=0; !foundObj && i < theDoc.forms.length; i++) 

    foundObj = theDoc.forms[i][theObj];

  for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++) 

    foundObj = findObj(theObj,theDoc.layers[i].document);

  if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj);

  

  return foundObj;

}

function numbersonly(myfield, e, dec)
{
	var key;
	var keychar;
	
	if (window.event)
		key = window.event.keyCode;
	else if (e)
		key = e.which;
	else
		return true;
	
	keychar = String.fromCharCode(key);
	
	// control keys
	if ((key==null) || (key==0) || (key==8) || 
	(key==9) || (key==13) || (key==27) )
		return true;
	
	// numbers
	else if ((("0123456789").indexOf(keychar) > -1))
		return true;
	
	// decimal point jump
	else if (dec && (keychar == "."))
	{
		myfield.form.elements[dec].focus();
		return false;
	}
	else
		return false;
}


function radioToggleVisibility(radioObject, divId)
{
	if(radioObject.value == undefined)
		alert("Error: Browser compatability issue.");
	else
	{
		theDiv = document.getElementById(divId);
		
		if(theDiv.style == undefined)
			alert("Error: Could not find div style.");
			
		if(radioObject.value == 0)
		{
			theDiv.style.visbility = "hidden";
			theDiv.style.display = "none";
		}
		else
		{
			theDiv.style.visibility = "visible";
			theDiv.style.display = "block";
		}
	}
}

function radioShowDiv(radioObject)
{
	divs = new Array("card_data", "giro");

	if(radioObject.value == undefined)
		alert("Error: Browser compatability issue.");
	else
	{
		ro = radioObject.value;
		
		for(i=0;i<divs.length;i++)
		{
			theDiv = document.getElementById(divs[i]);
			theDiv = theDiv.style;
			if(ro == divs[i])
			{
				theDiv.visibility = "visible";
				theDiv.display = "block";
			}
			else
			{
				theDiv.visibility = "hidden";
				theDiv.display = "none";
			}			
		}
	}
}

function toggleDiv(divName)
{
	theDiv = findObj(divName);
	
	if(theDiv.style==undefined)
		alert("Error: Could not find the div style.");
	
	if(theDiv.style.visibility == "hidden" || theDiv.style.display == "none")
	{
		theDiv.style.visibility = "visible";
		theDiv.style.display = "block";
	}
	else
	{
		theDiv.style.visibility = "hidden";
		theDiv.style.display = "none";
	}
}

function submitForm(formName)
{
	theForm = findObj(formName);
	theForm.submit();
}

function ucfirst(str)
{	
	rstr = str.substr(0,1).toUpperCase() + str.substr(1,str.length);
	
	return rstr;
}


function verifyEmail(str) 
{
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)

	if (str.indexOf(at)==-1)													{	return false	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr) 	{	return false	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)	{	return false	}
	if (str.indexOf(at,(lat+1))!=-1)											{	return false	}
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)		{	return false	}
	if (str.indexOf(dot,(lat+2))==-1)											{	return false	}
	if (str.indexOf(" ")!=-1)													{	return false	}
	
	return true					
}

function validateCardForm()
{
	var errors = new Array();
	cardno = findObj('cardno');
	cardno = cardno.value;
	expmonth = findObj('expmonth');
	expmonth = expmonth.value;
	expyear = findObj('expyear');
	expyear = expyear.value;
	cvc = findObj('cvc');
	cvc = cvc.value;
	
	if(cardno.length < 16)
		errors[errors.length] = "Kortnummeret skal minimum være 16 cifre.";
	if(cvc.length < 3)
		errors[errors.length] = "Du skal udfylde mindst 3 kontrolcifre.";
		
	//Handle errors
	if(errors.length > 0)
	{
		str = "";
		str += "Der opstod følgende fejl:\n";
		for(i=0;i<errors.length;i++)
		{			
			str += "- " + errors[i] + "\n";
		}
		alert(str);
	}
	return (errors.length == 0)	;
}

document.person_required_fields = new Array();
document.person_email_fields = new Array();
document.shipping_required_fields = new Array();

function validateForm(formName)
{
	errors = new Array();
	theform = findObj(formName);
	if(formName == "form_address_data")
	{
			
		required_fields = document.person_required_fields;
		for(i=0;i<required_fields.length;i++)
		{
			obj = findObj(required_fields[i]);
			obj = obj.value;
			if(obj=="" || obj==" ")
			{
				errors[errors.length] = ucfirst(required_fields[i]) + " skal udfyldes.";
			}
		}
		
		email_fields = document.person_email_fields;
		for(i=0;i<email_fields.length;i++)
		{
			obj = findObj(email_fields[i]);
			obj = obj.value;
			if(obj!="" && obj!=" ")
			{
				if(verifyEmail(obj)==false)
					errors[errors.length] = "'" + obj + "' er ikke en gyldig e-mail adresse.";
			}
		}
		
		osa = findObj('osa_false');	//Other shipping address = osa
		if(osa.checked == false)
		{
			shipping_fields = document.shipping_required_fields;
			for(i=0;i<shipping_fields.length;i++)
			{
				obj = findObj(shipping_fields[i]);
				obj = obj.value;
				if(obj=="" || obj==" ")
				{
					field_name = shipping_fields[i].substr(9, shipping_fields[i].length);
					errors[errors.length] = "Anden adresse: " + ucfirst(field_name) + " skal udfyldes.";
				}
			}
		}
		
		conditions_accept = findObj("conditions");
		if(conditions_accept.checked != true)
			errors[errors.length] = "Du skal acceptere salgs- og leveringsbetingelserne.";		
	}
	
	//Handle errors
	if(errors.length > 0)
	{
		str = "";
		str += "Der opstod følgende fejl:\n";
		for(i=0;i<errors.length;i++)
		{			
			str += "- " + errors[i] + "\n";
		}
		alert(str);
	}
	document.frv = (errors.length == 0)
	if(document.frv == true)
	{
		theform.submit();
	}
}

function validateQs(first_q, q_per_page)
{
	errors = "";

	for(i=first_q;i<(first_q+q_per_page);i++)
	{		
		q1 = findObj("oca_q_" + i + "_1");
		q2 = findObj("oca_q_" + i + "_2");
		q3 = findObj("oca_q_" + i + "_3");
		
		if(q1.checked == false && q2.checked == false && q3.checked == false)
		{
			errors += "Besvar venligst alle spørgsmål.\n\nSpørgsmål " + i + " er ubesvaret.";
			break;
		}
	}
	if(errors)
		alert(errors);
	
	document.doc_rv = (errors == "");
}

function validateOCAform()
{
	thename = findObj("Name");
	thename = thename.value;
	age = findObj("Age");
	age = age.value;
	telephone = findObj("Telephone");
	telephone = telephone.value;
	mobile = findObj("Mobile");
	mobile = mobile.value;
	email = findObj("Email");
	email = email.value;
	gender = findObj("Gender");
	gender = gender.value;
	errors = "";
	

	if(thename=="")
		errors += "Du skal udfylde dit navn.\n";
	if(isNaN(age) || age=="")
		errors += "Du skal udfylde din alder.\n";
	if(age < 18 && isNaN(age) == false && age != "")
		errors += "Du skal være mindst 18 år for at udfylde denne test.\n";
	if(gender == -1)
		errors += "Du skal vælge dit køn.\n";
	if(telephone == "" && mobile == "")
		errors += "Du skal udfylde mindst ét telefonnummer.\n";

	if(email != "")
	{
		pos = email.indexOf('@');
		if(pos < 1 || pos==(email.length-1))
			errors += "Du skal udfylde en korrekt e-mail adresse.";
	}
	
	if(errors != "")
		alert(errors);
	
	document.doc_rv = (errors == "");
}

function validateMemForm()
{
	thename = findObj("mem_name");
	thename = thename.value;
	age = findObj("mem_age");
	age = age.value;
	phone = findObj("mem_phone");
	phone = phone.value;
	mobile = findObj("mem_mobile");
	mobile = mobile.value;
	email = findObj("mem_email");
	email = email.value;
	zip = findObj("mem_zip");
	zip = zip.value;
	errors = "";
	
	if(thename == "" || thename == " ")
		errors += "Du skal udfylde dit navn.\n";
	if(isNaN(age) || age=="")
		errors += "Du skal udfylde din alder.\n";
	if(age < 18 && isNaN(age) == false && age != "")
		errors += "Du skal være mindst 18 år for at udfylde denne test.\n";
	if(phone == "" && mobile == "")
		errors += "Du skal udfylde mindst ét telefonnummer.\n";
	if(email != "")
	{
		pos = email.indexOf('@');
		if(pos < 1 || pos==(email.length-1))
			errors += "Du skal udfylde en korrekt e-mail adresse.";
	}
	if(isNaN(zip) || zip =="")
		errors += "Du skal udfylde dit postnummer.\n";
	
	for(i=1;i<39;i++)
	{
		if(i==16 || i==17)
		{
			q = findObj("mem"+i);
			if(q.value == "")
			{
				errors += "Besvar venligst alle spørgsmål.\n\nSpørgsmål " + i + " er ubesvaret.";
				break;
			}
		}
		else
		{
			obj_name = "mem" + i + "_";
			q1 = findObj(obj_name + 1);
			q2 = findObj(obj_name + 2);
			q3 = findObj(obj_name + 3);		
			
			if(q1.checked == false && q2.checked == false && q3.checked == false)
			{
				errors += "Besvar venligst alle spørgsmål.\n\nSpørgsmål " + i + " er ubesvaret.";
				break;
			}
		}
	}
	
	if(errors != "")
		alert(errors);
	
	document.doc_rv = (errors == "");	
}