/** 
* Send message
* 
*/ 				

function $(divName) {
	return document.getElementById(divName);
}

// Get post habra-voting panel
function requestPP(post_id, post_type) {
	serverRequest("/pp_controller.php", "call=get&post_id="+post_id+"&post_type="+post_type, processPPDelivery, post_id);
}
// Vote
function votePP(post_id, post_type, vote_action) {
	serverRequest("/pp_controller.php", "call="+vote_action+"&post_id="+post_id+"&post_type="+post_type, processPPDelivery, post_id);
	$("ppanel_"+post_id).innerHTML = "<div class=\"loading\"> </div>"+$("ppanel_"+post_id).innerHTML;
}
// Get karma
function getKarma(user_id) {
	serverRequest("/pp_controller.php", "call=getkarma&user_id="+user_id, processPPDelivery, "user"+user_id);
}

// Processing 
var processPPDelivery= function(obj, post_id) { 
	if(obj.responseText.substr(0,1)=="{") {
		var respondStructure = eval( '(' + obj.responseText + ')' ); 
		if(respondStructure.Body) 
			$("ppanel_"+post_id).innerHTML=respondStructure.Body;
		
	}
}	


function authorizeUser(login, password) {
	serverRequest("/ajax_controller.php", "faction=authorizeuser&login="+login+"&password="+password, authorizeUserAction, false);
	return false;
}

var authorizeUserAction = function(obj, empty) { 
		var message = "";
		message = obj.responseText;
		if(message.substr(0,1)=="{") {
			var respondStructure = eval( '(' + obj.responseText + ')' ); 
			if( respondStructure.errormsg ) document.getElementById('autherror').style.display = "block";
			if( respondStructure.content ) location.href='/';
		} else alert(message);
};  



function getSurveyResults() {
	document.getElementById('surveyresults').style.display = "block";
	serverRequest("/ajax_controller.php", "faction=surveyresults", showSurveyResults, false);
	return false;
}

var showSurveyResults = function(obj, empty) { 
		var message = "";
		message = obj.responseText;
		if(message.substr(0,1)=="{") {
			var respondStructure = eval( '(' + obj.responseText + ')' ); 
			message = respondStructure.content;
		}
		document.getElementById('surveyresults_content').innerHTML = message;
		
};  


/** 
* Create Request Object for various platforms
* 
*/ 				

function createRequestObject() {
    var request = null;
    if(!request) try {
        request=new ActiveXObject('Msxml2.XMLHTTP');
    } catch (e){}
    if(!request) try {
        request=new ActiveXObject('Microsoft.XMLHTTP');
    } catch (e){}
    if(!request) try {
        request=new XMLHttpRequest();
    } catch (e){}
    return request;
}  

/** 
* Make server request
* 
* @param POST-request performing
* @param url  - Request address
* @param data - Parameters as a string
* @param  callback - (facultative) a callback-function
*/ 				

function serverRequest(url, data, callback, callback_argument) {
    var request = createRequestObject();
    if(!request) return false;
    request.onreadystatechange  = function() { 
            if(request.readyState == 4 && callback) callback(request, callback_argument);
    };

    request.open('POST', url, true);
    request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	try {
		request.send(data);
	} catch (e) {
		alert('The server does not respond');
	}
    return true;
}  