ckdd.extend(ckCommonEditObj,subscriptionsObj);
function subscriptionsObj() {
	subscriptionsObj.baseConstructor.call(this,"subscription");
	this.fwDefaultWidth = 450;
	
	this.aSubscriptionIDs = Array(); //will store names/descriptions so they can be accessed when showing results
	
	this.viewContainerID = this.varName + ".form";
	
	var actionURLPrefix = "/ckcommon/subscriptions/ajax/"
	
	this.saveURL = actionURLPrefix + "subscriptions_save.asp";
	this.listURL = actionURLPrefix + "subscriptions_list.asp";
	this.confirmURL = actionURLPrefix + "subscription_confirm.asp";
	
	if (arguments.length==1) this.addToIDList(arguments[0]);
	
	return this;
}

subscriptionsObj.prototype.addToIDList = function(sid) {
	this.aSubscriptionIDs[this.aSubscriptionIDs.length] = sid;
}
/*-----------------------------------------------------------
list
-----------------------------------------------------------*/

subscriptionsObj.prototype.ajaxReturnHandler_list = function(oAjax) {
	var oResponse;
	if (oResponse = oAjax.responseObj) {
		if ((oDiv = document.getElementById("subscription.list")) && (oTemplate=document.getElementById("subscription.list.template"))){
			

			oDiv.innerHTML = "";
			if (oResponse.payload.aSubscriptions.length==0) {
				oDiv.innerHTML = '<div class="warningDisplay">There are no subscriptions to choose from at this time</div>';
				if (oEl = document.getElementById("subscribeButton")) {
					oEl.disabled = true;
					oEl.className = "button disabled";
				}
				if (oEl = document.getElementById("unsubscribeButton")) {
					oEl.disabled = true;
					oEl.className = "button disabled";
				}
			} else {
				var oObj, oEl;
				var oDHTML = new ckDHTMLObj();
				for (var index in oResponse.payload.aSubscriptions) {
					oObj = oResponse.payload.aSubscriptions[index];
					//alert(objectDebugStr(oObj));
					var oNewResult = oDHTML.createContentFromObject(oTemplate,oObj);
					oDiv.appendChild(oNewResult);			
				}
			}
			
			oDiv.style.display="block";
		}
		
	}
}

/*-----------------------------------------------------------
subscribe/unsubscribe
-----------------------------------------------------------*/
subscriptionsObj.prototype.subscribe = function() { this.save(true); }
subscriptionsObj.prototype.unsubscribe = function() { this.save(false); }
subscriptionsObj.prototype.save = function(bSubscribe) {
	//custom data only required when subscribing
	if (!bSubscribe) for (var index=0;index < this.aSubscriptionIDs.length; index++) oValidation.markRequiredField("customData." + this.aSubscriptionIDs[index],false);

	oError.autoValidate("subscription.field");
	if (!oError.anyErrors()) {
		var oEl = document.getElementById("subscription.actionCode")
		if (oEl) oEl.value=(bSubscribe ? "subscribe" : "unsubscribe");
		
		(new ckAjaxObj()).postFormDataByName(this.saveURL,"subscription.field",this.ajaxReturnHandler_save,this);
		oFloatingWindow.showWait();
	}
	
}


subscriptionsObj.prototype.ajaxReturnHandler_save = function(oAjax) {
	var oResponse, oEl;
	for (var index=0;index < this.aSubscriptionIDs.length;index++) {
		if (oEl = document.getElementById("checkbox." + this.aSubscriptionIDs[index])) oEl.style.display="none";
		if (oEl = document.getElementById("container." + this.aSubscriptionIDs[index])) oEl.style.display="none";
	}
	
	if (oEl = document.getElementById("subscription.form")) oEl.style.display="none";
	
	if (oResponse = oAjax.responseObj) { //show only ones affected
		for (var index=0; index < oResponse.payload.aIDs.length; index++)
			if (oEl = document.getElementById("container." + oResponse.payload.aIDs[index])) oEl.style.display="block";
	}
	
	subscriptionsObj.superClass.ajaxReturnHandler_save.call(this,oAjax);//hide floating window, display success

}

subscriptionsObj.prototype.onclick_subscriptionID = function(oCheckbox) {
	//custom data validation only turned on if checkbox selected
	var sid = oCheckbox.value;
	oValidation.markRequiredField("customData." + sid,oCheckbox.checked);
}
