function MM_openBrWindow(theURL,winName,features)
{ //v2.0
	window.open(theURL,winName,features);
}
function removeAllOptions(select_box)
{
	var i;
	for(i=select_box.options.length-1;i>0;i--)
	{
		select_box.remove(i);
	}
}
function addOption(select_box,text,value,selected)
{
	var optn = document.createElement("OPTION");
	optn.text = text;
	optn.value = value;
	select_box.options.add(optn);
	if (selected) {
	  optn.selected = true;
	}
}
var select_box;
var current_model;
function populate_select()
{
	var myajax=ajaxpack.ajaxobj;
	var selected;
	if (myajax.readyState == 4){ //if request of file completed
	  if (myajax.status==200 || window.location.href.indexOf("http")==-1){ 
		models = myajax.responseText.split("\n");
	//        select_box.disabled=false;
	//        select_box.options.length=0;
		for (var i=0, len=models.length; i<len; ++i){
		  if (models[i] == '')
		  {
			continue;
		  }
	
		  if (current_model == models[i]) {
			selected = true;
		  } else {
			selected = false;
		  }
	
		  addOption(select_box, models[i], models[i],selected);
		}
		
		if (select_box.options[0].text == "Loading...") {
			select_box.options[0].text = "Any";
		}
	  }
	}
}
function update_models(model_F)
{
	select_box = document.search_form.model_F;
	removeAllOptions(select_box);
	//    select_box.disabled=true;
	//    select_box.options.length=0;
	//    select_box.options[0] = new Option( 'Please wait...', '' );
	if (model_F) {
	   current_model = model_F;
	} else {
		current_model = 1;
		select_box.options[0] = new Option( 'Loading...', '' );
	}
	ajaxpack.getAjaxRequest('/ajax-models-list.php', 'maker_F='+document.search_form.maker_F.value, populate_select, 'txt');
}

function validate_email(field) {
  	field=trim(field); 
  	var emailFilter=/^.+@.+\..{2,3}$/;
  	var illegalChars= /[\!\"\?\$\%\^\&\*\+\=\{\}\~\#\?\(\)\<\>\,\;\:\\\/\"\[\]\ ]/;
  	
  	if ((!(emailFilter.test(field))) || (field.match(illegalChars))) {
  		return 0;
  	} else {
  		return 1;
  	}
  }
var temp = '';
function postcode_or_no() {
var postcode_value = document.search_form.postcode_F.value;
	temp = '';
	for (x = 0; x < postcode_value.length; x++) {
	  if (postcode_value.substr(x, 1) != ' ') {
		temp = temp + postcode_value.substr(x, 1);
	  }
	}
	if (temp == '') {
  document.search_form.postcode_F.value = '';
  return false;
	} else {	  
	  return true;
	}
}
function trim (str) {
	 str = this != window? this : str;
	 return str.replace(/^\s+|\s+$/g,"");
  }
function validate_postcode(field) {
  	var postcodeFilter = /[a-z0-9]/i;
		var illegalChars = /[\!\"\`\$\%\^\@\_\-\'\|\&\*\+\=\{\}\~\#\?\(\)\<\>\,\.\;\:\\\/\[\]]/;
		var first_char = field.substr(0, 1);
		var numbers = '1234567890';
		var postcode_value = '';
		var counter = 0;
		var positions = new Array (field.length);
		
		for (x = 0; x < field.length; x++) {
		  if (numbers.indexOf(field.substr(x, 1)) != -1) {
		    positions[counter] = x;
		    counter = counter + 1;
		  }
		}
		
  	//document.search_form.postcode_F.value = postcode_value.toUpperCase();
  	//alert (' -' + document.search_form.postcode_F.value + '-\n');
  	
  	if (!postcodeFilter.test(field) || field.match(illegalChars) || numbers.indexOf(first_char) != -1 || counter > 3 || (counter == 0 && field.length > 2) || (positions[0] > 2 && field.length > 2) || (counter < 2 && field.length > 4)) {
  		return 0;
  	} else {
  		return 1;
  	}
  	
  }
function valid_postcode(postcode) {
  //AN NAA
  //ANN NAA
  //AAN NAA
  //AANN NAA
  //ANA NAA
  //AANA NAA
  postcode = trim(postcode.toUpperCase());
  var postcode_length = postcode.length;
  var spaces_counter = 0;
  var numbers_counter = 0;
  var numbers = '1234567890';
  var positions = new Array ();
  var valid_num_pos = true;
  var space_position;
  
  // Spaces counter
  for (x = 0; x < postcode_length; x++) {
    if (postcode.substr(x, 1) == ' ') { spaces_counter++; space_position = x; }
  }
  // Numbers counter
  for (y = 0; y < postcode_length; y++) {
    if (numbers.indexOf(postcode.substr(y, 1)) != -1) {
      positions[numbers_counter] = y; numbers_counter++;
    }
  }
  // Set  valid number positions
  switch(spaces_counter) {
    case 1: var numbers_positions = "12345"; break;
    default: var numbers_positions = "1234"; break;
  }
  // Get number positions in postcode
  for (z = 0; z < positions.length; z++) {
    if (numbers_positions.indexOf(positions[z]) == -1) {
      valid_num_pos = false; break;
    }
  }
  //Main logic
  if (postcode != 'Enter Postcode...' && postcode != '' && (postcode_length >= 2 && postcode_length <= 8) && spaces_counter <= 1 && valid_num_pos == true && numbers_counter >= 1) {
    if (postcode.search(' ') != -1 && (space_position >= 2 && space_position <= 4) && postcode_length >= 6) { // With space
      var after_space = postcode.substr(parseInt(postcode.search(' ') + 1), 1);
      if (numbers_counter >= 2 && numbers.indexOf(after_space) != -1) {
        switch(postcode_length) {
          case 6: if (numbers_counter <= 3 && space_position == 2) { return true; } else { return false; } break;
          case 7: if (numbers_counter <= 3 && space_position == 3) { return true; } else { return false; } break;
          case 8: if (numbers_counter = 3 && space_position == 4) { return true; } else { return false; } break;
          default: return false; break;
        }
      } else {
        return false;
      }
    } else if (postcode.search(' ') == -1 && (postcode_length >= 2 && postcode_length <= 7)) { // Without space
      if (numbers_counter >= 1) {
        switch(postcode_length) {
          case 2: if (numbers_counter = 1) { return true; } else { return false; } break;
          case 3: case 4: if (numbers_counter <= 2) { return true; } else { return false; } break;
          case 5: if (numbers_counter == 2) { return true; } else { return false; } break;
          case 6: case 7: if (numbers_counter >= 2 && numbers_counter <= 3) { return true; } else { return false; } break;
          default: return false; break;
        }
      } else {
        return false;
      }
    } else {
      return false;
    }
  } else { 
    return false;
  }
}
function validateSearchForm() {
	var valid = true;
	var msg = "";
	var min_price = parseInt(document.search_form.from_price_F.value);
	var max_price = parseInt(document.search_form.to_price_F.value);	
	if (document.search_form.email_F.value != 'Enter email address here...' && document.search_form.email_F.value != '') {
		if(!validate_email (document.search_form.email_F.value)) {
			msg = msg + "Please, enter a valid email address.\n";
			valid = false;
		}
	}

	if ((document.search_form.distance_F.value != 9999 || (document.search_form.email_F.value != '' && document.search_form.email_F.value != 'Enter email address here...' && validate_email (document.search_form.email_F.value))) && (document.search_form.postcode_F.value == '' || document.search_form.postcode_F.value== 'Enter Postcode...')) {
		msg = msg + "Please, enter your Post Code.\n";
		valid = false;
	}
	
	if (document.search_form.maker_F.value == '') {
		msg = msg + "Please choose a manufacturer.\n";			
		valid = false;
	}	
	if (min_price > max_price){
	  msg = msg + "Please, choose correct minimum and maximum prices.\n";
	  msg = msg + "Minimum price can not be larger than Maximum price.\n";
	  valid = false;
	}	
	//if ((document.search_form.postcode_F.value != 'Enter Postcode...' && document.search_form.postcode_F.value != '') && postcode_or_no()) {
	if (document.search_form.postcode_F.value != 'Enter Postcode...' && document.search_form.postcode_F.value != '') {
		var postcode_value = document.search_form.postcode_F.value;
		if (valid_postcode(postcode_value) == false) {
			msg = msg + "Please enter a valid UK postcode or postcode area/district eg. SW19.\n";
			valid = false;
		}
	}
	if(!valid)alert(msg);
	return valid;
}

function on_click(input) {
	var value = input.value;
	switch(input.name) {
		case 'postcode_F':
		  if (value == 'Enter Postcode...') {
				input.value = '';
			}
			input.style.backgroundColor = '#fff';
		  break;
		case 'keyword_F':
		  if (value == 'Enter keyword here...') {
				input.value = '';
			}
		  break;
		case 'email_F':
		case 'new_email_F':
		  if (value == 'Enter email address here...') {
				input.value = '';
			}
		  break;
		default:
		  break;
	}
}

function on_blur(input, red) {
	var value = input.value;
	switch(input.name) {
		case 'postcode_F':
		  if (trim(value) == '') {
				input.value = 'Enter Postcode...';
				if (red != 'no') input.style.backgroundColor = '#ffd9bf';
			}
		  break;
		case 'keyword_F':
		  if (trim(value) == '') {
				input.value = 'Enter keyword here...';
			}
		  break;
		case 'email_F':
        case 'new_email_F':
		  if (trim(value) == '') {
				input.value = 'Enter email address here...';
			}
		  break;
		default:
		  break;
	}
}