/* scrollbar.js jason fong */ 

// gmail code
var isIE=(window.attachEvent && !window.opera);
var Ka=navigator.userAgent.toLowerCase();
var rt=Ka.indexOf("opera")!=-1;
var r=Ka.indexOf("msie")!=-1&&(document.all&&!rt);

function myAttachEvent(a,b,c){if(r){a.attachEvent("on"+b,c)}else{a.addEventListener(b,c,false)}}

/*
function getXCoord(el) {
	x = 0;

		x += el.offsetLeft;
	

	return x;
}


function getYCoord(el) {
	y = 0;

		y += el.offsetTop;


	return y;
}
*/


function funScr(value){
if(slider_current!=""){
	
	var win=document.getElementById(slider_current+'_win');
		scroll_pix=((win.scrollWidth-win.offsetWidth)/100);
		//document.title= (value*scroll_pix)+" "+value+" scrollWidth:"+win.scrollWidth+" x "+(win.offsetWidth) +" / "+win.scrollLeft;
	
	win.scrollLeft=(value*scroll_pix);
	}

}

function funCheckPos(e){
	var targ = e.srcElement ? e.srcElement : e.target;
	var targ_tag=targ.tagName.toLowerCase();
	var targ_className=targ.className.toLowerCase();
	var targ_html=targ.innerHTML.toLowerCase();
	alert(e.offsetX + " " +e.clientX); 	
	
}
/*
	menu_container_id:'menu_container',
	delay:700,
	obj:null,
	obj_slider:null,
	obj_bg:null,
	slider2_empty:null,
	max:100,
	min:0,
	
	delaytimer:null,
	*/
	
	
  function getLeft(obj){   
    if(isIE){   
         value = obj.style.pixelLeft;   
     }else{   
         value = parseInt(obj.style.left, 10);   
       }   
       return value;   
    }  


  function getTop(obj){   
    if(isIE){   
         value = obj.style.pixelTop;   
     }else{   
         value = parseInt(obj.style.top, 10);   
       }   
       return value;   
    }  



function slider(id,bg_width,min,max,limit_min,limit_max){
	var obj=$(id);
	var obj_slider;
	var obj_empty;
	var obj_bg;
	var obj_left_arrow;
	var obj_right_arrow;
	var slider_start_pixel;
	var slider_start_value;
	var obj_group;
	var obj_another;



	if(!$(id)){
		obj = document.createElement('div');
		obj.id = id;
		document.body.appendChild(obj);
	}else{
		obj = $(id);
	}		

				
	if(!$(obj.id+"_slider")){
		obj_slider = document.createElement('div');
		obj_slider.id = obj.id+"_slider";
		obj_slider.className = "slider_slider";
		obj.appendChild(obj_slider);
	}else{
		obj_slider =$(obj.id+"_slider");
	}
	
	if(!$(obj.id+"_empty")){
		obj_empty = document.createElement('div');
		obj_empty.id = obj.id+"_empty";
		obj_empty.className = "slider_empty";
		obj.appendChild(obj_empty);
	}else{
		obj_empty = $(obj.id+"_empty");
	}
			

	if(!$(obj.id+"_bg")){
		obj_bg = document.createElement('div');
		obj_bg.id = obj.id+"_bg";
		obj_bg.className = "slider_bg";
		obj.appendChild(obj_bg);
	}else{
		obj_bg = $(obj.id+"_bg");
	}	
	/*
	if(!$(obj.id+"_left_arrow")){
		obj_left_arrow = document.createElement('div');
		obj_left_arrow.id = obj.id+"_left_arrow";
		obj_left_arrow.className = "slider_left_arrow";
		obj.appendChild(obj_left_arrow);
	}else{
		obj_left_arrow = $(obj.id+"_left_arrow");
	}	
	
	if(!$(obj.id+"_right_arrow")){
		obj_right_arrow = document.createElement('div');
		obj_right_arrow.id = obj.id+"_right_arrow";
		obj_right_arrow.className = "slider_right_arrow";
		obj.appendChild(obj_right_arrow);
	}else{
		obj_right_arrow = $(obj.id+"_right_arrow");
	}	
	*/
	// ==============================
	if(!$(obj.id+"_min")){
		obj_min = document.createElement('div');
		obj_min.id = obj.id+"_min";
		obj_min.innerHTML = min;
		obj_min.style.display="none";
		obj.appendChild(obj_min);
	}else{
		obj_min = $(obj.id+"_min");
		min=parseFloat(obj_min.innerHTML);
		
	}	
	

	if(!$(obj.id+"_max")){
		obj_max = document.createElement('div');
		obj_max.id = obj.id+"_max";
		obj_max.innerHTML = max;
		obj_max.style.display="none";
		obj.appendChild(obj_max);
	}else{
		obj_max = $(obj.id+"_max");
		max=parseFloat(obj_max.innerHTML);
	}	
	
	if(max==undefined){
		max=100;
	}			
	if(min==undefined){
		min=0;
	}	
	
	obj_min.innerHTML = min;
	obj_max.innerHTML = max;
	// ==============================
	
	// ==============================
	if(!$(obj.id+"_limit_min")){
		obj_limit_min = document.createElement('div');
		obj_limit_min.id = obj.id+"_limit_min";
		obj_limit_min.innerHTML = limit_min;
		obj_limit_min.style.display="none";
		obj.appendChild(obj_limit_min);
	}else{
		obj_limit_min = $(obj.id+"_limit_min");
		limit_min=parseFloat(obj_limit_min.innerHTML);
		
	}	
	

	if(!$(obj.id+"_limit_max")){
		obj_limit_max = document.createElement('div');
		obj_limit_max.id = obj.id+"_limit_max";
		obj_limit_max.innerHTML = limit_max;
		obj_limit_max.style.display="none";
		obj.appendChild(obj_limit_max);
	}else{
		obj_limit_max = $(obj.id+"_limit_max");
		limit_max=parseFloat(obj_limit_max.innerHTML);
	}	
	
	if(limit_max==undefined){
		limit_max=max;
	}			
	if(limit_min==undefined){
		limit_min=min;
	}	
	
	obj_limit_min.innerHTML = limit_min;
	obj_limit_max.innerHTML = limit_max;
	// ==============================


	if(!$(obj.id+"_value")){
		obj_value = document.createElement('div');
		obj_value.id = obj.id+"_value";
		obj_value.style.display="none";
		obj.appendChild(obj_value);
		
	}else{
		obj_value = $(obj.id+"_value");
	}	
	
	
											
	if($(obj.id+"_another")){
		obj_another = $(obj.id+"_another");
	}		
		
	if($(obj.id+"_group")){
		obj_group = $(obj.id+"_group");
	}							
	
	if($(obj.id+"_value")){
		obj_value = $(obj.id+"_value");
	}			
	
	obj.style.position = 'relative';
	obj_slider.style.position = 'absolute';
	obj_empty.style.position = 'absolute';
	
		
	if(bg_width==undefined){
		bg_width=obj_bg.offsetWidth;
	}


	if(bg_width!=""){
			obj_bg.style.width=bg_width+"px";
	}else{
		bg_width=obj_bg.offsetWidth;
		
	}
	
	
	obj_empty.style.zIndex = "2";
	obj_empty.style.top=obj_slider.style.top;
	obj_empty.style.left=obj_slider.style.left;
	obj_empty.style.width=obj_slider.offsetWidth+"px";
	obj_empty.style.height=obj_slider.offsetHeight+"px";


	pixel_value=(bg_width-obj_slider.offsetWidth) /(max-min) ;
	
	value_pixel=(max-min)/(bg_width-obj_slider.offsetWidth) ;

/* for scroll bar */
	if($(obj.id+"_left_arrow")){
		obj_left_arrow = $(obj.id+"_left_arrow");
	}
	if($(obj.id+"_right_arrow")){
		obj_right_arrow = $(obj.id+"_right_arrow");
	}		
obj_left_arrow.style.cursor="pointer";
obj_right_arrow.style.cursor="pointer";
myAttachEvent(obj_left_arrow,'mousedown', funScrollLeft);
myAttachEvent(obj_right_arrow,'mousedown', funScrollRight);
myAttachEvent(obj_left_arrow,'mouseup', funClear);
myAttachEvent(obj_right_arrow,'mouseup', funClear);

/* */

myAttachEvent(obj_bg,'mousedown', funScrollTo);


	myAttachEvent(obj_empty,'mousedown', funSetSlider); 
	myAttachEvent(obj_empty,'mouseup', funUpdateSlider); 

	//myAttachEvent(obj_bg,'click', funClickUpdateSlider); 


	new Draggable(obj_empty, {
			 "handle":obj_empty ,
			 "starteffect":"",
			 "endeffect":"",
			 
			  onStart:function(){ startResize();  }, 
			  onDrag:function(){ performResize();   }, 
			  onEnd:function(){ stopResize(); } 
					  
			 }); 
			 
				 		
 		
	this.setvalue = function(value){
		/*alert(obj.id);	*/
		this.update(value);
	}
	
	
	this.update = function(value){
	
		if(value>=max){ value=max; }
		if(value<=min){ value=min; }

		
		
		if(limit_min<=max && value<=limit_min){ value=limit_min; }
		if(limit_max>=min && value>=limit_max){ value=limit_max;  }
		// min
		/*value=value-min;*/
		
		/*t(value+" " +pixel_value);*/
	
	

		obj_slider.style.left=((pixel_value*-min) +(pixel_value*value))+'px';

		//alert(obj_slider.style.left);

		obj_empty.style.left=obj_slider.style.left;
		
	
		obj_value.value=this.getvalue();
		funScr(this.getvalue());
		/*document.title="obj_slider "+obj_slider.id;*/
		
	}
		
		
	this.getvalue = function(){
		/*t(obj_slider.offsetLeft +" : " +(obj_slider.offsetWidth+1) +" : " +pixel_value);*/
		temp=min+( getLeft(obj_slider) / pixel_value);
		temp=Math.ceil(temp);
		
		if(temp>=max){ temp=max; }
		if(temp<=min){ temp=min; }
		/* parseInt(obj.style.left, 10);    */

		/*alert(obj_slider.offsetLeft);
		alert( pixel_value);*/
		/*alert( ( (obj_slider.offsetLeft-1) / pixel_value));*/
		// min
		/*temp=temp-min;*/
		/*if(isIE){
			temp=temp-10;
		}*/
		return temp;
	}
	this.getpixel_value= function(){
		return pixel_value;
	}	
	
	this.dragStart = function(){
	
		slider_start_pixel=getLeft(obj_empty) ;
		slider_start_value=this.getvalue();		

		/* (value_pixel*-min) + */

		if( $(obj.id+"_another") && $(obj.id+"_another").innerHTML!="" && $(obj.id+"_group").innerHTML!="" ){
		
			if(obj_group.innerHTML==1){

				limit_max=$(obj_another.innerHTML+"_value").value;
				obj_limit_max.innerHTML = limit_max;
			}else if(obj_group.innerHTML==2){
				limit_min=$(obj_another.innerHTML+"_value").value;
				obj_limit_min.innerHTML = limit_min;
			}
			
		}	
				
	}	
	

	this.dragUpdate = function(){
	
		/*document.title=$(slider_current+'_empty').offsetLeft;*/
		/*t(obj_empty.id+"  "+getLeft(obj_empty) + "x "+slider_start_value);
	*/
	

	/* limit_min*/
	
		pixel_diff=getLeft(obj_empty) -slider_start_pixel;
		//document.title=this.getvalue()+" "+pixel_diff+" "+value_pixel + " "+(pixel_diff*value_pixel);
		//document.title=getLeft(obj_empty) +": "+slider_start_pixel+": "+(pixel_diff*value_pixel);
		
		/*t(slider_start_value + "  "+(pixel_diff*value_pixel) );*/
		/*t(getLeft(obj_empty)+":"+getLeft(obj_empty)  +" : "+obj_empty.offsetWidth+ ": "+((slider_start_value+pixel_diff*value_pixel)));*/
	
		this.update( slider_start_value+(pixel_diff*value_pixel));
	
		/*this.setvalue();*/
		/*obj_slider.style.left=(pixel_diff*value_pixel)+'px';*/
		
	}	


	this.dragEnd = function(){
		obj_empty.style.top=obj_slider.style.top;
		obj_empty.style.left=obj_slider.style.left;
		
	}	
	
	this.setgroup = function(another,value){

			// ==============================
		if(!$(obj.id+"_group")){
			obj_group = document.createElement('div');
			obj_group.id = obj.id+"_group";
			obj_group.innerHTML = value;
			obj_group.style.display="none";
			obj.appendChild(obj_group);
		}else{
			obj_group = $(obj.id+"_group");		
		}	
		
		if(!$(obj.id+"_another")){
			obj_another = document.createElement('div');
			obj_another.id = obj.id+"_another";
			obj_another.innerHTML = another;
			obj_another.style.display="none";
			obj.appendChild(obj_another);
		}else{
			obj_another = $(obj.id+"_another");		
		}	
	
				
		return false;
	}	
	
	this.getid = function(){
		return obj.id;
	}
		

}


function t(xx){
document.title=xx;
}

var slider_current="";
var oTemp;
var timer=null;
var timer_speed=15;
var scroll_amount=1; // percentage

funClear = function(e){

	if(timer){

		window.clearInterval(timer);
		timer=null;
	}

	return false;
}



funScrollLoop= function(){	
	oTemp = new slider(slider_current);
	var new_value=oTemp.getvalue()+scroll_amount;
	//alert(new_value);
	oTemp.setvalue(new_value);
	timer=window.setTimeout("funScrollLoop()",timer_speed);
  
}


/* =============== */
function getOffset(evt)
{
  var target = evt.target;
  if (target.offsetLeft == undefined)
  {
    target = target.parentNode;
  }
  var pageCoord = getPageCoord(target);
  var eventCoord =
  {
    x: window.pageXOffset + evt.clientX,
    y: window.pageYOffset + evt.clientY
  };
  var offset =
  {
    offsetX: eventCoord.x - pageCoord.x,
    offsetY: eventCoord.y - pageCoord.y
  };
  return offset;
}

	
	function getPageCoord(element)
{
  var coord = {x: 0, y: 0};
  while (element)
  {
    coord.x += element.offsetLeft;
    coord.y += element.offsetTop;
    element = element.offsetParent;
  }
  return coord;
}

var mouse_offsetX=0;
var mouse_offsetY=0;
function getEventOffset(evt)
{
  var msg = "";
  if (evt.offsetX == undefined)
  {
    var evtOffsets = getOffset(evt);
    msg += "offsetX: " + evtOffsets.offsetX + "; ";
    msg += "offsetY: " + evtOffsets.offsetY + "; ";
    
    mouse_offsetX=evtOffsets.offsetX;
	mouse_offsetY=evtOffsets.offsetY;
  }
  else
  {
    msg += "offsetX: " + evt.offsetX + "; ";
    msg += "offsetY: " + evt.offsetY + "; ";
    
    mouse_offsetX=evt.offsetX;
	mouse_offsetY=evt.offsetY;
  }


  return msg;
}

/* =============== */
funScrollTo = function(e){
	var targ = e.srcElement ? e.srcElement : e.target;
	slider_current=((targ.id).split("_")[0]);
	
	oTemp = new slider(slider_current);
	
	getEventOffset(e);

	
	var new_value=Math.round((mouse_offsetX-($(slider_current+"_slider").offsetWidth/2))  /oTemp.getpixel_value());


	oTemp.setvalue(new_value);

	
	
	/*if(scroll_amount>0){
		scroll_amount=-(scroll_amount);
	}

	if(timer==null){
	timer=window.setTimeout("funScrollLoop()", timer_speed);
	}*/



	return false;
}

	
funScrollLeft = function(e){
	var targ = e.srcElement ? e.srcElement : e.target;
	slider_current=((targ.id).split("_")[0]);
	if(scroll_amount>0){
		scroll_amount=-(scroll_amount);
	}

	if(timer==null){
	timer=window.setTimeout("funScrollLoop()", timer_speed);
	}

	return false;
}


funScrollRight = function(e){
	var targ = e.srcElement ? e.srcElement : e.target;
	slider_current=((targ.id).split("_")[0]);
	if(scroll_amount<0){
		scroll_amount=-(scroll_amount);
	}
	if(timer==null){
	timer=window.setTimeout("funScrollLoop()", timer_speed);
	}

	return false;
}






funSetSlider = function(e){
	/*alert("xx");*/
	var targ = e.srcElement ? e.srcElement : e.target;
	slider_current=((targ.id).split("_")[0]);
	
	/*slider_start=$(slider_current+'_empty').offsetLeft;
	
	*/
	oTemp = new slider(slider_current);
	oTemp.dragStart();
	
	return false;
}


funUpdateSlider = function(e){
	/*alert("xx");*/
	var targ = e.srcElement ? e.srcElement : e.target;
	/*document.title="pixel_diff "+(pixel_diff);*/
	return false;
}

funClickUpdateSlider = function(e){

	

	var targ = e.srcElement ? e.srcElement : e.target;
	slider_current=(targ.id).replace('_empty','');
	/*document.title="pixel_diff "+(pixel_diff);*/
	
	oTemp = new slider(slider_current);
	//oTemp.dragStart();
	
	
	//var targ = e.srcElement ? e.srcElement : e.target;
	var targ_tag=targ.tagName.toLowerCase();
	var targ_className=targ.className.toLowerCase();
	var targ_html=targ.innerHTML.toLowerCase();
	alert(e.offsetX + " " +e.clientX); 
	
	
	//oTemp.setvalue(50);
	
	//return false;
}

startResize = function(){
}

stopResize = function(){	
oTemp.dragEnd();
}


performResize = function(){

	/*pixel_diff=$(slider_current+'_empty').offsetLeft-slider_start;*/
	
/*		document.title=" xx "+slider_current+" new"+$(slider_current+'_empty').offsetLeft+": "+": slider_start="+slider_start+": pixel_diff"+pixel_diff;
*/



	
	oTemp.dragUpdate();
	/*oTemp.setvalue(pixel_diff);*/
	/*oTemp.setvalue(pixel_diff);*/

	/*oSlider1.setvalue(100);*/
	
}



myAttachEvent(window,'load', init);
