/*
 * GOING TO PUT ALL THE FORM VALIDATION IN THIS FILE
 * 
 */
////////////////////////////////////////////////////////////////////////////////////
/* GENERAL TEXT */

var gentext_yourname				= "Ime";
var gentext_yourphone				= "Telefon";
var gentext_youremail				= "E-mail";
var gentext_yourquestion			= "Vase pitanje";
var gentext_title					= "Titula";
var gentext_forename				= "Ime";
var gentext_surname					= "Prezime";
var gentext_address					= "Adresa";
var gentext_town					= "Grad";
var gentext_telephone				= "Telefon";
var gentext_email					= "E-mail";
var gentext_location				= "Zentrum";
var gentext_wherehearaboutus		= "Gdje ste culi za nas?";
var gentext_whencallyou				= "Kada biste zeljeli da Vas nazovemo";
var gentext_enterpostcode			= "Postanski broj";

var gentext_enterthefollowing		= "Molimo unesite sljedece:";
var gentext_entervalidemail		= "Molimo unesite ispravnu e-mail adresu";

var gentext_clinic                  = "Nasa klinika";

// Start of variables for the refer a friend
var gentext_refer_a_friend_referrer_email   = "Your Email";
var gentext_refer_a_friend_friends_email    = "Your friends email";
var gentext_refer_a_friend_comment          = "Message to your friend";
// End of variables for the refer a friend


//Start of variables for question and answer page
var gentext_q_fname     = "Forename";
var gentext_q_sname     = "Surname";
var gentext_q_title     = "Question Title";     
var gentext_q_greeting  = "Email Greeting";
var gentext_q_ending    = "Email Ending";   
var gentext_q_category  = "Question Category";
var gentext_q_type  = "Question Type";      
var gentext_question    = "Question";       
var gentext_answer      = "Answer"; 
var email_confirmation1 = "Do you want to send an email to the person who asked this question?";
var email_confirmation2 = "A reply has already been sent regarding this question. Are you sure you want to send another email?";

//End of variables for question and answer page


////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
//-----------------------------------------------------------------------------
// Utility Functions
//-----------------------------------------------------------------------------

function trim(str) {
    return( (""+str).replace(/^\s*([\s\S]*\S+)\s*$|^\s*$/,'$1') );
}

function checkEmail(str) {
	  var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;  
	  return emailPattern.test(str);  
}

function checkPostcode( p ) {
    
    var postcodeRegEx = /^[A-Z]{1,2}[0-9]{1,2}[A-Z]? ?[0-9][A-Z]{2}$/i;
    return postcodeRegEx.test( p );
    
}

function checkPhoneNumber(str) {

	// numbers, (, ), ., -, /, + and spaces only, size 7-20 signs
	var phoneRegEx = /(^[\/\.\+\-\s\(\)0-9]{7,20}$)/i;
	return phoneRegEx.test( p );
    
}
//-----------------------------------------------------------------------------
// Laser Form Etc
//-----------------------------------------------------------------------------

function storeLocatorPuffCheck() {
    
    url =  'http://' + window.location.hostname + '/winkel/';
    targ = document.getElementById('clinics');
    if(targ)
    {
      if(targ.options[targ.selectedIndex].value != '') {
          url = url + targ.options[targ.selectedIndex].value + '.html'; 
          window.location = url;
      }
    }
    else
    {
      window.location = '/';        
    }
}

function checkStoreLocatorForm() {
    // lets validate first
    isSpecsContacts = document.getElementById('isSpecsContacts');
    isLaser = document.getElementById('isLaser');
    isIOL = document.getElementById('isIOL');
    targ = document.getElementById('postcodeTown');
    
    if(targ.value == '' || (isSpecsContacts.checked == false && isLaser.checked == false && isIOL.checked == false))
    {
        alert(gentext_noOptionsEntered);
        return false;
    } 
    return true;
}

function enquiryFormCheck(form, formType) {
    with (form) {
        fields = new Array;         
        labels = new Array;
       
        fields[0] = Title;          labels[0] = gentext_title;
        fields[1] = Forename;       labels[1] = gentext_forename;
        fields[2] = Surname;        labels[2] = gentext_surname;
        fields[3] = Address1;       labels[3] = gentext_address;
        fields[4] = Town;           labels[4] = gentext_town;
        fields[5] = Telno;          labels[5] = gentext_telephone;  
        fields[6] = Email;          labels[6] = gentext_email;
    
        required = "";
        count = 0;                  
        for (i=0; i<fields.length; i++) {                           
            if (trim(fields[i].value).length < 1) {
                count++;                
                required += "\n- " + labels[i];
                if (count == 1)
                    first = fields[i];
            }
        }
        
        /*
        if (Postcode.value.length > 0 && !checkPostcode(Postcode.value)) {
            count++;
            required += "\n- " + gentext_entervalidpostcode;
            if (count == 1) 
                first = Postcode;
        }
        */
        // Take into account the 18001 and 18002 numbers for txt relay service
        
        if (Telno.value.length > 0 && !checkPhoneNumber(Telno.value)) {
            count++;
            required += "\n- " + gentext_entervalidphone;
            if (count == 1) 
                first = Telno;
        }
        
        if (Email.value.length > 0 && !checkEmail(Email.value)) {
            count++;
            required += "\n- " + gentext_entervalidemail;
            if (count == 1) 
                first = Email;
        }   
                
        if (count == 0) {
            return true;
        }
        else {                          
            alert(gentext_enterthefollowing + required);
        }   
        return false;
    }
}

function callBackCheck(form) {
    with (form) {
        fields = new Array;         
        labels = new Array;             
        fields[0] = callback_name;      labels[0] = gentext_yourname;
        fields[1] = callback_phone;     labels[1] = gentext_yourphone;
        fields[2] = callback_time;      labels[2] = gentext_whencallyou;        
        required = "";
        count = 0;                  
        for (i=0; i<fields.length; i++) {                           
            if (trim(fields[i].value).length < 1) {
                count++;                
                required += "\n- " + labels[i];
                if (count == 1)
                    first = fields[i];
            }
        }    
        if (callback_phone.value.length > 0 && !checkPhoneNumber(callback_phone.value)) {
            count++;
            required += "\n- " + gentext_entervalidphone;
        }       
        if (count == 0)             
            return true;
        else {                          
            alert(gentext_enterthefollowing + required);
            first.focus();
        }   
        return false;
    }
}       

function askQuestionCheck(form) {
    with (form) {
        fields = new Array;         
        labels = new Array;             
        fields[0] = question_name;      labels[0] = gentext_yourname;
        fields[1] = question_email;     labels[1] = gentext_youremail;
        fields[2] = question;           labels[2] = gentext_yourquestion;       
        required = "";
        count = 0;                  
        for (i=0; i<fields.length; i++) {                           
            if (trim(fields[i].value).length < 1) {
                count++;                
                required += "\n- " + labels[i];
                if (count == 1)
                    first = fields[i];
            }
        }                       
        if (count == 0) {
            if (checkEmail(question_email.value)) 
                return true;
            else {
                alert(gentext_entervalidemail);
                question_email.focus();
            }
        }
        else {                          
            alert(gentext_enterthefollowing + required);
            first.focus();
        }   
        return false;
    }
}

function contactFormCheck(form) {
    with (form) {
        fields = new Array;         
        labels = new Array;             
        fields[0] = question_name;      labels[0] = gentext_yourname;
        fields[1] = question_email;     labels[1] = gentext_youremail;
        fields[2] = question;           labels[2] = gentext_yourquestion;       
        required = "";
        count = 0;                  
        for (i=0; i<fields.length; i++) {                           
            if (trim(fields[i].value).length < 1) {
                count++;                
                required += "\n- " + labels[i];
                if (count == 1)
                    first = fields[i];
            }
        }                       
        if (count == 0) {
            if (checkEmail(question_email.value)) 
                return true;
            else {
                alert(gentext_entervalidemail);
                question_email.focus();
            }
        }
        else {                          
            alert(gentext_enterthefollowing + required);
            first.focus();
        }   
        return false;
    }
}

function moderatedQandACheck(form) {
    with (form) {
    	
        fields = new Array;         
        labels = new Array;
        fields[0] = question_name;      labels[0] = gentext_yourname;
        fields[1] = question_email;     labels[1] = gentext_youremail;
        fields[2] = question;           labels[2] = gentext_yourquestion; 
       
        required = "";
        count = 0;                  
        for (i=0; i<fields.length; i++) {                           
            if (trim(fields[i].value).length < 1) {
                count++;                
                required += "\n- " + labels[i];
                if (count == 1)
                    first = fields[i];
            }
        }                       
        if (count == 0) {
            if (checkEmail(question_email.value)) 
                return true;
            else {
                alert(gentext_entervalidemail);
                question_email.focus();
            }           
        }
        else {                          
            alert(gentext_enterthefollowing + required);
            first.focus();
        }   
        return false;
    }
}


////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
//-----------------------------------------------------------------------------
//The autocomplete
//-----------------------------------------------------------------------------
/* Autocomplete code for search form at top right on all pages */
$(document).ready(function(){
	
	// Initialise the toggly box for the laser competition
	if ($("#EnterCompetition").length > 0){
		$('#EnterCompetition').click(function() {
			$('#question_table').toggle();
		});
	}
	
	
	$(function() {
		var cache = {},
			lastXhr;
		$( "#searchfield" ).autocomplete({
			minLength: 3,
			delay: 450,
			source: function( request, response ) {
				var term = request.term;
				if ( term in cache ) {
					response( cache[ term ] );
					return;
				}

				lastXhr = $.getJSON( "/inc/autocomplete/output.php", request, function( data, status, xhr ) {
					cache[ term ] = data;
					if ( xhr === lastXhr ) {
						response( data );
					}
				});
			}
		});
	});
});

