var BaseWS = {
	_fetchData: function(params, callback){
		var that = this;
		$.ajax({
			type: "GET",
			dataType: "html",
			data: params,
			url: that.url,
			success: callback,
			error: function(){}
		});
	}
}

var ConfigurationWS = {
	url: '/processing/handleConfiguration.asp',
	setOfficePreference: function(params, callback){
		params = $.extend(params,{proc: 'write'});
		this._fetchData(params, callback);
	}
}
$.extend(ConfigurationWS,BaseWS);

var SessionConfigurationWS = {
	url: '/processing/handleSessionConfiguration.asp',
	setOfficeSessionPreference: function(params, callback){
		params = $.extend(params,{proc: 'write'});
		this._fetchData(params, callback);
	}
}
$.extend(SessionConfigurationWS,BaseWS);

var PartnerSiteWS = {
	_fetchData: function(params, callback){
		var that = this;
		$.ajax({
			type: "POST",
			dataType: "html",
			data: params,
			url: that.url,
			success: callback,
			error: function(){}
		});
	},	
	url: '/processing/handlePartnerSite.asp',
	setWatermark: function(params, callback){
		params = $.extend(params,{proc: 'setWatermark'});
		this._fetchData(params, callback);
	},
	getWatermark: function(params,callback){
		params = $.extend(params,{proc: 'getWatermark'});
		this._fetchData(params, callback);
	}
}
$.extend(PartnerSiteWS,BaseWS);

var GalleryWS = {
	url: '/processing/handleGalleries.asp',
	
	getGalleryByCreateDate: function(params, callback){},
	
	getGalleryByStartDate: function(params, callback){
		params = $.extend(params,{proc: 'getGalleryByStartDate'});
		this._fetchData(params, callback);
	},
	
	getGalleryProductArtwork: function(params, callback){
		params = $.extend(params,{proc: 'getGalleryDocumentsLogo'});
		this._fetchData(params, callback);	
	},
	
	getGallerySummaryReport: function(params, callback){},
	
	getGalleryNotes: function(params, callback){
		params = $.extend(params,{proc: 'getGalleryNotes'});
		this._fetchData(params, callback);
	},
	
	getGalleryParticipantData: function(params, callback){
		params = $.extend(params,{proc: 'getGalleryDocumentsData'});
		this._fetchData(params, callback);
	},
	
	getGalleryOverlays: function(params, callback){
		params = $.extend(params,{proc: 'getGalleryOverlays'});
		this._fetchData(params, callback);
	},
	
	getAllGalleries: function(params,callback){
		this.getGalleryByStartDate(params,callback);
	},
	setGalleryLogoPath: function(params, callback){
		params = $.extend(params,{});
		this._fetchData(params, callback);
	}

};
$.extend(GalleryWS,BaseWS);

var UploadFileWS = {
	_fetchData: function(params, callback){
		var that = this;
		$.ajaxFileUpload
		(
			{
				type: "post",
				contentType: "application/json; charset=utf-8",
				url:that.url,
				secureuri:false,
				fileElementId:params.fid,
				dataType: 'json',
				data: {eid: params.eid},
				success: callback,
				error: function (data, status, e){
					alert("data: " + data + "e: "+e);
				}
			}
		)
	},
	url: '/processing/handleFileUploads.asp',
	
	setGalleryLogo: function(params, callback){
		params = $.extend(params,{});
		this._fetchData(params, callback);
	}
};

var ProductWS = {

}

var CouponWS = {
	url: '/processing/handleCoupons.asp',
		
	validateCoupon: function(params,callback){
		params = $.extend(params,{proc: 'validateCoupon'});
		this._fetchData(params, callback);
	}
}
$.extend(CouponWS,BaseWS);

var WholesaleOrdersWS = {
	url: '/processing/handleWholesaleOrders.asp',
		
	getGroupOrderForm: function(params,callback){
		params = $.extend(params,{proc: 'getGroupOrderForm'});
		this._fetchData(params, callback);
	},
	
	getIndividualOrderItems: function(params,callback){
		params = $.extend(params,{proc: 'getIndividualOrderForm'});
		this._fetchData(params, callback);
	}
	
}
$.extend(CouponWS,BaseWS);
