/*
	Huomaa, kohdesivun ja thickboxien formien kenttien validointi vaatii erinimiset funktiot, koska id pitää olla yksilöivä ja 
	thickbox tulkitaan osaksi kohdesivua. Heittää muuten virheilmoitukset kohdesivun lomakkeelle thickboxin lomakkeen sijaan.
*/
	//Globaalimuuttujat
	var allowed_chars_email = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	var allowed_chars_phone = new RegExp("^(\\+)?\\d{2,6}[\-]?[\\d]{6,7}$", "g"); // +358 400 12 34 56, 03 1234567

					function trim(str) // trim, joka siivoaa kaikki spacet pois (tarvitaan puhelinnumeroiden tarkistukseen)
					{
					    if(!str || typeof str != 'string')
					        return null;
					
					     return str.replace(/[\s]+/g, '') ;
					}

					function validateInput(){
						
						//alert("validateInput");
						
						var errormsg="";
						var errorsfound=false;
						
						if(document.getElementById('messageField').value.length > 1024){
							document.getElementById('jsErrordiv_msg').style.display='inline';
							errorsfound=true;
							}

						if(document.getElementById('nameField').value == '' ){
							document.getElementById("js_name").innerHTML = "Nimi puuttuu.";
							document.getElementById('jsErrordiv_name').style.display='block';
							errorsfound=true;
							}
						if(document.getElementById('emailField').value == '' && document.getElementById('phoneField').value == '' ){
							document.getElementById("js_email").innerHTML = "S&auml;hk&ouml;postiosoite tai puhelinnumero on pakollinen tieto.";
							document.getElementById('jsErrordiv_email').style.display='block';
							errorsfound=true;
							}

						if(document.getElementById('emailField').value != '' && !allowed_chars_email.test(document.getElementById('emailField').value)){
							document.getElementById("js_email").innerHTML = "S&auml;hk&ouml;postiosoite ei ole oikeassa muodossa.";
							document.getElementById('jsErrordiv_email').style.display='block';
							errorsfound=true;
							}
												
						if(document.getElementById('phoneField').value != '' && !allowed_chars_phone.test(trim(document.getElementById('phoneField').value))){
							document.getElementById("js_phone").innerHTML = "Puhelinnumero ei ole oikeassa muodossa.";
							document.getElementById('jsErrordiv_phone').style.display='block';
							errorsfound=true;
							}

						if(errorsfound==true){
							return false;	
							}
						else { return true };


							
						return false;	
					}//validateInput
					
					function submitCheck(){
						//alert("submitCheck");
						var messageField_default_value="Kirjoita tähän viestisi tai kysymyksesi myyjälle.";
						
						document.getElementById('jsErrordiv_msg').style.display='none';
						document.getElementById('jsErrordiv_name').style.display='none';
						document.getElementById('jsErrordiv_email').style.display='none';
						document.getElementById('jsErrordiv_phone').style.display='none';
						
						if (validateInput() == true){
							if(document.getElementById('messageField').value == messageField_default_value){
								document.getElementById('messageField').value = '';
							}
							document.contact_form.submit();
						} // validateInput

				}//submitCheck
				
				//----------------------- thickbox-funktiot:
				
				
					function validateInput_tb(){
						
						//alert("validateInput");
						
						var errormsg="";
						var errorsfound=false;
						
						if(document.getElementById('messageField_tb').value.length > 1000){
							//alert("messageField_tb error");
							document.getElementById('jsErrordiv_msg_tb').style.display='block';
							errorsfound=true;
							}

						if(document.getElementById('nameField_tb').value == '' ){
							//alert("nameField_tb error");
							document.getElementById("js_name_tb").innerHTML = "Nimi puuttuu.";
							document.getElementById('jsErrordiv_name_tb').style.display='block';
							errorsfound=true;
							}
						
						if(document.getElementById('nameField_tb').value.length > 50 ){
							//alert("nameField_tb error");
							document.getElementById("js_name_tb").innerHTML = "Nimi on liian pitk&auml;.";
							document.getElementById('jsErrordiv_name_tb').style.display='block';
							errorsfound=true;
							}
							
						if(document.getElementById('emailField_tb').value == '' && document.getElementById('phoneField_tb').value == '' ){
							//alert("emailField_tb/phoneField_tb error");
							document.getElementById("js_email_tb").innerHTML = "S&auml;hk&ouml;postiosoite tai puhelinnumero on pakollinen tieto.";
							document.getElementById('jsErrordiv_email_tb').style.display='block';
							errorsfound=true;
							}

						if(document.getElementById('emailField_tb').value != '' && !allowed_chars_email.test(document.getElementById('emailField_tb').value)){
							//alert("emailField_tb regexp error");
							document.getElementById("js_email_tb").innerHTML = "S&auml;hk&ouml;postiosoite ei ole oikeassa muodossa.";
							document.getElementById('jsErrordiv_email_tb').style.display='block';
							errorsfound=true;
							}
						
						if(document.getElementById('phoneField_tb').value != '' && !allowed_chars_phone.test(trim(document.getElementById('phoneField_tb').value))){
							//alert("phoneField_tb regexp error");
							document.getElementById("js_phone_tb").innerHTML = "Puhelinnumero ei ole oikeassa muodossa.";
							document.getElementById('jsErrordiv_phone_tb').style.display='block';
							errorsfound=true;
							}
							
						// lomakekohtaiset kentät
						
						// showing: esittelyaika
						if(document.getElementById('proposed_showing_time') != null && document.getElementById('proposed_showing_time').value.length > 200){
							//alert("proposed_showing_time error");
							document.getElementById('jsErrordiv_proposed_showing_time_tb').style.display='block';
							errorsfound=true;
							}
						
						// estimate: huoneluku
						if(document.getElementById('roomcount') != null && document.getElementById('roomcount').value.length > 100){
							//alert("roomcount error");
							document.getElementById('jsErrordiv_roomcount_tb').style.display='block';
							errorsfound=true;
							}

						// estimate: pinta-ala
						if(document.getElementById('area_m2') != null && document.getElementById('area_m2').value.length > 100){
							//alert("area_m2 error");
							document.getElementById('jsErrordiv_area_m2_tb').style.display='block';
							errorsfound=true;
							}

						// estimate: sijainti
						if(document.getElementById('location') != null && document.getElementById('location').value.length > 100){
							//alert("location error");
							document.getElementById('jsErrordiv_location_tb').style.display='block';
							errorsfound=true;
							}

						if(errorsfound==true){
							return false;	
							}
						else { return true };

						return false;	
					}//validateInput
					
					function submitCheck_tb(){
						//alert("submitCheck_tb");
						document.getElementById('jsErrordiv_msg_tb').style.display='none';
						document.getElementById('jsErrordiv_name_tb').style.display='none';
						document.getElementById('jsErrordiv_email_tb').style.display='none';
						document.getElementById('jsErrordiv_phone_tb').style.display='none';
						
						if(document.getElementById('proposed_showing_time') != null){
							document.getElementById('jsErrordiv_proposed_showing_time_tb').style.display='none';
							}
						
						if(document.getElementById('roomcount') != null){
							document.getElementById('jsErrordiv_roomcount_tb').style.display='none';
							}

						if(document.getElementById('area_m2') != null){
							document.getElementById('jsErrordiv_area_m2_tb').style.display='none';
							}

						if(document.getElementById('location') != null){
							document.getElementById('jsErrordiv_location_tb').style.display='none';
							}						
						
						if (validateInput_tb() == true){
							//alert("submit");
							document.contact_form_tb.submit();
						}
				}//submitCheck_tb

				
				function enable_cc_field(){
					if(document.getElementById('emailField_tb').value.length > 0){
						document.getElementById('cc').disabled=false;
						//alert("enable_cc_field");
					}
					else{
						document.getElementById('cc').disabled=true;
						}
				}

				
				//----------------------- OM = oletko myymässä = ays = Are You Selling -palvelun tarkistukset:
				function validateInput_ays(){ 
				
					var errormsg="";
					var errorsfound=false;
					
					// message
					if(document.getElementById('OM_sender_message').value.length > 1024){
						document.getElementById("js_msg").innerHTML = "Viesti on liian pitkä.";
						errorsfound=true;
						}
					else {document.getElementById("js_msg").innerHTML = "";}

					// name
					if(document.getElementById('OM_sender_name').value == '' ){
						document.getElementById("js_name").innerHTML = "Nimi puuttuu.";
						errorsfound=true;
						}
					else {document.getElementById("js_name").innerHTML = "";}

					// phone
					if(document.getElementById('OM_sender_phone').value == ''){
						document.getElementById("js_phone").innerHTML = "Puhelinnumero puuttuu.";
						errorsfound=true;
					}
					else if (document.getElementById('OM_sender_email').value != '' && !allowed_chars_phone.test(trim(document.getElementById('OM_sender_phone').value))){
							document.getElementById("js_phone").innerHTML = "Puhelinnumero ei ole oikeassa muodossa.";
						errorsfound=true;
					}
					else {document.getElementById("js_phone").innerHTML = "";}
					
					// email			
					if(document.getElementById('OM_sender_email').value != '' && !allowed_chars_email.test(document.getElementById('OM_sender_email').value)){
						document.getElementById("js_email").innerHTML = "S&auml;hk&ouml;postiosoite ei ole oikeassa muodossa.";
						errorsfound=true;
						}
					else {document.getElementById("js_email").innerHTML = "";}
					
					if(errorsfound==true){
						return false;	
						}
					else { return true };
					
					return false;	
					
				}//validateInput_ays
