var intp = /^[0-9]+$/;
var tmceSettings = {
		document_base_url : 'http://' + document.location.host,
		script_url : '/js/tiny_mce/tiny_mce.js',
		theme : "advanced",
		//plugins : "lists,fullscreen,paste,spellchecker",
		plugins : "lists,fullscreen,paste",
		language : 'ru',
		//theme_advanced_buttons1 : "bold,italic,underline,|,undo,redo,|,bullist,numlist,|,link,unlink,spellchecker",
		theme_advanced_buttons1 : "bold,italic,underline,|,undo,redo,|,bullist,numlist,|,link,unlink",
		theme_advanced_buttons2 : "",
		theme_advanced_buttons3 : "",
		theme_advanced_buttons4 : "",
		theme_advanced_toolbar_location : "top",
		theme_advanced_toolbar_align : "left",
		theme_advanced_resizing : true,
		content_css : "/css/style.css",
		valid_elements : "strong,em,u,ul,li,ol,br,p,a[href]",
		formats : {
			underline : {inline : 'u', exact : true}
		},
		inline_styles : false,
		paste_auto_cleanup_on_paste : true,
		paste_strip_class_attributes : true,
        paste_postprocess : function(pl, o) {
			$('a', $(o.node)).each(function() { 
				$(this).replaceWith(
					$(this).text()
				);
			});
        },
		gecko_spellcheck : true,
        spellchecker_languages : "+Russian=ru"
		//onchange_callback : "myCustomOnChangeHandler"
		//handle_event_callback : "myHandleEvent"
	};

//function myCustomOnChangeHandler(inst) {
//	console.log("Some one modified something");
//    console.log("The HTML is now:" + inst.getBody().innerHTML);
//	inst.getBody().innerHTML = inst.getBody().innerHTML;
//}

//function myHandleEvent(e, inst) {
//	if (e.type == 'keyup' && e.keyCode == 13) {
//		console.log(e.keyCode);
//		console.log(inst.getBody().innerHTML);
//		//inst.getBody.innerHTML = inst.getBody.innerHTML;
//		//inst.execCommand("mceRepaint");
//		inst.setContent(inst.getContent());
//	}
//    return true;
//}

jQuery.fn.center = function()
{
       var w = $(window);
       this.css("position", "absolute");
       he = Math.max("20",(w.height() - this.height()) / 2 + w.scrollTop());
       this.css("top", he + "px");
       wi = Math.max("20", (w.width() - this.width()) / 2 + w.scrollLeft());
       this.css("left", wi + "px");
	   $(this).css('max-width', '50%');
       return this;
}

//$.ajaxPrefilter(function(options) {
//	alert(options.url);
//	if (options.url.substr(0, 7) != 'http://') {
//		options.url = 'http://'+document.location.host + options.url;
//	}
//	alert(options.url);
//});


var lastPoppedForm;

function showAnyForm(e, id) {
	if (id !== undefined) {
		var popup = $(id);
		var form = $('form', popup);
		popup.remove('form');
		$('#mainpopupdiv').append(form);
		lastPoppedForm = id;
	}
	var id = '#mainpopupdiv';
	if($('form', id).attr('id') != undefined) {
		addRequiredAsterisc($('form', id).attr('id'), true);
	}
	$(id).center().removeClass('nodisplay');
	addTinyMCE($(id));
	customizeInputs($(id));
	var h_bg = Math.max($(document).height(), $(window).height());
	$('#darkbg').height(h_bg).removeClass('nodisplay');
}

function cancelAny(id) {
	if (id !== undefined || lastPoppedForm !== undefined) {
		/*var el = document.getElementById('mainpopupdiv');
		var form = el.getElementsByTagName('form')[0];
		el.removeChild(form);*/
		var popup = $('#mainpopupdiv');
		var form = $('form', popup);
		if (id === undefined)
			id = lastPoppedForm;
		$(id).append(form);
		lastPoppedForm = undefined;
	}
	var id = '#mainpopupdiv';//(popuped_div_id===undefined) ? 'mainpopupdiv' : popuped_div_id;
	$(id).addClass('nodisplay');
	deleteTinyMCE($(id));
	$('#darkbg').addClass('nodisplay');
}

function submitAny(id) {
	$('#'+id)[0].submit();
}

function isUASupportsMCE() {
	var ua = navigator.userAgent;
	if ((ua.match('iPad'))||(ua.match('iPod'))||ua.match('iPphone'))
		return false;
	return true;
}

function addTinyMCE(target) {
	if (!isUASupportsMCE())
		return;
	if ($('textarea.MCE', target).length > 0) {
		$('textarea.MCE', target).tinymce(tmceSettings);
	}
}

function deleteTinyMCE(target) {
	if (!isUASupportsMCE())
		return;
	if ($('textarea.MCE', target).length > 0) {
		tinyMCE.execCommand('mceRemoveControl', true, $('textarea.MCE', target).attr('id'));
	}
}

//for questions
//function setExternalPrice(f, price, curr) {
//	if (curr === undefined)
//		curr = '';
//	f.payment.value = price + curr;
//	var extprice = price;
//	var ind = f.payment_type.options[f.payment_type.selectedIndex].value;
//	var external_payment = $('input[name=external_payment]', f);
//	if (ind.match(intp)) {
//		external_payment.val(Math.ceil(extprice*(1+comissions[ind])));
//		removeLoadingImage(external_payment);
//	} else {
//		$.ajax({
//			type: 'GET',
//			url: '/ajax/getrkoptions/?price='+price+'&option='+ind,
//			success: function(data, textStatus) {
//				external_payment.val(data);
//				removeLoadingImage(external_payment);
//			}
//		});
//	}
//
//}

function setExternalPrice(f, priceVal) {
	var sel = f.payment_type;
	if (sel.selectedIndex == -1)
		return;
	var curOption = sel.options[sel.selectedIndex];
	var curOptParent = curOption.parentNode;
	var optgroup = '';
	if (curOptParent.tagName.toLowerCase() == 'optgroup') {
		optgroup = encodeURIComponent(curOptParent.label);
	}
	var ind = curOption.value;
	var externalPaymentInput = $('input[name=external_payment]', f);
	//если комиссия провайдера заранее была определена
	if (payment_comissions !== undefined && payment_comissions[ind] !== undefined) {
		externalPaymentInput.val(Math.ceil(priceVal*(1+payment_comissions[ind])));
	} else { //иначе получаем комисиию через ajax
		addLoadingImage(externalPaymentInput);
		$.ajax({
			type: 'GET',//getrkoptions
			url: '/ajax/getpaymentwithcomission/?price='+priceVal+'&option='+ind+'&optgroup='+optgroup,
			success: function(data, textStatus) {
				var val = parseFloat(data);
				externalPaymentInput.val(val);
				removeLoadingImage(externalPaymentInput);
			}
		});
	}
}

//
function removeLoadingImage(el) {
	if (el.parent().find('img').length == 0)
		return;
	el.parent().find('img').remove();
	if (el.data('prev-margin-right')) {
		var prevMarginRight = el.data('prev-margin-right');
		el.css('margin-right', prevMarginRight);
	}
}

function addLoadingImage(el, additionalCss) {
	if (el.parent().find('img').length > 0)
		return;
	if (!additionalCss) {
		additionalCss = {};
	}
	var prevMarginRight = el.css('margin-right');
	el.data('prev-margin-right', prevMarginRight).css({
		'margin-right':'7px'
	})
	.before('<img src="/images/design/ajax-loader-fb.gif"/>')
	.parent().find('img').css(
	{
		'margin-left': '3px',
		'margin-right': '9px',
		'margin-top': '7px',
		'float':'right'
	}).css(additionalCss);
}


//personal question
function checkPQparams(f) {
    if (($.trim(f.daycount.value).length==0)&&($.trim(f.cost.value).length==0)) {
            alert("Заполните стоимость и срок услуги!");
            return false;
        }
        var daycount = $.trim(f.daycount.value);
        var cost = $.trim(f.cost.value);
        if (!daycount.match(intp)) {
            alert("Срок выполнения должен быть целым числом!");
            return false;
        }
        if (!cost.match(intp)) {
            alert("Стоимость должна быть целым числом!");
            return false;
        }
     //trimmed
     f.daycount.value = daycount;
     f.cost.value = cost;
     return true;
}

function showHideEl(el, action) {
    switch (action) {
        case 'show':
            el.removeClass('nodisplay');
        break;
        case 'hide':
            el.addClass('nodisplay');
        break;
        case 'switch':
            if (el.hasClass('nodisplay'))
                el.removeClass('nodisplay');
            else
                el.addClass('nodisplay');
        break;
    }

}

function prepareDatepicker(additionalOptions) {
	if ($.datepicker !== undefined) {
		var options = {
			closeText: 'Закрыть',
			prevText: '&#x3c;Пред',
			nextText: 'След&#x3e;',
			currentText: 'Сегодня',
			monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь',
			'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
			monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',
			'Июл','Авг','Сен','Окт','Ноя','Дек'],
			dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
			dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],
			dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
			weekHeader: 'Не',
			dateFormat: 'dd.mm.yy',
			firstDay: 1,
			isRTL: false,
			showMonthAfterYear: false,
			yearSuffix: ''
		};
		$.extend(options, additionalOptions);
		$.datepicker.regional['ru'] = options;
		$.datepicker.setDefaults($.datepicker.regional['ru']);
	}
}

function regenCaptcha(e) {
	var href = ( (e !== undefined) && (e.target !== undefined) ) ? e.target :  window.event.srcElement; //captcha_id, div_id
	var captcha_id = $(href).attr('id').replace(/^[^\-]*\-/,'');
	var div_id = $('input#'+captcha_id+'-id').closest('div').attr('id');
	href.onclick = function() {};
	var prev_hash = $('#'+captcha_id+'-id').attr('value');
	//alert(prev_hash);
	$.ajax({
		url: '/ajax/regencaptcha/?prev_hash='+prev_hash+'&captcha='+encodeURIComponent(captcha_id),
		success: function(data, textStatus) {
			if (data.length!=32) {
				alert("Ошибка обновления капчи. Попробуйте перезагрузить страницу.");
				return;
			}
			var img = $('#'+div_id).children('img');
			var src = img.attr('src');
			src = src.replace(/\/[0-9a-zA-Z]{32}\./,'/'+data+'.');
			img.attr('src',src);
			$('input#'+captcha_id+'-id').attr('value',data);
			href.onclick = function(event) {
				regenCaptcha(event);
			};
		}
	});
}

