function doSendMsg() 
{
  if(valMsg()) 
  {
    form = document.forms['frmMsg'];
    rawform = document.forms['frmRaw'];

    form.elements['sn'].value = rawform.elements['sn'].value;
    form.elements['em'].value = rawform.elements['em'].value;
    form.elements['sub'].value = rawform.elements['sub'].value;
    form.elements['msg'].value = rawform.elements['Message'].value;
    document.forms['frmMsg'].submit();
  }  
}


function doDownload() 
{
  if(valDownload()) 
  {
    form = document.forms['frmDownload'];
    rawform = document.forms['frmRaw'];

    form.elements['fn'].value = rawform.elements['fn'].value;
    form.elements['sn'].value = rawform.elements['sn'].value;
    form.elements['job'].value = rawform.elements['job'].value;
    form.elements['org'].value = rawform.elements['org'].value;
    form.elements['add'].value = rawform.elements['add'].value;
    form.elements['tel'].value = rawform.elements['tel'].value;
    form.elements['em'].value = rawform.elements['em'].value;
    form.elements['ctry'].value = rawform.elements['ctry'].options[rawform.elements['ctry'].selectedIndex].text;
    form.elements['cc'].value = rawform.elements['ctry'].value;
    form.elements['web'].value = rawform.elements['web'].value;
    form.elements['info'].value = rawform.elements['info'].checked?1:0;

  	form.elements['where'].value = rawform.elements['wcb'].options[rawform.elements['wcb'].selectedIndex].text;
    if ( rawform.elements['where'].value != "" )
    	form.elements['where'].value += ' (' + rawform.elements['where'].value + ')';

    document.forms['frmDownload'].submit();
  }  
}


function hasInvalidChars(str) 
{
  return (str.indexOf("\"") != -1 || str.indexOf("\\") != -1);
}

function validEmail(strEmail) 
{
  var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
  return re.test(strEmail);
}

function validIdCode(strCode) 
{
  var re = /^[a-fA-F 0-9]*$/
  return re.test(strCode);
}

function valMsg() 
{
  rawform = document.forms['frmRaw'];
  
  strEmail = rawform.elements['em'].value;
  
  if(rawform.elements['sn'].value == "") 
  {
    alert("Please enter your name.");
    rawform.elements['sn'].focus();
  } 
  else if(strEmail == "") 
  {
    alert("Please enter your E-mail address.");
    rawform.elements['em'].focus();
  } 
  else if(hasInvalidChars(strEmail)) 
  {
    alert("Please don't include quotes or backslashes in your e-mail address.");
    rawform.elements['em'].focus();
  } 
  else if(!validEmail(strEmail)) 
  {
    alert("You have not entered a valid e-mail address.");
    rawform.elements['em'].focus();
  } 
  else if(rawform.elements['sub'].value == "") 
  {
    alert("Please enter a subject.");
    rawform.elements['sub'].focus();
  } 
  else 
  {
    return true;
  }
  return false;
}


function valDownload() 
{
  rawform = document.forms['frmRaw'];
  
  strEmail = rawform.elements['em'].value;
  
  if(rawform.elements['sn'].value == "") 
  {
    alert("Please enter your surname.");
    rawform.elements['sn'].focus();
  } 
  else if(rawform.elements['org'].value == "") 
  {
    alert("Please enter your user organisation.");
    rawform.elements['org'].focus();
  } 
  else if(strEmail == "") 
  {
    alert("Please enter your E-mail address.");
    rawform.elements['em'].focus();
  } 
  else if(hasInvalidChars(strEmail)) 
  {
    alert("Please don't include quotes or backslashes in your e-mail address.");
    rawform.elements['em'].focus();
  } 
  else if(!validEmail(strEmail)) 
  {
    alert("You have not entered a valid e-mail address.");
    rawform.elements['em'].focus();
  } 
  else if(rawform.elements['ctry'].value == "") 
  {
    alert("Please select your country");
    rawform.elements['ctry'].focus();
  } 
  else if(!rawform.elements['checkok'].checked) 
  {
    alert("For security reasons, you must allow us to verify your identity if you wish to download this software.");
    rawform.elements['checkok'].focus();
  } 
  else 
  {
    return true;
  }
  return false;
}



function doInvoicePurchase()
{
  rawform = document.forms['frmRaw'];

  strName = rawform.elements['txtName'].value;
  strEmail = rawform.elements['txtEmail'].value;
  strInvoice = rawform.elements['MC_vat'].value;
  strCost = rawform.elements['cost'].value;

//  document.frmRaw.MC_country.value = rawform.elements['country'].value;

  if( strName == "") 
  {
    alert("Please enter your name.");
    rawform.elements['txtName'].focus();
    return;
  } 
  else if(strEmail == "") 
  {
    alert("Please enter your E-mail address.");
    rawform.elements['txtEmail'].focus();
    return;
  } 
  else if(hasInvalidChars(strEmail)) 
  {
    alert("Please don't include quotes or backslashes in your e-mail address.");
    rawform.elements['txtEmail'].focus();
    return;
  } 
  else if(!validEmail(strEmail)) 
  {
    alert("You have not entered a valid e-mail address.");
    rawform.elements['txtEmail'].focus();
    return;
  } 
  
  if(strInvoice == "") 
  {
    alert("Please enter your invoice number.");
    rawform.elements['MC_vat'].focus();
    return;
  } 
  nVal = parseInt( strInvoice );
  if ( nVal < 1000 || nVal > 45000 ) 
  {
    alert("Please enter a valid invoice number.");
    rawform.elements['MC_vat'].focus();
    return;
  } 

  if(strCost == "") 
  {
    alert("Please enter the total cost on the invoice.");
    rawform.elements['cost'].focus();
    return;
  } 

  document.frmRaw.submit();
}


function showImg( strPicFile ) 
{
  window.open( "PopupImage.htm?"+strPicFile, "imgPopup",  "resizable=1,HEIGHT=500,WIDTH=870"); 
}


function getObjById(id) {
        if (document.getElementById) {
          return document.getElementById(id);
        }
        if(document.all){ 
          return document.all[id];
        }
        if (document.layers) {
          return document.layers[id];
        }
}
                              
function hideElement(id) { 
        var element = getObjById(id);
        if (element == null) {
          return;
        }
        element.style.display="none";
}
          
function showElement(id) { 
        var element = getObjById(id);
        if (element == null) {
          return;
        }
        element.style.display="";
}

var addVat = 0
function handleVatVisibility() 
{
  rawform=document.forms['frmRaw'];
  var country = rawform.elements['country1'].value;
  var vat = rawform.elements['vat'].value;

  addVat = 0;
  if ( country == 'GB' )
  {
     showElement('vatRow');
     hideElement('vatNumRow');
     addVat = 1;
  }
  else
  {
    switch(country) 
    {
            case 'AT':
            case 'BE':
            case 'CY':
            case 'CZ':
            case 'DK':
            case 'EE':
            case 'FI':
            case 'FR':
            case 'FX':
            case 'DE':
            case 'GR':
            case 'HU':
            case 'IE':
            case 'IT':
            case 'LV':
            case 'LT':
            case 'LU':
            case 'MT':
            case 'NL':
            case 'PL':
            case 'PT':
            case 'SI':
            case 'SK':
            case 'ES':
            case 'SE':
 							showElement('vatNumRow');
              showElement('vatRow');
              addVat = 1;
            
              if ( vat != '' )
              {
              	if (!checkVATNumber(country+vat) )
	              {
							    alert("Please enter a valid VAT/Tax number");
							    rawform.elements['vat'].focus();
	            	}
	            	else
	            	{
              		hideElement('vatRow');
	              	addVat = 0;
	              }
	            }
              break;

            default:
              hideElement('vatRow');
     					hideElement('vatNumRow');
     					break;
    }
  }
  calcPrice();
}

function handleBillingVisibility()
{
  rawform=document.forms['frmRaw'];
  
  var display = document.getElementById('billingDiv').style.display;
  var useSame = rawform.elements['sameaddress'].value;

  if (useSame == 'NO' && display == 'none') 
  {
    showElement('billingDiv');
    showElement('billingRow');
  } 
  else if (useSame == 'YES' && display != 'none') 
  {
    hideElement('billingDiv');
    hideElement('billingRow');
  }
}

function refreshOrderForm() {
  hideElement('vatRow');
  handleBillingVisibility();
  handleVatVisibility();
  calcPrice();
}


function showPopUpHelp(URL, width, height) {
  day = new Date();
  id = day.getTime();
  eval("page" + id + " = window.open(URL, '" + id + "', 'location=no,statusbar=no,status=no,scrollbars=yes,menubar=no,toolbar=no,directories=no,resizable=yes,width=" + width + ",height=" + height + "');");
}


function calcPrice()
{
  rawform = document.forms['frmRaw'];

  prod = rawform.elements['typ'].selectedIndex-1;
  if( prod < 0 ) 
    return 0;
  
  quantity = rawform.elements['quantity'].value 
  currency = rawform.elements['currency'].selectedIndex 

  var price = 0;
  if ( quantity < 2 )
  { 
    price = arrPrices[prod*5];	
  }
  else if ( quantity == 2 )
  { 
    price = arrPrices[(prod*5)+1];	
  }
  else if ( quantity > 2 && quantity < 10)
  { 
    price = arrPrices[(prod*5)+2];	
  }
  else if ( quantity > 9)
  { 
    price = arrPrices[(prod*5)+3];	
  }

  if (prod == 1 && rawform.elements['pcode'] && (rawform.elements['pcode'].value == 'LITEPDM1' || rawform.elements['pcode'].value == 'LITEPDM2'))
    price = 75;

  price = Math.floor(price/arrXrates[currency]);

  var total = price*quantity;
  getObjById('netcost').innerHTML=total.toFixed(2);

  if (addVat == 1)
  {      
    var vat = total*(vatrate/100);
    getObjById('totalvat').innerHTML=vat.toFixed(2);
    total += vat;
    if ( document.forms['frmPayment'] )
      document.forms['frmPayment'].elements['MC_vat'].value = vat;
  }
  else if ( document.forms['frmPayment'] )
  {
    document.forms['frmPayment'].elements['MC_vat'].value = 0;
  }  

  getObjById('totalcost').innerHTML='<b>' + total.toFixed(2) + '</b>';
  getObjById('unitcost').innerHTML=price.toFixed(2);
  getObjById('curtxt').innerHTML='<b>&nbsp;' + rawform.elements['currency'].value + '</b>&nbsp;';

  return total;
}

function validateEmail( id )
{
  rawform = document.forms['frmRaw'];
  if(rawform.elements[id].value == "") 
  {
    alert("Please enter your E-mail address.");
    rawform.elements[id].focus();
    return false;
  } 
  else if(hasInvalidChars(rawform.elements[id].value)) 
  {
    alert("Please don't include quotes or backslashes in your e-mail address.");
    rawform.elements[id].focus();
    return false;
  } 
  else if(!validEmail(rawform.elements[id].value)) 
  {
    alert("You have not entered a valid e-mail address.");
    rawform.elements[id].focus();
    return false;
  } 
  return true;
}

function ValidatePurchase()
{
  rawform = document.forms['frmRaw'];

  if( rawform.elements['fn'].value == "" ) 
  {
    alert("Please enter your first name.");
    rawform.elements['fn'].focus();
    return;
  } 
  else if( rawform.elements['sn'].value == "" ) 
  {
    alert("Please enter your last name.");
    rawform.elements['sn'].focus();
    return;
  }
  else if( (addVat == 0 || rawform.elements['country1'].value == 'GB' ) && rawform.elements['company1'].value == "" ) 
  {
    alert("Please enter your school or organisation name.");
    rawform.elements['company1'].focus();
    return;
  }
  
  if ( validateEmail( 'email1' ) == false )
    return;
   
  if( rawform.elements['add1'].value == "" ) 
  {
    alert("Please enter your full mailing address.");
    rawform.elements['add1'].focus();
    return;
  }
  else if( rawform.elements['zip1'].value == "" ) 
  {
    alert("Please enter your zip/post code.");
    rawform.elements['zip1'].focus();
    return;
  }
  else if( rawform.elements['country1'].selectedIndex < 1 ) 
  {
    alert("Please select your country.");
    rawform.elements['country1'].focus();
    return;
  }
  
  if( rawform.elements['sameaddress'].value == 'NO' )
  {
	  if( rawform.elements['name'].value == "" ) 
	  {
	    alert("Please enter your full name.");
	    rawform.elements['name'].focus();
	    return;
	  } 
	  else if( rawform.elements['add2'].value == "" ) 
	  {
	    alert("Please enter your full mailing address.");
	    rawform.elements['add2'].focus();
	    return;
	  }
	  else if( rawform.elements['zip2'].value == "" ) 
	  {
	    alert("Please enter your zip/post code.");
	    rawform.elements['zip2'].focus();
	    return;
	  }
	  else if( rawform.elements['country2'].selectedIndex < 1 ) 
	  {
	    alert("Please select your country.");
	    rawform.elements['country2'].focus();
	    return;
	  }
	
	  if ( validateEmail( 'email2' ) == false )
	    return;
  }

  if( parseInt(getObjById('unitcost').innerHTML) <= 0 ) 
  {
    alert("An error has occured in calculating the price, please change your selections.");
    rawform.elements['typ'].focus();
    return;
  } 

  doWorldpayPurchase();
}

function doWorldpayPurchase() 
{
  form = document.forms['frmPayment'];
  rawform = document.forms['frmRaw'];

  form.elements['currency'].value = rawform.elements['currency'].value;
  form.elements['cost'].value = calcPrice();

  form.elements['MC_firstname'].value = rawform.elements['fn'].value;
  form.elements['MC_surname'].value = rawform.elements['sn'].value;
  form.elements['MC_company'].value = rawform.elements['company1'].value;
  form.elements['MC_address'].value = rawform.elements['add1'].value;
  form.elements['MC_zip'].value = rawform.elements['zip1'].value;
  form.elements['MC_phone'].value = rawform.elements['tel1'].value;
  form.elements['MC_email'].value = rawform.elements['email1'].value;
//  form.elements['MC_vat'].value = rawform.elements['vat'].value;
//  form.elements['MC_codes'].value = rawform.elements['idcodes'].value;
  form.elements['MC_inform'].value = (rawform.elements['inform'].checked) ? 1 : 0;
  form.elements['MC_quantity'].value = rawform.elements['quantity'].value;
  form.elements['MC_version'].value = rawform.elements['typ'].value;
  form.elements['MC_country'].value = rawform.elements['country1'].options[rawform.elements['country1'].selectedIndex].text;
  form.elements['desc'].value = rawform.elements['typ'].options[rawform.elements['typ'].selectedIndex].text;

  if( rawform.elements['sameaddress'].value == 'NO' )
  {
    form.elements['name'].value = rawform.elements['name'].value;
    form.elements['address'].value = rawform.elements['add2'].value;
    form.elements['postcode'].value = rawform.elements['zip2'].value;
    form.elements['tel'].value = rawform.elements['tel2'].value;
    form.elements['email'].value = rawform.elements['email2'].value;
    form.elements['country'].value = rawform.elements['country2'].value;
  }
  else 
  {
    form.elements['name'].value = rawform.elements['fn'].value + ' ' + rawform.elements['sn'].value;
    form.elements['address'].value = rawform.elements['add1'].value;
    form.elements['postcode'].value = rawform.elements['zip1'].value;
    form.elements['tel'].value = rawform.elements['tel1'].value;
    form.elements['email'].value = rawform.elements['email1'].value;
    form.elements['country'].value = rawform.elements['country1'].value;
  }

  form.submit();
}


function fnValAndGetQuote()
{
  rawform = document.forms['frmRaw'];

  if( (addVat == 0 || rawform.elements['country1'].value == 'GB' ) && rawform.elements['company1'].value == "" ) 
  {
    alert("Please enter your school or organisation name.");
    rawform.elements['company1'].focus();
    return;
  }

  if( parseInt(getObjById('unitcost').innerHTML) <= 0 ) 
  {
    alert("An error has occured in calculating the price, please change your selections.");
    rawform.elements['typ'].focus();
    return;
  } 
  
  if ( validateEmail( 'email1' ) == false )
    return;
   
  if( rawform.elements['add1'].value == "" ) 
  {
    alert("Please enter your full mailing address.");
    rawform.elements['add1'].focus();
    return;
  }
  else if( rawform.elements['country1'].selectedIndex < 1 ) 
  {
    alert("Please select your country.");
    rawform.elements['country1'].focus();
    return;
  }
  
  if( rawform.elements['sameaddress'].value == 'NO' )
  {
	  if( rawform.elements['name2'].value == "" ) 
	  {
	    alert("Please enter your full name.");
	    rawform.elements['name2'].focus();
	    return;
	  } 
	  else if( rawform.elements['add2'].value == "" ) 
	  {
	    alert("Please enter your full mailing address.");
	    rawform.elements['add2'].focus();
	    return;
	  }
	  else if( rawform.elements['country2'].selectedIndex < 1 ) 
	  {
	    alert("Please select your country.");
	    rawform.elements['country2'].focus();
	    return;
	  }
	
	  if ( validateEmail( 'email2' ) == false )
	    return;
  }

  var width = 800;
  var height = 1024;
  
  day = new Date();
  id = day.getTime();
  eval("page" + id + " = window.open('PopupQuote.htm', '" + id + "', 'location=0,statusbar=0,status=0,scrollbars=1,menubar=1,toolbar=0,directories=0,resizable=yes,width=" + width + ",height=" + height + "');");
}

function getQuoteParams( ) 
{
  rawform = document.forms['frmRaw'];

  var strData = '1|'+ rawform.elements['quantity'].value+'|'+rawform.elements['currency'].value+'|'+getObjById('unitcost').innerHTML+'|'+addVat+'|'+
        rawform.elements['company1'].value+'|'+rawform.elements['add1'].value+'|'+
        rawform.elements['country1'].options[rawform.elements['country1'].selectedIndex].text+'|'+rawform.elements['country1'].value+'|'+
        rawform.elements['name1'].value+'|'+rawform.elements['tel1'].value+'|'+rawform.elements['email1'].value+'|'+
        rawform.elements['sameaddress'].value+'|'+
        rawform.elements['company2'].value+'|'+rawform.elements['add2'].value+'|'+
        rawform.elements['country2'].options[rawform.elements['country2'].selectedIndex].text+'|'+
        rawform.elements['name2'].value+'|'+rawform.elements['tel2'].value+'|'+rawform.elements['email2'].value+'|'+
        rawform.elements['vat'].value+'|'+rawform.elements['typ'].value+'|'+
        rawform.elements['typ'].options[rawform.elements['typ'].selectedIndex].text;
        
  return strData;
} 

function handleWhereVis() 
{
  rawform=document.forms['frmRaw'];
  var sel = rawform.elements['wcb'].value;
  if (sel==6||sel==12||sel==15)
     showElement('whr');
  else
     hideElement('whr');
}
