//-------------------------------------------------------------

 //site meter
 var site="s16nicksumner"
 
 var h=location.href;
 //if (parent.frames.length>0) parent.location.href=h;

//ie search panel
function doSearchPanel() {
  window.open('http://www.tele-pro.co.uk/pages/sitetree_panel.htm', '_search');
  return false;
}

// show Search Panel
function showSearchPanel() {
  // if MSIE
  if (isie) {
    // show Search Panel
		document.write('<p><a href="javascript:nada();" onClick="return doSearchPanel();">')
		  + ('<img src="http://images.tele-pro.co.uk/mright2.gif" ')
		  + ('alt=" Go " width="15" border="0" align="bottom" hspace="2">View Site ')
		  + ('Index in the Search Panel</a> <br>Opens a website navigation menu  ')
		  + ('in the Internet Explorer search panel. <br>');
    return true;
  }
}

// nothing
function nada(h) { return; }

//focus the text box
function foc(e){setTimeout(e+".focus();",500);}

var isnn,isie;
if(navigator.appName=='Microsoft Internet Explorer') //check the browser
{  isie=true }

if(navigator.appName=='Netscape')
{ isnn=true }

function SaveDoc(){
location.href='/scripts/storeddocs/store.htm?store='+escape(location.href) + '&title='+escape(document.title);
}

//http://216.239.39.104/translate_c?langpair=en|undefined&u=

//open Google Translate in a new window
function GoogleTranslate(lang){

  //get Google Translate url 
  var h = location.href;
  var base_ip = '216.239.39.104';

  //already on the google site?
  if (h.indexOf(base_ip) > -1) {
    // the location we need is at the end, after '&u='
    if (h.indexOf('&u=') > -1) {
      //strip
      h =h.substring(3 + h.indexOf('&u='));
 
      if (h.indexOf('//') > -1) 
        h =h.substring(2 + h.indexOf('//'));

    }
  }

  var translated = 'http://' + base_ip + '/translate_c?' +
                   'langpair=en|'+ lang +
                   '&u='+escape(h);
  if (lang == '')
    translated = 'http://' + base_ip + '/translate_t';

  window.open(translated, '', '');
  //location.href=
}

function right(e) //to trap right click button
{
  if (isnn && (e.which == 3 || e.which == 2 ))
    return false;
  else if (isie && (event.button == 2 || event.button == 3))
  {
    //alert("I dont think so!! >:)");
    return false;
    //return true;
  }
    return true;
}
	
function SetCustomResponses (){

// add your custom responses for each form field name 
// currently this is the only way to validate radio button groups

  Validate ('quid','Please enter an amount in the format 1.99');
  Validate ('amount','Please enter an amount in the format 1.99');
  Validate ('a3','Please enter an amount ');
  Validate ('uid','Please enter a username (no spaces) ');
  Validate ('pwd','Please enter a password ');
  Validate ('title','Please select a title ');
  Validate ('forename','Please enter a forename ');
  Validate ('name','Please enter a name ');
  Validate ('surname','Please enter a surname (min 2 chars, no digits) ');
  Validate ('email_addr','Please enter your full email address');
  Validate ('email','Please enter your email address');
  Validate ('addr_1','Please enter full address');
  Validate ('town','Please enter your town');
  Validate ('country','Please select a country ');
  Validate ('county','Please select a county ');
  Validate ('county_id','Please select a county ');
  Validate ('cou_id','Please select a country');
  Validate ('post_code','Please enter a post code');
  Validate ('tel_no','Please enter a telephone number (digits and spaces only)');
  Validate ('telno','Please enter a telephone number (digits and spaces only)');  
  Validate ('tel','Please enter a telephone number ');  
  Validate ('Provider','Please select a payment provider ');
  Validate ('Webserver','Please select a webserver ');
  Validate ('Source','Where did you hear about us? ');
  //Validate ('Shopping_Cart_Type','Please tell us about your shopping cart ');
  
  Validate ('udo_reference','Please enter a message ');  
  Validate ('PayPalEmail','Please enter the email address used for the PayPal sign-up ');

} // end custom response definitions

function FormSubmit(obj){
if (obj) {
  if (navigator.appName.indexOf('Microsoft')==-1) {
    eval('window.frames.document.'+obj+'.submit()');
  }
  else {
    eval('window.document.'+obj+'.submit()');
  }
} // end test for form  
}

  // global variables 
  ElementArray = new Array();
  PromptArray = new Array();
  errmsg= 'OK';
  BadCharList= '\"\\/><}{][#=+)(*&^%$£!,:;|¬ ';
  BadCharList2= '@-_~';
  SetCustomResponses ();
   
function Validate (a,b){
  var s= ElementArray.length;
  ElementArray[s] = a;
  PromptArray[s] = b;
}

function ValidateRadios (frm){

  var m= ElementArray.length;
  var n= frm.elements.length;
  var tmp='';

  // check if in custom reponse list 
  for (var k=0;k<m;k++){ 
  tmp='';
  // loop thru form elements
  for (var i=n-1;i>-1;i--){

  e= frm.elements[i];
  u= e.name;
  v= e.value;
  x= e.type; 
  
  if ((x.indexOf('radio')>-1)||(x.indexOf('checkbox')>-1)) {

  if (u==ElementArray[k]) {

    if ((!e.checked) && (tmp==''))
    tmp=PromptArray[k];  
    else if (e.checked)
    tmp='OK';  
  }

  } // end if
  } // end for

  if ((tmp!='')&&(tmp!='OK'))
  errmsg= tmp;

  } // end for
  return false;
}

function Check(obj) { 
  errmsg= '';   
  var thisErrmsg= '';

  var m= ElementArray.length;
  var n= obj.elements.length;

  ValidateRadios(obj);

  // loop thru form elements
  for (var i=n-1;i>-1;i--){
  thisErrmsg= '';
  e= obj.elements[i];
  u= e.name;
  v= e.value;
  x= e.type; 

  if (x.indexOf('radio')==-1) {

  //var s=eval('obj.'+u+'.id');
  //alert(s);

  var w=e.id;
  switch (w){

    case 'V': 
    case 'v': if (v=='')
        thisErrmsg= 'This field requires a value: \'' + u + '\'';
              break;  

    case 'X':
    case 'x': if (!ChkBocsSurname(v))
              thisErrmsg= 'This field requires a value (2-20 chars): \'' + u + '\'';
              break;  

    case 'I':
    case 'i': if ((isNaN(v))||(v==''))
              thisErrmsg= 'This field requires a integer value: \'' + u + '\'';
              break;    

    case 'A':
    case 'a': if (ChkAlphaNumeric (v)>-1)
              thisErrmsg= 'This field requires a alphanumeric value: \'' + u + '\'';
              break;

    case 'D':
    case 'd': if (!isDate(v))
              thisErrmsg= 'Please enter a valid date. ';
              break; 
       
    case 'E':
    case 'e': if (!isEmail(v))
              thisErrmsg= 'Please enter a valid email address. ';
              break;          

    case 'W':
    case 'w': if (!isWebAddress(v))
              thisErrmsg= 'Please enter a valid web address. ';
              break;   

    case 'P':
    case 'p': if (!isPostcode(v))
              thisErrmsg= 'Please enter a valid postcode. ';
              break; 

    case 'T':
    case 't': if (isNaN(TrimSpace(v)))
              thisErrmsg= 'Please enter digits and spaces only for this field: \'' + u + '\'';
              break;  

    case 'S':
    case 's': if (isNaN(TrimSpace(v))||(v==''))
              thisErrmsg= 'Please enter digits and spaces only for this field: \'' + u + '\'';
              break;  
    case 'N':
    case 'n': if ((isNaN(v))||(v=='')||(v.indexOf('.')>-1))
              thisErrmsg= 'This field requires a integer value: \'' + u + '\'';
              break;  			  

    }  // end switch
  
  if (thisErrmsg!=''){
     errmsg=thisErrmsg;
  }

  // check if in custom reponse list 
  if ((v=='') || (thisErrmsg!='')) {
      for (var k=0;k<m;k++){ 
        if (u==ElementArray[k]) {
          errmsg= PromptArray[k];
  }
      }
    }

  } // end if (radio)

  } // end elements loop
  if ((errmsg!='')) alert(errmsg);
  return (errmsg=='');
} 

function isDate(date) {
    // NaN is never equal to itself.
    if (Date.parse(date) != Date.parse(date))
        return false
    else
        return true;
}

function ChkAlphaNumeric (str) {
// does not allow no entry
  if (str=='')
    return 1;

  else{
  var m= -1;
  var n= -1;

  var x= BadCharList;
  var y= x.length;
  for (z=0;z<y;z++){
    n=str.indexOf(x.charAt(z));
    if (n != -1)
      return n;
  }

  x= BadCharList2;
  y= x.length;
  for (z=0;z<y;z++){
    n=str.indexOf(x.charAt(z));
    if (n != -1)
      return n;
  }

  return m;
  }
}

function TrimSpace (str) {

  arrayString = str.split(' '); 
  var tmp='';

  if (str=='')
    return '';

  else if (arrayString[0] == null){
  // old browser no split
    return '';
  }
  else {
    var a= arrayString.length-1;
    for(var b=0;b<=a;b++)
       tmp=tmp+arrayString[b];
  }
  return tmp;
}

function isPostcode(str) {
// does not allow no entry

  if (str.indexOf(' ') == -1)
    return false;  
  else if (str.length<6)
    return false;
  else if (ChkAlphaNumeric (str)>-1)
      return false;

  arrayString = str.split(' '); 

  if (arrayString.length!=2)
      return false;
  else if (arrayString[0] == '')
      return false;
  else if (arrayString[1] == '')
      return false;
  else if (ChkAlphaNumeric (arrayString[0])>-1)
      return false;
  return true;
}

function isEmail(argvalue) {
// does not allow no entry

  if (argvalue.indexOf(" ") != -1)
    return false;
  else if (argvalue.indexOf("@") == -1)
    return false;
  else if (argvalue.indexOf("@") == 0)
    return false;
  else if (argvalue.indexOf("@") == (argvalue.length-1))
    return false;
  else if (argvalue.indexOf(".") == -1)
    return false;
    
  var x= BadCharList;
  var y= x.length;
  for (z=0;z<y;z++)
    if (argvalue.indexOf(x.charAt(z)) != -1)
      return false;

  arrayString = argvalue.split("@"); 

  if (arrayString[0] == null){
  // old browser no split
  }
  else {

    if (arrayString[1].indexOf(".") == -1)
      return false;
    else if (arrayString[1].indexOf(".") == 0)
      return false;
    else if (arrayString[1].charAt(arrayString[1].length-1) == ".") {
      return false;
    }
  }

  return true;
}

function isWebAddress(argvalue) {
// allows no entry
  if (argvalue=='')
    return true;

// accepts with/without 'http://'
  argvalue.toUpperCase();
  if (argvalue.indexOf("http://") != -1){
    if (argvalue.indexOf("http://") != 0)
      return false;
      argvalue=argvalue.substring(7,argvalue.length);
  }

  if (argvalue.indexOf(" ") != -1)
    return false;
  else if (argvalue.indexOf(".") == -1)
    return false;
  else if (argvalue.indexOf(".") == 0)
    return false;
  else if (argvalue.charAt(argvalue.length-1)=='.')
    return false;

  var x= BadCharList;
  var y= x.length;
  for (z=0;z<y;z++)
    if (argvalue.indexOf(x.charAt(z)) != -1)
      return false;

  arrayString = argvalue.split("."); 

  if (arrayString[0] == null){
  // old browser no split
  }
  else {

      if (arrayString.length<3)
        return false;
      else if (arrayString.length>5)
        return false;
  }

  return true;
}

function openWin(a, w, h, l, t, hnd){
  var s;

  s = "width=" + w;
  s = s + ", height=" + h;
  s = s + ", left=" + l;
  s = s + ", top=" + t;
  s = s + ", status=no, toolbar=no, menubar=no, resizable=yes, scrollbars=yes";

  mywin = open(a, hnd, s);
  if (parseInt(navigator.appVersion) >= 4) { mywin.window.focus(); }
}

function Hyperlink(obj){
  str=obj.value;
  ret='';
  WordArray = new Array();
//  str=' '+str+' ';
  WordArray = str.split(' ');
  var plen= WordArray.length;

  for (i=0;i<plen;i++){
    var v=WordArray[i];

    if (v.indexOf('@')>-1){
      ret =ret+' <a href="mailto:' + v + '">' + v + '</a>'
    }
    else if (v.indexOf('http://')==0){
      ret =ret+' <a href="' + v + '">' + v + '</a>'
    }
    else if (v.indexOf('www.')==0){
      ret =ret+' <a href="http://' + v + '">' + v + '</a>'
    }
    else{
      ret =ret+' '+ v ;
    }
  }
  ret=ret.substring(1,ret.length);
  obj.value=ret;
  return ret;

}

// fns to count chars
maxKeys = 7900;
keysSoFar = 0;

function keyup(what) {

    body_text_sofar = document.form1.body_text.value.length;
    keysSoFar= what.value.length;
    if (keysSoFar > maxKeys) {
        alert('Maximum characters allowed: ' + maxKeys );
        what.value = what.value.substring(0,maxKeys); // chop the last typed char
	keysSoFar = maxKeys;

    }
    charcount.innerHTML = maxKeys-keysSoFar + ' (' + body_text_sofar + ') total.';
}

function getProfile(){
    var profile = navigator.userProfile;
    profile.clearRequest();

    profile.addReadRequest("Vcard.LastName");
    profile.addReadRequest("Vcard.Email");
    profile.addReadRequest("Vcard.Business.Phone");

    var myForm = document.forms[0];
    var Surname = profile.getAttribute("Vcard.LastName");

    if (Surname!='') {	  
      if (myForm.elements["Name"]) myForm.elements["Name"].value = Surname;
      if (myForm.elements["Email"]) myForm.elements["Email"].value = profile.getAttribute("Vcard.Email");
      if (myForm.elements["Tel"]) myForm.elements["Tel"].value = profile.getAttribute("Vcard.Business.Phone");
    }
	else {alert('No Profile appears to be configured. ');}
}

function PathOf(strpath){
var ptr;
var path;
var t=strpath.length;
subs='\\';
ptr= strpath.lastIndexOf(subs,t);
if (ptr==-1){
  subs='/';
  ptr= strpath.lastIndexOf(subs,t);
}
path= strpath.substring(0,ptr+1)
return CleanUp(path);
}

function CleanUp(strclean){
var ptr2;
var ret ='';
var t=strclean.length;
substr2='file:///';
ptr2= strclean.indexOf(substr2);
(ptr2>=0) ? ret = strclean.substring(ptr2+substr2.length,t):ret = strclean;
return ret;
}
	
function wap(url){
  if(isie)
    window.open('http://www.gelon.net/cgi-bin/wapalize.cgi?url='+url,'ewindow','width=200,height=430')
  else
    window.open('http://www.gelon.net/cgi-bin/wapalizeericssonr320.cgi?url='+url,'ewindow','width=200,height=490,toolbar=0,location=0,directories=0,status=0,menuBar=0,scrollBars=0,resizable=0')
}

function amBusy(typ){
  var elem; 
  document.body.style.cursor = typ; 
  //document.form1.LookupButton.disabled=(typ=="wait");
     
  var elem, i;
  for (i=1;i<document.forms[0].elements.length;i++)
  {
    elem = document.forms[0].elements[i];
    elem.style.cursor =typ;  

  if (elem.type=='submit') elem.disabled=true;
  if (elem.type=='button') elem.disabled=true;
	
  } 
}

//disable buttons if uploading
function upCheck(fm){
  var res = Check(fm);
  if (res) amBusy();
  return res;
}

function amIdle(){
document.body.style.cursor ='default';  
var w =  document.forms(0).elements;
for (var i=0;i<w.length;i++)
  {
	w[i].style.cursor ='default';
	}   
}

function LTrim(str)
{
   var whitespace = new String(" \t\n\r");

   var s = new String(str);

   if (whitespace.indexOf(s.charAt(0)) != -1) {
      // We have a string with leading blank(s)...

      var j=0, i = s.length;
      while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
         j++;

      s = s.substring(j, i);
   }
   return s;
}

function RTrim(str)
{
   var whitespace = new String(" \t\n\r");

   var s = new String(str);

   if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {

      var i = s.length - 1;       // Get length of string
      while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
         i--;

      s = s.substring(0, i+1);
   }

   return s;
}

function Trim(str)
{
   return RTrim(LTrim(str));
}

function getCookie (name) {
var dcookie = document.cookie; 
var cname = name + "=";
var clen = dcookie.length;
var cbegin = 0;
  while (cbegin < clen) {
  var vbegin = cbegin + cname.length;
  if (dcookie.substring(cbegin, vbegin) == cname) { 
    var vend = dcookie.indexOf (";", vbegin);
    if (vend == -1) vend = clen;
    return unescape(dcookie.substring(vbegin, vend));
  }
  cbegin = dcookie.indexOf(" ", cbegin) + 1;
  if (cbegin == 0) break;
  }
return null;
}

  
function getquerystring(querybit) {

if (location.search.substring(1).length > 0) {
  if (querybit) {
    var querystring = unescape(location.search);
    var resultstart = findbit(querystring + querybit,querybit);
	var querystringb = querystring.substring(resultstart);
    var resultend = findbit(querystringb + '&','&');
    return getpart(querystring,resultstart + querybit.length+1,resultstart+resultend);
  } else {
    return unescape(location.search.substring(1))
  }
} else {
  return '';
}
}

function findbit(haistack, needle){
 pos = haistack.indexOf(needle);
 return (pos==-1)?0:pos;
}

function getpart(theString, from, to){
 return theString.substring(from, to);
}

function Copy2Clip(h){
if(isie){
  var d = document;
  if (d.all.aE) {d.all.aE.value=h }
  else {
  //create element
  var a=d.createElement('TEXTAREA');
  var e=d.appendChild(a);
  e.id = 'aE';
  e.value = h;
  }
  //copy
  var s=aE.createTextRange();
  s.execCommand("Copy");
}
}

//—————————————————————————————————————————————————————// 

// handle errors

function tellerror(msg, url, linenumber){
  alert(msg+'  ');
  return true;
}
function blockerror(msg, url, linenumber){
  return true;
}

//—————————————————————————————————————————————————————// 

// Add Favorites Link
function addFav(){
  // only if MSIE
  if (!isie) return;
  var u = 'http://'+location.hostname+location.pathname;
  window.external.AddFavorite(u,document.title);
  return;
}

//—————————————————————————————————————————————————————// 

// the footer links are targetted at "_top"
// this script changes all targets to "_blank"

function TargetAll(target_name) {
  var L = document.links;
  for (k = 0; k < L.length; k++) {
    // only http links
    if (L[k].protocol == 'http:')
     L[k].target=target_name;      
  }
}  // function TargetAll()

//—————————————————————————————————————————————————————// 

