/*
 * Function to shoe or hide the 
 * account types and also to send Ajax request
 * to set the session
 */
function toggleAccountTypes(e){
	var elem = e;
	var div = null;
	if(div = $('acntType_'+elem.value)) {
		if(elem.checked) div.style.display = "block";
		else div.style.display = "none";
	}
	
	$$('tr[acntType="'+elem.value+'"]').each(function(tr) {
		if(elem.checked) tr.style.display = "";
		else tr.style.display = "none";
	});
		
	var url = "../xhr/get_friends_list_page.php?action=set_sess";
	new Ajax.Request(	url, {
							method:'post'
							, parameters:$('frmContactFilter').serialize()
							, contentType: 'application/x-www-form-urlencoded'
							,evalScripts : true
							}
	);		
}

/*
* Send the Ajax updater to filter the 
* list according to the group.
*/
function filterContacts(){
	
	var url = "../xhr/get_friends_list_page.php";
	new Ajax.Updater(	'friends_list_content', 
						url, {
								method:'post'
								, parameters:$('frmContactFilter').serialize()
								, contentType: 'application/x-www-form-urlencoded'						
							}
	);	
	return false;
}
/*
 * Function to load the invited mail contacts via Ajax.
 */
function getInvitedEmailContacts(){
	var invited_emailusers_div 		= $('invited_emailusers_div');
	var invited_emailusers_content 	= $('invited_emailusers_content');
	var invited_email_link 			= $('invited_email_link');
	
	if(invited_emailusers_div.style.display == "none") {
		invited_emailusers_div.style.display = 'block';
		if(invited_emailusers_content.innerHTML == ''){
						
			var url = "../xhr/get_friends_list_page.php?action=get_invited_mailuser";
			new Ajax.Updater(	'invited_emailusers_content', 
								url, {
										method:'post'
										, contentType: 'application/x-www-form-urlencoded'
										, onComplete : function(){$('invited_emailusers_loader').style.display = 'none';}
									}
			);			
		}
		invited_email_link.innerHTML = invited_email_link.getAttribute('invertmsg');
	} else {
		invited_email_link.innerHTML = invited_email_link.getAttribute('origmsg');
		invited_emailusers_div.style.display = 'none';
	}
	invited_emailusers_div = null;
	invited_emailusers_content = null;
	invited_emailusers_content = null;
	return false;
}
 
function toggleView(elem){
	if(elem.id == "thumbView") {
		$('thumbView').className = "active";
		$('gridView').className = "";
		$('thumbViewData').style.display = "";
		$('gridViewData').style.display = "none";
                if($('invitedThumbview')){
                    $('invitedGridview').style.display = "none";
                    $('invitedThumbview').style.display = "";
                }
		
	} 
	else {
		$('thumbView').className = "";
		$('gridView').className = "active";
		$('thumbViewData').style.display = "none";
		$('gridViewData').style.display = "";
                if($('invitedThumbview')){
                    $('invitedGridview').style.display = "";
                    $('invitedThumbview').style.display = "none";
                }
	}
	setCookie('friendslist_view', elem.id, 365);
	fc.update();
}

function searchFriend(elem, event){
	var pK = document.all ? event.keyCode: event.which;
	if(elem.value != "" && pK == 13){
		$('cancelBtn').className = "enabled";
		filterContacts();
	}
	return false;	
}

function cancelSearch(){
	if($('cancelBtn').className == "enabled") {
		$('search_friend').value = "";
		$('search_friend').blur();
		$('cancelBtn').className = "disabled";
		filterContacts();
	}
}

function proceesActions(elem){	
	var uid = elem.getAttribute('user_id');
	var action  = elem.getAttribute('action');
	var msg = elem.getAttribute('alert_msg');
	var frndObj = new Cross_Friends(uid, action, msg);
	frndObj = null;
	action = null;
	uid = null;
}
var Cross_Friends = Class.create({
	
	_parameters : null,
	_frnd_id : null,
	_action : null,
	
	initialize: function(A, B, C) {
		if(!isNaN(A) && B != ""){
		    this._frnd_id  = A;
		    this._action = B;  
		    this._msg = C;
		    this.processAction();
		}
	},
	  
	show_DlgAction:function(){
		   backgroundFilter('backgroundFilter');
		   $('popLoginBody').innerHTML = $('sendMsgTo_'+this._frnd_id).innerHTML;
		   $('popupDiv').style.display = "block";
		   $('popupDiv').style.top = "30%";
		   $('popupDiv').style.left = "30%";
	},
	
	send_msgAction:function(){
		if($('subject_'+this._frnd_id).value != '' && $('content_'+this._frnd_id).value != '') {
			var parameters =  "subject="+$('subject_'+this._frnd_id).value+"&body="+$('content_'+this._frnd_id).value;	
			this.sendRequest(parameters);
		}		
	},
	
	send_msgSuccess:function(){
		var obj = eval(this._responseObj);
		if(obj.Status){		
			try{
				alert(obj.Message);
				doStartupPopupClose();
			} catch(err){
				
			}
		}
	},

	deleteAction:function(){
		if (confirm(this._msg)) { 
			this.sendRequest();
		}
	},
	
	deleteSuccess:function(){
				
		$('friends_list_content').innerHTML = this._responseObj;
	},


	approveAction:function(){
		var parameters =  "member="+$('relations_'+this._frnd_id).value;
		this.sendRequest(parameters);
		
	},
	
	approveSuccess:function(){
				
		$('friends_list_content').innerHTML = this._responseObj;
	},
	
	rejectAction:function(){
		this.sendRequest();
	},
	
	rejectSuccess:function(){
				
		$('friends_list_content').innerHTML = this._responseObj;
	},
		
	processAction:function(){
		try {
			eval("this."+this._action.toString()+"Action()");
		} catch(err) {
			alert("Sorry, no actions defined.");
		}
		return false;		
	},
	
	processResponse:function(transport){
		this._responseObj = transport.responseText;
		try {
			eval("this."+this._action.toString()+"Success()");
		} catch(err) {
			//console.info(err);
		}		
		
	},
	
	sendRequest:function(extraParam, callBack){
		
		var parameters =  "action="+this._action+"&friend_id="+this._frnd_id;
		parameters += (extraParam != "" || extraParam != "undefined") ? "&"+extraParam : "";
		
		var responseBind = this.processResponse.bind(this);		
		
		var action_req = new Ajax.Request(	"../xhr/friends_action_page.php", {
			method:'post'
			, contentType: 'application/x-www-form-urlencoded'
			, parameters:parameters
			, onComplete: responseBind
			,onException : function (req, e){ 
				alert("Sorry, an error occured. Error: "+ e.message + " on file "+e.fileName + " at "+ e.lineNumber);
			}
		});	
		
	}
	
});

function processInvitation(action, confirm_msg, no_msg){

	var params = "action="+action+"&";
		params += $('frmInvitation').serialize();
	
	var selected_num = 0;
	var send_request = false;
	
	var all_checkboxes = $$('form.form_with_rows .form_row input[type=checkbox]');
	all_checkboxes.each(function (elem) {
           if(elem.checked) { selected_num++ }        	   
    });
	
	var msg = confirm_msg.replace("[number]", selected_num);
	
	if(action == "approve_all" && selected_num > 0 && confirm(msg)){
		send_request = true;
	} else if(action == "reject_all" && selected_num > 0 && confirm(msg)){
		send_request = true;
	}
	else if(selected_num == 0){
		alert(no_msg)
	}
	
	if(send_request){
		var action_req = new Ajax.Request(	"../xhr/friends_action_page.php", {
			method:'post'
			, contentType: 'application/x-www-form-urlencoded'
			, parameters:params
			, onComplete: function (transport){ $('friends_list_content').innerHTML =  transport.responseText; }
			,onException : function (req, e){ 
				alert("Sorry, an error occured. Error: "+ e.message + " on file "+e.fileName + " at "+ e.lineNumber);
			}
		});			
	}
}

function selectAllCheck(){
	var select_all = $('select_all');
	var form_checkboxes = $$('form.form_with_rows .form_row input[type=checkbox]');
	var checked = select_all.checked;
	form_checkboxes.each(function(el){
		el.checked = checked;
	});	
}
