var mixObject = {
    createPreview:function(containingDiv, labelText, callback){
		var localizedMessagesUri = this.context.getManagedAssetUrl("LocalizedMessages.js",this.context.assetType_WEB);
		require(["dojo/dom-class", "dojo/_base/connect", localizedMessagesUri], this.lang.hitch(this, function(domClass, connect, localizedMessages){
			this.context.coachViewData.containingDiv = containingDiv;

			this.context.coachViewData.radioButtonsNode = this.context.coachViewData.containingDiv.querySelector(".dijit.dijitReset.dijitInline.dijitLeft.dojoxCheckedMultiSelect");
			this.context.coachViewData.radioButton1 = this.context.coachViewData.containingDiv.querySelector(".BPMRadio1");
			this.context.coachViewData.radioButton2 = this.context.coachViewData.containingDiv.querySelector(".BPMRadio2");
			this.context.coachViewData.radioButton3 = this.context.coachViewData.containingDiv.querySelector(".BPMRadio3");
			
			this.context.coachViewData.containingDiv.querySelector(".option1label").innerHTML =  localizedMessages.getMessage("defaultOption1");
			this.context.coachViewData.containingDiv.querySelector(".option2label").innerHTML =  localizedMessages.getMessage("defaultOption2");
			this.context.coachViewData.containingDiv.querySelector(".option3label").innerHTML =  localizedMessages.getMessage("defaultOption3");

			this.handleRadioButtonClick = function(evt){
				if (!!evt && !! evt.currentTarget) {
					if (evt.currentTarget == this.context.coachViewData.radioButton1) {
						domClass.add(evt.currentTarget, "dijitRadioChecked");
						domClass.add(evt.currentTarget, "dijitChecked");
						domClass.remove(this.context.coachViewData.radioButton2, "dijitRadioChecked");
						domClass.remove(this.context.coachViewData.radioButton2, "dijitChecked");					
						domClass.remove(this.context.coachViewData.radioButton3, "dijitRadioChecked");
						domClass.remove(this.context.coachViewData.radioButton3, "dijitChecked");					
					} else if (evt.currentTarget == this.context.coachViewData.radioButton2) {
						domClass.add(evt.currentTarget, "dijitRadioChecked");
						domClass.add(evt.currentTarget, "dijitChecked");
						domClass.remove(this.context.coachViewData.radioButton1, "dijitRadioChecked");
						domClass.remove(this.context.coachViewData.radioButton1, "dijitChecked");					
						domClass.remove(this.context.coachViewData.radioButton3, "dijitRadioChecked");
						domClass.remove(this.context.coachViewData.radioButton3, "dijitChecked");					
					} else {
						domClass.add(evt.currentTarget, "dijitRadioChecked");
						domClass.add(evt.currentTarget, "dijitChecked");
						domClass.remove(this.context.coachViewData.radioButton2, "dijitRadioChecked");
						domClass.remove(this.context.coachViewData.radioButton2, "dijitChecked");					
						domClass.remove(this.context.coachViewData.radioButton1, "dijitRadioChecked");
						domClass.remove(this.context.coachViewData.radioButton1, "dijitChecked");					
					}					
				}
			};

			connect.connect(this.context.coachViewData.radioButton1, "onclick", dojo.hitch(this, this.handleRadioButtonClick));
			connect.connect(this.context.coachViewData.radioButton2, "onclick", dojo.hitch(this, this.handleRadioButtonClick));				
			connect.connect(this.context.coachViewData.radioButton3, "onclick", dojo.hitch(this, this.handleRadioButtonClick));				
			
			callback();
		}));	
    },
    propertyChanged:function(propertyName, propertyValue){
		require(["dojo/dom-class"], this.lang.hitch(this, function(domClass){
			if(propertyName == "layout" && propertyValue == "vertical"){
				
				if(domClass.contains(this.context.coachViewData.radioButtonsNode, "BPMHorizontalRadio")) {
					domClass.replace(this.context.coachViewData.radioButtonsNode, "", "BPMHorizontalRadio");
				}
			} else if(propertyName == "layout" && propertyValue == "horizontal"){
				if(!domClass.contains(this.context.coachViewData.radioButtonsNode, "BPMHorizontalRadio")) {
					domClass.add(this.context.coachViewData.radioButtonsNode, "BPMHorizontalRadio");
				}
			}
		}));	
    }
};