function createTrip(acctid,name,isPrivate,openness,description,startdate,enddate,nodeid,fn) {
var url = "/api/trip/create";
var atom={initiator:acctid,name:name,openness:openness};
if ( isPrivate ) {
atom['private'] = 1;
}
if ( description ) {
atom.description = description;
}
if ( startdate ) {
atom.startDate = startdate;
}
if ( enddate ) {
atom.endDate = enddate;
}
if ( nodeid ) {
atom.node = nodeid;
}
var data={data:atom};
var json=JSON.stringify(data);
postAPI(url,json,fn);
}
function updateTrip(submittorid,tripid,name,isPrivate,openness,description,startdate,enddate,fn) {
var url = "/api/trip/update";
var atom={submittor:submittorid,trip:tripid,name:name,description:'',startDate:'',endDate:'',openness:openness};
atom['private'] = 0;
if ( isPrivate ) {
atom['private'] = 1;
}
if ( description ) {
atom.description = description;
}
if ( startdate ) {
atom.startDate = startdate;
}
if ( enddate ) {
atom.endDate = enddate;
}
var data={data:atom};
var json=JSON.stringify(data);
postAPI(url,json,fn);
}
function updateTripMember(submittorid,tripid,acctid,sts,fn) {
var url = "/api/trip/update";
var atom={submittor:submittorid,trip:tripid,member:[{account:acctid,status:sts}]};
var data={data:atom};
var json=JSON.stringify(data);
postAPI(url,json,fn);
}
function updateTripLocation(submittorid,tripid,nodeid,fn) {
var url = "/api/trip/update";
var atom={submittor:submittorid,trip:tripid,node:nodeid};
var data={data:atom};
var json=JSON.stringify(data);
postAPI(url,json,fn);
}
function deleteTripLocation(submittorid,tripid,fn) {
var url = "/api/trip/delete";
var atom={submittor:submittorid,trip:tripid};
var data={data:atom};
var json=JSON.stringify(data);
postAPI(url,json,fn);
}
// function thecrag_searchlist(data,ctl) {
// ctl = ctl ? ctl : {};
// var acctid = ctl.acctid ? ctl.acctid : '';
// var tripid = ctl.tripid ? ctl.tripid : '';
// var src = '
';
// return src;
// }
function set_trip_startdate(isodate) {
var parsedDate = $.datepicker.parseDate('yy-mm-dd', isodate);
$("#trip_startdate").datepicker("setDate",parsedDate);
$("#trip_enddate").datepicker("option",'minDate',parsedDate);
}
function set_trip_enddate(isodate) {
var parsedDate = $.datepicker.parseDate('yy-mm-dd', isodate);
$("#trip_enddate").datepicker("setDate",parsedDate);
$("#trip_startdate").datepicker("option",'maxDate',parsedDate);
}
function showRecommendationsTree() {
$(".rcm").hide();
var countclass = '';
var comma = '';
$(".recommend_wrapper").each(function(){
if ( $(this).css('display') != 'none' ) {
var id = 0;
var type = 0;
if ( $(this).attr("id") ) {
var matched = $(this).attr("id").match(/_([0-9]+)_(.+)/);
if (matched instanceof Array) {
id = matched[1];
type = matched[2];
}
}
countclass += comma+'.rcm_c_'+id+'_'+type;
comma = ',';
$(".rcm_"+id+'_'+type).show();
}
});
$("tr.rcm").each(function(){
var total=0;
$(this).find(countclass).each(function(){
total += parseInt($(this).html());
});
$(this).find(".rcm_tot").each(function(){
$(this).html(total);
});
});
}
function initTrip() {
// trip members
// $("img.mem_bad,img.mem_toggle,.mem_add_input,.add_mem_now_button,#add_member_section").hide();
$("img.delete-member").unbind('click').bind('click',function(){
var data = getIDsFromAttr($(this),'id',["submittorid","tripid","acctid"]);
if ( data.submittorid>0 && data.tripid>0 && data.acctid>0 ) {
$('body').trigger('crag.load.start');
updateTripMember(data.submittorid,data.tripid,data.acctid,0,function(){
location=location;
});
} else {
alert("internal client error: could not get submittor, trip and account ids");
}
});
$("img.add-member").unbind('click').bind('click',function(){
$(".input-member").show();
$("img.add-member").hide();
});
// $(".mem_add_input").unbind('change').bind('change',function(){
// var rootElement = $(this).parent();
// var targetElement = $(this);
// rootElement.find("img.name_bad").hide();
// var data = getIDsFromAttr(rootElement,'id',["submittorid","tripid"]);
// if ( data.submittorid>0 && data.tripid>0 ) {
// $('body').trigger('crag.load.start');
// to = $(this).val();
// if ( !isBlank(to) ) {
// DAO.mapAccountLabel(to,function(r){
// if ( r && r.id ) {
// DAO.getAccount(r.id+'?forFollowing=1',function(r){
// if ( r && r.id ) {
// if ( $('#member_'+r.id).length > 0 ) {
// alert("already a member of thread");
// } else {
// var html = '' + thecrag_climber(r,{avatar:1,name:1,scale:60}) + '';
// $(html).insertAfter(targetElement);
// $("img.mem_bad,img.mem_toggle,img.mem_add,.mem_add_input").hide();
// $(".add_mem_now_button").show().attr('id','add_mem_now_'+data.submittorid+'_'+data.tripid+'_'+r.id).unbind('click').bind('click',function(){
// // alert("account " + data.submittorid + " to add member " + r.id + " to trip " + data.tripid);
// updateTripMember(data.submittorid,data.tripid,r.id,1,function(){
// location=location;
// });
// $(this).parent().find('.mem_add_input').val('');
// });
// }
// } else {
// rootElement.find("img.name_bad").show();
// alert("internal error getting account details for "+to);
// }
// $('body').trigger('crag.load.stop');
// });
// } else {
// rootElement.find("img.name_bad").show();
// alert("no account in system for "+to);
// }
// $('body').trigger('crag.load.stop');
// });
// //id = mapAccountLabelToID(to); // in message.js
// //if ( isBlank(id) ) {
// //$(this).parent().find("img.name_bad").show();
// //alert("no account in system for "+to);
// //} else {
// //if ( $('#member_'+id).length > 0 ) {
// //alert("already a member of trip");
// //} else {
// //data.acctid = id;
// //// alert("account " + data.submittorid + " to add member " + data.acctid + " to trip " + data.tripid);
// //updateTripMember(data.submittorid,data.tripid,data.acctid,1)
// //}
// //}
// }
// $('body').trigger('crag.load.stop');
// } else {
// alert("internal client error: could not get submittor and trip id");
// }
// });
// trip location
// $("img.loc_toggle,.loc_add_input").hide();
$("img.loc_delete").unbind('click').bind('click',function(){
var data = getIDsFromAttr($(this),'id',["submittorid","tripid"]);
if ( data.submittorid>0 && data.tripid>0 ) {
$('body').trigger('crag.load.start');
updateTripLocation(data.submittorid,data.tripid,'',function(){
location=location;
});
} else {
alert("internal client error: could not get submittor, trip and account ids");
}
});
$(".update-location").unbind('click').bind('click',function(){
$(".input-location").show();
$(".update-location").hide();
});
// $("img.loc_toggle").unbind('click').bind('click',function(){
// $(this).parent().find('.loc_add_input').toggle();
// });
// function ifValidIDUpdateLocation (data) {
// DAO.getNode(data.nodeid,function(r){
// if ( r && r.type && r.type == 'area' ) {
// updateTripLocation(data.submittorid,data.tripid,data.nodeid);
// } else {
// alert("Error: cannot update,location not a valid node type");
// }
// });
// }
// $(".loc_add_input").unbind('change').bind('change',function(){
// $('#searchresults').remove();
// var data = getIDsFromAttr($(this).parent(),'id',["submittorid","tripid"]);
// if ( data.submittorid>0 && data.tripid>0 ) {
// var loc = $(this).val();
// if ( !isBlank(loc) ) {
// var id = 0;
// if ( isNaN(loc) ) { // search
// var inputElement = $(this);
// DAO.search(loc,{stopifexact:1,oftype:'area'},function(r){
// if ( r ) {
// if ( r.length == 0 ) {
// alert("nothing found");
// } else if ( r.length == 1 ) {
// updateTripLocation(data.submittorid,data.tripid,r[0].id);
// } else {
// var html = thecrag_searchlist(r,{acctid:data.submittorid,tripid:data.tripid});
// $(html).insertAfter(inputElement);
// var pos = inputElement.offset();
// $('#searchresults').css({ top: pos.top + inputElement.outerHeight()+1, left: pos.left+2, width: '360px' }).show().find('.search_add').
// bind('click',function(){
// var clickData = getIDsFromAttr($(this),'id',["submittorid","tripid","nodeid"]);
// if ( clickData.submittorid>0 && clickData.tripid>0 && clickData.nodeid>0 ) {
// updateTripLocation(clickData.submittorid,clickData.tripid,clickData.nodeid);
// }
// });
// }
// } else {
// alert("nothing found");
// }
// });
// } else {
// id = loc;
// }
// if ( id>0 ) {
// data.nodeid = id;
// ifValidIDUpdateLocation(data);
// }
// }
// } else {
// alert("internal client error: could not get submittor and trip id");
// }
// });
$("div.recommend_overlay div.ticked").hide();
$("img.trip_rec_toggle").unbind('click').bind('click',function(){
$(this).parent().parent().parent().find('.recommend_wrapper').toggle();
showRecommendationsTree();
});
$("img.trp_delete").unbind('click').bind('click',function(){
var tablerow = $(this).parent().parent().remove();
var data = getIDsFromAttr($(this),'id',["submittorid","tripid"]);
if ( data.submittorid>0 && data.tripid>0 ) {
deleteTripLocation(data.submittorid,data.tripid,function(){
tablerow.remove();
});
} else {
alert("internal client error: could not get submittor and trip ids");
}
});
// trip form
// $("#show_startdate_button").unbind('click').bind('click',function(){
// var refEntity = $(this).parent().parent().parent();
// refEntity.find(".startdate_toggle").toggle();
// });
// $("#hide_startdate_button").unbind('click').bind('click',function(){
// var refEntity = $(this).parent().parent().parent();
// refEntity.find(".startdate_toggle").toggle();
// refEntity.find("#trip_startdate").datepicker("setDate",'null');
// refEntity.find("#trip_enddate").datepicker("option",'minDate',null);
// if ( refEntity.find("#trip_enddate").css('display') != 'none' ) {
// refEntity.find(".enddate_toggle").toggle();
// refEntity.find("#trip_enddate").datepicker("setDate",'null');
// refEntity.find("#trip_startdate").datepicker("option",'maxDate',null);
// }
// });
// $("#show_enddate_button").unbind('click').bind('click',function(){
// var refEntity = $(this).parent().parent().parent();
// if ( refEntity.find("#trip_startdate").css('display') != 'none' ) {
// refEntity.find(".enddate_toggle").toggle();
// }
// });
// $("#hide_enddate_button").unbind('click').bind('click',function(){
// var refEntity = $(this).parent().parent().parent();
// refEntity.find(".enddate_toggle").toggle();
// refEntity.find("#trip_enddate").datepicker("setDate",'null');
// refEntity.find("#trip_startdate").datepicker("option",'maxDate',null);
// });
$("#clear-dates").unbind('click').bind('click',function(){
$("#trip_enddate").val('');
$("#trip_startdate").val('');
$("#trip_startdate").datepicker( "option","maxDate","");
$("#trip_enddate").datepicker( "option","minDate","");
});
$("#clear-end-date").unbind('click').bind('click',function(){
$("#trip_enddate").val('');
$("#trip_startdate").datepicker( "option","maxDate","");
});
var dates = $("#trip_startdate,#trip_enddate");
dates.each(function(){
// $(this).attr('readonly', 'readonly');
$(this).datepicker({
dateFormat: "yy-mm-dd",
changeMonth: true,
changeYear: true,
onSelect: function( selectedDate ) {
var option = this.id == "trip_startdate" ? "minDate" : "maxDate";
var instance = $(this).data("datepicker");
var date = $.datepicker.parseDate(
instance.settings.dateFormat || $.datepicker._defaults.dateFormat,
selectedDate, instance.settings
);
dates.not( this ).datepicker( "option", option, date );
}
});
});
$("#trip_popupform").unbind('submit').bind('submit',function(){
var startinst = $(this).find("#trip_startdate");
sdate = startinst.val()
var endinst = $(this).find("#trip_enddate");
edate = endinst.val()
// var sdate = '';
// if ( startinst.val() ) {
// var startdate = startinst.datepicker("getDate");
// sdate = $.datepicker.formatDate('yy-mm-dd',startdate,startinst.settings);
// }
// var edate = '';
// if ( $(this).find("#trip_enddate").css('display') != 'none' ) {
// var endinst = $(this).find("#trip_enddate");
// var enddate = endinst.datepicker("getDate");
// edate = $.datepicker.formatDate('yy-mm-dd',enddate,endinst.settings);
// }
var tripid = $(this).find("#trip_id").val();
var acctid = $(this).find("#trip_account").val();
var nodeid = $(this).find("#trip_node").val();
var name = $(this).find("#trip_name").val();
var isPrivate = 0;
var access = $(this).find('input[name=trip_access]:checked').val()
if ( access == 'private' ) {
isPrivate = 1;
}
var openness = $(this).find('input[name=trip_openness]:checked').val()
var description = $(this).find("#trip_description").val();
var access = $(this).find("#trip_access").val();
if ( acctid>0 ) {
if ( name ) {
if ( tripid>0 ) {
updateTrip(acctid,tripid,name,isPrivate,openness,description,sdate,edate,function(){
location.href=location.href;
});
} else {
createTrip(acctid,name,isPrivate,openness,description,sdate,edate,nodeid,function(data){
var tripID = data.ok.tripID;
location.href="/trip/"+tripID;
});
}
} else {
alert("no name, you must provide a trip name");
}
} else {
alert("internal client error: no account id");
}
return false;
});
$("#trip_add_button,#trip_update_button").unbind('click').bind('click',function(){
$("#trip_form").show();
});
$("#trip_cancel").unbind('click').bind('click',function(){
$("#trip_form").hide();
});
// recommendations table
showRecommendationsTree();
}
$(function(){
initTrip();
});