var infoFieldId_err =  'tripAddInfo_err';
var infoFieldId_succ =  'tripAddInfo_succ';
var url = "";
var locationIdFieldId;
var locationTypeFieldId;
var startStrFieldId;
var endStrFieldId;

var locationIdField;
var locationTypeField;
var startStrField;
var endStrField;
var infoField_err;
var infoField_succ;
var errorFields = new Array();

function validateTripFields() {
	var retval = true;
	if (!$(endStrField)||$(endStrField).val().length ==0){
		//errorFields.push(endStrFieldId);
		$("#tripAddInfo_err_text").html($("#tripAddInfo_err_text_endDateEmpty").html());
		retval = false;
		}

	if (!$(startStrField)||$(startStrField).val().length ==0){
		//errorFields.push(startStrFieldId);
		$("#tripAddInfo_err_text").html($("#tripAddInfo_err_text_startDateEmpty").html());
		retval = false;
		}

	if (!$(locationTypeField)||!checkNumeric($(locationTypeField).val()) || $(locationTypeField).val() <=0 ) {
		//errorFields.push(locationTypeFieldId);
		$("#tripAddInfo_err_text").html($("#tripAddInfo_err_text_locationNotFound").html());
		retval = false;
		}

	if (!$(locationIdField)||!checkNumeric($(locationIdField).val()) || $(locationIdField).val() <=0 ) {
		/** If Location ID not found - use suggest City **/
		searchSuggestCity();
		/** End suggest City **/

		//errorFields.push(locationIdFieldId);
		$("#tripAddInfo_err_text").html($("#tripAddInfo_err_text_locationNotFound").html());
		retval = false;
		}


	return retval;
}




function addTripJSON(callback) {
	if (!validateTripFields()) {
		showTripError(errorFields+"");
		$("#addTrip").removeAttr("disabled");
		return;
	} else {
		$(infoField_err).hide();
	}

	if(typeof callback != 'function')
			callback = addTripCallBack;
	executeTripJSON("addTripJSON",callback);
}

function addTripCallBack(data){
	$(infoField_succ).html("trip added");
}


function deleteTripJSON(){
			executeTripJSON("deleteTripJSON", deleteTripCallBack);
}

function deleteTripCallBack(data){
	$(infoField_succ).html("trip deleted");
}


function updateTripJSON(){
	updateTripJSON("updateTripJSON", updateTripCallBack);
}

function updateTripCallBack(data){
	$(infoField_succ).html("trip updated");
}


function initAddTripVars() {
	locationIdField = $('#'+locationIdFieldId);
	locationTypeField = $('#'+locationTypeFieldId);
	startStrField = $('#'+startStrFieldId);
	endStrField =  $('#'+endStrFieldId);
	infoField_err = $('#'+infoFieldId_err);
	infoField_succ = $('#'+infoFieldId_succ);
}


function executeTripJSON(action,callback){

				var data = new Object();
        data["locationId"] = $(locationIdField).val();
        data["locationType"] = $(locationTypeField).val()
        data["startStr"] = $(startStrField).val();
        data["endStr"] = $(endStrField).val();
        data["action"] = action;
       	var fullurl = url+"?action="+data.action+"&locationId="+data.locationId+"&locationType="+data.locationType+"&startStr="+data.startStr+"&endStr="+data.endStr;
			//	alert(fullurl);

  			$.ajax({
                        url: url,
                        type: 'GET',
                        dataType: 'json',
                        data:data,
        error: function(xmlreq, textStatus, errorThrown){
                showTripError(errorThrown +" - "+ textStatus);
                     },
        success: function(data){
           callback(data);
                } });
}


function showTripError(errorcode){
        $(infoField_err).slideDown("slow");
    }


function processTripSuccess(data){
        if (data.error > 0) {
            showError(data.error);
            return;
        }
    $(infoField_succ).html("success");
}




$(document).ready(function(){
	initAddTripVars();
});
