    $(document).ready(function(){
	$("button, .button").button();
	
	$(".icon_box").hover(
	function(){
	     $(this).toggleClass('ui-state-hover');
	},
	function(){
	     $(this).toggleClass('ui-state-hover');
	});

	$(".icon_box").mousedown(function(){
	     $(this).toggleClass('ui-state-active');
	});
	$(".icon_box").mouseup(function(){
	   $(this).removeClass('ui-state-active');
	}).mousedown(function(){
	   $(this).addClass('ui-state-active');
	});
    });
function initEditor(element,lang){
    var config = {
            language: lang
    };

    // Callback function can be passed and executed after full instance creation.
    $(element).ckeditor(config);
}

function doRemoveTooltip(field, message) {
	if ($("#"+field.id).data("watooltip") != null && field != null && typeof $("#"+field.id).data("watooltip").init == "function") {
		//$("#"+field.id).data('watooltip').remove();
	}
}
function doTooltip(field, message, help_bubble_options) {
	if(message != null && field != null) {
		if ($("#"+field.id).data("watooltip") != null) {
			$("#"+field.id).data('watooltip').remove();
		}
		$("#"+field.id).watooltip({
		   title: message,
		   show: true,
		   style: 'red',
		   position: (help_bubble_options.position != undefined) ? help_bubble_options.position : 'right',
		   width: (help_bubble_options.width != undefined) ? help_bubble_options.width : '200',
		   arrow_color: '#b32929',
		   tooltip_class: "ui-corner-all"
		})
	}
}
function addTooltipsToField(field, field_options) {
	var options = {
	   trigger: "focus",
	   style: 'white',
	   position: 'right',
	   tooltip_class: "ui-corner-all"
	};
	options.position =	(field_options.position)	? field_options.position	: "right";
	options.width	 =	(field_options.width)		? field_options.width		: "200";
	field.watooltip(options);
}
function addTooltipsToFields(selector) {
	$(document).ready(function(){
		$(selector).watooltip({
		   trigger: "focus",
		   style: 'white',
		   position: 'right',
		   tooltip_class: "ui-corner-all"
		})
	});
}
function createManufacturerSelectList() {
	// Ajax in my manufacturers
	$.ajax({
		url: "/desk/ajax?action=get_my_manufacturers",
		dataType: "json",
		success: function(result) {
			if(result.status == true) {
				if(result.length > 0) {
					var manufacturer_div = "<div id='manufacturer_list_holder' class='ui-corner-bottom'>";
					for(var i in result.manufacturers) {
						if(i == XPOS_NAME) {continue;}
						manufacturer_div += "<div onclick=\"gotoManufacturer('"+i+"');\">"+result.manufacturers[i]+"</div>";
					}
					manufacturer_div += "</div>";
					$("#manufacturer_selector").append(manufacturer_div);
					// Bind onclick/onhover
					$("#manufacturer_selector").click(function(){
						$("#manufacturer_list_holder").fadeToggle('fast');
					});
				}
			}
		}
	})
	// Create HTML and fill it
}
function gotoManufacturer(id) {
	document.location = 'http://'+id+'.xpos3.local';
}
var state_messages = 0;
var state_growl_position = 0;
var state_messages_array = new Array();
/**
 * Data = message
 * Level = 0:Alert 1:
 */
function state_message(data,level,duration,growl){
	state_messages++;
	var state_id = state_messages;
    var newClass = "";
	var growl_class = (growl == true) ? " growl" : "";
	state_growl_position += 20;
	var stateElement = $('<div id="state_message_'+state_id+'" class="ui-widget state_message'+growl_class+'"><div class="ui-corner-all"><p><span class="ui-icon icon_left"></span></p></div></div>');
    stateElement.css('top', state_growl_position+"px");
	
    if(data == "" || data == undefined){
        data = "message";
    }
    if(level == "" || level == undefined){
        level = 0;
    }
    if(duration == "" || duration == undefined){
        duration = 0;
    }
    level = (level*1);
    switch(level){
        case 0:
            newClass = "ui-state-error";
            $("div .ui-icon",stateElement).addClass("ui-icon-alert");
            break;
        case 1:
            newClass = "ui-state-ok"
            
            $("div .ui-icon", stateElement).addClass("ui-icon-circle-check");
            break;
        case 2:
            newClass = "ui-state-active";
            $("div .ui-icon", stateElement).addClass("ui-icon-info");
            break;
        default:
            newClass = "ui-state-default"
            $("div .ui-icon", stateElement).removeClass().addClass("ui-icon");
            break;
    }
	$("div p", stateElement).append(data);
	$("div", stateElement).addClass(newClass);
	$('#state_holder').append(stateElement);
	if(growl == true) {
		state_growl_position += stateElement.outerHeight();
	}
	state_messages_array[$(stateElement).attr('id')] = $(stateElement);
    $(stateElement).fadeIn("fast");

	if(growl == undefined || growl != true) {
		$('html, body').animate({scrollTop:0}, 'fast');
	}

    if(duration != 0){
          setTimeout(function(){
			if($(stateElement).hasClass('growl')) {
				var remove_height = $(stateElement).outerHeight()+20;
				state_growl_position -= remove_height;
				var move = false;
				for(var i in state_messages_array) {
					if(i == $(stateElement).attr('id')) {
						move = true;
					}
					if(move == true) {
						var top = String($("#"+i).css('top')).replace("px", "")*1;
						$("#"+i).animate({'top': (top-remove_height)+'px'}, 200);
					}
				}
				delete state_messages_array[$(stateElement).attr('id')];
			}
            $(stateElement).fadeOut("fast",function(){
				$(stateElement).remove();
            });
        },duration);
    }
}
function clearAllStates() {
	for(var i in state_messages_array) {
		state_messages_array[i].remove();
	}
}

function showLoading(use_timer) {
	if(use_timer == undefined) {
		var use_timer = true;
	}

	$("#loading_timer_alert").hide();
	$("#loading_timer_error_alert").hide();
	$("#loading_dialog").dialog({modal: true, height: "60", width: "320", closeOnEscape: false, open: function(event, ui) {$("div[aria-labelledby=\"ui-dialog-title-loading_dialog\"] .ui-dialog-titlebar-close").hide();}});

	if(use_timer) {
		startLoadingTimer();
	}
}

function hideLoading() {
    $("#loading_dialog").dialog("close");
	stopLoadingTimer();
}

var loading_timer = 0;
var loading_timer_interval = null;
var alerted = false;
var error_alerted = false;
function startLoadingTimer() {
	alerted = false;
	error_alerted = false;
	loading_timer = 0;
	loading_timer_interval = setInterval(function() {
		loading_timer++;
		if(!alerted && loading_timer > 30) {
			alerted = true;
			$("#loading_dialog").animate({
					height: "+=37"
				}, 500, function() {
				$("#loading_timer_alert").show();
			});
		}
		if(!error_alerted && loading_timer > 120) {
			error_alerted = true;
			$("#loading_dialog").animate({
					height: "+=67"
				}, 500, function() {
				$("#loading_timer_error_alert").show();
			});
		}
	}, 1000);
}

function stopLoadingTimer() {
	clearInterval(loading_timer_interval);
}
