/* Simple AJAX Code-Kit (SACK) */
/* ©2005 Gregory Wild-Smith */
/* www.twilightuniverse.com */
/* Software licenced under a modified X11 licence, see documentation or authors website for more details */
var keywords_for_wait = new Array();

function sack(file){
	this.AjaxFailedAlert = "Your browser does not support the enhanced functionality of this website, and therefore you will have an experience that differs from the intended one.\n";
	this.requestFile = file;
	this.method = "POST";
	this.URLString = "";
	this.encodeURIString = true;
	this.execute = false;

	this.onLoading = function() { };
	this.onLoaded = function() { };
	this.onInteractive = function() { };
	this.onCompletion = function() { };

	this.createAJAX = function() {
		try {
			this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (err) {
				this.xmlhttp = null;
			}
		}
		if(!this.xmlhttp && typeof XMLHttpRequest != "undefined")
			this.xmlhttp = new XMLHttpRequest();
		if (!this.xmlhttp){
			this.failed = true; 
		}
	};
	
	this.setVar = function(name, value){
		if (this.URLString.length < 3){
			this.URLString = name + "=" + value;
		} else {
			this.URLString += "&" + name + "=" + value;
		}
	}
	
	this.encVar = function(name, value){
		var varString = encodeURIComponent(name) + "=" + encodeURIComponent(value);
	return varString;
	}
	
	this.encodeURLString = function(string){
		varArray = string.split('&');
		for (i = 0; i < varArray.length; i++){
			urlVars = varArray[i].split('=');
			if (urlVars[0].indexOf('amp;') != -1){
				urlVars[0] = urlVars[0].substring(4);
			}
			varArray[i] = this.encVar(urlVars[0],urlVars[1]);
		}
	return varArray.join('&');
	}
	
	this.runResponse = function(){
		eval(this.response);
	}
	
	this.runAJAX = function(urlstring){
		this.responseStatus = new Array(2);
		if(this.failed && this.AjaxFailedAlert){ 
			alert(this.AjaxFailedAlert); 
		} else {
			if (urlstring){ 
				if (this.URLString.length){
					this.URLString = this.URLString + "&" + urlstring; 
				} else {
					this.URLString = urlstring; 
				}
			}
			if (this.encodeURIString){
				var timeval = new Date().getTime(); 
				this.URLString = this.encodeURLString(this.URLString);
				this.setVar("rndval", timeval);
			}
			if (this.element) { this.elementObj = document.getElementById(this.element); }
			if (this.xmlhttp) {
				var self = this;
				if (this.method == "GET") {
					var totalurlstring = this.requestFile + "?" + this.URLString;
					this.xmlhttp.open(this.method, totalurlstring, true);
				} else {
					this.xmlhttp.open(this.method, this.requestFile, true);
				}
				if (this.method == "POST"){
  					try {
						this.xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded')  
					} catch (e) {}
				}

				this.xmlhttp.send(this.URLString);
				this.xmlhttp.onreadystatechange = function() {
					switch (self.xmlhttp.readyState){
						case 1:
							self.onLoading();
						break;
						case 2:
							self.onLoaded();
						break;
						case 3:
							self.onInteractive();
						break;
						case 4:
							self.response = self.xmlhttp.responseText;
							self.responseXML = self.xmlhttp.responseXML;
							self.responseStatus[0] = self.xmlhttp.status;
							self.responseStatus[1] = self.xmlhttp.statusText;
							self.onCompletion();
							if(self.execute){ self.runResponse(); }
							if (self.elementObj) {
								var elemNodeName = self.elementObj.nodeName;
								elemNodeName.toLowerCase();
								if (elemNodeName == "input" || elemNodeName == "select" || elemNodeName == "option" || elemNodeName == "textarea"){
									self.elementObj.value = self.response;
								} else {
									self.elementObj.innerHTML = self.response;
								}
							}
							self.URLString = "";
						break;
					}
				};
			}
		}
	};
this.createAJAX();
}


function insertserver(val)
{
	document.getElementById('server_name_new').value=val;
	var divdoc = document.getElementById('autoenter_div');
	divdoc.innerHTML = '';
	divdoc.style.display = 'none';
	
}

function getserverlist(num)
{
	var val = document.getElementById('server_name_new');
	val = val.value;
	if(val != '')
	{
		var divdoc = document.getElementById('autoenter_div');
		var ajaxObjects = new sack();
		ajaxObjects.requestFile = "/ajax/ajax_getServerList.php?tag="+val+"&nocash="+(new Date().getTime());	
		ajaxObjects.onCompletion = function()
		{
			if(ajaxObjects.response != '')
			{
				divdoc.innerHTML = ajaxObjects.response;
				divdoc.style.display = 'block';
			}
			else
			{
				divdoc.innerHTML = '';
				divdoc.style.display = 'none';
			}
			
		};
		ajaxObjects.runAJAX();	
	}
}

function getkeylist(num)
{
	var val = document.getElementById('id_server_name_'+num);
	if(!val.readOnly)
	{
		val = val.value;
		if(val != '')
		{
			var divdoc = document.getElementById('autoenter_div'+num);
			var ajaxObjects = new sack();
			ajaxObjects.requestFile = "/ajax/ajax_getKeyList.php?tag="+val+"&type="+num+"&nocash="+(new Date().getTime());	
			ajaxObjects.onCompletion = function()
			{
				if(ajaxObjects.response != '')
				{
					divdoc.innerHTML = ajaxObjects.response;
					divdoc.style.display = 'block';
				}
				else
				{
					divdoc.innerHTML = '';
					divdoc.style.display = 'none';
				}
				
			};
			ajaxObjects.runAJAX();	
		}
	}
}

function form_submit(id,command)
{	
	document.getElementById('iedit_id').value=id;
	document.getElementById('icommand').value=command;
	document.edit_elems_form.submit();		
}
				
function change_new(obj,id)
{
	if(obj.value==0)
		document.getElementById('add_new_div_'+id).style.display='block';
	else
		document.getElementById('add_new_div_'+id).style.display='none';
}

function change_period(obj,id,type)
{
	var ajaxObjects = new sack();
	ajaxObjects.requestFile = "/ajax/ajax_changeReriod.php?type="+type+"&per="+obj.value+"&id="+id+"&nocash="+(new Date().getTime());	
	ajaxObjects.onCompletion = function()
	{
		eval(ajaxObjects.response);
		if(err!='')
			alert(err);						
	};
	ajaxObjects.runAJAX();	
}

function change_country(obj,id)
{
	for(var i=0;i<obj.options.length;i++)
		if(obj.options[i].selected)
		{
			document.getElementById('country_name_'+id).innerHTML=obj.options[i].innerHTML;
			document.getElementById('position_check_soon_'+id).innerHTML='Keywords position in '+obj.options[i].innerHTML+' will be checking soon';			
		}
	var keywords = document.getElementsByTagName('td');
	var str_id = id+'';
	for(var t=0;t<keywords.length;t++)
	{
		
		if(keywords[t].id.substr(0,12+str_id.length)=='serv_line3_'+id+'_' || keywords[t].id.substr(0,12+str_id.length)=='serv_line4_'+id+'_' || keywords[t].id.substr(0,12+str_id.length)=='serv_line5_'+id+'_')
			keywords[t].innerHTML = 'N/A';
			
	}
	
	var ajaxObjects = new sack();
	ajaxObjects.requestFile = "/ajax/ajax_changeCountry.php?code="+obj.value+"&id="+id+"&nocash="+(new Date().getTime());	
	ajaxObjects.onCompletion = function()
	{
		eval(ajaxObjects.response);
		if(err!='')
			alert(err);		
		document.getElementById('country_text_'+id).style.display='block';
		document.getElementById('country_select_'+id).style.display='none';				
	};
	ajaxObjects.runAJAX();	
}

function delete_block(id,type)
{
	if(confirm('Are you shure?'))
	{
		var obj = document.getElementById('block_container_'+id);					
		var ajaxObjects = new sack();
		ajaxObjects.requestFile = "/ajax/ajax_delServer.php?type="+type+"&id="+id+"&nocash="+(new Date().getTime());	
		ajaxObjects.onCompletion = function()
		{
			eval(ajaxObjects.response);
			if(err!='')
				alert(err);		
			else
			{
				if(type==1)
					for(var sid in servers)	
					if(sid>0)
					{	
						var lefts = document.getElementById('services_left_alert_'+sid);
						if(new_service_count>1) lefts.innerHTML=new_service_count+' monitors left';
						if(new_service_count==1) lefts.innerHTML=new_service_count+' monitor left';
						if(new_service_count<1) lefts.innerHTML='No monitors left';
						if(new_service_count>0) 
							lefts.style.color='#070';
						else
							lefts.style.color='#a00';
					}
				if(type==2)
					for(var sid in servers)	
					if(sid>0)
					{	
						var lefts = document.getElementById('services_left_alert_'+sid);
						if(new_service_count>1)	lefts.innerHTML=new_service_count+' keywords left';
						if(new_service_count==1)	lefts.innerHTML=new_service_count+' keyword left';
						if(new_service_count<1)	lefts.innerHTML='No keywords left';
						if(new_service_count>0) 
							lefts.style.color='#070';
						else
							lefts.style.color='#a00';
					}
					
				var lefts = document.getElementById('servers_left_alert');
				if(new_server_count>1) lefts.innerHTML=new_server_count+' websites left';
				if(new_server_count==1) lefts.innerHTML=new_server_count+' website left';
				if(new_server_count<1) lefts.innerHTML='No websites left';
				if(new_server_count>0) 
					lefts.style.color='#070';
				else
					lefts.style.color='#a00';
					
				closeid = '';
				for(var numericId in dragableBoxesArray)	
					if(dragableBoxesArray[numericId]['rssUrl']==id)
						closeid = numericId;
				document.getElementById('dragableBox' + closeid).style.display='none';	
				setTimeout('dragDropCounter=-5',5);	
			}
		};
		ajaxObjects.runAJAX();	
	}	
}

function add_block(type)
{
	var name = document.getElementById('server_name_new');
	var tname = name.value;	
	if(name.value=='' || name.value==name.defaultValue)
	{
		alert('Please enter server name.');
	}
	else
	{
		name.value = 'Please wait...';
		var ajaxObjects = new sack();
		if(type==1)
			ajaxObjects.requestFile = "/ajax/ajax_addServer.php?col="+servers_color+"&name="+tname+"&nocash="+(new Date().getTime());	
		if(type==2)
			ajaxObjects.requestFile = "/ajax/ajax_addServerK.php?col="+servers_color+"&name="+tname+"&nocash="+(new Date().getTime());	
		if(type==3)
			ajaxObjects.requestFile = "/ajax/ajax_addServerR.php?col="+servers_color+"&name="+tname+"&nocash="+(new Date().getTime());	
		ajaxObjects.onCompletion = function()
		{
			var sl = servers.length;
			var startimg = document.getElementById('start_img');
			if(sl==0 && startimg) startimg.style.display='none';
			
			eval(ajaxObjects.response);
			name.value = name.defaultValue;
			if(err!='')
				alert(err);	
			else if(text!='')
			{					
				var lefts = document.getElementById('servers_left_alert');
				if(new_server_count>1) lefts.innerHTML=new_server_count+' websites left';
				if(new_server_count==1) lefts.innerHTML=new_server_count+' website left';
				if(new_server_count<1) lefts.innerHTML='No websites left';
				if(new_server_count>0) 
					lefts.style.color='#070';
				else
					lefts.style.color='#a00';
												
				var newboxid = createARSSBox(header,text,numericId,1,false,1,30);
				if(type==1)
					for(var sid in servers)	
					if(sid>0)
					{	
						var lefts = document.getElementById('services_left_alert_'+sid);
						if(new_service_count>1) lefts.innerHTML=new_service_count+' monitors left';
						if(new_service_count==1) lefts.innerHTML=new_service_count+' monitor left';
						if(new_service_count<1) lefts.innerHTML='No monitors left';
						if(new_service_count>0) 
							lefts.style.color='#070';
						else
							lefts.style.color='#a00';
					}
					
				if(type==2)
					for(var sid in servers)
					if(sid>0)	
					{	
						var lefts = document.getElementById('services_left_alert_'+sid);
						if(new_service_count>1)	lefts.innerHTML=new_service_count+' keywords left';
						if(new_service_count==1)	lefts.innerHTML=new_service_count+' keyword left';
						if(new_service_count<1)	lefts.innerHTML='No keywords left';
						if(new_service_count>0) 
							lefts.style.color='#070';
						else
							lefts.style.color='#a00';
					}
				servers_color = color;
				if(type==1)
				{
					var ajaxObjects2 = new sack();
					ajaxObjects2.requestFile = "/ajax/ajax_checkService.php?numericId="+numericId+"&color="+color+"&newserv="+newserv+"&nocash="+(new Date().getTime());
					ajaxObjects2.onCompletion = function()
					{					
						eval(ajaxObjects2.response);								
						for(var ss in res)
							document.getElementById('serv_block_'+numericId+'_'+ss).innerHTML = res[ss];		
					};
					ajaxObjects2.runAJAX();		
				}
				
				if(type==3)
				{
					if (new_server>0)
					{
						var ajaxObjects2 = new sack();
						ajaxObjects2.requestFile = "/ajax/ajax_checkRank.php?new_server="+new_server+"&color="+color+"&nocash="+(new Date().getTime());
						ajaxObjects2.onCompletion = function()
						{					
							eval(ajaxObjects2.response);								
							if(res!='')
								document.getElementById('dragableBoxContent' + newboxid).innerHTML = res;		
						};
						ajaxObjects2.runAJAX();						
					}
				}
			}
		};
		ajaxObjects.runAJAX();		
	}
}

function show_delete(id)
{
	var obj = document.getElementById('line_left_'+id);
	obj.className='line_delete';
	//obj.innerHTML = '&nbsp;&nbsp;&nbsp;<img src="'+MAZECORE_URL+'/images/backet.gif" align=absmiddle">&nbsp;&nbsp;<a href="javascript:void(0);" onmouseover="show_delete('+id+');" >Delete</a>';
}

function hide_delete(id,type)
{	
	var obj = document.getElementById('line_left_'+id);
	obj.className='line_left';
	obj.innerHTML = '&nbsp;';	
}

function delete_keyword(sid,id)
{	
	if(confirm('Are you shure?'))
	{	
		var obj = document.getElementById('serv_block_'+sid+'_'+id);
		//alert('serv_block_'+sid+'_'+id);					
		obj.innerHTML = '';
		obj.style.display='none';
		obj.id=obj.id+'removed';
		var ajaxObjects = new sack();
		ajaxObjects.requestFile = "/ajax/ajax_delKeyword.php?sid="+sid+"&id="+id+"&nocash="+(new Date().getTime());	
		ajaxObjects.onCompletion = function()
		{
			eval(ajaxObjects.response);
			if(err!='')
				alert(err);	
			else
			{				
				for(var sid in servers)	
					if(sid>0)
					{	
						var lefts = document.getElementById('services_left_alert_'+sid);
						if(new_service_count>1)	lefts.innerHTML=new_service_count+' keywords left';
						if(new_service_count==1)	lefts.innerHTML=new_service_count+' keyword left';
						if(new_service_count<1)	lefts.innerHTML='No keywords left';
						if(new_service_count>0) 
							lefts.style.color='#070';
						else
							lefts.style.color='#a00';
					}
			}
		};
		ajaxObjects.runAJAX();	
	}
}

function delete_serv(sid,id)
{	
	if(confirm('Are you shure?'))
	{
		var obj = document.getElementById('serv_block_'+sid+'_'+id);					
		obj.innerHTML = '';
		obj.style.display='none';
		obj.id=obj.id+'removed';
		var ajaxObjects = new sack();
		ajaxObjects.requestFile = "/ajax/ajax_delService.php?sid="+sid+"&id="+id+"&nocash="+(new Date().getTime());	
		ajaxObjects.onCompletion = function()
		{
			eval(ajaxObjects.response);
			if(err!='')
				alert(err);	
			else
				for(var sid in servers)	
				if(sid>0)
				{	
					var lefts = document.getElementById('services_left_alert_'+sid);
					if(new_service_count>1) lefts.innerHTML=new_service_count+' monitors left';
					if(new_service_count==1) lefts.innerHTML=new_service_count+' monitor left';
					if(new_service_count<1) lefts.innerHTML='No monitors left';
					if(new_service_count>0) 
						lefts.style.color='#070';
					else
						lefts.style.color='#a00';
				}	
		};
		ajaxObjects.runAJAX();	
	}
}

function delete_contact(sid,id)
{	
	if(confirm('Are you shure?'))
	{
		var obj = document.getElementById('contact_block_'+sid+'_'+id);					
		obj.innerHTML = '';
		obj.style.display='none';
		
		var ajaxObjects = new sack();
		ajaxObjects.requestFile = "/ajax/ajax_delContact.php?sid="+sid+"&id="+id+"&nocash="+(new Date().getTime());	
		ajaxObjects.onCompletion = function()
		{
			eval(ajaxObjects.response);
			if(err!='')
				alert(err);		
		};
		ajaxObjects.runAJAX();	
	}
}

function switch_contact(sid,id)
{	
	if(document.getElementById('switch_contact_'+sid+'_'+id).checked)
		var type = 2;
	else
		var type = 1;
	var ajaxObjects = new sack();
	ajaxObjects.requestFile = "/ajax/ajax_switchContact.php?type="+type+"&sid="+sid+"&id="+id+"&nocash="+(new Date().getTime());	
	ajaxObjects.onCompletion = function()
	{
		
	};
	ajaxObjects.runAJAX();	
}

function switch_report_type(id,page)
{	
	if(document.getElementById('block_flag_report_'+id).checked)
	{
		var type = 1;
		document.getElementById('block_flag_report_status_'+id).innerHTML = '<b style="color:#3d3">On</b>';
	}
	else
	{
		var type = 2;
		document.getElementById('block_flag_report_status_'+id).innerHTML = '';
	}
	var ajaxObjects = new sack();
	ajaxObjects.requestFile = "/ajax/ajax_switchReportK.php?page="+page+"&type="+type+"&id="+id+"&nocash="+(new Date().getTime());	
	ajaxObjects.onCompletion = function()
	{
		
	};
	ajaxObjects.runAJAX();	
}

function add_serv(id,color)
{
	var obj = document.getElementById('serv_container_'+id);	
	var name = document.getElementById('service_name_new_'+id);
	var port = document.getElementById('service_port_new_'+id);
	var old = document.getElementById('add_new_id_'+id).value;
	var tname = name.value;	
	var tport = port.value;	
	if((tname=='' || tname==name.defaultValue || tport=='' || tport==name.defaultValue) && old==0)
	{
		alert('Please enter name and port.');
	}
	else
	{
		
		//name.value = 'Please wait...';
		var ajaxObjects = new sack();
		ajaxObjects.requestFile = "/ajax/ajax_addService.php?color="+color+"&old_id="+old+"&id="+id+"&port="+tport+"&name="+tname+"&nocash="+(new Date().getTime());	
		ajaxObjects.onCompletion = function()
		{
			eval(ajaxObjects.response);
			if(err!='')
				alert(err);	
			else if(text!='')
			{				
				//document.getElementById('add_new_div_'+id).style.display = 'none';		
				for(var sid in servers)	
				if(sid>0)
				{	
					var lefts = document.getElementById('services_left_alert_'+sid);
					if(new_service_count>1)	lefts.innerHTML=new_service_count+' monitors left';
					if(new_service_count==1)	lefts.innerHTML=new_service_count+' monitor left';
					if(new_service_count<1)	lefts.innerHTML='No monitors left';
					if(new_service_count>0) 
						lefts.style.color='#070';
					else
						lefts.style.color='#a00';
				}
				name.value = name.defaultValue;
				port.value = port.defaultValue;
				obj.innerHTML += text;
				var ajaxObjects2 = new sack();
				ajaxObjects2.requestFile = "/ajax/ajax_checkService.php?numericId="+id+"&color="+color+"&newserv="+newserv+"&nocash="+(new Date().getTime());
				ajaxObjects2.onCompletion = function()
				{					
					eval(ajaxObjects2.response);													
					if(res[newserv]!='')
						document.getElementById('serv_block_'+id+'_'+newserv).innerHTML = res[newserv];		
				};
				ajaxObjects2.runAJAX();	
			}
		};
		ajaxObjects.runAJAX();		
	}			
}

function show_add_contact(id,type)
{		
	var ajaxObjects = new sack();
	ajaxObjects.requestFile = "/ajax/ajax_addContactForm.php?type="+type+"&id="+id+"&nocash="+(new Date().getTime());	
	ajaxObjects.onCompletion = function()
	{
		eval(ajaxObjects.response);
		if(text!='')
		{		
			var infoblock = document.getElementById('info_popover_'+id);
			infoblock.innerHTML = text;		
		}
	};
	ajaxObjects.runAJAX();		
	
} 

function add_contact(id,type,act)
{
	var val = document.getElementById('create_new_contact').value;	
	
	if((act==2 && val=='') )
	{
		alert('Please enter value.');
	}
	else
	{
		var ajaxObjects = new sack();
		ajaxObjects.requestFile = "/ajax/ajax_addContact.php?type="+type+"&id="+id+"&val="+val+"&act="+act+"&nocash="+(new Date().getTime());	
		ajaxObjects.onCompletion = function()
		{
			eval(ajaxObjects.response);
			if(err!='')
				alert(err);	
			else if(text!='')
			{			
				document.getElementById('contact_container_'+id).innerHTML += text;	
				if(id<0)	
				{
					document.getElementById('wont_send').innerHTML = '';
					document.getElementById('create_new_contact').value = '';
				}
				else
					document.getElementById('info_popover_'+id).innerHTML='<b>Add <a href="javascript:void(0);" onclick="show_add_contact('+id+',\'1\')">Email</a> or <a href="javascript:void(0);" onclick="show_add_contact('+id+',\'2\')">Phone</a></b>';
			}
		};
		ajaxObjects.runAJAX();		
	}			
}

function send_test_sms()
{
	var val = document.getElementById('create_new_contact').value;	
	var carr = document.getElementById('create_new_contact_carr').value;	
	if(val=='' || carr==0)
	{
		alert('Please enter phone and carrier.');
	}
	else
	{
		var ajaxObjects = new sack();
		ajaxObjects.requestFile = "/ajax/ajax_sendTestSMS.php?val="+val+"&carr="+carr+"&nocash="+(new Date().getTime());		
		ajaxObjects.onCompletion = function(){alert('Test message has been sent');};
		ajaxObjects.runAJAX();		
	}			
}


function check_keywords()
{		
	if(keywords_for_wait.length>0)
	{
		var qstr = '';
		for(var id=0;id<keywords_for_wait.length;id++)
		{	
			if(typeof keywords_for_wait[id]['kid'] != "undefined")
			qstr += keywords_for_wait[id]['kid']+'_'+keywords_for_wait[id]['color']+';';
		}
		var ajaxObjects2 = new sack();
		ajaxObjects2.requestFile = "/ajax/ajax_checkKeyword.php?kids="+qstr+"&nocash="+(new Date().getTime());
		ajaxObjects2.onCompletion = function()
		{						
			eval(ajaxObjects2.response);	
			temp = new Array();
			for(var tid in keywords_for_wait)
			{	
				var del = 0;				
				for(var tid2 in new_keywords_for_del)
					if(keywords_for_wait[tid]['kid']==new_keywords_for_del[tid2])
						del=1;
				if(del==0 && typeof keywords_for_wait[tid]['kid'] != "undefined") 
					temp[temp.length] = keywords_for_wait[tid];
			}
			keywords_for_wait = temp;
			
			for(var tid in res)	
			{
				var obj = document.getElementById('serv_block_'+res[tid]['sid']+'_'+res[tid]['kid']);	
				if(obj && typeof res[tid]['text'] != "undefined" && res[tid]['text']!='')
				{
					obj.innerHTML = res[tid]['text'];
				}
			}
		};
		ajaxObjects2.runAJAX();	
	}
	setTimeout("check_keywords()",3000);
}
setTimeout("check_keywords()",3000);

function add_keyword(id)
{
	var obj = document.getElementById('serv_container_'+id);	
	var name = document.getElementById('service_name_new_'+id);		
	var tname = name.value;
	tname = str_replace ( "\r\n", ",", tname );
	tname = str_replace ( "\n", ",", tname );
	if(tname=='' || tname==name.defaultValue)
	{
		alert('Please enter keyword.');
	}
	else 
	{
		var ajaxObjects = new sack();
		ajaxObjects.requestFile = "/ajax/ajax_addKeyword.php?color="+service_color[id] +"&id="+id+"&name="+tname+"&nocash="+(new Date().getTime());	
		ajaxObjects.onCompletion = function()
		{
			eval(ajaxObjects.response);
			if(err!='')
				alert(err);	
			else
			{
				
				for(var sid in servers)	
					if(sid>0)
					{	
						var lefts = document.getElementById('services_left_alert_'+sid);
						if(new_service_count>1)	lefts.innerHTML=new_service_count+' keywords left';
						if(new_service_count==1)	lefts.innerHTML=new_service_count+' keyword left';
						if(new_service_count<1)	lefts.innerHTML='No keywords left';
						if(new_service_count>0) 
							lefts.style.color='#070';
						else
							lefts.style.color='#a00';
					}
					
				for(var tid in res)	
				{	
					if(obj && typeof res[tid]['text'] != "undefined" && res[tid]['text']!='')
					{
						var last = keywords_for_wait.length;
						keywords_for_wait[last] = new Array();
						keywords_for_wait[last]['kid'] = res[tid]['kid'];			
						keywords_for_wait[last]['sid'] = res[tid]['sid'];			
						keywords_for_wait[last]['color'] = res[tid]['color'];
						obj.innerHTML += res[tid]['text'];	
					}
				}
				name.value = name.defaultValue;					
			}
		};
		ajaxObjects.runAJAX();		
	}			
}

function show_delete_keyword(id,sid)
{
	document.getElementById('serv_line1_'+id+'_'+sid).style.background='#ffffff';
	document.getElementById('serv_line2_'+id+'_'+sid).style.background='#ffffff';
	document.getElementById('serv_line3_'+id+'_'+sid).style.background='#ffffff';	
	document.getElementById('serv_line4_'+id+'_'+sid).style.background='#ffffff';
	document.getElementById('serv_line5_'+id+'_'+sid).style.background='#ffffff';				
	document.getElementById('serv_line1_'+id+'_'+sid).style.background= 'url('+MAZECORE_URL+'/images/delete.gif) no-repeat center center';
	document.getElementById('serv_line1_'+id+'_'+sid).style.backgroundColor = '#ffffff';	
}

function hide_delete_keyword(id,sid,color)
{			
	document.getElementById('serv_line1_'+id+'_'+sid).style.background='#'+color;
	document.getElementById('serv_line2_'+id+'_'+sid).style.background='#'+color;
	document.getElementById('serv_line3_'+id+'_'+sid).style.background='#'+color;		
	document.getElementById('serv_line4_'+id+'_'+sid).style.background='#'+color;
	document.getElementById('serv_line5_'+id+'_'+sid).style.background='#'+color;			
	document.getElementById('serv_line1_'+id+'_'+sid).innerHTML = '&nbsp;';
}

function hide_contact_form(id)
{		
	if(id>0)
		var text = '<b>Add <a href="javascript:void(0);" onclick="show_add_contact('+id+',\'1\')">Email</a> or <a href="javascript:void(0);" onclick="show_add_contact('+id+',\'2\')">Phone</a></b>';
	else
		var text = '<b><a href="javascript:void(0);" onclick="show_add_contact('+id+',\'1\')">Add Email</a></b>';
	document.getElementById('info_popover_'+id).innerHTML = text;
}

function show_delete_contact(id,sid)
{
	if(id>0) 
		var color = '#fff';
	else
		var color = '#ccd9f2';
	document.getElementById('contact_line1_'+id+'_'+sid).style.background=color;
	document.getElementById('contact_line2_'+id+'_'+sid).style.background=color;					
	document.getElementById('contact_line1_'+id+'_'+sid).style.background= 'url('+MAZECORE_URL+'/images/delete.gif) no-repeat center center';
	document.getElementById('contact_line1_'+id+'_'+sid).style.backgroundColor = color;
}

function hide_delete_contact(id,sid)
{		
	var color = document.getElementById('for_color_'+id);
	if(color) color = color.style.background; else color = '#fff';
	document.getElementById('contact_line1_'+id+'_'+sid).style.background=''+color;
	document.getElementById('contact_line2_'+id+'_'+sid).style.background=''+color;					
	document.getElementById('contact_line1_'+id+'_'+sid).innerHTML = '&nbsp;';					
}

function show_delete_serv(id,sid)
{
	document.getElementById('serv_line1_'+id+'_'+sid).style.background='#ffffff';
	document.getElementById('serv_line2_'+id+'_'+sid).style.background='#ffffff';
	document.getElementById('serv_line3_'+id+'_'+sid).style.background='#ffffff';					
	document.getElementById('serv_line1_'+id+'_'+sid).style.background= 'url('+MAZECORE_URL+'/images/delete.gif) no-repeat center center';
	document.getElementById('serv_line1_'+id+'_'+sid).style.backgroundColor = '#ffffff';
}

function hide_delete_serv(id,sid,color)
{		
	document.getElementById('serv_line1_'+id+'_'+sid).style.background='#'+color;
	document.getElementById('serv_line2_'+id+'_'+sid).style.background='#'+color;
	document.getElementById('serv_line3_'+id+'_'+sid).style.background='#'+color;					
	document.getElementById('serv_line1_'+id+'_'+sid).innerHTML = '&nbsp;';					
}

function expand(sid)
{		
	document.getElementById('expand_content_'+sid).innerHTML='&nbsp;&nbsp;&nbsp;&nbsp;<textarea id="service_name_new_'+sid+'" style="width:310px;height:200px;" onblur="if (!value) value=defaultValue" onclick="if (value==defaultValue) value=\'\'">Enter keywords. Each from new line.</textarea>&nbsp;<input type="button" onclick="add_keyword('+sid+');" value="Add Keyword"/>';
	document.getElementById('expand_'+sid).innerHTML='<a href="javascript:collapse('+sid+');">collapse</a>';				
}

function collapse(sid)
{		
	document.getElementById('expand_content_'+sid).innerHTML='&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" id="service_name_new_'+sid+'" value="Enter New Keyword" style="width:300px;" onblur="if (!value) value=defaultValue" onclick="if (value==defaultValue) value=\'\'">&nbsp;<input type="button" onclick="add_keyword('+sid+');" value="Add Keyword"/>';
	document.getElementById('expand_'+sid).innerHTML='<a href="javascript:expand('+sid+');">expand</a>';				
}

function change_contact_info(id,type)
{
	var obj = document.getElementById('contact_info_'+id);
	if(type==1)
		obj.innerHTML = '<b>Email</b><br><input type="text" id="new_email_'+id+'" value="'+document.getElementById('old_email_'+id).innerHTML+'"><br><br><b>Cell Phone</b><br><input type="text"  id="new_phone_'+id+'"  value="'+document.getElementById('old_phone_'+id).innerHTML+'"><br><br><input type="button" onclick="change_contact_info('+id+',3);" value="Save"> <input type="button" onclick="change_contact_info('+id+',0);" value="Cancel">';
	if(type==0)
		obj.innerHTML = '<a href="javascript:void(0);" onclick="change_contact_info('+id+',1);">change contact information</a>    ';
	if(type==3)
	{		
		var ajaxObjects = new sack();
		ajaxObjects.requestFile = "/ajax/ajax_changeContact.php?email="+document.getElementById('new_email_'+id).value+"&phone="+document.getElementById('new_phone_'+id).value+"&id="+id+"&nocash="+(new Date().getTime());
		obj.innerHTML = '<a href="javascript:void(0);" onclick="change_contact_info('+id+',1);">change contact information</a>    ';			
		ajaxObjects.onCompletion = function()
		{
			eval(ajaxObjects.response);
			if(err!='')
				alert(err);
			if(email!='!-')
				document.getElementById('old_email_'+id).innerHTML = email;
			if(phone!='!-')
				document.getElementById('old_phone_'+id).innerHTML = phone;			
		};
		ajaxObjects.runAJAX();
	}	
}

function send_suggest()
{
	var text = document.getElementById('suggestion');
	var parent = text.parentNode;
	var ajaxObjects = new sack();
	ajaxObjects.requestFile = "/ajax/ajax_addSuggestion.php?referrer="+current_referrer +"&address="+current_url +"&text="+text.value+"&nocash="+(new Date().getTime());	
	ajaxObjects.onCompletion = function()
	{
		parent.innerHTML='<center><br><br><span style="color:#090">Thank you for your help. We will try to make this service much better. Come back soon to see changes.</span><br><br></center>';
	}
	ajaxObjects.runAJAX();	
}

function str_replace(search, replace, subject) {
    return subject.split(search).join(replace);
} 

/* ------------ TOOLTIP ----------------*/
var tooltip=function(){ 
 var id = 'tt';
 var top = 3;
 var left = 3;
 var maxw = 300;
 var speed = 10;
 var timer = 20;
 var endalpha = 95;
 var alpha = 0;
 var tt,t,c,b,h;
 var ie = document.all ? true : false;
 return{
  show:function(v,w){
   if(tt == null){
    tt = document.createElement('div');
    tt.setAttribute('id',id);
    t = document.createElement('div');
    t.setAttribute('id',id + 'top');
    c = document.createElement('div');
    c.setAttribute('id',id + 'cont');
    b = document.createElement('div');
    b.setAttribute('id',id + 'bot');
    tt.appendChild(t);
    tt.appendChild(c);
    tt.appendChild(b);
    document.body.appendChild(tt);
    tt.style.opacity = 0;
    tt.style.filter = 'alpha(opacity=0)';
    document.onmousemove = this.pos;
   }
   tt.style.display = 'block';
   c.innerHTML = v;
   tt.style.width = w ? w + 'px' : 'auto';
   if(!w && ie){
    t.style.display = 'none';
    b.style.display = 'none';
    tt.style.width = tt.offsetWidth;
    t.style.display = 'block';
    b.style.display = 'block';
   }
  if(tt.offsetWidth > maxw){tt.style.width = maxw + 'px'}
  h = parseInt(tt.offsetHeight) + top;
  clearInterval(tt.timer);
  tt.timer = setInterval(function(){tooltip.fade(1)},timer);
  },
  pos:function(e){
   var u = ie ? event.clientY + document.documentElement.scrollTop : e.pageY;
   var l = ie ? event.clientX + document.documentElement.scrollLeft : e.pageX;
   tt.style.top = (u - h) + 'px';
   tt.style.left = (l + left) + 'px';
  },
  fade:function(d){
   var a = alpha;
   if((a != endalpha && d == 1) || (a != 0 && d == -1)){
    var i = speed;
   if(endalpha - a < speed && d == 1){
    i = endalpha - a;
   }else if(alpha < speed && d == -1){
     i = a;
   }
   alpha = a + (i * d);
   tt.style.opacity = alpha * .01;
   tt.style.filter = 'alpha(opacity=' + alpha + ')';
  }else{
    clearInterval(tt.timer);
     if(d == -1){tt.style.display = 'none'}
  }
 },
 hide:function(){
  clearInterval(tt.timer);
   tt.timer = setInterval(function(){tooltip.fade(-1)},timer);
  }
 };
}();

function str_replace ( search, replace, subject ) {    // Replace all occurrences of the search string with the replacement string
    // 
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Gabriel Paderni
 
    if(!(replace instanceof Array)){
        replace=new Array(replace);
        if(search instanceof Array){//If search    is an array and replace    is a string, then this replacement string is used for every value of search
            while(search.length>replace.length){
                replace[replace.length]=replace[0];
            }
        }
    }
 
    if(!(search instanceof Array))search=new Array(search);
    while(search.length>replace.length){//If replace    has fewer values than search , then an empty string is used for the rest of replacement values
        replace[replace.length]='';
    }
 
    if(subject instanceof Array){//If subject is an array, then the search and replace is performed with every entry of subject , and the return value is an array as well.
        for(k in subject){
            subject[k]=str_replace(search,replace,subject[k]);
        }
        return subject;
    }
 
    for(var k=0; k<search.length; k++){
        var i = subject.indexOf(search[k]);
        while(i>-1){
            subject = subject.replace(search[k], replace[k]);
            i = subject.indexOf(search[k],i);
        }
    }
 
    return subject;
 
}

function report_incorrect_position(id,type,obj)
{
	var ajaxObjects = new sack();
	ajaxObjects.requestFile = "/ajax/ajax_addReportIncorrect.php?id="+id+"&type="+type+"&nocash="+(new Date().getTime());		
	ajaxObjects.onCompletion = function()
	{
		obj.innerHTML='';	
		tooltip.hide();
	};
	ajaxObjects.runAJAX();
}
