var search = {
	initialised:false,
	init:function(){
	   return;
	},
	showConfig:function(){
		if(feed.fixtureTypeID.get()==1){
			cfkit_util.display('by_area',true);
			cfkit_util.display('by_pick',false);
		}else{
			cfkit_util.display('by_area',false);
			cfkit_util.display('by_pick',true);
		}
		return;
	},
	search:function(){
		feed.infoPane.busy();
		dojo.xhrPost({
			form: "frmSearch",
			url : "/server/fix_search.cfm",
			handleAs : "json",
			load : search.searchOK,
			error : search.callbackError
		});	
		return;
	},
	searchOK:function(data,ioArgs){
		var option = new Array();
		for(var i=0;i<data.length;i++){
			option[i] = new Array();
			option[i][0] = data[i].FIXTUREID;
			option[i][1] = data[i].NAME;
		}
		fixItemPicker.empty('left');
		fixItemPicker.addData('left',option);
		feed.infoPane.hide();
		return;
	},
	callbackError:function(data,ioArgs){
		console.log(data);
		feed.infoPane.msg('Error Contacting Server');
		return;
	},	
	checkAddress:function(){
		var address = dojo.byId('address').value;
		geocoder = new GClientGeocoder();
		geocoder.getLatLng(address, function(latlng) {
	    								if (!latlng) {
	    									feed.setAddressOk(false);
	     									alert('The location you entered could not be found!');
	     									feed.infoPane.hide();
	     									return;
	    								} else {
		    								dojo.byId('fix_address').value = dojo.byId('address').value;
		    								dojo.byId('fix_lat').value = latlng.lat();
		    								dojo.byId('fix_lng').value = latlng.lng();
		  									feed.setAddressOk(true);
		  									feed.save();
		  									return;
	    								}
	    							});
		return;
	}
}



var feed = {
	infoPane : new cfkit_InfoPane('infoPane'),
	code:'',
	feedID:0,
	KEY:'',
	fixtureTypeID:'',
	designID:'',
	radius:'',
	_addressOk:false,
	init:function(){
		feed.fixtureTypeID = new RadioGroup('fixtureTypeID');
		feed.radius = new SelectBox('radius');
		feed.designID = new SelectBox('designID');
		feed.addressOk = false;
		dojo.byId('fix_REQUEST_ID').value = cfkit_util.createGUID();
		dojo.byId('feed_REQUEST_ID').value = cfkit_util.createGUID();
		
		var code = '';
		code = code + '<div id="BM_FEED"><a id="BM_LINK" href="http://www.bikemoments.com" target="_top">Bikemoments Cycling with Friends.</a></div>'
		code = code +  '<script type="text/javascript">'
		code = code +  'var BIKEMOMENTS_FEED=$FEEDID$;var BIKEMOMENTS_DESIGN=$FEEDDESIGNID$;var BIKEMOMENTS_KEY="$FEEDKEY$";';
		code = code +  '</script>';
		code = code +  '<script type="text/javascript" src="http://feed.bikemoments.com/script/fix_feed.js"></script>';
		feed.code = code;
		feed.infoPane.hide();
		return;
	},
	getAddressOk:function(value){
		return feed._addressOk;
	},
	setAddressOk:function(value){
		if(value){
			feed._addressOk = true;
			dojo.byId('addressState').src = '/gfx/global/clean.png';
		}else{
			feed._addressOk = false;
			dojo.byId('addressState').src = '/gfx/global/alert.png';
			dojo.byId('fix_lat').value = 0;
	    	dojo.byId('fix_lng').value = 0;
		}
		return;
	},
	_updateFrm:function(){
		dojo.byId('fix_feedID').value = feed.feedID;
		dojo.byId('fix_feedTypeID').value = feed.fixtureTypeID.get();
		dojo.byId('fix_designID').value = feed.designID.getValue();
		dojo.byId('fix_radius').value = feed.radius.getValue();
		dojo.byId('fix_lFixtureID').value = fixItemPicker.getValue();
		dojo.byId('fix_domain').value = dojo.byId('domain').value;
		return;
	},
	_updatePreview:function(){
		cfkit_util.display('preview',true);
		
		BIKEMOMENTS_FEED = feed.feedID;
		BIKEMOMENTS_DESIGN = feed.designID.getValue();
		BIKEMOMENTS_KEY = feed.KEY;
		
		dojo.byId('BM_FEED').innerHTML='';
		bikemoments_feed.init();
		
		var code = feed.code.replace('$FEEDID$',feed.feedID);
		code = code.replace('$FEEDDESIGNID$',feed.designID.getValue());
		code = code.replace('$FEEDKEY$',feed.KEY);
		dojo.byId('code').value = code;
		return;
	},
	save:function(){
		feed.infoPane.busy();
		if(feed.fixtureTypeID.get()==1 && !feed.getAddressOk()){
			search.checkAddress();
			return;
		}
		feed._updateFrm();
		dojo.xhrPost({
			form: "frmFeed",
			url : "/server/fixture/api.cfm",
			handleAs : "json",
			load : feed.saveOK,
			error : feed.callbackError
		});
		return;
	},
	saveOK:function(data,ioArgs){
		if(data.STATUS == 2){
			feed.feedID = data.FEED.FEEDID;
			feed.KEY = data.FEED.FEEDGUID;
			feed._updatePreview();
			feed.infoPane.hide();
		}else{
			feed.infoPane.msg(data.MSG.DISPLAYTXT);
		}
		dojo.byId('fix_REQUEST_ID').value = cfkit_util.createGUID();
		return;
	},
	load:function(feedID){
		feed.infoPane.busy();
		dojo.byId('feed_feedID').value = feedID;
		dojo.xhrPost({
			form: "frmGetFeed",
			url : "/server/fixture/api.cfm",
			handleAs : "json",
			load : feed.loadOK,
			error : feed.callbackError
		});
		return;
	},
	loadOK:function(data,ioArgs){
		if(data.STATUS == 2){
			feed.feedID = data.FEED.FEEDID;
			feed.KEY = data.FEED.FEEDGUID;
			feed.fixtureTypeID.set(data.FEED.FEEDTYPEID.toString());
			feed.designID.setValue(data.FEED.DESIGNID);
			dojo.byId('address').value = data.FEED.ADDRESS;
			feed.radius.setValue(data.FEED.RADIUS.toString());
			if(data.FEED.LAT != 0 && data.FEED.LNG != 0){
				feed.setAddressOk(true);
			}else{
				feed.setAddressOk(false);
			}
			dojo.byId('fix_REQUEST_ID').value = cfkit_util.createGUID();
			dojo.byId('fix_feedID').value = feed.feedID;
			dojo.byId('fix_address').value = data.FEED.ADDRESS;
			dojo.byId('fix_lat').value = data.FEED.LAT;
			dojo.byId('fix_lng').value = data.FEED.LNG;
			dojo.byId('fix_radius').value = data.FEED.RADIUS;
			dojo.byId('fix_domain').value = data.FEED.DOMAIN;
	
			dojo.byId('domain').value = data.FEED.DOMAIN;
			dojo.byId('domain').style.color = 'black';
			
			var option = new Array();
			for(var i=0;i<data.AFIXTURE.length;i++){
				option[i] = new Array();
				option[i][0] = data.AFIXTURE[i].FIXTUREID;
				option[i][1] = data.AFIXTURE[i].NAME;
			}
			fixItemPicker.empty('right');
			fixItemPicker.addData('right',option);
			
			search.showConfig();
			
			dojo.byId('feed_REQUEST_ID').value = cfkit_util.createGUID();
			feed._updatePreview();
			feed.infoPane.hide();
		}
		return;
	},
	callbackError:function(data,ioArgs){
		console.log(data);
		feed.infoPane.hide();
		alert('Error Contacting Server');
		return;
	}
}