var _FFrv;
var _isFF=false;
var _isIE=false;
var _isOpera=false;
var _isKHTML=false;
var _isMacOS=false;
var old_target = null;
var firstImage;
var bigImages;
var previewHeight;
var previewWidth;
var verticalOffset = 5;
var horizontalOffset = 3;
var top = 0;
var left = 5;
var slideSpeed = 20;
var currentImage;
var currentMLS;
var scrolling = false;
var timeout;
var ajax_controller = '/utils/ajax_lib_articles_controller';

function init() {
    if(navigator.userAgent.indexOf('Macintosh')!= -1)_isMacOS=true;
    if((navigator.userAgent.indexOf('Safari')!= -1)||(navigator.userAgent.indexOf('Konqueror')!= -1))
    _isKHTML=true;
    else if(navigator.userAgent.indexOf('Opera')!= -1){
    _isOpera=true;
    _OperaRv=parseFloat(navigator.userAgent.substr(navigator.userAgent.indexOf('Opera')+6,3));
    }
    else if(navigator.appName.indexOf("Microsoft")!=-1)
    _isIE=true;
    else{
    _isFF=true;
    _FFrv=parseFloat(navigator.userAgent.split("rv:")[1])
    }
}

function isValidEmail(str) {
    return str.match(new RegExp("^([a-zA-Z0-9_]|\\-|\\.)+@(([a-zA-Z0-9_]|\\-)+\\.)+[a-zA-Z]{2,4}$"));
}

function checkFields() {
    var i, a=checkFields.arguments;
    for(i=0;i<a.length;i++) {
        obj = $(a[i]);
        if(!obj.value.length) {
            alert("Пустое поле (Empty field) "+obj.name);
            return false;
        }
        if (obj.name.match(/^EMail(.*?)/)) {
            if (!isValidEmail(obj.value)) {
                alert("Неверный формат email адреса (Wrong email format)");
                return false;
            }
        }
    }
    return true;
}

function ensureNumeric(e) {
  var k = (typeof e.charCode == "undefined" ? e.keyCode : e.charCode);
  if (k < 32 || e.ctrlKey || e.altKey || e.metaKey)
    return true;
  return (k >= 48 && k <= 57);
}

function ensureAlphaDigit(e) {
  var k = (typeof e.charCode == "undefined" ? e.keyCode : e.charCode);
  if (k < 32 || e.ctrlKey || e.altKey || e.metaKey)
    return true;
  return ((k >= 48 && k <= 57) || (k >= 65 && k <= 90) || (k >= 97 && k <= 122));
}

function showBigImage(key, id) {
    $('scrollable_photo').innerHTML = '<img id="big_photo" src="/img/loading.gif" width="32" height="32" border="0" align="center">';
    if (typeof bigImages[key]=='string')
	$('scrollable_photo').innerHTML = '<a href="javascript:void(0)" onclick="showBig('+id+')"><img id="big_photo" src="/utils/phpThumb?src='+bigImages[key]+'&w=350" border="0" align="center"></a>';
    else
	$('scrollable_photo').innerHTML = '<img id="big_photo" src="/img/noimage.gif" border="0" align="center">';
    if (old_target!=null) {
        var oldElem = document.getElementsByName('icon_'+old_target);
        if (oldElem && oldElem[0])
            oldElem[0].style.border = '2px Solid #F3F6E0';
    }
    old_target = key;
    var newElem = document.getElementsByName('icon_'+key);
    newElem[0].style.border = '2px Solid Red';
}

function getNextImage() {
    if (parseInt(old_target)+1<=bigImages.length-1) {
        showBigImage(parseInt(old_target)+1);
    } else
        showBigImage(0);
}

function getPrevImage() {
    if (parseInt(old_target)-1<0) {
        showBigImage(bigImages.length-1);
    } else
        showBigImage(parseInt(old_target)-1);
}

function scrollRight(speed) {
    var tbl = $('preview_layer');
    if (left>=0) {
        tbl.style.left = 0+'px';
        scrolling = false;
        return;
    }
    if (!left) {
        scrolling = false;
        return;
    }
    left += speed;
    tbl.style.left = left+'px';
    timeout = setTimeout('scrollRight('+speed+')',slideSpeed);
}

function scrollLeft(speed) {
    var tbl = $('preview_layer');
    if (tbl)
        previewWidth = $('preview_layer').clientWidth;
    else
        return;
    if (left<530-previewWidth) {
        scrolling = false;
        return;
    }
    left -= speed;
    tbl.style.left = left+'px';
    timeout = setTimeout('scrollLeft('+speed+')',slideSpeed);
}

function shiftPreviewStop() {
    scrolling = false;
    clearTimeout(timeout);
    return;
}

function shiftPreview(speed) {
    if (scrolling)
        return false;
    else {
        scrolling = true;
        if (speed>0)
            scrollRight(Math.abs(speed));
        else
            scrollLeft(Math.abs(speed));
    }
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function toBoolean(inputString){
    if(typeof(inputString)=="string")
        inputString=inputString.toLowerCase();
    switch(inputString){
        case "1":
        case "true":
        case "yes":
        case "y":
        case "on":
        case 1:
        case true:
        return true;
        break;
    default: return false;
    }
}

// Sets cookie values. Expiration date is optional//
function setCookie(name, value, expire) {
  document.cookie = name + "=" + escape(value) + ((expire == null) ? "" : ("; expires=" + expire.toGMTString()));
}

function getCookie(nm) {
  if (document.cookie.length > 0) {
    var re1 = /\s*;\s*/;
    var cooks = document.cookie.split(re1);
    var re2 = /\s*=\s*/;
    for ( i=0; i<cooks.length; i++ ) {
            var parts = cooks[i].split(re2,2);
            if (nm == parts[0]) {
                return unescape(parts[1]);
            }
    }
  }
  return "";
}

function deleteCookie(Name)
{
  expireDate = new Date;
  expireDate.setDate(expireDate.getDate()-1);
  document.cookie = Name + "=; expires=" + expireDate.toGMTString();
}

function ieTrueBody(){
    return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
}


function switchSubMenu(id) {
	var div = $('div_'+id);
	if (div) {
		if (div.style.display=='') {
			div.style.display = 'none';
		} else {
			div.style.display = '';
		}
	}
	return false;
}

var ltheme = 0, lpart = 0, ltype = 0;

function searchTheme(id) {
	if (id) {
		ltheme = parseInt(id); lpart = 0; ltype = 0;
		setCookie('ltheme',ltheme);
		deleteCookie('lpart');
		deleteCookie('ltype');
		getAjaxArticles();
	}
}

function searchPart(def,id) {
	if (id) {
		if (!ltheme)
			ltheme = parseInt(def);
		lpart = id; ltype = 0;
		setCookie('lpart',lpart);
		deleteCookie('ltype');
		getAjaxArticles();
	}
}

function searchType(def1,def2,id) {
	if (id) {
		if (!ltheme)
			ltheme = parseInt(def1);
		if (!lpart)
			lpart = parseInt(def2);
		ltype = id;
		setCookie('ltype',ltype);
		getAjaxArticles();
	}
}

function getAjaxArticles() {
	$('lib-content').innerHTML = '<img src="/img/progress.gif" width="16" height="16">';
	new Ajax.Request(ajax_controller, {
		method:'post',
		parameters: 'ltheme='+ltheme+'&lpart='+lpart+'&ltype='+ltype,
		onSuccess: function(transport){
			var response = transport.responseText || '';
			$('lib-content').innerHTML = response;
		},
		onFailure: function(){ /*alert('Something went wrong...')*/ }
	});
}

function showPhotoOld(id) {
	if (!id)
		return;
	$('photo').innerHTML = '<img src="/img/loading.gif" width="32" height="32" />';
	new Ajax.Request('/utils/ajax_photos_controller', {
		method:'post',
		parameters: 'id='+id,
		onSuccess: function(transport){
			var response = transport.responseText.evalJSON();
			$('photo').innerHTML = '<a href="javascript:void(0)" onclick="showBig('+id+')"><img src="/utils/phpThumb?src='+response.picture+'&w=350" border="0" /></a>';
			if (response.prev && response.next)
				$('navigation').innerHTML = '&nbsp; <a href="javascript:void(0)" onclick="showPhoto('+response.prev+')">Предыдущая</a> &nbsp; <a href="javascript:void(0)" onclick="showPhoto('+response.next+')">Следующая</a> &nbsp;';
			else
				$('navigation').innerHTML = '';
		},
		onFailure: function(){ /*alert('Something went wrong...')*/ }
	});
}

function showPhoto(id) {
	if (!id)
		return;
	$('scrollable_photo').innerHTML = '<img src="/img/loading.gif" width="32" height="32" />';
	new Ajax.Request('/utils/ajax_photos_controller', {
		method:'post',
		parameters: 'id='+id,
		onSuccess: function(transport){
			var response = transport.responseText.evalJSON();
			var img = new Image;
			img.src = '/utils/phpThumb?src='+response.picture+'&w=550';
			$('scrollable_photo').innerHTML = '<a href="javascript:void(0)" onclick="showBig('+id+')" id="currentPhoto"><img src="/utils/phpThumb?src='+response.picture+'&w=550" border="0" /></a>';
			if (old_target!=null) {
    			    var oldElem = document.getElementsByName('icon_'+old_target);
    			    if (oldElem && oldElem[0])
        			oldElem[0].style.border = '2px Solid #053948';
			}
			old_target = id;
			var newElem = document.getElementsByName('icon_'+id);
			newElem[0].style.border = '2px Solid Red';
		},
		onFailure: function(){ /*alert('Something went wrong...')*/ }
	});
}

function showBig(id) {
	window.open('/photo.php?id='+id, 'newW' ,'width=350,height=350,resizable=1');
}


function play() {
	var cont = Ext.DomQuery.select('a.video');
	Shadowbox.clearCache();
	Shadowbox.setup(cont, {
		handleUnsupported: 'remove',
		continuous: true,
		counterType: 'skip'
	});
	Shadowbox.open(cont[0]);
}
