/*
 * Плагин создания слайдеров
 * 2011, Бронников Саша (alexandr.brn@gmail.com)
*/
jQuery.fn.addSlide = function(options){

        var options = jQuery.extend({
                        slId : "sl1",
                        value : 50,
                        start : 10,
                        stop : 500,
                        min : options.start,
                        classSlide : "",
                        classStep : "tenthousands_number",
                        width : 701,
                        step : 25,
                        label : "",
                        before_input : "",
                        after_input: "руб.",
                        label_step : 0,
                        help_link : "",
                        help_link_text : '',
                        group : 2,
                        step_wide : false,
                        step_array : "",
                        calculate : false,
                        complete: function(){}
//                      cl: function(){
//
//                      }
        },options);

        //create html element
        var label_step = " "

        if(options.label_step != 0){

                var count_label_step =  Math.ceil((options.stop-options.start)/options.label_step); // колличество шагов
                var count_step =  Math.ceil(options.width/count_label_step); // ширина шага
                var test = 0;

                label_step = "<table class='slider_ruler "+options.classStep+"'><tr>"
/*
                for(var i=0;i<options.stop+1;i+=options.label_step){

						test = (i/options.stop)*100;
                        test = ((options.width*test)/100)+116;
                        label_step += "<div style='left:"+test+"px'>"+(i+options.start)+"</div>";

				}
*/
				var step_width = Math.ceil(options.width/count_label_step);
				//alert(step_width);
				
					
					for(var i=0;i<count_label_step+1;i++){
						
						test =  Math.ceil((count_step*i)+116);
							
						label_step += "<td>"+Math.ceil((options.label_step*i)+options.start)+"</td>";
							
					}
					
			

                label_step += "</table>";

        }
	
	
        var label = "";
        
        if(options.label != ''){
    	    label = "<div class='label_slider'>"+options.label+"</div>";
        }
        
        var help = " ";
	if(options.help_link != ''){
	    help = "<div class='help_link' id='help_link_"+options.help_link+options.slId+"'><a href='#' class='help_href' src='"+options.help_link+options.slId+"' >"+options.help_link_text+"</a><div class='helpw' id=\"helpw_"+options.help_link+options.slId+"\" style=\"display: none;\"><div id=\"helpt\"><div id=\"helptl\"></div><div id=\"helptr\"></div></div><div id=\"helpcontw\"><div id=\"helpcontl\"><div id=\"helpcontr\"><i class=\"hclose_button\"><a class=\"help_href\" id=\"btn2\" href=\"#\"> </a></i><div id=\"htext\"><h2>Помощь</h2><p>Текст</p></div><div class=\"clear\"></div></div></div></div><div id=\"helpbot\"><div id=\"helpbotl\"></div><div id=\"helpbotr\"></div></div>";
	}

        var sl  = "<div class='"+options.classSlide+"' style='width:"+options.width+"px'><div class='inner_slider'  id='"+options.slId+"' style='width:"+options.width+"px'></div> "+help+"</div><div class=\"clear\"></div>";
        
        var input = "<div class='before_input'>"+options.before_input+"</div><div><input type='text' onkeyup='clickSlider(\""+options.slId+"\", "+options.min+", \""+options.stop+"\", "+options.group+")' value='"+options.value+"'></div><div class='after_input'>"+options.after_input+"</div>";
        var procent = 0;

        $('.slider_'+options.group).append(label);
        $('.slider_'+options.group).append(label_step);
        $('.slider_'+options.group).append(sl);
        $('.slider_'+options.group).append("</div>");

var slider =  $('#'+options.slId).slider({
                        value : options.value,
                        min : options.start,
                        max : options.stop,
                        step : options.step,
						animate: true,

                         slide: function(event, ui) {

                                $('#'+options.slId+' input').val(ui.value);

                                if(options.calculate == true){
                                        calculateSl(options.group);
                                }

                                if(options.step_wide == true){
                                    for(var key in options.step_array){
                                        var data = options.step_array[key];

                                        if(ui.value <= key){
                                            $(this).slider({step:data});        
                                            break;
                                        }
                                    }
                                }
                                if(ui.value < options.min){
                            	    $('#'+options.slId+' input').val(options.min);
                            	    $(this).slider({step:data});   
                                }
                        },

                        stop: function(event, ui) {

                                 $('#'+options.slId+' input').val(ui.value);
								 
                            if(ui.value<options.min){
                                 procent = Math.floor((100/options.stop)*options.min);
                                 $('#'+options.slId).children().css({'left' : procent+"%"});
                                 $('#'+options.slId+' input').val(options.min);
//                               alert(procent);
                            }
                            else{
                                    $('#'+options.slId+' input').val(ui.value);
                            }
                            
                            options.complete();

                                if(options.calculate == true){
                                        calculateSl(options.group);
                                }
                        }
        }).stop();

        $('#'+options.slId).children().append(input);
        
        if(options.help_link != ''){
        
//        $(document).ready(function(){


        
        }
		//slider.keyup(function(){});
		//slider.keyup(function(){slider.val(slider.val().replace(/[^0-9]/g,""))});
//       calculateSl(options.group);
};

//Калькулятор
jQuery.fn.calculateSlide = function(options){
                var options = jQuery.extend({
                                        slide_array : "",
                                        append_id : "0",
                                        slide_function : "",
                                        label_profit : "",
                                        class_profit : "",
                                        count : 1,
                                        group : 0,
                                        shared_calculate : "",
					typeCalculate : "simple",
					prefix : "",
					other : ""
                                        },options);

if(options.append_id != 0){

		//alert(options.append_id);
                var result = options.slide_function;

                for(var i in options.slide_array){
                        result = result.replace(new RegExp(options.slide_array[i],'g'),$('#'+options.slide_array[i]+' input').val());
                }
		//alert(result);
        summ = eval(result);
        sumLabel = Math.floor(eval(result));
		
        var label = " ";
        var count = " ";
		
		if(options.typeCalculate == 'progress'){
 			label = "<div><p class='label_profit'>"+options.label_profit+"</p>"
			count = "<div id='bar_"+options.group+"' class='bar'><em class='profit' id='profit_"+options.group+"'><b><u></u></b></em><i class='prfit'><span id='profitSum"+options.append_id+"'></span> руб.</i></div></div>";
		}

		if(options.typeCalculate == 'simple'){
			count = "<div id='bar_"+options.group+"' class='ar'><div ><h3>"+options.label_profit+"<span id='profitSum"+options.append_id+"'></span> "+options.prefix+"</h3></div></div>";
		}
		
		
        if(!$('#bar_'+options.group).html()){
                $('#'+options.append_id).append(label+count);
        }

        if(options.countS <= summ){
                summ = 700;
        }
        else{
                summ = (100*summ)/options.countS;
                summ = Math.floor((700*summ)/100);
        }

		$('#profitSum'+options.append_id).html(sumLabel);
		
		if(options.typeCalculate == 'progress'){
				$('#profit_'+options.group).stop().animate({
					width: Math.floor(summ)
				});
		}
	}
	
	
	if(options.other != ""){	
	    $('#other_'+options.group).html(eval(options.other));
	}
	
	if(options.shared_calculate != ""){
	
	    var shared =  options.shared_calculate.split(",");
	    
	    for(var key in shared){
	    
		if(shared[key] != ''){
	    	    calculateSl(shared[key]);
		}
	    }    
	}
}

function clickSlider(id, min, stop, group){
	
	var sliderInput = $('#'+id+' input');
	var slider = $('#'+id+'');
	var result = 0;
	if(sliderInput.val().charAt(0) == "0"){
		sliderInput.val(sliderInput.val().substr(1));
	}
	//sliderInput.val(sliderInput.val().charAt(0).toUpperCase() + sliderInput.val().substr(1))
	result = sliderInput.val();
	if((!isNaN(parseFloat(result))) || (!isNaN(parseInt(result)))){
	
		if(sliderInput.val() >= min){
			slider.slider({value : sliderInput.val(), animate : true});
		}
		
		if(sliderInput.val() <= eval(stop)){
			slider.slider({value : sliderInput.val(), animate : true});
			
		}
		else{
			sliderInput.val(stop);
		}
		
		if(sliderInput.val() <= 0){
		    slider.slider({value : 0});
		    sliderInput.val(0);
		}
	}
	else{
	
		var grg  = sliderInput.val();
		//result = result.replace(new RegExp(options.slide_array[i],'g'),$('#'+options.slide_array[i]+' input').val());
		//sliderInput.val(grg.replace(/[^0-9.]/g,""));
		sliderInput.val(grg.replace(/[^0-9.]/g,""));
	}
	
	if(sliderInput.val() == ''){
		sliderInput.val(min);
	}
	
	calculateSl(group);
}



