var new_files_checker_interval;
var pre_approval_checker_interval;

$(document).ready(function(){
	$("div.tabs").tabs();
	$(".button:not(.icon):not(.bulma)").button();
	$("#tabs").tabs();
	$(".accordion").accordion({
		autoHeight: false,
		navigation: true
	});
	$('textarea.autoresize').autoResize();
	$('textarea.autoresize').keypress(function(e){
		if (e.keyCode == 13) {
			e.preventDefault();
			this.value = this.value.substring(0, this.selectionStart) + "" + "\n" + this.value.substring(this.selectionEnd, this.value.length);
		}
	});

	$(".xpos_login_form").submit(function() {
		return true;
	});
	$('#login_password').keydown( function(e) {
        var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
        if(key == 13) {
            $("#login_window_submit_button").click();
        }
    });
});
function reloadList(){
	// As this is the first javascript file that loads
	// this function acts as a placeholder in the case the reloadList function doesn't exist in any other files.
	// It's to avoid javascript error when changing claim status through the claim pop-up.
	return true;
}
function launchPopup(page,callback){
	var dialog_options = [];
	$.ajax({
		url: "/desk/ajax",
		dataType: "json",
		data: {
			action: "launch_popup",
            page: page
		},
		success: function(jsonData){
			var i;
			if(jsonData.length <= 0 && typeof callback == 'function'){
				callback();
			}
			for(i=0;i<jsonData.length;i++){

                $("<div></div>").attr("id","popup_dialog_" + jsonData[i].popup_id).data('popup_id',jsonData[i].popup_id).insertAfter("#popup_dialog");

				if(jsonData[i].open == true){
					var options = {
						modal: true,
						width: "auto",
						title: jsonData[i].title,
						text: jsonData[i].text
					};

					if(jsonData[i].needsValidation == "1") {
                        options.closeOnEscape = jsonData[i].closeOnEscape;
						options.open = function(event, ui) {
							$(".ui-dialog-titlebar-close", ui.dialog | ui).hide();
						};
						var buttons = [];
						var acceptButton = {
							text: "Ok",
							click: function(event) {
								popup_id = $(this).data('popup_id');
								validateUsername(popup_id,function(result) {
									if(result === true){
                                        $("#popup_dialog_" + popup_id).dialog("close");
                                        if(typeof callback === 'function'){
                                            callback();
                                        }
									}else{
										alert('Please enter your username.');
									}
								});
							}};
						buttons.push(acceptButton);
						options.buttons = buttons;
					}else{
                        var buttons = [];
                        var acceptButton = {
                            text: "Ok",
                            click: function(event) {
                                popup_id = $(this).data('popup_id');
								$("#popup_dialog_" + popup_id).dialog("close");
								if(typeof callback === 'function'){
                                    callback();
								}
                            }};
                        buttons.push(acceptButton);
                        options.buttons = buttons;
					}
					// dialog_options.push(options);
				}
                $("#popup_dialog_" + jsonData[i].popup_id).html(options.text).dialog(options);
			}
		}
	});
}

function validateUsername(popupid,callback){
	var username = $('#username_validation').val();

    $.ajax({
        url: "/desk/ajax",
        data: {
            action: "validate_username",
            username: username,
            popupid: popupid,
        },
        success: function(jsonData){
        	var jj = $.parseJSON(jsonData);
            callback(jj.result);
        }
    });
}

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 showInlineHelpTab() {
	$('#inline_help_holder').animate({right: '0px'}, 500, function() { /* Animation complete. */ });
}

function hideInlineHelpTab() {
	$('#inline_help_holder').animate({right: '-242px'}, 500, function() { /* Animation complete. */ });
}

function createManufacturerSelectList() {
	if(BRAND_ID != "BRAND_ID" && BRAND_ID != "") {
		// Ajax in my manufacturers
		$.ajax({
			url: "/desk/ajax?action=get_my_manufacturers",
			dataType: "json",
			success: function(result) {
				if(result.status == true) {
					if(result.length > 1) {
						var manufacturer_div = "<div id='manufacturer_list_holder' class='ui-corner-bottom'>";
						for(var i in result.manufacturers) {
							if(i == BRAND_ID) {continue;}
							manufacturer_div += "<div onclick=\"gotoManufacturer('"+i+"');\">"+result.manufacturers[i].title+"</div>";
						}
						manufacturer_div += "</div>";
						$("#manufacturer_selector").append(manufacturer_div);

						// Bind onclick/onhover
						$('body').click(function() {
							$("#manufacturer_list_holder").fadeOut('slow');
						});

						$("#manufacturer_selector").click(function(event){
							event.stopPropagation();
							$("#manufacturer_list_holder").fadeToggle('slow');
						});
						$("div#manufacturer_list_holder div").hover(
							function() {$(this).addClass('hover')},
							function() {$(this).removeClass('hover')}
						);
					} else {
						$("#manufacturer_selector").css('cursor', 'default');
						$("#manufacturer_selector span").hide();
					}
				}
			}
		})
	}
	// Create HTML and fill it
}
function gotoManufacturer(id) {
	showLoading();
	document.location = XPOS_TOTAL_URL+'/users/jump?id='+id;
}

function modal_message_url(title, url, width, height) {
    if(width == undefined) {width = 800;}
    if(height == undefined) {height = 800;}
	data = "<iframe width='"+width+"' height='"+height+"' frameborder='0' src='"+url+"'></iframe>"
	modal_message(title, data);
}

function modal_message(title,data,level,buttons, disable_draggable, disable_resizable,close_function) {
	if(disable_draggable == undefined) {
		var disable_draggable = false;
	}
	if(disable_resizable == undefined) {
		var disable_resizable = false;
	}
	if(buttons == undefined) {
		buttons = {
			"Ok": function() {$(this).dialog("close");}
		}
	} else if(buttons == false) {
		buttons = {}
	}
	if(typeof close_function == 'function'){
		var fncClose = close_function;
	} else {
		var fncClose = function() {
				$(this).dialog("destroy");
				$(this).remove();
			}
	}

	switch(level){
        case 0:
			icon = "ui-icon-alert"
            class_name = "ui-state-error";
            break;
        case 1:
			icon = "ui-icon-circle-check";
            class_name = "ui-state-ok"
            break;
        case 2:
			icon = "ui-icon-info";
            class_name = "ui-state-active";
            break;
        default:
			icon = "ui-icon";
            class_name = "ui-state-default"
            break;
    }
	var html = '<p style="margin-left: 16px"><span style="float: left; margin-left: -22px;" class="ui-icon '+icon+'"></span>'+data+'</p>';
	$("<div>"+html+"</div>").dialog({
			modal: true,
			buttons: buttons,
			//dialogClass: class_name,
			title: title,
			draggable: !disable_draggable,
			resizable: !disable_resizable,
			close: fncClose,
			width: ($.browser.msie && $.browser.version < 8) ? 700 : "auto"
	});
}

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-active";
            $("div .ui-icon", stateElement).addClass("ui-icon-info");
            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 deleteRow(table, id) {
	if(confirm('Are you sure?')) {
		$.ajax({
			url: "ajax?action=delete_row&object="+table+"&id="+id,
			dataType: "json",
			success: function(result) {
				if(result.success != undefined && result.success == true) {
					loadTable('get_'+table+'_table', table+'_table');
				}
			}
		});
	}
}

function loadTable(ajax_action, table_id) {
	url = location.href;
	url = url.split("/");
	if(url[url.length-2] == "id") {
		ajax_url = "../../ajax";
	} else {
		ajax_url = "ajax";
	}
	$.ajax({
		url: ajax_url+"?action="+ajax_action,
		dataType: "json",
		success: function(result) {
			if(result.success != undefined && result.success == true) {
				$("#"+table_id+" tbody").html("");
				if(result.data.length > 0) {
					for(var i in result.data) {
						row = "<tr>";
						for(var j in result.data[i]) {
							row += "<td>"+result.data[i][j]+"</td>";
						}
						row += "</tr>";
						$("#"+table_id+" tbody").append(row);
					}
				}
			}
		}
	});
}

var cache = [];
// Arguments are image paths relative to the current page.
function preLoadImages() {
	var args_len = arguments.length;
	for (var i = args_len; i--;) {
		  var cacheImage = document.createElement('img');
		  cacheImage.src = arguments[i];
		  cache.push(cacheImage);
	}
}

function fixRmaReasons(claim_option_rma_reason) {
	$("#rma_information_holder").hide();
	$(".sub_rma_reason").hide();
	$("#rma_information_holder .field div").hide();
	if($("#rma_information_"+claim_option_rma_reason).attr('id') != undefined) {
		$("#rma_information_holder").show();
		$("#rma_information_"+claim_option_rma_reason).show();
	}
	if($(".sub_rma_reason_"+claim_option_rma_reason).attr('id') != undefined) {
		$(".sub_rma_reason_"+claim_option_rma_reason).show();
	}
}
function cancelRmaForm() {
	$(".rma_form_dialog").dialog("close");
	$(".rma_form_dialog").remove();
	$("#rma_doa_form_error").hide();
	$("#rma_foa_form_view").show();
	// Reset RMA
	redrawRmaReasons();
}

/**
 * Show RMA form
 */
function showRmaForm(form,rma_id,type) {
	if(!$("#claim_option_answered_"+form+"_form").length || $("#claim_option_answered_"+form+"_form").val() == "false") {
		showLoading();
		var window_width = 850;
		var window_height = 850;

		if(form == "doa_warning") {
			window_width = 500;
			window_height = 300;
		}
		if(form == "do_not_exchange_before_approval") {
			window_width = 500;
			window_height = 120;
		}

		// Check if we need to load form by looking at a hidden field if the answers is already set
		$.ajax({
			url: "/desk/claims/ajax?action=get_rma_form&form="+form+"&rma_id="+rma_id,
			dataType: "html",
			success: function(result) {
				hideLoading();
				// Ajax load form into modal
				$("<div title='RMA Form' class='rma_form_dialog'>"+result+"</div>").dialog({
					modal: true,
					width: window_width,
					height: window_height,
					close: function() {
						$(this).remove();
					}
				});
				$(".ui-dialog-titlebar-close").hide();
				$(".button").button();
			}
		});
	}
	handleRmaReasonsClick(rma_id, type);
}
function redrawRmaReasons() {
	renderRmaReasons(last_rma_reasons, last_sub_rma_reasons, last_selected_reason, last_policy_message);
}
var all_rma_reasons = null;
var last_rma_reasons = null;
var last_sub_rma_reasons = null;
var last_selected_reason = null;
var last_policy_message = null;
var rmaReasonsClickCount = 0;
/**
 * Render RMA reasons
 */
function renderRmaReasons(rma_reasons, sub_rma_reasons, selected_reason, policy_message) {
	all_rma_reasons = rma_reasons;
	$(".rma_extra_mandatory_field_holder").remove();
	last_rma_reasons = rma_reasons;
	last_sub_rma_reasons = sub_rma_reasons;
	last_selected_reason = selected_reason;

	var rma_reasons_html = "";
	var selected_reason_type = "parent";
	$("#rma_information_holder").hide();
	$("#rma_information_holder td.field div").hide();
	$("#main_rma_reason_holder td.field").html("");
	if(rma_reasons.length == undefined) { // This means that it contains stuff
		for(var i in rma_reasons) {
			enableTriggerWords(i, rma_reasons[i].trigger_words);
			if(rma_reasons[i]["form"] != "") {
				onclick_function = "showRmaForm('"+rma_reasons[i]["form"]+"','"+i+"','parent')";
			} else {
				onclick_function = "handleRmaReasonsClick('"+i+"','parent')";
			}
			title = (rma_reasons[i]["type"] == 2) ? commercial_title+" "+rma_reasons[i]["title"] : rma_reasons[i]["title"];
			mandatory_keys = "";
			//console.log(typeof(rma_reasons[i]["extra_mandatory_fields"]));
			if(typeof(rma_reasons[i]["extra_mandatory_fields"]) == "object") {
				//console.log(rma_reasons[i]["extra_mandatory_fields"]);
				for(var k in rma_reasons[i]["extra_mandatory_fields"]) {
					// Render field, if it's not already present
					if($("#rma_field_"+k).length == 0) {
						extra_field_holder = "<tr class='rma_extra_mandatory_field_holder' id='rma_field_"+k+"' style='display: none;'>";
						extra_field_holder += "<td class='title'><label>"+rma_reasons[i]["extra_mandatory_fields"][k]+"*</label></td>";
						extra_field_holder += "<td class='field' colspan='3'><input type='text' name='"+k+"' value='' /></td>";
						extra_field_holder += "</tr>";
						$("tr#main_rma_reason_holder").after(extra_field_holder);
						//console.log(extra_field_holder);
					}
					mandatory_keys += k+" ";
				}
			}
			rma_reasons_html += "<label><input data-mandatory-fields='"+mandatory_keys+"' type='radio' id='rma_input_"+i+"' onclick=\""+onclick_function+"\" name='claim_option_rma_reason' value='"+i+"'> "+title+"<br/></label>";
			if(sub_rma_reasons[i] != undefined) {
				rma_reasons_html += "<div class='sub_rma_reasons_holder' id='sub_rma_reasons_holder_"+i+"' style='display: none; margin-left: 20px; font-size: 11px;'>";
				for(var j in sub_rma_reasons[i]) {
					if(sub_rma_reasons[i][j]["form"] != "") {
						onclick_function = "showRmaForm('"+sub_rma_reasons[i][j]["form"]+"','"+i+"','parent')";
					} else {
						onclick_function = "handleRmaReasonsClick('"+i+"','child',null,'"+j+"')";
					}
					title = (sub_rma_reasons[i][j]["type"] == 2) ? commercial_title+" "+sub_rma_reasons[i][j]["title"] : sub_rma_reasons[i][j]["title"];
					rma_reasons_html += "<label><input type='radio' id='rma_input_"+j+"' class='claim_option_sub_rma_reason' onclick=\""+onclick_function+"\" name='claim_option_rma_reason' value='"+j+"'> "+title+"<br/></label>";
					if(selected_reason != undefined && selected_reason == j) {
						selected_reason_type = "child";
					}
				}
				rma_reasons_html += "</div>";
			}
		}
		rma_reasons_html = "<h3 class='grey bold underlined'>"+available_rma_reasons+"</h3>"+rma_reasons_html+"<br/>";
		$("#main_rma_reason_holder td.field").html(rma_reasons_html);
		if(selected_reason != undefined) {
			$("#rma_input_"+selected_reason).attr('checked','checked');
			handleRmaReasonsClick(selected_reason, selected_reason_type, true);
			$("#rma_input_"+selected_reason).click();
		}
	} else {
		if(policy_message != "") {
			$("#policy_message_text").text(policy_message);
			$("#policy_message").show();
		} else {
			$("#policy_message_text").text("");
			$("#policy_message").hide();
		}
		$("#main_rma_reason_holder td.field").html($("#no_rma_reasons_holder").html());
	}
}
trigger_words = {};
function enableTriggerWords(rma_id, words) {
	if(trigger_words[rma_id] == undefined) { trigger_words[rma_id] = []; }
	for(var i in words) {
		trigger_words[rma_id].push(words[i].trim());
	}
}
function checkTriggerWords() {
	//console.log("checkTriggerWords");
	var has_prompted = false; // Block to make sure we only alert once
	// Go through all words and see if they match any perticual RMA reasons
	// trigger words
	text = $("#claimed_products__error_description").val();
	text_array = text.replace(/(\r\n|\n|\r)/gm, "").split(" ");
	for(var i in text_array) {
		//console.log(text_array);
		for(var rma_id in trigger_words) {
			//console.log("RMA: "+rma_id);
			for(var j in trigger_words[rma_id]) {
				//console.log(text_array[i].trim()+" == "+trigger_words[rma_id][j]+" "+has_prompted);
				if(text_array[i].trim() == trigger_words[rma_id][j] && has_prompted == false && text_array[i].trim() != "") {
					// Check if it's already selected
					if(!$("#rma_input_"+rma_id).is(":checked")) {
						rma_title = $("#rma_input_"+rma_id).parent().text();
						// Found match, check if rma already selected
						modal_message(
							"Did you pick the correct RMA reason?",
							"The error description matches "+rma_title+", would you like to change RMA return reason to "+rma_title,
							4,
							{
								"Yes": function() { $("#rma_input_"+rma_id).click(); $("#rma_input_"+rma_id).attr('checked','checked'); $(this).dialog("close");},
								"No": function() {$(this).dialog("close");}
							}
						);
						has_prompted = true;
					}
				}
			}
		}
	}
}
function handleRmaReasonsClick(rma_id, type, saved_trigger, sub_id) {
	// Clear all previously made inputs to RMA extra fields
	if(rmaReasonsClickCount > 2) { // Prevents field to be emptied on load
		$(".rma_information_section input").val("");
	}
	rmaReasonsClickCount++;
	$(".rma_extra_mandatory_field_holder").hide();
	const currentRmaData = all_rma_reasons[rma_id];

	mandatory_fields = $("#rma_input_"+rma_id).data("mandatory-fields");
	if(typeof mandatory_fields !== 'undefined') {
		mandatory_fields.trim();
		mandatory_fields_array = mandatory_fields.split(" ");
		for(var i in mandatory_fields_array) {
			//console.log("show "+"#rma_field_"+mandatory_fields_array[i]);
			$("#rma_field_"+mandatory_fields_array[i]).show();
		}
	}

	if(service_policy == "high_cost" && rma_id != 1) {
		$("#workshop_chooser").show();
	} else {
		$("#workshop_chooser").hide();
		$("#completing_party").val(0);
	}
	if(type == "parent") {
		if(saved_trigger == undefined) {
			$(".claim_option_sub_rma_reason").attr('checked', '');
			$('#sub_rma_reasons_holder_'+rma_id+' input:first').attr('checked','checked');
			var sub_tag_id = $('#sub_rma_reasons_holder_'+rma_id+' input:first').attr('id');
			if(sub_tag_id != undefined) {
				sub_id = sub_tag_id.split(/_/);
				sub_id = sub_id[sub_id.length-1]*1;
			}
		}
	} else {
		if(saved_trigger != undefined) {
			var parent_tag_id = $("input#rma_input_"+rma_id).parent().parent().attr('id');
			var parent_id = parent_tag_id.split(/_/);
			parent_id = parent_id[parent_id.length-1]*1;
			// Make sure im showing
			handleRmaReasonsClick(parent_id, "parent", saved_trigger);
			return;
		}
	}

	if($("#claim_option_engineer_error_description_service_proof_1").length && rma_id == 7) {
		$("#engineer_error_description_one_holder").show();
		$("#engineer_error_description_two_holder").show();
	} else if($("#claim_option_engineer_error_description_service_proof_1").length) {
		$("#engineer_error_description_one_holder").hide();
		$("#engineer_error_description_two_holder").hide();
	}

	$("#rma_information_holder").hide();
	$('.sub_rma_reasons_holder').hide();
	$("#rma_information_holder td.field div").hide();
	$('#sub_rma_reasons_holder_'+rma_id).show();

	if(sub_id != undefined) {
		// Show sub-rma fields
		for(var i in rma_reason_information_requirements) {
			if(i == sub_id && $("#rma_information_"+rma_reason_information_requirements[i]).length > 0) {
				$("#rma_information_"+rma_reason_information_requirements[i]).show();
				$("tr#rma_information_holder").show();
			}
		}
	} else {
		for(var i in rma_reason_information_requirements) {
			if(i == rma_id && $("#rma_information_"+rma_reason_information_requirements[i]).length > 0) {
				$("#rma_information_"+rma_reason_information_requirements[i]).show();
				$("tr#rma_information_holder").show();
			}
		}
	}

	if($("#extra_workshop_rma_fields_"+rma_id).length > 0) {
        $("tr#rma_information_holder").show();
        $(".extra_workshop_rma_field_holder").hide(); // Hide all fields
        $("#extra_workshop_rma_fields_"+rma_id).show();
		// Show only fields for correct main division or empty
		$("span.extra_workshop_rma_field_holder", $('#extra_workshop_rma_fields_'+rma_id)).each(function(index, item) {
			if($(item).data("main-division") === current_product_main_division) {
				$(item).show();
			}
			if($(item).data("main-division") === "" || $(item).data("main-division") === false || $(item).data("main-division") === null) {
				$(item).show();
			}
		});
	}

    // Check for RMA messages
    if(!checkForRmaText(last_rma_reasons, rma_id)) {
    	if(!checkForRmaText(last_sub_rma_reasons, sub_id, true)) {
            $("#rma_custom_message").remove();
		}
	}

	if(
		$('#track_my_rma_row') &&
		(
			currentRmaData.tracking === '1' ||
			currentRmaData.tracking === 1 ||
			currentRmaData.tracking === true
		)
	) {
		$('#track_my_rma_row').hide();
		$('#claim_consumers__tracking').attr('checked',true);
	} else {
		$('#track_my_rma_row').hide();
		$('#claim_consumers__tracking').attr('checked',false);
	}

}

function checkForRmaText(rma_reasons, rma_id, check_sub) {
    rma_text = "";
    if(check_sub === true) {
    	for(var i in rma_reasons) {
    		if(checkForRmaText(rma_reasons[i], rma_id)) {
    			return true;
			}
		}
	} else {
        if (typeof rma_reasons[rma_id] != "undefined" && rma_reasons[rma_id].hasOwnProperty("guides") && rma_reasons[rma_id].guides.hasOwnProperty(CURRENT_LANGUAGE)) {
            if (typeof rma_reasons[rma_id].guides[CURRENT_LANGUAGE].rma_text_message != "undefined" && rma_reasons[rma_id].guides[CURRENT_LANGUAGE].rma_text_message != "") {
                rma_text = rma_reasons[rma_id].guides[CURRENT_LANGUAGE].rma_text_message.replace(/\n/g, "<br>") + "<br/><br/>";
            }
            if (typeof rma_reasons[rma_id].guides[CURRENT_LANGUAGE].rma_file != "undefined" && rma_reasons[rma_id].guides[CURRENT_LANGUAGE].rma_file != "") {
                rma_text += "<a href='/desk/content_pdf/id/rma_guides/" + rma_reasons[rma_id].guides[CURRENT_LANGUAGE].rma_file + "?d=rma_guides'> <img src='/content/design/layout/default/images/icons/page_white.png'/>Download more information about this RMA</a>";
            }
            if (rma_text !== "") {
                $("#rma_custom_message").remove();
                $("#main_rma_reason_holder td.field").append("<div class='xpos_alert information ui-corner-all' id='rma_custom_message' style='display: none'>" + rma_text + "</div>");
                $("#rma_custom_message").fadeIn('slow');
                return true;
            }
        }
    }
    return false;
}

function workshopAcceptClaim(reference, comment, gotostatus, callback) {
	showLoading();
	$.ajax({
		url: "/desk/claims/ajax?action=workshop_accept_claim&claim_reference="+reference+"&goto_status="+gotostatus,
		dataType: "json",
		type: "get",
		data: {
			comment: comment
		},
		success: function(result) {
			if(result.success != undefined && result.success == true) {
				if(callback != undefined) {
					eval(callback+'()');
					hideLoading();
				} else {
					document.location = '/desk/claims/claim/reference/'+reference;
				}
			} else {
				hideLoading();
				modal_message('ERROR', 'Could not accept, please try again');
			}
		}
	});
}

function workshopRejectClaim(reference, comment, gotostatus, callback) {
	if(comment == "") {
		modal_message('ERROR', 'You must add a comment');
		return false;
	}
	showLoading();
	$.ajax({
		url: "/desk/claims/ajax?action=workshop_reject_claim&claim_reference="+reference+"&goto_status="+gotostatus,
		dataType: "json",
		type: "get",
		data: {
			comment: comment
		},
		success: function(result) {
			if(result.success != undefined && result.success == true) {
				if(callback != undefined) {
					eval(callback+'()');
					hideLoading();
				} else {
					document.location = '/desk/claims/claim/reference/'+reference;
				}
			} else {
				hideLoading();
				modal_message('ERROR', 'Could not reject, please try again');
			}
		}
	});
}

function workshopConvertClaim(reference, comment, gotostatus, callback) {
	showLoading();
	$.ajax({
		url: "/desk/claims/ajax?action=workshop_convert_claim_to_credit&reference="+reference+"&gotostatus="+gotostatus,
		dataType: "json",
		type: "get",
		data: {
			comment: comment
		},
		success: function(result) {
			if(result.success != undefined && result.success != false) {
				if(callback != undefined) {
					eval(callback+'()');
					hideLoading();
				} else {
					document.location = '/desk/claims/claim/reference/'+result.success;
				}
			} else {
				hideLoading();
				modal_message('ERROR', 'Could not convert, please try again');
			}
		}
	});
}

function workshopSetProductReceived(reference) {
	comment = "";
	if(confirm('This will tell XPOS that the product now is at the workshop, are you sure?')) {
		showLoading();
		$.ajax({
			url: "/desk/claims/ajax?action=workshop_received_product&reference="+reference,
			dataType: "json",
			type: "get",
			data: {
				comment: comment
			},
			success: function(result) {
				if(result != null && result.success != undefined && result.success == true) {
					document.location = '/desk/claims/claim/reference/'+reference;
				} else {
					hideLoading();
					modal_message('ERROR', 'Could not set product received, please try again');
				}
			}
		});
	}
}

function showCustomerClaim(reference) {
	showLoading();
	$.ajax({
		url: "/desk/claims/ajax?action=get_claim_short_info&reference="+reference,
		dataType: "html",
		success: function(result) {
			$("<div title='Claim'>"+result+"</div>").dialog({
				modal: true,
				width: 850,
				height: 850,
				close: function() {
					$(this).remove();
				}
			});
			$("#go_to_claim_button").button();
			fixRmaReasons($("#claim_option_rma_reason").val());
			hideLoading();
		}
	})
}
function showTotalQueryList() {
	$("#total_query_list").show();
	$("#show_total_query_list_link").hide();
	$("#hide_total_query_list_link").show();
}

function hideTotalQueryList() {
	$("#total_query_list").hide();
	$("#show_total_query_list_link").show();
	$("#hide_total_query_list_link").hide();
}

function objectLength(object) {
	var length = 0;
	for(var i in object) {
		length++;
	}
	return length;
}

function strip_tags (input, allowed) {
    // Strips HTML and PHP tags from a string
    //
    // version: 1107.2516
    // discuss at: http://phpjs.org/functions/strip_tags    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Luke Godfrey
    // +      input by: Pul
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Onno Marsman    // +      input by: Alex
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: Marc Palau
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: Brett Zamir (http://brett-zamir.me)    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Eric Nagel
    // +      input by: Bobby Drake
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Tomasz Wesolowski    // +      input by: Evertjan Garretsen
    // +    revised by: RafaÅ‚ Kukawski (http://blog.kukawski.pl/)
    // *     example 1: strip_tags('<p>Kevin</p> <b>van</b> <i>Zonneveld</i>', '<i><b>');
    // *     returns 1: 'Kevin <b>van</b> <i>Zonneveld</i>'
    // *     example 2: strip_tags('<p>Kevin <img src="someimage.png" onmouseover="someFunction()">van <i>Zonneveld</i></p>', '<p>');    // *     returns 2: '<p>Kevin van Zonneveld</p>'
    // *     example 3: strip_tags("<a href='http://kevin.vanzonneveld.net'>Kevin van Zonneveld</a>", "<a>");
    // *     returns 3: '<a href='http://kevin.vanzonneveld.net'>Kevin van Zonneveld</a>'
    // *     example 4: strip_tags('1 < 5 5 > 1');
    // *     returns 4: '1 < 5 5 > 1'    // *     example 5: strip_tags('1 <br/> 1');
    // *     returns 5: '1  1'
    // *     example 6: strip_tags('1 <br/> 1', '<br>');
    // *     returns 6: '1  1'
    // *     example 7: strip_tags('1 <br/> 1', '<br><br/>');    // *     returns 7: '1 <br/> 1'
	input = input || "";
    allowed = (((allowed || "") + "").toLowerCase().match(/<[a-z][a-z0-9]*>/g) || []).join(''); // making sure the allowed arg is a string containing only tags in lowercase (<a><b><c>)
    var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,
		commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi;
    return input.replace(commentsAndPhpTags, '').replace(tags, function ($0, $1) {return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '';
    });
}
var externalHandleOfDoaRmaForm = null;
function testDoaRmaForm() {
	var value = false;
	if(
		$("#aa_1").attr('checked') &&
		$("#aa_2").attr('checked') &&
		!$("#aa_3").attr('checked') && // Spares
		$("#aa_5").attr('checked') &&
		$("#aa_6").attr('checked') &&
		!$("#aa_8").attr('checked') &&
		$("#aa_9").attr('checked') &&
		$("#aa_10").attr('checked')
	) {
		// Form OK!
		$(".rma_form_dialog").dialog("close");
		$(".rma_form_dialog").remove();
		value = true;
		if (undefined != externalHandleOfDoaRmaForm) {
			if(externalHandleOfDoaRmaForm != null && typeof externalHandleOfDoaRmaForm == "function") {
				externalHandleOfDoaRmaForm();
			}
		}
	} else {
		// Form not ok
		$("#rma_doa_form_error").show();
		$("#rma_foa_form_view").hide();
	}
	if($("#claim_option_answered_doa_form").length) {
		$("#claim_option_answered_doa_form").val(value);
	} else {
		$("form#form").append(
			"<input type='hidden' id='claim_option_answered_doa_form' name='claim_option_answered_doa_form' value='"+value+"' />"
		);
	}
}
function testDoaRmaWarningForm(form) {
	// Form OK!
	$(".rma_form_dialog").dialog("close");
	$(".rma_form_dialog").remove();
	value = true;
	if (undefined != externalHandleOfDoaRmaForm) {
		if(externalHandleOfDoaRmaForm != null && typeof externalHandleOfDoaRmaForm == "function") {
			externalHandleOfDoaRmaForm();
		}
	}
	if($("#claim_option_answered_"+form+"_form").length) {
		$("#claim_option_answered_"+form+"_form").val(value);
	} else {
		$("form#form").append(
			"<input type='hidden' id='claim_option_answered_"+form+"_form' name='claim_option_answered_"+form+"_form' value='"+value+"' />"
		);
	}
}
function testPartsNotAvailableRmaWarningForm(form) {
	// Form OK!
	$(".rma_form_dialog").dialog("close");
	$(".rma_form_dialog").remove();
	value = true;

	// if (undefined != externalHandleOfDoaRmaForm) {
	// 	if(externalHandleOfDoaRmaForm != null && typeof externalHandleOfDoaRmaForm == "function") {
	// 		externalHandleOfDoaRmaForm();
	// 	}
	// }
	if($("#claim_option_answered_"+form+"_form").length) {
		$("#claim_option_answered_"+form+"_form").val(value);
	} else {
		$("form#form").append(
			"<input type='hidden' id='claim_option_answered_"+form+"_form' name='claim_option_answered_"+form+"_form' value='"+value+"' />"
		);
	}
}
function testRmaForm(form) {
	valid = true;
	if(form == "extended_warranty") {
		if(!$("#ewf_1").attr("checked")) { valid = false; }
		if(!$("#ewf_2").attr("checked")) { valid = false; }
	}
	if(valid == false) {
		value = false;
		$("#rma_form_error").show();
		$("#rma_form_view").hide();
	} else {
		value = true;
		$(".rma_form_dialog").dialog("close");
		$(".rma_form_dialog").remove();
	}
	if($("#claim_option_answered_doa_form").length) {
		$("#claim_option_answered_doa_form").val(value);
	} else {
		$("form#form").append(
			"<input type='hidden' id='claim_option_answered_doa_form' name='claim_option_answered_doa_form' value='"+value+"' />"
		);
	}

	if($("#claim_option_answered_extended_warranty_form").length) {
		$("#claim_option_answered_extended_warranty_form").val(value);
	} else {
		$("#form").append(
			"<input type='hidden' id='claim_option_answered_extended_warranty_form' name='claim_option_answered_extended_warranty_form' value='"+value+"' />"
		);
	}
}
function showSupportWindow(brand_id) {
	showLoading();
	$.ajax({
		url: "/users/ajax?action=get_support_information&brand_id="+brand_id,
		dataType: "json",
		success: function(result){
			hideLoading();
			modal_message(result.support_title, result.support_information, 2);
		}
	});

}

function setFreightTransporterInformed(freight_id) {
	if(confirm("Are you sure?")) {
		showLoading();
		$.ajax({
			url: "/desk/claims/ajax?action=set_transporter_informed",
			dataType: "json",
			type: "post",
			data: {
				freight_id: freight_id
			},
			success: function(result) {
				if(result.success == true) {
					document.location = document.location;
				} else {
					modal_message('Error', 'Error when setting freight status', 0);
				}
			}
		});
	}
}

function withdrawClaim(reference, go_to_url) {
	if(confirm('Are you sure? You wont be able to get this request back after you withdraw it')) {
		showLoading();
		$.ajax({
			url: "/desk/claims/ajax?action=withdraw_claim&reference="+reference,
			dataType: "json",
			success: function(result) {
				if(result.success != undefined && result.success == true) {
					if(go_to_url && typeof(go_to_url) == 'function') {
						go_to_url();
						hideLoading();
					} else {
						if(go_to_url != undefined) {
							document.location = go_to_url;
						} else {
							document.location = '/desk/claims/claim/reference/'+reference;
						}
					}
				} else {
					hideLoading();
					modal_message('ERROR', 'Could not withdraw, please try again');
				}
			}
		});
	}
}

/**
 * Trace will only work in FF, TODO: Add IE tracer
 */
function trace(s) {
  if ('console' in self && 'log' in console) console.log(s);
}
