/** 
 *         Form validator
 *        (c) 2004 NEGESO
 *    Changed by Yuri Shanoilo
 *
 * In all forms which should be validated
 * please add onSubmit="return validate(this)"
 * all forms with class="contact". Please
 * insert required="true" attribute-value pair
 * into such validated objects:
 * - required text field;
 * - fieldset, in which at least one checkbox
 *   should be checked.
 * 
 * 
 * Example:
 * <form class="contact" onSubmit="return validate(this)">
 * <input type="text" required="true">
 * <fieldset required="true"><input type="checkbox"><input type="checkbox"></fieldset>
 * <input type="submit">
 * </form>
 */
 
var message = {
    "en" : "Please fill in all required information",
    "nl" : "Vult u a.u.b. de verplichte velden in",
    "es" : "Por favor rellene la siguiente información",
    "de" : "Bitte füllen Sie alle gefragten Informationen aus",
    "fr" : "Merci de compléter toutes les informations",
    "it" : "Per favore inserisci le informazioni richieste",
    "pt" : "Complete toda a informa????o solicitada",
    "pl" : "Proszę podać wszystkie wymagane informacje"
};

var language;

function doShow(form) {
    form.style.display = "block";
}

var EmailIsNotValid = "Email is not valid";
var FillAllRequiredFields = message[lang];
if (lang == "en")
{
	EmailIsNotValid = "Email is not valid";
}

if (lang == "nl")
{
	EmailIsNotValid = "Dit is geen geldig email adres";
}

if (lang == "de")
{
	EmailIsNotValid = "Email ist hinfällig";
}

if (lang == "fr")
{
	EmailIsNotValid = "L'e-mail est incorrect";
}

if (lang == "it")
{
	EmailIsNotValid = "L'indirizzo Email non è valido";
}

if (lang == "pl")
{
	EmailIsNotValid = "Zły e-mail";
}

if (lang == "es")
{
	EmailIsNotValid = "E-mail inválido";
}

//Form validator
function validate( frm )
{
	var rt = new Object();
	rt.email = true;
	rt.required = true;
	if (frm.first_obligatory_email_field) {
		frm.first_obligatory_email_field.value = "";
	}
	
	//return:
	//rt.email - true if all emails are valid
	//rt.required - if all required fields are filled in

	rt = walkThroughForm( frm, rt , frm);
	//
	
	if ( rt.email==true &&  rt.required == true)//OK
	{
		return true;
	}
	else if (rt.email==false &&  rt.required == false)
	{
		alert(EmailIsNotValid + "\n" + FillAllRequiredFields);
		return false;
	}
	else if ( rt.email==true &&  rt.required == false)
	{
		alert(FillAllRequiredFields);
		return false;
	}
	else if (rt.email==false &&  rt.required == true)
	{
		alert(EmailIsNotValid);
		return false;
	}
	
	return false;
}
	
//Checks if String is valid email	
function isEmailAddr(email)
{
  var result = false;
  var theStr = new String(email);
  var index = theStr.indexOf("@");
  if (index > 0)
  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}
//Copies temp_name attribute to name attribute of all fields, 
//Copies the first required email field to first_obligatory_email_field,
//returns validation results:
//ret.email - true if all emails are valid
//ret.required - if all required fields are filled in
function walkThroughForm( obj, ret , frm)
{
	if ( (obj.tagName == "INPUT" && (obj.type == "text" || obj.type == "password" || obj.type == "file" )) 
		 || obj.tagName == "TEXTAREA")
	{
	    obj.style.backgroundColor = "";
		if (obj.temp_name != null )
		{
			obj.name = obj.temp_name;
		}
		if (obj.required == "true" && obj.value=="")
		{
			ret.required = false;
			obj.style.backgroundColor= "red";
		}
		if (obj.tagName == "INPUT" && obj.is_email == "true" && obj.value!=null && obj.value!="" && !isEmailAddr(obj.value))
		{
			ret.email = false;
			obj.style.backgroundColor= "red";
		}
/*
		if (obj.tagName == "INPUT" && obj.is_email == "true" && obj.required == "true" && obj.value!=null && obj.value!="" && frm.first_obligatory_email_field.value == "")
		{
			frm.first_obligatory_email_field.value = obj.value;
		}
*/
	}
	else if ( (obj.tagName == "INPUT" && (obj.type == "radio" || obj.type == "checkbox" ))
	           || obj.tagName=="SELECT")
	{
		if (obj.temp_name != null )
		{
			obj.name = obj.temp_name;
		}
	}
	for (var i=0; i<obj.childNodes.length; i++)
	{
		ret = walkThroughForm( obj.childNodes[i], ret , frm);
	}
	return ret;
}

/*
function validate(form) {
    var fields;
    var elements = new Array("INPUT","FIELDSET","TEXTAREA");
    var validated = true;
    language = (window.lang) ? window.lang : "en";
    var re = /\d{4} ?[A-Za-z]{2}/;          // Reg-exp to match postcode (e.g. 8243WE or 8243 WE)

    for (i in elements) {
        fields = form.getElementsByTagName(elements[i]);
        for (var j=0; j<fields.length; j++) {                      // run through all INPUT fields
            if (fields[j].getAttribute('required') && !validateBlock(fields[j])) {  // required field is empty
//                        addStyle(fields[j], "red");
				fields[j].style['backgroundColor'] = "#c3332c";
				fields[j].style['color'] = "#ffffff";
                        validated = false;
            } else if(fields[j].name == "Postcode" && !re.test(fields[j].value)) {  // wrong postcode
//                        addStyle(fields[j], "red");
				fields[j].style['backgroundColor'] = "#c3332c";
				fields[j].style['color'] = "#ffffff";
                        validated = false;
            } else {                                                                                                        //required field is ok
//			removeStyle(fields[j], "red");
				fields[j].style['backgroundColor'] = "#ffffff";
				fields[j].style['color'] = "#000000";
            }
        }
    }
        if (!validated)
	{
		alert(message[language]);
	}
        return validated;
}
*/

/*
 * Checks if obj contains valid input.
 * For the list of valid objects see above.
 */
function validateBlock(obj) {
    if (obj.tagName == "INPUT") {
        if (obj.value) return true;
    } else if (obj.tagName == "TEXTAREA") {
    	if (obj.value) return true;
    } else if (obj.tagName == "FIELDSET") {
        checkboxes = obj.getElementsByTagName("INPUT");
        checked = false;
        for (var i=0; i<checkboxes.length; i++) {
                if (checkboxes[i].type=="checkbox" || checkboxes[i].type=="radio") {
                    if (checkboxes[i].checked) checked = true;
                }
        }
        return checked;
    }
    return false;
}


function loadImage(imgName, imgWidth, imgHeight)
{
	imgWidth += 12;
	imgHeight += 15;
	var myt = "newWin = window.open(\"\", \"\", \"height="+ imgHeight + ", width=" + imgWidth + ",resizable=yes\")";
	eval(myt);
	newWin.document.write("<body style=\"padding: 0px; margin: 0px;\">");
	newWin.document.write("<table>");
	newWin.document.write("<tr>");
	newWin.document.write("<td style=\"background-color: #FFFFFF; padding: 5px;\">");
	newWin.document.write("<img src=\"" + imgName + "\" border=\"0\">");
	newWin.document.write("</td>");
	newWin.document.write("</tr>");
	newWin.document.write("</table>");
	newWin.document.write("</body>");
	newWin.document.close();
}