﻿if (!Array.prototype.indexOf)
{
  Array.prototype.indexOf = function(searchElement /*, fromIndex */)
  {
    "use strict";

    if (this === void 0 || this === null)
      throw new TypeError();

    var t = Object(this);
    var len = t.length >>> 0;
    if (len === 0)
      return -1;

    var n = 0;
    if (arguments.length > 0)
    {
      n = Number(arguments[1]);
      if (n !== n) // shortcut for verifying if it's NaN
        n = 0;
      else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0))
        n = (n > 0 || -1) * Math.floor(Math.abs(n));
    }

    if (n >= len)
      return -1;

    var k = n >= 0
          ? n
          : Math.max(len - Math.abs(n), 0);

    for (; k < len; k++)
    {
      if (k in t && t[k] === searchElement)
        return k;
    }
    return -1;
  };
}
var bContentBlocked = false;

function collectForm( jForm ) {

	var aFields = jForm.find('.hinge-field-edit');
	var aRes = {};
	aFields.each(function () {
		var jInput = $(this).find('input:not(:checkbox,:radio,.hf-other),textarea,select');
		if (jInput.length && jInput[0].name && jInput.data('ph-state') != 'new') {
			if (jInput.length == 1) {
				aRes[jInput[0].name] = jInput.val();
			} else {
				aRes[jInput[0].name] = jInput.val();
			}
		} else if (!jInput.length) {
			jInput = $(this).find('input:checkbox:checked,input:radio:checked');
			// handle fookin checkboxes/radio
			if (jInput.length) {
				if (jInput.length == 1) {
					// radio
					if (jInput.val() == -1) {
						aRes[jInput[0].name] = jInput.closest('.hinge-field-edit').find('input[type=text]').val();
					} else {
						aRes[jInput[0].name] = jInput.val();
					}
				} else {
					//checkbox
					aRes[jInput[0].name] = [];
					jInput.each(function () {
						if (this.value == -1) {
							// 'other'
							aRes[jInput[0].name] = $(this).closest('.hinge-field-edit').find('input[type=text]').val();
						} else {
							aRes[jInput[0].name].push(this.value);
						}
					});
				}
			}
		}
	});
	var aHiddenFields = jForm.find('input[type = "hidden"]');
	if (aHiddenFields.length) {
		for (var i = 0; i < aHiddenFields.length; i++) {
			aRes[aHiddenFields[i].name] = aHiddenFields[i].value;
		}
	}
	return aRes;
}
( function( $ ) {
$( function () {

	blockContent = function () {
		if (!bContentBlocked) {
			$('#contentBlocker').css('display', 'block').one('click', unblockContent);
			bContentBlocked = true;
		}
	}
	unblockContent = function () {
		if (bContentBlocked) {
			$('#contentBlocker').css('display', 'none');
			bContentBlocked = false;
		}
	}

	showPopup = function ( sId, sData ) {
		blockContent();
		var jObj = $('#' + sId);
		if (sData) {
			jObj.find('.content').html( sData );
		}
		jObj.css({ display: 'block' });
		$('#popupContainer').fadeIn(200).bind('click', onPopupContainerClick);
		jObj.css({ 'left': '-' + jObj.width()/2, 'top': '-' + jObj.height()/2 });
	}
	onPopupContainerClick = function (e) {
		if ($(e.target).hasClass('closer') || !$(e.target).parents('.commonPopupContainer').length) {
			hidePopup();
			$('#popupContainer').unbind('click', onPopupContainerClick);
		}
	}
	showMessagePopup = function ( sData ) {
		blockContent();
		var jObj = $('#messagePopup');
		jObj.find('.content .message').html( sData );
		jObj.css({ display: 'block'}); //, 'left' : -jObj[0].offsetWidth/2 
		$('#popupContainer').fadeIn(200).bind('click', function (e) {
			if (!$(e.target).parents('.commonPopupContainer').length) {
				hidePopup();
			}
		});
		jObj.css({ 'margin-left': '-' + jObj.width()/2, 'margin-top': '-' + jObj.height()/2 });
	}

	hidePopup = function () {
		$('#popupContainer .commonPopupContainer').hide();
		$('#popupContainer').fadeOut(200);
		unblockContent();
	}
	$('.hf-form').each(function (i) {
		prepareHingeForm( $(this) );
	});

	$('#popupContainer .closer').bind('click',onPopupContainerClick);

	$(document).delegate('.hf-placeholder', 'focus', function () {
		var jEl = $(this);
		if (!jEl.val()) {
			return false;
		}

		if (!jEl.data('ph-state')) {
			jEl.data('ph-state', 'new');
		}
		if (!jEl.data('ph-val')) {
			jEl.data('ph-val', jEl.val() );
		}
		if (jEl.data('ph-state') == 'new') {
			jEl.addClass('hf-ph-edit');
			jEl.val('');
		}
	}).delegate('.hf-placeholder', 'blur', function () {
		var jEl = $(this);
		if (!jEl.data('ph-val')) {
			return;
		}
		if ( jEl.data('ph-state') == 'new' ) {
			// restore
			jEl.val( jEl.data('ph-val') );
			jEl.removeClass('hf-ph-edit');
		}
	}).delegate('.hf-placeholder', 'keyup click', function () {
		var jEl = $(this);
		if ( jEl.val().length ) {
			jEl.data('ph-state', 'edited');
		}
	});
	$('.hf-placeholder').data('ph-state', 'new');


})})(jQuery);

function prepareHingeForm( jContainer, fillContent ) {

	jContainer.find('textarea').each(function () {
		if (typeof CKEDITOR !== 'undefined' && !$(this).closest('.hinge-field-edit.no-wysiwyg').length && CKEDITOR.instances[this.name]) {
			CKEDITOR.instances[this.name].destroy();
		}
	});
	if (fillContent) {
		jContainer.html( fillContent );
	}
	jContainer.bind('beforeSubmit', function ( e, result ){
		$(this).find('.hf-placeholder').each(function () {
			if (!$(this).data('ph-state') || $(this).data('ph-state') == 'new') {
				$(this).val('').blur();
			}
		});
		if (!result || !result.status) {
			result.status = 'success';
		}
	});
	jContainer.find('textarea:not(.no-wysiwyg)').each(function () {
//		var oOptions = {  skin : 'office2003' };
		var oOptions = {   };
		if (this.style.height) {
			oOptions.height = this.style.height;
		}
		if ($(this).css('width')) {
			oOptions.width = $(this).css('width');
		}
		if ($(this).closest('.hf-text').hasClass('hf-text-simple')) {
			oOptions.toolbar_Full= [ [ 'Bold', 'Italic', 'Link' ] ]
		}
		if (typeof CKEDITOR !== 'undefined' && !$(this).closest('.hinge-field-edit.no-wysiwyg').length) {
			var textarea = $(this);
			$(this).ckeditor( oOptions );
			CKEDITOR.unlinkCommand('save');
			CKEDITOR.on('instanceReady', function(){
				this.on('submit', function () { return false; });
				var jb = $(textarea).parent().find('.cke_editor .cke_toolbox .cke_button_save');
				if (jb.length) {
					jb[0].onclick = function () {
						jContainer.find('.hf-submit').click();
					}
				}
			});
		}
	});
	jContainer.find('.hinge-field-date input').datepicker({changeYear: true, changeMonth: true});
	if (jContainer.find('input:file').length) {
		jContainer.closest('.hf-form').attr('enctype', 'multipart/form-data');
	}
	var jForm = jContainer.closest('.hf-form');
	jContainer.find('.hf-submit').bind('click', function (e) {
		e.stopPropagation();
		e.preventDefault();

		if (jForm.length) {
			var res = {};
			/**
			 * res = { type: 'success|error', message: string }
			 */
			jForm.trigger('beforeSubmit', [res]);

			if (!res.status || res.status == 'error') {
				return false;
			}

			var sAction = jForm.attr('action');
			if (sAction.length && sAction.indexOf('.json') == sAction.length - 5) {
			var oRes = collectForm(jForm);
        			jForm.find('textarea').each(function () { oRes[this.name] = $(this).val();  });
				// json
				$.post(sAction, oRes, function (a,b) {
					jForm.trigger('response', [a]);
				});
				return false;
			} else {
				jForm.submit();
				return false;
			}
		}
		return false;
	}).delegate('.star-rating i', 'mouseenter', function (i) {
		var jP = $(this).closest('.star-rating');
		jP[0].className = jP[0].className.replace(/sr-\d+/, 'sr-' + $(this).index());
		if (jP.next('.sr-placeholder').length) {
			jP.next('.sr-placeholder').text(this.title);
		}
	}).delegate('.star-rating i', 'mouseleave', function (i) {
		var jP = $(this).closest('.star-rating');
		var cVal = jP[0].className.match(/sr-v-(\d+)/);
		jP[0].className = jP[0].className.replace(/sr-\d+/, 'sr-' + (cVal && cVal[1] ? cVal[1] : 0) );
		 if (jP.next('.sr-placeholder').length) {
			 var jI = cVal && cVal[1] ? jP.find('i:eq(' + (parseInt(cVal[1])-1) + ')') : null;
			jP.next('.sr-placeholder').text(jI && jI.length ? jI.attr('title') : '');
		}
	}).delegate('.star-rating i', 'click', function (i) {
		var jP = $(this).closest('.star-rating');
		jP[0].className = jP[0].className.replace(/sr-v-\d+/, 'sr-v-' + $(this).index());
		jP.find('input.val:first').val($(this).index());
	});
	jForm.bind('response', function ( oRequest, oResponse ) {
		var jForm = $(this);
		if ( oResponse.status ) {
			if (oResponse.status == 'success') {
				jForm.find('.hf-error:visible').slideUp(200);
				jForm.find('.hf-container').slideUp(200, function () {
					jForm.find('.hf-success').slideDown(200, typeof fixLeftMenu != 'undefined' ? fixLeftMenu : null);
					$('body').animate( { 'scrollTop':  jForm.find('.hf-success').offset().top }, 200);
				});
//				document.location += '';
			} else if (oResponse.status == 'error') {
					if ( oResponse['hr-message'] ) {
						jForm.find('.hf-error').text( oResponse['hr-message'] );
					}
					jForm.find('.hf-error').slideDown(200, typeof fixLeftMenu != 'undefined' ? fixLeftMenu : null);
					$('body').animate( { 'scrollTop':  jForm.find('.hf-error').offset().top }, 200);
			}
		}
	});
	jContainer.find('.hinge-field-image .del').bind( 'click', function () {
		var jInput = $(this).siblings('input[name^=deleteImage]:first');
		if (jInput.val() == 1) {
			jInput.val(0);
			$(this).closest('.hinge-field-image').find('img').animate({opacity: 1}, 200);
		} else {
			jInput.val(1);
			$(this).closest('.hinge-field-image').find('img').animate({opacity: 0.3}, 200);
		}
	});
	jContainer.find('.hinge-field-file:not(.hinge-field-image) .del').bind( 'click', function () {
		var jInput = $(this).siblings('input[name^=deleteFile]:first');
		if (jInput.val() == 1) {
			jInput.val(0);
			$(this).closest('.hinge-field-file').find('p').animate({opacity: 1}, 200);
		} else {
			jInput.val(1);
			$(this).closest('.hinge-field-file').find('p').animate({opacity: 0.3}, 200);
		}
	});
	jContainer.find('.hf-radio-other input[type=text]').bind('click focus', function () {
		$(this).closest('.hf-radio-other').find('input[type=radio]').click();
//		$(this).focus();
	});
	jContainer.find('.hf-checkbox-other input[type=text]').bind('click focus', function () {
		$(this).closest('.hf-checkbox-other').find('input[type=checkbox]').click();
//		$(this).focus();
	});
	jContainer.closest('.hf-form').bind('beforeSubmit', function (e, result) {
		// parse other fields
		
		var ajRadios = $(this).find('.hf-radio-other input[type=radio]:checked');
		
		result.status = 'success';
	});

}

jQuery(document).ready(function() {
	var curl = new String(decodeURI(window.location));
	//var c = jQuery("ul.newspaper").children().size();
	//if (c < 2) jQuery("ul.newspaper").remove();
	var lm = jQuery("#LeftMenu");
	var sb = jQuery(".shadowBlock");
	if ((curl.indexOf("catalogue") > -1) && (lm.height() > sb.height()) && !(jQuery(".mainBanner").length) && (sb.length < 2)) sb.css("height", lm.height() + 6 + "px");
	var lj = jQuery(".social-buttons .lj");
	if (lj.length) {
		var href = "http://www.livejournal.com/update.bml?subject=" + jQuery("title").html() + "&event=Рекомендую посетить сайт Henderson: <a href='" + curl + "'>" + curl + "</a>&prop_taglist=henderson";
		jQuery("a",lj).attr("href", href);
	}
});
