$(function() {
	$(".tool").tooltip({ 
    	track: true, 
    	delay: 0, 
    	showURL: false, 
    	opacity: 1, 
    	fixPNG: true, 
    	showBody: " - ", 
    	extraClass: "fancy",
		left: -30
	});
	$("a[rel=#apple]").overlay({mask: {color:'#666', opacity:0.3} });
	var root = $("#flowpanes").scrollable({clickable: false, mousewheel: true, speed: 400}).navigator({
		// select #flowtabs to be used as navigator
		navi: "#flowtabs",
		// select A tags inside the navigator to work as items (not direct children)
		naviItem: 'a',
		// assign "current" class name for the active A tag inside navigator
		activeClass: 'current'
	});
	var api = root.scrollable();
    $("a[rel=#apple]")
    	.bind('click', function(){
    		api.begin(400);
    		var values=[];
    		var href = $(this).attr('href');
    		var s=href.substring(1,href.length);//обрезает знак вопроса
    		var m=s.split("&");//разбевает строку
    	    for(var i=0;i<m.length;i++) {
    	      var s=String(m[i]);
    	      var n=s.split("=");
    	      values[unescape(n[0])]=unescape(n[1]);
    	      var id_format  = values['saitID'];
    	      if(typeof id_format!='undefined'){
    				getSait( '/rsrc/form/form.php', id_format );
    				loadChildren( '/rsrc/form/form.php?action=getmodule', id_format, $('#open_module'), false );
    				
    				$("#flowpanes").find('.open_service').each(function(i, item ){ 
    					loadChildren( '/rsrc/form/form.php?action=getservice', id_format, $(item),  false )
    				} );
    			}
    	    }
    	    $("#flowpanes").find('.zakaz')
    		.unbind('click')
    		.bind('click', function(){
    			validateFormNew(api, id_format);
    			return false; 
    		});
    	    $('.close')
        	.bind('click', function(){
        		$('#frmZakaz').show();
        		$('#final').hide();
        	});
    	});
		
});

function getSait( url, id ){
	$.ajax({
		url: url,
		type: 'get',
		data: {action:'getsait', id:id},
		dataType: 'json',
		error : function(){
			throw 'Error! Wrong JSON answer';
		},
		success: function(data){
			$('.sait').each(function(){
				$(this).empty();
				$(this).append(
					'<span>Вы заказали:</span> ' + data.name + ' ('
				)
				.append(
					$('<a></a>')
						.attr({
							'class': 'tool',
							'title': ' - '+data.descr
						})
						.tooltip({ 
    						track: true, 
    						delay: 0, 
    						showURL: false, 
    						opacity: 1, 
    						fixPNG: true, 
    						showBody: " - ", 
    						extraClass: "fancy",
							left: -30
						})
						.append('?')
				)
				.append(')')
			})
			$('.price').each(function(){
				$(this).empty();
				$(this).append(
					'<span>Ваш заказ:</span> <span class="cena">' + data.price+'</span> руб.'
				)
			})
		}
	});
}

/* Калькулятор */
function Calculate( id ){
                var form = $('#frmZakaz input:checkbox:checked');
                var params = 'id='+id;
				form.each(function(){
					params += '&';		   
					params += this.name + '=' + this.value;
				})
				$.ajax({
					url: '/rsrc/form/form.php?action=calculate',
					type: 'post',
					data: params,
					dataType: 'json',
					error : function(){
						throw 'Error! Wrong JSON answer';
					},
					success: function(data){
					$('.price').each(function(){
						$(this).empty();
						$(this).append(
							'<span>Ваш заказ:</span> <span class="cena">' + data+'</span> руб.'
						)
					})
					}	
				});	
        }
/* Валидация формы */
function validateFormNew(api, id_format){
	inputs = $("#flowpanes").find(".required :input").removeClass("error");
	$("#flowpanes").find(".err").hide();
	empty = inputs.filter(function() { 
		var reg= new RegExp("^([0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9})$", 'i');
		if(!reg.test($(this).val()) && $(this).attr('name')=='email'){
			return true;	
		}
    	return $(this).val().replace(/\s*/g, '') == ''; 
    });
	if (empty.length) { 
            // add a CSS class name "error" for empty & required fields 
            empty.addClass("error");
			empty.each(function(){
				$(this).parents('.required').eq(0).siblings().show();
			});
 			api.begin(400);
            // cancel seeking of the scrollable by returning false 
            return false; 
    }else{
    	sendZakaz(id_format);
		var name = $("#flowpanes #fio").val();
		$('#final .fio').html(name);
		$('#frmZakaz').hide();
		$('#final').show();
	}
}
/* Отправка Заказа */
function sendZakaz( id ){
	var form = $('#frmZakaz input:checkbox:checked');
	var person = $('#frmZakaz input.form_input');
    var params = 'id='+id;
    person.each(function(){
		params += '&';		   
		params += this.name + '=' + this.value;
	})
	form.each(function(){
		params += '&';		   
		params += this.name + '=' + this.value;
	})
	$.ajax({
		url: '/rsrc/form/form.php?action=finish',
		type: 'post',
		data: params,
		dataType: 'json',
		error : function(){
			throw 'Error! Wrong JSON answer';
		},
		success: function(data){
		}	
	});	
}
/* Создание Ноды */
function createNode( item, name, id ){
	var input = 
		$('<span></span>')
			.addClass('niceCheck')
			.append(
				$('<input type="checkbox"></input>')
					.attr({
						value: item.id,
						name : 'more[]'
					})
			)
			.bind('mousedown', function( event ){
				changeCheck($(event.target), id);   
			})
	var open_p = $('<p></p>')
		.append(
			$('<div></div>')
				.append(input )
				.append(item.name+' (')
				.append(
					$('<a></a>')
						.attr({
							'class': 'toolNode tool',
							'title': ' - '+item.descr,
							'href': '#'
						})
					.tooltip({ 
    					track: true, 
    					delay: 0, 
    					showURL: false, 
    					opacity: 1, 
    					fixPNG: true, 
    					showBody: " - ", 
    					extraClass: "fancy",
						left: -30
					})
					.append('?')
				)
				.append(') ')
				.addClass('left')
		);
		if(item.price!=0){
			open_p.append('<div class="right"><span>' +item.price+ ' руб.</span></div>')
		}else{
			open_p.append(
				$('<input type="text"></input>')
					.attr({
						name : 'service',
						size : '10'
					})
					.addClass('form_input')
					.bind('focus', function( event ){
						$(event.target).parents('p').eq(0).children('input').eq(0).attr("checked", "checked");
					})
			)
			.append(' р/мес.')
		}
	return open_p;
}

function loadChildren(url, id, parent, context){
	$.ajax({
		url: url,
		type: 'get',
		data: {id:id},
		dataType: 'json',
		error : function(){
			throw 'Error! Wrong JSON answer';
		},
		success: function(data){
			parent.empty();
			$.each(data, function(i, item) {
				var node = createNode( item, data['form_name'], id );
				parent.append(
					node
				);
			});
			$('#open_module > p:even').addClass('even');
		}
			
	});
	return true;
}
