
ewe_message_type = '';
ewe_message_id = '';
ewe_share = {};

function ewe_set(name,value) { ewe_share[name] = value }
function ewe_get(name) { return ewe_share[name] }

function ewe_init(obj_type,obj_id){
	ewe_message_type = obj_type;
	ewe_message_id = obj_id;
}

function ewe_draw(data){
	if(data.error) alert(data.error);
	else {
		if(data.ewe_cmd){
			for(i in data.ewe_cmd){
				v = data.ewe_cmd[i];
				if(v.cmd=='html') $('#'+v.name).html(v.value);
				if(v.cmd=='var') ewe_set(v.name,v.value);
				if(v.cmd=='js') eval(v.value);
			}
		}
		if(data.file_upload){
			for(name in data.file_upload){
				//data.file_upload[name].ewe_params
				
				params = { 'ewe_type':ewe_message_type, 'ewe_id':ewe_message_id, 'ewe_command':name }
				if(data.file_upload[name].ewe_param) params[data.file_upload[name].ewe_param] = ewe_get(data.file_upload[name].ewe_param)
				
				$('#'+data.file_upload[name].tag).upload({
					name: 'file',
					action: '/ewe/command',
					enctype: 'multipart/form-data',
					params: params,
					autoSubmit: true,
					onSubmit: function() { $('#'+data.file_upload[name].tag_list).html( 'uploads...<br/>\n' + $('#'+data.file_upload[name].tag_list).html() ) },
					onComplete: function(data) { ewe_draw(data); },
					onSelect: function() { }
				});
			}
		}
	}
}

function ewe_do(command,prms,callback){
	prms['ewe_type'] = ewe_message_type;
	prms['ewe_id'] = ewe_message_id;
	prms['ewe_command'] = command;
	if(callback == null) callback = ewe_draw;
    $.post('/ewe/command', prms, callback, 'json');
}

function ewe_do2(command,prms){
	prms['ewe_type'] = ewe_message_type;
	prms['ewe_id'] = ewe_message_id;
	prms['ewe_command'] = command;
    $.post('/ewe/command', prms, ewe_draw, 'json');
}

function ewe_form(command,prms,callback,form_name){
	$.each( $('#'+form_name).serializeArray() , function(i, field){
		prms[field.name] = field.value;
	});	
	ewe_do(command,prms,callback);
}

function ewe_user_autocomplite(tag){
	$("#"+tag).autocomplete('/ewe/user_list', {
		width: 320,
		max: 4,
		highlight: false,
		multiple: true,
		scroll: true,
		scrollHeight: 300,
		minChars: 1
	});
}

/* Comments */

function ewe_comment_new(){
	ewe_do('comment_new',{},function(data){
		ewe_set('comment_id',data.comment_id);
		$('#ewe_comment_new_button').hide();
		ewe_draw(data);
		$('#comment_body').focus();
	});
}
function ewe_comment_save(){
	comment_id = ewe_get('comment_id');
	ewe_form('comment_save',{ 'comment_id':comment_id },function(data){
		if(!data.error) {
			ewe_set('comment_id','');
			$('#ewe_comment_new_button').show();
			$('#message_comment_new').html('');
		}
		ewe_draw(data);
	},'ewe_comment_form');			
}
function ewe_comment_cancel(){
	$('#message_comment_new').html(''); 
	$('#ewe_comment_new_button').show();
}

////////////////////////////

function setAttrEx(prmName,val){
	var d = location.href.split("#");
	var base = d[0];
	var query = '';
	var res = '';
	if(d.length==2) {
		query = d[1];
		var params = query.split("&");
		for(var i = 0; i < params.length; i++) {  
			var keyval = params[i].split("=");
			if(keyval[0] != prmName) {
				res += params[i] + '&';
			}
		}
	}
	res += prmName + '=' + val;
	window.location.href = base + '#' + res;
	return false;
}

function getAttrEx(prmName){
	var d = decodeURI(location.href).split("#");
	var base = d[0];
	var query = '';
	var res = '';
	if(d.length==2) {
		query = d[1];
		var params = query.split("&");
		for(var i = 0; i < params.length; i++) {  
			var keyval = params[i].split("=");
			if(keyval[0] == prmName) return keyval[1];
		}
	}
	return '';
}

function setAttr(prmName,val){
    var res = '';
	var d = location.href.split("#")[0].split("?");  
	var base = d[0];
	var query = d[1];
	if(query) {
		var params = query.split("&");  
		for(var i = 0; i < params.length; i++) {  
			var keyval = params[i].split("=");  
			if(keyval[0] != prmName) {  
				res += params[i] + '&';
			}
		}
	}
	res += prmName + '=' + val;
	window.location.href = base + '?' + res;
	return false;
}

function setAttrUrl(prmName,val,url){
    var res = '';
	var d = location.href.split("#")[0].split("?");  
	var base = d[0];
	var query = d[1];
	if(query) {
		var params = query.split("&");  
		for(var i = 0; i < params.length; i++) {  
			var keyval = params[i].split("=");  
			if(keyval[0] != prmName) {  
				res += params[i] + '&';
			}
		}
	}
	res += prmName + '=' + val;
	window.location.href = url + '?' + res;
	return false;
}

function getElementByIdCompatible(the_id) {
	if (typeof the_id != 'string') {
		return the_id;
	}
	
	if (typeof document.getElementById != 'undefined') {
		return document.getElementById(the_id);
	} else if (typeof document.all != 'undefined') {
		return document.all[the_id];
	} else if (typeof document.layers != 'undefined') {
		return document.layers[the_id];
	} else {
		return null;
	}
}

function insertAtCursor(obj, val) {
	//IE support
	if(document.selection){
		obj.focus();
		sel = document.selection.createRange();
		sel.text = val;
	} else //MOZILLA/NETSCAPE support
	if (obj.selectionStart || obj.selectionStart == '0') {
	var startPos = obj.selectionStart;
	var endPos = obj.selectionEnd;
	obj.value = obj.value.substring(0, startPos) + val + obj.value.substring(endPos, obj.value.length);
	} else obj.value += val;
	return false;
}









