var host = 'www.anobii.com';
// var host = '127.0.0.1';
// var host = '202.153.121.213';
// var host = '192.168.1.101';

if (window.XMLHttpRequest) {
    xmlhttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} else {
	xmlhttp = false;
}

if (window.XMLHttpRequest) {
    xmlhttp_menus = new XMLHttpRequest();
} else if (window.ActiveXObject) {
    xmlhttp_menus = new ActiveXObject("Microsoft.XMLHTTP");
} else {
	xmlhttp_menus = false;
}

if (window.XMLHttpRequest) {
    xmlhttp_message = new XMLHttpRequest();
} else if (window.ActiveXObject) {
    xmlhttp_message = new ActiveXObject("Microsoft.XMLHTTP");
} else {
	xmlhttp_message = false;
}

////////////////////////////////////////////////////////////////////////////////
function private_message_new() 
// check total number of new private message
{
	var url = '/anobi/ajax/private_message_new.php';
  	
 	xmlhttp_message.open('GET', url, true);
 	
 	xmlhttp_message.onreadystatechange = function() {
   		if (xmlhttp_message.readyState == 4 && xmlhttp_message.status == 200) {
   			var result = xmlhttp_message.responseText;

   			var message_new_top    = document.getElementById('private_message_new');
   			var message_new_bottom = document.getElementById('private_message_new_footer');

   			if (message_new_top) {
   				if (result == '') {
   					message_new_top.innerHTML = result;
   				} else {
   					message_new_top.innerHTML = ' ('+result+')';
   				}
   			}
   			
   			if (message_new_bottom) {
   				if (result == '') {
   					message_new_bottom.innerHTML = result;
   				} else {
   					message_new_bottom.innerHTML = ' ('+result+')';
   				}
   			}
    	} 
    };

    xmlhttp_message.send(null); 
  
  	return;
} // private_message_new

////////////////////////////////////////////////////////////////////////////////
function change_language (page_url, pid, lang_id) 
// change language value 
{
	if (!lang_id) {
		var lang = document.getElementById('reselect_language').value;
	} else {
		if (lang_id == 'language_select') {
			var lang = document.getElementById(lang_id).value;
		} else if (lang_id == 'language_select_upper') {
			var lang = document.getElementById(lang_id).value;
		} else if (lang_id == 'language_select_lower') {
			var lang = document.getElementById(lang_id).value;
		} else {
			var lang = lang_id;
		}
	}
	
	var url = '/anobi/ajax/language.php?language='+lang+'&ajax=1';
  	// var url = '/anobi/ajax/language.php?lang='+lang+'&ajax=1';

 	xmlhttp.open('GET', url, true);
 	
 	xmlhttp.onreadystatechange = function() {
   		if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
   			var result = xmlhttp.responseText;

   			if (result == '1') {
   				// page_url = page_url.replace('https://', 'http://');
   				location.replace(page_url);
   			}
    	} 
    };

    xmlhttp.send(null); 
  	
    /*
	if (pid == 35) {
		var q = confirm('Unsaved changes on this page will be lost. Continue to change language?');
	
		if (!q) {
			return;
		}
	}
	*/
	
  	return;
} // change_language

////////////////////////////////////////////////////////////////////////////////
function change_session_value (s, v) 
// change session variable value "quietly"
{
  	var url = '/anobi/ajax/session.php?s='+s+'&v='+v+'&ajax=1';
  	
  	xmlhttp.open('GET', url, true);
  	xmlhttp.send(null);  
  	
  	return;
} // change_session_value

////////////////////////////////////////////////////////////////////////////////
function search_general (f, s_type, w, div, type) 
// for search engine
{
	var form   = document.getElementById(f);
	var s      = document.getElementById(s_type);
	var word   = document.getElementById(w);

    var fid    = escape(form.value);
    var search = word.value;
    // var search = escape(word.value);
    var type   = escape(type); 
    var s_type = s.value; 
    
    search = search.replace(/&/g, '%26');

    if (s_type == '1') {
    	var post_string = 'fid='+fid+'&search='+search+'&type='+type+'&s_type='+s_type+'&ajax=1';
    } else {
        var shelf_type    = document.getElementById('shelf_type').value;
        var subscriber_id = document.getElementById('search_subscriber_id').value;
    
    	var post_string = 'fid='+fid+'&search='+search+'&type='+type+'&s_type='+s_type+'&shelf='+shelf_type+'&s='+subscriber_id+'&ajax=1';
    }
    
	xmlhttp.open('POST', '/anobi/ajax/search.php', true);
	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	
    xmlhttp.onreadystatechange = function() {
   		if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
   			// hide loading button
   			change_id('loading_layer', 'hide');
   			// document.getElementById('loading_layer').className = 'hide';
   			
   			var div_id = document.getElementById(div);
   			var result = xmlhttp.responseText;
   			
   			// remove all extra space
            // result.replace(/^\s+|\s+$/g, "");
   			// var result = trim(result);
   
   			var pattern_redirect = /redirect:/;
   			
   			if (result.match(pattern_redirect)) {
   				result = result.replace(/\s/g, "");
   			}
   			
   			var pattern      = /^redirect:/;
            var pattern_item = /^redirect:\/books\//;
            
   			// var pattern      = /redirect:/;
            // var pattern_item = /redirect:\/books\//;
            
   			if (result.match(pattern_item)) {
   				var url = result.substring(9, result.length);
 
   				// redirect to appropriate page
   				location.replace(url);
   			} else if (result.match(pattern)) {
   				var url = result.substring(9, result.length);
 
   				// redirect to appropriate page
   				location.replace("/anobi/"+url);
 			} else {
 				div_id.innerHTML = result;
 			} 
    	} 
    };

    xmlhttp.send(post_string);

    return;
} // search_general

////////////////////////////////////////////////////////////////////////////////
function invite (f, e, div, type) 
// send invite email 
{
	var form = document.getElementById(f);
	var eid  = document.getElementById(e);

    var fid   = escape(form.value);
    var email = escape(eid.value);
    var type  = escape(type); 
    
	var post_string = 'fid='+fid+'&email='+email+'&type='+type+'&ajax=1';
	
	xmlhttp.open('POST', '/anobi/ajax/invite.php', true);
	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	
    xmlhttp.onreadystatechange = function() {
   		if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
   			var div_id = document.getElementById(div);
   			div_id.innerHTML = xmlhttp.responseText;
        	
        	// hide loading button
   			document.getElementById('loading_layer').className = 'hide';
    	} 
    };

    xmlhttp.send(post_string);
    
    return;
} // invite

////////////////////////////////////////////////////////////////////////////////
function change_home_view (id, page_url) 
// change home view 
{
  	var url = '/anobi/ajax/session.php?view='+id+'&ajax=1';
  
 	xmlhttp.open('GET', url, true);
 	
 	xmlhttp.onreadystatechange = function() {
   		if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
   			var result = xmlhttp.responseText;

   			if (result != '') {
   				location.replace(page_url);
   			}
    	} 
    };

    xmlhttp.send(null); 
  	
  	return;
} // change_home_view

////////////////////////////////////////////////////////////////////////////////
function kill_session (s) 
// kill session variable "quietly"
{
	var url = '/anobi/ajax/session.php?s='+s+'&k=1&ajax=1';
  	
  	xmlhttp.open('GET', url, true);
  	xmlhttp.send(null);  
  	
  	return;
} // kill_session

////////////////////////////////////////////////////////////////////////////////
function turn_off_light (light) 
// turn of light "quietly"
{
  	var url = '/anobi/ajax/light.php?light='+light+'&ajax=1';
  	
  	xmlhttp.open('GET', url, true);
  	xmlhttp.send(null);  
  	
  	return;
} // turn_off_light

////////////////////////////////////////////////////////////////////////////////
function menus (page_name, action)
// display menus  
{
	if (action) {
		var url = '/anobi/ajax/menus.php?page_name='+page_name+'&m_act='+action+'&ajax=1';
	} else {
		var url = '/anobi/ajax/menus.php?page_name='+page_name+'&ajax=1';
	}

 	xmlhttp_menus.open('GET', url, true);
 	
 	xmlhttp_menus.onreadystatechange = function() {
   		if (xmlhttp_menus.readyState == 4 && xmlhttp_menus.status == 200) {
   			var result = xmlhttp_menus.responseText;

   			if (result == '') {
   			    location.replace('/anobi/login.php');
   			} else {
        	    document.getElementById('menus_ajax').innerHTML = result;
   			}
    	} 
    };

    xmlhttp_menus.send(null); 
    
    return;
} // menus

////////////////////////////////////////////////////////////////////////////////
function comment_preview (type, text_id, span_id) 
// for comment preview
{   
	change_id('loading_layer', 'show');
	
	change_id(text_id, 'hide');
	change_id(span_id, '');
	
	var post_string = 'ajax=1&type='+type;

	var comment = document.getElementById(text_id).value;
		
	comment = comment.replace(/&/g, '%26');
	comment = comment.replace(/\+/g, '%2B');
		
	post_string = post_string+'&comment='+comment;

	xmlhttp.open('POST', '/anobi/ajax/comment_preview.php', true);
	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
 	
    xmlhttp.onreadystatechange = function() {
   		if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
   			var result = xmlhttp.responseText;
 
   			/*
   			if (result == '') {
   				location.replace('/anobi/login.php');
   				
   				return;
   			}
   			*/
   			
   			// hide loading button
   			change_id('loading_layer', 'hide');
   			change_id('loading_'+type, 'hide');
   			
   			if (type == 'chat_preview') {
   				change_id('chat_new_button', 'button');
   			    change_id('edit_chat_button', '');
   			}
   			
   			document.getElementById(span_id).innerHTML = result;
   		}
    };

    xmlhttp.send(post_string);
	
    return;
} // comment_preview

////////////////////////////////////////////////////////////////////////////////
function person_item_action (item_id, type, subscriber_id, item_status) 
// add item to shelf
{   
	if (item_status != '3' || type == 'wishlist') {
		change_id('loading_add_'+item_id, 'loading');
		change_id('shelf_item_action_'+item_id, 'hide');
		
		var url = '/anobi/ajax/person_item_action.php?i='+item_id+'&type='+type+'&s='+subscriber_id+'&ajax=1';

 		xmlhttp.open('GET', url, true);
 	
 		xmlhttp.onreadystatechange = function() {
   			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
   				var result = xmlhttp.responseText;

   				if (result == '') {
   			    	location.replace('/anobi/login.php');
	   			} else {
	   				document.getElementById('person_item_action_span_'+item_id).innerHTML = result;
	   				
	   				change_id('alert_old_'+item_id, 'hide');
   				
   					if (type == 'shelf') {
   						change_id('add_shelf_success_'+item_id, '');
   						change_id('add_wishlist_success_'+item_id, 'hide');
   					}
   						
   					if (type == 'wishlist') {
   						change_id('add_shelf_success_'+item_id, 'hide');
   						change_id('add_wishlist_success_'+item_id, '');
   					}
   				}
    		} 
   	 	};

    	xmlhttp.send(null); 
	} else {
		var r = confirm('Do you also want to remove it from wish list?');
	
		if (r) {
			change_id('loading_add_'+item_id, 'loading');
			change_id('shelf_item_action_'+item_id, 'hide');
			
			var url = '/anobi/ajax/person_item_action.php?r_w=1&i='+item_id+'&type='+type+'&s='+subscriber_id+'&ajax=1';

 			xmlhttp.open('GET', url, true);
 	
 			xmlhttp.onreadystatechange = function() {
   				if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
   					var result = xmlhttp.responseText;

   					if (result == '') {
   			    		location.replace('/anobi/login.php');
	   				} else {
	   					document.getElementById('person_item_action_span_'+item_id).innerHTML = result;
	   					
	   					change_id('alert_old_'+item_id, 'hide');
   					
   						if (type == 'shelf') {
   							change_id('add_shelf_success_'+item_id, '');
   							change_id('add_wishlist_success_'+item_id, 'hide');
   						}
   						
   						if (type == 'wishlist') {
   							change_id('add_shelf_success_'+item_id, 'hide');
   							change_id('add_wishlist_success_'+item_id, '');
   						}
	   				}
    			} 
   	 		};

    		xmlhttp.send(null); 
		} else {
			change_id('loading_add_'+item_id, 'loading');
			change_id('shelf_item_action_'+item_id, 'hide');
		
			var url = '/anobi/ajax/person_item_action.php?i='+item_id+'&type='+type+'&s='+subscriber_id+'&ajax=1';

 			xmlhttp.open('GET', url, true);
 	
 			xmlhttp.onreadystatechange = function() {
   				if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
   					var result = xmlhttp.responseText;

   					if (result == '') {
   			    		location.replace('/anobi/login.php');
	   				} else {
	   					document.getElementById('person_item_action_span_'+item_id).innerHTML = result;
	   					
	   					change_id('alert_old_'+item_id, 'hide');
   					
   						if (type == 'shelf') {
   							change_id('add_shelf_success_'+item_id, '');
   							change_id('add_wishlist_success_'+item_id, 'hide');
   						}
   						
   						if (type == 'wishlist') {
   							change_id('add_shelf_success_'+item_id, 'hide');
   							change_id('add_wishlist_success_'+item_id, '');
   						}
   					}
    			} 
   	 		};

    		xmlhttp.send(null); 
		}
	}
	
    return;
} // person_item_action
