/**
 * @author MTB
 */
function Std (ThemeName, ThemeType, StdName, StdDescription, DefaultIconName, DefaultIconWidth, DefaultIconHeight, DefaultRadius, DefaultBorderColor, DefaultBorderWidth, DefaultBorderOpacity, DefaultFillColor, DefaultFillOpacity, DefaultQuestions){
	this.ThemeName_ = ThemeName;
	this.ThemeType_ = ThemeType || 0;
	this.StdName_ = StdName;
	this.StdDescription_ = StdDescription || null;
	this.DefaultIconName_ = DefaultIconName || "MTB_Default";
    this.DefaultIconWidth_ = DefaultIconWidth || 34;
    this.DefaultIconHeight_ = DefaultIconHeight || 34;
    this.DefaultRadius_ = DefaultRadius || 10;
    this.DefaultBorderColor_ = DefaultBorderColor || "#222222";
    this.DefaultBorderWidth_ = DefaultBorderWidth || 1;
    this.DefaultBorderOpacity_ = DefaultBorderOpacity || 0.8;
    this.DefaultFillColor_ = DefaultFillColor || "#222222"
    this.DefaultFillOpacity_ = DefaultFillOpacity || 0.4;
    this.ArrObjects_ = new Array;
    this.DefaultQuestions_ = new Array;
}

Std.prototype.initialize = function(){};

Std.prototype.ClearQuestions = function(){
	this.DefaultQuestions_ = new Array;
}

Std.prototype.ClearObjects = function(){
	this.ArrObjects_ = new Array;
}

Std.prototype.AddDataObject = function (name, question, value){
	try {
		var i = 0;
		var Exist = false;
		for (i = 0; i < this.DefaultQuestions_.length; i++) {
			var q = new DataObject;
			q = this.DefaultQuestions_[i];
			if (q.DataName == name) {
				Exist = true;
				break;
			}
		}
		if (Exist == false) {
			i = this.DefaultQuestions_.length;
			this.DefaultQuestions_[i] = new DataObject(name, question, value)
			return true;
		}
		else {
			return false;
		}
	}catch (err){
		return false;
	}
}

Std.prototype.ObjCount = function (){
	return this.ArrObjects_.length;
}

Std.prototype.ExistObject = function (ObjId){
	var i = 0;
	for (i = 0; i < this.ArrObjects_.length; i++){
		switch (this.ThemeType_){
			case 0:
				var mk = new Marker;
				mk = s.ArrObjects_[i];
				if (mk.MarkerId_ == ObjId){
					return true;
				}
				break;
			case 1:
				var ck = new Circle;
				ck = s.ArrObjects_[i];
				if (ck.CircleId_ == ObjId){
					return true;
				}
				break;
			case 2:
				var pl = new Polyline;
				pl = s.ArrObjects_[i];
				if (pl.PolylineId_ == ObjId){
					return true;
				}
				break;
			case 3:
				var pol = new Polygon;
				pol = s.ArrObjects_[i];
				if (pol.PolygonId_ == ObjId){
					return true;
				}
				break;
		}			
	}
	return false;
}

Std.prototype.GetIndexObject = function (ObjId){
	var i = 0;
	for (i = 0; i< this.ArrObjects_.length; i++){
		switch (this.ThemeType_){
			case 0:
				var mk = new Marker;
				mk = this.ArrObjects_[i];
				if (mk.MarkerId_ == ObjId){
					return i;
				}
				break;
			case 1:
				var ck = new Circle;
				ck = this.ArrObjects_[i];
				if (ck.CircleId_ == ObjId){
					return i;
				}
			case 2:
				var pl = new Polyline;
				pl = this.ArrObjects_[i];
				if (pl.PolylineId_ == ObjId){
					return i;
				}			
			case 3:
				var pol = new Polygon;
				pol = this.ArrObjects_[i];
				if (pol.PolygonId_ == ObjId){
					return i;
				}
		}
	}
	return -1;
}

Std.prototype.GetObject = function (ObjId){
	var i = this.GetIndexObject(ObjId);
	if (i >= 0){
		return this.ArrObjects_[i];
	}else{
		return null;
	}
}

Std.prototype.AddObject = function (Obj){
	var i = 0;
	switch (this.ThemeType_){
		case 0:
			try{
				var mk = new Marker;
				mk = Obj;
				if (this.ExistObject(mk.MarkerId_) == false){
					i = this.ArrObjects_.length;
					this.ArrObjects_[i] = mk;
					return true;
				}else{
					return false;
				}
			}catch (err){
				return false;				
			}
			break;
		case 1:
			try{
				var ck = new Circle;
				ck = Obj;
				if (this.ExistObject(ck.CircleId_) == false){
					i= this.ArrObjects_.length;
					this.ArrObjects_[i] = ck;
					return true;
				}else{
					return false;
				}	
			}catch (err){
				return false;				
			}
			break;
		case 2:
			try{
				var pl = new Polyline;
				pl = Obj;
				if (this.ExistObject(pl.PolylineId_) == false){
					i = this.ArrObjects_.length;
					this.ArrObjects_[i] = pl;
					return true;
				}else{
					return false;
				}				
			}catch (err){
				return false;
			}
			break;
		case 3:
			try{
				var pol = new Polygon;
				pol = Obj;
				if (this.ExistObject(pol.PolygonId_) == false){
					i = this.ArrObjects_.length;
					this.ArrObjects_[i] = pol;
					return true;
				}else{
					return false;
				}
			}catch (err){
				return false;				
			}
			break;
	}
	return false;
}


