function CM_WEBCOMPONENT_TOPCAMSTERS(strName) {
	this.strName = strName;
	this.objRsModel = null;
	this.intSelectedNicheId = 0;
	this.intMaxModel = 7;
	this.objBaseRating = null;
	this.intNicheId = 0;
	this.strSortFieldName = "";
	this.arrOnRegisterEvent = new Array();
	this.arrOnConfirmRegistration = new Array();
	this.blnRequireEmailConfirm = false;
	this.blnPrivate = false;
	this.objShowRegister = null;
	var me = this;

	CM_WEBCOMPONENT_TOPCAMSTERS.prototype.setRequireEmail = function setRequireEmail(blnEmail) {
		this.blnRequireEmailConfirm = blnEmail;
	}

	CM_WEBCOMPONENT_TOPCAMSTERS.prototype.setShowRegister = function (objShowRegister) {
		this.objShowRegister = objShowRegister;
	}

	CM_WEBCOMPONENT_TOPCAMSTERS.prototype.onRegisterEvent = function onRegisterEvent(strUrl) {
		for(var intI = 0; intI < this.arrOnRegisterEvent.length; intI++) {
			this.arrOnRegisterEvent[intI](CM_WEBCOMPONENT_REGISTER.FORM_LOGIN, strUrl, 'privateshow');
		}
	}

	CM_WEBCOMPONENT_TOPCAMSTERS.prototype.onConfirmRegistration = function onConfirmRegistration() {
		for(var intI = 0; intI < this.arrOnConfirmRegistration.length; intI++) {
			this.arrOnConfirmRegistration[intI](CM_WEBCOMPONENT_REGISTER.FORM_CONFIRM);
		}
	}	

	CM_WEBCOMPONENT_TOPCAMSTERS.prototype.allowPrivate = function allowPrivate(blnPrivate) {
		this.blnPrivate = blnPrivate; 
	}
	
	CM_WEBCOMPONENT_TOPCAMSTERS.prototype.registerOnRegisterEvent = function registerOnRegisterEvent(ptFunction) {
		this.arrOnRegisterEvent.push(ptFunction);
	}

	CM_WEBCOMPONENT_TOPCAMSTERS.prototype.addOnConfirmRegistration = function addOnConfirmRegistration(ptFunction) {
		this.arrOnConfirmRegistration.push(ptFunction);
	}

	CM_WEBCOMPONENT_TOPCAMSTERS.prototype.setMaxModel = function maxModel(intMaxModel) {
		this.intMaxModel = intMaxModel;
	}

	CM_WEBCOMPONENT_TOPCAMSTERS.prototype.setModelRs = function setModelRs(objRsModel) {
		this.objRsModel = objRsModel;
	}

	CM_WEBCOMPONENT_TOPCAMSTERS.prototype.render = function render() {
		if(this.objRsModel) {
			var arrRow = null;

			var objModelTemplate = document.getElementById(this.strName + "modelTemplate");
			var objContainer = document.getElementById(this.strName + "ModelContainer");
			var intNbModel = 0;

			//Clear container
			while(objContainer.firstChild) {
				objContainer.removeChild(objContainer.firstChild);
			}

			//Display model list
			while(
				(arrRow = this.objRsModel.fetch()) && 
				intNbModel < this.intMaxModel
			) {
			
				var objNewModel = objModelTemplate.cloneNode(true);
				objContainer.appendChild(objNewModel);

				var objProfileUrl = new CM_URL("/" + arrRow["nickName"]);
				var objPrivateUrl = CM_URL.getCurrent();
				objPrivateUrl.setNickname(arrRow["nickName"]);
				objPrivateUrl.setPath("private/size");
				if (arrRow['isOnline'] == 1 && arrRow['showHandler'] && arrRow['showHandler'].indexOf('FEATURED') != -1) {
					objPrivateUrl.setAttribute('type','DHL_FEATURED_SHOW');
				} else if (arrRow['isOnline'] == 1) {
					objPrivateUrl.setAttribute('type','DHL_FPSPRIVATESHOW');
				}
				
				
				var me = this;
				arrTemplate = dom_getElementsByTagName(objNewModel, '*');
				arrTemplate["lnkImgModel"].href = objProfileUrl.toString();
				arrTemplate["lnkModelNick"].href = objProfileUrl.toString();
				arrTemplate["profileUrl"].href = objProfileUrl.toString();

				if(arrRow["isOnline"] == 1) {
					arrTemplate["online"].style.display = "block";
					if(this.blnPrivate) {
						if(this.objShowRegister != null) {
							arrTemplate["privateUrl"].href = "#";
							arrTemplate["privateUrl"].modelId = arrRow['modelId'];
							arrTemplate["privateUrl"].showType = arrRow['showType'];
							var me = this;
							arrTemplate["privateUrl"].onclick = function() {
								me.objShowRegister.goPrivate(this.modelId, this.showType);
								return false;
							}
						}
						else {
							arrTemplate["privateUrl"].href = objPrivateUrl.toString();
						}
					}
					else {
						if(this.blnRequireEmailConfirm) {
							arrTemplate["privateUrl"].href = "#";
							arrTemplate["privateUrl"].onclick = function() {
								me.onConfirmRegistration(CM_WEBCOMPONENT_REGISTER.FORM_CONFIRM);
								return false;
							}
						}
						else {
							arrTemplate["privateUrl"].href = "#";
							arrTemplate["privateUrl"].strPrivateUrl = objPrivateUrl.toString();
							arrTemplate["privateUrl"].onclick = function() {
								me.onRegisterEvent(this.strPrivateUrl);
								return false;
							}
						}
					}
				}
				else {
					arrTemplate["privateUrl"].style.display = "none";
					arrTemplate["profileUrl"].innerHTML = "See my Homepage";
				}

				if(arrRow["imageFileName"]) {
					arrTemplate["imgModel"].src = arrRow["imagePath"] + arrRow["imageFileName"];
				}
				else {
					arrTemplate["imgModel"].src = "/images/cs_112x141_default.gif";
				}

				arrTemplate["modelAge"].innerHTML = (arrRow["age"]? arrRow["age"]: "??");
				arrTemplate["modelNiche"].innerHTML = arrRow["defaultNicheTitle"];
				
				arrTemplate["modelNick"].innerHTML = arrRow["nickName"];
				if(arrRow["topModel"]) {
					arrTemplate["ratingResult"].innerHTML = Math.round(arrRow["topModel"] / 10 * 100) + '%';
				}
				else {
					arrTemplate["ratingResult"].innerHTML = "N/A";
				}

				objNewModel.style.display = "block";
				intNbModel++;
			}
		}
	}
}