diff --git a/Event.js b/Event.js new file mode 100644 index 0000000..d06e701 --- /dev/null +++ b/Event.js @@ -0,0 +1,108 @@ +function Event() { + return { + /** + * number, "". + */ + startTime : undefined, + /** + * number, "". + */ + endTime : undefined, + /** + *, . + */ + rating : { + /** + * number, . + */ + rating : 0, + /** + * number, , . + */ + numberOfVoters : 0 + }, + /** + *, , . + */ + members : { + /** + * number, , . + */ + numberOfParticipants : 0, + /** + * string, , . + */ + namesOfParticipants : [] + }, + /** + * string, . + */ + link : undefined, + /** + *, . + */ + coordinate : { + /** + * string, , . + */ + city : undefined, + /** + * String, , . + */ + street : undefined, + /** + * number, , . + */ + house : undefined + }, + /** + * . + * + *@param {Number} mark 0 5 . + */ + vote : function (mark) { + if ((mark >= 0) && (mark <= 5)) { + ++this.rating.numberOfVoters; + this.rating.rating = (this.rating.rating + mark) / this.rating.numberOfVoters; + } + }, + /** + * . + * + *@param {Number} start . number, , . + * + *@param {Number} end . number, , , , . + * + *@param {String} link , string, . + * + *@param {String} city , , string, coordinate . + * + *@param {String} street , , string, coordinate . + * + *@param {Number} house , , number, coordinate . + */ + createEvent : function (start, end, link, city, street, house) { + if (((typeof start === "number") && (start / 20000000 > 0)) && ((typeof end === "number") && (end / 20000000 > 0) && (end > start))) { + this.startTime = start; + this.endTime = end; + (typeof link === "string") && (this.link = link); + if(((typeof house === "number") && (house > 0)) && (typeof city === "string") && (typeof street === "string")) { + this.coordinate.street = street; + this.coordinate.house = house; + this.coordinate.city = city; + } + } + }, + /** + * . + * + *@param {String} name . + */ + addParticipant : function (name) { + if (typeof name === "string") { + ++this.members.numberOfParticipants; + this.members.namesOfParticipants[this.members.numberOfParticipants] = name; + } + } + }; +} \ No newline at end of file diff --git a/EventUTF8.js b/EventUTF8.js new file mode 100644 index 0000000..622138a --- /dev/null +++ b/EventUTF8.js @@ -0,0 +1,75 @@ +function Event() { + return { + startTime : undefined, + endTime : undefined, + /** + * @type {ratingStruct} + * @field {Number} rating Величина рейтинга события. + * @field {Number} numberOfVoters Величина рейтинга события. + */ + rating : { + rating : 0, + numberOfVoters : 0 + }, + /** + * @type {membersStruct} + * @field {Number} numberOfParticipants Число участников. + * @field {Array} namesOfParticipants ФИО участников. + */ + members : { + numberOfParticipants : 0, + namesOfParticipants : [] + }, + link : undefined, + /** + * @type {coordinateStruct} + * @field {Number} house Дом события. + * @field {String} street Улица события. + * @field {String} city Город события. + */ + coordinate : { + city : undefined, + street : undefined, + house : undefined + }, + /**Голосование за событие. + *@param {Number} mark Оценка от 0 до 5 за это событие. + */ + vote : function (mark) { + if (mark >= 0 && mark <= 5) { + ++this.rating.numberOfVoters; + this.rating.rating = (this.rating.rating + mark) / this.rating.numberOfVoters; + } + }, + /** + *Конструктор события. + *@param {Number} start Начало события в формате "ггггммдд". + *@param {Number} end Конец события в формате "ггггммдд". + *@param {String} link Ссылка события. + *@param {String} city Город события. + *@param {String} street Улица события. + *@param {Number} house Номер дома события. + */ + createEvent : function (start, end, link, city, street, house) { + if (typeof start === "number" && start / 20000000 > 0 && end > start) { + this.startTime = start; + this.endTime = end; + (typeof link === "string") && (this.link = link); + if(typeof house === "number" && house > 0) { + this.coordinate.street = street; + this.coordinate.house = house; + this.coordinate.city = city; + } + } + }, + /**Добавление человека в список участников события. + *@param {String} name ФИО участника события. + */ + addParticipant : function (name) { + if (typeof name === "string") { + ++this.members.numberOfParticipants; + this.members.namesOfParticipants[this.members.numberOfParticipants] = name; + } + } + }; +} \ No newline at end of file diff --git a/EventUTF8Correction.js b/EventUTF8Correction.js new file mode 100644 index 0000000..622138a --- /dev/null +++ b/EventUTF8Correction.js @@ -0,0 +1,75 @@ +function Event() { + return { + startTime : undefined, + endTime : undefined, + /** + * @type {ratingStruct} + * @field {Number} rating Величина рейтинга события. + * @field {Number} numberOfVoters Величина рейтинга события. + */ + rating : { + rating : 0, + numberOfVoters : 0 + }, + /** + * @type {membersStruct} + * @field {Number} numberOfParticipants Число участников. + * @field {Array} namesOfParticipants ФИО участников. + */ + members : { + numberOfParticipants : 0, + namesOfParticipants : [] + }, + link : undefined, + /** + * @type {coordinateStruct} + * @field {Number} house Дом события. + * @field {String} street Улица события. + * @field {String} city Город события. + */ + coordinate : { + city : undefined, + street : undefined, + house : undefined + }, + /**Голосование за событие. + *@param {Number} mark Оценка от 0 до 5 за это событие. + */ + vote : function (mark) { + if (mark >= 0 && mark <= 5) { + ++this.rating.numberOfVoters; + this.rating.rating = (this.rating.rating + mark) / this.rating.numberOfVoters; + } + }, + /** + *Конструктор события. + *@param {Number} start Начало события в формате "ггггммдд". + *@param {Number} end Конец события в формате "ггггммдд". + *@param {String} link Ссылка события. + *@param {String} city Город события. + *@param {String} street Улица события. + *@param {Number} house Номер дома события. + */ + createEvent : function (start, end, link, city, street, house) { + if (typeof start === "number" && start / 20000000 > 0 && end > start) { + this.startTime = start; + this.endTime = end; + (typeof link === "string") && (this.link = link); + if(typeof house === "number" && house > 0) { + this.coordinate.street = street; + this.coordinate.house = house; + this.coordinate.city = city; + } + } + }, + /**Добавление человека в список участников события. + *@param {String} name ФИО участника события. + */ + addParticipant : function (name) { + if (typeof name === "string") { + ++this.members.numberOfParticipants; + this.members.namesOfParticipants[this.members.numberOfParticipants] = name; + } + } + }; +} \ No newline at end of file