﻿//---------------------------------+       
//  CARPE  S l i d e r        1.3  |
//  2005 - 12 - 10                 |
//  By Tom Hermansson Snickars     |
//  Copyright CARPE Design         |
//  http://carpe.ambiprospect.com/ |
//---------------------------------+

var all0=0;
var all1=4;
var valall = 1;
var xall = 3.1;
var vall = 0;

var plan0=all1;
var plan1=18;
var valplan = 2000;
var xplan = 11;
var vplan = 7;

var berem0=plan1;
var berem1=31;
var berem2=44;
var berem3=58;
var valberem1 = 3100;
var valberem2 = 3200;
var valberem3 = 3300;

var rodi0=berem3;
var rodi1=64;
var valrodi = 4000;
var xrodi = 60.5;
var vrodi = 60;

var post0=rodi1;
var post1=70;
var post2=76;
var post3=81;
var valpost1 = 5100;
var valpost2 = 5200;
var valpost3 = 5300;


function carpeLeft(elmnt, pos)
{
	if (!(elmnt = document.getElementById(elmnt))) return 0;
	if (elmnt.style && (typeof(elmnt.style.left) == 'string')) {
		if (typeof(pos) == 'number') {
			if (isNaN(pos)) pos = 0;
		elmnt.style.left = pos + 'px';}
		else {
			pos = parseInt(elmnt.style.left);
			if (isNaN(pos)) pos = 0;
		}
	}
	else if (elmnt.style && elmnt.style.pixelLeft) {
		if (typeof(pos) == 'number') elmnt.style.pixelLeft = pos;
		else pos = elmnt.style.pixelLeft;
	}
	return pos;
}
function carpeTop(elmnt, pos)
{
	if (!(elmnt = document.getElementById(elmnt))) return 0;
	if (elmnt.style && (typeof(elmnt.style.top) == 'string')) {
		if (typeof(pos) == 'number') elmnt.style.top = pos + 'px';
		else {
			pos = parseInt(elmnt.style.top);
			if (isNaN(pos)) pos = 0;
		}
	}
	else if (elmnt.style && elmnt.style.pixelTop) {
		if (typeof(pos) == 'number') elmnt.style.pixelTop = pos;
		else pos = elmnt.style.pixelTop;
	}
	return pos;
}
// moveSlider: Handles slider and display while dragging
function moveSlider(evnt)
{
	var evnt = (!evnt) ? window.event : evnt; // The mousemove event
	if (mouseover) { 
		x = pxLeft + evnt.screenX - xCoord // Horizontal mouse position relative to allowed slider positions
    y = pxTop + evnt.screenY - yCoord // Horizontal mouse position relative to allowed slider positions
    if (x > xMax) x = xMax // Limit horizontal movement
		if (x < 0) x = 0 // Limit horizontal movement
		if (y > yMax) y = yMax // Limit vertical movement
		if (y < 0) y = 0 // Limit vertical movement
    x1 = (x/xDisc);
    x = Math.floor(x1)*xDisc;
    x = calcX(x);
    carpeLeft(sliderObj.id, x)  
    carpeTop(sliderObj.id, calcY(x/xDisc_n))
		sliderVal = x + y // pixel value of slider regardless of orientation
		sliderPos = (sliderObj.pxLen / sliderObj.valCount) * Math.round(sliderObj.valCount * sliderVal / sliderObj.pxLen)
		v = Math.round((sliderPos * sliderObj.scale + sliderObj.fromVal) * 
			Math.pow(10, displayObj.dec)) / Math.pow(10, displayObj.dec)
    displayObj.value = calcV(v)	// put the new value in the slider display element
		return false
	}
	return
}

function calcV(v)
{
  if (v >=all0  && v<all1  ) return 1   ;

  if (v >=plan0  && v<plan1 ) return valplan   ;

  if (v >=berem0 && v<berem1 ) return valberem1+v-berem0+1   ;
  if (v >=berem1 && v<berem2 ) return valberem2+v-berem0+1   ;
  if (v >=berem2 && v<berem3 ) return valberem3+v-berem0+1   ;

  if (v >=rodi0 && v<rodi1 ) return valrodi   ;

  if (v >=post0 && v <post1 ) return valpost1 + v - post0+1   ;
  if (v >=post1 && v <post2 ) return valpost2 + v - post0+1   ;
  if (v >=post2             ) return valpost3 + v - post0+1   ;
  return v;
}

function convV(v)
{
  if (v==1) return v=vall ;

  if (v==valplan) return v=vplan ;

  if (v>=valberem1 && v<valberem2 ) return v = v - valberem1 + berem0 - 1;
  if (v>=valberem2 && v<valberem3 ) return v = v - valberem2 + berem0 - 1;
  if (v>=valberem3 && v<valrodi   ) return v = v - valberem3 + berem0 - 1;

  if (v>=valrodi  && v<valpost1   )  return v = vrodi;

  if (v>=valpost1 && v<valpost2   ) return v = v - valpost1 + post0 - 1;
  if (v>=valpost2 && v<valpost3   ) return v = v - valpost2 + post0 - 1;
  if (v>=valpost3                 ) return v = v - valpost3 + post0 - 1;
}

function calcY(x)
{
  var y1 = 55;
  return y1;
}

function calcX(x){
  x=x/xDisc_n;

  if(x<all1                ) return xall*xDisc_n  ;
  if(x>=plan0  && x<plan1  ) return xplan*xDisc_n ;
  if(x>=berem0 && x<berem3 ) return x*xDisc_n     ;
  if(x>=rodi0  && x<rodi1  ) return xrodi*xDisc_n ;
  if(x>=post0  && x<post3  ) return x*xDisc_n     ;
  if(x>=post3+1            ) return (post3)*xDisc_n  ;

  return x*xDisc_n;
}

function processRequestChange() {  
if (request.readyState == 4) {  
if (request.status == 200) {  	
$('#dynamicBlogsList').html(request.responseText);
} 
}
}  

// moveSlider: Handles the start of a slider move.
function slide(evnt, length, from, to, count, decimals, display, discret, def, defX)
{
	if (!evnt) evnt = window.event;
	
  xDisc_n = length/(to-from)
  if (def)
  {
    if(defX > 3400 && defX < 4000) defX = 4000;
    x = calcX(convV(defX)*xDisc_n);
    carpeTop(def, calcY(defX));
    carpeLeft(def, x);
    return;
  }
  
  sliderObj = (evnt.target) ? evnt.target : evnt.srcElement; // Get the activated slider element.
	sliderObj.pxLen = length // The allowed slider movement in pixels.
	sliderObj.valCount = count ? count - 1 : length // Allowed number of values in the interval.

	displayObj = document.getElementById(display) // Get the associated display element.  
	displayObj.dec = decimals // Number of decimals to be displayed.  
  
	sliderObj.scale = (to - from) / length // Slider-display scale [value-change per pixel of movement].
	sliderObj.fromVal = from
 
	xMax = length
	yMax = 0

  xDisc = discret*xDisc_n
	pxLeft = carpeLeft(sliderObj.id) // Sliders horizontal position at start of slide.
	pxTop  = carpeTop(sliderObj.id) // Sliders vertical position at start of slide.
	xCoord = evnt.screenX // Horizontal mouse position at start of slide.
	yCoord = evnt.screenY // Vertical mouse position at start of slide.
	mouseover = true
	document.onmousemove = moveSlider 
	document.onmouseup = sliderMouseUp 
}
// sliderMouseup: Handles the mouseup event after moving a slider.
// Snaps the slider position to allowed/displayed value. 
preloader = '<br/><img src="/img/ajax-loader.gif" />';

function sliderMouseUp(){
mouseover = false;
if((oldvalue==99)||(oldvalue!=displayObj.value)){
if(currRazdel == 'art'){
$('#dynArtOntent').html(preloader);
updateArt();
}
if(currRazdel == 'blog'){
$('#dynamicBlogsList').html(preloader);
        /*$.post('/ajax/ajax_blogslist/index.gca?s='+displayObj.value, '', function(data){
          if (data['err']){$('#dynamicBlogsList').html('Status undefined!');}
          if (data['result']=='ok'){
				$('#dynamicBlogsList').html(data['content']);
		  }
        }, 'json');    */
          
    if (navigator.userAgent.toLowerCase().indexOf("opera") != -1) {    
        request = new XMLHttpRequest();  
        request.onreadystatechange = processRequestChange;  
        request.open("GET", '/ajax/ajax_blogslist/index.gca?s='+displayObj.value, true);  
        request.send(null);           
    } else {
    	$('#dynamicBlogsList').load('/ajax/ajax_blogslist/index.gca?s='+displayObj.value, function(){
            if (window.jScrollHorizontalPane_init) jScrollHorizontalPane_init();
        });
    }
    
	oldvalue = displayObj.value;
}
if(currRazdel == 'mainpage'){
$('#divLastArticle').html(preloader);
$('#lastBlogRec').html(preloader);
        /*$.post('/ajax/mainpage/index.gca?s='+displayObj.value, '', function(data){
          if (data['err']){$('#divLastArticle').html('Status undefined!');}
          if (data['result']=='ok'){
				$('#divLastArticle').html(data['content']);
				$('#lastBlogRec').html(data['content2']);
		  }
        }, 'json');*/
        $('#divLastArticle').load('/ajax/mainpage/index.gca?type=art&s='+displayObj.value);    
        $('#lastBlogRec').load('/ajax/mainpage/index.gca?type=blog&s='+displayObj.value);
	oldvalue = displayObj.value;
}
if(currRazdel == 'recomm'){
$('#dynStAtrContent').html(preloader);
updateStArt();
}
$('#dynH4').html(displayObj.value);
}
}

function updateArt(){
      /*$.post('/ajax/articles/index.gca?s='+displayObj.value, '', function(data){
          if (data['err']){$('#dynArtOntent').html('Status undefined!');}
          if (data['result']=='ok'){
				$('#dynArtOntent').html(data['content']);
		  }
        }, 'json');*/
      $('#dynArtOntent').load('/ajax/articles/index.gca?s='+displayObj.value);      
      $('#artcatlist').load('/ajax/articles/index.gca?type=cat&s='+displayObj.value);
	oldvalue = displayObj.value;
}
function updateStArt(){
      /*$.post('/ajax/stArticles/index.gca?s='+displayObj.value, '', function(data){
          if (data['err']){$('#dynStAtrContent').html('Status undefined!');}
          if (data['result']=='ok'){
				$('#dynAllContent').html(data['content']);
		  }
        }, 'json');*/
    $('#dynAllContent').load('/ajax/stArticles/index.gca?s='+displayObj.value);  
	oldvalue = displayObj.value;
	sendInformer(1);
    reloadInformer(1);
}

function sh(id)
{
if($('#full_text_'+id).html()=='')
{
	updateContentBlock(id);
}
	if(document.getElementById('full_text_'+id).style.display=='none')
	{
		$('#sh_'+id).text('Скрыть полный текст');
		$('#small_text_'+id).hide();
		$('#full_text_'+id).show();
	}
	else
	{
		$('#sh_'+id).text('Показать полный текст');
		$('#full_text_'+id).hide();
		$('#small_text_'+id).show();
	}
}

function updateContentBlock(id){
$('#full_text_'+id).html(preloader);
        /*$.post('/ajax/ajax_blogslist/index.gca?b='+id, '', function(data){
          if (data['err']){$('#full_text_'+id).html('Error!!!');}
          if (data['result']=='ok'){
				$('#full_text_'+id).html(data['content']);
		  }
        }, 'json');*/
        $('#full_text_'+id).load('/ajax/ajax_blogslist/index.gca?b='+id, function(){
            if (window.jScrollHorizontalPane_init) jScrollHorizontalPane_init();
        });
}

