var isRollDown = false;
var isLoaded = false;
var isAjax = false;
var prevShortcut = '';

$(document).ready(function() {

   var _GET = new parseURL();

   if (_GET['ms'] != undefined && _GET['ms'] == 'open') {
       __ms_Init();
   }

});

function parseURL()
{
      var str =window.location.search;
      if(parseURL.arguments.length == 1)
        str = parseURL.arguments[0];
      if(str.length > 2){
		var arr = str.substring(1).split('&');
		var key = '';
		var val = '';
		for(var part in arr)
		{
			key = arr[part].split('=')[0];
			val = unescape(arr[part].substring(key.length + 1));
			this[key] = val;
		}
	  }
}

function __ms_LoadRequest(sender)
{

    var index = sender.selectedIndex;
    var menu_id = sender.options[index].value;
    var host = $(sender).attr('host');
    var lang = $(sender).attr('lang');
    if (menu_id != 'null') {
        location.href = 'http://' + host + '/?lang=' + lang + '&menu=' + menu_id + '&ms=open';
    }

}

function __ms_SliderInit()
{
    $(document).ready(function() {
       $('.__ms_slider').each(function() {
       var min = parseFloat($(this).attr('min'));
       var max = parseFloat($(this).attr('max'));
       var step = parseFloat($(this).attr('step'));
       var id = $(this).attr('id');

       $(this).slider({
			orientation: "horizontal",
			range: true,
                        min: min,
                        max: max,
                        step: step,
                        values: [min, max],
			slide: function(event, ui) {
                            $("#"+id+"-from").val(ui.values[0]);
                            $("#"+id+"-to").val(ui.values[1]);
                             __ms_Breadcrumb();
			}
		});
                });
    });
}
/*
function __ms_Init() {

    var url = '/admin/modules/multisearch/multisearch-driver-front.php';

	if (!isRollDown) {
		$("#mseClient").show("fast");
                $(".__ms_breadcrumb").show('fast');
		isRollDown = true;
		isAjax = false;
		if (!isLoaded) {
		isAjax = true;
		var _GET = new parseURL();
			$.ajax({
				method: "get", 
                                url: url,
                                data: "action=createBoxLabels&menu_id="+_GET['menu']+'&lang='+_GET['lang'],
				beforeSend:	function() {
				$("#mseLoader").addClass("loading");},
				complete: function() {  $("#mseLoader").removeClass("loading");},
				success: function(html) {					
					var elem = document.getElementById("mseClient").innerHTML = html;					
					$("#menu_fld").css("display","none");
					$("#folder_grp").css("display","none");
					$("#mseLoader a").addClass("windowHide");
					$("#mseClient").show("fast");
					isLoaded = true;
					__ms_OnMouseEvent();
                                        __ms_SliderInit();
					}
			});
		}
		if (!isAjax) {
                    isRollDown = true;
                    $("#mseLoader a").addClass("windowHide");
		}
	} else {            
                $("#mseClient").css('display', 'none');
		$("#mseClient").hide("fast");
                $(".__ms_breadcrumb").hide('fast');
		$("#mseLoader a").removeClass("windowHide");
		isRollDown = false;
	}
}
*/

function __ms_Init() {
    $("#mseClient").html('');
    $("#mseClient").removeAttr('style');

    var url = '/admin/modules/multisearch/multisearch-driver-front.php';

	if (!isRollDown) {
		$("#mseClient").show("fast");
                $(".__ms_breadcrumb").show('fast');
		isRollDown = true;
		isAjax = false;
		//if (!isLoaded) {
		isAjax = true;
		var _GET = new parseURL();
			$.ajax({
				method: "get", 
                                url: url,
                                data: "action=createBoxLabels&menu_id="+_GET['menu']+'&lang='+_GET['lang'],
				beforeSend:	function() {
				$("#mseLoader").addClass("loading");},
				complete: function() {  $("#mseLoader").removeClass("loading");},
				success: function(html) {					
					var elem = document.getElementById("mseClient").innerHTML = html;					
					$("#menu_fld").css("display","none");
					$("#folder_grp").css("display","none");
					$("#mseLoader a").addClass("windowHide");
					$("#mseClient").show("fast");
                                        $("#mseClient").css('zoom', '0');
					//isLoaded = true;
					__ms_OnMouseEvent();
                                        __ms_SliderInit();
					}
			});
		//}
		if (!isAjax) {
                    isRollDown = true;
                    $("#mseLoader a").addClass("windowHide");
                    $("#mseClient").css('zoom', '0');
		}
	} else {            
                $("#mseClient").css('display', 'none');
		$("#mseClient").hide("fast");
                $(".__ms_breadcrumb").hide('fast');
		$("#mseLoader a").removeClass("windowHide");
                $("#mseClient").css('zoom', '0');
		isRollDown = false;
	}
        
}

function __ms_OnMouseEvent() {
	var boxSize = {};

	$("#mseContainer").find("div[class=box]").mouseover(function() {
		//$("#refresh").fadeOut("slow"); efekt migania
		var isAnimated = $(this).attr("animated");
		if (isAnimated != "yes") {
		prevShortcut = $(this).attr("id");
		var boxPos = $(this).position();
		boxSize.w = $(this).width();
		boxSize.h = $(this).height();
		var t = (boxPos.top + boxSize.w)-65;
		var l = (boxPos.left + boxSize.h)-10;
		$(this).find("a[class=refresh]").css("top",t+"px");
		$(this).find("a[class=refresh]").css("left",l+"px");
		$(this).find("a[class=refresh]").css("display","block");
		}
	});
	$("#mseContainer").find("div[class=box]").mouseout(function() {
		$(this).find("a[class=refresh]").css("display","block");
		$("#"+prevShortcut).find("a[class=refresh]").css("display","none");
	});
}

function __ms_Query(page)
{
    if (page == undefined) page = 1;

    var url = '/admin/modules/multisearch/multisearch-driver-front.php';
    var _GET = new parseURL();
    var sQuery = __ms_Collect('mseContainer');

    $("#mseLoader").addClass("loading");
    $("#searchEngine #result").html("");
    $("#searchEngine #result").addClass("load_result");

	$.post(url, {	"action": "queryBuild",
			"menu_id": _GET['menu'],
			"page": page,
			"lang": _GET['lang'],
			"query": escape(sQuery)
                    }, function(data) {
    			$("#mseLoader").removeClass("loading");
    			$("#searchEngine #result").removeClass("load_result");
    			$("#searchEngine #result").html(data);
    			$("#content").find("div[class=prodMenu]").css("display","none");
    			$("#content").find("ul[class=list2]").css("display","none");
  	});
}

function __ms_Breadcrumb() {

    var sCrumbs = '';

    $('#mseContainer input').each(function() {
        var sType = $(this).attr('type');
        switch (sType) {
                    case 'text':
                        if ($(this).hasClass('__ms_slider_input')) {
                            if (parseInt($(this).val()) != parseInt($(this).attr('min')) ) {
                                var text = $(this).attr('text');
                                var value = $(this).val();
                                sCrumbs = sCrumbs + '<div class="__ms_crumb">' + text + value + '</div>';
                            }
                        } else {
                            if ($(this).val() != '') {
                                var text = $(this).val();
                                sCrumbs = sCrumbs + '<div class="__ms_crumb">' + text + '</div>';
                            }
                        }
                        break;
                    case 'checkbox':
                        if (this.checked) {
                            var text = $(this).attr('text');
                            sCrumbs = sCrumbs + '<div class="__ms_crumb">' + text + '</div>';
                        }
                        break;
		}

    });
    $('.__ms_breadcrumb').html(sCrumbs);
}

function __ms_Collect(sLayerId)
{
	var objects = {};

	$('#'+sLayerId+' input').each(function() {
		var iBl = $(this).attr('bl');
                var iBlt = parseInt($(this).attr('blt'));
                var sVt = $(this).attr('vt');
                var sType = $(this).attr('type');

                switch (sType) {
                    case 'text':
                        if (this.value != '') {
                            if (iBlt == 0) {
                                if (objects[iBl] == undefined) objects[iBl] = new Array();
                                objects[iBl] = this.value;
                            } else if (iBlt == 3) {
                                if (objects[iBl] == undefined) objects[iBl] = {};
                                if (sVt != '' && objects[iBl][sVt] == undefined) objects[iBl][sVt] = {};
                                objects[iBl][sVt] = {value: this.value, range: $(this).attr(sVt)};
                            }
                        }
                        break;
                    case 'checkbox':
                        if (iBlt == 1 || iBlt == 2 || iBlt == 99) {
                            if (this.checked) {
                                if (objects[iBl] == undefined) objects[iBl] = new Array();
                                objects[iBl][objects[iBl].length] = this.value;
                            }
                        }
                        break;
		}
	});

        var json = JSON.stringify(objects, function (key, value) {
            if (typeof value === 'number' && !isFinite(value)) {
                return String(value);
            }
            return value;
        });
	return json;
}