var $expandMaxHeight = 0;
var $expandInterval;
var GROW = 1;
var SHRINK = -1;
function smoothChange(object, factor) {
    var k = Math.abs((1 - object.offsetHeight/$expandMaxHeight) - object.offsetHeight/$expandMaxHeight);
    
    if (k<0.4) {
        var growth = 30*factor;
    } else {
        var growth = 20*factor;
    }
    
    if (
        ( (factor == GROW) && ((object.offsetHeight + growth) > $expandMaxHeight) ) ||
        ( (factor == SHRINK) && ((object.offsetHeight + growth) < 0) )
        )
    {
        growth = factor>0 ? ($expandMaxHeight - object.offsetHeight) : 0;
        clearInterval($expandInterval);
        $expandInterval = null;
    }
    
    object.style.height = object.offsetHeight + growth + 'px';
    if (factor == SHRINK && !$expandInterval) {
        object.style.height = $expandMaxHeight + 'px';
        object.style.display = 'none';
    }
return false;
}
function smoothShowVertical(object) {
    if ($expandInterval)
        return false;
        
    object.style.height = '1px';
    $expandInterval = setInterval(function(object) { return function () { smoothChange(object, GROW) } }(object), 20);
return false;
    }
function smoothHideVertical(object) {    
    if ($expandInterval)
        return false;
    $expandInterval = setInterval(function(object) { return function () { smoothChange(object, SHRINK) } }(object), 20);
return false;
    }

var CURRENT_TARGET;

function show(aID) {
    if ($expandInterval)
        return false;
	var sID = "box_" + aID;
	var dID = "boxx_" + aID;
    var target = document.getElementById(sID).style;
	var divlink = document.getElementById(dID);
    var value = target.display == 'block' ? 'none' : 'block';
        
    if (CURRENT_TARGET && CURRENT_TARGET != target) {
        //CURRENT_TARGET.display = 'none';
    };
    
    if (target.display == 'none') {
		if(target.height = '0px') target.height = '';
		
        CURRENT_TARGET = target;
        target.display = 'block';
    
        //---
        object = document.getElementById(sID);
        $expandMaxHeight = object.offsetHeight;
        object.style.height = '0px';
        smoothShowVertical(document.getElementById(sID));
        //---
		divlink.innerHTML = ("<a onclick=\"show('" + aID + "')\" href=\"javascript:void(0)\">Закрыть</a>");
    } else {
        $expandMaxHeight = object.offsetHeight;
        smoothHideVertical(document.getElementById(sID));
		if(aID == 1) {
			divlink.innerHTML = ("<a onclick=\"show('1')\" href=\"javascript:void(0)\">Показать все двери</a>");
		} else {if(aID == 2) {
			divlink.innerHTML = ("<a onclick=\"show('2')\" href=\"javascript:void(0)\">Показать все витражи</a>");
		} else {
			divlink.innerHTML = ("<a onclick=\"show('" + aID + "')\" href=\"javascript:void(0)\">Показать всё</a>");
		}}
    }
    return false;
}

// +++++++++++++++++++++++

document.getElementsByClassName = function(cl) {
    var retnode = [];
    var myclass = new RegExp('\\b'+cl+'\\b');
    var elem = this.getElementsByTagName('*');
    for (var i = 0; i < elem.length; i++) {
        var classes = elem[i].className;
        if (myclass.test(classes)) retnode.push(elem[i]);
    }
    return retnode;
};

function shuffling(el, box, shuf) {
	if(!el) el = "shuffle";
	if(!shuf) shuf = "owner";
    blocks = document.getElementsByClassName(shuf);
 var i = blocks.length, j, t, allblocks = "";
 while(i) 
 { 
  j = Math.floor( ( i-- ) * Math.random() );
  t = blocks[i].innerHTML;
  blocks[i].innerHTML = blocks[j].innerHTML;
  blocks[j].innerHTML = t;
 }

var razd = "";

	if(box) {allblocks = blocks[0].innerHTML + blocks[1].innerHTML + "<div class=\"clear\"></div><div class=\"none\" id=\"" + box + "\" style=\"display:none\">"; dd = 2} else {dd = 0;}
    for (var ii=dd; ii<blocks.length; ii++)    {if (ii!=2) allblocks += razd; allblocks += blocks[ii].innerHTML;}
    document.getElementById("shuf" + el).innerHTML = allblocks;
    document.getElementById("shuf" + el).style.display = "block";
	document.getElementById("boxx" + el).style.display = "block";
    document.getElementById("shuf_dov" + el).style.display = "none";
	
return false;
}

function shuffling_go(el, box, shuf) {
	if(!el) el = "shuffle";
	if(!shuf) shuf = "owner";
    blocks = document.getElementsByClassName(shuf);
 var i = blocks.length, j, t, allblocks = "";
 while(i) 
 { 
  j = Math.floor( ( i-- ) * Math.random() );
  t = blocks[i].innerHTML;
  blocks[i].innerHTML = blocks[j].innerHTML;
  blocks[j].innerHTML = t;
 }

var razd = "";

	if(box) {allblocks = blocks[0].innerHTML + blocks[1].innerHTML + ""; dd = 2} else {dd = 0;}
    for (var ii=dd; ii<blocks.length; ii++)    {if (ii!=2) allblocks += razd; allblocks += blocks[ii].innerHTML;}
    document.getElementById("shuf" + el).innerHTML = allblocks;
    document.getElementById("shuf" + el).style.display = "block";
    document.getElementById("shuf_dov" + el).style.display = "none";

return false;
}


function onLoad() {
	shuffling('_1', 'box_1', 'owner1');
	shuffling('_2', 'box_2', 'owner2');
}
function onLoad_d() {
	shuffling_go('_1', 'box_1', 'owner1');
}
function onLoad_v() {
	shuffling_go('_2', 'box_2', 'owner2');
}

// --------------------------

function opendiv(what) {
  var Xsc;
  var Ysc;
  Xsc = self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
  Ysc = self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft) || (document.body && document.body.scrollLeft);
  window.scrollTo(Ysc,Xsc);
      
	if (document.getElementById("toplayer")) {
		var loadingDiv = document.getElementById("toplayer");
		if (loadingDiv.style.display == "block") {
			loadingDiv.style.display = "none";
			document.getElementById("opendiv").style.top = "0px";
			document.getElementById("div_img").innerHTML = "";
		}
		else {
      var Osc;
      Osc = Xsc + 20;
      document.getElementById("opendiv").style.top = Osc + "px";
      document.getElementById("div_img").innerHTML = ("<a href=\"#\" title=\"закрыть\" onClick=\"opendiv(); return false;\"><img src=\"" + what + "\" alt=\"\" /></a>");
      loadingDiv.style.display = "block";
		}
	}
  return false;
}

// --------------------------

function check(is) { 
// убираем пробелы в начале строки
if (re = /^\s*/) {
is.value = is.value.replace(re, ""); 
}
// убираем повторяющиеся пробелы в тексте
if (re = /\s{2,}/) {
is.value = is.value.replace(re, " "); 
}
// убираем пробелы в конце строки
if (re = /\s{2,}$/) {
is.value = is.value.replace(re, ""); 
}
return false;
}

