Slider = function(mode,obj,proc,limit){this.init(mode,obj,proc,limit);}
var s = Slider.prototype;

s.init = function(mode,obj,proc,limit){
	if (!arguments.length || !document.forms[obj+"Form"]) return;

  if(!document.forms[obj + "Form"]) return;
  this.num_per_page = 8;
	this.mode = mode;
	this.obj = obj;
	this.proc = proc;
	this.height = $(this.obj+'Wrapper').offsetHeight;
	this.width = $(this.obj+'Wrapper').offsetWidth;
	this.limit = limit;
	this.params = "";
	this.slider = document.forms[this.obj+"Form"].slider.value;
	this.div = this.mode == "wait" ? 1 : 0 ;
  this.p = document.forms[this.obj + "Form"].p.value;
	this.loadSlider();
	document.forms[this.obj+"Form"].pageNum.value = 1; //firefox fix
  document.forms["pictureForm"].photo_id.value = 0;

	
}

s.loadSlider = function(mode){
		this.mode = mode ? mode : this.mode ;
    this.nav = this.obj=="thumbnails" ? true:false;

    if(this.mode == "new"){
      this.pageNum = 0;
    }else{
      this.pageNum = parseInt(document.forms[this.obj+"Form"].pageNum.value);
    }
    if(document.forms[this.obj+"Form"].photo_id) this.photo_id = document.forms[this.obj+"Form"].photo_id.value;

    this.category = parseInt(document.forms[this.obj+"Form"].category.value);

		if (this.mode == "next") {
			document.forms[this.obj+"Form"].pageNum.value = this.pageNum + 1;
  
      if(document.forms[this.obj+"Form"].photo_id) document.forms[this.obj+"Form"].photo_id.value = this.photo_id;
		} else if (this.mode == "prev") {

			document.forms[this.obj+"Form"].pageNum.value = this.pageNum - 1;
		} else {
			document.forms[this.obj+"Form"].pageNum.value = 0;
		}
		

    if(this.nav){
      if(this.mode == "next"){
        this.p = this.p + this.num_per_page;
      }else if (this.mode == "prev"){
        this.p = this.p - this.num_per_page;
      }else{
        this.p = 0;
      }
    }

//alert("mode: " + this.mode + " - obj: " + this.obj);
    if(this.nav){  
//alert('thumb');

      if (this.mode != "wait") { 
        this.params = Form.serialize(this.obj+"Form")+"&limit="+this.limit+"&mode="+this.mode;
				m = this.mode;
        Element.show(this.obj+'Loader');
        new Ajax.Updater(this.obj+'Results'+this.div, this.proc + '/C' + this.category + '/P' + (this.p), {asynchronous:true, evalScripts:true, onLoading:function(){}, onComplete:function(){set_photo(m, this.obj)}, parameters:this.params})	
      } else {Element.hide(this.obj+'Loader');}
    }else{
      if (this.mode != "wait") {
        //alert(this.proc  +'/1');
        this.params = Form.serialize(this.obj+"Form")+"&limit="+this.limit+"&mode="+this.mode;
        Element.show(this.obj+'Loader');
        new Ajax.Updater(this.obj+'Results'+this.div, this.proc + '/C' + this.category + '/1', {asynchronous:true, evalScripts:true, onLoading:function(){}, onComplete:function(){}, parameters:this.params})	
      } else {Element.hide(this.obj+'Loader');}
    }

}

s.completeSlider = function(maxpage,textLabel,num_results) {
	Element.hide(this.obj+'Loader');
	Element.show(this.obj+'Results'+this.div);

  factor = 70;
  
  if(this.obj=="thumbnails"){
    modifier = (num_results) ? ((710 - (num_results * factor)) / 2) - 240 : 0;

	   this.handleButtons(maxpage);
	  if (this.mode != "new") {
    
		  startPoint = this.mode == "prev" ? -this.width : this.width;
		  endPoint = this.mode == "prev" ? this.width : -this.width;

    
		  var t0 = new Tween($(this.obj+'Results'+this.div).style,'left',Tween.regularEaseOut,startPoint,0 + modifier,1,'px');


		  this.div = this.div == 1 ? 0 : 1;
		  var t1 = new Tween($(this.obj+'Results'+this.div).style,'left',Tween.regularEaseOut,0 + modifier,endPoint,1,'px');
		  t0.start();
		  t1.start();
	 } else {

	   this.handleButtons(maxpage);


		  $(this.obj+'Results'+this.div).style.left = modifier + 'px';
      //alert(this.obj + 'Results' + this.div)
		  this.div = this.div == 1 ? 0 : 1;
		  $(this.obj+'Results'+this.div).style.left = -this.width;
		  $(this.obj+'Results'+this.div).innerHTML = "";
	 }

  }else{
	   this.handleButtons(maxpage);

    if (this.mode != "new") {
    /*
		  startPoint = this.mode == "prev" ? -this.width : this.width;
		  endPoint = this.mode == "prev" ? this.width : -this.width;

    
		  var t0 = new Tween($(this.obj+'Results'+this.div).style,'left',Tween.regularEaseOut,startPoint,0,1,'px');


		  this.div = this.div == 1 ? 0 : 1;
		  var t1 = new Tween($(this.obj+'Results'+this.div).style,'left',Tween.regularEaseOut,0,endPoint,1,'px');
		  t0.start();
		  t1.start();*/

	 } else {
		  $(this.obj+'Results'+this.div).style.left = modifier + 'px';
      //alert(this.obj + 'Results' + this.div)
		  this.div = this.div == 1 ? 0 : 1;
		  $(this.obj+'Results'+this.div).style.left = -this.width;
		  $(this.obj+'Results'+this.div).innerHTML = "";
	 }









  }


	if ($(this.obj+'TotalCount0')) {$(this.obj+'TotalCount0').innerHTML = textLabel;}
	if ($(this.obj+'TotalCount1')) {$(this.obj+'TotalCount1').innerHTML = textLabel;}
}

s.handleButtons = function(maxpage) {
	if(this.obj == 'picture') {
		$('pictureNextButton0').style.visibility = document.forms['thumbnailsForm'].pageNum.value == maxpage ? "visible" : "visible";
		$('picturePrevButton0').style.visibility = document.forms['thumbnailsForm'].pageNum.value > 1 ? "visible" : "hidden";
		
		$('picturePrevButton0').style.visibility = document.forms['pictureForm'].photo_id.value > 0 ? "visible" : "hidden";
//alert(first);
	//	if(first > 0) {
			
	//	$('picturePrevButton0').style.visibility =  "hidden";
	//	} else {
		$('picturePrevButton0').style.visibility =  "visible";


		//}

	} else {

		if ($(this.obj+'PrevButton0')) {$(this.obj+'PrevButton0').style.visibility = document.forms[this.obj+"Form"].pageNum.value > 1 ? "visible" : "hidden" ;}
		if ($(this.obj+'PrevButton1')) {$(this.obj+'PrevButton1').style.visibility = document.forms[this.obj+"Form"].pageNum.value > 1 ? "visible" : "hidden" ;}
		if ($(this.obj+'NextButton0')) {$(this.obj+'NextButton0').style.visibility = document.forms[this.obj+"Form"].pageNum.value < maxpage? "visible" : "hidden" ;}
		if ($(this.obj+'NextButton1')) {$(this.obj+'NextButton1').style.visibility = document.forms[this.obj+"Form"].pageNum.value < maxpage ? "visible" : "hidden" ;}
	}
}








