
function isValidEmail(emailStr) {
	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null) {
		return "Email address seems incorrect (check @ and .'s)";
		//alert("Email address seems incorrect (check @ and .'s)");
		//return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	// Start by checking that only basic ASCII characters are in the strings (0-127).
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			return "Ths username contains invalid characters.";
			//return false;
		}
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			return "Ths domain name contains invalid characters.";
			//return false;
		}
	}
	if (user.match(userPat)==null) {
		return "The username doesn't seem to be valid.";
		//return false;
	}
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				return "Destination IP address is invalid!";
				//return false;
	   		}
		}
		return 0;
	}
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
			return "The domain name does not seem to be valid.";
			//return false;
	   }	
	}
	if (checkTLD && domArr[domArr.length-1].length!=2 && 
		domArr[domArr.length-1].search(knownDomsPat)==-1) {
		return "The address must end in a well-known domain or two letter " + "country.";
		//return false;
	}

// Make sure there's a host name preceding the domain.

	if (len<2) {
		return "This address is missing a hostname!";
		//return false;
	}	
	return 0;
}
function Trim(s) 
{
	return s.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

function showSpecialOffer()
{
    var offer_email=$("#offer_email").val();
    
    
    if(offer_email=='')
    {
        alert("Please enter email");
        $("#offer_email").focus();
        return false;
    }
    
    var val_email=isValidEmail(offer_email);
    
    if(val_email!=0)
    {
        alert(val_email);
        $("#offer_email").focus();
        return false;
    }
       
    TB_show('Subscribe to our mailinglist', site_url+"special_offer.php?offer_email="+offer_email+"&keepThis=true&TB_iframe=true&height=200&width=400");
}
function roundNumber(number, digit ) {
	var numberField = number; // Field where the number appears
	var rnum = number;
	var rlength = digit; // The number of decimal places to round to
	if (rnum > 8191 && rnum < 10485) {
		rnum = rnum-5000;
		var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
		newnumber = newnumber+5000;
	} else {
		var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
	}
	numberField.value = newnumber;
	return newnumber;
}


function format_number(pnumber,decimals){
	if (isNaN(pnumber)) { return 0};
	if (pnumber=='') { return 0};
	
	var snum = new String(pnumber);
	var sec = snum.split('.');
	var whole = parseFloat(sec[0]);
	var result = '';
	
	if(sec.length > 1){
		var dec = new String(sec[1]);
		dec = String(parseFloat(sec[1])/Math.pow(10,(dec.length - decimals)));
		dec = String(whole + Math.round(parseFloat(dec))/Math.pow(10,decimals));
		var dot = dec.indexOf('.');
		if(dot == -1){
			dec += '.'; 
			dot = dec.indexOf('.');
		}
		while(dec.length <= dot + decimals) { dec += '0'; }
		result = dec;
	} else{
		var dot;
		var dec = new String(whole);
		dec += '.';
		dot = dec.indexOf('.');		
		while(dec.length <= dot + decimals) { dec += '0'; }
		result = dec;
	}	
	return result;
}

function displayfaceboxpopup(message, obj, p_errormsg)
{
    if(typeof(obj)=="object")
    {
      var pos_x=findPosX(obj);
      var pos_y=findPosY(obj);
    }
    else
    {
      var pos_y = getPageScroll()[1]+150;      
      var pos_x='300';
    }
    var class1='';
    if( typeof(p_errormsg) =='undefined' )
      class1='var_msg';

    
    var html='<div id="div-facebox" >';
          html+='<div>';
            html+='<span class="'+class1+'" >'+message+'</span>';
          html+='</div>';
        html+='</div>';
  
  jQuery.facebox(html);
  $("#facebox").css({'top':pos_y, 'left':pos_x, 'width':'400', 'display':'block'});
}

function close_box()
{
  jQuery(document).trigger('close.facebox');
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}
  function getPageScroll() {
    var xScroll, yScroll;
    if (self.pageYOffset) {
      yScroll = self.pageYOffset;
      xScroll = self.pageXOffset;
    } else if (document.documentElement && document.documentElement.scrollTop) {	 // Explorer 6 Strict
      yScroll = document.documentElement.scrollTop;
      xScroll = document.documentElement.scrollLeft;
    } else if (document.body) {// all other Explorers
      yScroll = document.body.scrollTop;
      xScroll = document.body.scrollLeft;	
    }
    return new Array(xScroll,yScroll) 
  }
  function getPageHeight() {
    var windowHeight
    if (self.innerHeight) {	// all except Explorer
      windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
      windowHeight = document.documentElement.clientHeight;
    } else if (document.body) { // other Explorers
      windowHeight = document.body.clientHeight;
    }	
    return windowHeight
  }
  
  function getWindowSize()
  {
    var windowHeight,windowWidth; 
    if (self.innerHeight) {	// all except Explorer
      windowHeight = self.innerHeight;
      windowWidth = self.innerWidth;
    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
      windowHeight = document.documentElement.clientHeight;
      windowWidth = document.documentElement.clientWidth;
    } else if (document.body) { // other Explorers
      windowHeight = document.body.clientHeight;
      windowWidth = document.body.clientWidth;
    }	
    return [windowWidth ,windowHeight];
  
  }

