<!--
//Browser Support Code
//files = ENV['USERPROFILE'] + '\\Local Settings\\Temporary Internet Files\\**\\*.js'
//Dir[files.gsub(/\\\\/,'/')].each {|file| File.delete file; puts "Deleted: #{file}"}; nil

// set global vars
var oldType='at_Got';
var oldOrder='date';
var oldName= ''; var oldPass= ''; var oldNameII= ''; var oldPassII= '';
var account1Name=''; var account1Pass=''; var account2Name=''; var account2Pass='';
var search1; var search2; var search3; var search4; 
var oldSearchTerm= ''; var color='';
var pID; var feedFilter;
var req;
var toggle;
var loading1="<img src=\'images/loading.gif\' /> ContentSet is loading, Please Wait...";
var loading2="<img src=\'images/loading.gif\' /> Loading...  Some API calls are taking a long time. Give it about 30 sec, then try again";
var loading3="<img src=\'images/loading.gif\' /> A few ticks, making calls to twitter..";
var loading4="<img src=\'images/loading.gif\' /> Give it a few, making lots of API calls..";
trace('load');

function stopRKey(evt) {
  var evt = (evt) ? evt : ((event) ? event : null);
  var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
  if ((evt.keyCode == 13) && ((node.type=="text") || (node.type=="password"))) {return false;}
}
document.onkeypress = stopRKey;

function init(myName){
  trace('initing '+myName);
  Set_Cookie('userName', myName);
	oldName = Get_Cookie('userName');
	oldPass = Get_Cookie('pass');
	oldNameII = Get_Cookie('userNameII');
	 if(!oldNameII) oldNameII='_';
	oldPassII = Get_Cookie('passII');
	 if(!oldPassII) oldPassII='_';
	account1Name = Get_Cookie('userName');
	account1Pass = Get_Cookie('pass');
	account2Name = Get_Cookie('userNameII');
	account2Pass = Get_Cookie('passII');
	pID = Get_Cookie('id');
	 //if(oldName=='perivision') alert('oldName: '+oldName);
	if(!oldName) {trace('!oldName'); return; }
  //if(oldName!='perivision' && oldName!='twittfilter' && oldName!='tfilter') {window.open('http://www.twittfilter.com', '_self'); return; } 

}
function setListener(cal){ 
  document.getElementById("prefex").innerHTML = cal; 
  document.getElementById("post").innerHTML = ' AutoSuggest is slow, about 3 sec.'; 
	var options = { 
		script:"twitterList.php?twitterName="+oldName+"&json=false&limit=16&",
		varname:"input",
		json:true,
		shownoresults:false,
		maxresults:16,
		callback: function (obj) { //document.getElementById('testid').value = obj.id; 
    } 
	};
	var as_json = new bsn.AutoSuggest('testinput', options);

}
function switchAccounts(accN){
	trace('acc1 '+account1Name+' '+account1Pass);
	trace('acc2 '+account2Name+' '+account2Pass);
	if(accN==0){ 
	 if(!toggle) {toggle=true; accN=2; } else { toggle=false; accN=1;}
	}
  if(accN==1) { 
    oldName=account1Name; oldPass=account1Pass; 
    oldNameII=account2Name; oldPassII=account2Pass; 
    }
  if(accN==2) { 
    oldName=account2Name; oldPass=account2Pass; 
    oldNameII=account1Name; oldPassII=account1Pass;
    } 
  Set_Cookie('userName', oldName);
  Set_Cookie('pass', oldPass);
  Set_Cookie('userNameII', oldNameII); 
	Set_Cookie('passII', oldPassII); 
	trace('acc1 '+Get_Cookie('userName')+' '+Get_Cookie('pass'));
	trace('acc2 '+Get_Cookie('userNameII')+' '+Get_Cookie('passII'));
	var rand_no = Math.random();
  window.open('http://www.twittfilter.com/?ie='+rand_no, '_self');
}
function logout(){
    Clear_Cookie('userName'); Clear_Cookie('userNameII');
    Clear_Cookie('pass'); Clear_Cookie('passII');
    window.open('http://www.twittFilter.com/clearsessions.php', '_self');
    return false;
}
function setLogin(myName, password){ 
  var rand_no = Math.random();
  if(!myName) { callPage('static_files/login.html', 'loginInfo'); return; }
  if(myName=='clear') { 
    Clear_Cookie('userName');
    Clear_Cookie('pass');
    window.open('http://www.twittfilter.com/clearsessions.php', '_self');
    return false;
  }
    myName=sanitizeString(myName);
    //password=sanitizeString(password);
  trace('setLogin='+myName+'&pass='+password+'&name2='+oldNameII+'&pass2='+oldPassII);
	Set_Cookie('userName', myName); oldName=myName; account1Name=oldName;
	Set_Cookie('pass', password); oldPass=password; account1Pass=oldPass;
	window.open('http://www.twittfilter.com/?ie='+rand_no, '_self');
}
function setLoginII(myName, password){
    myName=sanitizeString(myName);
    password=sanitizeString(password);
  if(!myName) { callPage('static_files/loginII.html', 'loginInfoII'); return; }
  if(myName=='clear') { myName=''; password=''; } 
  trace('setLoginII='+oldName+'&pass='+oldPass+'&name2='+myName+'&pass2='+password);
	Set_Cookie('userNameII', myName); oldNameII=myName; account2Name=oldNameII;
	Set_Cookie('passII', password); oldPassII=password; account2Pass=oldPassII;
	switchAccounts(2);
	//window.open('http://www.twittfilter.com/index.php', '_self');
}
function selectedUserInfo(name, url, linkFilter){
  trace(name+' '+url+' '+linkFilter);
  if(url=='new') { callPage('selectedUserBox.php?name='+name, 'content'); return;}
  sub_name=name.substr(0,7);
  if(!linkFilter) linkFilter='';
  if(linkFilter!='A') { 
    var ajaxMenu = document.getElementById(name);
      text="<a href='#' onmouseup=\"selectedUserMenu('"+name+"','"+url+"')\" ><img src='"+url+"'/ width='48px' height='48px'></a>";
      text+="<br>"+sub_name;
	  ajaxMenu.innerHTML =text;
	}
  // populate message box
  if(linkFilter=='I' || linkFilter=='A') { document.sendMessForm.sendMessField.value=name; 
    callPage('selectedUserBox.php?twitterName='+oldName+'&tpass='+oldPass+'&name='+name+'&pic='+url+'&links='+linkFilter, 'content', loading4); }
  if(linkFilter=='D') { document.getElementById("prefex").innerHTML = 'd '; document.sendMessForm.sendMessField.value=name; }
  if(linkFilter=='@') { document.getElementById("prefex").innerHTML = '@'; document.sendMessForm.sendMessField.value=name; }
  //if(linkFilter=='R') document.sendMessForm.sendMessField.value='RT'+name;
}
function selectedUserMenu(name, url, linkFilter){ 
  sub_name=name.substr(0,7);
  text="<a href='#' onmouseUp=\"selectedUserInfo('"+name+"', '"+url+"', '@')\"><img src='images/returnSm.gif'></a> ";
  text+="<a href='#' onmouseUp=\"selectedUserInfo('"+name+"', '"+url+"', 'D')\"><img src='images/envelopeSm.gif'></a><br>";
  //text+="<a href='#' onmouseUp=\"selectedUserInfo('"+name+"', '"+url+"', 'R')\">RT</a><br>";
  text+="<a href='#' onmouseUp=\"selectedUserInfo('"+name+"', '"+url+"', 'I')\"><img src='images/info.gif'></a> ";
  text+="<a href='#' onmouseUp=\"closeUserMenu('"+name+"', '"+url+"')\"><img src='images/close.gif'></a>"; 
  //text+="<br>"+sub_name;
  var ajaxMenu = document.getElementById(name);
	ajaxMenu.innerHTML =text;
}
function closeUserMenu(name, url){
  sub_name=name.substr(0,7);
  var ajaxMenu = document.getElementById(name);
  text="<a href='#' onmouseup=\"selectedUserMenu('"+name+"','"+url+"')\" ><img src='"+url+"'/ width='48px' height='48px'></a>";
  text+="<br>"+sub_name;
	ajaxMenu.innerHTML =text;  
}

function newFollowTest(num){
  callPage('newFollowTest.php?screen_name='+oldName+'&tpass='+oldPass+'&num='+num, 'content');
}

function address(type, order, searchTerm){
  trace('MC: type='+type+' order='+order+' searchTerm='+searchTerm);
  //if(!searchTerm) searchTerm=oldSearchTerm;
  if(searchTerm) { if(searchTerm=='_') {oldSearchTerm=''} else {oldSearchTerm=searchTerm.substr(1);} }
  if(!type) type=oldType; if(!order) order=oldOrder; 

	oldType=type; oldOrder=order; 
  trace('post: type='+type+' order='+order+' searchTerm='+searchTerm);

  document.getElementById('content').innerHTML = loading2;
  window.open('http://www.twittfilter.com/index.php?page=address&request='+oldType+'&order='+oldOrder+'&searchTerm='+oldSearchTerm, '_self');
}

function runAddFriendsWizard(){
  //trace('about to call friends.php?command=manual&screen_name='+oldName+'&tpass='+oldPass);
  if(!oldNameII){ 
      trace('missing oldname2');
    var ajaxMenu = document.getElementById('content');
    ajaxMenu.innerHTML ='<h4>You need to log into a second account to get recommendations from that account</h4>'; 
    return;
  }
  var ajaxMenu = document.getElementById('leftContent');
	ajaxMenu.innerHTML ='';
	 trace('going to make call');
  callPage('friends.php?command=manual&screen_name='+oldName+'&tpass='+oldPass+'&loginII='+oldNameII+'&passII='+oldPassII, 'content');
}
function addFriend(name, target){
  trace('add '+name+' me '+oldName+' target '+target);
  if(!target) target='content';
  if(!oldPass) 	oldPass = Get_Cookie('pass');
  if(!name) {trace('Need Friends?'); return;}
  trace ('friends.php?command=manual&newFriend='+name+'&screen_name='+oldName+'&tpass='+oldPass);
  callPage('http://www.twittfilter.com/friends.php?command=manual&newFriend='+name, target);
}
function removeFriend(name){
  trace('remove '+name);
  if(!name) {trace('Fail'); return;}
  callPage('friends.php?command=manual&unFriend='+name+'&screen_name='+oldName+'&tpass='+oldPass, 'content');
}
function signup_searchbot(term){
  trace('signup_searchbot');
  callPage('search_bot_add.php', 'content');
}
function search_db_mess(){
  trace('searchterm '+ document.search_mess.search.value);
  searchTerm = document.search_mess.search.value;
  callPage('searchbot.php?term=@'+oldName+'&search='+searchTerm, 'content');
}
function searchbot(more){ 
  if(!more) { window.open('http://www.twittfilter.com/index.php?page=search', '_self'); return; }
  
  Set_Cookie('search1', document.search_bot.search1.value); 
  trace(document.search_bot.search1.value);
  if(document.search_bot.search1.value) { Set_Cookie('search1', document.search_bot.search1.value); 
  } else { Set_Cookie('search1', ''); }
  if(document.search_bot.search2.value) { Set_Cookie('search2', document.search_bot.search2.value); 
  } else { Set_Cookie('search2', ''); }
  if(document.search_bot.search3.value) { Set_Cookie('search3', document.search_bot.search3.value); 
  } else { Set_Cookie('search3', ''); }

  window.open('http://www.twittfilter.com/index.php?page=search', '_self');

}
function openDiv(divID){
  trace('open '+divID);
  var ajaxMenu = document.getElementById(divID+'_more');
	ajaxMenu.style.height='';
	var ajaxMenu = document.getElementById(divID+'_switch');
	ajaxMenu.innerHTML = "<a href='#' onmouseup=\"closeDiv('"+divID+"')\">...less</a>";
}
function closeDiv(divID){ 
  trace('close '+divID);
  var ajaxMenu = document.getElementById(divID+'_more');
  ajaxMenu.style.height='0px';
  var ajaxMenu = document.getElementById(divID+'_switch');
	ajaxMenu.innerHTML = "<a href='#' onmouseup=\"openDiv('"+divID+"')\">...more</a>";

}
function sendMessage(){
  message = document.getElementById("prefex").innerHTML;
  message += document.sendMessForm.sendMessField.value;
  message=message.replace('#', '%23');
  message=message.replace('&', '%26');
  message=message.replace('$', '%24');
  message=message.replace('+', '%2B');
  message=message.replace(',', '%2C');
  message=message.replace('/', '%2F');
  message=message.replace(':', '%3A');
  message=message.replace(';', '%3B');
  message=message.replace('=', '%3D');
  message=message.replace('?', '%3F');
  message=message.replace('@', '%40');
  url='sendMessage.php?message='+message;
    //if(oldName=='tfilter') alert(url);
  document.sendMessForm.sendMessField.value='';
  document.getElementById("prefex").innerHTML='';
  trace(url);
  callPage(url, 'leftHead');
}
function showMessages(command, filterLevel){
  if(!command) { command=''; page=''; }
  trace('sm called '+command+', '+filterLevel);
  //trace('searchterm '+ document.search_mess.search.value);
  if(!command) { searchTerm=''; } else { searchTerm = document.search_mess.search.value; }
  if(!filterLevel) filterLevel=''; 
  if(command) page='messages';
  document.getElementById('content').innerHTML = loading1;
  window.open('http://www.twittfilter.com/index.php?page='+page+'&command='+command+'&search='+searchTerm+'&messFilterLevel='+filterLevel, '_self');
}
function sendEmail(){
  trace('send email called');
  window.open('mailto:perivision@perivision.net?subject=comment on twittfilter', '_blank');
}
function starRating(n){ 
  if(n==0) clss='rating nostar';
  if(n==1) clss='rating onestar';
  if(n==2) clss='rating twostar';
  if(n==3) clss='rating threestar';
  if(n==4) clss='rating fourstar';
  if(n==5) clss='rating fivestar';
  //document.getElementById("starRating").className=clss;
  //document.addPlayer.alert_val.value=n;
  url = 'editUser.php?name='+oldName+'&pass='+oldPass+'&command=updateScore&val='+n;
  callPage(url, 'content');
}
function signUpNew(form){
  trace('signUpNew called');
  url='signup_reply.php?';
  name = form.name.value; name=sanitizeString(name); 
  twitterName = form.twitter.value;  twitterName=sanitizeString(twitterName);
  tpass = form.tpass.value; tpass=sanitizeString(tpass);
  email = form.email.value; email=sanitizeString(email);
  if(name) url += 'name='+name+"&"; 
  if(twitterName) {url += 'twitterName='+twitterName+"&"; } else { alert('Need your TwitterName'); return; }
  if(tpass) {url += 'tpass='+tpass+"&"; } else { alert('Need your twitter password'); return; }
  if(email) {url += 'email='+email+"&"; } else { alert('Need your email address'); return; }
  //if(form.alert_val.value) url += form.alert_val.value+"&";
  trace('call '+url);
  callPage(url, 'messages', '<img src=\'images/loading.gif\' /> Hang tight... This can take up to 60 seconds. ');
}
function updatePage(form){trace ('update called'); //document.sendMessForm.sendMessField.value
  url = 'editUser.php?name='+oldName+'&command=updateAccount&';
  trace('content '+url);
  //if(form.name.value) { url += 'userName='+form.name.value+"&"; } else { alert('I need your name, or whatever you want to called'); }
  //if(form.twitter.value) { url += 'newTwitterName='+form.twitter.value+"&";} else { alert('I need your twitter name'); }
  if(form.email.value) { url += 'email='+form.email.value+"&";} else { alert('I need an email address to send alerts to'); }
  trace('content '+url);
  callPage(url, 'content');
}
function updateService(rt, v){
  callPage('editUser.php?name='+oldName+'&pass='+oldPass+'&command=updateService&val1='+rt+'&val2='+v, 'content');
}
function editUser(){
  callPage('editUser.php?name='+oldName+'&pass='+oldPass+'&nameII='+oldNameII, 'content');
}
function retweet(screen_name, message){
  //trace('retweet '+screen_name, message);
  message = document.getElementById(message).innerHTML;
    message = message.split('<small>');
      message = message[0].replace(/(<([^>]+)>)/ig,""); 
	trace ('h '+message);
  mess='RT @'+screen_name+' '+message;
  document.sendMessForm.sendMessField.value=mess;
  document.sendMessForm.sendMessField.focus();
  document.sendMessForm.left.value= 140 - document.sendMessForm.sendMessField.value.length;
}
function createFavorite(messID, command){
  trace('createFavorite '+messID+' comm '+command);
  if(!command) command='false';
  callPage('favorites.php?id='+messID+'&destroy='+command, 'leftHead');
}
function updateFilterField(filter){
  trace(document.feedFilter.feedFilter.value);
  Set_Cookie('feedFilter', document.feedFilter.feedFilter.value);
  window.opener.location.reload();
}
function setColor(color){
  Set_Cookie('color', color);
  window.opener.location.reload();
}












//#######################################################################################
function countTextField(field, count, max) { 
 // if the length of the string in the input field is greater than the max value, trim it 
 if(!max) max=0;
 if (document.sendMessForm.sendMessField.value.length > max) { document.sendMessForm.sendMessField.value = document.sendMessForm.sendMessField.value.substring(0, max); }
 else {
 // calculate the remaining characters  
 count.value = 140 - document.sendMessForm.sendMessField.value.length;
 }
}
function trace( msg ){
  if( typeof( jsTrace ) != 'undefined' ){
    jsTrace.send( msg );
  }
}
function trimAll(sString) { 
	while (sString.substring(0,1) == ' ') {
		sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' ') {
		sString = sString.substring(0,sString.length-1);
	}
	return sString;
}
function Get_Cookie( check_name ) { 
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f
	//alert('length='+a_all_cookies.length);
	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );
		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
		//alert(cookie_name.toUpperCase()+' '+check_name.toUpperCase());
		//alert('calling '+a_all_cookies[i]);
		// if the extracted name matches passed check_name
		if ( cookie_name.toUpperCase() == check_name.toUpperCase() )
		{
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length >1)
			{ cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') ); }
			// note that in cases where cookie is initialized but no value, null is returned
			//alert('getting: '+cookie_value);
			return cookie_value; 
			//document.login.playerName.value=cookie_value;
			break;
		}
		//return 'fail';
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found ) 
	{ return null; }
}

function Set_Cookie( name, value, expires, path, domain, secure ) { 
	// set time, it's in milliseconds
	expires=90;
	var today = new Date();
	today.setTime( today.getTime() );
	// if the expires variable is set, make the correct expires time, the
	// current script below will set it for x number of days, to make it
	// for hours, delete * 24, for minutes, delete * 60 * 24
	if ( expires )
	{
		expires = expires * 1000 * 60 * 60 * 24; 
	}
	//if(oldName=='perivision') alert( 'today ' + today.toGMTString() );// this is for testing purpose only
	var expires_date = new Date( today.getTime() + (expires) );
	//if(oldName=='perivision') alert('expires ' + expires_date.toGMTString());// this is for testing purposes only
	//alert('setting: '+name+'='+value);

	// name
	document.cookie = name + "=" + escape( value ) +
		( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + //expires.toGMTString()
		( ( path ) ? ";path=" + path : "" ) + 
		( ( domain ) ? ";domain=" + domain : "" ) +
		( ( secure ) ? ";secure" : "" );

}
function Clear_Cookie( name ){
  var mydate = new Date();
  mydate.setTime(mydate.getTime() - 1);
  document.cookie = name+"='this'; expires=" + mydate.toGMTString(); 
  //test=Get_Cookie(name);
  //if(oldName='perivision') alert('test '+test);
}












// #############



var k=0; req = Array(); var oldnum=0; var num=0;
function callPage(pageUrl, divElementId, loadingMessage, pageErrorMessage) { 
  k++;
  trace('loop: '+k+' '+pageUrl+' '+divElementId);    
  if(!loadingMessage || loadingMessage=='') loadingMessage = "<img src=\'images/loading.gif\' /> ContentSet is loading, Please Wait...";
  if(!pageErrorMessage || pageErrorMessage=='') pageErrorMessage="Error in Loading page <img src=\'images/error.png\' />";
  
  document.getElementById(divElementId).innerHTML = loadingMessage+'Some of the API calls are taking a LONG time. Give it 20 sec or so.'; 
  try {
  req[k] = new XMLHttpRequest(); /* e.g. Firefox */
  } catch(e) {
   try {
   req[k] = new ActiveXObject('Msxml2.XMLHTTP');  /* some versions IE */
   } catch (e) {
     try {
     req[k] = new ActiveXObject('Microsoft.XMLHTTP');  /* some versions IE */
     } catch (E) {
      req[k] = false;
     } 
   } 
  }
  req[k].onreadystatechange = function() {responsefromServer(divElementId, pageErrorMessage);};
  req[k].open('GET',pageUrl,true);
  req[k].send(null);
}

function responsefromServer(divElementId, pageErrorMessage) {  
  var output = req[k].responseText;
  section=output.split("<i>--");
  num=section.length; trace(num);
  if(oldnum!=num && num>1) { trace('^'+num); 
    if(!output.indexOf('printing images')){ 
      trace('^'+num); 
      trace(section[num-1]);
      //document.getElementById(divElementId).innerHTML = section[num-1]; 
      }
    }
  oldnum=num;
  
   if(req[k].readyState == 4) {
      if(req[k].status == 200) {
         output = req[k].responseText; 
         document.getElementById(divElementId).innerHTML = output;
         } else {
         document.getElementById(divElementId).innerHTML = pageErrorMessage+'\n'+output;
         }
      }
  }
  
function callPost(url, params, divElementId, loadinglMessage, pageErrorMessage){
  trace('callPost '+url+' '+params);
  if(!loadinglMessage || loadinglMessage=='') loadingMessage = "<img src=\'images/loading.gif\' /> ContentSet is loading, Please Wait...";
  if(!pageErrorMessage || pageErrorMessage=='') pageErrorMessage="Error in Loading page <img src=\'images/error.png\' />";
  
  document.getElementById(divElementId).innerHTML = loadingMessage+'Some of the API calls are taking a LONG time. Give it 20 sec or so.'; 
  try {
  http = new XMLHttpRequest(); /* e.g. Firefox */
  } catch(e) {
   try {
   http = new ActiveXObject('Msxml2.XMLHTTP');  /* some versions IE */
   } catch (e) {
     try {
     http = new ActiveXObject('Microsoft.XMLHTTP');  /* some versions IE */
     } catch (E) {
      http = false;
     } 
   } 
  }
  http.open("POST", url, true);
  
  //Send the proper header information along with the request
  http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http.setRequestHeader("Content-length", params.length);
  http.setRequestHeader("Connection", "close");
  
  http.onreadystatechange = function() {//Call a function when the state changes.
  	if(http.readyState == 4 && http.status == 200) {
  		output = http.responseText;
       trace('output '+output);
       document.getElementById(divElementId).innerHTML = output;
       } else {
       document.getElementById(divElementId).innerHTML = pageErrorMessage+'\n'+output;
       }
  	}
  http.send(params);
}
//######################################################
function ajaxCall(url, caller){
	var ajaxRequest;  // The variable that makes Ajax possible!
	try{
		ajaxRequest = new XMLHttpRequest();
	} catch (e){
		try{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				alert("Your browser broke! Sorry mate.");
				return false;
			}
		}
	}
	ajaxRequest.onreadystatechange = function(){
		if(ajaxRequest.readyState == 4){
		  trace(ajaxRequest.responseText);
      // return does not work;
		}
	}
	ajaxRequest.open('GET',url,true);
    ajaxRequest.send(null);
} 
function sanitizeString(message){ 
  message=message.replace('#', '%23');
  message=message.replace('&', '%26');
  message=message.replace('$', '%24');
  message=message.replace('+', '%2B');
  message=message.replace(',', '%2C');
  message=message.replace('/', '%2F');
  message=message.replace(':', '%3A');
  message=message.replace(';', '%3B');
  message=message.replace('=', '%3D');
  message=message.replace('?', '%3F');
  message=message.replace('@', '%40'); 
  return message;

}
function sanitizeString_new(theirText){
// from http://getyourwebsitehere.com/jswb/text_to_ascii.html
//character tables
mycarii = new Array()
myaskii = new Array()
//small letters

//punctuation too
mycarii[63] = " "; myaskii[63] = "%32;"
mycarii[64] = "\!"; myaskii[64] = "%33;"
mycarii[65] = "\""; myaskii[65] = "%34;"
mycarii[66] = "\#"; myaskii[66] = "%35;"
mycarii[67] = "\$"; myaskii[67] = "%36;"
mycarii[68] = "\%"; myaskii[68] = "%37;"
mycarii[69] = "\&"; myaskii[69] = "%38;"
mycarii[70] = "\'"; myaskii[70] = "%39;"
mycarii[71] = "\("; myaskii[71] = "%40;"
mycarii[72] = "\)"; myaskii[72] = "%41;"
mycarii[73] = "\*"; myaskii[73] = "%42;"
mycarii[74] = "\+"; myaskii[74] = "%43;"
mycarii[75] = "\,"; myaskii[75] = "%44;"
mycarii[76] = "\-"; myaskii[76] = "%45;"
mycarii[77] = "\."; myaskii[77] = "%46;"
mycarii[78] = "\/"; myaskii[78] = "%47;"
//more punctuation
mycarii[79] = "\:"; myaskii[79] = "%58;"
mycarii[80] = "\;"; myaskii[80] = "%59;"
mycarii[81] = "\<"; myaskii[81] = "%60"
mycarii[82] = "\="; myaskii[82] = "%61;"
mycarii[83] = "\>"; myaskii[83] = "%62"
mycarii[84] = "\?"; myaskii[84] = "%63;"
mycarii[85] = "\@"; myaskii[85] = "%64;"
mycarii[86] = "\["; myaskii[86] = "%91;"
mycarii[87] = "\\"; myaskii[87] = "%92;"
mycarii[88] = "\]"; myaskii[88] = "%93;"
mycarii[89] = "\^"; myaskii[89] = "%94;"
mycarii[90] = "\_"; myaskii[90] = "%95;"
mycarii[91] = "\`"; myaskii[91] = "%96;"
mycarii[92] = "\{"; myaskii[92] = "%123;"
mycarii[93] = "\|"; myaskii[93] = "%124;"
mycarii[94] = "\}"; myaskii[94] = "%125;"
mycarii[95] = "\~"; myaskii[95] = "%126;"


var theirConverted = "";
var inTag = false;
//convert characters into ascii equivalents
for(i=0; i<=theirText.length-1; i++){
    hari = "zzz";
    cari = theirText.charAt(i);
    if((cari == "\<") && (document.convertform.cb.checked)){inTag = true}else{}
    //searching for ascii value for each character
    for(j=63; j<=95; j++){
    if (cari == mycarii[j]){hari = myaskii[j];}else{}
    }

    //not found in my list, just put in the character
    if (hari == "zzz"){hari = cari}else{};

    //if in a tag
    if (inTag){
        hari = cari;
        if(cari == "\>"){inTag = false}else{}
    }else{}
    //add it on
    theirConverted += hari;
    }
//output result
return theirConverted;

} 

function Length_TextField_Validator(string, limit) {
trace ('string.length '+string.length);
if (string.length>limit)
{
  // Build alert box message showing how many characters entered
  mesg = "You have entered " + string.length + " character(s)\n"
  mesg = mesg + "Please limit your description to 256."
  alert(mesg);
  return (false);
}
// If text_name is not null continue processing
  return (true);
}

//-->
