////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//                            © GnS-Arts.com                                  //
//                        Scripting: Sergey Rudoy                             //
//                     Supervising: Sergey Malovichko                         //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////

 var t=70;                //time delay
 var i=1;                 //initial shift step
 var num_slider = 1;      //number of the selected slide
 var prev_num_slider = 0; //number of the previous slide
 var frameWidth =100;      //width of a slide in %

//size of the browser working are
function screenSize() {
    var w, h; // w - width, h - height
    w = (window.innerWidth ? window.innerWidth : (document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.offsetWidth));
    h = (window.innerHeight ? window.innerHeight : (document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.offsetHeight));
    return {w:w, h:h};
}

 //Initial coordinates of the main layer
 id = document.getElementById('mainslide'); //Creating variable value for the object
 id.style.left =0 + '%';

function scrollmain()
{
	i=i+i; //speeding up

    if(num_slider>prev_num_slider) //scrolling left
    {
 	   if ((parseInt(id.style.left)-i) > (-frameWidth*num_slider))  //stop coordinates
       {
      		id.style.left = parseInt(id.style.left)-i+'%';
      		setTimeout('scrollmain()', t);
       }else
         {
    	 	id.style.left = -frameWidth*num_slider +'%';
    	 	i=1; //resetting initial shift step
    	 	prev_num_slider = num_slider; //writing the number of the previous slide
         }
    }else

    if(num_slider<prev_num_slider) //scrolling right
    {
 	   if ((parseInt(id.style.left)+i) < (frameWidth*num_slider))  //stop coordinates
       {
      		id.style.left = parseInt(id.style.left)+i+'%';
      		setTimeout('scrollmain()', t);
       }else
         {
    	 	id.style.left = -frameWidth*num_slider+'%';
    	 	i=1; //resetting initial shift step
    	 	prev_num_slider = num_slider; //writing the number of the pevious slide
         }
     }
}
function start_scroll(numslider) {
    num_slider = numslider;
    setTimeout('scrollmain()', t);
}
////////////////////////////////////////////////////////////////////////////////
//                                   NAVIGATOR                                //
////////////////////////////////////////////////////////////////////////////////

function next()
{
  if(getValue()==89)
   {
    setValue(307);
    physics(307);
   }else
  if(getValue()==307)
   {
    setValue(491);
    physics(491);
   }else
  if(getValue()==491)
   {
    setValue(675);
    physics(675);
   }else
  if(getValue()==675)
   {
    setValue(873);
    physics(873);
   }

}
function prev()
{
  if(getValue()==873)
   {
    setValue(675);
    physics(675);
   }else
  if(getValue()==675)
   {
    setValue(491);
    physics(491);
   }else
  if(getValue()==491)
   {
    setValue(307);
    physics(307);
   }else
  if(getValue()==307)
   {
    setValue(89);
    physics(89);
   }
}


//*************************************************************************************Slider
//loading images...
img1 = new Image();
img1.src = "images/fon1.png";
img2 = new Image();
img2.src = "images/fon2.png";
img3 = new Image();
img3.src = "images/fon3.png";
img4 = new Image();
img4.src = "images/fon4.png";
img5 = new Image();
img5.src = "images/fon5.png";
img6 = new Image();
img6.src = "images/btnprev.png";
img7 = new Image();
img7.src = "images/btnnext.png";

//function slider(elemId) {
	var elemId ='sl1';
// 1 DEFINING VARIABLES
    var btnWidth = 18;				// width and height of the slider thing (slider indicator)
	var btnHeight = 20;
    var sliderWidth =980;           // width and height of the slider
	var sliderHeight = 45;
	var limit = 89;                  //extra specing left and right

	var offsX, tmp;					                       // additional variables
	var d = document;
	var isIE = d.all || window.opera;	                   // DOM model flag
	var point =1;                                     // point - number of pixels per defined unit
	var t_nav =20;                                    //time delay

 	var slider = d.createElement('div');                   // rendering slider
	slider.id = elemId + '_slider';
	slider.className = 'slider1';
    document.getElementById(elemId).appendChild(slider);

// 3 ABSOLUTE SLIDE SHIFT

	var sliderOffset = slider.offsetLeft;			// sliderOffset - absolute slide shift
	tmp = slider.offsetParent;		// left shift in pixels (doesn't work with IE)
	if(isIE)						// shift depending on DOM model
	{
       ;
    }else
    {	  while(tmp.tagName != 'BODY') {
		  sliderOffset += tmp.offsetLeft;		// locating it here
		  tmp = tmp.offsetParent;
	  }
    }

//змінні для фізики
     var letter1 = 98-btnWidth/2;  //position of the slide 1 center
     var center1 = 214-btnWidth/2;  //center between 2 slides
     var letter2 = 316-btnWidth/2;  //2
     var center2 = 430-btnWidth/2;
     var letter3 = 500-btnWidth/2; //3
     var center3 = 582-btnWidth/2;
     var letter4 = 684-btnWidth/2; //4
     var center4 = 788-btnWidth/2;
     var letter5 = 882-btnWidth/2; //5

     //позиції повзунка
     var posit_prev = limit;  //previous position of the indicator
     var posit_new;           //new position of the indicator
     var n=1;                //initial shift step
// 2 RENDERING ELEMENTS FOR THE SLIDER
	var btn = d.createElement('div');	// creating an indicator
	btn.id = elemId + '_btn';
	btn.className = 'button';
	slider.appendChild(btn); // adding it to the document

	btn.style.left = limit+'px';// setting an indicator to the null position
	btn.style.width = btnWidth+'px';
	btn.style.height = btnHeight+'px';
	slider.style.width = sliderWidth+'px';
	slider.style.height = sliderHeight+'px';

// 4 FUNCTIONS OF GETTING AND SETTING VALUES

	function setValue(x)	// setting by pixels
	{
		if(x < limit) btn.style.left = limit+'px';
		else if(x > sliderWidth-btnWidth-limit) btn.style.left = (sliderWidth-btnWidth-limit)+'px';
		else {
              btn.style.left = x+'px';

		}
		//d.getElementById('info').value = getValue();	//
	}
	function setValue2(x)	// setting by value
	{
		if(x < range1 || x > range2) alert('Невписуеться в діапазон!');
		else setValue((x-range1)*point);

		//d.getElementById('info').value = getValue();
	}

	function getValue()
	{return parseInt(btn.style.left);}

// 5 unveiling setValue2 and getValue funtions as class methods
	this.setValue = setValue;
	this.getValue = getValue;

//SLIDER INDICATOR PHYSICS
   function scrollnav()
   {
      n=n+2;
      if(positnew>posit_prev) // scrolling right
      {
        if ((parseInt(btn.style.left)+n)<positnew)
        {
        	setValue(parseInt(btn.style.left)+n);
            setTimeout('scrollnav()', t_nav);
        }else
          {
            setValue(positnew);
            physics(parseInt(btn.style.left));
          }
      }else
      if(positnew<posit_prev) // scrolling left
      {
        if ((parseInt(btn.style.left)-n)>positnew)
        {
        	setValue(parseInt(btn.style.left)-n);
            setTimeout('scrollnav()', t_nav);
        }else
          {
            setValue(positnew);
            physics(parseInt(btn.style.left));
          }
      }
   }

   function autoscroll(prev_x,x)
   {
      n=1;
      posit_prev = prev_x;
      positnew = x;
      setTimeout('scrollnav()', t_nav);
   }

   function physics(x)  //x - position of the indicator center
   {
	 if((x<center1))
	 {
		while( x > letter1 )
 		{
           x=x-1;
           setValue(x);
		 }
		 slider.className = 'slider1';
		 start_scroll(0);

     }else

	 if((x>=center1)&&(x<letter2))
	 {
		while( x < letter2 )
 		{
           x=x+1;
           setValue(x);
		 }
		 slider.className = 'slider2';
         start_scroll(1);
     }else
	 if((x>=letter2)&&(x<center2))
	 {
		while( x > letter2 )
 		{
           x=x-1;
           setValue(x);
		 }
		 slider.className = 'slider2';
         start_scroll(1);
     }else

	 if((x>=center2)&&(x<letter3))
	 {
		while( x < letter3 )
 		{
           x=x+1;
           setValue(x);
		 }
		 slider.className = 'slider3';
		 start_scroll(2);
     }else

	 if((x>=letter3)&&(x<center3))
	 {
		while( x > letter3 )
 		{
           x=x-1;
           setValue(x);
		 }
		 slider.className = 'slider3';
		 start_scroll(2);
     }else

	 if((x>=center3)&&(x<letter4))
	 {
		while( x < letter4 )
 		{
           x=x+1;
           setValue(x);
		 }
		 slider.className = 'slider4';
		 start_scroll(3);
     }else
	 if((x>=letter4)&&(x<center4))
	 {
		while( x > letter4 )
 		{
           x=x-1;
           setValue(x);
		 }
		 slider.className = 'slider4';
		 start_scroll(3);
     }else
	 if((x>=center4))
	 {
		while( x < letter5 )
 		{
           x=x+1;
           setValue(x);
		 }
		 slider.className = 'slider5';
		 start_scroll(4);
     }

   }

// 6 EVENTS LISTENERS

	function sliderClick(e) {
		var x;
		if(isIE) {
			if(event.srcElement != slider) return; //IE onclick bug
			x = event.offsetX - Math.round(btnWidth/2);
		}
		else x = e.pageX-sliderOffset-btnWidth/2;
		autoscroll(parseInt(btn.style.left),x);
	}

	function startCoord(e) {
		if(isIE) {
			offsX = event.clientX - parseInt(btn.style.left);
			slider.onmousemove = mov;
		}
		else {
			slider.addEventListener("mousemove", mov, true);
		}
	}

	function mov(e)	{
		var x;
		if(isIE) x = event.clientX-offsX;
		else x = e.pageX-sliderOffset-btnWidth/2;
		setValue(x);
	}

	function endCoord()	{
		if(isIE) slider.onmousemove = null;
		else slider.removeEventListener("mousemove", mov, true);
	}
    function endCoord_bt()	{
		var x;
		if(isIE) x = event.clientX-offsX;
		else x = e.pageX-sliderOffset-btnWidth/2;
		if(isIE) slider.onmousemove = null;
		else slider.removeEventListener("mousemove", mov, true);
		physics(x);
	}



// 7 ************************************************

	if(isIE)						// depending on the DOM model DOM
	{								// assigning events listeners
		btn.onmousedown = startCoord;
		slider.onclick = sliderClick;
		btn.onmouseup = endCoord_bt;
		slider.onmouseup = endCoord;
	}
	else {
		btn.addEventListener("mousedown", startCoord, true);
		slider.addEventListener("click", sliderClick, true);
		btn.addEventListener("mouseup", endCoord_bt, true);
		slider.addEventListener("mouseup", endCoord, true);
	}

//}

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//                            © GnS-Arts.com                                  //
//           Script designed specially for BayAreaPowerTeam.com               //
//                             Enjoy the show :-)                             //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////