/*global app, _, $, console, kaleplay, window*/
/*jslint this:true*/
(function () {
'use strict';
var detail_section_3_maker = function (res) {
var s3htmls = '';
_.each(res.detail_section_3, function (el) {
s3htmls += '
';
});
return s3htmls;
};
var detail_section_2_maker = function (res) {
var s2htmls = '';
_.each(res.detail_section_2, function (el) {
s2htmls += '';
s2htmls += '
• ' + el.title + '
';
s2htmls += '
' + el.contents + '
';
s2htmls += '
';
});
return s2htmls;
};
var category_maker = function (categorys) {
console.log(categorys);
var name_map = {
analy: '분석도구',
trading: '매매도구',
calc: '계산도구',
admin: '운영도구',
dev: '개발도구'
};
var html = '';
_.each(categorys, function (cc) {
html += '' + name_map[cc] + '';
});
return html;
};
var type_maker = function (types) {
console.log(types);
var name_map = {
desktop: '데스크탑',
mobile: '모바일',
web: '웹'
};
var html = '';
_.each(types, function (cc) {
html += '' + name_map[cc] + '';
});
return html;
};
var work_maker = function (match) {
console.log(match);
return ' 이 컴퓨터에서 작동';
};
var lang_maker = function (match) {
console.log(match);
return '한국어';
};
var side_update = function (match) {
app.getdom('detail_side_category').html(category_maker(match.category));
app.getdom('detail_side_platform').html(type_maker(match.type));
app.getdom('detail_side_iswork').html(work_maker(match));
app.getdom('detail_side_langs').text(lang_maker(match));
app.getdom('detail_side_version').text(match.version);
};
var opener_html = function (match) {
var pid = match.product_id;
var istd = _.find(app.memdata.installed, function (ee) {
return ee.product_id === pid;
});
var open_text = '열기';
var data_type = 'web_open';
if (match.url === null && istd === undefined) {
open_text = '설치';
data_type = 'client_install';
} else if (match.url === null && istd !== undefined) {
data_type = 'client_open';
}
var htmls = '' + open_text;
htmls += '';
var cons = data_type === 'client_install' || data_type === 'client_open';
if (window.mobile_check() === true && cons) {
htmls = '';
}
app.getdom('header_menu_opener').html(htmls);
app.getdom('header_menu_opener').find('.detail-button').on('click', function (ev) {
ev.preventDefault();
var $this = $(this);
app.events.header_menu_opener($this);
});
};
var update_page = function (res, match) {
app.getdom('detail_section_banner').css({
'background-image': 'url(' + res.detail_section_banner.url + ')'
});
app.getdom('detail_section_1_title').text(res.detail_section_1.title);
app.getdom('detail_section_1_contents').text(res.detail_section_1.contents);
app.getdom('detail_section_3_title').text(res.detail_section_3_title);
app.getdom('detail_section_2_list').html(detail_section_2_maker(res));
app.getdom('detail_section_3_list').html(detail_section_3_maker(res));
opener_html(match);
side_update(match);
app.getdom('detail_section').show();
app.events.loader_fadeout();
};
var detail_show = function (pid) {
var match = _.find(app.memdata.products, function (el) {
return el.product_id === pid;
});
if (match === undefined) {
return false;
}
console.log(match);
$('title').text(match.name + '::' + match.description);
app.getdom('header_menu_opener').show();
app.getdom('detail_section_2').show();
app.getdom('detail_section_3').show();
app.getdom('detail_section_banner').show();
app.getdom('header_menu_section').hide();
app.getdom('banner').hide();
app.getdom('installed_section').hide();
app.getdom('available_section').hide();
app.getdom('detail_side').show();
app.events.loader_show();
kaleplay.pages.get(pid, function (err, res) {
if (err || res.data === undefined) {
update_page({
detail_section_banner: {
url: './img_detail/default.jpg',
title: ''
},
detail_section_1: {
title: '개요 및 주요 기능',
contents: '본 제품에 대한 설명서는 아직 준비중입니다.'
},
detail_section_24: [],
detail_section_3_title4: '',
detail_section_34: []
}, match);
return false;
}
if (res.data) {
update_page(res.data, match);
}
});
};
var detail = {
init: function (pid) {
var match = _.find(app.memdata.products, function (ee) {
return ee.product_id === pid;
});
if (match) {
detail_show(pid);
var title_html = '';
title_html += '';
title_html += '' + match.name + '';
app.getdom('header_menu_title').html(title_html);
}
}
};
app.route.detail = detail;
}());