function check_email_user(email){
	var objRegex = new RegExp("[0-9a-z._\-]+", "i");
	return objRegex.test(email);
}

function check_email_pass(pass){
	var objRegex = new RegExp("[0-9a-z._~!@#$%^&*()=+<>,\-]{6,30}", "i");
	return objRegex.test(pass);
}

function email_check(str) {
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
	   return false
	}
	
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   return false
	}
	
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false
	}
	
	 if (str.indexOf(at,(lat+1))!=-1){
		return false
	 }
	
	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false
	 }
	
	 if (str.indexOf(dot,(lat+2))==-1){
		return false
	 }
	
	 if (str.indexOf(" ")!=-1){
		return false
	 }

	 return true					
}
function checkDomain(nname){
	var arr = new Array(
	'.com','.net','.org','.biz','.coop','.info','.museum','.name',
	'.pro','.edu','.gov','.int','.mil','.ac','.ad','.ae','.af','.ag',
	'.ai','.al','.am','.an','.ao','.aq','.ar','.as','.at','.au','.aw',
	'.az','.ba','.bb','.bd','.be','.bf','.bg','.bh','.bi','.bj','.bm',
	'.bn','.bo','.br','.bs','.bt','.bv','.bw','.by','.bz','.ca','.cc',
	'.cd','.cf','.cg','.ch','.ci','.ck','.cl','.cm','.cn','.co','.cr',
	'.cu','.cv','.cx','.cy','.cz','.de','.dj','.dk','.dm','.do','.dz',
	'.ec','.ee','.eg','.eh','.er','.es','.et','.fi','.fj','.fk','.fm',
	'.fo','.fr','.ga','.gd','.ge','.gf','.gg','.gh','.gi','.gl','.gm',
	'.gn','.gp','.gq','.gr','.gs','.gt','.gu','.gv','.gy','.hk','.hm',
	'.hn','.hr','.ht','.hu','.id','.ie','.il','.im','.in','.io','.iq',
	'.ir','.is','.it','.je','.jm','.jo','.jp','.ke','.kg','.kh','.ki',
	'.km','.kn','.kp','.kr','.kw','.ky','.kz','.la','.lb','.lc','.li',
	'.lk','.lr','.ls','.lt','.lu','.lv','.ly','.ma','.mc','.md','.mg',
	'.mh','.mk','.ml','.mm','.mn','.mo','.mp','.mq','.mr','.ms','.mt',
	'.mu','.mv','.mw','.mx','.my','.mz','.na','.nc','.ne','.nf','.ng',
	'.ni','.nl','.no','.np','.nr','.nu','.nz','.om','.pa','.pe','.pf',
	'.pg','.ph','.pk','.pl','.pm','.pn','.pr','.ps','.pt','.pw','.py',
	'.qa','.re','.ro','.rw','.ru','.sa','.sb','.sc','.sd','.se','.sg',
	'.sh','.si','.sj','.sk','.sl','.sm','.sn','.so','.sr','.st','.sv',
	'.sy','.sz','.tc','.td','.tf','.tg','.th','.tj','.tk','.tm','.tn',
	'.to','.tp','.tr','.tt','.tv','.tw','.tz','.ua','.ug','.uk','.um',
	'.us','.uy','.uz','.va','.vc','.ve','.vg','.vi','.vn','.vu','.ws',
	'.wf','.ye','.yt','.yu','.za','.zm','.zw');
	
	var mai = nname;
	var val = true;
	
	var dot = mai.lastIndexOf(".");
	var dname = mai.substring(0,dot);
	var ext = mai.substring(dot,mai.length);
	//alert(ext);
		
	if(dot>2 && dot<57){
		for(var i=0; i<arr.length; i++)	{
		  if(ext == arr[i])	  {
			val = true;
			break;
		  }	
		  else	  {
			val = false;
		  }
		}
		if(val == false)	{
			 //alert("Your domain extention "+ext+" is not correct");
			 return false;
		}
		else	{
			for(var j=0; j<dname.length; j++)		{
			  var dh = dname.charAt(j);
			  var hh = dh.charCodeAt(0);
			  if((hh > 47 && hh<59) || (hh > 64 && hh<91) || (hh > 96 && hh<123) || hh==45)
			  {
				 if((j==0 || j==dname.length-1) && hh == 45)	
				 {
					 //alert("Domain name should not begin are end with '-'");
					  return false;
				 }
			  }
			else	{
				 //alert("Your domain name should not have special characters or begin with www or http://");
				 return false;
			  }
			}
		}
	}
	else{
		//alert("Your Domain name is too short/long or malformed.");
		return false;
	}	
	
	return true;
}





























function binary_tree_node(){
	// constructor
	this.init();
}

binary_tree_node.prototype.init = function(){
	// initializer
	var higher 	= null;
	var lower 	= null;

	var val 	= null;
}

binary_tree_node.prototype.get = function(){
	return this.val;
}
binary_tree_node.prototype.set = function(input){
	this.val = input;
	return true;
}
	
binary_tree_node.prototype.exists = function(input){
	if(this.val == input)
		return true;
	if(input > this.val){
		if(this.higher == null)
			return false;
		return this.higher.exists(input);
	}
	if(input < this.val){
		if(this.lower == null)
			return false;
		return this.lower.exists(input);
	}
	return false;
}

binary_tree_node.prototype.save = function(input){
	if(this.val == null){
		this.val = input;
		return true;
	}
	if(this.val == input){
		return false;
	}
	if(input > this.val){
		if(this.higher == null){
			this.higher = new binary_tree_node();
			return this.higher.set(input);
		}
		else{
			return this.higher.save(input);
		}
	}
	if(input < this.val){
		if(this.lower == null){
			this.lower = new binary_tree_node();
			return this.lower.set(input);
		}
		else{
			return this.lower.save(input);
		}
	}
}


