/* **********************************************************************
Site:					www.rechtsanwalt-schulrecht.de
Filename:			formcheck.js
Description:	check form entries before submit
Author:				© 2008 sebastian.becker@berlin.de (Sebastian Becker)
********************************************************************** */

if(!d) var d = document;
if(!w) var w = window;
if(!lang) var lang = "de";

// alert("formcheck.js included");

var required_msg =lang=="de"? "\n(* = erforderliches Feld)":"\n(* = required field)";
var confirm_reset_msg =lang=="de"? "Möchten Sie wirklich alle Einträge dieses Formulars zurücksetzen?":"Do you really want to reset all entries of this form?";
var topic_msg =lang=="de"? "Bitte wählen Sie Ihr Anliegen.":"Please choose your concern.";
var firstname_msg =lang=="de"? "Bitte geben Sie Ihren Vornamen ein.":"Please enter your first name.";
var lastname_msg =lang=="de"? "Bitte geben Sie Ihren Nachnamen ein.":"Please enter your last name.";
var email_msg =lang=="de"? "Bitte geben Sie Ihre e-Mail-Adresse ein.":"Please enter your email address.";
var email_format_msg =lang=="de"? " ist kein korrektes e-Mail-Format.\nBitte überprüfen Sie Ihre Eingabe.":" is not a correct email format.\nPlease check your entry.";
var phone_msg =lang=="de"? "Bitte geben Sie Ihre Telefonnummer ein.":"Please enter your phone number.";
var address_msg =lang=="de"? "Bitte geben Sie Ihre Straße und Hausnummer ein.":"Please enter your address.";
var city_msg =lang=="de"? "Bitte geben Sie Ihren Wohnort ein.":"Please enter your city.";
var zip_msg =lang=="de"? "Bitte geben Sie Ihre Postleitzahl ein.":"Please enter your ZIP.";
var country_msg =lang=="de"? "Bitte geben Sie Ihr Land ein.":"Please enter your country.";
var message_msg =lang=="de"? "Bitte geben Sie Ihre Mitteilung ein.":"Please enter your message.";
var char_limit_msg =lang=="de"? "Zeichenanzahl begrenzt auf":"number of characters limited to";
var click_counter_msg =lang=="de"? "Manchmal sind die Server etwas langsam. Ein Klick genügt.\nDer Server wird vermutlich gleich antworten.\nDanke für Ihre Geduld.":"Sometimes the servers are a little slow. One click is sufficient.\nThe server will presumably answer soon.\nThanks for your patience.";

// form validation
function validateForm()
{

// check email format
var email_regex=/^[\w\_\-\.]+@[\w\_\-\.]+\.\w+$/;
var email_result=d.mailform.email.value.match(email_regex);

if(d.mailform.lastname.value=='') {
alert(lastname_msg+required_msg);
d.mailform.lastname.focus();
return false;
}

else if(d.mailform.firstname.value=='') {
alert(firstname_msg+required_msg);
d.mailform.firstname.focus();
return false;
}

else if(d.mailform.city.value=='') {
alert(city_msg+required_msg);
d.mailform.city.focus();
return false;
}

else if(d.mailform.address.value=='') {
alert(address_msg+required_msg);
d.mailform.address.focus();
return false;
}

else if(d.mailform.phone.value=='') {
alert(phone_msg+required_msg);
d.mailform.phone.focus();
return false;
}

else if(d.mailform.email.value=='')
{alert(email_msg+required_msg);
d.mailform.email.focus();
return false;
}

else if(email_result==null) {
alert('"'+d.mailform.email.value+' '+email_format_msg);
d.mailform.email.focus();
return false;
}

else if(d.mailform.message.value=='') {
alert(message_msg+required_msg);
d.mailform.message.focus();
return false;
}

else {
d.mailform.submit.disabled = true;
return clickCounter();
}
}


// prevent multiple mails
function clickCounter()
{
counter=0; counter++;
if(counter >1) {
if(counter >2)return false;
alert(click_counter_msg);
return false;
}
else {
return true;
}
}


// form reset confirmation
function confirmReset()
{
if(confirm(confirm_reset_msg)) {
d.mailform.message.value="";
return true;
}
else {return false;}
}


// max length warning
function maxlengthWarning(field_name,form_name)
{
if(!field_name)field_name="message";
if(!form_name)form_name="mailform";
max_length=eval("d."+form_name+"."+field_name+".maxlength");
if(eval("d."+form_name+"."+field_name+".value.length")>=max_length)alert(char_limit_msg + " " + max_length + " !");
}

// setTimeout("maxlengthWarning()",2000);


/* **********************************************************************
write hidden fields with js and screen parameters
********************************************************************** */

// get display screen width
var sWidth = "";
if(screen.width)
{sWidth = screen.width}
else if(w.innerWidth)
{sWidth = w.innerWidth}

// get display screen height
var sHeight = "";
if(screen.height)
{var sHeight = screen.height}
else if(w.innerHeight)
{var sHeight = w.innerHeight}

// get display screen color resolution (bits per pixel)
var sColDep = "";
if(screen.colorDepth)
{sColDep = screen.colorDepth}
else if(screen.pixelDepth)
{sColDep = screen.pixelDepth}

var sColors = Math.pow(2,sColDep)+"";
// sColors = sColors.substring(sColors.length-9,sColors.length-6)+"." + sColors.substring(sColors.length-6,sColors.length-3)+"." + sColors.substring(sColors.length-3,sColors.length);

// alert("Auflösung: " + sWidth + " x " + sHeight + " px\; Farbtiefe: " + sColDep + " bit (" + sColors + " Farben)")

// d.mailform.screen.value = "Auflösung: " + sWidth + " x " + sHeight + " px\; Farbtiefe: " + sColors + " bit (" + Math.pow(2,sColors) + " Farben)";


function hiddenFields()
{
if(screen.colorDepth) coldep = screen.colorDepth;
coldep==2?coldep="4":(coldep==4?coldep="16":(coldep==8?coldep="256":(coldep==16?coldep="65.000":(coldep==24?coldep="16.7 Mio.":(coldep==32?coldep="16.7 Mio.":coldep=0)))));
// alert(coldep + " Colors");

var hidden_str="";
hidden_str+='<input type="hidden" name="javascript" value="enabled" class="hidden">';
hidden_str+='<input type="hidden" name="user_agent" value="' + navigator.userAgent + '" class="hidden">';
if(screen.colorDepth)hidden_str+='<input type="hidden" name="color_depth" value="' + coldep + '" class="hidden">';
if(screen.width)hidden_str+='<input type="hidden" name="screen" value="' + screen.width + ' x ' + screen.height +'" class="hidden">';
if(top.document.referrer)hidden_str+='<input type="hidden" name="referer" value="' + top.document.referrer +'" class="hidden">';
// alert(hidden_str);
d.write(hidden_str);
}