var FormWindow,EditForm,RemoveForm,GenNewWindow;

function DoTest(){
alert("this is a test");

}

 function openWindow_banner(htm_file) {
    MyWindow = window.open(htm_file,"", 'width = 250, height = 265, scrollbars=false, toolbar=false,status=false, resizable=false');
    MyWindow.focus();   
} 


 function openWindowProduct(ProductImage) {
    MyWindow = window.open("","", 'width = 400, height = 400, scrollbars, resizable');
var newContent="<IMG SRC=" + ProductImage + ">";
    MyWindow.document.write(newContent);
	MyWindow.document.close(); //to close the stream
    MyWindow.focus();   
} 



function doRollover(field){
//use this to change to purple
 field.style.color="purple";
}
function doMouseOut(field){
//use this to return to blue
  field.style.color="blue";
}

function doRollover1(field){
//use this to change to purple
 field.style.color="orange";
}
function doMouseOut1(field){
//use this to return to blue
  field.style.color="white";
}

function doRollover2(field){
//use this to change to red
 field.style.color="#99CCFF";
}
function doMouseOut2(field){
//use this to return to white
  field.style.color="white";
}
function doRollover3(field){
//use this to change to red
 field.style.color="663300";
}
function doMouseOut3(field){
//use this to return to black
  field.style.color="#000000";
}
function doRollover4(field){
//use this to change to blue
 field.style.color="blue";
}
function doMouseOut4(field){
//use this to return to brown
  field.style.color="#CC6600";
}
function doRollover5(field){
//use this to change to red
 field.style.color="orange";
}
function doMouseOut5(field){
//use this to return to yellow
  field.style.color="red";
}
function doRollover6(field){
//use this to change to red
 field.style.color="blue";
}
function doMouseOut6(field){
//use this to return to yellow
  field.style.color="purple";
}


//********************************************************************
// Vartiable settings and functions indirectly related to validation
//********************************************************************
var message = "";
var Country = "";
//******************************************************
//  4th level  General functions for validating fields
//******************************************************
//Alphanumeric with no odd characters (no spaces)
function isFieldAlphaNum(value) {
var RegExpr1 = /[^'A-Za-z-]/;  // all but these characters are the valid ones
var testResult = value.search(RegExpr1); // result must be -1 to be OK
  if (value.length < 2){
    message = "Your entry is not valid, it's too short";
  return false
  }
  if (testResult == -1){// there were no invalid characters
    return true;
  }else {
     message = "Your entry was not valid" 
     return false;
  }
}
//alpha with ' and -  (no spaces)
function isFieldAlpha(value) {
var RegExpr1 = /[^'A-Za-z\-]/;  // all but these characters are the valid ones
var testResult = value.search(RegExpr1); // result must be -1 to be OK
  if (testResult == -1){// there were no invalid characters
    return true;
  }else {
     message = "Your entry was not valid" 
     return false;
  }
}
//isFieldAlphaPhrases to include spaces
function isFieldAlphaPhrases(value) {
var RegExpr1 = /[^'A-Za-z\- ]/;  // all but these characters are the valid ones
var testResult = value.search(RegExpr1); // result must be -1 to be OK
  if (testResult == -1){// there were no invalid characters
    return true;
  }else {
     message = "Your entry was not valid" 
     return false;
  }
}
//------------
//isFieldAlphaPhrases to include spaces
function isFieldAlphaArea(value) {
var RegExpr1 = /[^'A-Za-z\- \r\n\(\)\:\;\!\#\$\%\&\>\<\+\"\?\/\,\.0-9\=]/;  // all but these characters are the valid ones
var testResult = value.search(RegExpr1); // result must be -1 to be OK
  if (testResult == -1){// there were no invalid characters
    return true;
  }else {
     message = "Your entry was not valid" 
     return false;
  }
}
//------------
// Numeric pure  - just numbers -no currency or phones
function isFieldNumeric(value) {  
var RegExpr1 = /[^0-9]/; // all but these characters are the valid ones
var testResult = value.search(RegExpr1); // check if invalid characters found
  if (testResult == -1){ // there were no invalid characters
    return true;
  }else {
    message = "Your entry was not valid";
	return false
  }	
}
// Phones allows for (,),-, and spaces
function isFieldPhone(value) {
var RegExpr1 = /[^0-9\(\)\-\s]/; // all but these characters are the valid ones
var testResult = value.search(RegExpr1); // check if invalid characters found
  if (testResult == -1){ // there were no invalid characters
    return true;
  }else {
    message = "Your entry was not valid";
	return false
  }	
}

// Mobiles - only allows for spaces and -
function isFieldMobile(value) {
var RegExpr1 = /[^0-9\s-]/; // all but these characters are the valid ones
var testResult = value.search(RegExpr1); // check if invalid characters found
  if (value.length < 12){
    message = "Entry as: XXXX XXX XXX";
  return false
  }
  if (testResult == -1){ // there were no invalid characters
    return true;
  }else {
    message = "Your entry was not valid";
	return false
  }	
}
// For filtering out odd characters
function FieldHasInvalidChars(value) { //mainly for strings like names
//var value = document.form1.testString.value;
var RegExpr1 = /[!~\@\`\#\$\%\^\&\*\(\)\_\+\+\|\\\<\>\,\.\/\:\;\"\{\}\[\]]/;
var testResult = value.search(RegExpr1);
  if (testResult == -1){
    return false; // no odd characters
  }
  message = "Field has odd characters";
  return true;	
}
// complements the main one below
function EmailHasInvalidChars(value) {
//var value = document.form1.testString.value;
var RegExpr1 = /[\~\`\!\#\$\%\^\&\*\(\)\=\|\\\{\[\}\]\:\;\"\'\/\<\>\,\s]/;
var testResult = value.search(RegExpr1);
  if (testResult == -1){
    return false; // no odd characters
  }
  message = "Invalid e-mail";
  return true;	
}

//  /^.+\@(\[?)[a-zA-Z0-9\-\.\_]+\.([a-zA-Z\.]{2,3}|[0-9]{1,3})(\]?)$/
function isFieldEmail(value) {
  var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
  var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z\-\_]{2,3}|[0-9]{1,6})(\]?)$/; // valid
                 
  if (!reg1.test(value) && reg2.test(value)) {
    return true;
  }
  message= "You entered an invalid e-mail!";
  return false;
}

//********************************************************************
// 3rd level functions - Templates for specific fields
//********************************************************************
function checkText(value){ //pure strings like names
  if (value == ""){
    message = "Your entry is not valid, it's empty";
  return false
  }
 if (isFieldAlpha(value) == false){
	 return false;
 }
 if (FieldHasInvalidChars(value) == true){
   return false;
  }
  return true;
}

function checkNumber(value){  //pure numbers - no currency or phones
  if (value == ""){
    message = "Your entry is not valid, it's empty";
  return false
  }
 if (isFieldNumeric(value) == false) {
	 return false;
 }
 if (FieldHasInvalidChars(value) == true){
  return false;
 } 

 return true;
}
//********************************************************************
// 2ndd level functions for specific form fields
//********************************************************************
function checkName(value){ //pure strings like names
  if (value == ""){
    message = "Your entry is not valid, it's empty";
  return false
  }
  if (value.length < 2){
    message = "Your entry is not valid, it's too short";
  return false
  }
 if (isFieldAlpha(value) == false){
	 return false;
 }
 if (FieldHasInvalidChars(value) == true){
   return false;
  }
  return true;
}
// to check text with spaces
function checkPhrase(value){ //pure strings like phrases
  if (value == ""){
    message = "Your entry is not valid, it's empty";
  return false
  }
  if (value.length < 2){
    message = "Your entry is not valid, it's too short";
  return false
  }
 if (isFieldAlphaPhrases(value) == false){
	 return false;
 }
 if (FieldHasInvalidChars(value) == true){
   return false;
  }
  return true;
}
// -------------
// to check text area with spaces and carriege returns
function checkTextArea(value){ //pure strings like phrases
  if (value == ""){
    message = "Your entry is not valid, it's empty";
  return false
  }
  if (value.length < 2){
    message = "Your entry is not valid, it's too short";
  return false
  }
 if (isFieldAlphaArea(value) == false){
	 return false;
 }

  return true;
}

// ------------------
function checkEmail(value){
  if (value == ""){
    message = "Your entry is not valid, it's empty";
  return false
  }
 if (isFieldEmail(value) == false){
   return false;
 } 
 if (EmailHasInvalidChars(value) == true){
  return false;
 }  
 return true;
}

function checkPhone(value){
  if (value == ""){
    message = "Your entry is not valid, it's empty";
  return false
  }
  if (value.length < 6){
    message = "Area code + number must be at least 10 digits";
  return false
  }
 if (isFieldPhone(value) == false){
   return false;
 } 
 return true;
}

function checkAreaCode(value){  
  if (value.length < 2){
    message = "Areacode must between 2 and 4 digits";
    return false
  }
  if (isFieldPhone(value) == false){
   message = "Your entry is not valid";
   return false;
  } 
 return true;
}


function checkZipCode(value){
  if (value == ""){
    message = "Your entry is not valid, it's empty";
  return false
  }
 if(Country == "Australia"){
  if (value.length != 4){
    message = "Your entry is not valid";
    return false
  }
  if(isFieldNumeric(value) == false){
    message = "Your entry is not valid";
	return false;
  }
 }
 return true;
}


//*************************************************************************
// 1st level function for calling specific form 1 field validation functions
//*************************************************************************
function validateForm1() {
Country = document.form1.Country.value;
//alert("this is validateForm3");
//alert("Country is: " + Country);
var emptyFields = "";
//alert("FirstName is: " + document.form1.FirstName.value);
 if (!checkName(document.form1.FirstName.value)){
  emptyFields += "\n First Name --> " + message;
  //emptyFields=emptyFields.fontcolor(red);
 }
  if (!checkName(document.form1.LastName.value)){
  emptyFields += "\n Last Name --> " + message;
 } 
   if (!checkPhrase(document.form1.Country.value)){
  emptyFields += "\n Country --> " + message;
 } 
 //To validate e-mails
 if (!checkEmail(document.form1.email.value)){
  emptyFields += "\n E-mail --> " + message
 }

//Postcode
 if (!checkZipCode(document.form1.PostCode.value)){
  emptyFields += "\n Postal code --> " + message
  }
// checkPhone(  
 if (!checkPhone(document.form1.Phone.value)){
  emptyFields += "\n Phone --> " + message
  } 
  
 if (!checkTextArea(document.form1.What_would_you_like_to_see_in_this_website.value)){
 //alert("message is: " + message);
  emptyFields += "\n What would you like to see in this website --> " + message
 }   
 
  if (!checkTextArea(document.form1.How_did_you_find_this_website.value)){
 //alert("message is: " + message);
  emptyFields += "\n How_did_you_find_this_website --> " + message
 }   
//-----------
 if (emptyFields != "") {
   emptyFields = "Please correct the following fields: \n" 
   +             "---------------------------------------------------\n" 
   + emptyFields;
   alert(emptyFields);
   return false;
 }
 return true;
 
}