
 
var slsl = slsl || {};

slsl.ResponseFormat = {
	'JSON': 'json',
	'XML': 'xml'
};

slsl.upload = {									 
	'IMAGE_EXTENSIONS': '*.jpg;*jpeg;*jpe;*.png;*.tiff;*.gif',
	'VIDEO_EXTENSIONS': '*.mov;*.qt;*.avi;*.mp4;*.wmv;*.flv',   
	'IMAGE_DESCRIPTION': 'Web Image Files (.JPG, JPEG, JPE, .PNG, .TIFF, .GIF)',
	'VIDEO_DESCRIPTION': 'Web Video Files (.MOV, .QT, .AVI, .MP4, .WMV, .FLV)',
	'IMAGE_SIZE': 4194304,
	'VIDEO_SIZE': 314572800
}

slsl.serviceMethod = {
	'STORIES': '/stories/',
	'VALIDATE_LID_CODE': '/validate-lid-code/',
	'AFFILIATES': '/affiliates/',
	'MAP': '/map/',
	'LOCAL_CONTENT': '/local/',
	'RACES': '/races/'
};

slsl.Client = function () {
	this.getStories = function(args, format, success, failure) {
		var page = args.page || 0;
		var size = args.size || 300;
		this.call(
			slsl.serviceMethod.STORIES, 
			format, 
			args, 
			success, 
			failure
		);
	};

	this.getStoriesForAffiliate = function(affiliate, format, success, failure) {
		var page = args.page || 0;
		var size = args.size || 300;
		this.call(
			slsl.serviceMethod.STORIES, 
			format, 
			{ 'affiliate': affiliate }, 
			success, 
			failure
		);
	};
	
	this.validateLidCode = function (lidCode, format, success, failure) {
		this.call(
			slsl.serviceMethod.VALIDATE_LID_CODE, 
			format, 
			{ 'lidCode': lidCode }, 
			success, 
			failure
		);
	};
	
	this.getAffiliatesByZip = function (zip, format, success, failure) {
		this.call(
			slsl.serviceMethod.AFFILIATES, 
			format, 
			{ 'zip': zip }, 
			success, 
			failure
		);
	};
	
	this.getAffiliatesByState  = function (state, format, success, failure) {
		this.call(
			slsl.serviceMethod.AFFILIATES, 
			format, 
			{ 'state': state }, 
			success, 
			failure
		);
	};
	
	this.getMapData = function (format, success, failure) {
		this.call(
			slsl.serviceMethod.MAP, 
			format, 
			{}, 
			success, 
			failure
		);
	};;
	
	this.getRaces = function (format, success, failure) {
		this.call(
			slsl.serviceMethod.RACES, 
			format, 
			{}, 
			success, 
			failure
		);
	};

	this.getLocalContent = function (data, format, success, failure) {
		this.call(
			slsl.serviceMethod.LOCAL_CONTENT, 
			format, 
			data, 
			success, 
			failure
		);
	};

	this.call = function (methodName, format, data, success, failure) {
		$.ajax({
			'type': 'POST',
			'url': '/save-lids-save-lives/services/' + format + methodName,
			'data': data,
			'dataType': format,
			'success': function (response) { success(response); },
			'error': function (response) { failure(response); }
		});
	};

	this.sendToFlash = function(movieName, data) {
		var flashMovie = $('#' + movieName)[0];

		if (flashMovie) {
			flashMovie.sendTextToFlash(data);
		}
	};
}
