/*
Name:      Shogo
Use with:  jQuery
Version:   0.2.3 (09.11.2010)
Author:    Grigory Zarubin, Andrey Sidorov, Sergey Glagolev (Shogo.RU)


Различный функционал, используемый на наших сайтах.
*/

//-----------------------------------------------------------------------------
// PNG IE6 Fix
//-----------------------------------------------------------------------------
var msie6 = !!(jQuery.browser.msie && (jQuery.browser.version && jQuery.browser.version < 7 || /MSIE 6.0/.test(navigator.userAgent)));
var bgFixer = function(el, type) {
  var tmp = el.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i);
  if(tmp && msie6) {
    tmp = tmp[1];
    if( !tmp.match(/http:\/\//) && jQuery('head base').length ) tmp = '/' + tmp;
    el.runtimeStyle.backgroundImage = 'none';
    el.runtimeStyle.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + tmp + '",sizingMethod="' + type + '")';
    jQuery(el).find('a').css('position', 'relative');  }
};
function fixBgPNG_c(el) { bgFixer(el, 'crop'); }
function fixBgPNG_s(el) { bgFixer(el, 'scale'); }

jQuery(function() {
  var fix = function(el) {
    var tmp = jQuery(el).attr('src');
    if( !tmp.match(/http:\/\//) && jQuery('head base').length ) tmp = '/' + tmp;
    jQuery(el).attr('src', 'i/sp.gif');
    el.runtimeStyle.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + tmp + '",sizingMethod="crop")';
  };

  // Для всех ослов
  if(jQuery.browser.msie) {
    jQuery('img.pngfix_all[src$=.png]').each(function() {
      fix(this);
    });
  }

  if(msie6) {
    jQuery('img.pngfix[src$=.png]').each(function() {
      fix(this);
    });
  }
});
//-----------------------------------------------------------------------------
// this_url
//-----------------------------------------------------------------------------
var this_url = document.location.href.replace(/#.*$/, '')+(document.location.href.match(/\?/) == null ? '?' : '&' )+'$js='+(new Date()).valueOf();
//-----------------------------------------------------------------------------
// Highslide Gallery
//-----------------------------------------------------------------------------
jQuery(function()
{
  if('hs' in window && hs.expand) {
    jQuery('a.highslide').click(function(e) {
      e.preventDefault();
      hs.expand(this);
    });
  }
});
//-----------------------------------------------------------------------------
// Element's Check
//-----------------------------------------------------------------------------
var gbi = function(el) { return !!document.getElementById(el); };
//-----------------------------------------------------------------------------
// $HAR(resp)
//-----------------------------------------------------------------------------
function $HAR(resp) // (handle ajax response) стандартный вывод сообщений об ошибках
{
  var result = false;
  var defmsg = 'Произошла неизвестная ошибка!';
  if( resp && resp.status )
  {
    switch( resp.status )
    {
      case 'ok':
        result = true;
        break;

      case 'error':
        alert(resp.message || defmsg);
        break;

      default:
        alert(defmsg);
    }
    if( resp.evaluate )
      eval(resp.evaluate);
  }
  return result;
}
//-----------------------------------------------------------------------------
// check_required(required)
//-----------------------------------------------------------------------------
function check_required(required)
{
  for( var i = 0, l = required.length; i < l; i++ )
  {
    if( !jQuery('#'+required[i]['id']).attr('value').replace(/^\s+/, '').replace(/\s+$/, '').length )
    {
      alert(required[i]['name']+' не может быть пустым!');
      jQuery('#'+required[i]['id']).focus();
      return false;
    }
    if( required[i]['email'] && !jQuery('#'+required[i]['id']).attr('value').match(/\S+@\S+\.\S+/) )
    {
      alert(required[i]['name']+' содержит некорректное значение!');
      jQuery('#'+required[i]['id']).focus();
      return false;
    }
    if( required[i]['numeric'] && !jQuery('#'+required[i]['id']).attr('value').match(/[\d]+/) )
    {
      alert(required[i]['name']+' содержит некорректное значение!');
      jQuery('#'+required[i]['id']).focus();
      return false;
    }
    if( required[i]['group_1_2_3'] && !jQuery('#'+required[i]['id']).attr('value').match(/(1|2|3)(,(1|2|3))*/) )
    {
      alert(required[i]['name']+' содержит некорректное значение!');
      jQuery('#'+required[i]['id']).focus();
      return false;
    }
  }
  return true;
}
//-----------------------------------------------------------------------------
// Search Input Universal Handlers
//-----------------------------------------------------------------------------
jQuery(function() {
  var inp = jQuery('#search input[type="text"]'), txt = inp.val();
  inp.focus(function() {
    if(!jQuery(this).data('search_changed')) jQuery(this).val('');
  }).blur(function() {
    if(!jQuery(this).data('search_changed')) jQuery(this).val(txt);
  }).change(function() {
    jQuery(this).data('search_changed', true);
  });

  jQuery('#search form').submit(function() {
    if(!inp.data('search_changed') || !inp.val()) return false;
    return true;
  });
});
//-----------------------------------------------------------------------------
