/**
 * @author Sergey Chikuyonok (sc@design.ru)
 * @copyright Art.Lebedev Studio (http://www.artlebedev.ru)
 * @include "/tinkoff/www/js/simple_canvas.js"
 */

if ($.browser.msie && !document.namespaces["v"]) {
	document.namespaces.add("v", "urn:schemas-microsoft-com:vml");
	// setup default css
	var ss = document.createStyleSheet();
	ss.cssText = "v\\:* {behavior:url(#default#VML);}";
}

 $(function(){

 	/**
 	 * Вспомогательный метод для создания точек
 	 */
 	function p(x, y){
 		return {
 			'x': x,
 			'y': y
 		};
 	}

 	/**
 	 * Вспомогательный метод для создания конструкций, для которых нужно
 	 * рисовать линии
 	 */
 	function anchor(x, y, corner_pos, target){
 		var point = p(x, y);
 		point.c = corner_pos;
 		point.ptr = $(target)[0];

 		return point;
 	}

 	/**
 	 * Набор для рисования
 	 * @param {SimpleCanvas} canvas
 	 * @param {Array} anchors
 	 */
 	function drawSet(canvas, anchors){
 		return {
 			'cv': canvas,
 			'anchors': anchors
 		}
 	}

 	var line_style = {width: 1, color: '#68a6ff'};

 	$('#application dd').each(function(i){
 		$(this).append($('<div id="canvas' + (i + 1) + '" class="canvas"></div>'));
 	});

 	var draw_sets = [];
 	draw_sets.push(drawSet(
 		new SimpleCanvas('canvas1'),
 		[
	 		anchor(281, 225, 110, '#p1'),
	 		anchor(410, 225, 416, '#p2'),
	 		anchor(490, 255, 538, '#p3'),
	 		anchor(115, 255, 538, '#p4'),
	 		anchor(200, 500, 538, '#p5'),
	 		anchor(295, 760, 538, '#p6'),
	 		anchor(55, 758, 538, '#p7')
	 	]
 	));

 	draw_sets.push(drawSet(
 		new SimpleCanvas('canvas2'),
 		[anchor(366, 273, 397, '#p8')]
 	));


 	function draw(){
		var mid_line = Math.round($('#measurer').height() * 0.7);

 		$.each(draw_sets, function(i, /** drawSet() */ n){
 			/** @type {SimpleCanvas} */
 			var cv = n.cv;

 			var cv_ptr = $(cv.getContainer());

 			if (!cv_ptr.is(':visible')) {
 				return;
 			}

 			cv.clear();

 			var desc = $(cv.getContainer()).siblings('.description');
 			$(cv.getContainer()).css({
	 			width: desc[0].offsetLeft,
	 			height: desc.height()
	 		});

 			cv.getRenderer().reflow();

	 		// перебираю все якоря и рисую к ним линии
 			$.each(n.anchors, function(i, /** anchor() */ n){
	 			/** Позиция подписи, до которой нужно нарисовать линию */
				var target_y = n.ptr.offsetTop + mid_line;

				var corner = p(n.c, target_y);

				// рисую линию к подписи
				cv.drawLine(n, p('100%', target_y), line_style);
				//cv.drawLine(corner, p('100%', target_y), line_style);
	 		});
 		});
 	}

 	draw();

 	// переключалка слайдов
 	$('#application dt .pseudo-link, #face-switcher .pseudo-link').click(function(){
 		var parent = $(this).parent();
 		if (!parent.is('.selected')) {
 			parent.addClass('selected').siblings().removeClass('selected');
 			if (parent.is('dt')) {
 				parent.next('dd').addClass('selected');
 			}

 			// нужно ли показывать заполненный пример
 			var is_show_preview = $('#face-switcher li:first').is('.selected');
 			$('#application dd.selected .preview')[is_show_preview ? 'hide':'show']();
 			draw();
 		}
 	})

 	$(window).resize(draw);


 });