//General site scripts

//Function to 'trim' whitespace from strings.
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}



//Email Validation Class
function EmailCheck(email){
  this.email=email;
  }

    function getEmail(){
      return this.email;
      }

    function validate(){
      var pattern=/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/;
        if(pattern.test(this.email)){
        return true;
        }
        else{
        return false;
        }
    } 

  
    EmailCheck.prototype.getEmail=getEmail;
    EmailCheck.prototype.validate=validate;
    
//End Email Validation Class


//AJAX Class
function Ajax(){
  this.handle=false;
  //Check for IE
  try{
    this.handle=new ActiveXObject("Msxml2.XMLHTTP");
    this.browser="IE7";
  }
  catch(e){
    try{
      this.handle=new ActiveXObject("Microsoft.XMLHTTP");
      this.browser="IE6";
      }
      catch(e){
        this.handle=false;
        }
      }
  if(!this.handle && typeof XMLHttpRequest!="undefined"){
    this.handle=new XMLHttpRequest();
    this.browser="Mozilla";
  }
}

//End AJAX CLASS




//Preload Images
function loadImages(){

//Define variables
var i;
var jpgs=new Array();
var gifs=new Array();
var pngs=new Array();


  if(document.images){
    var jpegs=new Array("butAcne","butBotox","butContact","butHair","butOffers","butSkin","butSun");
    var gfs=new Array();
    var png=new Array();
    
    
    //JPEGS
    if(jpegs.length){
      for(i=0;i<jpegs.length;i++){
        jpgs[i]=new Image();
        jpgs[i].src="images/"+jpegs[i]+"_over.jpg";
      }
    }
    
    //GIFS
    if(gfs.length){
      for(i=0;i<gfs.length;i++){
        gifs[i]=new Image();
        gifs[i].src="images/"+gfs[i]+"_over.jpg";
      }
    }
    
    //PNGS
    if(png.length){
      for(i=0;i<png.length;i++){
        pngs[i]=new Image();
        pngs[i].src="images/"+png[i]+"_over.jpg";
      }
    }
    
  }
}
  
  
  
function rollOn(id,ext){
  //handles rollover for buttons
  var extn;
  if(ext=="j"){
    extn=".jpg";
  }
  if(ext=="g"){
    extn=".gif";
  }
  if(ext=="p"){
    extn=".png";
  }
  
  document.getElementById(id).src="images/"+id+"_over"+extn;
    
  }

function rollOff(id,ext){
  //handles rollover for buttons
  var extn;
  if(ext=="j"){
    extn=".jpg";
  }
  if(ext=="g"){
    extn=".gif";
  }
  if(ext=="p"){
    extn=".png";
  }
  
  document.getElementById(id).src="images/"+id+extn;
    
  }
  
function URLEncode(url) //Function to encode URL.
{
// The Javascript escape and unescape functions do not correspond
// with what browsers actually do...
var SAFECHARS = "0123456789" + // Numeric
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" + // Alphabetic
"abcdefghijklmnopqrstuvwxyz" +
"-_.!~*'()"; // RFC2396 Mark characters
var HEX = "0123456789ABCDEF";

var plaintext = url;
var encoded = "";
for (var i = 0; i < plaintext.length; i++ ) {
var ch = plaintext.charAt(i);
if (ch == " ") {
encoded += "+"; // x-www-urlencoded, rather than %20
} else if (SAFECHARS.indexOf(ch) != -1) {
encoded += ch;
} else {
var charCode = ch.charCodeAt(0);
if (charCode > 255) {
alert( "Unicode Character '"
+ ch
+ "' cannot be encoded using standard URL encoding.\n" +
"(URL encoding only supports 8-bit characters.)\n" +
"A space (+) will be substituted." );
encoded += "+";
} else {
encoded += "%";
encoded += HEX.charAt((charCode >> 4) & 0xF);
encoded += HEX.charAt(charCode & 0xF);
}
}
}

return encoded;
};


 

function URLDecode(url) //function decode URL
{
// Replace + with ' '
// Replace %xx with equivalent character
// Put [ERROR] in output if %xx is invalid.
var HEXCHARS = "0123456789ABCDEFabcdef";
var encoded = url;
var plaintext = "";
var i = 0;
while (i < encoded.length) {
var ch = encoded.charAt(i);
if (ch == "+") {
plaintext += " ";
i++;
} else if (ch == "%") {
if (i < (encoded.length-2)
&& HEXCHARS.indexOf(encoded.charAt(i+1)) != -1
&& HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
plaintext += unescape( encoded.substr(i,3) );
i += 3;
} else {
alert( 'Bad escape combination near ...' + encoded.substr(i) );
plaintext += "%[ERROR]";
i++;
}
} else {
plaintext += ch;
i++;
}
} // while

return plaintext;
}; 
    
    
      
        
        
