/** This script was created by Lasse R. Brock The purpose is to provide generic javascript functions that can be used over and over The Ajax Queue System Example: [Here we build the request] var function_to_call_before_sending = loading(); var function_to_call_on_return = handleGetMap(); ajaxQueueCancelThese('map_data'); (Only used if nessesary to cancel other requests of the same tag in the queue) ajaxQueueAdd('GET', url, 'map_data', function_to_call_before_sending, function_to_call_on_return, null); [Here we recieve the request data] ****** Notice the use of receiveReq_ajax_queue ****** function handleGetMap() { var data = receiveReq_ajax_queue.responseText; } **/ /** Required JS: php.js is required **/ window.onload = joinFunctions(window.onload, function(){if(typeof is_numeric != 'function') { alert("Husk at include php.js"); }}) /** Can be used when you want to use window.onload from several different files **/ /** What it does is to continually increase the amount of information stored in window.onload, and when we're done loading, execute it **/ /** Example: window.onload = joinFunctions(window.onload, myNewFunction ); **/ function joinFunctions(function1, function2) { return function() { if (function1) function1(); if (function2) function2(); } } /** Shortcut for joinFunctions **/ function jf(function1, function2) { return joinFunctions(function1, function2); } /** Detecting browser **/ if(navigator.userAgent.indexOf('Trident') != -1 || navigator.userAgent.indexOf('MSIE') != -1){var browser = "ie";} else{var browser = "not ie";} /** And browser version **/ if(navigator.appVersion.indexOf('MSIE 8.0') != -1){var browser_version = 8;} else if(navigator.appVersion.indexOf('MSIE 7.0') != -1){var browser_version = 7;} else if(navigator.appVersion.indexOf('MSIE 6.0') != -1){var browser_version = 6;} else{var browser_version = 'not ie';} var current_event = null; var overlay_zindex_counter = 900000; var active_overlay_ids_array = new Array(); var receiveReq_ajax_queue = getXmlHttpRequestObject(); var ajax_queue_array = new Array(); var ajax_queue_timer = ""; var ajax_queue_current_tag = undefined; var ajax_queue_request_validity = true; function ajaxQueue() { if(ajax_queue_array.length > 0) { /** We run the next element from the queue **/ if (receiveReq_ajax_queue.readyState == 4 || receiveReq_ajax_queue.readyState == 0) { /** Running and removing the next element **/ var ajax_data = ajax_queue_array.shift(); /** Executing the functions **/ ajax_data[3](); receiveReq_ajax_queue.open(ajax_data[0], ajax_data[1], true); /** Setting the onreadystate function **/ receiveReq_ajax_queue.onreadystatechange = function(){ajaxQueueObjectReturn(ajax_data[4])}; /** If we're dealing with a post we need to set the headers **/ if(ajax_data[0].toLowerCase() == 'post') { receiveReq_ajax_queue.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); receiveReq_ajax_queue.setRequestHeader("Content-length", ajax_data[5].length); receiveReq_ajax_queue.setRequestHeader("Connection", "close"); } /** Submitting the request **/ receiveReq_ajax_queue.send(ajax_data[5]); /** Setting the current tag so that we may invalidate it later if we need to **/ ajax_queue_current_tag = ajax_data[2]; } } if(ajax_queue_array.length > 0) { /** If there's data in the queue we call this function again in 0.5 second **/ clearTimeout(ajax_queue_timer); ajax_queue_timer = setTimeout("ajaxQueue();", 500); } } function ajaxQueueAdd(method, url, tag, function_to_call_before_sending, function_to_call_on_return, send_body) { if(method != undefined) { if(send_body == undefined) { send_body = null; } /** Adding the object to the queue **/ ajax_queue_array.push(new Array(method, url, tag, function_to_call_before_sending, function_to_call_on_return, send_body)); } ajaxQueue(); } var ajax_queue_request_data = ""; var ajax_queue_request_obj = null; function ajaxQueueObjectReturn(function_to_call) { if (receiveReq_ajax_queue.readyState == 4) { ajax_queue_current_tag = undefined; if(ajax_queue_request_validity) { ajax_queue_request_data = receiveReq_ajax_queue.responseText; ajax_queue_request_obj = receiveReq_ajax_queue; if(typeof function_to_call == 'function') { function_to_call(); } } else { ajax_queue_request_validity = true; } } } function ajaxQueueCancelThese(tag) { for(x in ajax_queue_array) { if(ajax_queue_array[x][2] == tag) { ajax_queue_array.splice(x,1); } } if(ajax_queue_current_tag == tag) { ajax_queue_request_validity = false; ajax_queue_current_tag = undefined; } } function ajaxRequest(method, url, function_to_call_on_return, send_body, async) { if(method != undefined) { if(send_body == undefined) { send_body = null; } if(async == undefined) { async = true; } /** Creating a new object **/ var ajax_request_object = getXmlHttpRequestObject(); ajax_request_object.open(method, url, async); /** Setting the onreadystate function **/ ajax_request_object.onreadystatechange = function(){ajaxRequestObjectReturn(ajax_request_object, function_to_call_on_return)}; /** If we're dealing with a post we need to set the headers **/ if(method.toLowerCase() == 'post') { ajax_request_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); /*ajax_request_object.setRequestHeader("Content-length", send_body.length); ajax_request_object.setRequestHeader("Connection", "close");*/ } /** Submitting the request **/ if(async) { ajax_request_object.send(send_body); } else { ajax_request_object.send(send_body); return ajax_request_object.responseText; } } } var ajax_request_data = ""; var ajax_request_obj = null; function ajaxRequestObjectReturn(request_object, function_to_call) { if (request_object.readyState == 4) { ajax_request_data = request_object.responseText; ajax_request_obj = request_object; if(typeof function_to_call == 'function') { function_to_call(); } /** Destroying the object **/ request_object = null; } } function createVeil(final_fade, do_fade, color, function_to_execute_when_done, pause_between_fade_incrementions) { if(typeof function_to_execute_when_done == 'function') { function_to_execute_when_done(); } return false; setDocumentHeightAndWidth(); var body_dom = document.getElementsByTagName('body')[0]; /** We create the protective layer that will make sure that the user cannot click on anything except our overlay **/ var protective_div = document.createElement('div'); protective_div.id = 'protective_div'; /** Styling the protective div **/ protective_div.style.position = "absolute"; protective_div.style.top = "0px"; protective_div.style.left = "0px"; protective_div.style.width = document_total_width+"px"; protective_div.style.height = document_total_height+"px"; if(color == undefined) { color = "#000000"; } protective_div.style.backgroundColor = color; protective_div.style.zIndex = overlay_zindex_counter; protective_div.style.opacity = 0; protective_div.style.display = 'block'; /** Appending it to the body **/ body_dom.appendChild(protective_div); /** Updating the zindex counter **/ overlay_zindex_counter++; if(browser_version == 6) { hideSelects(); } if(final_fade != undefined) { if(do_fade != undefined && do_fade) { fadeElement(protective_div, 0, final_fade, 'in', function_to_execute_when_done, pause_between_fade_incrementions); } else { if(browser == 'ie') { protective_div.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(Opacity='+final_fade+')'; protective_div.style.filter = 'alpha(opacity='+final_fade+');'; } else { protective_div.style.opacity = final_fade/100; } if(typeof function_to_execute_when_done == 'function') { function_to_execute_when_done(); } } } else { if(browser == 'ie') { protective_div.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(Opacity=50)'; protective_div.style.filter = 'alpha(opacity=50);'; } else { protective_div.style.opacity = 0.5; } if(typeof function_to_execute_when_done == 'function') { function_to_execute_when_done(); } } if(browser == 'ie') { protective_div.onmousewheel = joinFunctions(protective_div.onmousewheel, function(){handleVeilScroll();}); window.onresize = joinFunctions(window.onresize, function(){handleVeilScroll();}); } } function handleVeilScroll() { var veil = getElement("protective_div"); if(veil) { setDocumentHeightAndWidth(); veil.style.width = document_total_width+"px"; veil.style.height = document_total_height+"px"; } } var number_of_overlay_images_to_preload = 0; var number_of_overlay_images_preloaded = 0; function createOverlay(data, position, top, left, id, create_this_overlay_at_this_element, dragable, dragable_element_in_data, allowed_to_exist_outside_of_view, step, append_div_to_element_id) { var body_dom = document.getElementsByTagName('body')[0]; if(step == undefined) { step = 0; } /** Creating the overlay if it hasn't been so already **/ var overlay_div = getElement(id); if(!overlay_div) { /** Creating an overlay **/ var overlay_div = document.createElement('div'); if(id == undefined) { id = 'overlay_div_'+overlay_zindex_counter; } /** Setting the id of the overlay **/ overlay_div.id = id; /** Addding this overlay's id to the array of active overlays **/ active_overlay_ids_array.push(id); /** Now we append this overlay to the body **/ if(append_div_to_element_id != undefined && append_div_to_element_id!="" && browser != 'ie') { if(typeof InstallTrigger !== 'undefined') { body_dom.appendChild(overlay_div); }else{ getElement(append_div_to_element_id).appendChild(overlay_div); } } else { body_dom.appendChild(overlay_div); } } if(step == 0) { /** Inserting the data but masking it with dislay:none so that the user doesn't see us when we preload **/ overlay_div.style.display = 'none'; if(data != undefined) { //overlay_div.innerHTML = data; getElement(id).innerHTML = data; //$("#"+id).html(data); } var children = overlay_div.getElementsByTagName('img'); /** Resetting the preload variables **/ number_of_overlay_images_to_preload = 0; number_of_overlay_images_preloaded = 0; /** Checking the new content for images to preload **/ var images_to_preload_array = new Array(); for(x in children) { if(children[x].src != undefined) { number_of_overlay_images_to_preload++; images_to_preload_array.push(children[x].src); } } if(number_of_overlay_images_to_preload == 0) { /** No images to preload, we continue **/ createOverlay(data, position, top, left, id, create_this_overlay_at_this_element, dragable, dragable_element_in_data, allowed_to_exist_outside_of_view, 1); } else { /** There's images to preload, so we preload them **/ for(x in images_to_preload_array) { preloadThisImage(images_to_preload_array[x], function() { donePreloadImagesForCreateOverlay(data, position, top, left, id, create_this_overlay_at_this_element, dragable, dragable_element_in_data, allowed_to_exist_outside_of_view, 1); } ); } } } else { /** Making the overlay visible **/ overlay_div.style.display = ''; if(allowed_to_exist_outside_of_view == undefined) { allowed_to_exist_outside_of_view = true; } if(top == undefined) { top = 'center'; } else if(top != 'center' || (create_this_overlay_at_this_element != undefined && getElement(create_this_overlay_at_this_element))) { top = parseInt(top); if(isNaN(top)) { top = 0; } } if(left == undefined) { left = 'center'; } else if(left != 'center' || create_this_overlay_at_this_element != undefined && getElement(create_this_overlay_at_this_element)) { left = parseInt(left); if(isNaN(left)) { left = 0; } } if(position == undefined) { position = "fixed"; } /** A few styles **/ overlay_div.style.position = 'absolute'; // IE doesn't understand fixed so it's always absolute if(browser != 'ie') { overlay_div.style.position = position; } overlay_div.style.zIndex = overlay_zindex_counter; overlay_zindex_counter++; if(dragable != undefined && dragable) { /** This overlay should be dragable **/ if(dragable_element_in_data != undefined) { dragable_element_in_data = getElement(dragable_element_in_data); dragable_element_in_data.onmousedown = function(event){startDragging(event, id);}; dragable_element_in_data.onmouseup = function(){cancelDragging();}; } else { overlay_div.onmousedown = function(event){startDragging(event, this);}; overlay_div.onmouseup = function(){cancelDragging();}; } } /** Positioning the overlay **/ if(create_this_overlay_at_this_element != undefined && create_this_overlay_at_this_element == 'mouse') { if(left == 'center') { left = 0; } if(top == 'center') { top = 0; } /** Creating the overlay at the mouse position **/ setMouseXY(); overlay_div.style.left = (mouseX*1+left)+"px"; overlay_div.style.top = (mouseY*1+top)+"px"; } else if(create_this_overlay_at_this_element != undefined && getElement(create_this_overlay_at_this_element)) { var obj_positions = getPositionOfObject(create_this_overlay_at_this_element).split(";"); overlay_div.style.left = (obj_positions[0]*1+left)+"px"; overlay_div.style.top = (obj_positions[1]*1+top)+"px"; } else { if(top == "center") { centerObject("top", id); } else { overlay_div.style.top = top+"px"; } if(left == "center") { centerObject("left", id); } else { overlay_div.style.left = left+"px"; } } if(position == "fixed" && browser == 'ie') { window.onscroll = joinFunctions(window.onscroll, function(){ieFixed(id, top, left)}); window.onresize = joinFunctions(window.onresize, function(){ieFixed(id, top, left)}); } if(!allowed_to_exist_outside_of_view) { if(parseInt(overlay_div.style.top) < 0) { overlay_div.style.top = '0px'; } if(parseInt(overlay_div.style.left) < 0) { overlay_div.style.left = '0px'; } } if(document.activeElement) { // document.activeElement.blur(); } } } function donePreloadImagesForCreateOverlay(data, position, top, left, id, create_this_overlay_at_this_element, dragable, dragable_element_in_data, allowed_to_exist_outside_of_view, step) { number_of_overlay_images_preloaded++; if(number_of_overlay_images_preloaded >= number_of_overlay_images_to_preload) { createOverlay(data, position, top, left, id, create_this_overlay_at_this_element, dragable, dragable_element_in_data, allowed_to_exist_outside_of_view, step) } } function addCloseButtonToOverlay(id, onclose_function, top, right, innerhtml) { if(getElement(id)) { if(onclose_function == undefined) { onclose_function = function(){ closeOverlay(id); }; } if(top == undefined) { top = -10; } if(right == undefined) { right = -10; } if(innerhtml == undefined) { innerhtml = ''; } var overlay_obj = getElement(id); var close_button = document.createElement('div'); close_button.onclick = function(){onclose_function()}; close_button.style.position = 'absolute'; close_button.style.top = top+'px'; close_button.style.right = right+'px'; close_button.style.cursor = 'pointer'; close_button.innerHTML = innerhtml; overlay_obj.appendChild(close_button); /** Checking if we need to adjust the overlay object a little to make room for our new object **/ if(parseInt(overlay_obj.style.top)+top < 0) { overlay_obj.style.top = top*-1+'px'; } } } function ieFixed(obj, top, left) { var obj = getElement(obj); if(obj) { /** Updating window dimensions **/ updateWindowDimensions(); if(top == undefined || top == "center") { centerObject("top", obj); } else { obj.style.top = (window_scroll_y+top)+"px"; } if(left == undefined || left == "center") { centerObject("left", obj); } else { obj.style.left = (window_scroll_x+left)+"px"; } } } function centerObject(type, obj) { var obj = getElement(obj); /** Updating window dimensions **/ updateWindowDimensions(); /** Getting objects dimensions **/ var width = obj.offsetWidth; var height = obj.offsetHeight; if(obj.style.position == 'fixed') { window_scroll_y = 0; window_scroll_x = 0; } if(type != undefined && type == "top") { obj.style.top = (window_scroll_y)+(window_height/2)-(height/2)+"px"; } else if(type != undefined && type == "left") { obj.style.left = (window_scroll_x)+(window_width/2)-(width/2)+"px"; } else { obj.style.top = (window_scroll_y)+(window_height/2)-(height/2)+"px"; obj.style.left = (window_scroll_x)+(window_width/2)-(width/2)+"px"; } if(parseInt(obj.style.top) < 0) { obj.style.top = '0px'; } if(parseInt(obj.style.left) < 0) { obj.style.left = '0px'; } } function closeOverlay(id_to_close) { if(id_to_close != undefined) { if(getElement(id_to_close)) { removeElementFromDom(id_to_close); active_overlay_ids_array = unset(active_overlay_ids_array, id_to_close); } } else { /** We close all overlays **/ for(x in active_overlay_ids_array) { removeElementFromDom(active_overlay_ids_array[x]); } active_overlay_ids_array = new Array(); } } function closeVeil(fadeout, pause_between_fade_incrementions) { var protective_div = getElement('protective_div'); if(protective_div) { if(browser == 'ie') { /** Stopping the onscroll function **/ protective_div.onmousewheel = ''; } if(fadeout != undefined && fadeout) { var current_fade = 0; if(browser == 'ie') { current_fade = protective_div.filters[0].opacity; } else { current_fade = protective_div.style.opacity*100; } fadeElement(protective_div, current_fade, 0, 'out', function(){ removeElementFromDom("protective_div"); }, pause_between_fade_incrementions); } else { removeElementFromDom("protective_div"); } } if(browser_version == 6) { showSelects(); } } var fadeTimersArray = new Array(); function fadeElement(obj, current_fade, final_fade, direction, function_to_execute_when_done, pause_between_fade_incrementions) { obj = getElement(obj); if(obj) { if(obj.id == '') { obj.id = createRandomId(); } clearTimeout(fadeTimersArray[obj.id]); if(direction == undefined) { direction = 'in'; } if(pause_between_fade_incrementions == undefined) { pause_between_fade_incrementions = 25; } /** Setting the fade to current_fade **/ obj.style.zoom = 1; if(browser == "ie") { obj.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(Opacity='+current_fade+')'; obj.style.filter = 'alpha(opacity='+current_fade+');'; } else { obj.style.opacity = current_fade/100; obj.style.MozOpacity = current_fade/100; obj.style.KhtmlOpacity = current_fade/100; } if(direction == 'in') { /** Increasing the current_fade by 10% **/ current_fade += 10; if(current_fade <= final_fade) { /** We have some more fading to do **/ fadeTimersArray[obj.id] = setTimeout(function(){fadeElement(obj, current_fade, final_fade, direction, function_to_execute_when_done, pause_between_fade_incrementions)}, pause_between_fade_incrementions); } else if(typeof function_to_execute_when_done == 'function') { function_to_execute_when_done(); } } else { /** Decreasing the current_fade by 10% **/ current_fade -= 10; if(current_fade >= final_fade) { /** We have some more fading to do **/ fadeTimersArray[obj.id] = setTimeout(function(){fadeElement(obj, current_fade, final_fade, direction, function_to_execute_when_done, pause_between_fade_incrementions)}, pause_between_fade_incrementions); } else if(typeof function_to_execute_when_done == 'function') { function_to_execute_when_done(); } } } } function hideSelects() { var select_objects = document.getElementsByTagName("select"); for(var i=0;i'; } var fade_wait_timer = null; function fadeInFadeOutAndRemove(data, time_to_display, fade_in_time, fade_out_time, position, top, left, function_to_run_when_done) { if(time_to_display == undefined) { time_to_display = 2000; } if(fade_in_time == undefined) { fade_in_time = 75; } if(fade_out_time == undefined) { fade_out_time = 75; } if(position == undefined) { position = 'fixed'; } clearTimeout(fade_wait_timer); createOverlay(data, position, top, left, 'fadeinoutoverlay'); fadeElement("fadeinoutoverlay", 0, 100, "in", function(){fade_wait_timer = setTimeout(function(){fadeElement("fadeinoutoverlay", 100, 0, "out", function(){remObj("fadeinoutoverlay"); if(function_to_run_when_done != undefined){function_to_run_when_done();}}, fade_out_time);}, time_to_display);}, fade_in_time); } var preloaded_images_array = new Array(); function preloadThisImage(complete_image_path, function_to_call_when_done_loading) { var found = false; /** First we check if the image has been loaded already **/ for(x in preloaded_images_array) { if(preloaded_images_array[x].src == complete_image_path) { found = true; break; } } if(found) { /** The image has been loaded already, so we call the function we are to call when we're done loading, if it is defined **/ if(function_to_call_when_done_loading != undefined) { /** The setTimeout is there to allow the calling scripts to finish any remaining code before calling this function **/ setTimeout(function_to_call_when_done_loading, 0); } } else { var array_length = preloaded_images_array.length; preloaded_images_array[array_length] = new Image(); if(function_to_call_when_done_loading != undefined) { preloaded_images_array[array_length].onload = function_to_call_when_done_loading; preloaded_images_array[array_length].onerror = function_to_call_when_done_loading; } preloaded_images_array[array_length].src = complete_image_path; } } var mouseX = ""; var mouseY = ""; var presavedMouseX = undefined; var presavedMouseY = undefined; function setMouseXY(e) { if(browser == 'ie' && presavedMouseX != undefined && presavedMouseY != undefined) { mouseX = presavedMouseX + document.body.scrollLeft; mouseY = presavedMouseY + document.body.scrollTop; } else { if (browser == "ie") { /** grab the x-y pos.s if browser is IE **/ if(e == null) { e = window.event; } mouseX = e.clientX + document.body.scrollLeft; mouseY = e.clientY + document.body.scrollTop; } else { /** Grab the x-y pos.s if browser is NS **/ if(e == undefined) { e = current_event; } mouseX = e.pageX; mouseY = e.pageY; } } // catch possible negative values in NS4 if (mouseX < 0){mouseX = 0;} if (mouseY < 0){mouseY = 0;} presavedMouseX = undefined; presavedMouseY = undefined; } var dragged_obj; var capturedMouseX; var capturedMouseY; var objectCapturedX; var objectCapturedY; var objectCapturedWidth; var objectCapturedHeight; var parentObject; var parentObjectCapturedX; var parentObjectCapturedY; function startDragging(e, obj, corner, min_width, min_height, parent_obj, execute_this_func_while_dragging) { dragged_obj = getElement(obj); /** If this object isn't the top object, we make it the top object **/ if((dragged_obj.style.zIndex*1+1) < overlay_zindex_counter) { dragged_obj.style.zIndex = overlay_zindex_counter; overlay_zindex_counter++; } setMouseXY(e); capturedMouseX = mouseX; capturedMouseY = mouseY; parentObject = dragged_obj; if(parent_obj != undefined) { parentObject = getElement(parent_obj); } objectCapturedX = parseFloat(dragged_obj.style.left); objectCapturedY = parseFloat(dragged_obj.style.top); objectCapturedWidth = parseFloat(dragged_obj.style.width); objectCapturedHeight = parseFloat(dragged_obj.style.height); parentObjectCapturedX = parseFloat(parentObject.style.left); parentObjectCapturedY = parseFloat(parentObject.style.top); document.onmousemove = function(event){dragObject(event, corner, min_width, min_height, execute_this_func_while_dragging);}; document.onmouseup = function(){cancelDragging();}; if(browser != 'ie') { e.preventDefault(); } else { event.returnValue = false; } return false; } function cancelDragging() { if(ondragstop_array[dragged_obj.id] != undefined && (objectCapturedX != parseFloat(dragged_obj.style.left) || objectCapturedY != parseFloat(dragged_obj.style.top) || objectCapturedWidth != parseFloat(dragged_obj.style.width) || objectCapturedHeight != parseFloat(dragged_obj.style.height))) { ondragstop_array[dragged_obj.id](); } document.onmousemove = ''; document.onmouseup = ''; } var mouseDistanceTraveledX = 0; var mouseDistanceTraveledY = 0; function dragObject(e, corner, min_width, min_height, execute_this_func_while_dragging) { setMouseXY(e); mouseDistanceTraveledX = mouseX - capturedMouseX; mouseDistanceTraveledY = mouseY - capturedMouseY; if(corner != undefined) { if(min_width == undefined) { min_width = 0; } if(min_height == undefined) { min_height = 0; } if(corner == 'lower_right') { if(objectCapturedWidth + mouseDistanceTraveledX >= min_width) { dragged_obj.style.width = objectCapturedWidth + mouseDistanceTraveledX+"px"; } if(objectCapturedHeight + mouseDistanceTraveledY >= min_height) { dragged_obj.style.height = objectCapturedHeight + mouseDistanceTraveledY+"px"; } } else if(corner == 'lower_left') { if(objectCapturedWidth + mouseDistanceTraveledX*-1 >= min_width) { dragged_obj.style.width = objectCapturedWidth + mouseDistanceTraveledX*-1+"px"; parentObject.style.left = parentObjectCapturedX + mouseDistanceTraveledX+"px"; } if(objectCapturedHeight + mouseDistanceTraveledY >= min_height) { dragged_obj.style.height = objectCapturedHeight + mouseDistanceTraveledY+"px"; } } } else { dragged_obj.style.left = objectCapturedX + mouseDistanceTraveledX+"px"; dragged_obj.style.top = objectCapturedY + mouseDistanceTraveledY+"px"; } if(execute_this_func_while_dragging != undefined) { execute_this_func_while_dragging(); } if(browser != 'ie') { e.preventDefault(); } else { event.returnValue = false; } return false; } var ondragstop_array = new Array(); function onDragStop(id, function_to_run) { ondragstop_array[id] = function_to_run; } function getObjectDimensions(obj) { var obj = getElement(obj); if(browser == 'ie') { var width = obj.offsetWidth; var height = obj.offsetHeight; } else { var padding_left = 0; if(obj.style.paddingLeft != '') { padding_left = parseInt(obj.style.paddingLeft) } var padding_right = 0; if(obj.style.paddingRight != '') { padding_right = parseInt(obj.style.paddingRight) } var padding_top = 0; if(obj.style.paddingTop != '') { padding_top = parseInt(obj.style.paddingTop) } var padding_bottom = 0; if(obj.style.paddingBottom != '') { padding_bottom = parseInt(obj.style.paddingBottom) } var width = obj.clientWidth - padding_left - padding_right; var height = obj.clientHeight - padding_top - padding_bottom; } var array = new Array(); array.width = width; array.height = height; return array; } var expand_contract_running_objects = new Object(); function expandContractStartChecker(obj, time) { if(expand_contract_running_objects[obj] != undefined) { if(time < expand_contract_running_objects[obj]) { return false; } } expand_contract_running_objects[obj] = time; return true; } /** May stutter when uneven numbers are used for incrementations_in_pixels in ie.. **/ var expand_to_this_width = ''; var expand_to_this_height = ''; var expand_object_position_top = ""; var expand_object_position_left = ""; var number_of_expand_images_to_preload = 0; var number_of_expand_images_preloaded = 0; function expandElementIntoView(obj, content, incrementations_in_pixels, function_to_run_when_done, extra_args) { var obj = getElement(obj); if(obj) { if(extra_args == undefined) { var extra_args = new Object(); } if(extra_args.time == undefined) { var date = new Date(); extra_args.time = date.getTime(); } if(!expandContractStartChecker(obj, extra_args.time)) { /** A new function has accessed this obj, thus we need to stop **/ return false; } if(extra_args.step == undefined) { var step = 0; } else { var step = extra_args.step; } if(extra_args.center_in_position == undefined) { var center_in_position = true; } else { var center_in_position = extra_args.center_in_position; } if(incrementations_in_pixels == undefined) { incrementations_in_pixels = 20; } if(step == 0) { extra_args.step = 1; /** We need to determine if the content contains any images that we need to preload **/ var old_content = obj.innerHTML; obj.innerHTML = content; var children = obj.getElementsByTagName('img'); /** Resetting the preload variables **/ number_of_expand_images_to_preload = 0; number_of_expand_images_preloaded = 0; /** Checking the new content for images to preload **/ var images_to_preload_array = new Array(); for(x in children) { if(children[x].src != undefined) { number_of_expand_images_to_preload++; images_to_preload_array.push(children[x].src); } } /** Setting the old content again **/ obj.innerHTML = old_content; if(number_of_expand_images_to_preload == 0) { /** No images to preload, we continue **/ expandElementIntoView(obj, content, incrementations_in_pixels, function_to_run_when_done, extra_args); } else { /** There's images to preload, so we preload them **/ for(x in images_to_preload_array) { preloadThisImage(images_to_preload_array[x], function() { donePreloadImagesForexpandElementIntoView(obj, content, incrementations_in_pixels, function_to_run_when_done, extra_args); } ); } } } else if(step == 1) { /** Saving the objects current position **/ expand_object_position_top = obj.style.top; expand_object_position_left = obj.style.left; /** Inserting the new data **/ obj.innerHTML = content; /** Getting the expand dimensions **/ expand_to_these_dimensions = getObjectDimensions(obj); expand_to_this_width = expand_to_these_dimensions.width; expand_to_this_height = expand_to_these_dimensions.height; if(!center_in_position) { expand_object_position_top = parseFloat(expand_object_position_top) + expand_to_this_height/2+"px"; expand_object_position_left = parseFloat(expand_object_position_left) + expand_to_this_width/2+"px"; } /** Setting object dimensions to zero **/ obj.style.overflow = 'hidden'; obj.style.width = "0px"; obj.style.height = "0px"; /** Adding a div around the content **/ obj.innerHTML = '
'+content+'
'; extra_args.step = 2; expandElementIntoView(obj, content, incrementations_in_pixels, function_to_run_when_done, extra_args); } else if(step == 2) { /** Expanding container width **/ var new_width = expand_to_this_width; if(parseFloat(obj.style.width) < expand_to_this_width) { new_width = parseFloat(obj.style.width)+incrementations_in_pixels; if(new_width > expand_to_this_width) { new_width = expand_to_this_width } obj.style.width = new_width+"px"; } /** Expanding container height **/ var new_height = expand_to_this_height; if(parseFloat(obj.style.height) < expand_to_this_height) { new_height = parseFloat(obj.style.height)+incrementations_in_pixels; if(new_height > expand_to_this_height) { new_height = expand_to_this_height; } obj.style.height = new_height+"px"; } /** Centering the container **/ obj.style.top = (parseFloat(expand_object_position_top))-(parseFloat(obj.style.height)/2)+"px"; obj.style.left = (parseFloat(expand_object_position_left))-(parseFloat(obj.style.width)/2)+"px"; if(parseFloat(obj.style.top) < 0) { obj.style.top = 0; } if(parseFloat(obj.style.left) < 0) { obj.style.left = 0; } /** Centering the content in the container **/ var temp_div = getElement('temp_expand_div'); if(temp_div) { temp_div_dimensions = getObjectDimensions(temp_div); if(new_width == expand_to_this_width) { temp_div.style.left = "0px"; } else { temp_div.style.left = (parseFloat(obj.style.width)/2)-(expand_to_this_width/2)+"px"; } if(new_height == expand_to_this_height) { temp_div.style.top = "0px"; } else { temp_div.style.top = (parseFloat(obj.style.height)/2)-(expand_to_this_height/2)+"px"; } } /** Calling the function again if we aren't done expanding **/ if((new_width < expand_to_this_width || new_height < expand_to_this_height)) { setTimeout(function(){expandElementIntoView(obj, content, incrementations_in_pixels, function_to_run_when_done, extra_args);}, 30); } else { /** We're done, setting the content as it should be **/ obj.innerHTML = content; obj.style.overflow = ''; obj.style.width = ''; obj.style.height = ''; /** Running the function we were to run, if it was set **/ if(function_to_run_when_done != undefined) { function_to_run_when_done(); } } } } else { /** Running the function we were to run, if it was set **/ if(function_to_run_when_done != undefined) { function_to_run_when_done(); } } } function donePreloadImagesForexpandElementIntoView(obj, content, incrementations_in_pixels, function_to_run_when_done, extra_args) { number_of_expand_images_preloaded++; if(number_of_expand_images_preloaded >= number_of_expand_images_to_preload) { expandElementIntoView(obj, content, incrementations_in_pixels, function_to_run_when_done, extra_args); } } function contractElementOutOfView(obj, incrementations_in_pixels, function_to_run_when_done, extra_args) { var obj = getElement(obj); if(obj) { var first = false; if(extra_args == undefined) { var extra_args = new Object(); first = true; } if(extra_args.time == undefined) { var date = new Date(); extra_args.time = date.getTime(); } if(!expandContractStartChecker(obj, extra_args.time)) { /** A new function has accessed this obj, thus we need to stop **/ return false; } if(incrementations_in_pixels == undefined) { incrementations_in_pixels = 20; } var object_dimensions = getObjectDimensions(obj); var new_width = object_dimensions.width-incrementations_in_pixels; var new_height = object_dimensions.height-incrementations_in_pixels; if(new_width < 0) { new_width = 0; } if(new_height < 0) { new_height = 0; } if(first) { /** We create a container for the content **/ var temp_div = document.createElement('div'); temp_div.id = 'temp_contract_div'; temp_div.innerHTML = obj.innerHTML; temp_div.style.position = 'absolute'; obj.innerHTML = ''; obj.appendChild(temp_div); } obj.style.overflow = 'hidden'; obj.style.width = new_width+"px"; obj.style.height = new_height+"px"; obj.style.top = parseFloat(obj.style.top)+(incrementations_in_pixels/2)+"px"; obj.style.left = parseFloat(obj.style.left)+(incrementations_in_pixels/2)+"px"; object_dimensions = getObjectDimensions(obj); /** Centering the content in the container **/ var temp_div = getElement('temp_contract_div'); if(temp_div) { temp_div_dimensions = getObjectDimensions(temp_div); temp_div.style.left = (object_dimensions.width/2)-(temp_div_dimensions.width/2)+"px"; temp_div.style.top = (object_dimensions.height/2)-(temp_div_dimensions.height/2)+"px"; } if(object_dimensions.width > 0 || object_dimensions.height > 0) { setTimeout(function(){contractElementOutOfView(obj, incrementations_in_pixels, function_to_run_when_done, extra_args);}, 30); } else { /** Removing the object from the dom **/ remObj(obj); /** Running the function we were to run, if it was set **/ if(function_to_run_when_done != undefined) { function_to_run_when_done(); } } } else { /** Running the function we were to run, if it was set **/ if(function_to_run_when_done != undefined) { function_to_run_when_done(); } } } function makeElementDragable(obj, drag_handle) { var obj = getElement(obj); if(drag_handle != undefined) { dragable_element_in_data = getElement(drag_handle); dragable_element_in_data.onmousedown = function(event){startDragging(event, obj);}; dragable_element_in_data.onmouseup = function(){cancelDragging();}; } else { obj.onmousedown = function(event){startDragging(event, this);}; obj.onmouseup = function(){cancelDragging();}; } } function makeElementUndragable(obj, drag_handle) { var obj = getElement(obj); if(drag_handle != undefined) { dragable_element_in_data = getElement(drag_handle); dragable_element_in_data.onmousedown = function(){}; dragable_element_in_data.onmouseup = function(){}; } else { obj.onmousedown = function(){}; obj.onmouseup = function(){}; } } var objects_sliding_array = new Array(); function slideInAndOut(obj, direction, run_this_function_when_done, step) { var obj = getElement(obj); if(obj) { if(obj.id == '') { obj.id = createRandomId(); } clearTimeout(objects_sliding_array[obj.id]); var height = obj.getAttribute('preset_height'); var incrementations = 10; if(step == undefined) { step = 1; } if(step == 1) { var obj_dimensions = getObjectDimensions(obj); if(obj.getAttribute('preset_height') == null) { if(obj.style.height != '') { obj.setAttribute('preset_height', obj.style.height); } else { obj.setAttribute('preset_height', obj_dimensions.height); } } obj.style.overflow = 'hidden'; if(direction == 'out' && obj.style.height == '') { obj.style.height = '0px'; } else if(direction == 'in' && obj.style.height == '') { obj.style.height = obj_dimensions.height+'px'; } slideInAndOut(obj, direction, run_this_function_when_done, 2); } else if(step == 2) { var stop_sliding = false; if(direction == 'out') { var new_height = parseFloat(obj.style.height)+incrementations; if(new_height >= height) { new_height = height; stop_sliding = true; } } else if(direction == 'in') { var new_height = parseFloat(obj.style.height)-incrementations; if(new_height <= 0) { new_height = 0; stop_sliding = true; } } obj.style.height = new_height+"px"; if(!stop_sliding) { objects_sliding_array[obj.id] = setTimeout(function(){slideInAndOut(obj, direction, run_this_function_when_done, 2);}, 50); } else if(stop_sliding) { obj.style.height = ''; obj.style.overflow = ''; if(typeof(run_this_function_when_done) === 'function') { run_this_function_when_done(); } } } } } function createRandomId() { var random_id = ''; while(random_id == '' || getElement(random_id)) { var random_number = Math.ceil(Math.random() * 100000); random_id = 'random_'+random_number; } return random_id; } var custom_confirm_boxes_counter = 0; function customConfirm(message, ok_button_value, cancel_button_value, function_to_execute_on_ok, function_to_execute_on_cancel) { if(message != undefined) { custom_confirm_boxes_counter++; if(ok_button_value == undefined) { ok_button_value = 'OK'; } if(cancel_button_value == undefined) { cancel_button_value = 'Cancel'; } var id = 'custom_confirm_box_'+custom_confirm_boxes_counter; var id_ok = 'custom_confirm_box_ok_'+custom_confirm_boxes_counter; var id_cancel = 'custom_confirm_box_cancel_'+custom_confirm_boxes_counter; var data = '
'+message+'
'; createOverlay(data, 'absolute', 'center', 'center', id); getElement(id_ok).onclick = function(){ if(function_to_execute_on_ok != undefined) { function_to_execute_on_ok(); } closeOverlay(id); }; getElement(id_cancel).onclick = function(){ if(function_to_execute_on_cancel != undefined) { function_to_execute_on_cancel(); } closeOverlay(id); }; } } function insertKeyboardPress(obj, keyCode) { var pressEvent = document.createEvent("KeyboardEvent"); pressEvent.initKeyEvent( "keypress", true, true, window, false, false, false, false, keyCode, "".charCodeAt(0) ); var obj = getElement(obj); obj.dispatchEvent(pressEvent); } function preventDefault(e) { if(browser == 'ie' && browser_version != 'not ie') { e.cancelBubble = true; e.returnValue = false; } else { e.stopPropagation(); e.preventDefault(); } } function parseQuery(query) { var params = query.split('&'); var return_object = new Object(); for(x in params) { var array = params[x].split('='); return_object[array[0]] = array[1]; } return return_object; } if (document.getElementsByClassName == undefined) { document.getElementsByClassName = function(className) { var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)"); var allElements = document.getElementsByTagName("*"); var results = []; var element; for (var i = 0; (element = allElements[i]) != null; i++) { var elementClass = element.className; if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass)) results.push(element); } return results; } } function baseSerializeForm(form) { if(form.nodeName == undefined && form.nodeName != 'FORM') { form = document.getElementById(form) || document.forms[0]; } var elems = form.elements; var serialized = [], i, len = elems.length, str=''; for(i = 0; i < len; i += 1) { var element = elems[i]; var type = element.type; var name = element.name; var value = element.value; switch(type) { case 'checkbox': case 'radio': if(element.checked) { str = name + '=' + value; serialized.push(str); } break; case 'hidden': case 'password': case 'text': case 'textarea': case 'select-one': str = name + '=' + value; serialized.push(str); break; default: break; } } return serialized.join('&'); } function baseToggleDisplay(obj) { var obj = getElement(obj); if(obj.style.display == '') { obj.style.display = 'none'; } else { obj.style.display = ''; } } function baseToggleBold(obj) { var obj = getElement(obj); if(obj.style.fontWeight == 'bold') { obj.style.fontWeight = ''; } else { obj.style.fontWeight = 'bold'; } } function baseToggleVisibility(obj) { var obj = getElement(obj); if(obj.style.visibility == 'hidden') { obj.style.visibility = 'visible'; } else { obj.style.visibility = 'hidden'; } } //regarding google graph if (typeof Object.assign != 'function') { Object.assign = function(target) { 'use strict'; if (target == null) { throw new TypeError('Cannot convert undefined or null to object'); } target = Object(target); for (var index = 1; index < arguments.length; index++) { var source = arguments[index]; if (source != null) { for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } } return target; }; } function is_numeric (mixed_var) { // Returns true if value is a number or a numeric string // // version: 909.322 // discuss at: http://phpjs.org/functions/is_numeric // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + improved by: David // + improved by: taith // + bugfixed by: Tim de Koning // * example 1: is_numeric(186.31); // * returns 1: true // * example 2: is_numeric('Kevin van Zonneveld'); // * returns 2: false // * example 3: is_numeric('+186.31e2'); // * returns 3: true // * example 4: is_numeric(''); // * returns 4: false if (mixed_var === '') { return false; } return !isNaN(mixed_var * 1); } function trim (str, charlist) { // Strips whitespace from the beginning and end of a string // // version: 909.322 // discuss at: http://phpjs.org/functions/trim // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + improved by: mdsjack (http://www.mdsjack.bo.it) // + improved by: Alexander Ermolaev (http://snippets.dzone.com/user/AlexanderErmolaev) // + input by: Erkekjetter // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + input by: DxGx // + improved by: Steven Levithan (http://blog.stevenlevithan.com) // + tweaked by: Jack // + bugfixed by: Onno Marsman // * example 1: trim(' Kevin van Zonneveld '); // * returns 1: 'Kevin van Zonneveld' // * example 2: trim('Hello World', 'Hdle'); // * returns 2: 'o Wor' // * example 3: trim(16, 1); // * returns 3: 6 var whitespace, l = 0, i = 0; str += ''; if (!charlist) { // default list whitespace = " \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000"; } else { // preg_quote custom list charlist += ''; whitespace = charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '$1'); } l = str.length; for (i = 0; i < l; i++) { if (whitespace.indexOf(str.charAt(i)) === -1) { str = str.substring(i); break; } } l = str.length; for (i = l - 1; i >= 0; i--) { if (whitespace.indexOf(str.charAt(i)) === -1) { str = str.substring(0, i + 1); break; } } return whitespace.indexOf(str.charAt(0)) === -1 ? str : ''; } function ltrim ( str, charlist ) { // Strips whitespace from the beginning of a string // // version: 1004.2314 // discuss at: http://phpjs.org/functions/ltrim // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + input by: Erkekjetter // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + bugfixed by: Onno Marsman // * example 1: ltrim(' Kevin van Zonneveld '); // * returns 1: 'Kevin van Zonneveld ' charlist = !charlist ? ' \\s\u00A0' : (charlist+'').replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '$1'); var re = new RegExp('^[' + charlist + ']+', 'g'); return (str+'').replace(re, ''); } function rtrim ( str, charlist ) { // Removes trailing whitespace // // version: 1004.2314 // discuss at: http://phpjs.org/functions/rtrim // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + input by: Erkekjetter // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + bugfixed by: Onno Marsman // + input by: rem // + bugfixed by: Brett Zamir (http://brett-zamir.me) // * example 1: rtrim(' Kevin van Zonneveld '); // * returns 1: ' Kevin van Zonneveld' charlist = !charlist ? ' \\s\u00A0' : (charlist+'').replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '\\$1'); var re = new RegExp('[' + charlist + ']+$', 'g'); return (str+'').replace(re, ''); } function ucfirst (str) { // Makes a string's first character uppercase // // version: 1008.1718 // discuss at: http://phpjs.org/functions/ucfirst // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + bugfixed by: Onno Marsman // + improved by: Brett Zamir (http://brett-zamir.me) // * example 1: ucfirst('kevin van zonneveld'); // * returns 1: 'Kevin van zonneveld' str += ''; var f = str.charAt(0).toUpperCase(); return f + str.substr(1); } function str_replace (search, replace, subject, count) { // Replaces all occurrences of search in haystack with replace // // version: 909.322 // discuss at: http://phpjs.org/functions/str_replace // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + improved by: Gabriel Paderni // + improved by: Philip Peterson // + improved by: Simon Willison (http://simonwillison.net) // + revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com) // + bugfixed by: Anton Ongson // + input by: Onno Marsman // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + tweaked by: Onno Marsman // + input by: Brett Zamir (http://brett-zamir.me) // + bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + input by: Oleg Eremeev // + improved by: Brett Zamir (http://brett-zamir.me) // + bugfixed by: Oleg Eremeev // % note 1: The count parameter must be passed as a string in order // % note 1: to find a global variable in which the result will be given // * example 1: str_replace(' ', '.', 'Kevin van Zonneveld'); // * returns 1: 'Kevin.van.Zonneveld' // * example 2: str_replace(['{name}', 'l'], ['hello', 'm'], '{name}, lars'); // * returns 2: 'hemmo, mars' var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0, f = [].concat(search), r = [].concat(replace), s = subject, ra = r instanceof Array, sa = s instanceof Array; s = [].concat(s); if (count) { this.window[count] = 0; } for (i=0, sl=s.length; i < sl; i++) { if (s[i] === '') { continue; } for (j=0, fl=f.length; j < fl; j++) { temp = s[i]+''; repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0]; s[i] = (temp).split(f[j]).join(repl); if (count && s[i] !== temp) { this.window[count] += (temp.length-s[i].length)/f[j].length;} } } return sa ? s : s[0]; } function get_html_translation_table (table, quote_style) { // Returns the internal translation table used by htmlspecialchars and htmlentities // // version: 909.322 // discuss at: http://phpjs.org/functions/get_html_translation_table // + original by: Philip Peterson // + revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + bugfixed by: noname // + bugfixed by: Alex // + bugfixed by: Marco // + bugfixed by: madipta // + improved by: KELAN // + improved by: Brett Zamir (http://brett-zamir.me) // + bugfixed by: Brett Zamir (http://brett-zamir.me) // + input by: Frank Forte // + bugfixed by: T.Wild // + input by: Ratheous // % note: It has been decided that we're not going to add global // % note: dependencies to php.js, meaning the constants are not // % note: real constants, but strings instead. Integers are also supported if someone // % note: chooses to create the constants themselves. // * example 1: get_html_translation_table('HTML_SPECIALCHARS'); // * returns 1: {'"': '"', '&': '&', '<': '<', '>': '>'} var entities = {}, hash_map = {}, decimal = 0, symbol = ''; var constMappingTable = {}, constMappingQuoteStyle = {}; var useTable = {}, useQuoteStyle = {}; // Translate arguments constMappingTable[0] = 'HTML_SPECIALCHARS'; constMappingTable[1] = 'HTML_ENTITIES'; constMappingQuoteStyle[0] = 'ENT_NOQUOTES'; constMappingQuoteStyle[2] = 'ENT_COMPAT'; constMappingQuoteStyle[3] = 'ENT_QUOTES'; useTable = !isNaN(table) ? constMappingTable[table] : table ? table.toUpperCase() : 'HTML_SPECIALCHARS'; useQuoteStyle = !isNaN(quote_style) ? constMappingQuoteStyle[quote_style] : quote_style ? quote_style.toUpperCase() : 'ENT_COMPAT'; if (useTable !== 'HTML_SPECIALCHARS' && useTable !== 'HTML_ENTITIES') { throw new Error("Table: "+useTable+' not supported'); // return false; } entities['38'] = '&'; if (useTable === 'HTML_ENTITIES') { entities['160'] = ' '; entities['161'] = '¡'; entities['162'] = '¢'; entities['163'] = '£'; entities['164'] = '¤'; entities['165'] = '¥'; entities['166'] = '¦'; entities['167'] = '§'; entities['168'] = '¨'; entities['169'] = '©'; entities['170'] = 'ª'; entities['171'] = '«'; entities['172'] = '¬'; entities['173'] = '­'; entities['174'] = '®'; entities['175'] = '¯'; entities['176'] = '°'; entities['177'] = '±'; entities['178'] = '²'; entities['179'] = '³'; entities['180'] = '´'; entities['181'] = 'µ'; entities['182'] = '¶'; entities['183'] = '·'; entities['184'] = '¸'; entities['185'] = '¹'; entities['186'] = 'º'; entities['187'] = '»'; entities['188'] = '¼'; entities['189'] = '½'; entities['190'] = '¾'; entities['191'] = '¿'; entities['192'] = 'À'; entities['193'] = 'Á'; entities['194'] = 'Â'; entities['195'] = 'Ã'; entities['196'] = 'Ä'; entities['197'] = 'Å'; entities['198'] = 'Æ'; entities['199'] = 'Ç'; entities['200'] = 'È'; entities['201'] = 'É'; entities['202'] = 'Ê'; entities['203'] = 'Ë'; entities['204'] = 'Ì'; entities['205'] = 'Í'; entities['206'] = 'Î'; entities['207'] = 'Ï'; entities['208'] = 'Ð'; entities['209'] = 'Ñ'; entities['210'] = 'Ò'; entities['211'] = 'Ó'; entities['212'] = 'Ô'; entities['213'] = 'Õ'; entities['214'] = 'Ö'; entities['215'] = '×'; entities['216'] = 'Ø'; entities['217'] = 'Ù'; entities['218'] = 'Ú'; entities['219'] = 'Û'; entities['220'] = 'Ü'; entities['221'] = 'Ý'; entities['222'] = 'Þ'; entities['223'] = 'ß'; entities['224'] = 'à'; entities['225'] = 'á'; entities['226'] = 'â'; entities['227'] = 'ã'; entities['228'] = 'ä'; entities['229'] = 'å'; entities['230'] = 'æ'; entities['231'] = 'ç'; entities['232'] = 'è'; entities['233'] = 'é'; entities['234'] = 'ê'; entities['235'] = 'ë'; entities['236'] = 'ì'; entities['237'] = 'í'; entities['238'] = 'î'; entities['239'] = 'ï'; entities['240'] = 'ð'; entities['241'] = 'ñ'; entities['242'] = 'ò'; entities['243'] = 'ó'; entities['244'] = 'ô'; entities['245'] = 'õ'; entities['246'] = 'ö'; entities['247'] = '÷'; entities['248'] = 'ø'; entities['249'] = 'ù'; entities['250'] = 'ú'; entities['251'] = 'û'; entities['252'] = 'ü'; entities['253'] = 'ý'; entities['254'] = 'þ'; entities['255'] = 'ÿ'; } if (useQuoteStyle !== 'ENT_NOQUOTES') { entities['34'] = '"'; } if (useQuoteStyle === 'ENT_QUOTES') { entities['39'] = '''; } entities['60'] = '<'; entities['62'] = '>'; // ascii decimals to real symbols for (decimal in entities) { symbol = String.fromCharCode(decimal); hash_map[symbol] = entities[decimal]; } return hash_map; } function html_entity_decode (string, quote_style) { // Convert all HTML entities to their applicable characters // // version: 909.322 // discuss at: http://phpjs.org/functions/html_entity_decode // + original by: john (http://www.jd-tech.net) // + input by: ger // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + bugfixed by: Onno Marsman // + improved by: marc andreu // + revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + bugfixed by: Brett Zamir (http://brett-zamir.me) // + input by: Ratheous // - depends on: get_html_translation_table // * example 1: html_entity_decode('Kevin & van Zonneveld'); // * returns 1: 'Kevin & van Zonneveld' // * example 2: html_entity_decode('&lt;'); // * returns 2: '<' var hash_map = {}, symbol = '', tmp_str = '', entity = ''; tmp_str = string.toString(); if (false === (hash_map = this.get_html_translation_table('HTML_ENTITIES', quote_style))) { return false; } for (symbol in hash_map) { entity = hash_map[symbol]; tmp_str = tmp_str.split(entity).join(symbol); } tmp_str = tmp_str.split(''').join("'"); return tmp_str; } function htmlentities (string, quote_style) { // Convert all applicable characters to HTML entities // // version: 909.322 // discuss at: http://phpjs.org/functions/htmlentities // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + improved by: nobbler // + tweaked by: Jack // + bugfixed by: Onno Marsman // + revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + bugfixed by: Brett Zamir (http://brett-zamir.me) // + input by: Ratheous // - depends on: get_html_translation_table // * example 1: htmlentities('Kevin & van Zonneveld'); // * returns 1: 'Kevin & van Zonneveld' // * example 2: htmlentities("foo'bar","ENT_QUOTES"); // * returns 2: 'foo'bar' var hash_map = {}, symbol = '', tmp_str = '', entity = ''; tmp_str = string.toString(); if (false === (hash_map = this.get_html_translation_table('HTML_ENTITIES', quote_style))) { return false; } hash_map["'"] = '''; for (symbol in hash_map) { entity = hash_map[symbol]; tmp_str = tmp_str.split(symbol).join(entity); } return tmp_str; } function in_array (needle, haystack, argStrict) { // Checks if the given value exists in the array // // version: 911.718 // discuss at: http://phpjs.org/functions/in_array // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + improved by: vlado houba // + input by: Billy // + bugfixed by: Brett Zamir (http://brett-zamir.me) // * example 1: in_array('van', ['Kevin', 'van', 'Zonneveld']); // * returns 1: true // * example 2: in_array('vlado', {0: 'Kevin', vlado: 'van', 1: 'Zonneveld'}); // * returns 2: false // * example 3: in_array(1, ['1', '2', '3']); // * returns 3: true // * example 3: in_array(1, ['1', '2', '3'], false); // * returns 3: true // * example 4: in_array(1, ['1', '2', '3'], true); // * returns 4: false var key = '', strict = !!argStrict; if (strict) { for (key in haystack) { if (haystack[key] === needle) { return true; } } } else { for (key in haystack) { if (haystack[key] == needle) { return true; } } } return false; } function base64_decode (data) { // Decodes string using MIME base64 algorithm // // version: 909.322 // discuss at: http://phpjs.org/functions/base64_decode // + original by: Tyler Akins (http://rumkin.com) // + improved by: Thunder.m // + input by: Aman Gupta // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + bugfixed by: Onno Marsman // + bugfixed by: Pellentesque Malesuada // + 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) // - depends on: utf8_decode // * example 1: base64_decode('S2V2aW4gdmFuIFpvbm5ldmVsZA=='); // * returns 1: 'Kevin van Zonneveld' // mozilla has this native // - but breaks in 2.0.0.12! //if (typeof this.window['btoa'] == 'function') { // return btoa(data); //} var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, dec = "", tmp_arr = []; if (!data) { return data; } data += ''; do { // unpack four hexets into three octets using index points in b64 h1 = b64.indexOf(data.charAt(i++)); h2 = b64.indexOf(data.charAt(i++)); h3 = b64.indexOf(data.charAt(i++)); h4 = b64.indexOf(data.charAt(i++)); bits = h1<<18 | h2<<12 | h3<<6 | h4; o1 = bits>>16 & 0xff; o2 = bits>>8 & 0xff; o3 = bits & 0xff; if (h3 == 64) { tmp_arr[ac++] = String.fromCharCode(o1); } else if (h4 == 64) { tmp_arr[ac++] = String.fromCharCode(o1, o2); } else { tmp_arr[ac++] = String.fromCharCode(o1, o2, o3); } } while (i < data.length); dec = tmp_arr.join(''); dec = this.utf8_decode(dec); return dec; } function utf8_decode ( str_data ) { // Converts a UTF-8 encoded string to ISO-8859-1 // // version: 909.322 // discuss at: http://phpjs.org/functions/utf8_decode // + original by: Webtoolkit.info (http://www.webtoolkit.info/) // + input by: Aman Gupta // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + improved by: Norman "zEh" Fuchs // + bugfixed by: hitwork // + bugfixed by: Onno Marsman // + input by: Brett Zamir (http://brett-zamir.me) // + bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // * example 1: utf8_decode('Kevin van Zonneveld'); // * returns 1: 'Kevin van Zonneveld' var tmp_arr = [], i = 0, ac = 0, c1 = 0, c2 = 0, c3 = 0; str_data += ''; while ( i < str_data.length ) { c1 = str_data.charCodeAt(i); if (c1 < 128) { tmp_arr[ac++] = String.fromCharCode(c1); i++; } else if ((c1 > 191) && (c1 < 224)) { c2 = str_data.charCodeAt(i+1); tmp_arr[ac++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63)); i += 2; } else { c2 = str_data.charCodeAt(i+1); c3 = str_data.charCodeAt(i+2); tmp_arr[ac++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3; } } return tmp_arr.join(''); } /** * Function : print_r() * Arguments: The data - array,hash(associative array),object * The level - OPTIONAL * Returns : The textual representation of the array. * This function was inspired by the print_r function of PHP. * This will accept some data as the argument and return a * text that will be a more readable version of the * array/hash/object that is given. */ function print_r(arr,level) { var dumped_text = ""; if(!level) level = 0; //The padding given at the beginning of the line. var level_padding = ""; for(var j=0;j \"" + value + "\"\n"; } } } else { //Stings/Chars/Numbers etc. dumped_text = "===>"+arr+"<===("+typeof(arr)+")"; } return dumped_text; } function number_format (number, decimals, dec_point, thousands_sep) { // Formats a number with grouped thousands // // version: 906.1806 // discuss at: http://phpjs.org/functions/number_format // + original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com) // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + bugfix by: Michael White (http://getsprink.com) // + bugfix by: Benjamin Lupton // + bugfix by: Allan Jensen (http://www.winternet.no) // + revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com) // + bugfix by: Howard Yeend // + revised by: Luke Smith (http://lucassmith.name) // + bugfix by: Diogo Resende // + bugfix by: Rival // + input by: Kheang Hok Chin (http://www.distantia.ca/) // + improved by: davook // + improved by: Brett Zamir (http://brett-zamir.me) // + input by: Jay Klehr // + improved by: Brett Zamir (http://brett-zamir.me) // + input by: Amir Habibi (http://www.residence-mixte.com/) // + bugfix by: Brett Zamir (http://brett-zamir.me) // * example 1: number_format(1234.56); // * returns 1: '1,235' // * example 2: number_format(1234.56, 2, ',', ' '); // * returns 2: '1 234,56' // * example 3: number_format(1234.5678, 2, '.', ''); // * returns 3: '1234.57' // * example 4: number_format(67, 2, ',', '.'); // * returns 4: '67,00' // * example 5: number_format(1000); // * returns 5: '1,000' // * example 6: number_format(67.311, 2); // * returns 6: '67.31' // * example 7: number_format(1000.55, 1); // * returns 7: '1,000.6' // * example 8: number_format(67000, 5, ',', '.'); // * returns 8: '67.000,00000' // * example 9: number_format(0.9, 0); // * returns 9: '1' // * example 10: number_format('1.20', 2); // * returns 10: '1.20' // * example 11: number_format('1.20', 4); // * returns 11: '1.2000' // * example 12: number_format('1.2000', 3); // * returns 12: '1.200' var n = number, prec = decimals; var toFixedFix = function (n,prec) { var k = Math.pow(10,prec); return (Math.round(n*k)/k).toString(); }; n = !isFinite(+n) ? 0 : +n; prec = !isFinite(+prec) ? 0 : Math.abs(prec); var sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep; var dec = (typeof dec_point === 'undefined') ? '.' : dec_point; var s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec); //fix for IE parseFloat(0.55).toFixed(0) = 0; var abs = toFixedFix(Math.abs(n), prec); var _, i; if (abs >= 1000) { _ = abs.split(/\D/); i = _[0].length % 3 || 3; _[0] = s.slice(0,i + (n < 0)) + _[0].slice(i).replace(/(\d{3})/g, sep+'$1'); s = _.join(dec); } else { s = s.replace('.', dec); } var decPos = s.indexOf(dec); if (prec >= 1 && decPos !== -1 && (s.length-decPos-1) < prec) { s += new Array(prec-(s.length-decPos-1)).join(0)+'0'; } else if (prec >= 1 && decPos === -1) { s += dec+new Array(prec).join(0)+'0'; } return s; } function parse_url (str, component) { // Parse a URL and return its components // // version: 1004.2314 // discuss at: http://phpjs.org/functions/parse_url // + original by: Steven Levithan (http://blog.stevenlevithan.com) // + reimplemented by: Brett Zamir (http://brett-zamir.me) // % note: Based on http://stevenlevithan.com/demo/parseuri/js/assets/parseuri.js // % note: blog post at http://blog.stevenlevithan.com/archives/parseuri // % note: demo at http://stevenlevithan.com/demo/parseuri/js/assets/parseuri.js // % note: Does not replace invaild characters with '_' as in PHP, nor does it return false with // % note: a seriously malformed URL. // % note: Besides function name, is the same as parseUri besides the commented out portion // % note: and the additional section following, as well as our allowing an extra slash after // % note: the scheme/protocol (to allow file:/// as in PHP) // * example 1: parse_url('http://username:password@hostname/path?arg=value#anchor'); // * returns 1: {scheme: 'http', host: 'hostname', user: 'username', pass: 'password', path: '/path', query: 'arg=value', fragment: 'anchor'} var o = { strictMode: false, key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], q: { name: "queryKey", parser: /(?:^|&)([^&=]*)=?([^&]*)/g }, parser: { strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/\/?)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ // Added one optional slash to post-protocol to catch file:/// (should restrict this) } }; var m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), uri = {}, i = 14; while (i--) {uri[o.key[i]] = m[i] || "";} // Uncomment the following to use the original more detailed (non-PHP) script // uri[o.q.name] = {}; // uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { // if ($1) uri[o.q.name][$1] = $2; // }); return uri; switch (component) { case 'PHP_URL_SCHEME': return uri.protocol; case 'PHP_URL_HOST': return uri.host; case 'PHP_URL_PORT': return uri.port; case 'PHP_URL_USER': return uri.user; case 'PHP_URL_PASS': return uri.password; case 'PHP_URL_PATH': return uri.path; case 'PHP_URL_QUERY': return uri.query; case 'PHP_URL_FRAGMENT': return uri.anchor; default: var retArr = {}; if (uri.protocol !== '') {retArr.scheme=uri.protocol;} if (uri.host !== '') {retArr.host=uri.host;} if (uri.port !== '') {retArr.port=uri.port;} if (uri.user !== '') {retArr.user=uri.user;} if (uri.password !== '') {retArr.pass=uri.password;} if (uri.path !== '') {retArr.path=uri.path;} if (uri.query !== '') {retArr.query=uri.query;} if (uri.anchor !== '') {retArr.fragment=uri.anchor;} return retArr; } } function nl2br (str, is_xhtml) { // http://kevin.vanzonneveld.net // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + improved by: Philip Peterson // + improved by: Onno Marsman // + improved by: Atli r // + bugfixed by: Onno Marsman // + input by: Brett Zamir (http://brett-zamir.me) // + bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + improved by: Brett Zamir (http://brett-zamir.me) // + improved by: Maximusya // * example 1: nl2br('Kevin\nvan\nZonneveld'); // * returns 1: 'Kevin
\nvan
\nZonneveld' // * example 2: nl2br("\nOne\nTwo\n\nThree\n", false); // * returns 2: '
\nOne
\nTwo
\n
\nThree
\n' // * example 3: nl2br("\nOne\nTwo\n\nThree\n", true); // * returns 3: '
\nOne
\nTwo
\n
\nThree
\n' var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '
' : '
'; // Adjust comment to avoid issue on phpjs.org display return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + breakTag + '$2'); } function urlencode (str) { // URL-encodes string // // version: 911.718 // discuss at: http://phpjs.org/functions/urlencode // + original by: Philip Peterson // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + input by: AJ // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + improved by: Brett Zamir (http://brett-zamir.me) // + bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + input by: travc // + input by: Brett Zamir (http://brett-zamir.me) // + bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + improved by: Lars Fischer // + input by: Ratheous // + reimplemented by: Brett Zamir (http://brett-zamir.me) // + bugfixed by: Joris // + reimplemented by: Brett Zamir (http://brett-zamir.me) // % note 1: This reflects PHP 5.3/6.0+ behavior // % note 2: Please be aware that this function expects to encode into UTF-8 encoded strings, as found on // % note 2: pages served as UTF-8 // * example 1: urlencode('Kevin van Zonneveld!'); // * returns 1: 'Kevin+van+Zonneveld%21' // * example 2: urlencode('http://kevin.vanzonneveld.net/'); // * returns 2: 'http%3A%2F%2Fkevin.vanzonneveld.net%2F' // * example 3: urlencode('http://www.google.nl/search?q=php.js&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:unofficial&client=firefox-a'); // * returns 3: 'http%3A%2F%2Fwww.google.nl%2Fsearch%3Fq%3Dphp.js%26ie%3Dutf-8%26oe%3Dutf-8%26aq%3Dt%26rls%3Dcom.ubuntu%3Aen-US%3Aunofficial%26client%3Dfirefox-a' str = (str+'').toString(); // Tilde should be allowed unescaped in future versions of PHP (as reflected below), but if you want to reflect current // PHP behavior, you would need to add ".replace(/~/g, '%7E');" to the following. return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28'). replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+'); } /* http://www.JSON.org/json2.js 2010-03-20 Public Domain. NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. See http://www.JSON.org/js.html This code should be minified before deployment. See http://javascript.crockford.com/jsmin.html USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO NOT CONTROL. This file creates a global JSON object containing two methods: stringify and parse. JSON.stringify(value, replacer, space) value any JavaScript value, usually an object or array. replacer an optional parameter that determines how object values are stringified for objects. It can be a function or an array of strings. space an optional parameter that specifies the indentation of nested structures. If it is omitted, the text will be packed without extra whitespace. If it is a number, it will specify the number of spaces to indent at each level. If it is a string (such as '\t' or ' '), it contains the characters used to indent at each level. This method produces a JSON text from a JavaScript value. When an object value is found, if the object contains a toJSON method, its toJSON method will be called and the result will be stringified. A toJSON method does not serialize: it returns the value represented by the name/value pair that should be serialized, or undefined if nothing should be serialized. The toJSON method will be passed the key associated with the value, and this will be bound to the value For example, this would serialize Dates as ISO strings. Date.prototype.toJSON = function (key) { function f(n) { // Format integers to have at least two digits. return n < 10 ? '0' + n : n; } return this.getUTCFullYear() + '-' + f(this.getUTCMonth() + 1) + '-' + f(this.getUTCDate()) + 'T' + f(this.getUTCHours()) + ':' + f(this.getUTCMinutes()) + ':' + f(this.getUTCSeconds()) + 'Z'; }; You can provide an optional replacer method. It will be passed the key and value of each member, with this bound to the containing object. The value that is returned from your method will be serialized. If your method returns undefined, then the member will be excluded from the serialization. If the replacer parameter is an array of strings, then it will be used to select the members to be serialized. It filters the results such that only members with keys listed in the replacer array are stringified. Values that do not have JSON representations, such as undefined or functions, will not be serialized. Such values in objects will be dropped; in arrays they will be replaced with null. You can use a replacer function to replace those with JSON values. JSON.stringify(undefined) returns undefined. The optional space parameter produces a stringification of the value that is filled with line breaks and indentation to make it easier to read. If the space parameter is a non-empty string, then that string will be used for indentation. If the space parameter is a number, then the indentation will be that many spaces. Example: text = JSON.stringify(['e', {pluribus: 'unum'}]); // text is '["e",{"pluribus":"unum"}]' text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t'); // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]' text = JSON.stringify([new Date()], function (key, value) { return this[key] instanceof Date ? 'Date(' + this[key] + ')' : value; }); // text is '["Date(---current time---)"]' JSON.parse(text, reviver) This method parses a JSON text to produce an object or array. It can throw a SyntaxError exception. The optional reviver parameter is a function that can filter and transform the results. It receives each of the keys and values, and its return value is used instead of the original value. If it returns what it received, then the structure is not modified. If it returns undefined then the member is deleted. Example: // Parse the text. Values that look like ISO date strings will // be converted to Date objects. myData = JSON.parse(text, function (key, value) { var a; if (typeof value === 'string') { a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); if (a) { return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], +a[5], +a[6])); } } return value; }); myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) { var d; if (typeof value === 'string' && value.slice(0, 5) === 'Date(' && value.slice(-1) === ')') { d = new Date(value.slice(5, -1)); if (d) { return d; } } return value; }); This is a reference implementation. You are free to copy, modify, or redistribute. */ /*jslint evil: true, strict: false */ /*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, lastIndex, length, parse, prototype, push, replace, slice, stringify, test, toJSON, toString, valueOf */ // Create a JSON object only if one does not already exist. We create the // methods in a closure to avoid creating global variables. if (!this.JSON) { this.JSON = {}; } (function () { function f(n) { // Format integers to have at least two digits. return n < 10 ? '0' + n : n; } if (typeof Date.prototype.toJSON !== 'function') { Date.prototype.toJSON = function (key) { return isFinite(this.valueOf()) ? this.getUTCFullYear() + '-' + f(this.getUTCMonth() + 1) + '-' + f(this.getUTCDate()) + 'T' + f(this.getUTCHours()) + ':' + f(this.getUTCMinutes()) + ':' + f(this.getUTCSeconds()) + 'Z' : null; }; String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function (key) { return this.valueOf(); }; } var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, gap, indent, meta = { // table of character substitutions '\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"' : '\\"', '\\': '\\\\' }, rep; function quote(string) { // If the string contains no control characters, no quote characters, and no // backslash characters, then we can safely slap some quotes around it. // Otherwise we must also replace the offending characters with safe escape // sequences. escapable.lastIndex = 0; return escapable.test(string) ? '"' + string.replace(escapable, function (a) { var c = meta[a]; return typeof c === 'string' ? c : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); }) + '"' : '"' + string + '"'; } function str(key, holder) { // Produce a string from holder[key]. var i, // The loop counter. k, // The member key. v, // The member value. length, mind = gap, partial, value = holder[key]; // If the value has a toJSON method, call it to obtain a replacement value. if (value && typeof value === 'object' && typeof value.toJSON === 'function') { value = value.toJSON(key); } // If we were called with a replacer function, then call the replacer to // obtain a replacement value. if (typeof rep === 'function') { value = rep.call(holder, key, value); } // What happens next depends on the value's type. switch (typeof value) { case 'string': return quote(value); case 'number': // JSON numbers must be finite. Encode non-finite numbers as null. return isFinite(value) ? String(value) : 'null'; case 'boolean': case 'null': // If the value is a boolean or null, convert it to a string. Note: // typeof null does not produce 'null'. The case is included here in // the remote chance that this gets fixed someday. return String(value); // If the type is 'object', we might be dealing with an object or an array or // null. case 'object': // Due to a specification blunder in ECMAScript, typeof null is 'object', // so watch out for that case. if (!value) { return 'null'; } // Make an array to hold the partial results of stringifying this object value. gap += indent; partial = []; // Is the value an array? if (Object.prototype.toString.apply(value) === '[object Array]') { // The value is an array. Stringify every element. Use null as a placeholder // for non-JSON values. length = value.length; for (i = 0; i < length; i += 1) { partial[i] = str(i, value) || 'null'; } // Join all of the elements together, separated with commas, and wrap them in // brackets. v = partial.length === 0 ? '[]' : gap ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' : '[' + partial.join(',') + ']'; gap = mind; return v; } // If the replacer is an array, use it to select the members to be stringified. if (rep && typeof rep === 'object') { length = rep.length; for (i = 0; i < length; i += 1) { k = rep[i]; if (typeof k === 'string') { v = str(k, value); if (v) { partial.push(quote(k) + (gap ? ': ' : ':') + v); } } } } else { // Otherwise, iterate through all of the keys in the object. for (k in value) { if (Object.hasOwnProperty.call(value, k)) { v = str(k, value); if (v) { partial.push(quote(k) + (gap ? ': ' : ':') + v); } } } } // Join all of the member texts together, separated with commas, // and wrap them in braces. v = partial.length === 0 ? '{}' : gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' : '{' + partial.join(',') + '}'; gap = mind; return v; } } JSON.myStringify = function (value, replacer, space) { value = myStringifier(value); return JSON.stringify(value, replacer, space); }; function myStringifier(value) { if(typeof value === 'object') { for(x in value) { value[x] = str_replace("#", "%23", value[x]); value[x] = str_replace("&", "%26", value[x]); } } else { value = str_replace("#", "%23", value); value = str_replace("&", "%26", value); } return value; } // If the JSON object does not yet have a stringify method, give it one. if (typeof JSON.stringify !== 'function') { JSON.stringify = function (value, replacer, space) { // The stringify method takes a value and an optional replacer, and an optional // space parameter, and returns a JSON text. The replacer can be a function // that can replace values, or an array of strings that will select the keys. // A default replacer method can be provided. Use of the space parameter can // produce text that is more easily readable. var i; gap = ''; indent = ''; // If the space parameter is a number, make an indent string containing that // many spaces. if (typeof space === 'number') { for (i = 0; i < space; i += 1) { indent += ' '; } // If the space parameter is a string, it will be used as the indent string. } else if (typeof space === 'string') { indent = space; } // If there is a replacer, it must be a function or an array. // Otherwise, throw an error. rep = replacer; if (replacer && typeof replacer !== 'function' && (typeof replacer !== 'object' || typeof replacer.length !== 'number')) { throw new Error('JSON.stringify'); } // Make a fake root object containing our value under the key of ''. // Return the result of stringifying the value. return str('', {'': value}); }; } // If the JSON object does not yet have a parse method, give it one. if (typeof JSON.parse !== 'function') { JSON.parse = function (text, reviver) { // The parse method takes a text and an optional reviver function, and returns // a JavaScript value if the text is a valid JSON text. var j; function walk(holder, key) { // The walk method is used to recursively walk the resulting structure so // that modifications can be made. var k, v, value = holder[key]; if (value && typeof value === 'object') { for (k in value) { if (Object.hasOwnProperty.call(value, k)) { v = walk(value, k); if (v !== undefined) { value[k] = v; } else { delete value[k]; } } } } return reviver.call(holder, key, value); } // Parsing happens in four stages. In the first stage, we replace certain // Unicode characters with escape sequences. JavaScript handles many characters // incorrectly, either silently deleting them, or treating them as line endings. text = String(text); cx.lastIndex = 0; if (cx.test(text)) { text = text.replace(cx, function (a) { return '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); }); } // In the second stage, we run the text against regular expressions that look // for non-JSON patterns. We are especially concerned with '()' and 'new' // because they can cause invocation, and '=' because it can cause mutation. // But just to be safe, we want to reject all unexpected forms. // We split the second stage into 4 regexp operations in order to work around // crippling inefficiencies in IE's and Safari's regexp engines. First we // replace the JSON backslash pairs with '@' (a non-JSON character). Second, we // replace all simple value tokens with ']' characters. Third, we delete all // open brackets that follow a colon or comma or that begin the text. Finally, // we look to see that the remaining characters are only whitespace or ']' or // ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. if (/^[\],:{}\s]*$/. test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@'). replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']'). replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { // In the third stage we use the eval function to compile the text into a // JavaScript structure. The '{' operator is subject to a syntactic ambiguity // in JavaScript: it can begin a block or an object literal. We wrap the text // in parens to eliminate the ambiguity. j = eval('(' + text + ')'); // In the optional fourth stage, we recursively walk the new structure, passing // each name/value pair to a reviver function for possible transformation. return typeof reviver === 'function' ? walk({'': j}, '') : j; } // If the text is not JSON parseable, then a SyntaxError is thrown. throw new SyntaxError('JSON.parse'); }; } }()); /** * author: Timothy Groves - http://www.brandspankingnew.net * version: 1.2 - 2006-11-17 * 1.3 - 2006-12-04 * 2.0 - 2007-02-07 * */ var useBSNns; if (useBSNns) { if (typeof(bsn) == "undefined") bsn = {} _bsn = bsn; } else { _bsn = this; } if (typeof(_bsn.Autosuggest) == "undefined") _bsn.Autosuggest = {} _bsn.AutoSuggest = function (fldID, param) { // no DOM - give up! // if (!document.getElementById) return false; // get field via DOM // this.fld = _bsn.DOM.getElement(fldID); if (!this.fld) return false; // init variables // this.sInput = ""; this.nInputChars = 0; this.aSuggestions = []; this.iHighlighted = 0; // parameters object // this.oP = (param) ? param : {}; // defaults // if (!this.oP.minchars) this.oP.minchars = 1; if (!this.oP.method) this.oP.meth = "get"; if (!this.oP.varname) this.oP.varname = "input"; if (!this.oP.className) this.oP.className = "autosuggest"; if (!this.oP.timeout) this.oP.timeout = 2500; if (!this.oP.delay) this.oP.delay = 500; if (!this.oP.offsety) this.oP.offsety = -5; if (!this.oP.shownoresults) this.oP.shownoresults = false; if (!this.oP.noresults) this.oP.noresults = "No results!"; if (!this.oP.maxheight && this.oP.maxheight !== 0) this.oP.maxheight = 250; if (!this.oP.cache && this.oP.cache != false) this.oP.cache = true; // set keyup handler for field // and prevent autocomplete from client // var pointer = this; // NOTE: not using addEventListener because UpArrow fired twice in Safari //_bsn.DOM.addEvent( this.fld, 'keyup', function(ev){ return pointer.onKeyPress(ev); } ); this.fld.onkeypress = function(ev){ return pointer.onKeyPress(ev); } this.fld.onkeyup = function(ev){ return pointer.onKeyUp(ev); } this.fld.setAttribute("autocomplete","off"); } _bsn.AutoSuggest.prototype.onKeyPress = function(ev) { var key = (window.event) ? window.event.keyCode : ev.keyCode; // set responses to keydown events in the field // this allows the user to use the arrow keys to scroll through the results // ESCAPE clears the list // TAB sets the current highlighted value // var RETURN = 13; var TAB = 9; var ESC = 27; var bubble = true; switch(key) { case RETURN: var element_count = 0; for(key in this.aSuggestions) { element_count++; } if (element_count == 1) { // this.iHighlighted = 1; } if(this.iHighlighted > 0) { this.setHighlightedValue(); bubble = false; break; } case ESC: this.clearSuggestions(); break; } return bubble; } _bsn.AutoSuggest.prototype.onKeyUp = function(ev) { var key = (window.event) ? window.event.keyCode : ev.keyCode; // set responses to keydown events in the field // this allows the user to use the arrow keys to scroll through the results // ESCAPE clears the list // TAB sets the current highlighted value // var ARRUP = 38; var ARRDN = 40; var bubble = true; switch(key) { case ARRUP: this.changeHighlight(key); bubble = false; break; case ARRDN: this.changeHighlight(key); bubble = false; break; default: this.getSuggestions(this.fld.value); } return bubble; } _bsn.AutoSuggest.prototype.getSuggestions = function (val) { // if input stays the same, do nothing // if (val == this.sInput) return false; // input length is less than the min required to trigger a request // reset input string // do nothing // if (val.length < this.oP.minchars) { this.sInput = ""; return false; } // if caching enabled, and user is typing (ie. length of input is increasing) // filter results out of aSuggestions from last request // if (val.length>this.nInputChars && this.aSuggestions.length && this.oP.cache) { var arr = []; for (var i=0;i" + val.substring(st, st+strings[n].length) + "" + val.substring(st+strings[n].length); } arr[i].value = val; } output = val; var span = _bsn.DOM.createElement("span", {}, output, true); if (arr[i].info != "" ) { var br = _bsn.DOM.createElement("br", {}); span.appendChild(br); var small = _bsn.DOM.createElement("small", {}, arr[i].info); span.appendChild(small); } var a = _bsn.DOM.createElement("a", { href:"#" }); var tl = _bsn.DOM.createElement("span", {className:"tl"}, " "); var tr = _bsn.DOM.createElement("span", {className:"tr"}, " "); a.appendChild(tl); a.appendChild(tr); a.appendChild(span); a.name = i+1; a.onclick = function () { pointer.setHighlightedValue(); return false; } a.onmouseover = function () { pointer.setHighlight(this.name); } var li = _bsn.DOM.createElement( "li", {}, a ); ul.appendChild( li ); } // no results // if (arr.length == 0) { var li = _bsn.DOM.createElement( "li", {className:"as_warning"}, this.oP.noresults ); ul.appendChild( li ); } div.appendChild( ul ); var fcorner = _bsn.DOM.createElement("div", {className:"as_corner"}); var fbar = _bsn.DOM.createElement("div", {className:"as_bar"}); var footer = _bsn.DOM.createElement("div", {className:"as_footer"}); footer.appendChild(fcorner); footer.appendChild(fbar); div.appendChild(footer); // get position of target textfield // position holding div below it // set width of holding div to width of field // var pos = _bsn.DOM.getPos(this.fld); div.style.left = pos.x + "px"; div.style.top = ( pos.y + this.fld.offsetHeight + this.oP.offsety ) + "px"; if (this.oP.width) { div.style.width = this.oP.width + "px"; } else { div.style.width = this.fld.offsetWidth + "px"; } // set mouseover functions for div // when mouse pointer leaves div, set a timeout to remove the list after an interval // when mouse enters div, kill the timeout so the list won't be removed // div.onmouseover = function(){ pointer.killTimeout() } div.onmouseout = function(){ pointer.resetTimeout() } // add DIV to document // if (arr.length > 0 || this.oP.shownoresults) { document.getElementsByTagName("body")[0].appendChild(div); } // currently no item is highlighted // this.iHighlighted = 0; // remove list after an interval // var pointer = this; this.toID = setTimeout(function () { pointer.clearSuggestions() }, this.oP.timeout); } _bsn.AutoSuggest.prototype.changeHighlight = function(key) { var list = _bsn.DOM.getElement("as_ul"); if (!list) return false; var n; if (key == 40) n = this.iHighlighted + 1; else if (key == 38) n = this.iHighlighted - 1; if (n > list.childNodes.length) n = list.childNodes.length; if (n < 1) n = 1; this.setHighlight(n); } _bsn.AutoSuggest.prototype.setHighlight = function(n) { var list = _bsn.DOM.getElement("as_ul"); if (!list) return false; if (this.iHighlighted > 0) this.clearHighlight(); this.iHighlighted = Number(n); list.childNodes[this.iHighlighted-1].className = "as_highlight"; this.killTimeout(); } _bsn.AutoSuggest.prototype.clearHighlight = function() { var list = _bsn.DOM.getElement("as_ul"); if (!list) return false; if (this.iHighlighted > 0) { list.childNodes[this.iHighlighted-1].className = ""; this.iHighlighted = 0; } } _bsn.AutoSuggest.prototype.setHighlightedValue = function () { if (this.iHighlighted) { this.sInput = this.fld.value = this.aSuggestions[ this.iHighlighted-1 ].value; // move cursor to end of input (safari) // this.fld.focus(); if (this.fld.selectionStart) this.fld.setSelectionRange(this.sInput.length, this.sInput.length); this.clearSuggestions(); // pass selected object to callback function, if exists // if (typeof(this.oP.callback) == "function") this.oP.callback( this.aSuggestions[this.iHighlighted-1] ); } } _bsn.AutoSuggest.prototype.killTimeout = function() { clearTimeout(this.toID); } _bsn.AutoSuggest.prototype.resetTimeout = function() { clearTimeout(this.toID); var pointer = this; this.toID = setTimeout(function () { pointer.clearSuggestions() }, 1000); } _bsn.AutoSuggest.prototype.clearSuggestions = function () { this.killTimeout(); var ele = _bsn.DOM.getElement(this.idAs); var pointer = this; if (ele) { var fade = new _bsn.Fader(ele,1,0,250,function () { _bsn.DOM.removeElement(pointer.idAs) }); } } // AJAX PROTOTYPE _____________________________________________ if (typeof(_bsn.Ajax) == "undefined") _bsn.Ajax = {} _bsn.Ajax = function () { this.req = {}; this.isIE = false; } var prev_reqs; _bsn.Ajax.prototype.makeRequest = function (url, meth, onComp, onErr) { if (meth != "POST") meth = "GET"; this.onComplete = onComp; this.onError = onErr; var pointer = this; if (prev_reqs) { prev_reqs.abort(); delete prev_reqs; } // branch for native XMLHttpRequest object if (window.XMLHttpRequest) { this.req = new XMLHttpRequest(); this.req.onreadystatechange = function () { pointer.processReqChange() }; this.req.open("GET", url, true); // this.req.send(null); prev_reqs = this.req; // branch for IE/Windows ActiveX version } else if (window.ActiveXObject) { this.req = new ActiveXObject("Microsoft.XMLHTTP"); if (this.req) { this.req.onreadystatechange = function () { pointer.processReqChange() }; this.req.open(meth, url, true); this.req.send(); } } } _bsn.Ajax.prototype.processReqChange = function() { // only if req shows "loaded" if (this.req.readyState == 4) { // only if "OK" if (this.req.status == 200) { this.onComplete( this.req ); } else { this.onError( this.req.status ); } } } // DOM PROTOTYPE _____________________________________________ if (typeof(_bsn.DOM) == "undefined") _bsn.DOM = {} _bsn.DOM.createElement = function ( type, attr, cont, html ) { var ne = document.createElement( type ); if (!ne) return false; for (var a in attr) ne[a] = attr[a]; if (typeof(cont) == "string" && !html) ne.appendChild( document.createTextNode(cont) ); else if (typeof(cont) == "string" && html) ne.innerHTML = cont; else if (typeof(cont) == "object") ne.appendChild( cont ); return ne; } _bsn.DOM.clearElement = function ( id ) { var ele = this.getElement( id ); if (!ele) return false; while (ele.childNodes.length) ele.removeChild( ele.childNodes[0] ); return true; } _bsn.DOM.removeElement = function ( ele ) { var e = this.getElement(ele); if (!e) return false; else if (e.parentNode.removeChild(e)) return true; else return false; } _bsn.DOM.replaceContent = function ( id, cont, html ) { var ele = this.getElement( id ); if (!ele) return false; this.clearElement( ele ); if (typeof(cont) == "string" && !html) ele.appendChild( document.createTextNode(cont) ); else if (typeof(cont) == "string" && html) ele.innerHTML = cont; else if (typeof(cont) == "object") ele.appendChild( cont ); } _bsn.DOM.getElement = function ( ele ) { if (typeof(ele) == "undefined") { return false; } else if (typeof(ele) == "string") { var re = document.getElementById( ele ); if (!re) return false; else if (typeof(re.appendChild) != "undefined" ) { return re; } else { return false; } } else if (typeof(ele.appendChild) != "undefined") return ele; else return false; } _bsn.DOM.appendChildren = function ( id, arr ) { var ele = this.getElement( id ); if (!ele) return false; if (typeof(arr) != "object") return false; for (var i=0;i'+caption+''; } function addItemToShoppingCart(varenr) { var query_array = new Array(); query_array.action = 'addItemToShoppingCart'; query_array.varenr = varenr; query_array.delivery_number = getElement('delivery_address_'+varenr).value; query_array.packaging = getElement('packaging_'+varenr).value; query_array.silo = getElement('silo_'+varenr).value; query_array.delivery_date_from = getElement('delivery_from_'+varenr).value; query_array.delivery_date_to = getElement('delivery_to_'+varenr).value; query_array.comment = getElement('comment_'+varenr).value; query_array.quantity = getElement('quantity_'+varenr).value; query_array.contractnr = getElement('contractnr_'+varenr).value; if(!is_numeric(query_array.quantity)) { alert('Antallet skal vre et tal'); return false; } if(query_array.packaging === '') { alert('Pakning skal udfyldes'); return false; } var query = 'ajax/standard.php'+createQueryString(query_array); ajaxRequest('GET', query, handleAddItemToShoppingCart); } function createQueryString(query_array) { var query = '?'; for(x in query_array) { query += x+"="+query_array[x]+"&"; } return trim(query, "&"); } var simple_search_timer; function handleSimpleSearch(obj) { clearTimeout(simple_search_timer); if(obj.value != '') { if(obj.value == obj.getAttribute('default_text')) { obj.value = ''; } } else { simple_search_timer = setTimeout(function(){obj.value = obj.getAttribute('default_text');}, 100); } } function handleInputMessageDisplay(obj) { if(obj.value != '') { if(obj.value == obj.getAttribute('default_text')) { obj.value = ''; } } else { obj.value = obj.getAttribute('default_text'); } } function checkSearchForm(should_i_submit) { var return_value = false; var obj = getElement('search_input'); var default_text = obj.getAttribute('default_text'); if(obj.value != default_text) { return_value = true; } if(should_i_submit && return_value) { document.search_form.submit(); } else { return return_value; } } var currently_active_sub_menu; function showSubMenu(id) { /** De nye og de gamle under menuer bliver forhbentlig ikke brugt p samme tid**/ if(getElement('sub_menu_container_'+id)) { if(getElement('sub_menu_container_'+currently_active_sub_menu)) { getElement('sub_menu_container_'+currently_active_sub_menu).style.display = 'none'; getElement('top_menu_link_container_'+currently_active_sub_menu).style.backgroundColor = ''; getElement('top_menu_link_square_'+currently_active_sub_menu).style.visibility = 'hidden'; } if(id != currently_active_sub_menu) { getElement('sub_menu_container_'+id).style.display = ''; getElement('top_menu_link_square_'+id).style.visibility = 'visible'; if(id != 34) { getElement('top_menu_link_container_'+id).style.backgroundColor = '#ebebeb'; } currently_active_sub_menu = id; } else { currently_active_sub_menu = ''; } } else { var counter = 0; if(getElement('sub_menu_container_'+currently_active_sub_menu+'_'+counter)) { while(getElement('sub_menu_container_'+currently_active_sub_menu+'_'+counter)) { getElement('sub_menu_container_'+currently_active_sub_menu+'_'+counter).style.display = 'none'; counter++; } getElement('top_menu_link_container_'+currently_active_sub_menu).style.backgroundColor = ''; getElement('top_menu_link_container_'+currently_active_sub_menu).onmouseout = function(){ this.style.backgroundColor = ''; }; } if(id != currently_active_sub_menu) { counter = 0; while(getElement('sub_menu_container_'+id+'_'+counter)) { getElement('sub_menu_container_'+id+'_'+counter).style.display = ''; counter++; } if(id != 34) { getElement('top_menu_link_container_'+id).style.backgroundColor = '#ebebeb'; getElement('top_menu_link_container_'+id).onmouseout = function(){ this.style.backgroundColor = '#ebebeb'; }; } currently_active_sub_menu = id; } else { currently_active_sub_menu = ''; } if(currently_active_vilo_top_menu != '' || currently_active_vilo_sub_menu != '' || currently_active_vilo_sub_counter_menu != '') { // showViloSubMenu(currently_active_vilo_top_menu, currently_active_vilo_sub_menu, currently_active_vilo_sub_counter_menu); } } } var currently_active_vilo_top_menu; var currently_active_vilo_sub_menu; var currently_active_vilo_sub_counter_menu; function showViloSubMenu(top_id, sub_id, sub_menu_counter) { var counter = 0; if(getElement('sub_menu_container_'+currently_active_vilo_top_menu+'_'+currently_active_vilo_sub_counter_menu)) { while(getElement('submenus_'+currently_active_vilo_top_menu+'_'+currently_active_vilo_sub_menu+'_'+counter)) { getElement('submenus_'+currently_active_vilo_top_menu+'_'+currently_active_vilo_sub_menu+'_'+counter).style.display = 'none'; counter++; } getElement('sub_menu_container_'+currently_active_vilo_top_menu+'_'+currently_active_vilo_sub_counter_menu).style.backgroundColor = ''; getElement('sub_menu_container_'+currently_active_vilo_top_menu+'_'+currently_active_vilo_sub_counter_menu).onmouseout = function(){ this.style.backgroundColor = ''; }; } if(sub_id == undefined && sub_menu_counter == undefined) { if(currently_active_sub_menu != '') { showSubMenu(currently_active_sub_menu); } /** Skjuler de synlige **/ if(getElement('top_menu_link_container_'+currently_active_vilo_top_menu)) { getElement('top_menu_link_container_'+currently_active_vilo_top_menu).style.backgroundColor = ''; getElement('top_menu_link_container_'+currently_active_vilo_top_menu).onmouseout = function(){ this.style.backgroundColor = ''; }; } counter = 0; while(getElement('sub_menu_container_'+currently_active_vilo_top_menu+'_'+counter)) { getElement('sub_menu_container_'+currently_active_vilo_top_menu+'_'+counter).style.display = 'none'; counter++; } if(getElement('sub_menu_container_'+currently_active_vilo_top_menu+'_'+currently_active_vilo_sub_counter_menu)) { getElement('sub_menu_container_'+currently_active_vilo_top_menu+'_'+currently_active_vilo_sub_counter_menu).style.backgroundColor = ''; getElement('sub_menu_container_'+currently_active_vilo_top_menu+'_'+currently_active_vilo_sub_counter_menu).onmouseout = function(){ this.style.backgroundColor = ''; }; } if(top_id == currently_active_vilo_top_menu) { /** Vi skal blot lukke de bne **/ currently_active_vilo_top_menu = ''; currently_active_vilo_sub_menu = ''; currently_active_vilo_sub_counter_menu = ''; return; } /** Viser dem der nu skal vises **/ if(getElement('top_menu_link_container_'+top_id)) { getElement('top_menu_link_container_'+top_id).style.backgroundColor = '#ebebeb'; getElement('top_menu_link_container_'+top_id).onmouseout = function(){ this.style.backgroundColor = '#ebebeb'; }; } counter = 0; while(getElement('sub_menu_container_'+top_id+'_'+counter)) { getElement('sub_menu_container_'+top_id+'_'+counter).style.display = ''; counter++; } currently_active_vilo_top_menu = top_id; currently_active_vilo_sub_menu = ''; currently_active_vilo_sub_counter_menu = ''; } else if(top_id != currently_active_vilo_top_menu || sub_id != currently_active_vilo_sub_menu || sub_menu_counter != currently_active_vilo_sub_counter_menu) { counter = 0; while(getElement('submenus_'+top_id+'_'+sub_id+'_'+counter)) { getElement('submenus_'+top_id+'_'+sub_id+'_'+counter).style.display = ''; counter++; } getElement('sub_menu_container_'+top_id+'_'+sub_menu_counter).style.backgroundColor = '#ebebeb'; getElement('sub_menu_container_'+top_id+'_'+sub_menu_counter).onmouseout = function(){ this.style.backgroundColor = '#ebebeb'; }; currently_active_vilo_top_menu = top_id; currently_active_vilo_sub_menu = sub_id; currently_active_vilo_sub_counter_menu = sub_menu_counter; } else { currently_active_vilo_top_menu = ''; currently_active_vilo_sub_menu = ''; currently_active_vilo_sub_counter_menu = ''; } } var saved_innerhtml_array = new Array(); function editCustomerValue(obj, value_being_changed, cvm_customers_id) { if (!cvm_customers_id) { cvm_customers_id = 0; } var parent_obj = obj.parentNode; var new_innerhtml = ''; new_innerhtml += ''; new_innerhtml += ' '; new_innerhtml += ' '; saved_innerhtml_array[value_being_changed] = new Array(); saved_innerhtml_array[value_being_changed].parent = parent_obj; saved_innerhtml_array[value_being_changed].innerhtml = parent_obj.innerHTML; parent_obj.innerHTML = new_innerhtml; getElement(value_being_changed).focus(); getElement(value_being_changed).focus(); $("#"+value_being_changed).keypress(function(e) { if(e.which == 13) { acceptEditCustomerValue(value_being_changed, cvm_customers_id); } }); } function acceptEditCustomerValue(value_being_changed, cvm_customers_id) { if ((value_being_changed == 'EMAIL' || value_being_changed == 'EMAIL_EKSTRAKVIT' || value_being_changed == 'EMAIL_EKSTRAKVIT2') && getElement(value_being_changed).value.length > 0 && !verifyEmail(getElement(value_being_changed).value)) { alert('Email adressen er ikke gyldig.'); return false; } ajaxRequest('GET', 'ajax/standard.php?action=updateCustomerData&cvm_customers_id='+cvm_customers_id+'&value_being_updated='+value_being_changed+'&new_value='+getElement(value_being_changed).value, function(){handleAcceptEditCustomerValue(value_being_changed);}); } function forsend_print_save() { if (!verifyEmail(getElement('forsend_print_email').value)) { alert('Email adressen er ikke gyldig.'); return false; } var newemail = getElement('forsend_print_email').value; ajaxRequest('GET', 'ajax/standard.php?action=updateCustomerData&value_being_updated=EMAIL&new_value='+newemail+'&forsend_print=1', function(){location.href='?action=shop_stamblad';}); } function forsend_print_edit(email) { createVeil(50, true, "#000000"); data = '
'; data += 'Spar gebyret f bilag p mail'; data += '

'; data += 'F dine relevante bilag som f.eks. fakturaer, afregningsbilag og nyhedsbreve direkte i din mailboks - og spar de 32,50 kr., som det koster at modtage fakturaer m.v. med post.'; data += '

'; data += ''; data += '
E-mail:
'; data += '
'; createOverlay(data, undefined, undefined, undefined, "change_forsend_overlay"); addCloseButtonToOverlay("change_forsend_overlay", function(){closeOverlay("change_forsend_overlay");closeVeil(true);}); } function verifyEmail(email) { var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i; if (email.search(emailRegEx) == -1) { return false; } return true; } function handleAcceptEditCustomerValue(value_being_changed) { /** Fjerner den gamle fejlbesked **/ remObj('stamdata_error_message_container'); var change_value = true; var data = ajax_request_obj.responseText; if(data !== '') { data = JSON.parse(data); if(data !== "1") { change_value = false; } } if(change_value) { var new_value = getElement(value_being_changed).value; saved_innerhtml_array[value_being_changed].parent.setAttribute('default_value', new_value); saved_innerhtml_array[value_being_changed].parent.innerHTML = saved_innerhtml_array[value_being_changed].innerhtml; getElement(value_being_changed+'_data').innerHTML = new_value; } else { saved_innerhtml_array[value_being_changed].parent.innerHTML = saved_innerhtml_array[value_being_changed].innerhtml; var new_tr = document.createElement('tr'); new_tr.id = 'stamdata_error_message_container'; new_tr.style.backgroundColor = '#F6F7F7'; var new_td = document.createElement('td'); new_td.colSpan = '2'; var error_message_div = document.createElement('div'); error_message_div.style.color = 'red'; error_message_div.innerHTML = data; new_td.appendChild(error_message_div); new_tr.appendChild(new_td); getElement(value_being_changed+'_data').parentNode.parentNode.parentNode.appendChild(new_tr); } } function updateCustomerValue(field_to_update, value, cvm_customer_id, fix_true_false, functionToCallAfterUpdate) { if(fix_true_false != undefined && fix_true_false) { if(value === true) { value = '1'; } else if(value === false) { value = '0'; } } ajaxRequest('GET', 'ajax/standard.php?action=updateCustomerData&cvm_customers_id='+cvm_customer_id+'&value_being_updated='+urlencode(field_to_update)+'&new_value='+urlencode(value)+'&utf8_encoded=1', functionToCallAfterUpdate); } function displayElementIfValueChange(obj_to_display, obj_value_container) { var obj_to_display = getElement(obj_to_display); var obj_value_container = getElement(obj_value_container); if(obj_to_display && obj_value_container) { var original_value = obj_value_container.getAttribute('original_value'); var current_value = obj_value_container.value; if(obj_value_container.nodeName == 'INPUT' && obj_value_container.type == 'checkbox') { /** Hvis det er en checkbox s skal vrdien lses via checked i stedet og original_value ndres ogs lidt **/ if(original_value == '1' || original_value === true) { original_value = 1; } else { original_value = 0; } if(obj_value_container.checked) { current_value = 1; } else { current_value = 0; } } if(original_value == current_value) { /** Skjuler elementet da vrdien ikke er ndret **/ obj_to_display.style.display = 'none'; } else { /** Viser elementet da vrdien er ndret **/ obj_to_display.style.display = ''; } } } function declineEditCustomerValue(value_being_changed) { saved_innerhtml_array[value_being_changed].parent.innerHTML = saved_innerhtml_array[value_being_changed].innerhtml; } function redirectVariant(select_obj) { window.location = '?action=shop_show_item&varenr='+select_obj.value; } window.onload = jf(window.onload, function(){setTimeout(siteLoaded, 0)}); function siteLoaded() { if(getElement('site_container')) { getElement('site_container').style.visibility = ''; } if(getElement('kampagne_left_phone_button')) { getElement('kampagne_left_phone_button').style.visibility = ''; } remObj('site_load_hide'); } function showLargeImage(img_src) { createVeil(50, true, '#000000',function(){ createOverlay(''+img_src+'', undefined, undefined, undefined, 'demo'); addCloseButtonToOverlay('demo', function(){ closeOverlay(); closeVeil(true); }); }); } function showLargeImageCarousel(id, varenr) { createVeil(50, true, '#000000',function() { ajaxRequest('GET','?action=shop_show_item_images&varenr='+varenr+'&id='+id, function() { createOverlay('', undefined, undefined, undefined, 'show_large_image_carousel_div'); addCloseButtonToOverlay('show_large_image_carousel_div', function() { closeOverlay(); closeVeil(true); }); }); }); } function changeImageInImageCarousel(id, varenr) { createVeil(50, true, '#000000',function() { ajaxRequest('GET','?action=shop_show_item_images&varenr='+varenr+'&id='+id, function() { getElement('show_large_image_carousel_container').innerHTML = ajax_request_obj.responseText; }); }); } function showLargePriceGraph(varenr, entrycount) { if (typeof(prisudvikling_offset) == 'undefined') { entrycount_remember = entrycount; prisudvikling_offset = 0; } var html = '
'; if (entrycount > 15) { html += '
'; html += ''; html += ''; } html += '
'; createVeil(50, true, '#000000',function(){ createOverlay(html, undefined, undefined, undefined, 'demo'); addCloseButtonToOverlay('demo', function(){ closeOverlay(); closeVeil(true); }); }); } function limitInputLength(obj, length) { if ((obj.id == 'comment' || obj.id.match('comment_')) && typeof(tank_beskrivelse) != 'undefined') { length -= tank_beskrivelse.length+2; } if(obj.value.length >= length) { obj.value = obj.value.substr(0, length); } } function showQuickSwitch(obj, salesman, afd, kundenr) { left_offset = -200; if(browser == 'ie' && browser_version < 8) { left_offset = -250; } var salesmanhome = advanced_search = ''; if (salesman && salesman!=0) { advanced_search = 'Avanceret sgning'; if ((afd*10000+kundenr) != 999999) { salesmanhome = 'G til startside'; } } var data = '
'+salesmanhome+''+advanced_search+'
'; createOverlay(data, 'absolute', 20, left_offset, 'quick_switch', obj); addCloseButtonToOverlay('quick_switch'); getElement('quick_switch_string').focus(); if (typeof(as_json) != 'undefined') { as_json.clearSuggestions(); } var options = { script:"ajax/shop_users_autosuggest.php?json=true&", varname:"search", json:true, delay:300, cache:false, timeout:20000, offsety:-1, callback: function (obj) { getElement('quick_switch_string').value = obj.id; getElement('quick_switch_form').submit(); } }; as_json = new AutoSuggest('quick_switch_string', options); } function verifyCustomerEntered() { if (typeof(getElement('quick_switch_string')) == 'undefined') { return false; } var testvalue = getElement('quick_switch_string').value; testvalue = testvalue.replace(/[\W]/g,''); if (!is_numeric(testvalue)) { return false; } return true; } function showSameCvrSwitch(obj,loginlinks) { var data = '
'+loginlinks+'
'; createOverlay(data, 'absolute', 20, -150, 'sameCvrSwitch', obj); addCloseButtonToOverlay('sameCvrSwitch'); } function getUpdatedDeliveryRules(delivery_address_id, item_unit_type, varenr, contract_number, chem_daytoday) { if (chem_daytoday == 1) { chem_daytoday = 'y'; } else { chem_daytoday = 'n'; } var query_array = new Array(); query_array.action = 'getDeliveryRule'; query_array.delivery_address_id = delivery_address_id; query_array.item_unit_type = item_unit_type; query_array.varenr = varenr; query_array.daytoday = chem_daytoday; query_array.contract_number = contract_number; /** Vi skal ogs have leveringsmetoden hevet med over **/ if(typeof active_contract_number != 'undefined' && getElement('delivery_form_'+active_contract_number)) { query_array.leveringsmetode = urlencode(getElement('delivery_form_'+active_contract_number).value); } else { query_array.leveringsmetode = urlencode(getElement('delivery_form').value); } var query = createQueryString(query_array); ajaxRequest('GET', 'ajax/standard.php'+query, handleGetUpdatedDeliveryRules); } function toggleAddressSiloDisplay(id_of_delivery_method, id_of_address_container, id_of_silo_container, id_of_deliverydate_container, id_of_saturday_container) { var delivery_method_obj = getElement(id_of_delivery_method); if(delivery_method_obj.value == 'afhentet') { getElement(id_of_address_container).style.display = 'none'; getElement(id_of_silo_container).style.display = 'none'; getElement(id_of_deliverydate_container).style.display = ''; getElement(id_of_saturday_container).style.display = 'none'; } else { getElement(id_of_address_container).style.display = ''; getElement(id_of_silo_container).style.display = ''; getElement(id_of_deliverydate_container).style.display = ''; if(typeof primerGetUpdatedDeliveryRules == 'function') { // do nothing } else { getElement(id_of_saturday_container).style.display = ''; } } if(typeof primerGetUpdatedDeliveryRules == 'function') { primerGetUpdatedDeliveryRules(); } } function getDeliveryAddresses_period(fromdate, todate, addresses_checked, delivery_addresses_options) { var query_array = new Array(); query_array.action = 'getDeliveryAddresses_period'; query_array.fromdate = fromdate; query_array.todate = todate; query_array.addresses_checked = addresses_checked; query_array.delivery_addresses_options = delivery_addresses_options var query = createQueryString(query_array); ajaxRequest('GET', 'ajax/standard.php'+query, handleGetDeliveryaddresses_period); } function handleGetDeliveryaddresses_period() { var html = ''; var addresses_array = JSON.parse(ajax_request_obj.responseText) var checked_total = 0; var addresses_total = 0; var counter = 0; for(key in addresses_array) { var checked = ''; if (addresses_array[key][1] == 1) { checked = ' checked'; checked_total++; } addresses_total++; html += '
'; counter++; } html += ''; if (addresses_total < 2) { getElement('delivery_addresses_main').style.display = 'none'; if(typeof getPlangrupperForBuySellStatistics == 'function') { getPlangrupperForBuySellStatistics(); } return; } getElement('delivery_addresses_checkboxes').innerHTML = html; getElement('delivery_addresses_main').style.display = ''; if (checked_total != addresses_total) { getElement('delivery_addresses_box').style.display = ''; } if(typeof getPlangrupperForBuySellStatistics == 'function') { getPlangrupperForBuySellStatistics(); } } function toggleSlide(obj) { if(obj.style.display == '') { slideInAndOut(obj.id, 'in', function(){obj.style.display = 'none'}); } else { obj.style.display = ''; slideInAndOut(obj.id, 'out'); } } function toggleAjaxOrdre(ordre, webid) { if (typeof(OrdreContainerShowing) == 'string' && OrdreContainerShowing == ordre+'_'+webid) { getElement('order_container_'+ordre+'_'+webid).innerHTML = ''; OrdreContainerShowing = null; return; } if (typeof(OrdreContainerShowing) == 'string' && getElement('order_container_'+OrdreContainerShowing).innerHTML != '') { getElement('order_container_'+OrdreContainerShowing).innerHTML = '' } OrdreContainerShowing = ordre+'_'+webid; ajaxRequest('GET', '?ajax=true&action=shop_show_order&order='+ordre+'&webid='+webid, handleAjaxOrdre); } function handleAjaxOrdre() { if (getElement('order_container_'+OrdreContainerShowing)) { getElement('order_container_'+OrdreContainerShowing).innerHTML = '
'+ajax_request_obj.responseText+'
'; } } var saved_editvalue_array = new Array(); function editValue(obj, updated, type, extra_data) { var parent_obj = obj.parentNode; var new_id = 'change_this_'+type+'_'+updated; var new_innerhtml = ''; new_innerhtml += ''; new_innerhtml += ' '; new_innerhtml += ' '; saved_editvalue_array[new_id] = new Array(); saved_editvalue_array[new_id].parent = parent_obj; saved_editvalue_array[new_id].innerhtml = parent_obj.innerHTML; saved_editvalue_array[new_id].extra_data = extra_data; parent_obj.innerHTML = new_innerhtml; getElement(new_id).focus(); } function acceptEditValue(updated, type) { var new_id = 'change_this_'+type+'_'+updated; /** Tjekker lige om adressen er gyldig, hvis det er en email **/ var updated_check = updated.toLowerCase(); if ((updated_check == 'email' || updated_check == 'email_ekstrakvit' || updated_check == 'email_ekstrakvit2') && getElement(new_id).value.length > 0 && !verifyEmail(getElement(new_id).value)) { alert('Email adressen er ikke gyldig.'); return false; } var extra_data = saved_editvalue_array[new_id].extra_data; ajaxRequest('GET', 'ajax/standard.php?action=editDataValue&type='+type+'&update='+updated+'&new_value='+getElement(new_id).value+'&extra_data='+extra_data, function(){handleAcceptEditValue(updated, type);}); } function handleAcceptEditValue(updated, type) { var new_id = 'change_this_'+type+'_'+updated; var new_value = getElement(new_id).value; saved_editvalue_array[new_id].parent.innerHTML = saved_editvalue_array[new_id].innerhtml; getElement(type+'_'+updated).innerHTML = new_value; } function declineEditValue(updated, type) { var new_id = 'change_this_'+type+'_'+updated; saved_editvalue_array[new_id].parent.innerHTML = saved_editvalue_array[new_id].innerhtml; } function inputScenarios(scenario, event, do_this_on_enter) { if(scenario == 'k/s-stat') { var keycode = event.keyCode; if((keycode >= 48 && keycode <= 57) || (keycode >= 37 && keycode <= 40) || (keycode >= 96 && keycode <= 105) || keycode == 109 || keycode == 9 || keycode == 13 || keycode == 8 || keycode == 35 || keycode == 36) { } else { preventDefault(event); } } } function orderStatsPeriodeChanged() { getDeliveryAddresses_period(getElement('date_from_selecter').value, getElement('date_to_selecter').value); } function item_favorites_toggle(varenr, action) { getElement('favorites_'+varenr).onclick = function(){item_favorites_toggle(varenr, (action == 'add' ? 'remove' : 'add'));} getElement('favorites_'+varenr).src = '/images/favorites'+(action == 'add' ? '_yellow' : '')+'.png'; getElement('star_text_'+varenr).innerHTML = (action == 'add' ? 'Fjern fra favoritter' : 'Tilfj til favoritter'); ajaxRequest('GET', 'ajax/item.php?action=item_favorites_toggle&action2='+action+'&varenr='+varenr); var data = '
Varen er '+(action == 'add' ? 'tilfjet' : 'fjernet fra')+' din favoritliste
'; fadeInFadeOutAndRemove(data, 500); } function show_tankvalg(kontraktnr) { var leveringsadresseid = 0; if (getElement('leveringsadresse')) { leveringsadresseid = getElement('leveringsadresse').value; } else if (getElement('leveringsadresse_'+kontraktnr)) { leveringsadresseid = getElement('leveringsadresse_'+kontraktnr).value; } else if (getElement('leverings_adresse_hidden')) { leveringsadresseid = getElement('leverings_adresse_hidden').value; } if (!leveringsadresseid) { alert('Vlg frst en leveringsadresse'); return; } data = '
'; data += ' Henter...'; data += '
'; createOverlay(data, undefined, undefined, undefined, 'tankvalg_overlay'); addCloseButtonToOverlay('tankvalg_overlay', function(){closeOverlay('tankvalg_overlay');}); var query_array = new Array(); query_array.action = 'tankvalg'; query_array.silo = (getElement('silo') ? getElement('silo').value : getElement('silo_'+kontraktnr).value); query_array.kontraktnr = (kontraktnr ? kontraktnr : 0); query_array.leveringsadressenr = leveringsadresseid; var query = createQueryString(query_array); ajaxRequest('GET', 'ajax/standard.php'+query, function(){handle_show_tankvalg()}); } function handle_show_tankvalg() { var response = JSON.parse(ajax_request_obj.responseText); getElement('tankvalg_container').innerHTML = response['html']; } function tankvalg_select(kontraktnr) { var tanknr = 0; for(var i=1; i<100; i++) { if (getElement('tank_'+i) && getElement('tank_'+i).checked) { tanknr = i; tankbeskrivelse = getElement('tank_'+i).value; } } if (!tanknr) { alert('Du skal vlge en tank'); return; } if (!tankbeskrivelse) { alert('Du skal give tanken en beskrivelse, fr den kan anvendes til bestilling'); tank_edit_enable(tanknr); return false; } //global variabel - bruges i begrnsningen af kommentarfeltet tank_beskrivelse = tankbeskrivelse; if (getElement('silo')) { getElement('tankvalg_string').innerHTML = tankbeskrivelse; getElement('silo').value = tanknr; limitInputLength(getElement('comment'), 90); } else { getElement('tankvalg_string_'+kontraktnr).innerHTML = tankbeskrivelse; getElement('silo_'+kontraktnr).value = tanknr; limitInputLength(getElement('comment_'+kontraktnr), 90); } closeOverlay('tankvalg_overlay'); } function tank_edit_enable(tanknr) { getElement('anvend_button').disabled = 'disabled'; getElement('anvend_button').readonly = 'readonly'; getElement('tank_beskrivelse_container_'+tanknr).style.display = 'none'; getElement('tank_beskrivelse_edit_'+tanknr).style.display = ''; getElement('tank_edit_pencil_'+tanknr).style.display = 'none'; getElement('tank_beskrivelse_input_'+tanknr).focus(); getElement('tank_beskrivelse_input_'+tanknr).value = trim(getElement('tank_beskrivelse_container_'+tanknr).innerHTML); } function tank_edit_cancel(tanknr) { getElement('anvend_button').disabled = false; getElement('anvend_button').readonly = false; getElement('tank_beskrivelse_edit_'+tanknr).style.display = 'none'; getElement('tank_beskrivelse_container_'+tanknr).style.display = ''; getElement('tank_edit_pencil_'+tanknr).style.display = ''; } function tank_edit_save(tanknr) { tank_edit_cancel(tanknr); var tank_beskrivelse = trim(getElement('tank_beskrivelse_input_'+tanknr).value); getElement('tank_beskrivelse_container_'+tanknr).innerHTML = tank_beskrivelse; getElement('tank_beskrivelse_container_'+tanknr).style.display = ''; getElement('tank_'+tanknr).value = tank_beskrivelse; var query_array = new Array(); query_array.action = 'tank_edit_save'; query_array.tanknr = tanknr; query_array.tanktxt = tank_beskrivelse; var query = createQueryString(query_array); ajaxRequest('GET', 'ajax/standard.php'+query, function(){handle_save_tankvalg()}); } function handle_save_tankvalg() { //nothing to do, really... } function selectbox(options_array, selected_ids, field_name, selected_value, extra) { var html = ''; return html; } // EKONTROL function ekontrol_helptext(text) { var data = '
'; data += text; data += '
'; createOverlay(data, undefined, undefined, undefined, 'ekontrol_helptext_container'); addCloseButtonToOverlay('ekontrol_helptext_container', function(){close_ekontrol_helptext_overlay()}); } function close_ekontrol_helptext_overlay() { closeOverlay('ekontrol_helptext_container'); } function ajaxSaveForm(form, call_when_saved) { var action = form.action; var method = form.method; var form_serialized = baseSerializeForm(form); if(method == 'post') { ajaxRequest('POST', action, call_when_saved, form_serialized); } else { action += form_serialized; ajaxRequest('GET', action, call_when_saved); } return false; } function openFoderkurvePopup(url) { popupWindow(url, '_blank', 1200, 900, 'status=1,toolbar=0,resizable=1,scrollbars=1,menubar=1,location=1,directories=1'); } function openSoberegnerPopup(url) { popupWindow(url, '_blank', 1200, 900, 'status=1,toolbar=0,resizable=1,scrollbars=1,menubar=1,location=1,directories=1'); } function ekontrol_period_edit(ekontrol_id, period) { var data = '
'; data += ' Henter...'; data += '
'; createOverlay(data, 'absolute', undefined, undefined, 'ekontrol_period_edit'); addCloseButtonToOverlay('ekontrol_period_edit', function(){closeOverlay('ekontrol_period_edit')}); ajaxRequest('GET', 'ajax/ekontrol.php?action=ekontrol_period_edit&ekontrol_id='+ekontrol_id+'&period='+period, function(){handle_ekontrol_period_edit()}); } function handle_ekontrol_period_edit() { var response = JSON.parse(ajax_request_obj.responseText); getElement('ekontrol_period_edit_container').innerHTML = response['html']; } function ekontrol_period_save(period_id) { ajaxRequest('GET', 'ajax/ekontrol.php?action=ekontrol_period_save&period_id='+period_id+'&foder_start='+document.getElementById('foder_start').value+'&ekontrol_id='+document.getElementById('ekontrol_id').value+'&date_start='+document.getElementById('date_from_selecter').value+'&date_stop='+document.getElementById('date_to_selecter').value+'&avg_weight='+getElement('avg_weight').value+'&pigs_on_status='+getElement('pigs_on_status').value, function(){handle_ekontrol_period_save()}); } function ekontrol_period_remove(period_id) { if (confirm('Slet perioden?')) { ajaxRequest('GET', 'ajax/ekontrol.php?action=ekontrol_period_remove&period_id='+period_id, function(){handle_ekontrol_period_save()}); } } function handle_ekontrol_period_save() { var data_array = JSON.parse(ajax_request_obj.responseText); if(data_array.result == 1) { location.reload(); } else { alert(data_array.message); } } var ekontrol_period_summation_select_url = null; function ekontrol_period_summation_select(url, obj) { ekontrol_period_summation_select_url = url; var choices_array = new Array; choices_array['Se fra start'] = 0; choices_array['100 dage'] = 100; choices_array['200 dage'] = 200; choices_array['300 dage'] = 300; choices_array['1 r'] = '1_year'; choices_array['400 dage'] = 400; choices_array['600 dage'] = 600; var div = '
' div += '
Vlg summeringsperiode
'; div += '
'; div += ' '; div += '
'; div += '
'; createOverlay(div, 'absolute', 20, -50, 'summation_select', obj); addCloseButtonToOverlay('summation_select'); } function ekontrol_period_summation_select_redirect(value) { if(value != '') { window.location = '/index.php?'+ekontrol_period_summation_select_url+'&sumperiode='+value; closeOverlay('summation_select'); } } function searchAutoSuggest() { if (typeof(as_json) != 'undefined') { as_json.clearSuggestions(); } var options = { script:"ajax/search_autosuggest.php?json=true&", varname:"search", json:true, omit_highlight:true, delay:300, minchars:3, cache:false, timeout:20000, offsety:-1, width:300, callback: function (obj) { getElement('search_input').value = ''; window.location.href = obj.id; return false; } }; as_json = new AutoSuggest('search_input', options); } function ekontrol_foder_edit(id) { getElement('kvantum_input['+id+']').value = getElement('kvantum_text['+id+']').innerHTML; getElement('kvantum_save['+id+']').style.display = ''; getElement('kvantum_cancel['+id+']').style.display = ''; getElement('kvantum_input['+id+']').style.display = ''; getElement('kvantum_input['+id+']').select(); getElement('kvantum_pencil['+id+']').style.display = 'none'; getElement('kvantum_restore_div['+id+']').style.display = 'none'; getElement('kvantum_text['+id+']').style.display = 'none'; } function ekontrol_foder_save(id) { ajaxRequest('GET', 'ajax/standard.php?action=ekontrol_foder_ajust&id='+id+'&quantity_new='+getElement('kvantum_input['+id+']').value, handle_ekontrol_foder_save); getElement('kvantum_save['+id+']').style.display = 'none'; getElement('kvantum_cancel['+id+']').style.display = 'none'; getElement('kvantum_input['+id+']').style.display = 'none'; getElement('kvantum_working['+id+']').style.display = ''; } function ekontrol_foder_restore(id) { ajaxRequest('GET', 'ajax/standard.php?action=ekontrol_foder_restore&id='+id, handle_ekontrol_foder_restore); getElement('kvantum_pencil['+id+']').style.display = 'none'; getElement('kvantum_restore_div['+id+']').style.display = 'none'; getElement('kvantum_text['+id+']').style.display = 'none'; getElement('kvantum_working['+id+']').style.display = ''; } function handle_ekontrol_foder_save() { var result = JSON.parse(ajax_request_obj.responseText); if(result['status'] == 1) { getElement('kvantum_text['+result['id']+']').innerHTML = result['quantity_new']; getElement('amount['+result['id']+']').innerHTML = result['amount_new']; getElement('kvantum_restore['+result['id']+']').style.display = ''; ekontrol_foder_edit_close(result['id']); } else { alert('Noget gik galt. ndringen er muligvis ikke gemt.'); } } function handle_ekontrol_foder_restore() { var result = JSON.parse(ajax_request_obj.responseText); if(result['status'] == 1) { getElement('kvantum_text['+result['id']+']').innerHTML = result['quantity_new']; getElement('amount['+result['id']+']').innerHTML = result['amount_new']; getElement('kvantum_restore['+result['id']+']').style.display = 'none'; ekontrol_foder_edit_close(result['id']); } else { alert('Noget gik galt. ndringen er muligvis ikke gemt.'); } } function ekontrol_foder_edit_close(id) { getElement('kvantum_working['+id+']').style.display = 'none'; getElement('kvantum_save['+id+']').style.display = 'none'; getElement('kvantum_cancel['+id+']').style.display = 'none'; getElement('kvantum_input['+id+']').style.display = 'none'; getElement('kvantum_pencil['+id+']').style.display = ''; getElement('kvantum_restore_div['+id+']').style.display = 'inline-block'; getElement('kvantum_text['+id+']').style.display = ''; } function email_marketing_change(obj) { ajaxRequest('GET', 'ajax/standard.php?action=email_marketing&field='+obj.name+'&value='+obj.value, function(){ handle_email_marketing_change(obj.value); }); } function handle_email_marketing_change(value) { if(ajax_request_obj.responseText == 1) { if(value == 1) { getElement('newsletter_subscribe_container').style.color = 'black'; getElement('newsletter_subscribe_container').style.backgroundColor = 'transparent'; } else { getElement('newsletter_subscribe_container').style.color = 'white'; getElement('newsletter_subscribe_container').style.backgroundColor = '#849938'; } var data = '
'+_t_no_front('ndringen er gemt')+'
'; fadeInFadeOutAndRemove(data, 500); } else { alert(_t_no_front('Noget gik galt - ndringen er muligvis ikke gemt')); } } function overlayAjaxOrdre(ordre, webid, source, date) { var source = (typeof source == 'undefined' ? 'order' : source); var trs = document.getElementsByTagName('tr'); for(key in trs) { if(typeof(trs[key]['id']) != 'undefined' && trs[key]['id'].match('order_id_')) { trs[key].style.backgroundColor = ''; } } data = '
'; data += '
'; data += ' '; data += '
'; data += '
'; if(getElement('order_overlay_container_inner')) { getElement('order_overlay_container_inner').innerHTML = data; } else { createOverlay(data, undefined, undefined, undefined, 'order_overlay_container'); addCloseButtonToOverlay('order_overlay_container', function(){closeOverlay('order_overlay_container');}); } dateinject = ''; if(typeof(date) !== "undefined" && date !== "undefined") { dateinject = '&dato_bilag='+date; } if(source == 'overview') { ajaxRequest('GET', '?ajax=true&action=shop_show_order&order='+ordre+'&source='+source+dateinject, function(){handleOverlayAjaxOrdre(ordre, webid, source);}); } else { ajaxRequest('GET', '?ajax=true&action=shop_show_order&order='+ordre+'&webid='+webid+'&source='+source+dateinject, function(){handleOverlayAjaxOrdre(ordre, webid, source);}); } } function handleOverlayAjaxOrdre(ordre, webid, source) { try { var result = ajax_request_obj.responseText; } catch(e) { alert(_t_no_front('Something went wrong')); closeOverlay('overlay_overlay_container'); } var order_prev = ''; var order_next = ''; var webid_prev = ''; var webid_next = ''; var date_prev = ''; var date_next = ''; var id_found = false; for(x in ordre_ids_array) { var split = ordre_ids_array[x].split(';'); if(!id_found && (split[0] != ordre || split[1] != webid)) { order_prev = split[0]; webid_prev = split[1]; date_prev = split[2]; } else if(split[0] == ordre && split[1] == webid) { id_found = true; } else if(id_found) { order_next = split[0]; webid_next = split[1]; date_next = split[2]; break; } } getElement('order_overlay_container_inner').innerHTML = result; if(order_prev || webid_prev) { getElement('ordre_prev_id').innerHTML = ''; } if(order_next || webid_next) { getElement('ordre_next_id').innerHTML = ''; } if(getElement('order_id_'+ordre+'_'+webid)) getElement('order_id_'+ordre+'_'+webid).style.backgroundColor = '#f0f0f0'; if(getElement('public_order_container')) { getElement('public_order_container').style.padding = '10px'; getElement('public_order_container').style.height = '361px'; getElement('public_order_container').style.overflowY = 'auto'; } getElement('dragbar').onmousedown = function(event){startDragging(event, 'order_overlay_container');}; getElement('dragbar').onmouseup = function(){cancelDragging();}; } function overlayAjaxShopItemComments(itemNumber){ data = '
'; data += '
'; data += ' '; data += '
'; data += '
'; if(getElement('item_note_overlay_container_inner')) { getElement('item_note_overlay_container_inner').innerHTML = data; } else { createOverlay(data, undefined, undefined, undefined, 'item_note_overlay_container'); addCloseButtonToOverlay('item_note_overlay_container', function(){closeOverlay('item_note_overlay_container');}); } ajaxRequest('GET', 'ajax/item.php?action=get_shop_item_comments&item_number='+itemNumber, function(){handleOverlayAjaxShopItemComments();}); } function handleOverlayAjaxShopItemComments() { try { var result = ajax_request_obj.responseText; } catch(e) { alert(_t_no_front('Something went wrong')); closeOverlay('overlay_overlay_container'); } var comments = JSON.parse(result); var html = "
"; html += ""; html += ""; html += ""; html += ""; html += ""; html += ""; html += ""; html += ""; ; for(var i = 0; i < comments.length; i++) { var strDate = ""; if(comments[i].date <= 1) { strDate = ""; } else { var date = new Date(comments[i].date*1000); strDate = date.getDate() +"-"+ (date.getMonth()+1) +"-"+ date.getFullYear(); } html += ""; html += ""; html += ""; html += "\n"; } html += "
"+ _t("Dato") +""+ _t("Varebemrkninger") +"
"+ strDate +""+ comments[i].comment +"
"; var lukKnap = "
"; lukKnap += ""; lukKnap += "Luk"; lukKnap += ""; lukKnap += "
"; html += lukKnap; html += "
\n"; getElement('item_note_overlay_container_inner').innerHTML = html; getElement('shop_item_comments').style.padding = '10px'; } function showWouldLikeAnOfferOverlay(no_ext) { ajaxRequest('GET', '/ajax/standard.php?action=wouldLikeAnOffer&no_ext='+no_ext, handleShowWouldLikeAnOfferOverlay); } function handleShowWouldLikeAnOfferOverlay() { var data_array = JSON.parse(ajax_request_obj.responseText); var div = ''; div += '
'; div += '
Jeg nsker et tilbud p
'+data_array.name+' ('+data_array.no_ext+')
'; div += '
'; div += ' '; div += ' '; div += ' '; div += ' '; div += ' '; div += ' '; div += ' '; div += ' '; div += ' '; div += ' '; div += ' '; div += ' '; div += ' '; div += ' '; div += ' '; div += ' '; div += ' '; div += ' '; div += ' '; div += ' '; div += ' '; div += ' '; div += ' '; div += '
Antal: *
Navn: *
E-mail: *
Telefonnummer: *
'; div += ' '; div += ' '; div += ' '; div += '
* Antal, navn og email eller telefon skal udfyldes
'; div += '
'; div += '
'; createOverlay(div, 'absolute', 'center', 'center', 'would_like_offer_overlay'); addCloseButtonToOverlay('would_like_offer_overlay', function(){ closeVeil(true); closeOverlay('would_like_offer_overlay'); }); var obj = getElement('would_like_offer_quantity'); obj.focus(); } function validateWouldLikeAnOffer() { var obj = getElement('would_like_offer_quantity'); if(trim(obj.value) == '' || !is_numeric(trim(obj.value))) { obj.focus(); alert('Du mangler at udfylde antal'); return false; } var obj = getElement('would_like_offer_name'); if(trim(obj.value) == '') { obj.focus(); alert('Du mangler at udfylde navn'); return false; } var email_or_phone_filled_out = false; var email_validation_string = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/ var obj = getElement('would_like_offer_email'); if(trim(obj.value) != '' && obj.value.search(email_validation_string) !== -1) { email_or_phone_filled_out = true; } var obj = getElement('would_like_offer_phone'); if(trim(obj.value) != '' && trim(obj.value).length >= 8) { email_or_phone_filled_out = true; } if(!email_or_phone_filled_out) { alert('Du mangler at udfylde enten telefonnummer eller email'); return false; } return true; } function loginToBpApp() { ajaxRequest('GET', '/ajax/standard.php?action=getAppCredentials', doBpAppLogin); } function doBpAppLogin() { var data_array = JSON.parse(ajax_request_obj.responseText); if(data_array.success == 1 && data_array.data.customernr != '' && data_array.data.password != '') { var username = data_array.data.customernr; var password = data_array.data.password; var ajax_request_data = ajaxRequest('GET', 'bp_webservices/webservice.php?action=login&email='+username+'&password='+password, '', '', false); if(typeof(ajax_request_data) != 'undefined') { var response = JSON.parse(ajax_request_data); if(typeof(response.data) != 'undefined' && typeof(response.data.login_key) != 'undefined' && response.data.login_key.length > 0) { removeFromlocalData('user_remember_login'); saveTolocalData('user_remember_login', { email: username, password: password, login_key: response.data.login_key }); saveTolocalData('user_data', { login_key: response.data.login_key, data: { }, first_run: true }); window.open('https://webshop.danishagro.dk?app_view', '_blank'); } } } else { alert(_t_no_front('Du har ikke fuld adgang til appen')); } } function saveTolocalData(key, dataObject) { setlocalstorage('data.'+key, dataObject); } function removeFromlocalData(key) { removelocalstorage('data.'+key); } function setlocalstorage(name, value) { if(typeof(value) == 'object') { value = JSON.stringify(value); } var storage = window.localStorage; storage.setItem(name, value); return; } function getlocalstorage(name, dont_parse) { var value = window.localStorage.getItem(name); value = (dont_parse ? value : JSON.parse(value)); if(value == null) { return false; } return value; } function removelocalstorage(name) { window.localStorage.removeItem(name); } function accessToGrisefokus() { var access = (getElement('grisefokus_checkbox').checked ? 'y' : 'n'); ajaxRequest('GET', '/ajax/standard.php?action=accessToGrisefokus&access='+access, function() { var message = _t('Adgang til grisefokus er opdateret'); fadeInFadeOutAndRemove('
'+message+'
', 2000, 75, 75, 'fixed', 'center', 'center'); }); } function toggleBackfatActive() { var backfat = (getElement('bp_backfat_active').checked ? 'y' : 'n'); ajaxRequest('GET', '/ajax/standard.php?action=toggleBackfatActive&backfat='+backfat, function() { var message = _t('Rygspk er opdateret'); fadeInFadeOutAndRemove('
'+message+'
', 2000, 75, 75, 'fixed', 'center', 'center'); }); } function openMsg() { document.getElementById("msgDropdown").classList.toggle("show"); } function order_status_sms_customer(obj, tlf) { var val = obj.checked; if(val && (tlf == '' || tlf.length < 8)) { alert('Udfyld venligst telefon nr.'); return; } ajaxRequest('GET', 'ajax/standard.php?action=order_status_sms_customer&value='+(val ? '1' : '0')+'&tlf='+tlf, function(){ handle_order_status_sms_customer(); }); } function handle_order_status_sms_customer() { if(ajax_request_obj.responseText == 1) { var data = '
'+_t_no_front('ndringen er gemt')+'
'; fadeInFadeOutAndRemove(data, 500); } else if(ajax_request_obj.responseText == 0) { alert(_t_no_front('Udfyld venligst telefon nr.')); } else { alert(_t_no_front('Noget gik galt - ndringen er muligvis ikke gemt')); } } function textAreaAdjust(o) { o.style.height = "1px"; o.style.height = (25+o.scrollHeight)+"px"; } function switchMonth(month, year, obj, unit_type, leveringsadresse_id, use_values_from_obj, varenr, daytoday, kontraktnr, current_from_date, forceitem) { var obj = getElement(obj); if(use_values_from_obj) { var data_array = obj.innerHTML.split('-'); month = data_array[1]; year = data_array[2]; } var query_array = new Array(); query_array.action = 'getDeliveryCalendar'; query_array.month = month; query_array.year = year; query_array.daytoday = daytoday; query_array.inputbox_id = obj.id; query_array.unit_type = unit_type; query_array.leveringsadresse = leveringsadresse_id; query_array.varenr = varenr; if(kontraktnr != undefined) { query_array.kontraktnr = kontraktnr; } if(typeof(forceitem) != 'undefined') { query_array.forceitemtype = forceitem; } if(typeof(current_from_date) != 'undefined') { query_array.current_from_date = current_from_date; } /** Vi skal ogs have leveringsmetoden hevet med over **/ if(typeof active_contract_number != 'undefined' && getElement('delivery_form_'+active_contract_number)) { if (getElement('delivery_form_container_'+active_contract_number).style.display != 'none') { query_array.leveringsmetode = urlencode(getElement('delivery_form_'+active_contract_number).value); } } else { query_array.leveringsmetode = urlencode(getElement('delivery_form').value); } var query = 'ajax/standard.php'+createQueryString(query_array); ajaxRequest('GET', query, function(){handleSwitchMonth(obj)}); } function switchMonth_simple(month, year, obj, use_object_values, send_value, top, left, timestamp_no_less_than, period_span, short_months_and_year) { var obj = getElement(obj); var short_months_and_year = (short_months_and_year == undefined || short_months_and_year == false ? false : true); if(use_object_values != undefined && use_object_values) { if(obj.nodeName == 'INPUT') { var data_array = obj.value.split('-'); } else { var data_array = obj.innerHTML.split('-'); } month = data_array[1]; year = data_array[2]; } var query_array = new Array(); query_array.action = 'getCalendar'; query_array.month = month; query_array.year = year; query_array.period_span = period_span; query_array.timestamp_no_less_than = timestamp_no_less_than; query_array.inputbox_id = obj.id; query_array.short_months_and_year = short_months_and_year; if(send_value != undefined && send_value) { query_array.full_value = obj.value; } var query = 'ajax/calendar_simple.php'+createQueryString(query_array); ajaxRequest('GET', query, function(){handleSwitchMonth(obj, top, left)}); } function handleSwitchMonth(obj) { var obj = getElement(obj); if(getElement('ProduktEdit')) { createOverlay('
'+ajax_request_data+'
', 'absolute', 12, 0, obj.id+'_overlay', obj, undefined, undefined, false,undefined,'ProduktEdit'); } else { createOverlay('
'+ajax_request_data+'
', 'absolute', 12, 0, obj.id+'_overlay', obj, undefined, undefined, false); } positionCalendar(obj.id+"_overlay"); } function positionCalendar(id) { updateWindowDimensions(); var obj = getElement(id); var obj_dimensions = getObjectDimensions(obj); var number_of_pixels_to_scroll = ((window_height*1+window_scroll_y*1)-(parseInt(obj.style.top)+obj_dimensions.height*1))*-1; if(number_of_pixels_to_scroll > 0) { window.scrollBy(0,number_of_pixels_to_scroll+15); } } function closeCalendar(id) { closeOverlay(id+"_overlay"); } function dateSelected(day, month, year, id, friday_selected) { if (friday_selected) { // alert(id); } getElement(id).innerHTML = day+'-'+month+'-'+year; closeOverlay(id+"_overlay"); } function monthSelected(date_string, string, id) { if(getElement(id).nodeName == 'INPUT') { getElement(id).value = string; } else { getElement(id).innerHTML = string; } closeOverlay(id+'_overlay'); try { eval('handle_date_change_'+id+'(\''+date_string+'\')'); } catch(e) { } } function createQueryString(query_array) { var query = '?'; for(x in query_array) { query += x+"="+query_array[x]+"&"; } return trim(query, "&"); } function highlight_all_month() { for(i=1; i<32; i++) { if (getElement('month_day_'+i)) { getElement('month_day_'+i).style.backgroundColor = '#BBBBBB'; } } } function dehighlight_all_month() { for(i=1; i<32; i++) { if (getElement('month_day_'+i)) { getElement('month_day_'+i).style.backgroundColor = ''; } } } var addressId = new Array(); function showDeliveryAddressOverlay() { createVeil(50, true, "#000000"); if(typeof(active_contract_number) == "undefined") { var show_contract_number = addressId; } else { show_contract_number = addressId[active_contract_number]; } ajaxRequest("GET", "ajax/item.php?action=getDeliveryAddresses&addressid="+show_contract_number, handleShowDeliveryAddressOverlay); } function handleShowDeliveryAddressOverlay() { data = JSON.parse(ajax_request_obj.responseText); createOverlay(data, undefined, undefined, undefined, "delivery_address_container"); addCloseButtonToOverlay("delivery_address_container", function(){closeDeliveryAddressOverlay()}); } function requestEditLeveringAdress(id) { if(typeof(active_contract_number) == "undefined") { var show_contract_number = addressId; } else { show_contract_number = addressId[active_contract_number]; } ajaxRequest("GET", "ajax/item.php?action=getDeliveryAddresses&id="+id+"&addressid="+show_contract_number, getHandelLeveringAdress); } function getHandelLeveringAdress() { getElement("delivery_address_container").innerHTML = JSON.parse(ajax_request_obj.responseText); addCloseButtonToOverlay("delivery_address_container", function(){closeDeliveryAddressOverlay()}); centerObject("center", "delivery_address_container"); } function closeDeliveryAddressOverlay() { closeOverlay("delivery_address_container"); closeVeil(true); } function delLeveringAdresse(id) { ajaxRequest("GET", "ajax/item.php?action=delLeveringAdresse&id="+id, getHandelDelLeveringAdresse); } function getHandelDelLeveringAdresse() { requestEditLeveringAdress(0); addCloseButtonToOverlay("delivery_address_container", function(){closeDeliveryAddressOverlay()}); centerObject("center", "delivery_address_container"); } function editLeveringAdresse(id) { requestEditLeveringAdress(id); addCloseButtonToOverlay("delivery_address_container", function(){closeDeliveryAddressOverlay()}); centerObject("center", "delivery_address_container"); } function addEditLeveringAdresse(id) { var autoSetAdresse = 1; if(getElement("autoSetAdresse").checked==false) { autoSetAdresse = 0; } var LEVADR1 = urlencode(getElement("LEVADR1").value); var LEVADR2 = urlencode(getElement("LEVADR2").value); var LEVADR3 = urlencode(getElement("LEVADR3").value); var POSTNR = urlencode(getElement("POSTNR").value); var POSTBY = urlencode(getElement("POSTBY").value); if(id != undefined && is_numeric(id)) { ajaxRequest("GET", "ajax/item.php?action=addEditLeveringAdresse&id="+id+"&autoSetAdresse="+autoSetAdresse+"&LEVADR1="+LEVADR1+"&LEVADR2="+LEVADR2+"&LEVADR3="+LEVADR3+"&POSTNR="+POSTNR+"&POSTBY="+POSTBY, handleaddEditLeveringAdresse); } } function handleaddEditLeveringAdresse () { requestEditLeveringAdress(0); } function validateZip(id) { if(id == undefined || !is_numeric(id)) { id = 0; } var POSTNR = urlencode(getElement("POSTNR").value); ajaxRequest("GET", "ajax/item.php?action=isValidZip&zip="+POSTNR, function(){handle_validateZip(id);}); } function handle_validateZip(id) { var data_array = JSON.parse(ajax_request_obj.responseText); var validForm = true; if(getElement('LEVADR1').value == '') { // validForm = false; } else if(getElement('LEVADR2').value == '') { // validForm = false; } else if(getElement('LEVADR3').value == '') { validForm = false; } if(!validForm) { getElement('form_errors').innerHTML = 'Du skal udfylde alle felterne.'; return false; } else { getElement('form_errors').innerHTML = ''; } if(data_array.valid == 'true') { if (data_array.city) { getElement("POSTBY").value = data_array.city; } addEditLeveringAdresse(id); } else { getElement('postnr_error').innerHTML = 'Vi kender ikke dit postnr.'; return false; } } function setDeliveryAddress() { var id = 0; var i = 0; var found_disabled = false; while(getElement('setaddresse_'+i)) { if(getElement('setaddresse_'+i).checked) { if(getElement('setaddresse_'+i).disabled) { id = 0; found_disabled = true; break; } else { id = getElement('setaddresse_'+i).value; } } i++; } if (id != 0) // fix til null problem { ajaxRequest("GET", "ajax/item.php?action=setDeliveryAddress&id="+id, handleSetDeliveryAddress); if(typeof(active_contract_number) == "undefined") { addressId = id; } else { addressId[active_contract_number] = id; } } if (found_disabled) { alert("Du kan ikke vlge denne adresse da den ikke er gyldig, den skal indeholde adresse, postnr og by"); if(getElement('leveringsadresse')) { getElement('leveringsadresse').value = ''; } /* hvis det er en kontakt */ var kontakt_nr = getElement('kontrakt_nr_id') ? '_'+getElement('kontrakt_nr_id').value : ''; if(getElement('leveringsadresse'+kontakt_nr)) { getElement('leveringsadresse'+kontakt_nr).value = ''; } if(getElement('leverings_adresse_vis'+kontakt_nr)) { getElement('leverings_adresse_vis'+kontakt_nr).innerHTML = 'Ingen leveringsadresse valgt'; } return false; } if (getElement('tankvalg_string')) { getElement('tankvalg_string').innerHTML = 'V�lg tank'; getElement('silo').value = ''; } else if (typeof(active_contact_number) != 'undefined' && getElement('tankvalg_string_'+active_contract_number)) { getElement('tankvalg_string_'+active_contract_number).innerHTML = 'Vlg tank'; getElement('silo_'+active_contract_number).value = ''; } } function handleDeliverySpecialRules() { var elements = document.getElementsByClassName('delivery_messages_container'); var deliverytoobj = false; var deliveryfromobj = false; for(var x in elements) { var element = elements[x]; if(typeof(element) == 'object') { var new_innerhtml = ''; if(element.getAttribute('data-contract')) { /** Kontrakter **/ var contract_number = element.getAttribute('data-contract'); var delivery_date = getElement('delivery_from_'+contract_number).innerHTML; deliverytoobj = 'delivery_to_'+contract_number; deliveryfromobj = 'delivery_from_'+contract_number; /** Finder enheden / pakningen **/ var varenr = getElement('varenr_'+contract_number).value; var counter = 0; var packaging = ''; while(obj = getElement('enhed_'+contract_number+'_'+varenr+'_'+counter)) { if(obj.checked) { packaging = obj.value; break; } counter++; } } else { /** Ikke kontrakter **/ var delivery_date = getElement('delivery_from').innerHTML; deliverytoobj = 'delivery_to'; deliveryfromobj = 'delivery_from'; var counter = 0; var packaging = ""; if(getElement('enhed_hidden')) { packaging = getElement('enhed_hidden').value; } else { while(obj = getElement('enhed_'+counter)) { if(obj.checked) { packaging = obj.value; break; } counter++; } } if(packaging == '') { packaging = getElement('enhed_0').value; //msie registrerer ikke 'checked' p� hidden felter } } if(packaging*1 != 2) { if(in_array(delivery_date, ['14-12-2015', '15-12-2015', '16-12-2015', '17-12-2015', '18-12-2015', '19-12-2015', '20-12-2015'])) { /** 51 **/ } else if(in_array(delivery_date, ['21-12-2015', '22-12-2015', '23-12-2015', '24-12-2015', '25-12-2015', '26-12-2015', '27-12-2015'])) { /** 52 **/ new_innerhtml = 'Alle leveringer i uge 52 sker i vort valg'; } else if(in_array(delivery_date, ['28-12-2015', '29-12-2015', '30-12-2015', '31-12-2015', '01-01-2016', '02-01-2016', '03-01-2016'])) { /** 53 **/ new_innerhtml = 'Alle leveringer i uge 53 sker i vort valg'; }else if(in_array(delivery_date, ['27-12-2017', '28-12-2017', '29-12-2017', '30-12-2017'])) { /*new_innerhtml = 'Alle leveringer d. 27.-30. december
sker i vort valg
'; getElement(deliveryfromobj).innerHTML = '27-12-2017'; getElement(deliverytoobj).innerHTML = '30-12-2017';*/ }else if(in_array(delivery_date, ['22-12-2017', '23-12-2017'])) { /*new_innerhtml = 'Alle leveringer d. 27.-30. december
sker i vort valg
'; //getElement(deliveryfromobj).innerHTML = '27-12-2017'; getElement(deliverytoobj).innerHTML = '30-12-2017';*/ } } if(packaging == 2) { if(in_array(delivery_date, ['24-05-2017'])) { new_innerhtml = 'Alle leveringer d. 24./25. maj sker i vort valg'; getElement(deliveryfromobj).innerHTML = '24-05-2017'; getElement(deliverytoobj).innerHTML = '25-05-2017'; }else if(in_array(delivery_date, ['25-05-2017'])) { new_innerhtml = 'Alle leveringer d. 25./26. maj sker i vort valg'; getElement(deliveryfromobj).innerHTML = '25-05-2017'; getElement(deliverytoobj).innerHTML = '26-05-2017'; }else if(in_array(delivery_date, ['02-06-2017'])) { new_innerhtml = 'Alle leveringer d. 2./5. juni sker i vort valg'; getElement(deliveryfromobj).innerHTML = '02-06-2017'; getElement(deliverytoobj).innerHTML = '05-06-2017'; }else if(in_array(delivery_date, ['05-06-2017'])) { new_innerhtml = 'Alle leveringer d. 5./6. juni sker i vort valg'; getElement(deliveryfromobj).innerHTML = '05-06-2017'; getElement(deliverytoobj).innerHTML = '06-06-2017'; }else if(in_array(delivery_date, ['11-05-2017', '12-05-2017'])) { new_innerhtml = 'Alle leveringer d. 11./12. maj sker i vort valg'; getElement(deliveryfromobj).innerHTML = '11-05-2017'; getElement(deliverytoobj).innerHTML = '12-05-2017'; } else if(in_array(delivery_date, ['12-04-2017'])) { new_innerhtml = ''; new_innerhtml += 'Venligst flere leveringsdage
'; new_innerhtml += '
'; new_innerhtml += '

'; getElement(deliverytoobj).innerHTML = '13-04-2017'; }else if(in_array(delivery_date, ['13-04-2017', '15-04-2017'])) { new_innerhtml = ''; new_innerhtml += 'Venligst flere leveringsdage
'; new_innerhtml += '
'; new_innerhtml += '

'; getElement(deliverytoobj).innerHTML = '15-04-2017'; }else if(in_array(delivery_date, ['17-04-2017'])) { new_innerhtml = ''; new_innerhtml += 'Venligst flere leveringsdage
'; new_innerhtml += '
'; new_innerhtml += '

'; getElement(deliverytoobj).innerHTML = '18-04-2017'; } } $.ajax({url: "ajax/standard.php?action=getDeliveryRuleExtraDays&date="+delivery_date+'&packaging='+packaging, success: function(result){ var data = JSON.parse(result); var new_innerhtml = ""; var rulefound = false; var contract_number = ''; if(this.element.getAttribute('data-contract')) { var contract_number = this.element.getAttribute('data-contract'); } if(in_array(this.delivery_date, data)) { new_innerhtml = 'Kan vente til:
'; var firstbutton = true; if(this.delivery_date != "26-12-2017") { new_innerhtml += '
'; firstbutton = false; } for (var i=0; i y.getTime()) { rulefound = true; new_innerhtml += '
'; if(firstbutton) { setDate(this.deliverytoobj, value); } firstbutton = false; } } new_innerhtml += '
'; if(!rulefound) { new_innerhtml = ''; }else{ $(".allow_saturday").hide(); } this.element.innerHTML = new_innerhtml; } }, element: element, deliverytoobj: deliverytoobj, delivery_date: delivery_date}); element.innerHTML = new_innerhtml; } } } function setDate(toobj, date) { getElement(toobj).innerHTML = date; } function easterrule2017(toobj, fromobj) { var first = getElement('13042017'); var second = getElement('15042017'); var third = getElement('18042017'); var fromdate = "12-04-2017"; var todate = "12-04-2017"; if(first !== null && first.checked && !first.disabled){ fromdate = "12-04-2017" todate = "13-04-2017"; }else if(second !== null && second.checked) { fromdate = "13-04-2017" todate = "15-04-2017"; }else if(second !== null) { fromdate = "13-04-2017" todate = "13-04-2017"; }else if(third !== null && third.checked) { fromdate = "17-04-2017" todate = "18-04-2017"; }else if(third !== null && !third.checked) { fromdate = "17-04-2017" todate = "17-04-2017"; } getElement(fromobj).innerHTML = fromdate; getElement(toobj).innerHTML = todate; } var display_sums = 0; function update_year_total_template(plangruppenr) { var total = 0; for(i=0; i<12; i++) { var thisvalue = 0; if (getElement('plangruppe['+plangruppenr+']['+i+']')) { thisvalue = 1*getElement('plangruppe['+plangruppenr+']['+i+']').value.replace('.', '').replace(',', '.'); if (is_numeric(thisvalue)) { getElement('plangruppe['+plangruppenr+']['+i+']').style.border = 'solid 1px gray'; } else { getElement('plangruppe['+plangruppenr+']['+i+']').style.borderColor = 'red'; } } else { if (plangrupper_actual[plangruppenr] && plangrupper_actual[plangruppenr]['month_'+(i+1)]) { thisvalue = plangrupper_actual[plangruppenr]['month_'+(i+1)]; } } if (!isNaN(thisvalue)) { thisvalue = parseInt(thisvalue*1000); total += thisvalue; } } total = total/1000; number_of_decimals = 2; if (getElement('year_input['+plangruppenr+']')) { getElement('year_input['+plangruppenr+']').value = number_format(total, number_of_decimals, ',', '.'); } else { getElement('year['+plangruppenr+']').innerHTML = number_format(total, number_of_decimals, ',', '.'); } } function update_year_total(plangruppenr) { if (typeof(year_start) == 'undefined') { update_year_total_template(plangruppenr); return; //skabelon edit } var total = 0; var this_year = year_start; var this_month = month_start; for(i=0; i<12; i++) { if (this_month == 13) { this_month = 1; this_year++; } var thisvalue = 0; if (getElement('plangruppe['+plangruppenr+']['+this_year+']['+(this_month-1)+']')) { thisvalue = 1*getElement('plangruppe['+plangruppenr+']['+this_year+']['+(this_month-1)+']').value.replace('.', '').replace(',', '.'); if (is_numeric(thisvalue)) { getElement('plangruppe['+plangruppenr+']['+this_year+']['+(this_month-1)+']').style.border = 'solid 1px gray'; } else { getElement('plangruppe['+plangruppenr+']['+this_year+']['+(this_month-1)+']').style.borderColor = 'red'; } } else { if (budget) { if (plangrupper_budget_year[plangruppenr] && plangrupper_budget_year[plangruppenr][this_year] && plangrupper_budget_year[plangruppenr][this_year]['month_'+this_month] && plangrupper_budget_year[plangruppenr][this_year]['month_'+this_month] != 0) { thisvalue = plangrupper_budget_year[plangruppenr][this_year]['month_'+this_month]; } } else if (plangrupper_actual[plangruppenr][this_year] && plangrupper_actual[plangruppenr][this_year]['month_'+this_month]) { thisvalue = plangrupper_actual[plangruppenr][this_year]['month_'+this_month]; } } if (!isNaN(thisvalue)) { thisvalue = parseInt(thisvalue*1000); total += thisvalue; } this_month++; } total = total/1000; number_of_decimals = 0; if (plangrupper_units[plangruppenr] == 'kg') { number_of_decimals = 1; } if (getElement('year_input['+plangruppenr+']')) { getElement('year_input['+plangruppenr+']').value = number_format(total, number_of_decimals, ',', '.'); } else { getElement('year['+plangruppenr+']').innerHTML = number_format(total, number_of_decimals, ',', '.'); } } window.onscroll = scrollhandler; function scrollhandler() { if (!display_sums) { return; } var scroll = window.pageYOffset; if (document.documentElement.scrollTop) { scroll = document.documentElement.scrollTop; } if (scroll > 245) { getElement('sum_container').style.position = 'fixed'; getElement('sum_container').style.top = 0+'px'; } else { getElement('sum_container').style.position = 'absolute'; //getElement('sum_container').style.top = '220px'; } } var sum_plangruppe = 0; var sum_main_plangruppe = 0; function highlight_plangruppe(plangruppe) { if (sum_plangruppe != plangruppe && plangruppe < 1000 && plangruppe > -1000) { getElement('tr_plangruppe_'+plangruppe).style.backgroundColor = '#F0F0F0'; } } function remove_highlight_plangruppe(plangruppe) { var keephighlight = 0; if (sum_main_plangruppe) { for(key in plangrupper_maingroups[sum_main_plangruppe]['plangrupper']) { if (plangrupper_maingroups[sum_main_plangruppe]['plangrupper'][key] == plangruppe) { keephighlight = 1; } } } if (sum_plangruppe != plangruppe && !keephighlight) { getElement('tr_plangruppe_'+plangruppe).style.backgroundColor = '#FFFFFF'; } } function main_plangruppe_from_plangruppe(plangruppenr) { for(main_plangruppenr in plangrupper_maingroups) { for(this_plangruppenr in plangrupper_maingroups[main_plangruppenr]['plangrupper']) { if (this_plangruppenr == plangruppenr) { return main_plangruppenr; } } } return false; } var disable_sums_dehighlight = 0; function show_sums_for_plangruppe(plangruppe) { // close_change_distributor_overlay(); if (actual_trade_items_plangruppe && main_plangruppe_from_plangruppe(actual_trade_items_plangruppe) != main_plangruppe_from_plangruppe(plangruppe)) { actual_trade_items_toogle('', 'hide'); } else if (actual_trade_items_main_plangruppe && actual_trade_items_main_plangruppe != main_plangruppe_from_plangruppe(plangruppe)) { actual_trade_items_toogle('', 'hide'); } if ((inline_editing_active && !budget) || disable_sums_dehighlight) { return; } if (!display_sums) { return; } if (plangruppe == sum_plangruppe) { sums_clear(); actual_trade_items_toogle('', 'hide'); return false; } sums_clear(); sum_plangruppe = plangruppe; getElement('tr_plangruppe_'+plangruppe).style.backgroundColor = '#DEDEDE'; var plangruppenavn = ''; if (plangrupper_actual[plangruppe][year_start]) { plangruppenavn = plangrupper_actual[plangruppe][year_start]['plangruppe_navn']; } else if (plangrupper_actual[plangruppe][year_start+1]['plangruppe_navn']) { plangruppenavn = plangrupper_actual[plangruppe][year_start+1]['plangruppe_navn']; } getElement('sums_headline').innerHTML = plangruppenavn+' ('+(plangruppe < 0 ? plangruppe*-1+' k' : plangruppe)+')'; plot_sums(plangruppe); if (actual_trade_items_year) { actual_trade_items_toogle(actual_trade_items_year, 'show'); } } function show_sums_for_main_plangruppe(mainplangruppenr) { if (overruling_action) { return; } close_change_distributor_overlay(); if (actual_trade_items_plangruppe && main_plangruppe_from_plangruppe(actual_trade_items_plangruppe) != mainplangruppenr) { actual_trade_items_toogle('', 'hide'); } else if (actual_trade_items_main_plangruppe && actual_trade_items_main_plangruppe != mainplangruppenr) { actual_trade_items_toogle('', 'hide'); } if (inline_editing_active && !budget) { return; } if (!display_sums) { return; } if (mainplangruppenr == sum_main_plangruppe) { sums_clear(); actual_trade_items_toogle('', 'hide'); return false; } sums_clear(); sum_main_plangruppe = mainplangruppenr; getElement('tr_main_plangruppe_'+mainplangruppenr).style.backgroundColor = '#DEDEDE'; for(key in plangrupper_maingroups[mainplangruppenr]['plangrupper']) { if (key > -1000 && key < 1000) { getElement('tr_plangruppe_'+plangrupper_maingroups[sum_main_plangruppe]['plangrupper'][key]).style.backgroundColor = '#F0F0F0'; plot_sums(plangrupper_maingroups[mainplangruppenr]['plangrupper'][key], mainplangruppenr); } } getElement('sums_headline').innerHTML = plangrupper_maingroups[mainplangruppenr]['name']+' (hovedgruppe)'; if (actual_trade_items_year) { actual_trade_items_toogle(actual_trade_items_year, 'show'); } } var overruling_action = false; function main_plangrupper_show(mainplangruppenr, action) { overruling_action = 'main_plangrupper_show'; setTimeout(function(){overruling_action = false;}, 200); var direction = ''; close_change_distributor_overlay(); for(key in plangrupper_maingroups[mainplangruppenr]['plangrupper']) { if (getElement('tr_plangruppe_'+plangrupper_maingroups[mainplangruppenr]['plangrupper'][key]).style.display == '' && action != 'show') { if (getElement('tr_plangruppe_'+plangrupper_maingroups[mainplangruppenr]['plangrupper'][key]+'_Salg')) { getElement('tr_plangruppe_'+plangrupper_maingroups[mainplangruppenr]['plangrupper'][key]+'_Salg').style.display = 'none'; getElement('tr_plangruppe_'+plangrupper_maingroups[mainplangruppenr]['plangrupper'][key]+'_Kb').style.display = 'none'; } getElement('tr_plangruppe_'+plangrupper_maingroups[mainplangruppenr]['plangrupper'][key]).style.display = 'none'; direction = 'hide'; } else if (getElement('tr_plangruppe_'+plangrupper_maingroups[mainplangruppenr]['plangrupper'][key]).style.display == 'none' && action != 'hide') { if (getElement('tr_plangruppe_'+plangrupper_maingroups[mainplangruppenr]['plangrupper'][key]+'_Salg')) { getElement('tr_plangruppe_'+plangrupper_maingroups[mainplangruppenr]['plangrupper'][key]+'_Salg').style.display = ''; getElement('tr_plangruppe_'+plangrupper_maingroups[mainplangruppenr]['plangrupper'][key]+'_Kb').style.display = ''; } getElement('tr_plangruppe_'+plangrupper_maingroups[mainplangruppenr]['plangrupper'][key]).style.display = ''; direction = 'show'; } } if (typeof(budget) != 'undefined' && budget) { if (action == 'show') { getElement('edit_text_closed_'+mainplangruppenr).style.display = 'none'; getElement('edit_text_open_'+mainplangruppenr).style.display = ''; } else { getElement('edit_text_closed_'+mainplangruppenr).style.display = ''; getElement('edit_text_open_'+mainplangruppenr).style.display = 'none'; } } if (budget && direction == 'show') { inline_edit_activate(mainplangruppenr); } else if (budget && direction == 'hide' && inline_editing_active) { inline_edit_close(mainplangruppenr); } if (direction == 'hide' && (actual_trade_items_plangruppe != 0 || actual_trade_items_main_plangruppe != 0)) { var showing_mainplangruppenr = actual_trade_items_main_plangruppe; for(key in plangrupper_maingroups[mainplangruppenr]['plangrupper']) { if (key == actual_trade_items_plangruppe) { showing_mainplangruppenr = mainplangruppenr; } if (showing_mainplangruppenr == mainplangruppenr) { actual_trade_items_toogle('', 'hide'); } } } } function plot_sums(plangruppe, mainplangruppenr) { total_actual = 0; total_actual_all = 0; total_actual_da = 0; total_theoretical = 0; total_budget_year = 0; total_budget_next_year = 0; total_budget_next_next_year = 0; total_actual_trade = 0; total_actual_trade_last_year= 0; var this_year = year_start; var this_month = month_start; number_of_decimals = 0; if (plangrupper_units[plangruppe] == 'kg') { number_of_decimals = 1; } var plangruppe_positive = (plangruppe < 0 ? plangruppe*-1 : plangruppe); for(i=0; i<12; i++) { if (this_month == 13) { this_month = 1; this_year++; } var key = 'month_'+(this_month); if (i == 12) { key = 'total_quantity'; } if (typeof(plangrupper_theoretical[plangruppe]) != 'undefined' && typeof(plangrupper_theoretical[plangruppe][this_year]) != 'undefined') { total_theoretical += parseFloat(plangrupper_theoretical[plangruppe][this_year][key]); getElement('theoretical_potential_'+this_year+'_'+this_month).innerHTML = number_format(plangrupper_theoretical[plangruppe][this_year][key]*1+getElement('theoretical_potential_'+this_year+'_'+this_month).innerHTML.replace('.', '').replace(',', '.')*1, number_of_decimals, ',', '.'); } if (typeof(plangrupper_actual[plangruppe][this_year]) != 'undefined') { total_actual_all += parseFloat(plangrupper_actual[plangruppe][this_year][key]); getElement('actual_potential_all_'+this_year+'_'+this_month).innerHTML = number_format(plangrupper_actual[plangruppe][this_year][key]*1+getElement('actual_potential_all_'+this_year+'_'+this_month).innerHTML.replace('.', '').replace(',', '.')*1, number_of_decimals, ',', '.'); } if (typeof(plangrupper_actual[plangruppe]) != 'undefined' && typeof(plangrupper_actual[plangruppe][this_year]) != 'undefined') { //bent potentiale if (this_year > year_now || (this_year == year_now && this_month >= month_now)) { var this_value = parseFloat(plangrupper_actual[plangruppe][this_year][key]); if (typeof(plangrupper_distributor[plangruppe]) != 'undefined' && typeof(plangrupper_distributor[plangruppe][this_year]) != 'undefined' && typeof(plangrupper_distributor[plangruppe][this_year][this_month]) != 'undefined') { for(key2 in plangrupper_distributor[plangruppe][this_year][this_month]) { this_value -= plangrupper_distributor[plangruppe][this_year][this_month][key2]['quantity']*1; } } total_actual += this_value; getElement('actual_potential_'+this_year+'_'+this_month).innerHTML = number_format(this_value+getElement('actual_potential_'+this_year+'_'+this_month).innerHTML.replace('.', '').replace('.', '').replace(',', '.')*1, number_of_decimals, ',', '.'); } } if (typeof(plangrupper_actual[plangruppe]) != 'undefined' && typeof(plangrupper_actual[plangruppe][this_year]) != 'undefined') { // vi viser ikke historiske distributr-tal - month_now = aktuel mned if (this_year > year_now || (this_year == year_now && this_month >= month_now)) { var this_value = 0; if (typeof(plangrupper_distributor[plangruppe]) != 'undefined' && typeof(plangrupper_distributor[plangruppe][this_year]) != 'undefined' && typeof(plangrupper_distributor[plangruppe][this_year][this_month]) != 'undefined') { for(key2 in plangrupper_distributor[plangruppe][this_year][this_month]) { if (key2 == 1) { this_value = plangrupper_distributor[plangruppe][this_year][this_month][key2]['quantity']*1; } } } total_actual_da += this_value; if (this_value) { getElement('actual_potential_da_'+this_year+'_'+this_month).innerHTML = number_format(this_value+getElement('actual_potential_da_'+this_year+'_'+this_month).innerHTML.replace('.', '').replace('.', '').replace(',', '.')*1, number_of_decimals, ',', '.'); } } } if (typeof(plangrupper_budget_year[plangruppe]) != 'undefined' && typeof(plangrupper_budget_year[plangruppe][this_year]) != 'undefined') { total_budget_year += plangrupper_budget_year[plangruppe][this_year][key]*1; getElement('budget_year_'+this_year+'_'+this_month).innerHTML = number_format(plangrupper_budget_year[plangruppe][this_year][key]*1+getElement('budget_year_'+this_year+'_'+this_month).innerHTML.replace('.', '').replace(',', '.')*1, number_of_decimals, ',', '.'); } var year_offset = 1; var last_year_offset = 1; if (budget) { year_offset = -1; last_year_offset = -2; } if (typeof(plangrupper_budget_year[plangruppe]) != 'undefined' && typeof(plangrupper_budget_year[plangruppe][this_year+year_offset]) != 'undefined') { total_budget_next_year += plangrupper_budget_year[plangruppe][this_year+year_offset][key]*1; getElement('budget_next_year_'+this_year+'_'+this_month).innerHTML = number_format(plangrupper_budget_year[plangruppe][this_year+year_offset][key]*1+getElement('budget_next_year_'+this_year+'_'+this_month).innerHTML.replace('.', '').replace(',', '.')*1, number_of_decimals, ',', '.'); } if (budget && typeof(plangrupper_budget_year[plangruppe]) != 'undefined' && typeof(plangrupper_budget_year[plangruppe][this_year+last_year_offset]) != 'undefined') { total_budget_next_next_year += plangrupper_budget_year[plangruppe][this_year+last_year_offset][key]*1; getElement('budget_next_next_year_'+this_year+'_'+this_month).innerHTML = number_format(plangrupper_budget_year[plangruppe][this_year+last_year_offset][key]*1+getElement('budget_next_next_year_'+this_year+'_'+this_month).innerHTML.replace('.', '').replace(',', '.')*1, number_of_decimals, ',', '.'); } if (typeof(plangrupper_actual_trade[plangruppe_positive]) != 'undefined' && typeof(plangrupper_actual_trade[plangruppe_positive][this_year]) != 'undefined' && (plangruppe_positive < 999 || !mainplangruppenr)) { total_actual_trade += parseFloat(plangrupper_actual_trade[plangruppe_positive][this_year][key]); getElement('actual_trade_'+this_year+'_'+this_month).innerHTML = number_format(plangrupper_actual_trade[plangruppe_positive][this_year][key]*1+getElement('actual_trade_'+this_year+'_'+this_month).innerHTML.replace('.', '').replace('.', '').replace(',', '.')*1, number_of_decimals, ',', '.'); } if (typeof(plangrupper_actual_trade[plangruppe_positive]) != 'undefined' && typeof(plangrupper_actual_trade[plangruppe_positive][this_year-1]) != 'undefined' && (plangruppe_positive < 999 || !mainplangruppenr)) { total_actual_trade_last_year += parseFloat(plangrupper_actual_trade[plangruppe_positive][this_year-1][key]); getElement('actual_trade_last_year_'+this_year+'_'+this_month).innerHTML = number_format(plangrupper_actual_trade[plangruppe_positive][this_year-1][key]*1+getElement('actual_trade_last_year_'+this_year+'_'+this_month).innerHTML.replace('.', '').replace('.', '').replace(',', '.')*1, number_of_decimals, ',', '.'); } this_month++; } getElement('actual_potential_total').innerHTML = number_format(getElement('actual_potential_total').innerHTML.replace('.', '').replace('.', '').replace(',', '.')*1 + total_actual, number_of_decimals, ',', '.'); getElement('actual_potential_all_total').innerHTML = number_format(getElement('actual_potential_all_total').innerHTML.replace('.', '').replace('.', '').replace(',', '.')*1 + total_actual_all, number_of_decimals, ',', '.'); getElement('actual_potential_da_total').innerHTML = number_format(getElement('actual_potential_da_total').innerHTML.replace('.', '').replace('.', '').replace(',', '.')*1 + total_actual_da, number_of_decimals, ',', '.'); getElement('theoretical_potential_total').innerHTML = number_format(getElement('theoretical_potential_total').innerHTML.replace('.', '').replace('.', '').replace(',', '.')*1 + total_theoretical, number_of_decimals, ',', '.'); getElement('budget_year_total').innerHTML = number_format(getElement('budget_year_total').innerHTML.replace('.', '').replace('.', '').replace(',', '.')*1 + total_budget_year, number_of_decimals, ',', '.'); getElement('budget_next_year_total').innerHTML = number_format(getElement('budget_next_year_total').innerHTML.replace('.', '').replace('.', '').replace(',', '.')*1 + total_budget_next_year, number_of_decimals, ',', '.'); if(budget) { getElement('budget_next_next_year_total').innerHTML = number_format(getElement('budget_next_next_year_total').innerHTML.replace('.', '').replace('.', '').replace(',', '.')*1 + total_budget_next_next_year, number_of_decimals, ',', '.'); } getElement('actual_trade_total').innerHTML = number_format(getElement('actual_trade_total').innerHTML.replace('.', '').replace('.', '').replace(',', '.')*1 + total_actual_trade, number_of_decimals, ',', '.'); getElement('actual_trade_last_year_total').innerHTML = number_format(getElement('actual_trade_last_year_total').innerHTML.replace('.', '').replace('.', '').replace(',', '.')*1 + total_actual_trade_last_year, number_of_decimals, ',', '.'); } function sums_clear() { if (sum_main_plangruppe) { for(key in plangrupper_maingroups[sum_main_plangruppe]['plangrupper']) { getElement('tr_plangruppe_'+plangrupper_maingroups[sum_main_plangruppe]['plangrupper'][key]).style.backgroundColor = '#FFFFFF'; } getElement('tr_main_plangruppe_'+sum_main_plangruppe).style.backgroundColor = '#FFFFFF'; sum_main_plangruppe = 0; } if (sum_plangruppe) { getElement('tr_plangruppe_'+sum_plangruppe).style.backgroundColor = '#FFFFFF'; sum_plangruppe = 0; } var this_year = year_start; var this_month = month_start; for(i=0; i<12; i++) { if (this_month == 13) { this_month = 1; this_year++; } getElement('actual_potential_'+this_year+'_'+this_month).innerHTML = ''; getElement('actual_potential_all_'+this_year+'_'+this_month).innerHTML = ''; getElement('actual_potential_da_'+this_year+'_'+this_month).innerHTML = ''; getElement('theoretical_potential_'+this_year+'_'+this_month).innerHTML = ''; getElement('budget_year_'+this_year+'_'+this_month).innerHTML = ''; getElement('budget_next_year_'+this_year+'_'+this_month).innerHTML = ''; if(budget) { getElement('budget_next_next_year_'+this_year+'_'+this_month).innerHTML = ''; } getElement('actual_trade_'+this_year+'_'+this_month).innerHTML = ''; getElement('actual_trade_last_year_'+this_year+'_'+this_month).innerHTML = ''; this_month++; } getElement('actual_potential_total').innerHTML = ''; getElement('actual_potential_all_total').innerHTML = ''; getElement('actual_potential_da_total').innerHTML = ''; getElement('theoretical_potential_total').innerHTML = ''; getElement('budget_year_total').innerHTML = ''; getElement('budget_next_year_total').innerHTML = ''; if(budget) { getElement('budget_next_next_year_total').innerHTML = ''; } getElement('actual_trade_total').innerHTML = ''; getElement('actual_trade_last_year_total').innerHTML = ''; getElement('sums_headline').innerHTML = ''; } change_distributor_startcell = false; change_distributor_select_active = false; function change_distributor_select_start(plangruppenr, month) { if (inline_editing_active || budget) { return; } change_distributor_cell_button_close(); for(key in change_distributor_cells) { key_vars = key.split('|'); getElement('cell['+key_vars[0]+']['+key_vars[1]+'_'+key_vars[2]+']').style.backgroundColor = ''; delete change_distributor_cells[key_vars[0]+'|'+key_vars[1]+'|'+key_vars[2]]; } change_distributor_select_active = true; change_distributor_startcell = false; return false; } function change_distributor_select_move(plangruppenr, year, month) { year = parseInt(year); month = parseInt(month); if (!change_distributor_select_active) { return; } if (!change_distributor_startcell) { change_distributor_startcell = new Array(plangruppenr, year, month); } if (plangruppenr != change_distributor_startcell[0]) { return; } for(key in change_distributor_cells) { key_vars = key.split('|'); delete change_distributor_cells[plangruppenr+'|'+key_vars[1]+'|'+key_vars[2]]; getElement('cell['+key_vars[0]+']['+key_vars[1]+'_'+key_vars[2]+']').style.backgroundColor = ''; } var distributor_year_start = change_distributor_startcell[1]; var distributor_year_stop = year; var distributor_month_start = change_distributor_startcell[2]; var distributor_month_stop = month; if (distributor_year_start > distributor_year_stop || (distributor_year_start == distributor_year_stop && distributor_month_start > distributor_month_stop)) { distributor_year_stop = change_distributor_startcell[1]; distributor_year_start = year; distributor_month_stop = change_distributor_startcell[2]; distributor_month_start = month; } var this_year = year_start; var this_month = month_start-1; for(i=0;i<12;i++) { if (this_month == 12) { this_month = 0; this_year++; } if (this_year > distributor_year_start || (this_year == distributor_year_start && this_month >= distributor_month_start)) { if (this_year < distributor_year_stop || (this_year == distributor_year_stop && (this_month) <= distributor_month_stop)) { getElement('cell['+plangruppenr+']['+this_year+'_'+this_month+']').style.backgroundColor = '#aeda82'; change_distributor_cells[plangruppenr+'|'+this_year+'|'+this_month] = true; } } this_month++; } } document.onmouseup = change_distributor_select_stop; function change_distributor_select_stop() { if (!change_distributor_select_active) { return; } var lastkey = false; for(key in change_distributor_cells) { lastkey = key; } if (lastkey) { var key_elements = lastkey.split('|'); change_distributor_cell_button(getElement('cell['+key_elements[0]+']['+key_elements[1]+'_'+key_elements[2]+']')); } change_distributor_select_active = false; } function change_distributor_selector(plangruppenr, month, year) { if (inline_editing_active) { return; } if (typeof(plangrupper_distributor[plangruppenr]) != 'undefined' && typeof(plangrupper_distributor[plangruppenr][year]) != 'undefined' && typeof(plangrupper_distributor[plangruppenr][year][(month*1+1)]) != 'undefined') { //Klik p celle med distributr angivet - vi viser "skift leverandr" for denne ene celle close_change_distributor_overlay(); change_distributor_cells[plangruppenr+'|'+year+'|'+month] = true; var distributor_id; for(distributor_id in plangrupper_distributor[plangruppenr][year][month*1+1]) { } change_distributor_overlay(distributor_id); } } change_distributor_cells = new Array(); function change_distributor_overlay(distributor_id) { var data = '
'; var number_of_cells = 0; var single_cell; var da_contracts = 0; var quantity_of_cells = 0; for(key in change_distributor_cells) { single_cell = key; single_cell = single_cell.split('|'); var plangruppenr = parseInt(single_cell[0]); var year = parseInt(single_cell[1]); var month = parseInt(single_cell[2]); quantity_of_cells += plangrupper_actual[plangruppenr][year]['month_'+(month+1)]*1; if (plangrupper_distributor[plangruppenr] && plangrupper_distributor[plangruppenr][year] && plangrupper_distributor[plangruppenr][year][month+1]) { for(this_distributor_id in plangrupper_distributor[plangruppenr][year][month+1]) { if (plangrupper_distributor[plangruppenr][year][month+1][this_distributor_id]['contract'] == 'y') { da_contracts++; } } } number_of_cells++; } distributor_select_id = 0; var this_plangruppenr = single_cell[0]; var this_main_plangruppenr = 0; for(mainplangruppenr in plangrupper_maingroups) { for(plangruppenr in plangrupper_maingroups[mainplangruppenr]['plangrupper']) { if (plangruppenr == single_cell[0]) { this_main_plangruppenr = mainplangruppenr; } } } note_input_container = '
Note:
'; var show_save_button = false; if (da_contracts && this_main_plangruppenr != 56) { data += 'n eller flere af de valgte mneder indeholder Danish Agro kontrakter, og kan derfor ikke skifte leverandr.'; } else if (number_of_cells == 1 && this_main_plangruppenr == 56) { show_save_button = true; data += '
'; var plangruppenr = single_cell[0]; var year = single_cell[1]*1; var month = single_cell[2]*1; var distributor_count = 0; var value = ''; if (is_numeric(plangrupper_actual[plangruppenr][year]['month_'+(month+1)])) { number_of_decimals = 0; if (plangrupper_units[plangruppenr] == 'kg') { number_of_decimals = 1; } cell_value = number_format(plangrupper_actual[plangruppenr][year]['month_'+(month+1)], number_of_decimals, ',', '.'); } if (typeof(plangrupper_distributor[plangruppenr]) != 'undefined' && typeof(plangrupper_distributor[plangruppenr][year]) != 'undefined' && typeof(plangrupper_distributor[plangruppenr][year][month+1]) != 'undefined') { for(this_distributor_id in plangrupper_distributor[plangruppenr][year][month+1]) { var this_value = plangrupper_distributor[plangruppenr][year][month+1][this_distributor_id]['quantity']; this_value = number_format(this_value, number_of_decimals, ',', '.'); var disabled = ''; if (plangrupper_distributor[plangruppenr][year][month+1][this_distributor_id]['contract'] == 'y') { disabled = ' disabled="disabled"'; } data += distributor_select(this_distributor_id, plangruppenr, disabled)+' '; distributor_count++; } } if (distributor_count == 0) { show_save_button = true; data += distributor_select(0, plangruppenr)+' '; } var remove_da = (disabled ? 'remove_da' : ''); data += '
'; data += 'Tilfj leverandr'; data += '

'; data += '
Faktisk potentiale:'+cell_value+'
Danish Agro potentiale:
'; data += note_input_container; } else if (da_contracts && this_main_plangruppenr == 56 && number_of_cells > 1) { data += 'n eller flere af de valgte mneder indeholder Danish Agro kontrakter, og kan derfor kun ndres enkeltvis.'; } else { show_save_button = true; data += 'Vlg ny leverandr: '+distributor_select(distributor_id, this_plangruppenr); data += note_input_container; } var date = new Date(); var day = date.getDate(); var month = date.getMonth()+1; var year = date.getFullYear(); if (day < 10){day = '0'+day;} if (month < 10){month = '0'+month;} var thisdate = day+'-'+month+'-'+year; if (show_save_button) { var quantity_input = ''; if (this_plangruppenr.length > 3) { quantity_input = '
Mngde for periode: '; } data += '\ \ \ '+quantity_input+'\
'; } data += '
'; createOverlay(data, undefined, undefined, undefined, "change_distributor_overlay_container"); addCloseButtonToOverlay("change_distributor_overlay_container", function(){close_change_distributor_overlay()}); change_distributor_calculate_remaining(); } function change_distributor_calculate_remaining() { var quantity_total = 0; for(i=0; i<100; i++) { if (getElement('distributor_value['+i+']') && is_numeric(getElement('distributor_value['+i+']').value.replace('.', '').replace(',', '.'))) { quantity_total += getElement('distributor_value['+i+']').value.replace('.', '').replace(',', '.')*1; } } if (getElement('distributor_quantity_left')) { var newvalue = getElement('distributor_quantity_total').innerHTML.replace('.', '').replace(',', '.')*1-quantity_total; getElement('distributor_quantity_left').innerHTML = number_format(newvalue, 1, ',', '.'); } } function add_distributor(plangruppenr, remove_da) { var data = ''; distributor_select_id = 0; for(i=0; i<100; i++) { if (getElement('distributor_value['+i+']')) { var disabled = (getElement('distributor_value['+i+']').disabled ? ' disabled="disabled"' : ''); var this_distributor_id = getElement('new_distributor['+i+']').value; data += distributor_select(this_distributor_id, plangruppenr, disabled)+'
'; } } data += distributor_select(0, plangruppenr, remove_da)+'
'; getElement('multiple_distributors_container').innerHTML = data; } function change_distributor_save() { var values = ''; var quantity_vare = ''; var value_total = 0; var distributor_values_input = false; for(i=0; i<100; i++) { if (getElement('new_distributor['+i+']') && !getElement('new_distributor['+i+']').disabled) { var value = 0; if (getElement('distributor_value['+i+']')) { value = getElement('distributor_value['+i+']').value.replace(',', '.'); value_total += value*1; distributor_values_input = true; } values += getElement('new_distributor['+i+']').value+'|'+value+','; } } if (distributor_values_input && !value_total && getElement('new_distributor[0]') && !getElement('new_distributor[0]').disabled && getElement('new_distributor[0]').value != 0) { alert('Nr du vlger en leverandr, skal du indtaste en potentiale-vrdi'); return false; } else if (getElement('quantity_vare')) { value_quantity_vare = getElement('quantity_vare').value.replace(',', '.'); if (value_quantity_vare*1 == 0 && getElement('new_distributor[0]') && !getElement('new_distributor[0]').disabled && getElement('new_distributor[0]').value != 0) { alert('Nr du vlger en leverandr, skal du indtaste en potentiale-vrdi'); return false; } } var cellcount = 0; for(key in change_distributor_cells) { cellcount++; } var plangrupper = ''; for(key in change_distributor_cells) { plangrupper += key+','; var key_elements = key.split('|'); var plangruppenr = key_elements[0]; var year = key_elements[1]; var month = key_elements[2]; if (plangruppenr.length > 3 && getElement('quantity_vare')) { var cell_value = getElement('quantity_vare').value.replace(',', '.')*1/cellcount; plangrupper_actual[plangruppenr][year]['month_'+(month*1+1)] = cell_value; } } var query_array = new Array(); query_array.action = 'setNewDistributor'; query_array.cvr = cvr; query_array.values = values; query_array.plangrupper = plangrupper; query_array.s2k_note = urlencode(getElement('s2k_note').value); query_array.date_followup = (getElement('enable_followup').checked ? getElement('date_followup').value : 0); query_array.quantity_vare = (getElement('quantity_vare') ? getElement('quantity_vare').value : ''); query_array.salesmanid_followup = (getElement('enable_followup').checked ? getElement('follow_up_salesman').value : ''); query_array.send_to_outlook = (getElement('enable_followup').checked && getElement('send_to_outlook') ? getElement('send_to_outlook').checked : ''); var query = '/ajax/cvm.php'+createQueryString(query_array); ajaxRequest('GET', query, handle_new_distributor_save); } var distributor_select_id = 0; function distributor_select(distributor_id, plangruppenr, extra) { //extra kan angive om DA skal vre disabled eller udeladt if (!extra) { extra = ''; } var distributors_local = new Object; for(key in distributors) { distributors_local[key] = distributors[key]; } if (distributors_plangrupper[plangruppenr]) { for(key in distributors_plangrupper[plangruppenr]) { distributors_local[distributors_plangrupper[plangruppenr][key]] = distributors_all[distributors_plangrupper[plangruppenr][key]]; } } var data = ''; distributor_select_id++; return data; } function change_distributor_cell_button(obj) { change_distributor_overlay(); } function change_distributor_cell_button_close() { getElement('change_distributor_button_container').style.display = 'none'; } function close_change_distributor_overlay() { for(key in change_distributor_cells) { key_vars = key.split('|'); getElement('cell['+key_vars[0]+']['+key_vars[1]+'_'+key_vars[2]+']').style.backgroundColor = ''; delete change_distributor_cells[key_vars[0]+'|'+key_vars[1]+'|'+key_vars[2]]; } change_distributor_select_active = false; change_distributor_startcell = false; change_distributor_cell_button_close(); closeOverlay("change_distributor_overlay_container"); closeVeil(true); } function handle_new_distributor_save() { var data = JSON.parse(ajax_request_obj.responseText); if (data.error) { alert(data.error); return; } if (data['result'] != 1) { alert('Noget gik galt - ndringerne er ikke gemt'); return; } plangrupper_distributor = data['plangrupper_distributor']; plot_other_distributors(); close_change_distributor_overlay(); update_all_year_totals(); if (sum_plangruppe) { var sum_plangruppe_remember = sum_plangruppe; show_sums_for_plangruppe(sum_plangruppe); show_sums_for_plangruppe(sum_plangruppe_remember); } else if (sum_main_plangruppe) { var sum_main_plangruppe_remember = sum_main_plangruppe; show_sums_for_main_plangruppe(sum_main_plangruppe); show_sums_for_main_plangruppe(sum_main_plangruppe_remember); } } function update_all_year_totals() { for(plangruppenr in plangrupper_actual) { for(year in plangrupper_actual[plangruppenr]) { if (typeof(year_start) == 'undefined') { //template } else { update_year_total(plangrupper_actual[plangruppenr][year]['plangruppenr']); } } } update_mainplangruppe_totals(); } function update_mainplangruppe_totals() { if (typeof(year_start) == 'undefined') { return; //skabelon edit } for(maingroupid in plangrupper_maingroups) { getElement('maingrouptotal['+maingroupid+']').innerHTML = 0; for(plangruppenr in plangrupper_maingroups[maingroupid]['plangrupper']) { if (plangruppenr > 999 || plangruppenr < -999) { continue; } number_of_decimals = 0; if (plangrupper_units[plangruppenr] == 'kg') { number_of_decimals = 1; } var current_total = getElement('maingrouptotal['+maingroupid+']').innerHTML.replace('.', '').replace('.', '').replace(',', '.')*1; var year_total = 0; if (getElement('year_input['+plangruppenr+']')) { year_total = getElement('year_input['+plangruppenr+']').value; } else { year_total = getElement('year['+plangruppenr+']').innerHTML; } year_total = year_total.replace('.', '').replace('.', '').replace(',', '.')*1 var add_total = year_total; value = number_format(current_total+add_total, number_of_decimals, ',', '.'); getElement('maingrouptotal['+maingroupid+']').innerHTML = value; } } } function plot_other_distributors() { if (typeof(year_start) == 'undefined') { return; //skabelon edit } for(plangruppenr in plangrupper_actual) { number_of_decimals = 0; if (plangrupper_units[plangruppenr] == 'kg') { number_of_decimals = 1; } var this_year = year_start; var this_month = month_start; for(var i=0;i<12;i++) { if (this_month == 13) { this_month = 1; this_year++; } var value = 'undefined'; if (budget) { value = ''; if (plangrupper_budget_year[plangruppenr] && plangrupper_budget_year[plangruppenr][this_year] && plangrupper_budget_year[plangruppenr][this_year]['month_'+this_month] && plangrupper_budget_year[plangruppenr][this_year]['month_'+this_month] != 0) { value = number_format(plangrupper_budget_year[plangruppenr][this_year]['month_'+this_month], number_of_decimals, ',', '.'); } } else { if (plangrupper_actual[plangruppenr][this_year] && plangrupper_actual[plangruppenr][this_year]['month_'+this_month] && plangrupper_actual[plangruppenr][this_year]['month_'+this_month] != 0) { value = number_format(plangrupper_actual[plangruppenr][this_year]['month_'+(this_month)], number_of_decimals, ',', '.'); } else if (plangrupper_actual[plangruppenr] && plangrupper_actual[plangruppenr][this_year] && plangrupper_actual[plangruppenr][this_year]['month_'+(this_month)]) { value = ''; //plangruppen er udskrevet, men der er ikke vrdier i plangrupper_actual... her fjerner vi input ved endt redigering } else if (plangruppenr > 999) { //vareniveau - her skal nulstilles hvis plangrupper_actual ikke har en vrdi for feltet value = ''; } } if (value != 'undefined') { getElement('cell['+plangruppenr+']['+this_year+'_'+(this_month-1)+']').innerHTML = value; } this_month++; } } if (budget) { return; } for(plangruppenr in plangrupper_distributor) { for(year in plangrupper_distributor[plangruppenr]) { for(month in plangrupper_distributor[plangruppenr][year]) { if (getElement('cell['+plangruppenr+']['+year+'_'+(month-1)+']') || getElement('cell[-'+plangruppenr+']['+year+'_'+(month-1)+']')) { var cellname = 'cell['+plangruppenr+']['+year+'_'+(month-1)+']'; if (getElement('cell[-'+plangruppenr+']['+year+'_'+(month-1)+']')) { cellname = 'cell[-'+plangruppenr+']['+year+'_'+(month-1)+']'; } var this_distributor_id = ''; var distributor_count = 0; for(key in plangrupper_distributor[plangruppenr][year][month]) { this_distributor_id = key; distributor_count++; } var distributor = ''; if(this_distributor_id != '' && distributors_all[this_distributor_id]) { distributor = distributors_all[this_distributor_id].substr(0, 7); } if (distributor_count > 1) { distributor = 'mixed'; } getElement(cellname).innerHTML = distributor; } } } } } var inline_editing_active = false; function inline_edit_activate(mainplangruppenr) { overruling_action = 'inline_edit'; setTimeout(function(){overruling_action = false;}, 200); if (inline_editing_active) { if (inline_editing_active == mainplangruppenr) { return; } inline_edit_close(inline_editing_active); } if (!budget) { sums_clear(); } inline_editing_active = mainplangruppenr; main_plangrupper_show(mainplangruppenr, 'show'); for(plangruppenr in plangrupper_maingroups[mainplangruppenr]['plangrupper']) { var this_year = year_start; var this_month = month_start; var prefill = false; var value_this_year = false; for(i=0; i<12; i++) { if (this_month == 13) { this_month = 1; this_year++; } var value = 'undefined'; var number_of_decimals = 0; if (budget) { // check if plangroup has data for this year else prefill values from prefill data 26/09/2022 value = 0; if(plangrupper_budget_year[plangruppenr] && plangrupper_budget_year[plangruppenr][this_year]) { value_this_year = true if (plangrupper_budget_year[plangruppenr] && plangrupper_budget_year[plangruppenr][this_year] && plangrupper_budget_year[plangruppenr][this_year]['month_'+this_month] && plangrupper_budget_year[plangruppenr][this_year]['month_'+this_month] != 0) { value = plangrupper_budget_year[plangruppenr][this_year]['month_'+this_month]; } } else if(prefill_plangrp_values[plangruppenr]) { prefill = true; value = prefill_plangrp_values[plangruppenr]['month_'+this_month]; } } else if (typeof(plangrupper_actual[plangruppenr][this_year]) != 'undefined') { value = plangrupper_actual[plangruppenr][this_year]['month_'+(this_month)]*1; } if (typeof(plangrupper_actual[plangruppenr][this_year]) != 'undefined') { if (plangrupper_units[plangruppenr] == 'kg') { number_of_decimals = 1; } } if (value != 'undefined') { getElement('cell['+plangruppenr+']['+this_year+'_'+(this_month-1)+']').innerHTML = ''; } this_month++; } var old_total_value = getElement('year['+plangruppenr+']').innerHTML; // Prefill total from prefill data only for budget and table row with classname prefill which contains prefill data 26/09/2022 if(budget && prefill) { getElement('tr_plangruppe_'+plangruppenr).classList.remove("prefill"); if(prefill) { old_total_value = number_format(prefill_plangrp_values[plangruppenr]['total_quantity'], number_of_decimals, ',', ''); getElement('tr_plangruppe_'+plangruppenr).classList.add("prefill"); } } getElement('year['+plangruppenr+']').innerHTML = ''; // Set plangroup name bgcolor to green if already have data for this year 26/09/2022 if(budget) { getElement('status_td_'+plangruppenr).innerHTML = ''; if(value_this_year) { getElement('status_td_'+plangruppenr).innerHTML = ''; } } } getElement('inline_edit_button_'+mainplangruppenr).style.display = ''; } function year_total_focus(plangruppenr) { if (typeof(year_total_values) == 'undefined') { year_total_values = new Array(); } year_total_values[plangruppenr] = getElement('year_input['+plangruppenr+']').value; } function year_total_key(plangruppenr) { if (typeof(year_total_values) == 'undefined') { return false; } if (year_total_values[plangruppenr] != getElement('year_input['+plangruppenr+']').value) { year_total_values[plangruppenr] = getElement('year_input['+plangruppenr+']').value; update_months_from_total(plangruppenr); update_mainplangruppe_totals(); } } function inline_edit_save(mainplangruppenr) { var vars = new Object; for(plangruppenr in plangrupper_maingroups[mainplangruppenr]['plangrupper']) { vars[plangruppenr] = new Object(); var this_year = year_start; var this_month = month_start; for(i=0; i<12; i++) { if (this_month == 13) { this_month = 1; this_year++; } if (getElement('plangruppe['+plangruppenr+']['+this_year+']['+(this_month-1)+']')) { getElement('plangruppe['+plangruppenr+']['+this_year+']['+(this_month-1)+']').disabled = true; getElement('plangruppe['+plangruppenr+']['+this_year+']['+(this_month-1)+']').value = getElement('plangruppe['+plangruppenr+']['+this_year+']['+(this_month-1)+']').value; vars[plangruppenr][this_year+'_'+(this_month-1)] = getElement('plangruppe['+plangruppenr+']['+this_year+']['+(this_month-1)+']').value; } this_month++; } // remove prefill class if plangroup data set to save 26/09/2022 if(budget) { getElement('tr_plangruppe_'+plangruppenr).classList.remove("prefill"); } } getElement('inline_edit_button_'+mainplangruppenr).disabled = true; vars = JSON.stringify(vars); ajaxRequest('GET', 'ajax/cvm.php?action=save_actual&budget='+budget+'&mainplangruppenr='+mainplangruppenr+'&cvr='+cvr+'&plangrupper='+vars, handle_inline_edit_save); } function update_months_from_total(plangruppenr) { if (typeof(year_start) == 'undefined') { update_months_from_total_template(plangruppenr); return; } var value_total = getElement('year_input['+plangruppenr+']').value.replace('.', '').replace(',', '.'); var value_per_month = Math.round(value_total*10/12)/10; var this_year = year_start; var this_month = month_start; number_of_decimals = 0; if (plangrupper_units[plangruppenr] == 'kg') { number_of_decimals = 1; } for(i=0; i<12; i++) { if (this_month == 13) { this_month = 1; this_year++; } getElement('plangruppe['+plangruppenr+']['+this_year+']['+(this_month-1)+']').value = number_format(value_per_month, number_of_decimals, ',', '.'); this_month++; } } function update_months_from_total_template(plangruppenr) { var value_total = getElement('year_input['+plangruppenr+']').value.replace('.', '').replace(',', '.'); var value_per_month = Math.round(value_total*100/12)/100; for(i=0; i<12; i++) { getElement('plangruppe['+plangruppenr+']['+i+']').value = number_format(value_per_month, 2, ',', '.'); } } function handle_inline_edit_save() { try { var data = JSON.parse(ajax_request_obj.responseText); } catch(e) { } if (typeof(data) == 'undefined' || data['result'] != 1) { alert('Noget gik galt - ndringerne er ikke gemt'); } else { inline_edit_close(data['mainplangruppenr']); } if (sum_plangruppe) { var sum_plangruppe_remember = sum_plangruppe; show_sums_for_plangruppe(sum_plangruppe); show_sums_for_plangruppe(sum_plangruppe_remember); } else if (sum_main_plangruppe) { var sum_main_plangruppe_remember = sum_main_plangruppe; show_sums_for_main_plangruppe(sum_main_plangruppe); show_sums_for_main_plangruppe(sum_main_plangruppe_remember); } if (budget) { inline_edit_activate(data['mainplangruppenr']); } } function inline_edit_close(mainplangruppenr) { inline_editing_active = false; getElement('inline_edit_button_'+mainplangruppenr).style.display = 'none'; getElement('inline_edit_button_'+mainplangruppenr).disabled = false; for(plangruppenr in plangrupper_maingroups[mainplangruppenr]['plangrupper']) { // skip if there is only prefill data for plangroup if(budget && getElement('tr_plangruppe_'+plangruppenr).classList.contains('prefill')) { continue; } var this_year = year_start; var this_month = month_start; for(i=0; i<12; i++) { if (this_month == 13) { this_month = 1; this_year++; } if (getElement('plangruppe['+plangruppenr+']['+this_year+']['+(this_month-1)+']')) { var value = getElement('plangruppe['+plangruppenr+']['+this_year+']['+(this_month-1)+']').value; if (budget) { if (!plangrupper_budget_year[plangruppenr]) { plangrupper_budget_year[plangruppenr] = new Array(); } if (!plangrupper_budget_year[plangruppenr][this_year]) { plangrupper_budget_year[plangruppenr][this_year] = new Array(); } plangrupper_budget_year[plangruppenr][this_year]['month_'+(this_month)] = value.replace('.', '').replace(',', '.'); } else { plangrupper_actual[plangruppenr][this_year]['month_'+(this_month)] = value.replace('.', '').replace(',', '.'); } } this_month++; } var year_input_value = getElement('year_input['+plangruppenr+']').value; getElement('year['+plangruppenr+']').innerHTML = year_input_value; } console.log(plangrupper_budget_year); plot_other_distributors(); } var actual_trade_items_plangruppe = 0; var actual_trade_items_main_plangruppe = 0; var actual_trade_items_year = ''; function actual_trade_items_toogle(year, show) { if ((!sum_plangruppe && !sum_main_plangruppe && show != 'show') || show == 'hide') { for(mainplangruppenr in plangrupper_maingroups) { getElement('actual_trade_items_container_'+mainplangruppenr).style.display = 'none'; } actual_trade_items_plangruppe = 0; actual_trade_items_main_plangruppe = 0; actual_trade_items_year = ''; return; } var plangrupper_show = new Array(); var this_main_plangruppe = sum_main_plangruppe; if (this_main_plangruppe) { /**en hovedplangruppe er markeret**/ for(plangruppenr in plangrupper_maingroups[this_main_plangruppe]['plangrupper']) { plangrupper_show.push(plangruppenr); } } else { /**en enkelt plangruppe er markeret**/ for(mainplangruppenr in plangrupper_maingroups) { for(plangruppenr in plangrupper_maingroups[mainplangruppenr]['plangrupper']) { if (plangruppenr == sum_plangruppe) { this_main_plangruppe = mainplangruppenr; plangrupper_show.push(plangruppenr); } } } } if (getElement('actual_trade_items_container_'+this_main_plangruppe).style.display == '' && show != 'show') { if (actual_trade_items_year == year && ((sum_plangruppe > 0 && sum_plangruppe == actual_trade_items_plangruppe) || (sum_main_plangruppe > 0 && sum_main_plangruppe == actual_trade_items_main_plangruppe))) { getElement('actual_trade_items_container_'+this_main_plangruppe).style.display = 'none'; actual_trade_items_plangruppe = 0; actual_trade_items_main_plangruppe = 0; return; } } if (sum_plangruppe) { actual_trade_items_plangruppe = sum_plangruppe; actual_trade_items_main_plangruppe = 0; } else if (sum_main_plangruppe) { actual_trade_items_main_plangruppe = sum_main_plangruppe; } actual_trade_items_year = year; var this_year_start = year_start; if (year == 'last') { this_year_start--; } var items_found = 0; var table = ''; for(key in plangrupper_show) { var plangruppenr = plangrupper_show[key]; plangruppenr = (plangruppenr < 0 ? plangruppenr*-1 : plangruppenr); for(varenr in plangrupper_actual_trade_items[plangruppenr]) { if ((plangrupper_actual_trade_items[plangruppenr][varenr][this_year_start] || plangrupper_actual_trade_items[plangruppenr][varenr][this_year_start+1]) && (actual_trade_items_main_plangruppe == 0 || plangruppenr < 1000)) { var add_to_table = ''; add_to_table += ''; add_to_table += ' '; var this_year = this_year_start; var this_month = month_start; var value_total = 0; var values_exist = false; for(i=0; i<12;i++) { if (this_month == 13) { this_month = 1; this_year++; } var value = ''; if (typeof(plangrupper_actual_trade_items[plangruppenr][varenr][this_year]) != 'undefined') { value = parseFloat(plangrupper_actual_trade_items[plangruppenr][varenr][this_year]['month_'+this_month]); value_total += value; } if (value != 0) { values_exist = true; } add_to_table += ' '; this_month++; } add_to_table += ' '; add_to_table += ''; if (values_exist) { table += add_to_table; } items_found++; } } } if (!items_found) { table += ''; table += ' '; table += ''; } table += ' '; table += '
'; add_to_table += ' '+(year == 'this' ? 'Faktisk handel d..: ' : 'Faktisk handel s..: ')+(plangrupper_actual_trade_items[plangruppenr][varenr][this_year_start] ? plangrupper_actual_trade_items[plangruppenr][varenr][this_year_start]['name'] : plangrupper_actual_trade_items[plangruppenr][varenr][this_year_start+1]['name']); add_to_table += ' '; add_to_table += ' '+number_format(value, number_of_decimals, ',', '.'); add_to_table += ' '; add_to_table += ' '+number_format(value_total, number_of_decimals, ',', '.'); add_to_table += '
'; table += ' Ingen varer fundet i plangruppe/periode'; table += '
'; getElement('actual_trade_items_container_'+this_main_plangruppe).style.display = ''; getElement('actual_trade_items_container_'+this_main_plangruppe).innerHTML = table; } function number_format2(number, decimals) { var divide = 1; for(var i=0; i

Der hentes markdata for det indtastede cvr-nummer og du kan s vlge hvor meget, der skal overfres'; createOverlay(data, undefined, undefined, undefined, "edit_mark_overlay_container"); addCloseButtonToOverlay("edit_mark_overlay_container", function(){close_edit_mark_overlay()}); getElement('cvr_from').focus(); var options = { script:"ajax/shop_users_autosuggest.php?json=true&return=cvr&", varname:"search", json:true, delay:300, cache:false, timeout:20000, offsety:-1, callback: function (obj) { getElement('cvr_from').value = obj.id; } }; var as_json = new AutoSuggest('cvr_from', options); } function edit_mark_fetch_data(cvr_to, cvr_from) { ajaxRequest('GET', 'ajax/cvm.php?action=edit_mark_list&cvr_from='+cvr_from+'&cvr_to='+cvr_to, handle_edit_mark_list); } function handle_edit_mark_list() { closeOverlay("edit_mark_overlay_container"); var response = JSON.parse(ajax_request_obj.responseText); var data = '
'; data += response['html']; data += '
'; createOverlay(data, undefined, undefined, undefined, "edit_mark_overlay_container"); addCloseButtonToOverlay("edit_mark_overlay_container", function(){close_edit_mark_overlay()}); } function edit_mark_check(max_ha, obj) { var current_areal = obj.value.replace(',', '.') * 1; if (current_areal > max_ha) { obj.value = number_format(max_ha, 1, ',', '.'); } } function close_edit_mark_overlay() { closeOverlay("edit_mark_overlay_container"); closeVeil(true); } function edit_mark_maltbyg_vaarbyg(cvm_customers_id, ha_max, year, type_move_to) { var type_move_from_display = "Maltbyg"; var type_move_to_display = "Vrbyg"; switch(type_move_to) { case "maltbyg": type_move_from_display = "Vrbyg"; type_move_to_display = "Maltbyg"; break; case "vaarhvedebr": type_move_from_display = "Vrhvede"; type_move_to_display = "Vrhvede/brd"; break; case "vaarhvede": type_move_from_display = "Vrhvede/brd"; type_move_to_display = "Vrhvede"; break; case "vinterhvedebr": type_move_from_display = "Vinterhvede"; type_move_to_display = "Vinterhvede, brdhv."; break; case "vinterhvede": type_move_from_display = "Vinterhvede, brdhv."; type_move_to_display = "Vinterhvede"; break; } var data = '
'; data += 'Flyt '+type_move_from_display+' areal til '+type_move_to_display+' for r '+year+': HA
'; createOverlay(data, undefined, undefined, undefined, "edit_mark_overlay_container"); addCloseButtonToOverlay("edit_mark_overlay_container", function(){close_edit_mark_overlay()}); getElement('ha_to_move').focus(); } function edit_mark_maltbyg_vaarbyg_check_max(ha_max, current) { var ha_max_int = ha_max.replace(',', '.')*1; var old_value = document.getElementById('ha_to_move').value.replace(',', '.'); if (old_value*1 > ha_max_int) { document.getElementById('ha_to_move').value = ha_max; } } function edit_mark_maltbyg_vaarbyg_move(cvm_customers_id, ha_to_move, year, type_move_to) { getElement('edit_mark_container').innerHTML = 'Flytter marken..
Vent venligst
'; ajaxRequest('GET', 'ajax/cvm.php?action=edit_mark_maltbyg_vaarbyg_move&cvm_customers_id='+cvm_customers_id+'&ha_to_move='+ha_to_move+'&year='+year+'&type_move_to='+type_move_to, edit_mark_maltbyg_vaarbyg_move_receive); } function edit_mark_maltbyg_vaarbyg_move_receive() { var data = JSON.parse(ajax_request_obj.responseText); if (data['errormsg']) { alert(data['errormsg']); return; } document.location.reload(); } var gylle_aftaler_array = new Array(); var farmhandel_byg_array = new Array(); var farmhandel_hvede_array = new Array(); function gylleAftale() { var gylle_container = getElement('gylle_aftale_container'); if (getElement('gylleaftale').value != 'n') { if (gylle_aftaler_array.length == 0) { gylleAftaleAddNew('gylle_aftaler', 'gylleAftale'); return false; } var new_data = ''; /** Bygger indholdet til gylle containeren **/ for(x in gylle_aftaler_array) { new_data += ''; new_data += ' '; new_data += ' '; new_data += ' '; new_data += ''; } new_data += ' '; new_data += ' '; new_data += ' '; new_data += '
'; new_data += ' CVR: '; new_data += ' '; new_data += ' m3'; new_data += ' '; new_data += ' '; new_data += '
[tilfj ny gylleaftale]
'; gylle_container.innerHTML = new_data; getElement('gylle_aftale_container').style.display = ''; } else { gylle_container.style.display = 'none'; } } function farmhandel_byg_toggle() { var farmhandel_byg_container = getElement('farmhandel_byg_container'); if (getElement('farmhandel_byg').value != 'n') { if (farmhandel_byg_array.length == 0) { farmhandel_byg_AddNew(); return false; } var new_data = ''; /** Bygger indholdet til gylle containeren **/ for(x in farmhandel_byg_array) { new_data += ''; new_data += ' '; new_data += ' '; new_data += ' '; new_data += ''; } new_data += ' '; new_data += ' '; new_data += ' '; new_data += '
'; new_data += ' CVR: '; new_data += ' '; new_data += ' m3'; new_data += ' '; new_data += ' '; new_data += '
[tilfj ny farmhandel-byg aftale]
'; farmhandel_byg_container.innerHTML = new_data; getElement('farmhandel_byg_container').style.display = ''; } else { farmhandel_byg_container.style.display = 'none'; } } function farmhandel_hvede_toggle() { var farmhandel_hvede_container = getElement('farmhandel_hvede_container'); if (getElement('farmhandel_hvede').value != 'n') { if (farmhandel_hvede_array.length == 0) { farmhandel_hvede_AddNew(); return false; } var new_data = ''; /** hvedeger indholdet til gylle containeren **/ for(x in farmhandel_hvede_array) { new_data += ''; new_data += ' '; new_data += ' '; new_data += ' '; new_data += ''; } new_data += ' '; new_data += ' '; new_data += ' '; new_data += '
'; new_data += ' CVR: '; new_data += ' '; new_data += ' m3'; new_data += ' '; new_data += ' '; new_data += '
[tilfj ny farmhandel-hvede aftale]
'; farmhandel_hvede_container.innerHTML = new_data; getElement('farmhandel_hvede_container').style.display = ''; } else { farmhandel_hvede_container.style.display = 'none'; } } function gylleAftale_activate_autosuggest(x, type) { var options = { script:"ajax/shop_users_autosuggest.php?json=true&customers_only=true&return=cvr&", varname:"search", json:true, delay:300, cache:false, timeout:20000, offsety:-1, callback: function (obj) { getElement(type+'_kundenr_'+x).value = obj.id; getElement(type+'_kundenr_'+x).blur(); gylleAftaleUpdate(x, type); } }; var as_json = new AutoSuggest(type+'_kundenr_'+x, options); } function gylleAftaleAddNew() { var object = new Object(); object.kundenr = ''; object.maengde = ''; gylle_aftaler_array.push(object); gylleAftale(); } function farmhandel_byg_AddNew() { var object = new Object(); object.kundenr = ''; object.maengde = ''; farmhandel_byg_array.push(object); farmhandel_byg_toggle(); } function farmhandel_hvede_AddNew() { var object = new Object(); object.kundenr = ''; object.maengde = ''; farmhandel_hvede_array.push(object); farmhandel_hvede_toggle(); } function gylleAftaleRemove(id) { unset(gylle_aftaler_array, id, true); gylleAftale(); } function farmhandel_byg_Remove(id) { unset(farmhandel_byg_array, id, true); farmhandel_byg_toggle(); } function farmhandel_hvede_Remove(id) { unset(farmhandel_hvede_array, id, true); farmhandel_hvede_toggle(); } function gylleAftaleUpdate(id, type) { eval(type+'_array')[id].kundenr = getElement(type+'_kundenr_'+id).value; eval(type+'_array')[id].maengde = getElement(type+'_maengde_'+id).value; } function toogle_ecological(chr_animals_id) { ajaxRequest('GET', 'ajax/cvm.php?action=toogle_ecological&chr_animals_id='+chr_animals_id, handle_toogle_ecological); } function handle_toogle_ecological() { var data = JSON.parse(ajax_request_obj.responseText); getElement('ecological_'+data.chr_animals_id).innerHTML = data.new_caption; } function cvm_helptext(event, text, setting) { if(setting == 'preventBubbling') { preventDefault(event); } createVeil(50, true, "#000000"); var data = '

'; data += text; data += '

'; createOverlay(data, undefined, undefined, undefined, "cvm_helptext_container"); addCloseButtonToOverlay("cvm_helptext_container", function(){close_cvm_helptext_overlay()}); } function close_cvm_helptext_overlay() { closeOverlay("cvm_helptext_container"); closeVeil(true); } function date_jump(date_new) { var expand = new Array(); for(main_plangruppenr in plangrupper_maingroups) { for(key in plangrupper_maingroups[main_plangruppenr]['plangrupper']) { if (getElement('tr_plangruppe_'+plangrupper_maingroups[main_plangruppenr]['plangrupper'][key]).style.display == '') { expand[main_plangruppenr] = true; } } } var expand_new = new Array(); for(key in expand) { expand_new.push(key); } var expand_items = ''; if (actual_trade_items_main_plangruppe || actual_trade_items_plangruppe) { expand_items = '&expand_items='+actual_trade_items_main_plangruppe+','+actual_trade_items_plangruppe+','+actual_trade_items_year; } document.location.href='?action=cvm_potential&type=actual&cvr='+cvr+'&date_start='+date_new+'&highlight_plangruppe='+sum_plangruppe+'&highlight_main_plangruppe='+sum_main_plangruppe+'&expand='+expand_new+expand_items; } function getS2000Data(id, counter) { ajaxRequest('GET', '/ajax/cvm.php?action=getS2000Data&id='+id, function(){handleGetS2000Data(id, counter);}); } function handleGetS2000Data(id, counter) { closeOverlay("s2000_data_display"); var ajax_data = JSON.parse(ajax_request_obj.responseText); var data = ajax_data; createVeil(1, false); createOverlay(data, 'absolute', -180, -475, 's2000_data_display', 'cvm_salg2000_scroll_div'); // addCloseButtonToOverlay("s2000_data_display", function(){ closeVeil(); closeOverlay("s2000_data_display"); }); if (getElement('protective_div')) { getElement('protective_div').onclick = function(){ closeVeil(); closeOverlay("s2000_data_display"); }; } setTimeout(function() { getElement('note_html').scrollTop = getElement('note_html').scrollHeight; //skal fixes }, 10); } function addS2000Data(cvm_customers_id) { ajaxRequest('GET', '/ajax/cvm.php?action=addS2000Data&cvm_customers_id='+cvm_customers_id, function(){handleAddS2000Data(cvm_customers_id);}); } function saveS2000Data(cvr, from_file_note, type_id) { if(!type_id) { type_id = ''; } var text = getElement('contact_text').value; if (getElement('send_to_customer_contact_text')) { text = getElement('send_to_customer_contact_text').value; } //file_note_added fra upload iframe if (text || from_file_note || (typeof(file_note_added) != 'undefined' && file_note_added)) { if(typeof(saving_s2000data) != 'undefined' && saving_s2000data) { return false; } saving_s2000data = true; getElement('contact_text').disabled = true; if (getElement('enable_followup').checked && getElement('follow_up_salesman').value.length > 0 && (getElement('follow_up_salesman').value.length < 3 || getElement('follow_up_salesman').value.length > 4)) { alert('Medarbejder ID ikke gyldigt - brug initialer'); return false; } var visits_report_string = ''; if(type_id == 22) { var activity_plan_option_ids = find_activity_plan_options(); var purpose_ids = find_purposes_options(); visits_report_string += '&type_id=22'; visits_report_string += '&title='+urlencode(getElement('title').value); visits_report_string += '&date_visited='+getElement('date_visit').value; visits_report_string += '&segment_green_line='+getElement('segment_green_line').checked; visits_report_string += '&segment_pigs='+getElement('segment_pigs').checked; visits_report_string += '&segment_cattle='+getElement('segment_cattle').checked; visits_report_string += '&segment_360='+getElement('segment_360').checked; visits_report_string += '&segment_chicken='+getElement('segment_chicken').checked; visits_report_string += '&activity_plan_option_ids='+activity_plan_option_ids; visits_report_string += '&purpose_ids='+purpose_ids; visits_report_string += '&purposes_other_text='+getElement('purposes_other_text').value; } var sendtocustomer_input = ''; if(getElement('sendtocustomer_emne_input')) { if(getElement('sendtocustomer_emne_input').value == '') { alert('Du skal udfylde emne feltet, fr du kan sende noten'); return false; } sendtocustomer_input += '&sendtocustomer_emne='+urlencode(getElement('sendtocustomer_emne_input').value); sendtocustomer_input += '&sendtocustomer_contact_id='+getElement('sendtocustomer_contact_id').value; sendtocustomer_input += '&sendtocustomer_signatur='+urlencode(getElement('signatur_id').value); sendtocustomer_input += '&sendtocustomer_send_to_myself='+(getElement('send_to_myself') && getElement('send_to_myself').checked ? 1 : 0); } var date_followup_string = ''; if (getElement('enable_followup').checked) { date_followup_string += '&date_followup='+getElement('date_followup').value; date_followup_string += '&clock_followup='+getElement('clock_followup').value; date_followup_string += '&salesmanid_followup='+getElement('follow_up_salesman').value; if (getElement('send_to_outlook') && getElement('send_to_outlook').checked) { date_followup_string += '&send_to_outlook='+getElement('send_to_outlook').checked; } if(getElement("follow_up_salesman_virk") != null) { date_followup_string += '&virk='+getElement("follow_up_salesman_virk").value; } } var site_key = ''; if(getElement(getElement('site_key')) && getElement('site_key').checked) { site_key = getElement('site_key').value; } if (getElement('sendtocustomer_date_followup') && getElement('sendtocustomer_date_followup').value != '') { date_followup_string += '&date_followup='+getElement('sendtocustomer_date_followup').value; date_followup_string += '&clock_followup='+getElement('sendtocustomer_clock_followup').value; if (getElement('sendtocustomer_send_to_outlook') && getElement('sendtocustomer_send_to_outlook').checked) { date_followup_string += '&send_to_outlook='+getElement('sendtocustomer_send_to_outlook').checked; } } ajaxRequest('GET', '/ajax/cvm.php?action=saveS2000Data&cvr='+cvr+'&site_key='+site_key+'&contact_text='+urlencode(text)+visits_report_string+date_followup_string+sendtocustomer_input, function(){handleSaveS2000Data();}); } } function handleSaveS2000Data(show_message, followup_only, customer_list) { saving_s2000data = false; if(getElement('contact_text')) { getElement('contact_text').disabled = false; } if(typeof(show_message) == 'undefined') { show_message = true; } try { var data = JSON.parse(ajax_request_obj.responseText); if(data.error) { alert(data.error); // getElement('salesmanid_input').disabled = false; // getElement('salesmanid_input').focus(); return; } } catch(e) { } var message = 'Notatet er nu gemt'; if(getElement('sendToCustomerBoxContainer')) { message = 'Notatet er gemt og sendt til kunden'; closeOverlay('sendToCustomerBoxContainer'); } if(typeof(data) == 'object' && typeof(data.redirect) != 'undefined') { document.location.href = data.redirect; } var span_id = 's2kdata'; if(followup_only) { span_id = 's2kdata_followup_only'; } else if(customer_list) { span_id = 's2kdata_customer_list'; } if(getElement(span_id)) { getElement(span_id).innerHTML = ajax_request_obj.responseText; } if(show_message) { fadeInFadeOutAndRemove('
'+message+'
', 2000, 75, 75, 'fixed', 'center', 'center'); } } function editNote() { getElement('note_html').style.display = 'none'; getElement('note_edit').style.display = ''; getElement('s2k_note_original').focus(); } function deleteNote(id) { if(confirm('Er du sikker p du vil slette denne note?')) { ajaxRequest('GET', '/ajax/cvm.php?action=deleteNote&s2k_notes_id='+id, function() { getElement('cvm_s2k_table').style.opacity = 0.5; getElement('cvm_s2k_table').style.filter = 'alpha(opacity=50)'; closeOverlay("s2000_data_display"); refreshcvm_s2000_box(false); }); } } function saveNote(id) { ajaxRequest('GET', '/ajax/cvm.php?action=saveNote&text='+urlencode(getElement('s2k_note_original').value)+'&s2k_notes_id='+id, function(){getS2000Data(id, 0); refreshcvm_s2000_box();}); } function savetoNote(id) { if (!trim(getElement('s2k_note_add').value)) { return false; } ajaxRequest('GET', '/ajax/cvm.php?action=savetoNote&text='+urlencode(getElement('s2k_note_add').value)+'&s2k_notes_id='+id, function(){getS2000Data(id, 0); refreshcvm_s2000_box();}); } function completedNote(id, type) { var return_function = function() { getElement('cvm_s2k_table').style.opacity = 0.5; getElement('cvm_s2k_table').style.filter = 'alpha(opacity=50)'; closeOverlay("s2000_data_display"); refreshcvm_s2000_box(); } if(type == 'visits') { var return_function = function() { if(getElement('visits_completed_button['+id+']')) { getElement('visits_completed_button['+id+']').style.display = 'none'; } if(getElement('visits_followup_date['+id+']')) { getElement('visits_followup_date['+id+']').style.textDecoration = 'line-through'; } if(getElement('visits_followup_date['+id+']')) { getElement('visits_followup_date['+id+']').style.textDecoration = 'line-through'; } if(getElement('notes_icon_td['+id+']')) { getElement('notes_icon_td['+id+']').style.backgroundImage = 'url(\'/images/icons/accept.png\')'; } else { alert('notes_icon_td['+id+']'); } } } ajaxRequest('GET', '/ajax/cvm.php?action=completedNote&s2k_notes_id='+id, return_function); } function kampagne_savetoNote(cvm_customers_id, kampagne_id) { if(getElement('s2k_note_add').value) { ajaxRequest('GET', '/ajax/cvm.php?action=kampagne_savetoNote&text='+urlencode(getElement('s2k_note_add').value)+'&cvm_customers_id='+cvm_customers_id+'&kampagne_id='+kampagne_id, function(){handle_kampagne_note_show(cvm_customers_id, kampagne_id); refreshcvm_s2000_box();}); } } function refreshcvm_s2000_box(show_message, followup_only, customer_list) { if (!getElement('s2kdata') && !getElement('s2kdata_followup_only') && !getElement('s2kdata_customer_list')) { //vi er ikke p en side, hvor s2k boksen er vist return; } if (typeof(show_message) == 'undefined') { show_message = true; } ajaxRequest('GET', '/ajax/cvm.php?action=refresh_cvm_s2000_box&followup_only='+followup_only+'&customer_list='+customer_list, function(){handleSaveS2000Data(show_message, followup_only, customer_list)}); } function toogleS2000Calendar(obj) { if (obj.checked) { getElement('date_followup_container').style.display = ''; if(getElement('sendtocustomer_container')) { getElement('sendtocustomer_container').style.display = 'none'; removeSendCustomerLine(); } } else { getElement('date_followup_container').style.display = 'none'; if(getElement('sendtocustomer_container')) { // getElement('sendtocustomer_container').style.display = ''; } } } function saveNotat(type) { if (type == 'kampagne' || type == 'tilbud' || type == 'afgrdebank') { notat = getElement('s2k_note_add').value; } else { var notat = getElement('contact_text').value; } ajaxRequest('post', 'ajax/cvm.php?action=saveNotat&type='+type, undefined, 'notat='+urlencode(notat)); } function salesmen_autosuggest_init(id) { if (typeof(as_json) != 'undefined') { as_json.clearSuggestions(); } if (!id) { id = "follow_up_salesman"; } var options = { script:"/ajax/salesmen_autosuggest.php?json=true&", varname:"search", json:true, omit_highlight:true, delay:200, cache:false, timeout:20000, offsety:-1, width:250, callback: function (obj) { if(getElement("follow_up_salesman_virk") != null) { getElement("follow_up_salesman_virk").value = obj.virk; } getElement(id).value = obj.id; getElement(id).blur(); } }; as_json = new AutoSuggest(id, options); } function date_followup_change(month, year, s2k_notes_id) { viewing_s2k_notes_id = s2k_notes_id; switchMonth(month, year, 'date_followup_note', false, false, 20, false, new Date().getTime()/1000); } function handle_date_change_date_followup_note() { /** date_new og viewing_s2k_notes_id er globale veriabler **/ ajaxRequest('get', '/ajax/cvm.php?action=new_followup_date&s2k_notes_id='+viewing_s2k_notes_id+'&date_new='+date_new); fadeInFadeOutAndRemove('
Ny opflgningsdato gemt
', 1000, 50, 50, 'fixed', 'center', 'center'); } function handle_date_change_date_followup() { ajaxRequest('GET', '/ajax/cvm.php?action=followup_date_get_clock&salesmanid='+getElement('follow_up_salesman').value+'&date_followup='+getElement('date_followup').value, handle_date_change_date_followup_receive); } function handle_date_change_date_followup_receive() { var data = JSON.parse(ajax_request_obj.responseText); getElement('clock_followup').value = data['hour']+':'+data['min']; getElement('followup_clock_text').innerHTML = ''; if (data['text']) { getElement('followup_clock_text').innerHTML = '
'+data['text']; } } function salesmanid_change(s2k_notes_id, salesmanid) { var html = ''; html += ' '; getElement('salesmanid_container').innerHTML = html; getElement('salesmanid_input').focus(); } function salesmanid_change_save(s2k_notes_id) { getElement('salesmanid_input').disabled = true; ajaxRequest('get', '/ajax/cvm.php?action=salesmanid_change_save&s2k_notes_id='+s2k_notes_id+'&salesmanid='+getElement('salesmanid_input').value, salesmanid_change_save_handle); } function salesmanid_change_save_handle() { var data = JSON.parse(ajax_request_obj.responseText); if (data.error) { alert(data.error); getElement('salesmanid_input').disabled = false; getElement('salesmanid_input').focus(); return; } getS2000Data(data.s2k_notes_id, 0); } function budget_visits_overlay(cvm_customers_id, year, cvr) { var data = '
'; data += 'Henter...
'; createOverlay(data, undefined, undefined, undefined, "budget_visits_overlay_container"); addCloseButtonToOverlay("budget_visits_overlay_container", function(){closeOverlay('budget_visits_overlay_container')}); ajaxRequest('GET', 'ajax/cvm.php?action=budget_visits_overlay&cvm_customers_id='+cvm_customers_id+'&year='+year+'&cvr='+cvr, handle_budget_visits); } function handle_budget_visits() { closeOverlay('budget_visits_overlay_container'); var response = JSON.parse(ajax_request_obj.responseText); var data = '
'; data += response['html']; data += '
'; createOverlay(data, undefined, undefined, undefined, 'budget_visits_overlay_container'); addCloseButtonToOverlay('budget_visits_overlay_container', function(){closeOverlay('budget_visits_overlay_container')}); } function budget_checkbox_toggle(maingroup_id, month) { if (typeof(event['target']) == 'undefined' || typeof(event['target']['nodeName']) == 'undefined' || event['target']['nodeName'] != 'TD') { return; } getElement('visit_month['+maingroup_id+']['+month+']').checked = (getElement('visit_month['+maingroup_id+']['+month+']').checked ? false : true); } function budget_visits_save(cvr) { var vars = new Object; vars['budgetgroups'] = new Array(); vars['year'] = year_start; var maingroups_array = getElement('maingroups_ids').value.split(','); for (key in maingroups_array) { var budgetgroup = maingroups_array[key]; var this_budgetgroup = new Object(); this_budgetgroup['budgetgroup'] = budgetgroup; this_budgetgroup['salesmanid'] = getElement('salesmanid['+budgetgroup+']').value; this_budgetgroup['months'] = new Object; for(var i=1; i<13; i++) { this_budgetgroup['months'][i] = (getElement('visit_month['+budgetgroup+']['+i+']').checked ? 1 : 0); } vars['budgetgroups'].push(this_budgetgroup); } var vars_json = JSON.stringify(vars); getElement('budget_visits_savebutton').disabled = true; ajaxRequest('GET', 'ajax/cvm.php?action=budget_visits_save&budget='+vars_json+'&cvr='+cvr, handle_budget_visits_save); } function handle_budget_visits_save() { try { var response = JSON.parse(ajax_request_obj.responseText); } catch(e) {} if (typeof(response) != 'undefined' && response['result'] == 1) { closeOverlay('budget_visits_overlay_container'); return; } alert('Noget gik galt'); getElement('budget_visits_savebutton').disabled = false; } function saveCustomerPriority(cvr) { var value = ''; if(getElement('kategori_1').checked == true) { value = 1; } else if(getElement('kategori_2').checked == true) { value = 2; } else if(getElement('kategori_3').checked == true) { value = 3; } else if(getElement('kategori_0_ingen').checked == true) { value = 0; } ajaxRequest('GET', 'ajax/cvm.php?action=saveCustomerPriority&cvr='+cvr+'&value='+value, handle_saveCustomerPriority); } function handle_saveCustomerPriority() { var data = '
Kundepriotitet er gemt
'; fadeInFadeOutAndRemove(data); } function tilbud_note_show(cvm_customers_id, tilbud_id, toggle) { if(!getElement('tilbud_note_container') || toggle == undefined) { ajaxRequest('GET', '/ajax/cvm.php?action=tilbud_note_show&cvm_customers_id='+cvm_customers_id+'&tilbud_id='+tilbud_id, function(){handle_tilbud_note_show(cvm_customers_id, tilbud_id);}); } else { if(getElement('tilbud_note_container').style.display == '') { getElement('tilbud_note_container').style.display = 'none'; } else { getElement('tilbud_note_container').style.display = ''; } } closeOverlay('cvm_tilbud_inactive_container'); } function handle_tilbud_note_show(cvm_customers_id, tilbud_id) { var ajax_data = JSON.parse(ajax_request_obj.responseText); if (getElement('tilbud_note_container')) { getElement('tilbud_note_container').innerHTML = ajax_data; getElement('cvm_note_dragbar').onmousedown = function(event){startDragging(event, 'tilbud_note_container');}; getElement('cvm_note_dragbar').onmouseup = function(){cancelDragging();}; } else { createOverlay(ajax_data, 'absolute', 50, 50, 'tilbud_note_container', 'logo', true, 'cvm_note_dragbar'); } if (getElement('note_html')) { setTimeout(function() { getElement('note_html').scrollTop = getElement('note_html').scrollHeight; }, 10); } if (getElement('statuslist_just_added')) { getElement('statuslist_just_added').style.backgroundColor = 'rgb(200, 200, 200)'; setTimeout(function(){ fadebgcolor(getElement('statuslist_just_added')); }, 200); } } function tilbud_save_detail(cvm_customers_id, detail_name) { var query_array = new Array(); query_array.action = 'updateCustomerData'; query_array.new_value = urlencode(getElement('tilbud_'+detail_name).value); query_array.value_being_updated = detail_name; query_array.cvm_customers_id = cvm_customers_id; var query = '/ajax/standard.php'+createQueryString(query_array); ajaxRequest('GET', query, function(){handle_tilbud_save_details(detail_name)}); } function handle_tilbud_save_details(detail_name) { getElement(detail_name+'_container').innerHTML = getElement('tilbud_'+detail_name).value; } function tilbud_toggle_telemarketing(obj, cvm_customers_id) { var value = 0; if (obj.checked) { value = 1; } var query_array = new Array(); query_array.action = 'telemarketing_toggle'; query_array.cvm_customers_id = cvm_customers_id; var query = '/ajax/cvm.php'+createQueryString(query_array); ajaxRequest('GET', query, function(){handle_tilbud_toggle_telemarketing()}); } function handle_tilbud_toggle_telemarketing() { fadeInFadeOutAndRemove('
Indstillingen er gemt
', 1000, 50, 50, 'fixed', 'center', 'center'); } function visits_note_show(cvm_customers_id, s2k_notes_id, toggle) { if(!getElement('visits_note_container') || toggle == undefined) { ajaxRequest('GET', '/ajax/cvm.php?action=visits_note_show&cvm_customers_id='+cvm_customers_id+'&s2k_notes_id='+s2k_notes_id, function(){handle_visits_note_show(cvm_customers_id, s2k_notes_id);}); } else { if(getElement('visits_note_container').style.display == '') { getElement('visits_note_container').style.display = 'none'; } else { getElement('visits_note_container').style.display = ''; } } closeOverlay('cvm_visits_inactive_container'); } function handle_visits_note_show(cvm_customers_id, visits_id) { var ajax_data = JSON.parse(ajax_request_obj.responseText); if (getElement('visits_note_container')) { getElement('visits_note_container').innerHTML = ajax_data; getElement('cvm_note_dragbar').onmousedown = function(event){startDragging(event, 'visits_note_container');}; getElement('cvm_note_dragbar').onmouseup = function(){cancelDragging();}; } else { createOverlay(ajax_data, 'absolute', 50, 50, 'visits_note_container', 'logo', true, 'cvm_note_dragbar'); } if (getElement('note_html')) { setTimeout(function() { getElement('note_html').scrollTop = getElement('note_html').scrollHeight; }, 10); } if (getElement('statuslist_just_added')) { getElement('statuslist_just_added').style.backgroundColor = 'rgb(200, 200, 200)'; setTimeout(function(){ fadebgcolor(getElement('statuslist_just_added')); }, 200); } } function tilbud_savetoNote(cvm_customers_id, tilbud_id) { ajaxRequest('GET', '/ajax/cvm.php?action=tilbud_savetoNote&text='+urlencode(getElement('s2k_note_add').value)+'&cvm_customers_id='+cvm_customers_id+'&tilbud_id='+tilbud_id, function(){handle_tilbud_note_show(cvm_customers_id, tilbud_id); refreshcvm_s2000_box();}); } function visits_savetoNote(cvm_customers_id, s2k_notes_id) { ajaxRequest('GET', '/ajax/cvm.php?action=visits_savetoNote&text='+urlencode(getElement('s2k_note_add').value)+'&cvm_customers_id='+cvm_customers_id+'&s2k_notes_id='+s2k_notes_id, function(){handle_visits_note_show(cvm_customers_id, s2k_notes_id); refreshcvm_s2000_box();}); } function afgrdebank_savetoNote(s2k_notes_id, cvm_customers_id, plangruppenr, year, cropsbank_id) { ajaxRequest('GET', '/ajax/cvm.php?action=afgrdebank_savetoNote&text='+urlencode(getElement('s2k_note_add').value)+'&s2k_notes_id='+s2k_notes_id, function(){afgrdebank_overlay(s2k_notes_id, cvm_customers_id, plangruppenr, year, cropsbank_id); refreshcvm_s2000_box();}); } function tilbud_note_add(cvm_customers_id, tilbud_id) { var covered_note = (getElement('covered_textarea') ? getElement('covered_textarea').value : ''); var tilbud_date_followup = (getElement('tilbud_date_followup') ? getElement('tilbud_date_followup').value : ''); var tilbud_clock_followup = (getElement('tilbud_clock_followup') ? getElement('tilbud_clock_followup').value : ''); var outlook = (getElement('outlook') ? getElement('outlook').checked : ''); var status = getElement('status').value; var covered_vars = ''; if (status == 'covered') { covered_vars = new Object(); var input_list = document.getElementsByTagName('input'); for (var i=0; i 0) { getElement('move_customers_button_'+kampagne_id).style.display = ''; } } if(getElement('kampagne_'+kampagne_id)) { getElement('kampagne_'+kampagne_id).innerHTML = html; } } function saelgersplash_toggle_box(box_id, status, saelger, obj) { var box_status = status; if(getElement(box_id).style.display == 'none') { getElement(box_id).style.display = ''; obj.src = '/images/hvid-enkelt_pil_ned.png'; box_status = 'open'; } else { getElement(box_id).style.display = 'none'; obj.src = '/images/hvid-enkelt_pil.png'; box_status = 'close'; } ajaxRequest('GET', 'ajax/cvm.php?action=saelger_splash_box_toggle&box_id='+box_id+'&status='+box_status+'&saelger='+saelger); var contractbox_array = ['contract_unused', 'contract_unused_reversed', 'contract_expire', 'cvm_tilbud_container', 'top_without_competition_info', 'push_trade']; if(inArray(box_id, contractbox_array)) { var length = contractbox_array.length; for(var i = 0; i < length; i++) { if(box_status == 'close') { if(getElement(contractbox_array[i]+'_icon')) getElement(contractbox_array[i]+'_icon').src = '/images/hvid-enkelt_pil.png'; if(getElement(contractbox_array[i])) getElement(contractbox_array[i]).style.display = 'none'; } else { if(getElement(contractbox_array[i]+'_icon')) getElement(contractbox_array[i]+'_icon').src = '/images/hvid-enkelt_pil_ned.png'; if(getElement(contractbox_array[i])) getElement(contractbox_array[i]).style.display = ''; } } } var latestdatabox_array = ['latest_orders', 'latest_logins', 'cvm_contacts_plan']; if(inArray(box_id, latestdatabox_array)) { var length = latestdatabox_array.length; for(var i = 0; i < length; i++) { if(box_status == 'close') { getElement(latestdatabox_array[i]+'_icon').src = '/images/hvid-enkelt_pil.png'; getElement(latestdatabox_array[i]).style.display = 'none'; } else { getElement(latestdatabox_array[i]+'_icon').src = '/images/hvid-enkelt_pil_ned.png'; getElement(latestdatabox_array[i]).style.display = ''; } } } if(box_id.indexOf('_') !== -1) { var temp_id = box_id.split('_'); if(temp_id[0] == 'kampagner') { var campaigns = document.getElementsByClassName('all_campaigns'); for(var i = 0; i < campaigns.length; i++) { if(box_status == 'close') { getElement(campaigns[i].id+'_icon').src = '/images/hvid-enkelt_pil.png'; getElement(campaigns[i]).style.display = 'none'; } else { getElement(campaigns[i].id+'_icon').src = '/images/hvid-enkelt_pil_ned.png'; getElement(campaigns[i]).style.display = ''; } } } } } function inArray(needle, haystack) { var length = haystack.length; for(var i = 0; i < length; i++) { if(haystack[i] == needle) return true; } return false; } function cvm_my_customers_overlay() { ajaxRequest('GET', 'ajax/cvm.php?action=cvm_my_customers_overlay', cvm_my_customers_overlay_receive); var data = ''; data += '
'; data += '
'; data += ' Mine kunder'; data += '
'; data += '
'; data += ' Henter...'; data += '
'; data += '
'; createOverlay(data, undefined, undefined, undefined, 'cvm_my_customers_overlay', undefined, true, 'dragbar'); addCloseButtonToOverlay('cvm_my_customers_overlay', function(){ closeOverlay('cvm_my_customers_overlay')}); } function cvm_my_customers_overlay_receive() { var data = JSON.parse(ajax_request_obj.responseText); getElement('cvm_my_customers_overlay_container').innerHTML = data['html']; centerObject('top', 'cvm_my_customers_overlay'); centerObject('left', 'cvm_my_customers_overlay'); } function cvm_my_customers_toggle_table_display(priority) { var show = 0; if (getElement('table_'+priority).style.display == 'none') { getElement('cvm_my_customers_arrow_'+priority).src = '/images/hvid-enkelt_pil_ned.png'; getElement('table_'+priority).style.display = ''; show = 1; } else { getElement('cvm_my_customers_arrow_'+priority).src = '/images/hvid-enkelt_pil.png'; getElement('table_'+priority).style.display = 'none'; } var query_array = new Array(); query_array.action = 'cvm_my_customers_display'; query_array.priority = priority; query_array.show = show; var query = 'ajax/cvm.php'+createQueryString(query_array); ajaxRequest('GET', query); } function overlay_simple(text, width) { if(typeof(width) === 'undefined') { width = 200; } var data = '
'+text+'
'; createOverlay(data, undefined, undefined, undefined, 'overlay_simple'); addCloseButtonToOverlay('overlay_simple', function(){closeOverlay('overlay_simple')}); } function kampagne_result_change(obj) { kampagne_show_covered_toggle(); } function kampagne_status_change(obj) { var status = obj.value; if (status == 'calllater' || status == 'interested' || status == 'visitarranged' || status == 'sellercontact') { if (status == 'calllater') { getElement('kampagne_followup_label').innerHTML = 'Ring'; } else if (status == 'interested') { getElement('kampagne_followup_label').innerHTML = 'Opflgning'; } else if (status == 'visitarranged') { getElement('kampagne_followup_label').innerHTML = 'Dato'; }else if (status == 'sellercontact') { getElement('kampagne_followup_label').innerHTML = 'Dato'; } getElement('followup_date_container').style.display = ''; getElement('covered_note').style.display = 'none'; } else { getElement('followup_date_container').style.display = 'none'; } if (status == 'covered') { getElement('covered_note').style.display = ''; } else { getElement('covered_note').style.display = 'none'; } } function kampagne_save_detail(cvm_customers_id, detail_name) { var query_array = new Array(); query_array.action = 'updateCustomerData'; query_array.new_value = urlencode(getElement('kampagne_'+detail_name).value); query_array.value_being_updated = detail_name; query_array.cvm_customers_id = cvm_customers_id; var query = '/ajax/standard.php'+createQueryString(query_array); ajaxRequest('GET', query, function(){handle_kampagne_save_details(detail_name)}); } function handle_kampagne_save_details(detail_name) { getElement(detail_name+'_container').innerHTML = getElement('kampagne_'+detail_name).value; } function kampagne_toggle_telemarketing(obj, cvm_customers_id) { var value = 0; if (obj.checked) { value = 1; } var query_array = new Array(); query_array.action = 'telemarketing_toggle'; query_array.cvm_customers_id = cvm_customers_id; var query = '/ajax/cvm.php'+createQueryString(query_array); ajaxRequest('GET', query, function(){handle_kampagne_toggle_telemarketing()}); } function handle_kampagne_toggle_telemarketing() { fadeInFadeOutAndRemove('
Indstillingen er gemt
', 1000, 50, 50, 'fixed', 'center', 'center'); } function kampagne_phoner_attached_files(kampagne_phoner_id) { ajaxRequest('GET', 'ajax/cvm.php?action=kampagne_phoner_attached_files&kampagne_phoner_id='+kampagne_phoner_id, kampagne_phoner_attached_files_receive); var data = ''; data += '
'; data += '
'; data += ' Kampagnemateriale'; data += '
'; data += '
'; data += ' Henter...'; data += '
'; data += '
'; createOverlay(data, undefined, undefined, undefined, 'kampagne_phoner_attached_files', undefined, true, 'dragbar'); addCloseButtonToOverlay('kampagne_phoner_attached_files', function(){ closeOverlay('kampagne_phoner_attached_files')}); } function kampagne_phoner_attached_files_receive() { var data = JSON.parse(ajax_request_obj.responseText); getElement('kampagne_phoner_attached_files_container').innerHTML = data['html']; centerObject('top', 'kampagne_phoner_attached_files'); centerObject('left', 'kampagne_phoner_attached_files'); } function openKampagnematerialeTilKunden(cvm_customers_id, kampagne_id, toggle) { if(!getElement('kampagne_note_container_kampagne_files') || toggle == undefined) { ajaxRequest('GET', '/ajax/cvm.php?action=kampagne_files&cvm_customers_id='+cvm_customers_id+'&kampagne_id='+kampagne_id, function(){handleOpenKampagnematerialeTilKunden(cvm_customers_id, kampagne_id);}); } else { if(getElement('kampagne_note_container_kampagne_files').style.display == '') { getElement('kampagne_note_container_kampagne_files').style.display = 'none'; } else { getElement('kampagne_note_container_kampagne_files').style.display = ''; } } } function handleOpenKampagnematerialeTilKunden(cvm_customers_id, kampagne_id) { var ajax_data = JSON.parse(ajax_request_obj.responseText); if (getElement('kampagne_note_container_kampagne_files')) { $("#kampagne_note_container_kampagne_files").html(ajax_data); //getElement('kampagne_note_container_kampagne_files').innerHTML = ajax_data; getElement('cvm_note_dragbar_kampagne_files').onmousedown = function(event){startDragging(event, 'kampagne_note_container_kampagne_files');}; getElement('cvm_note_dragbar_kampagne_files').onmouseup = function(){cancelDragging();}; } else { createOverlay(ajax_data, 'absolute', 100, 280, 'kampagne_note_container_kampagne_files', 'logo', true, 'cvm_note_dragbar_kampagne_files'); } files_array = new Array; links_array = new Array; var kampagne_checkboxes = document.getElementsByClassName('kampagne_files_checkbox_class'); for (var i = 0; i < kampagne_checkboxes.length; i++) { addFilesToFilesArray(kampagne_checkboxes[i].value); } var kampagne_checkboxes = document.getElementsByClassName('kampagne_links_checkbox_class'); for (var i = 0; i < kampagne_checkboxes.length; i++) { addLinksToLinksArray(kampagne_checkboxes[i].value); } } function removeByElementArray(arrayName,arrayElement) { for(var i = 0; i [X]'; getElement(container_id).innerHTML = ''; obj.value = ''; } } function removeNoteFile() { if (!confirm('Er du sikker p du vil slette denne fil?')) { return false; } ajaxRequest('GET', 'ajax/cvm.php?action=removeNoteFile', handleRemoveNoteFile); } function handleRemoveNoteFile() { var container_id = 'addFileToNoteText_id'; if (getElement('addFileToNoteText_id_overlay')) { getElement('addFileToNoteText_id_overlay').style.display = 'none'; getElement('addFileToNote_id_overlay').style.display = ''; } else { getElement('addFileToNoteText_id').style.display = 'none'; getElement('addFileToNote_id').style.display = ''; } parent.file_note_added = false; // getElement('note_save_button').style.display = ''; // getElement('addfile_save_button').style.display = 'none'; // getElement('addfile_link').style.display = ''; } function sendToCustomerBox(cvm_customers_id) { ajaxRequest('GET','ajax/cvm.php?action=cvm_contacts_box_open&cvm_customers_id='+cvm_customers_id, handleSendToCustomerbox) } function handleSendToCustomerbox() { var response = JSON.parse(ajax_request_obj.responseText); if(!response['error']) { var data = response['html']; createOverlay(data, 'absolute', undefined, undefined, 'sendToCustomerBoxContainer', false, true, 'cvm_send_to_customer_dragbar'); // addCloseButtonToOverlay('sendToCustomerBoxContainer', function(){closeOverlay('sendToCustomerBoxContainer')}); } } function useContactToNote(cvm_customers_id, contacts_id) { ajaxRequest('GET', 'ajax/cvm.php?action=cvm_send_to_contact&contacts_id='+contacts_id+'&cvm_customers_id='+cvm_customers_id, handleuseContactToNote); } function handleuseContactToNote() { var response = JSON.parse(ajax_request_obj.responseText); if (response['error']) { alert(response['error']); return; } if (!getElement('sendToCustomerBoxContainer')) { createOverlay(response['html'], 'absolute', undefined, undefined, 'sendToCustomerBoxContainer', false, true, 'cvm_send_to_customer_dragbar'); } if (getElement('sendToCustomerBoxContainer')) { getElement('sendToCustomerBoxContainer').innerHTML = response['html']; getElement('cvm_send_to_customer_dragbar').onmousedown = function(event){startDragging(event, 'sendToCustomerBoxContainer');}; getElement('cvm_send_to_customer_dragbar').onmouseup = function(){cancelDragging();}; centerObject('top', 'sendToCustomerBoxContainer'); centerObject('left', 'sendToCustomerBoxContainer'); } } function removeSendCustomerLine() { getElement('sendtocustomer_container').innerHTML = getElement('sendtocustomer_link_save').innerHTML; } function cvm_afgrdebank_overlay(cvm_customers_id, year) { var data = '
'; data += 'Henter...'; data += '
'; createOverlay(data, undefined, undefined, undefined, 'cvm_afgrdebank_overlay_container'); addCloseButtonToOverlay('cvm_afgrdebank_overlay_container', function(){closeOverlay('cvm_afgrdebank_overlay_container')}); var query_array = new Array(); query_array.action = 'cvm_afgrdebank_overlay'; query_array.cvm_customers_id = cvm_customers_id; query_array.year = year; var query = '/ajax/cvm.php'+createQueryString(query_array); ajaxRequest('GET', query, handle_cvm_afgrdebank_overlay); } function handle_cvm_afgrdebank_overlay() { var response = JSON.parse(ajax_request_obj.responseText); plangrupper_array = response['plangrupper_array']; plangrupper_existing = response['plangrupper_existing']; getElement('cvm_afgrdebank_container').innerHTML = response['html']; for(key in response['plangrupper_existing']) { cvm_afgrdebank_add_plangruppenr(key, 'salesman'); } centerObject('top', 'cvm_afgrdebank_overlay_container'); centerObject('left', 'cvm_afgrdebank_overlay_container'); } function cvm_afgrdebank_change_plangruppenr(obj) { var selects = document.getElementsByTagName('select'); for(key in selects) { if(selects[key] != obj && selects[key].value == obj.value) { alert('Denne afgrde er allerede tilfjet'); obj.value = plangruppenr_prev_value; return false; } } } function cvm_afgrdebank_add_plangruppenr(plangruppenr, type, year, varenr, from_select, id) { if(!varenr) { varenr = ''; } if(type != 'salesman') { var selects = document.getElementsByTagName('select'); for(key in selects) { if(selects[key].id != 'afgrdebank_select' && selects[key].value == plangruppenr) { alert('Denne afgrde er allerede tilfjet'); getElement('afgrdebank_select').value = ''; return false; } } } getElement('afgrdebank_select').value = ''; if (!plangruppenr) { return false; } var row_index = document.getElementById('afgrdebank_table').getElementsByTagName('tr').length; var table = document.getElementById('afgrdebank_table'); var row = table.insertRow(row_index); row.id = 'afgrdebank_tr_'+plangruppenr; note_exists = false; var quantity_total = quantity_trade = quantity_da_bid = date_bid = date_analysis = notes = pre_analysis_count = ''; if(type == 'salesman_page' && typeof(plangrupper_existing[id]) == 'object' && typeof(plangrupper_existing[id]['time_bid']) != 'undefined' && !from_select) { note_exists = true; quantity_total = plangrupper_existing[id]['quantity_total']; quantity_trade = plangrupper_existing[id]['quantity_trade']; quantity_da_bid = plangrupper_existing[id]['quantity_da_bid']; date_bid = plangrupper_existing[id]['date_bid']; date_analysis = plangrupper_existing[id]['date_analysis']; notes = plangrupper_existing[id]['notes']; pre_analysis_count = plangrupper_existing[id]['pre_analysis_count']; } if(type != 'salesman' && type != 'salesman_page') { var cell1 = row.insertCell(0); var cell2 = row.insertCell(1); var cell7 = row.insertCell(2); cell1.setAttribute('style', 'border-bottom:solid 1px gray;'); cell2.setAttribute('style', 'border-bottom:solid 1px gray;'); cell7.setAttribute('style', 'border-bottom:solid 1px gray;'); } else { var cell1 = row.insertCell(0); var cell2 = row.insertCell(1); var cell3 = row.insertCell(2); var cell4 = row.insertCell(3); var cell5 = row.insertCell(4); var cell6 = row.insertCell(5); var cell7 = row.insertCell(6); var cell8 = row.insertCell(7); var cell9 = row.insertCell(8); cell1.setAttribute('style', 'border-bottom:solid 1px gray;'); cell2.setAttribute('style', 'border-bottom:solid 1px gray;'); cell3.setAttribute('style', 'border-bottom:solid 1px gray;'); cell4.setAttribute('style', 'border-bottom:solid 1px gray;'); cell5.setAttribute('style', 'border-bottom:solid 1px gray;'); cell6.setAttribute('style', 'border-bottom:solid 1px gray;'); cell7.setAttribute('style', 'border-bottom:solid 1px gray;'); cell8.setAttribute('style', 'border-bottom:solid 1px gray;'); cell9.setAttribute('style', 'border-bottom:solid 1px gray;'); } if(type != 'salesman' && type != 'salesman_page') { cell1.innerHTML = selectbox(plangrupper_array, plangruppenr, 'plangruppenr[]', false, ' onclick="plangruppenr_prev_value = this.value;" onchange="cvm_afgrdebank_change_plangruppenr(this);"'); cell2.innerHTML = ''; cell2.align = 'center'; cell7.innerHTML = ''; } else { if(typeof(unique_cropsbank_id) == 'undefined') { unique_cropsbank_id = 10; } else { unique_cropsbank_id += 10; } if(typeof(id) == 'undefined') { id = ''; } cell1.innerHTML = plangruppenr+' ('+plangrupper_array[plangruppenr]+')'; cell2.innerHTML = ''; cell2.align = 'center'; cell3.innerHTML = ''; cell3.align = 'center'; cell4.innerHTML = ''; cell4.align = 'center'; cell5.innerHTML = ''; cell5.align = 'center'; cell6.innerHTML = ''; cell6.innerHTML += ''; cell6.align = 'center'; cell7.innerHTML = ''; cell7.innerHTML += ''; cell7.align = 'center'; if(note_exists) { var caption = 'bn note'; var onclick = 'afgrdebank_overlay(false, '+cvm_customers_id+', '+plangruppenr+', '+year+', '+id+');'; var button = '
'+caption+'
'; cell8.innerHTML = button; } else { cell8.innerHTML = ''; } if(type != 'salesman_page') { centerObject('top', 'cvm_afgrdebank_overlay_container'); centerObject('left', 'cvm_afgrdebank_overlay_container'); } } } var cvm_afgrdebank_add_plangruppenr_salesman_page_plangroups_added_object = {}; function cvm_afgrdebank_add_plangruppenr_salesman_page(plangruppenr, year, varenr, from_select, id, contract_on_plangroup) { if(typeof(plangrupper_potential_array[plangruppenr]) != 'undefined') { var potential = plangrupper_potential_array[plangruppenr]; } if(typeof(afgrdebank_plangruppenr) == 'undefined') { afgrdebank_plangruppenr = ''; } if(!varenr) { varenr = ''; } /** Burde ikke skulle bruges **/ // var selects = document.getElementsByTagName('select'); // for(key in selects) // { // if(selects[key].id != 'afgrdebank_select' && selects[key].value == plangruppenr) // { // alert('Denne afgrde er allerede tilfjet'); // getElement('afgrdebank_select').value = ''; // return false; // } // } if(deletedmode == false) { getElement('afgrdebank_select').value = ''; } if (!plangruppenr) { return false; } cvm_afgrdebank_add_plangruppenr_salesman_page_plangroups_added_object[plangruppenr] = 1; /** Stter at denne er tilfjet **/ var table = document.getElementById('afgrdebank_table'); var create_new_header = false; if(!from_select && plangruppenr != afgrdebank_plangruppenr) { create_new_header = true; } else if(from_select) { if(!getElement('afgrdebank_header_'+plangruppenr)) { create_new_header = true; } } if(create_new_header) { var row_index = document.getElementById('afgrdebank_table').getElementsByTagName('tr').length; /** Laver den verste header for sig selv **/ if(typeof(first_header_set) == 'undefined') { first_header_set = true; // var row = table.insertRow(row_index); // var cell = row.insertCell(0); // // var cell = row.insertCell(1); // cell.innerHTML = 'Varenummer'; // cell.setAttribute('style', 'vertical-align:bottom; text-align:center;white-space:nowrap;'); // // var cell = row.insertCell(2); // cell.innerHTML = 'Sort'; // cell.setAttribute('style', 'vertical-align:bottom; text-align:center;white-space:nowrap;'); // // var cell = row.insertCell(3); // cell.innerHTML = 'Mngde'; // cell.setAttribute('style', 'vertical-align:bottom; text-align:center;white-space:nowrap;'); // // var cell = row.insertCell(4); // cell.innerHTML = ' '; // cell.setAttribute('style', 'vertical-align:bottom; text-align:center;white-space:nowrap;'); // // var cell = row.insertCell(5); // cell.innerHTML = ' '; // cell.setAttribute('style', 'vertical-align:bottom; text-align:center;white-space:nowrap;'); // // var cell = row.insertCell(6); // cell.innerHTML = 'Parti'; // cell.setAttribute('style', 'vertical-align:bottom; text-align:center;white-space:nowrap;'); // // var cell = row.insertCell(7); // cell.innerHTML = 'Kommentar'; // cell.setAttribute('style', 'vertical-align:bottom; text-align:center;white-space:nowrap;'); // // var cell = row.insertCell(8); // cell.innerHTML = ' '; // cell.setAttribute('style', 'vertical-align:bottom; text-align:center;white-space:nowrap;'); // // var cell = row.insertCell(9); // cell.innerHTML = ' '; // cell.setAttribute('style', 'vertical-align:bottom; text-align:center;white-space:nowrap;'); // // row_index++; } /** S laver vi toppen, dvs. plangruppe navn samt total mngde og mngde i handel **/ var row = table.insertRow(row_index); row.style.borderCollapse = 'collapse'; row.style.backgroundColor = '#ddd'; var cell = row.insertCell(0); var inner_html = ''+plangrupper_array[plangruppenr]+'.'; /** Potentiale **/ var potentiale_value = 0; if(typeof(potential) != 'undefined') { potentiale_value = Math.round(potential.replace('.', '').replace(',', '.')*1); inner_html += '
Potentiale: '+potentiale_value+' tons.' } /** Plus tegnet **/ inner_html += ' '; cell.innerHTML = inner_html; cell.setAttribute('style', 'border-bottom:solid 2px gray;white-space:nowrap;'); /** Finder data til hovedet **/ var quantity_total = quantity_trade = quantity_da_bid = ''; if(typeof(plangrupper_heads[plangruppenr]) == 'object' && !from_select) { quantity_total = plangrupper_heads[plangruppenr]['quantity_total']; quantity_trade = plangrupper_heads[plangruppenr]['quantity_trade']; quantity_da_bid = plangrupper_heads[plangruppenr]['quantity_da_bid']; } else { quantity_total = potentiale_value; } /** Total mngde **/ var cell = row.insertCell(1); cell.setAttribute('style', 'border-bottom:solid 2px gray;'); cell.setAttribute('colspan', '8'); cell.innerHTML = ''; cell.innerHTML += 'Mngde:    '; /** Mngde i handel **/ //cell.innerHTML += 'Mngde i handel:    '; cell.innerHTML += 'Mngde registreret: 0'; /** Total mngde **/ var cell = row.insertCell(2); cell.setAttribute('style', 'border-bottom:solid 2px gray;text-align:right;'); cell.innerHTML = ''; if(plangrupper_array[plangruppenr] == "Byg" && typeof(crops['Vrbyg']) !== "undefined" && crops['Vrbyg'] > 0) { afgroedebyg = afgroedebyg.replace(".", ","); cell.innerHTML += ''; } if(plangrupper_array[plangruppenr] == "Byg maltbyg" && typeof(crops['Maltbyg']) !== "undefined" && crops['Maltbyg'] > 0) { afgroedebyg = afgroedebyg.replace(".", ","); cell.innerHTML += ''; } if(plangrupper_array[plangruppenr] == "Hvede brd" && typeof(crops['Vrhvede/brd']) !== "undefined" && crops['Vrhvede/brd'] > 0) { afgroedevaarhvede = afgroedevaarhvede.replace(".", ","); cell.innerHTML += ''; } if(plangrupper_array[plangruppenr] == "Hvede" && typeof(crops['Vrhvede']) !== "undefined" && crops['Vrhvede'] > 0) { afgroedevaarhvede = afgroedevaarhvede.replace(".", ","); cell.innerHTML += ''; } if(plangrupper_array[plangruppenr] == "Hvede" && typeof(crops['Vinterhvede']) !== "undefined" && crops['Vinterhvede'] > 0) { afgroedevinterhvede = afgroedevinterhvede.replace(".", ","); cell.innerHTML += ''; } if(plangrupper_array[plangruppenr] == "Hvede brd" && typeof(crops['Vinterhvede, brdhv.']) !== "undefined" && crops['Vinterhvede, brdhv.'] > 0) { afgroedevinterhvede = afgroedevinterhvede.replace(".", ","); cell.innerHTML += ''; } // /** Total mngde **/ // var cell = row.insertCell(1); // cell.innerHTML = 'Mngde:'; // cell.align = 'center'; // cell.setAttribute('style', 'border-bottom:solid 2px gray;'); // var cell = row.insertCell(2); // cell.innerHTML = ''; // cell.align = 'center'; // cell.setAttribute('style', 'border-bottom:solid 2px gray;'); // // /** Mngde i handel **/ // var cell = row.insertCell(3); // cell.innerHTML = 'Mngde i handel: '; // cell.setAttribute('style', 'border-bottom:solid 2px gray;white-space:nowrap;'); // // /** Mngde DA m byde p **/ // var cell = row.insertCell(4); // cell.innerHTML = 'Mngde DA m byde p: '; // cell.setAttribute('style', 'border-bottom:solid 2px gray;white-space:nowrap;'); // // /** Resten **/ // var cell = row.insertCell(5); // cell.innerHTML = ' '; // cell.setAttribute('style', 'border-bottom:solid 2px gray;'); // cell.setAttribute('colspan', '4'); afgrdebank_plangruppenr = plangruppenr; row.id = 'afgrdebank_header_'+plangruppenr; } /** Finder det row_index hvor den nye row skal indsttes **/ var row_index = document.getElementById('afgrdebank_table').getElementsByTagName('tr').length; if(from_select && !create_new_header) { var rows_current = document.getElementById('afgrdebank_table').getElementsByTagName('tr'); var n = 0; for(key in rows_current) { if(rows_current[key].id == 'afgrdebank_header_'+plangruppenr) { break; } n++; } n++; var myNav = navigator.userAgent.toLowerCase(); var ieversion = (myNav.indexOf('msie') != -1) ? parseInt(myNav.split('msie')[1]) : false; if(ieversion == 7 || ieversion == 8) { n--; } row_index = n; } var row = table.insertRow(row_index); note_exists = false; var varenr = sort = quantity_total = date_bid = date_analysis = parti = notes = contract_nr = gaard_parti = run_no = ''; if(typeof(plangrupper_existing[id]) == 'object' && typeof(plangrupper_existing[id]['time_bid']) != 'undefined' && !from_select) { note_exists = true; varenr = plangrupper_existing[id]['varenr']; sort = plangrupper_existing[id]['sort']; quantity_total = plangrupper_existing[id]['quantity_total']; date_bid = plangrupper_existing[id]['date_bid']; date_analysis = plangrupper_existing[id]['date_analysis']; parti = plangrupper_existing[id]['parti']; run_no = plangrupper_existing[id]['run_no']; notes = plangrupper_existing[id]['notes']; contract_nr = plangrupper_existing[id]['contract_nr']; gaard_parti = plangrupper_existing[id]['gaard_parti']; } else { id = ''; } var cell1 = row.insertCell(0); var cell2 = row.insertCell(1); var cell3 = row.insertCell(2); var cell4 = row.insertCell(3); var cell5 = row.insertCell(4); var cell6 = row.insertCell(5); var cell7 = row.insertCell(6); var cell8 = row.insertCell(7); var cell9 = row.insertCell(8); var cell10 = row.insertCell(9); var cell11 = row.insertCell(10); if(typeof(unique_cropsbank_id) == 'undefined') { unique_cropsbank_id = 10; } else { unique_cropsbank_id += 10; } cell1.setAttribute('id', 'crops_name_'+plangruppenr+'_'+unique_cropsbank_id); cell1.setAttribute('style', 'border-bottom:solid 1px gray;'); cell2.setAttribute('style', 'border-bottom:solid 1px gray;'); cell3.setAttribute('style', 'border-bottom:solid 1px gray;'); cell4.setAttribute('style', 'border-bottom:solid 1px gray;'); cell5.setAttribute('style', 'border-bottom:solid 1px gray;white-space:nowrap;'); cell6.setAttribute('style', 'border-bottom:solid 1px gray;white-space:nowrap;'); cell7.setAttribute('style', 'border-bottom:solid 1px gray;white-space:nowrap;'); cell8.setAttribute('style', 'border-bottom:solid 1px gray;'); cell9.setAttribute('style', 'border-bottom:solid 1px gray;'); cell10.setAttribute('style', 'border-bottom:solid 1px gray;'); cell11.setAttribute('style', 'border-bottom:solid 1px gray;'); if(varenr) { cell1.innerHTML = varer_existing[varenr]+(contract_nr ? '
(Kontrakt - '+contract_nr+')' : (deletedmode == false && contract_on_plangroup ? '' : '')); } else if(!from_select) { // cell1.innerHTML = plangrupper_array[plangruppenr]; } /** Varenummer **/ cell2.innerHTML = 'Varenummer
'; cell2.innerHTML += ''; cell2.align = 'center'; /** Sort **/ cell3.innerHTML = 'Sort
'; cell3.innerHTML += ''; cell3.align = 'center'; quantity_total = quantity_total.replace(".", ""); quantity_total = quantity_total.replace(",", ""); /** Mngde **/ cell4.innerHTML = 'Mngde
'; cell4.innerHTML += ''; cell4.align = 'center'; /** Opdaterer mngde registreret **/ if(getElement('quantity_registered_'+plangruppenr)) { quantity_total = quantity_total.replace(".", ""); quantity_total = quantity_total.replace(",", ""); var current_quantity = getElement('quantity_registered_'+plangruppenr).innerHTML; current_quantity = current_quantity.replace(".", ""); current_quantity = current_quantity.replace(",", ""); getElement('quantity_registered_'+plangruppenr).innerHTML = number_format((current_quantity*1)+(quantity_total*1), 0, ",", "."); } /** Finder et unikt id, som vi kan give til switchMonth(), s den del virker **/ var counter = 0; while(true) { if(!getElement('date_bid_'+plangruppenr+'_'+counter)) { break; } counter++; } /** Dato for byd **/ cell5.innerHTML += ''; cell5.innerHTML += (deletedmode == false ? '' : ''); /** Dato for analyse **/ //cell6.innerHTML = 'Dato for analyse
'; //cell6.innerHTML += ''; /** Parti **/ if(parti) { cell7.innerHTML = 'Parti
'; cell7.innerHTML += parti; cell7.align = 'center'; } /** Kommentar / Detaljer knap **/ cell8.align = 'center'; cell8.style.width = '75px'; if(note_exists) { var num_connections_to_pre_ana = (typeof(plangrupper_existing[id]['pre_ana_connections']) != 'undefined' && plangrupper_existing[id]['pre_ana_connections'] > 0 ? plangrupper_existing[id]['pre_ana_connections']*1 : 0); var caption = 'Detaljer'; var onclick = 'afgrdebank_overlay(false, '+cvm_customers_id+', '+plangruppenr+', '+year+', '+id+', '+deletedmode+');'; var button_color = ''; if(num_connections_to_pre_ana > 0) { button_color = '_blaa'; } var button = printButton(caption, onclick, button_color); cell8.innerHTML = button; } else { cell7.align = 'center'; cell7.innerHTML = ''; } /** Rediger forhndsanalyse **/ cell10.align = 'center'; cell10.style.width = '75px'; if(typeof(plangrupper_existing[id]) != 'undefined' && typeof(plangrupper_existing[id]['pre_ana_connections']) != 'undefined' && plangrupper_existing[id]['pre_ana_connections'] > 0 && typeof(plangrupper_existing[id]['status']) != 'undefined' && plangrupper_existing[id]['status'] != 'lost') { var caption = 'Ny Prve'; var onclick = 'afgroedebank_new_test('+id+');'; var button = printButton(caption, onclick, 'graa'); cell9.style.textAlign = 'center'; cell9.innerHTML = button; var caption = 'F. analyse'; // var onclick = 'afgrdebank_forhaandsanalyse_parti_overlay(\''+parti+'\', '+cvm_customers_id+', '+year+', '+id+');';s2k_notes_id var onclick = 'window.open(\'/index.php?action=cvm_notes_crops&edit=1&run_no='+plangrupper_existing[id]['run_no']+'&s2k_notes_id='+plangrupper_existing[id]['s2k_notes_id']+'\');'; var button = printButton(caption, onclick); cell10.innerHTML = button; } else if(note_exists && typeof(plangrupper_existing[id]['status']) != 'undefined' && plangrupper_existing[id]['status'] != 'lost') { /** get status regarding afgrde bank **/ var afgroede_status = afgroedebank_status_logistic(id); /** Prve formular - Vises kun hvis forhndsanalyse ikke er klar **/ cell10.align = 'center'; if(note_exists && afgroede_status == '') { var caption = 'Prve formular'; var onclick = 'afgroedebank_test_form('+id+', '+false+', '+false+', 1)'; var button = printButton(caption, onclick); if(!deletedmode && (typeof(allowproveformular) == "undefined" || allowproveformular)) { cell10.innerHTML = button; } } /** send til logistik - Vises kun hvis forhndsanalyse ikke er klar **/ cell9.align = 'center'; cell9.style.width = '75px'; if(note_exists) { var caption = 'Send til logistik'; var onclick = 'afgroedebank_send_to_logistic('+id+')'; if(afgroede_status == 'sent_to_logistic') { //caption = 'Sendt til logistik'; //var button = '
'+caption+'
'; var button = 'Sendt til logistik'; } else if(afgroede_status == 'test_done') { var button = 'Prvetagning igangsat'; } else { var button = printButton(caption, onclick); } if(!deletedmode) { cell9.innerHTML = button; } } if(parti && can_create_pre_analysis) { /** Opret forhndsanalyse - M kun vises til dem der rent faktisk kan oprette en analyse **/ var caption = 'F.analyse'; var onclick = 'location.href = \'/index.php?action=cvm_notes_crops&edit=1&run_no='+run_no+'&parti='+encodeURIComponent(parti)+'&varenummer='+encodeURIComponent(varenr)+'&gaard_parti='+plangrupper_existing[id]['gaard_parti']+'\';'; var button = printButton(caption, onclick); cell10.innerHTML = button; } } if(from_select) { getElement('varenr_'+plangruppenr+'_'+unique_cropsbank_id).focus(); row.style.backgroundColor = 'rgb(200, 200, 200)'; setTimeout(function(){ fadebgcolor(row); }, 200); } /** Opdaterer select boksen, s den kun indeholder de plangrupper, der ikke er tilfjet **/ if(getElement('afgrdebank_select')) { var select_elem = getElement('afgrdebank_select'); for(var i = 0; i < select_elem.length; i++) { var value = select_elem[i].value; if(typeof(cvm_afgrdebank_add_plangruppenr_salesman_page_plangroups_added_object[value]) != 'undefined') { select_elem.remove(i); } } } } function get_afgrodebank_contracts_selection_list(afgroedebank_id, varenr, plangruppenr) { ajaxRequest('GET', '/ajax/cvm.php?action=getAfgrodebankContractsSelectionOverlay&afgroedebank_id='+afgroedebank_id+'&varenr='+varenr+'&plangruppenr='+plangruppenr, function(){ var overlay_div = ''; overlay_div += '
'; overlay_div += '
Tilfj Kontrakt
'; overlay_div += '
'; overlay_div += JSON.parse(ajax_request_obj.responseText); overlay_div += ' '; overlay_div += '
'; createOverlay(overlay_div, 'absolute', 'center', 'center', 'afgrodebank_contracts_selection_overlay'); addCloseButtonToOverlay('afgrodebank_contracts_selection_overlay'); }); } function show_specific_contract_type() { var type = getElement('contract_type').value; var containers = document.getElementsByClassName('contract_type_container'); for (i = 0; i < containers.length; i++) { containers[i].style.display = 'none'; } getElement(type).style.display = ''; } function save_afgrodebank_contracts_selection(afgroedebank_id) { var type = getElement('contract_type').value; /*if(type == 'plangroup_contract' && !window.confirm('Bemrk, varenr kan blive skiftet nr du skifter indenfor en plangruppe.')) { return false; } */ var contract_nr = (getElement(type+'_nr') ? getElement(type+'_nr').value : ''); if(contract_nr == '') { alert('Vlg eller udfyld kontrakt nr'); return false; } ajaxRequest('GET', 'ajax/cvm.php?action=saveAfgrodebankContractsSelection&afgroedebank_id='+afgroedebank_id+'&contract_nr='+contract_nr+'&type='+type, function(){ var ajax_data = JSON.parse(ajax_request_obj.responseText); console.log(ajax_data); if(ajax_data.result == 1) { closeOverlay("afgrodebank_contracts_selection_overlay"); window.location.reload(); } else if(ajax_data.result == 2) { alert('Kontraktens kvantum er overskredet.') } else { alert('Kan ikke tilfje kontrakt til afgrdebank'); } }); } function afgroedebank_status_logistic(id) { var ajax_request = ajaxRequest('GET', '/ajax/cvm.php?action=afgroedebank_status_logistic&id='+id, '', '', false); if(typeof(ajax_request) != 'undefined') { var ajax_data = JSON.parse(ajax_request); return ajax_data.status; } } function afgroedebank_new_test(id) { var r = confirm("Vil du starte en ny prvetagning?"); if (r == true) { ajaxRequest('GET', '/ajax/cvm.php?action=afgroedebank_new_test&id='+id, function(){ fadeInFadeOutAndRemove('
'+_t('Ny prve igangsat')+'
', 1000, 25, 25, 'fixed', 'center', 'center'); location.reload(); }); } } function afgroedebank_send_to_logistic(id) { ajaxRequest('GET', '/ajax/cvm.php?action=afgroedebank_send_to_logistic&id='+id, function(){ var response = JSON.parse(ajax_request_obj.responseText); if(response.success == '1') { fadeInFadeOutAndRemove('
'+_t('Sendt til logistik')+'
', 1000, 25, 25, 'fixed', 'center', 'center'); location.reload(); }else if(response.success == '0') { alert('Der er opstet en fejl. Prv venligst igen senere eller kontakt support'); }else if(response.success == '2') { alert('Du mangler at udfylde nogle detajler om partiet - klik p detaljer for at udfylde dem. Nr alt er udfyldt, kan du afsende bestillingen til logistik.'); }else if(response.success == '4') { alert('Du skal udfylde en mngde. Nr du har udfyldt dette og gemt, kan du afsende bestillingen til logistik.'); } }); } /* function afgroedebank_send_to_logistic(id) { ajaxRequest('GET', '/ajax/cvm.php?action=afgroedebank_send_to_logistic&id='+id, function(){ fadeInFadeOutAndRemove('
'+_t('Sendt til logistik')+'
', 1000, 25, 25, 'fixed', 'center', 'center'); location.reload(); }); } */ function update_afgroede_priority(id) { var priority = getElement('afgroede_priority').value; ajaxRequest('GET', '/ajax/cvm.php?action=afgroedebank_update_priority&id='+id+'&priority='+priority, function(){ fadeInFadeOutAndRemove('
'+_t('Opdateret')+'
', 1000, 25, 25, 'fixed', 'center', 'center'); }); } function update_afgroede_afdkundenr(id) { var afdkundenr = getElement('afdkundenr').value; ajaxRequest('GET', '/ajax/cvm.php?action=afgroedebank_update_afdkundenr&id='+id+'&afdkundenr='+afdkundenr, function(){ var response = JSON.parse(ajax_request_obj.responseText); if(response.success == '1') { getElement('address_select_id').innerHTML = response.html; fadeInFadeOutAndRemove('
'+_t('Opdateret')+'
', 1000, 25, 25, 'fixed', 'center', 'center'); } }); } function update_afgroedebank_delivery_address(id) { var delivery_address_id = getElement('afgroedebank_delivery_address_id').value; ajaxRequest('GET', '/ajax/cvm.php?action=update_afgroedebank_delivery_address&id='+id+'&delivery_address_id='+delivery_address_id, function(){ fadeInFadeOutAndRemove('
'+_t('Opdateret')+'
', 1000, 25, 25, 'fixed', 'center', 'center'); }); } function update_afgroedebank_gaard_parti(id) { var gaard_parti = getElement('gaard_parti').value; ajaxRequest('GET', '/ajax/cvm.php?action=update_afgroedebank_gaard_parti&id='+id+'&gaard_parti='+gaard_parti, function(){ fadeInFadeOutAndRemove('
'+_t('Opdateret')+'
', 1000, 25, 25, 'fixed', 'center', 'center'); }); } function update_afgroedebank_lager_types(id) { var lager_types = getElement('lager_types').value; ajaxRequest('GET', '/ajax/cvm.php?action=update_afgroedebank_lager_types&id='+id+'&lager_types='+lager_types, function(){ fadeInFadeOutAndRemove('
'+_t('Opdateret')+'
', 1000, 25, 25, 'fixed', 'center', 'center'); }); } function update_afgroedebank_contact_phone(id) { var contact_phone = getElement('contact_phone').value; ajaxRequest('GET', '/ajax/cvm.php?action=update_afgroedebank_contact_phone&id='+id+'&contact_phone='+contact_phone, function(){ fadeInFadeOutAndRemove('
'+_t('Opdateret')+'
', 1000, 25, 25, 'fixed', 'center', 'center'); }); } function afgroedebank_test_form(id, afd, kundenr, submit) { if(typeof(submit) == 'undefined') { var div = ''; div += '
'; div += '
'; div += '
'+_t('Hvor mange eksemplarer')+'?
'; div += '
'; div += '
   
'; div += '
'; div += '
'; createOverlay(div, 'absolute', 'center', 'center', 'parti_overlay_quantity'); getElement('parti_overlay_input').focus(); getElement('parti_overlay_input').select(); } else { var quantity = (getElement('parti_overlay_input') ? getElement('parti_overlay_input').value : 1); closeOverlay('parti_overlay_quantity'); popupWindow('/index.php?action=cvm_crops_test_form&id='+id+'&quantity='+quantity+'&afd='+afd+'&kundenr='+kundenr, 'PrveFormular', 850, 900, 'status=1,toolbar=0,resizable=1,scrollbars=1,menubar=1,location=1,directories=1'); } return false; } function afgroedebank_test_done(id) { ajaxRequest('GET', '/ajax/cvm.php?action=afgroedebank_test_done&id='+id, function(){ fadeInFadeOutAndRemove('
'+_t('Afsluttet')+'
', 1000, 25, 25, 'fixed', 'center', 'center'); location.reload(); }); } function afgrdebank_remove_plangruppenr(plangruppenr) { removeElementFromDom('afgrdebank_tr_'+plangruppenr); getElement('afgrdebank_option_'+plangruppenr).disabled = false; centerObject('top', 'cvm_afgrdebank_overlay_container'); centerObject('left', 'cvm_afgrdebank_overlay_container'); } function afgrdebank_save(cvm_customers_id) { var data = new Object(); data['plangrupper'] = new Object(); for(plangruppenr in plangrupper_array) { if (getElement('quantity_total_'+plangruppenr)) { var plangruppe_data = new Object(); plangruppe_data['quantity_total'] = getElement('quantity_total_'+plangruppenr).value; plangruppe_data['quantity_trade'] = getElement('quantity_trade_'+plangruppenr).value; plangruppe_data['quantity_da_bid'] = getElement('quantity_da_bid_'+plangruppenr).value; plangruppe_data['date_bid'] = getElement('date_bid_'+plangruppenr).value; plangruppe_data['date_analysis'] = getElement('date_analysis_'+plangruppenr).value; plangruppe_data['notes'] = getElement('notes_'+plangruppenr).value; data.plangrupper[plangruppenr] = plangruppe_data; } } ajaxRequest('GET', 'ajax/cvm.php?action=afgrdebank_save&cvm_customers_id='+cvm_customers_id+'&json_data='+JSON.stringify(data), handle_afgrdebank_save); } function handle_afgrdebank_save() { try { var response = JSON.parse(ajax_request_obj.responseText); } catch(e) { } if (typeof(response) != 'object' || typeof(response['result']) != 'string' || response['result'] != 1) { alert('Noget gik galt. Informationerne er muligvis ikke gemt.'); return; } closeOverlay('cvm_afgrdebank_overlay_container'); } function afgrdebank_pre_analysis(cvm_customers_id, plangruppenr, year, cropsbank_id) { if(!year) { alert('Gem frst den ny-tilfjede afgrde'); return false; } var data = '
'; data += 'Henter...
'; createOverlay(data, undefined, undefined, undefined, 'cvm_pre_analysis_overlay_container'); addCloseButtonToOverlay('cvm_pre_analysis_overlay_container', function(){closeOverlay('cvm_pre_analysis_overlay_container')}); ajaxRequest('GET', 'ajax/cvm.php?action=afgrdebank_pre_analasis&cvm_customers_id='+cvm_customers_id+'&plangruppenr='+plangruppenr+'&year='+year+'&cropsbank_id='+cropsbank_id, handle_afgrdebank_pre_analysis); } function handle_afgrdebank_pre_analysis() { try { var response = JSON.parse(ajax_request_obj.responseText); } catch(e) { } if (typeof(response) != 'object' || typeof(response['result']) != 'string' || response['result'] != 1) { closeOverlay('cvm_pre_analysis_overlay_container'); alert(_t('Noget gik galt')); return; } getElement('cvm_pre_analysis_container').innerHTML = response['html']; centerObject('top', 'cvm_pre_analysis_overlay_container'); centerObject('left', 'cvm_pre_analysis_overlay_container'); } function cvm_contacts_plan(cvm_customers_id, cvm_contacts_id) { var data = '
'; data += 'Henter...
'; createOverlay(data, undefined, undefined, undefined, 'cvm_contacts_plan_overlay_container'); addCloseButtonToOverlay('cvm_contacts_plan_overlay_container', function(){closeOverlay('cvm_contacts_plan_overlay_container')}); ajaxRequest('GET', 'ajax/cvm.php?action=cvm_contacts_plan&cvm_customers_id='+cvm_customers_id+'&cvm_contacts_id='+cvm_contacts_id, handle_cvm_contacts_plan); } function handle_cvm_contacts_plan() { var response = JSON.parse(ajax_request_obj.responseText); var data = '
'; data += response['html']; data += '
'; getElement('cvm_contacts_plan_overlay_container').innerHTML = data; addCloseButtonToOverlay('cvm_contacts_plan_overlay_container', function(){closeOverlay('cvm_contacts_plan_overlay_container')}); centerObject('top', 'cvm_contacts_plan_overlay_container'); centerObject('left', 'cvm_contacts_plan_overlay_container'); } function cvm_contacts_plan_edit(id, cancelbutton) { if(getElement('salesmanid_followup['+id+']').readOnly == true) { curvalues = new Array(); curvalues['salesmanid_followup'] = getElement('salesmanid_followup['+id+']').value; curvalues['text'] = getElement('text['+id+']').value; curvalues['date_followup'] = getElement('date_followup['+id+']').value; getElement('date_followup['+id+']').className = ''; getElement('date_followup['+id+']').readOnly = false; getElement('salesmanid_followup['+id+']').className = ''; getElement('salesmanid_followup['+id+']').readOnly = false; getElement('text['+id+']').className = ''; getElement('text['+id+']').readOnly = false; getElement('closed_input['+id+']').style.display = ''; getElement('closed_text['+id+']').style.display = 'none'; getElement('text['+id+']').style.display = ''; getElement('text_noedit_container['+id+']').style.display = 'none'; getElement('buttons['+id+']').style.display = ''; getElement('calendar_date_followup['+id+']').style.display = ''; if(!getElement('salesmanid_followup['+id+']').value) { getElement('salesmanid_followup['+id+']').value = salesmanid_myself; } } else { if(cancelbutton) { getElement('salesmanid_followup['+id+']').value = curvalues['salesmanid_followup']; getElement('text['+id+']').value = curvalues['text']; getElement('date_followup['+id+']').value = curvalues['date_followup']; } getElement('date_followup['+id+']').className = 'no_edit'; getElement('date_followup['+id+']').readOnly = true; getElement('salesmanid_followup['+id+']').className = 'no_edit'; getElement('salesmanid_followup['+id+']').readOnly = true; getElement('text['+id+']').className = 'no_edit'; getElement('text['+id+']').readOnly = true; getElement('closed_input['+id+']').style.display = 'none'; getElement('closed_text['+id+']').style.display = ''; getElement('text['+id+']').style.display = 'none'; getElement('text_noedit_container['+id+']').style.display = ''; getElement('buttons['+id+']').style.display = 'none'; getElement('calendar_date_followup['+id+']').style.display = 'none'; } } function cvm_contacts_plan_save(id) { var data = '
'; data += 'Gemmer...
'; createOverlay(data, undefined, undefined, undefined, 'saving_overlay'); addCloseButtonToOverlay('saving_overlay', function(){closeOverlay('saving_overlay');}); var query_array = new Array(); query_array.action = 'cvm_contacts_plan_save'; query_array.id = id; query_array.salesmanid_followup = getElement('salesmanid_followup['+id+']').value; query_array.date_followup = getElement('date_followup['+id+']').value; query_array.text = urlencode(getElement('text['+id+']').value); query_array.closed = getElement('closed['+id+']').checked; var query = '/ajax/cvm.php'+createQueryString(query_array); getElement('closed_text['+id+']').innerHTML = 'Nej'; getElement('required['+id+']').style.display = 'none'; if (getElement('closed['+id+']').checked) { getElement('closed_text['+id+']').innerHTML = 'Ja'; } if (!getElement('text['+id+']').value) { getElement('required['+id+']').style.display = ''; } getElement('text_caption['+id+']').style.display = ''; if (!getElement('text['+id+']').value) { getElement('text_caption['+id+']').style.display = 'none'; } ajaxRequest('GET', query, handle_cvm_contacts_plan_save); } function handle_cvm_contacts_plan_save() { var result = JSON.parse(ajax_request_obj.responseText); if (result['date_closed']) { getElement('closed_text['+result['id']+']').innerHTML = result['date_closed']; } getElement('text_noedit_container['+result['id']+']').innerHTML = result['text_formatted']; closeOverlay('saving_overlay'); cvm_contacts_plan_edit(result['id']); } function cvm_campaigns_inactive(cvm_customers_id) { var data = '
'; data += 'Henter...
'; createOverlay(data, undefined, undefined, undefined, 'cvm_campaigns_inactive_container'); addCloseButtonToOverlay('cvm_campaigns_inactive_container', function(){closeOverlay('cvm_campaigns_inactive_container')}); ajaxRequest('GET', 'ajax/cvm.php?action=cvm_campaigns_inactive&cvm_customers_id='+cvm_customers_id, handle_cvm_campaigns_inactive); } function handle_cvm_campaigns_inactive() { var response = JSON.parse(ajax_request_obj.responseText); var data = '
'; data += response['html']; data += '
'; getElement('cvm_campaigns_inactive_container').innerHTML = data; addCloseButtonToOverlay('cvm_campaigns_inactive_container', function(){closeOverlay('cvm_campaigns_inactive_container')}); centerObject('top', 'cvm_campaigns_inactive_container'); centerObject('left', 'cvm_campaigns_inactive_container'); } function moveNoteToCustomer(id) { ajaxRequest('GET', '/ajax/cvm.php?action=moveNoteToCustomer&id='+id, function(){handleMoveNoteToCustomer(id);}); } function handleMoveNoteToCustomer(id) { var ajax_data = JSON.parse(ajax_request_obj.responseText); if(getElement('move_note_to_customer_display')) { getElement('move_note_to_customer_display').innerHTML = ajax_data; getElement('cvm_move_note_dragbar').onmousedown = function(event){startDragging(event, 'move_note_to_customer_display');}; getElement('cvm_move_note_dragbar').onmouseup = function(){cancelDragging();}; } else { createOverlay(ajax_data, 'absolute', 300, 300, 'move_note_to_customer_display', 'logo', true, 'cvm_move_note_dragbar'); } moveNoteSearchCustomer(); } function moveNoteSearchCustomer() { if (typeof(as_json) != 'undefined') { as_json.clearSuggestions(); } var options = { script:"ajax/note_customer_search.php?json=true&", varname:"search", json:true, delay:300, cache:false, timeout:20000, offsety:-1, callback: function (obj) { getElement('s2k_note_search_customer').value = obj.id; } }; as_json = new AutoSuggest('s2k_note_search_customer', options); } function addNoteToCustomer(id) { if(getElement('s2k_note_search_customer').value == '') { alert('Du har ikke valgt nogen kunde'); getElement('s2k_note_search_customer').focus(); return false; } ajaxRequest('GET', '/ajax/cvm.php?action=saveNoteToCustomer&id='+id+'&customerno='+getElement('s2k_note_search_customer').value, handleAddNoteToCustomer); } function handleAddNoteToCustomer() { closeVeil(); closeOverlay('move_note_to_customer_display'); getElement('s2kdata').innerHTML = ajax_request_obj.responseText; } function saveNotatDisplay(followup_only, customer_list, obj) { var notes = 1; var forhaand = 1; var tilbud = 1; var kampagner = 1; var crops = 1; var visits = 1; if(obj) { getElement(obj.id).checked = obj.checked; } if(getElement('notat_boks_display_notes')) { if(!getElement('notat_boks_display_notes').checked) { notes = 0; } if(!obj) { getElement('notat_boks_display_notes').disabled = true; } } if(getElement('notat_boks_display_forhaand')) { if(!getElement('notat_boks_display_forhaand').checked) { forhaand = 0; } if(!obj) { getElement('notat_boks_display_forhaand').disabled = true; } } if(getElement('notat_boks_display_tilbud')) { if(!getElement('notat_boks_display_tilbud').checked) { tilbud = 0; } if(!obj) { getElement('notat_boks_display_tilbud').disabled = true; } } if(getElement('notat_boks_display_kampagner')) { if(!getElement('notat_boks_display_kampagner').checked) { kampagner = 0; } if(!obj) { getElement('notat_boks_display_kampagner').disabled = true; } } if(getElement('notat_boks_display_crops')) { if(!getElement('notat_boks_display_crops').checked) { crops = 0; } if(!obj) { getElement('notat_boks_display_crops').disabled = true; } } if(getElement('notat_boks_display_visits')) { if(!getElement('notat_boks_display_visits').checked) { visits = 0; } if(!obj) { getElement('notat_boks_display_visits').disabled = true; } } var query_vars = '¬es='+notes+'&forhaand='+forhaand+'&tilbud='+tilbud+'&kampagner='+kampagner+'&crops='+crops+'&visits='+visits; ajaxRequest('GET', '/ajax/cvm.php?action=saveNotatDisplay'+query_vars, function(){ refreshcvm_s2000_box(false, followup_only, customer_list); }); } function cvm_fetch_tilbud() { if(getElement('splash_tilbud_table')) { getElement('splash_tilbud_table').style.opacity = 0.5; } var checkboxes = document.getElementsByName('tilbud_status'); var statuses_array = new Object(); statuses_array['year'] = getElement("contractbox-5-yearselect").value; if(checkboxes.length > 0) { for(key in checkboxes) { var id = checkboxes[key]['id']; if(id) { id = id.replace('checkbox_', ''); statuses_array[id] = checkboxes[key].checked; } } } ajaxRequest('GET', '/ajax/cvm.php?action=splash_tilbud&statuses='+JSON.stringify(statuses_array), handle_cvm_fetch_tilbud); } function handle_cvm_fetch_tilbud() { var response = JSON.parse(ajax_request_obj.responseText); getElement('cvm_tilbud_container').innerHTML = response['html']; } function afgrdebank_attach_crops(cvm_customers_id, plangruppenr, year) { var crops_ids = new Object(); var checkboxes = document.getElementsByClassName('afgrdebank_forhndsanalyse'); for(key in checkboxes) { if(typeof(checkboxes[key].name) != 'undefined' && checkboxes[key].checked) { crops_ids[checkboxes[key].name] = checkboxes[key].name; } } ajaxRequest('GET', '/ajax/cvm.php?action=afgrdebank_attach_crops&cvm_customers_id='+cvm_customers_id+'&plangruppenr='+plangruppenr+'&year='+year+'&ids='+JSON.stringify(crops_ids), handle_afgrdebank_attach_crops); getElement('cvm_pre_analysis_container').innerHTML = ''; } function handle_afgrdebank_attach_crops() { var response = JSON.parse(ajax_request_obj.responseText); if(response['result'] != 1) { alert(_t('Noget gik galt')); return false; } closeOverlay('cvm_pre_analysis_overlay_container'); afgrdebank_overlay(false, response['cvm_customers_id'], response['plangruppenr'], response['year'], deletedmode) } function afgrdebank_overlay(s2k_notes_id, cvm_customers_id, plangruppenr, year, cropsbank_id, deletedmode) { ajaxRequest('GET', '/ajax/cvm.php?action=afgrdebank_overlay&s2k_notes_id='+s2k_notes_id+'&cvm_customers_id='+cvm_customers_id+'&plangruppenr='+plangruppenr+'&year='+year+'&cropsbank_id='+cropsbank_id+'&deletedmode='+deletedmode, function(){handle_afgrdebank_overlay(s2k_notes_id);}); } function handle_afgrdebank_overlay() { var response = JSON.parse(ajax_request_obj.responseText); global_s2k_notes_id = response['s2k_notes_id']; var html = response['html']; if(getElement('afgrdebank_overlay')) { getElement('afgrdebank_overlay').innerHTML = html; getElement('cvm_note_dragbar').onmousedown = function(event){startDragging(event, 'afgrdebank_overlay');}; getElement('cvm_note_dragbar').onmouseup = function(){cancelDragging();}; } else { //createOverlay(html, 'absolute', 50, 50, 'afgrdebank_overlay', 'logo', true, 'cvm_note_dragbar'); createOverlay(html, 'absolute', 'center', 'center', 'afgrdebank_overlay', undefined, true, 'cvm_note_dragbar'); } } function handle_date_change_date_bid_div() { ajaxRequest('GET', '/ajax/cvm.php?action=afgrdebank_date_change&s2k_notes_id='+global_s2k_notes_id+'&type=time_bid&date='+getElement('date_bid_div').innerHTML, function(){handle_afgrdebank_date_change();}); } function handle_date_change_date_analysis_div() { ajaxRequest('GET', '/ajax/cvm.php?action=afgrdebank_date_change&s2k_notes_id='+global_s2k_notes_id+'&type=time_analysis&date='+getElement('date_analysis_div').innerHTML, function(){handle_afgrdebank_date_change();}); } function handle_afgrdebank_date_change() { var response = JSON.parse(ajax_request_obj.responseText); if(typeof(global_year_showing) != 'undefined' && global_year_showing == response['year']) { if(response['type'] == 'time_bid' && getElement('date_bid_'+response['plangruppenr'])) { getElement('date_bid_'+response['plangruppenr']).value = response['date']; } else if(response['type'] == 'time_analysis' && getElement('date_analysis_'+response['plangruppenr'])) { getElement('date_analysis_'+response['plangruppenr']).value = response['date']; } } fadeInFadeOutAndRemove('
'+_t('Ny dato gemt')+'
', 1000, 25, 25, 'fixed', 'center', 'center'); } function notes_crops_overlay(s2k_notes_id, element, offsetx, offsety) { // if(!offsetx) // { // offsetx = 15; // } // if(!offsety) // { // offsetx = -15; // } var query = '/ajax/cvm.php?action=view_note_crop&s2k_notes_id='+s2k_notes_id; ajaxRequest('GET', query, handle_note_crops_overlay); var data = '
'; data += 'Henter...
'; createOverlay(data, 'absolute', 'center', 'center', 'notes_crops_container'); addCloseButtonToOverlay('notes_crops_container', function(){closeOverlay('notes_crops_container')}, 4, 4); } function handle_note_crops_overlay() { var data = ajax_request_obj.responseText; getElement('notes_crops_inner_container').innerHTML = data + "

Luk Vindue

"; centerObject('center', 'notes_crops_container'); } function deleteChrNumber(chr, cvm_customers_id) { if(confirm('Er du sikker p at du vil fjerne chr nummeret fra kunden?')) { ajaxRequest('GET', 'ajax/cvm.php?action=deleteChrFromCvm&cvm_customers_id='+cvm_customers_id+'&chr='+chr, function(){ window.location.reload(); }); } } function my_crops_bank_load_bg() { ajaxRequest('GET', 'ajax/cvm.php?action=my_crops_load_bg', function(){}); } function cvm_storestygge_data(cvr, year) { ajaxRequest('GET', 'ajax/cvm.php?action=cvm_storestygge_data&cvr='+cvr+'&year='+year, handle_cvm_storestygge_data); } function handle_cvm_storestygge_data() { var data = JSON.parse(ajax_request_obj.responseText); getElement('storestygge_data').innerHTML = data['data']; } function note_share_toggle(id) { getElement('note_share_checkbox_'+id).src = '/images/working.gif'; ajaxRequest('GET', '/ajax/cvm.php?action=note_share_toggle&id='+id, handle_note_share_toggle); } function handle_note_share_toggle(id) { var result = JSON.parse(ajax_request_obj.responseText); getElement('note_share_checkbox_'+result['id']).src = '/images/icons/checkbox_'+(result['share'] ? 'un' : '')+'checked.png'; } function afgrdebank_forhaandsanalyse_parti_overlay(parti, cvm_customers_id, year, cropsbank_id) { ajaxRequest('GET', '/ajax/cvm.php?action=afgroedebank_forhaandsanalyse_parti_overlay&parti='+parti+'&cvm_customers_id='+cvm_customers_id+'&year='+year+'&cropsbank_id='+cropsbank_id, function(){ handle_afgrdebank_forhaandsanalyse_parti_overlay(); }); } function handle_afgrdebank_forhaandsanalyse_parti_overlay() { var response = JSON.parse(ajax_request_obj.responseText); var html = response['html']; if(getElement('afgrdebank_forhaandsanalyse_parti_overlay')) { getElement('afgrdebank_forhaandsanalyse_parti_overlay').innerHTML = html; getElement('cvm_note_dragbar').onmousedown = function(event){startDragging(event, 'afgrdebank_forhaandsanalyse_parti_overlay');}; getElement('cvm_note_dragbar').onmouseup = function(){cancelDragging();}; } else { createOverlay(html, 'absolute', 50, 50, 'afgrdebank_forhaandsanalyse_parti_overlay', 'logo', true, 'cvm_note_dragbar'); } } function showPrevious(obj, element) { var elements = document.getElementsByClassName(element); var numbers_array = []; var numbers_found_obj = {}; var current_id = false; for(var x in elements) { if(typeof(elements[x]) == 'object') { var this_id = elements[x].id; this_id = parseInt(str_replace(element+'-', '', this_id)); if(typeof(numbers_found_obj[this_id]) == 'undefined') { numbers_array.push(this_id); numbers_found_obj[this_id] = this_id; } if(elements[x].style.display == '') { current_id = this_id; } } } numbers_array.sort().reverse(); /** Vi har nu alle "views" i sorteret rkkeflge, s vi kan finde den nste **/ var next_id = false; var current_found = false; for(var x in numbers_array) { var this_id = numbers_array[x]; if(next_id === false) { next_id = this_id; } if(current_found) { /** Nr vi har fundet den nuvrende, s m den nste vre.. den nste **/ next_id = this_id; break; } if(current_id == this_id) { current_found = true; } } var box_id = next_id; var full_id_for_next = element+'-'+box_id; getElement(element+'-'+current_id).style.display = 'none'; getElement(full_id_for_next).style.display = ''; ajaxRequest('GET', 'ajax/cvm.php?action=saelger_splash_box_slide_toggle&box='+element+'&box_id='+full_id_for_next); logSaelgerSplashSlideBoxes(full_id_for_next); } function showNext(obj, element) { var elements = document.getElementsByClassName(element); var numbers_array = []; var numbers_found_obj = {}; var current_id = false; for(var x in elements) { if(typeof(elements[x]) == 'object') { var this_id = elements[x].id; this_id = parseInt(str_replace(element+'-', '', this_id)); if(typeof(numbers_found_obj[this_id]) == 'undefined') { numbers_array.push(this_id); numbers_found_obj[this_id] = this_id; } if(elements[x].style.display == '') { current_id = this_id; } } } numbers_array.sort(); /** Vi har nu alle "views" i sorteret rkkeflge, s vi kan finde den nste **/ var next_id = false; var current_found = false; for(var x in numbers_array) { var this_id = numbers_array[x]; if(next_id === false) { next_id = this_id; } if(current_found) { /** Nr vi har fundet den nuvrende, s m den nste vre.. den nste **/ next_id = this_id; break; } if(current_id == this_id) { current_found = true; } } var box_id = next_id; var full_id_for_next = element+'-'+box_id; getElement(element+'-'+current_id).style.display = 'none'; getElement(full_id_for_next).style.display = ''; ajaxRequest('GET', 'ajax/cvm.php?action=saelger_splash_box_slide_toggle&box='+element+'&box_id='+full_id_for_next); logSaelgerSplashSlideBoxes(full_id_for_next); } function showHideCampaignContractBoxes(element, saelger) { var elements = document.getElementsByClassName(element); for (i = 0; i < elements.length; i++) { elements[i].style.display = 'none'; } ajaxRequest('GET', 'ajax/cvm.php?action=get_saelger_splash_box_slide_toggle&box='+element+'&saelger='+saelger, function() { var response = JSON.parse(ajax_request_obj.responseText); var boxId = response.box_id; var show = 0; for (i = 0; i < elements.length; i++) { if(boxId == elements[i].id) { elements[i].style.display = ''; logSaelgerSplashSlideBoxes(elements[i].id); show = 1; } } if(!show && typeof(elements[0]) != 'undefined') { elements[0].style.display = ''; logSaelgerSplashSlideBoxes(elements[0].id); } }); } function logSaelgerSplashSlideBoxes(id) { var element = getElement(id); var box_name = element.className; var box_title = getElement(id+'-title').dataset.title; box_title = box_title.replace('>', ''); ajaxRequest('GET', 'ajax/cvm.php?action=saelger_splash_box_slide_toggle_log&box_name='+box_name+'&box_title='+box_title); } function showEkontrolOther() { var ekontrol = getElement('ekontrol-select'); var ekontrol_system = ekontrol.options[ekontrol.selectedIndex].value; if(ekontrol_system == 'Andet' && getElement('ekontrol_other').style.display == 'none') { getElement('ekontrol_other').style.display = ''; } else { getElement('ekontrol_other').style.display = 'none'; } } function saveEkontrolData() { var ekontrol = getElement('ekontrol-select'); var ekontrol_system = ekontrol.options[ekontrol.selectedIndex].value; var other_system = ''; if(ekontrol_system == 'Andet') { if(getElement('ekontrol_other').value == '') { alert('Du skal udfylde feltet'); return false; } other_system = getElement('ekontrol_other').value; } ajaxRequest('GET', 'ajax/cvm.php?action=save_ekontrol_data&ekontrol_system='+ekontrol_system+'&other_system='+other_system); var message = 'Ekontrol system gemt'; fadeInFadeOutAndRemove('
'+message+'
', 2000, 75, 75, 'fixed', 'center', 'center'); } function newAfgroedebankContractOverlay(contract_nr, contract_afd, contract_kundenr) { ajaxRequest('GET', 'ajax/cvm.php?action=new_afgroedebank_contract_overlay&contract_nr='+contract_nr+'&contract_afd='+contract_afd+'&contract_kundenr='+contract_kundenr, function(){ var overlay_div = ''; overlay_div += '
'; overlay_div += '
Opret denne kontrakt i afgrdebanken
'; overlay_div += '
'; overlay_div += JSON.parse(ajax_request_obj.responseText); overlay_div += ' '; overlay_div += '
'; createOverlay(overlay_div, 'absolute', 'center', 'center', 'new_afgroedebank_contract_overlay'); addCloseButtonToOverlay('new_afgroedebank_contract_overlay'); }); } function saveAfgroedebankContract(contract_nr, contract_afd, contract_kundenr) { var parties = getElement('afgroedebank_contract_parties').value; var delivery_address_id = getElement('afgroedebank_contract_delivery_address_id').value; var quantity_type = document.querySelector('input[name="contract_quantity"]:checked').value; var comments = getElement('afgroedebank_contract_comments').value; ajaxRequest('GET', 'ajax/cvm.php?action=save_afgroedebank_contract&contract_nr='+contract_nr+'&contract_afd='+contract_afd+'&contract_kundenr='+contract_kundenr+'&parties='+parties+'&delivery_address_id='+delivery_address_id+'&quantity_type='+quantity_type+'&comments='+comments, function(){ window.location.reload(); }); } function getCompetitonInfoOverlay(cvm_customer_id, plangroups_string, event) { current_event = event; ajaxRequest('GET', '/ajax/saelgersplash.php?action=getCompetitionInfoOverlay&cvm_customer_id='+cvm_customer_id+'&plangroups='+plangroups_string, handleGetCompetitonInfoOverlay); } function handleGetCompetitonInfoOverlay() { var data_array = JSON.parse(ajax_request_obj.responseText); if(data_array.html != undefined) { var div = ''; div += '
'; div += '
Vi mangler leverandrinformation p disse plangrupper p denne kunde
'; div += data_array.html; div += '
'; createOverlay(div, 'absolute', 'center', 'center', 'konkurrentinfo_overlay'); addCloseButtonToOverlay('konkurrentinfo_overlay'); competitionGlobalRemove(); } } function competitionInfoSaveAddSpinner() { getElement('competition_save_button').style.display = 'none'; /** Smider en spinner p **/ var img = document.createElement('img'); img.src = '/images/ajax/ajax-loader.gif'; img.id = 'competition_save_spinner'; img.style.paddingLeft = '5px'; getElement('competition_save_button').parentNode.appendChild(img); } var remove_these_global_array = new Array(); function competitionInfoSaved() { remObj('competition_save_spinner'); getElement('competition_save_button').style.display = ''; var data_array = JSON.parse(ajax_request_obj.responseText); if(data_array.id != undefined) { if(data_array.remove_completely) { /** Alt er blevet sat som det skal, s vi fjerner hele kunden fra listen **/ closeOverlay('konkurrentinfo_overlay'); remObj('missing_competition_container_'+data_array.id); } else { /** Fjerner kun dem der rent faktisk er blevet sat til noget **/ for(x in data_array.remove_these) { remove_these_global_array.push('plangroup_table_'+data_array.remove_these[x]+'_'+data_array.id); } competitionGlobalRemove(); } } } function competitionGlobalRemove() { /** Denne er lidt et emergency fix, men det er nemmere end at skulle til at omskrive onclicken **/ for(x in remove_these_global_array) { remObj(remove_these_global_array[x]); } } var populateMissingCompetitionInfoBox_data_gotten = false; function populateMissingCompetitionInfoBox() { /** Tjekker om boksen er synlig eller ej **/ if(getElement('top_without_competition_info').style.display == '') { if(!populateMissingCompetitionInfoBox_data_gotten) { populateMissingCompetitionInfoBox_data_gotten = true; ajaxRequest('GET', '/ajax/saelgersplash.php?action=getMissingCompetitionInfoData', handlePopulateMissingCompetitionInfoBox); } } } function handlePopulateMissingCompetitionInfoBox() { var data_array = JSON.parse(ajax_request_obj.responseText); if(data_array.html != undefined) { getElement('top_without_competition_info').innerHTML = data_array.html; } else { getElement('top_without_competition_info').innerHTML = '
Ingen kunder fundet
'; } } if(typeof(translate_language) === 'undefined') { var translate_language = 'dk'; } if(typeof(translate_translater) === 'undefined') { var translate_translater = false; } var t_languages = null; var global_t_obj = false; var global_t_edited_obj = null; function _t_in(obj, id) { if(global_t_obj) { return false; } global_t_obj = obj; obj.style.color = 'red'; if(obj.onclick === null) { obj.onclick = function(){ _t_text(this); }; } if(obj.oncontextmenu === null) { obj.oncontextmenu = function(){ _t_text(this); return false; }; } if(obj.onmouseout === null) { obj.onmouseout = function(){ _t_out(this); } obj.style.cursor = 'pointer'; obj.setAttribute('t_id', id); } } function _t_out(obj) { obj.style.color = ''; global_t_obj = false; } function _t_text(obj) { global_t_edited_obj = obj; var t_id = obj.getAttribute('t_id'); ajaxRequest('GET', '/ajax/translate.php?action=getTranslationText&id='+t_id, function(){ var data_array = JSON.parse(ajax_request_obj.responseText); t_languages = new Object(); var div_top = ''; div_top += '
Original
'; div_top += '
'+data_array.search_sentence+'
'; if(data_array.search_sentence.indexOf("{1}") !== -1) { div_top += '
P sitet
'; div_top += '
'+obj.innerHTML+'
'; } var div = ''; div += '
'; div += div_top; for(var x in data_array.languages) { t_languages[x] = x; div += '
'+x+'
'; div += '
'; } div += ' '; div += '
'; createOverlay(div, 'absolute', 'center', 'center', 'translate_overlay'); addCloseButtonToOverlay('translate_overlay'); }); } function _t_save(t_id) { var texts = new Object; for(key in t_languages) { texts[key] = getElement('languages['+key+']').value; } var text = texts[translate_language]; getElement('translate_overlay_inner').innerHTML = '
'; var post_string = '&texts='+JSON.stringify(texts); ajaxRequest('POST', '/ajax/translate.php?action=translate_save&id='+t_id, function(){ _t_save_receive(text); }, post_string); } function _t_save_receive(text) { global_t_edited_obj.innerHTML = text; closeOverlay('translate_overlay'); } function _t_highlight() { _t_highlight_out(); getElement('translate_icon').style.borderColor = 'gray'; var spans = document.getElementsByClassName('translateable'); var n = 0; for(key in spans) { var obj = spans[key]; if(typeof(obj) == 'object') { var rect = obj.getBoundingClientRect(); if(rect.left == 0 && rect.top == 0 && rect.right == 0 && rect.bottom == 0) { continue; } var div = document.createElement('div'); div.id = 'translate_highlight_rect['+n+']'; n++; div.setAttribute('style', 'border-radius:6px; padding:2px 3px; position:absolute; border:solid 1px red; box-shadow:0px 0px 10px 3px red;'); div.style.top = (rect.top-2)+'px'; div.style.left = (rect.left-3)+'px'; div.style.width = (rect.right-rect.left)+'px'; div.style.height = (rect.bottom-rect.top)+'px'; /** Tjekker om vi ligger i en div lige inden body, i s fald hver vi z-index, da vi s sandsynligvis er i et overlay med en hj z-index **/ var tested_obj = obj; var last_element = ''; while(tested_obj.parentNode) { tested_obj = tested_obj.parentNode; if(tested_obj.nodeName == 'BODY') { if(last_element == 'DIV') { div.style.zIndex = 1000000; } break; } last_element = tested_obj.nodeName; } document.body.appendChild(div); } } } function _t_highlight_out_disable(e) { _t_highlight_out_disabled = true; preventDefault(e); return false; } var _t_highlight_out_disabled = false; function _t_highlight_out() { if(_t_highlight_out_disabled) { _t_highlight_out_disabled = false; return; } getElement('translate_icon').style.borderColor = 'transparent'; var counter = 0; while(getElement('translate_highlight_rect['+counter+']')) { remObj(getElement('translate_highlight_rect['+counter+']')); counter++; } } function _t(text) { var id = 0; if(typeof(translated_texts_json) === 'undefined' || translated_texts_json[text] == undefined) { var data_array = JSON.parse(ajaxRequest('POST', '/ajax/translate.php?action=getTranslation', null, '&text='+text, false)); var input_text = text; text = data_array[0]; id = data_array[1]; /** Cacher s den ikke bliver ved med at hente den samme igen og igen **/ translated_texts_json[input_text] = {}; translated_texts_json[input_text]['id'] = id; translated_texts_json[input_text][translate_language] = text; } else if(translated_texts_json[text][translate_language] != undefined && translated_texts_json[text][translate_language] != '') { id = translated_texts_json[text]['id']; text = translated_texts_json[text][translate_language]; } if(translate_translater && id) { text = ''+text+''; } return text; } function _t_no_front(text) { if(typeof(translated_texts_json) === 'undefined' || translated_texts_json[text] == undefined) { var data_array = JSON.parse(ajaxRequest('POST', '/ajax/translate.php?action=getTranslation', null, '&text='+text, false)); text = data_array[0]; id = data_array[1]; } else if(translated_texts_json[text][translate_language] != undefined && translated_texts_json[text][translate_language] != '') { id = translated_texts_json[text]['id']; text = translated_texts_json[text][translate_language]; } return text; } var translated_texts_json = {"Avanceret s\u00f8gning":{"id":"73","dk":"Avanceret s\u00f8gning","en":"Advanced search","se":"","de":"","fr":"","es":"","pl":"","pt":""},"G\u00e5 til startside":{"id":"908","dk":"G\u00e5 til startside","en":"Go to startpage","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Skift":{"id":"975","dk":"Skift","en":"Switch","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Se fra start":{"id":"980","dk":"Se fra start","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"100 dage":{"id":"981","dk":"100 dage","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"200 dage":{"id":"982","dk":"200 dage","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"300 dage":{"id":"983","dk":"300 dage","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"1 \u00e5r":{"id":"984","dk":"1 \u00e5r","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"400 dage":{"id":"985","dk":"400 dage","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"600 dage":{"id":"986","dk":"600 dage","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"M\u00e6ngden skal v\u00e6re et tal":{"id":"1001","dk":"M\u00e6ngden skal v\u00e6re et tal","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Varen er nu tilf\u00f8jet til din ordre":{"id":"1002","dk":"Varen er nu tilf\u00f8jet til din ordre","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"skal udfyldes":{"id":"231","dk":"skal udfyldes","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Silo skal udfyldes":{"id":"1014","dk":"Silo skal udfyldes","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Skal udfyldes":{"id":"1018","dk":"Skal udfyldes","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Vil du fjerne varen fra din kurv?":{"id":"1049","dk":"Vil du fjerne varen fra din kurv?","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Afhentes":{"id":"1050","dk":"Afhentes","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Levering":{"id":"290","dk":"Levering","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Er du sikker p\u00e5 at du vil slette denne vare fra din indk\u00f8bsvogn?":{"id":"1114","dk":"Er du sikker p\u00e5 at du vil slette denne vare fra din indk\u00f8bsvogn?","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Du skal f\u00f8rst v\u00e6lge en leveringadresse":{"id":"1237","dk":"Du skal f\u00f8rst v\u00e6lge en leveringadresse","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Navn skal udfyldes":{"id":"1238","dk":"Navn skal udfyldes","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Du skal v\u00e6lge mindst \u00e9n afdeling":{"id":"1239","dk":"Du skal v\u00e6lge mindst \u00e9n afdeling","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Er du sikker p\u00e5, at du vil slette denne modtager?":{"id":"1240","dk":"Er du sikker p\u00e5, at du vil slette denne modtager?","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Noget gik galt":{"id":"1309","dk":"Noget gik galt","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"forh\u00e5ndsanalyse":{"id":"1321","dk":"forh\u00e5ndsanalyse","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"forh\u00e5ndsanalyser":{"id":"1322","dk":"forh\u00e5ndsanalyser","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Forh\u00e5ndsanalyser":{"id":"15","dk":"Forh\u00e5ndsanalyser","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Ny dato gemt":{"id":"1333","dk":"Ny dato gemt","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"\u00c6ndringen er gemt":{"id":"2683","dk":"\u00c6ndringen er gemt","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Du har foretaget \u00e6ndringer, som skal gemmes f\u00f8r du kan forts\u00e6tte.":{"id":"2684","dk":"Du har foretaget \u00e6ndringer, som skal gemmes f\u00f8r du kan forts\u00e6tte.","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Der er 1 eller flere leveringsadresser, som ikke er udfyldt korrekt, du kan \u00e6ndre dem ved at klikke p\u00e5 blyanten":{"id":"2928","dk":"Der er 1 eller flere leveringsadresser, som ikke er udfyldt korrekt, du kan \u00e6ndre dem ved at klikke p\u00e5 blyanten","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Dato":{"id":"114","dk":"Dato","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Varebem\u00e6rkninger":{"id":"2947","dk":"Varebem\u00e6rkninger","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Du skal indtaste v\u00e6gten per gris":{"id":"3646","dk":"Du skal indtaste v\u00e6gten per gris","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Hvor mange eksemplarer":{"id":"4292","dk":"Hvor mange eksemplarer","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Du skal v\u00e6lge en fil, f\u00f8r du kan uploade":{"id":"4406","dk":"Du skal v\u00e6lge en fil, f\u00f8r du kan uploade","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Er du sikker at slette selverkl\u00e6ring":{"id":"4414","dk":"Er du sikker at slette selverkl\u00e6ring","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Du skal indtaste et virksomhedsnavn":{"id":"4458","dk":"Du skal indtaste et virksomhedsnavn","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Du skal v\u00e6lge en virksomhedsform":{"id":"4459","dk":"Du skal v\u00e6lge en virksomhedsform","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Du skal indtaste att navn":{"id":"4460","dk":"Du skal indtaste att navn","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Du skal indtaste en adresse":{"id":"4461","dk":"Du skal indtaste en adresse","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Du skal indtaste et postnummer":{"id":"4462","dk":"Du skal indtaste et postnummer","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Du skal indtaste et bynavn":{"id":"4463","dk":"Du skal indtaste et bynavn","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Du skal indtaste et telefonnummer":{"id":"4464","dk":"Du skal indtaste et telefonnummer","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Du skal indtaste en email":{"id":"4465","dk":"Du skal indtaste en email","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Du skal indtaste et CPR nummer":{"id":"4466","dk":"Du skal indtaste et CPR nummer","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Du skal godkende at Danish Agro p\u00e5 baggrund af de ovenfor afgivne oplysninger indhenter oplysninger om mig\/den angivne virksomhed til brug for kreditvurdering":{"id":"4467","dk":"Du skal godkende at Danish Agro p\u00e5 baggrund af de ovenfor afgivne oplysninger indhenter oplysninger om mig\/den angivne virksomhed til brug for kreditvurdering","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Opdateret":{"id":"4491","dk":"Opdateret","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Er du sikker p\u00e5 at du vil afsende velkomst mail?":{"id":"4492","dk":"Er du sikker p\u00e5 at du vil afsende velkomst mail?","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Du har ikke valgt fil til upload":{"id":"4497","dk":"Du har ikke valgt fil til upload","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Sendt til logistik":{"id":"4509","dk":"Sendt til logistik","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Afsluttet":{"id":"235","dk":"Afsluttet","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Velkomst mail afsendt":{"id":"4809","dk":"Velkomst mail afsendt","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Er du sikker p\u00e5 at du vil flytte leveringsdatoen?":{"id":"4896","dk":"Er du sikker p\u00e5 at du vil flytte leveringsdatoen?","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Antal grise":{"id":"4964","dk":"Antal grise","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Antal":{"id":"591","dk":"Antal","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"L\u00e6g":{"id":"4965","dk":"L\u00e6g","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"I alt":{"id":"1009","dk":"I alt","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"% af holdet":{"id":"4966","dk":"% af holdet","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Gns. v\u00e6gt":{"id":"4967","dk":"Gns. v\u00e6gt","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Antal lev.":{"id":"4968","dk":"Antal lev.","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Gns. lev.":{"id":"4969","dk":"Gns. lev.","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Antal Faringer":{"id":"4970","dk":"Antal Faringer","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Antal levende f\u00f8dte":{"id":"4971","dk":"Antal levende f\u00f8dte","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Gen. v\u00e6gt":{"id":"4972","dk":"Gen. v\u00e6gt","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Mindre end 800 gram":{"id":"4973","dk":"Mindre end 800 gram","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Mindre end 1000 gram":{"id":"4974","dk":"Mindre end 1000 gram","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Over 1000 gram":{"id":"4975","dk":"Over 1000 gram","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Diegivningsfoder":{"id":"4976","dk":"Diegivningsfoder","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Dr\u00e6gtighedsfoder":{"id":"4977","dk":"Dr\u00e6gtighedsfoder","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Gns v\u00e6gt pr m\u00e5neder":{"id":"4978","dk":"Gns v\u00e6gt pr m\u00e5neder","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Gns":{"id":"4979","dk":"Gns","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Gns levendef\u00f8dte pr m\u00e5neder":{"id":"4980","dk":"Gns levendef\u00f8dte pr m\u00e5neder","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Du har ikke fuld adgang til appen":{"id":"4981","dk":"Du har ikke fuld adgang til appen","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Skift visning":{"id":"4988","dk":"Skift visning","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Alle":{"id":"4989","dk":"Alle","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"% <800g":{"id":"4990","dk":"% <800g","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"% 800 - 1000g":{"id":"4991","dk":"% 800 - 1000g","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"% >1000g":{"id":"4992","dk":"% >1000g","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"800 - 1000 gram":{"id":"4993","dk":"800 - 1000 gram","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Antal pr. l\u00e6g":{"id":"4994","dk":"Antal pr. l\u00e6g","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Mindre end 800":{"id":"4995","dk":"Mindre end 800","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Mindre end 1000":{"id":"4996","dk":"Mindre end 1000","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"St\u00f8rre end 1000":{"id":"4997","dk":"St\u00f8rre end 1000","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Adgang til grisefokus er opdateret":{"id":"5006","dk":"Adgang til grisefokus er opdateret","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Du skal v\u00e6lge en leveringsadresse":{"id":"5008","dk":"Du skal v\u00e6lge en leveringsadresse","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Du skal udfylde en bestilling":{"id":"5009","dk":"Du skal udfylde en bestilling","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Rygsp\u00e6k er opdateret":{"id":"5014","dk":"Rygsp\u00e6k er opdateret","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"800 - 1000":{"id":"5015","dk":"800 - 1000","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Enhedspris
inkl. afgift":{"id":"5021","dk":"Enhedspris
inkl. afgift","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Enhedspris
excl. afgift":{"id":"5019","dk":"Enhedspris
excl. afgift","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Enhedspris DKK
inkl. afgift":{"id":"5023","dk":"Enhedspris DKK
inkl. afgift","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Enhedspris DKK
excl. afgift":{"id":"5022","dk":"Enhedspris DKK
excl. afgift","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Graf":{"id":"5054","dk":"Graf","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Test":{"id":"5055","dk":"Test","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Test1":{"id":"5056","dk":"Test1","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Test2":{"id":"5057","dk":"Test2","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"test1":{"id":"1717","dk":"test1","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"test2":{"id":"1718","dk":"test2","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Danish Agro":{"id":"5059","dk":"Danish Agro","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Potentielt":{"id":"5060","dk":"Potentielt","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Budget DA":{"id":"5061","dk":"Budget DA","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"\u00c5bent potentiale":{"id":"345","dk":"\u00c5bent potentiale","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Salgsgraf":{"id":"5062","dk":"Salgsgraf","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"K\u00f8bsgraf":{"id":"5063","dk":"K\u00f8bsgraf","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Salgsmulighed":{"id":"5076","dk":"Salgsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"K\u00f8bsmulighed":{"id":"5077","dk":"K\u00f8bsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Byg - Salgsmulighed":{"id":"5080","dk":"Byg - Salgsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Byg -K\u00f8bsmulighed":{"id":"5081","dk":"Byg -K\u00f8bsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Hvede - Salgsmulighed":{"id":"5082","dk":"Hvede - Salgsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Hvede -K\u00f8bsmulighed":{"id":"5083","dk":"Hvede -K\u00f8bsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Havre - Salgsmulighed":{"id":"5084","dk":"Havre - Salgsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Havre -K\u00f8bsmulighed":{"id":"5085","dk":"Havre -K\u00f8bsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Raps - Salgsmulighed":{"id":"5086","dk":"Raps - Salgsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Raps -K\u00f8bsmulighed":{"id":"5087","dk":"Raps -K\u00f8bsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Rug - Salgsmulighed":{"id":"5088","dk":"Rug - Salgsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Rug -K\u00f8bsmulighed":{"id":"5089","dk":"Rug -K\u00f8bsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Byg - K\u00f8bsmulighed":{"id":"5090","dk":"Byg - K\u00f8bsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Hvede - K\u00f8bsmulighed":{"id":"5091","dk":"Hvede - K\u00f8bsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Havre - K\u00f8bsmulighed":{"id":"5092","dk":"Havre - K\u00f8bsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Raps - K\u00f8bsmulighed":{"id":"5093","dk":"Raps - K\u00f8bsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Rug - K\u00f8bsmulighed":{"id":"5094","dk":"Rug - K\u00f8bsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Byg maltbyg - Salgsmulighed":{"id":"5095","dk":"Byg maltbyg - Salgsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Byg maltbyg - K\u00f8bsmulighed":{"id":"5096","dk":"Byg maltbyg - K\u00f8bsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Hvede br\u00f8d - Salgsmulighed":{"id":"5097","dk":"Hvede br\u00f8d - Salgsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Hvede br\u00f8d - K\u00f8bsmulighed":{"id":"5098","dk":"Hvede br\u00f8d - K\u00f8bsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Rug br\u00f8d - Salgsmulighed":{"id":"5099","dk":"Rug br\u00f8d - Salgsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Rug br\u00f8d - K\u00f8bsmulighed":{"id":"5100","dk":"Rug br\u00f8d - K\u00f8bsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Majs - Salgsmulighed":{"id":"5102","dk":"Majs - Salgsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Majs - K\u00f8bsmulighed":{"id":"5103","dk":"Majs - K\u00f8bsmulighed","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Byg - Salg til kunden":{"id":"5107","dk":"Byg - Salg til kunden","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Byg - K\u00f8b af kunden":{"id":"5108","dk":"Byg - K\u00f8b af kunden","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Byg maltbyg - K\u00f8b af kunden":{"id":"5109","dk":"Byg maltbyg - K\u00f8b af kunden","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Hvede - Salg til kunden":{"id":"5110","dk":"Hvede - Salg til kunden","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Hvede - K\u00f8b af kunden":{"id":"5111","dk":"Hvede - K\u00f8b af kunden","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Hvede br\u00f8d - K\u00f8b af kunden":{"id":"5112","dk":"Hvede br\u00f8d - K\u00f8b af kunden","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Raps - K\u00f8b af kunden":{"id":"5113","dk":"Raps - K\u00f8b af kunden","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Salg til kunden":{"id":"5114","dk":"Salg til kunden","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"K\u00f8b af kunden":{"id":"5115","dk":"K\u00f8b af kunden","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Total - Salg til kunden":{"id":"5116","dk":"Total - Salg til kunden","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Total - K\u00f8b af kunden":{"id":"5117","dk":"Total - K\u00f8b af kunden","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Havre - K\u00f8b af kunden":{"id":"5118","dk":"Havre - K\u00f8b af kunden","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Rug - K\u00f8b af kunden":{"id":"5119","dk":"Rug - K\u00f8b af kunden","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Hvede br\u00f8d - Salg til kunden":{"id":"5120","dk":"Hvede br\u00f8d - Salg til kunden","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Havre - Salg til kunden":{"id":"5121","dk":"Havre - Salg til kunden","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Byg maltbyg - Salg til kunden":{"id":"5122","dk":"Byg maltbyg - Salg til kunden","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Noget gik galt - \u00e6ndringen er muligvis ikke gemt":{"id":"5142","dk":"Noget gik galt - \u00e6ndringen er muligvis ikke gemt","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Tryk her for at slette":{"id":"5133","dk":"Tryk her for at slette","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"% <801g":{"id":"5152","dk":"% <801g","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"% 801 - 1001g":{"id":"5153","dk":"% 801 - 1001g","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"% >1001g":{"id":"5154","dk":"% >1001g","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Mindre end 801 gram":{"id":"5155","dk":"Mindre end 801 gram","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"801 - 1001 gram":{"id":"5156","dk":"801 - 1001 gram","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Over 1001 gram":{"id":"5157","dk":"Over 1001 gram","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Mindre end 801":{"id":"5158","dk":"Mindre end 801","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"801 - 1001":{"id":"5159","dk":"801 - 1001","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"St\u00f8rre end 1001":{"id":"5160","dk":"St\u00f8rre end 1001","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Ny pr\u00f8ve igangsat":{"id":"5167","dk":"Ny pr\u00f8ve igangsat","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Antal Grise":{"id":"5207","dk":"Antal Grise","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Gns v\u00e6gt pr m\u00e5ned":{"id":"5210","dk":"Gns v\u00e6gt pr m\u00e5ned","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Gns levendef\u00f8dte pr m\u00e5ned":{"id":"5211","dk":"Gns levendef\u00f8dte pr m\u00e5ned","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Forh\u00e5ndsanalyse":{"id":"5234","dk":"Forh\u00e5ndsanalyse","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Du har foretaget \u00ef\u00bf\u00bdndringer, som skal gemmes f\u00f8r du kan forts\u00e6tte.":{"id":"5394","dk":"Du har foretaget \u00ef\u00bf\u00bdndringer, som skal gemmes f\u00f8r du kan forts\u00e6tte.","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Er du sikker at slette selverkl\u00e6ring 2017":{"id":"5423","dk":"Er du sikker at slette selverkl\u00e6ring 2017","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Gns antal lev. f\u00f8dte pr. so":{"id":"5455","dk":"Gns antal lev. f\u00f8dte pr. so","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Procent":{"id":"4987","dk":"Procent","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Gns. d\u00f8de":{"id":"5519","dk":"Gns. d\u00f8de","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Gns antal d\u00f8de f\u00f8dte pr. so":{"id":"5520","dk":"Gns antal d\u00f8de f\u00f8dte pr. so","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Er du sikker?":{"id":"5566","dk":"Er du sikker?","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Noten er slettet":{"id":"5571","dk":"Noten er slettet","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Du skal v\u00e6lge en medarbejder der skal underrettes":{"id":"5765","dk":"Du skal v\u00e6lge en medarbejder der skal underrettes","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""},"Udfyld venligst telefon nr.":{"id":"6430","dk":"Udfyld venligst telefon nr.","en":"","se":"","de":"","fr":"","es":"","pl":"","pt":""}}; var global_contractnumber = 0; var global_itemnumber = 0; var global_reversed = 0; var global_table_data = ''; function overlayContractActions(department, customernumber, aftraekid, contractnumber, itemnumber, reversed, table_data, curr_index, first_index, last_index) { global_table_data = table_data; global_contractnumber = contractnumber; global_itemnumber = itemnumber; global_reversed = reversed; data = '
'; //data = '
'; data += '
'; data += ' '; data += '
'; data += '
'; if(getElement('order_overlay_container_inner')) { getElement('order_overlay_container_inner').innerHTML = data; } else { createOverlay(data, undefined, undefined, undefined, 'order_overlay_container'); addCloseButtonToOverlay('order_overlay_container', function(){closeOverlay('order_overlay_container');}); } ajaxRequest('POST', '/ajax/contractsactions.php?action=showOverlay', function(){handleOverlayContractActions();}, '&department='+department+'&customernumber='+customernumber+'&aftraekid='+aftraekid+'&contractnumber='+contractnumber+'&itemnumber='+itemnumber+'&reversed='+reversed+'&curr_index='+curr_index+'&first_index='+first_index+'&last_index='+last_index); } function getPreviousFucniton(CurItemIndex) { CurItemIndex = parseInt(CurItemIndex); var CurTableIndexs = global_table_data.rows({"filter": "applied"}).indexes(); var CurIndexArrayKey = CurTableIndexs.indexOf(CurItemIndex); var PrevItemIndex = CurTableIndexs[CurIndexArrayKey - 1]; var prevRow = global_table_data.row( PrevItemIndex ).node(); var firstIndex = CurTableIndexs[0]; var lastIndex = CurTableIndexs[CurTableIndexs.length - 1]; var prev_fucntion_to_call = prevRow.getAttribute("data_function"); prev_fucntion_to_call = prev_fucntion_to_call.substring(0, prev_fucntion_to_call.length - 1); prev_fucntion_to_call = prev_fucntion_to_call+", global_table_data, \'"+PrevItemIndex+"\', \'"+firstIndex+"\', \'"+lastIndex+"\')"; eval(prev_fucntion_to_call); } function getNextFucniton(CurItemIndex) { CurItemIndex = parseInt(CurItemIndex); var CurTableIndexs = global_table_data.rows({"filter": "applied"}).indexes(); var CurIndexArrayKey = CurTableIndexs.indexOf(CurItemIndex); var firstIndex = CurTableIndexs[0]; var lastIndex = CurTableIndexs[CurTableIndexs.length - 1]; var NextItemIndex = CurTableIndexs[ CurIndexArrayKey + 1]; var nextRow = global_table_data.row( NextItemIndex).node(); var next_fucntion_to_call = nextRow.getAttribute("data_function"); next_fucntion_to_call = next_fucntion_to_call.substring(0, next_fucntion_to_call.length - 1); next_fucntion_to_call = next_fucntion_to_call+", global_table_data, \'"+NextItemIndex+"\', \'"+firstIndex+"\', \'"+lastIndex+"\')"; eval(next_fucntion_to_call); } function handleOverlayContractActions() { try { var result = ajax_request_obj.responseText; } catch(e) { alert(_t_no_front('Something went wrong')); closeOverlay('overlay_overlay_container'); } getElement('order_overlay_container_inner').innerHTML = result; getElement('contractsaction_dragbar').onmousedown = function(event){startDragging(event, 'order_overlay_container');}; getElement('contractsaction_dragbar').onmouseup = function(){cancelDragging();}; } function setContractActions(action,nr,id,cvm,reversed,color,chef) { if(typeof(color) == "undefined") { color = "black" } if(typeof(chef) == "undefined") { chef = false; } if(action != "okAfvikles" && reversed == 0 && chef == false && getElement('s2k_note_add').value == "" && getElement('noteadd') == null) { alert('Du skal udfylde en note hvis du vlger andet end "OK afvikles"'); return false; } var dateObj = new Date(); var year = dateObj.getUTCFullYear(); year = year.toString().substr(2,2); var month = dateObj.getMonth()+1; var day = dateObj.getDate(); ajaxRequest('GET', '/ajax/contractsactions.php?action=addAction&actiontype='+action+'&kundenr='+nr+'&id='+id+'&cvm='+cvm+'&reversed='+reversed, function(){ if(getElement('s2k_note_add').value != "") { saveContractActionsNote(getElement('s2k_note_add').value,nr,id,cvm,reversed); } var data_array = JSON.parse(ajax_request_obj.responseText); //getElement('ContractsActionsContainer').innerHTML = '['+day + "-" + month + "-"+year+"]
Handling sat til '"+data_array.name+"'
" + getElement('ContractsActionsContainer').innerHTML; getElement('ContractsActionContainer').innerHTML = 'Status:
"'+data_array.name+'"
'+data_array.message; getElement('ContractsActionButton').innerHTML = ''; getElement('isaction_action_'+reversed+'_'+id).innerHTML = ''+data_array.name+''; getElement('actionDate_'+reversed+'_'+id).innerHTML = day + "/" + month + " "+year; getContractActionsS2kNotes(); }); } function getContractActionsS2kNotes() { ajaxRequest('POST', '/ajax/contractsactions.php?action=getNotes', function(){ var data_array = JSON.parse(ajax_request_obj.responseText); getElement('ContractsActionsContainer').innerHTML = data_array.notes; }, '&itemnumber='+global_itemnumber+'&contractnumber='+global_contractnumber+'&reversed='+global_reversed); } function saveContractActionsNote(message,nr,id,cvm,reversed) { var dateObj = new Date(); var year = dateObj.getUTCFullYear(); var month = dateObj.getMonth()+"";if(month.length==1) month="0" +month; var day = dateObj.getDate()+"";if(day.length==1) day="0" +day; ajaxRequest('POST', '/ajax/contractsactions.php?action=addNote&kundenr='+nr+'&id='+id+'&cvm='+cvm+'&reversed='+reversed, function(){ var data_array = JSON.parse(ajax_request_obj.responseText); if(data_array.success) { if(getElement('note_html').innerHTML == 'Ingen noter gemt endnu

') { getElement('note_html').innerHTML = ''; } getElement('note_html').innerHTML = data_array.message+"
" + getElement('note_html').innerHTML; getElement('s2k_note_add').value = ""; }else{ alert('Der gik noget galt..'); } //getElement('ContractsActionsContainer').innerHTML = day + "-" + month + "-"+year+" - "+data_array.name+"
" + getElement('ContractsActionsContainer').innerHTML; }, '&message='+message); } function setContractActionStatus(action,status,nr,id,cvm,reversed,color) { if(typeof(color) == "undefined") { color = "black" } var dateObj = new Date(); var year = dateObj.getUTCFullYear(); var month = dateObj.getMonth()+"";if(month.length==1) month="0" +month; var day = dateObj.getDate()+"";if(day.length==1) day="0" +day; console.log(status); ajaxRequest('POST', '/ajax/contractsactions.php?action=addStatus', function(){ var data_array = JSON.parse(ajax_request_obj.responseText); console.log(data_array); var state = "Afvist"; if(status == "aproved") state = "Godkendt"; //getElement('ContractsActionsContainer').innerHTML = data_array.message+"
" + getElement('ContractsActionsContainer').innerHTML; getContractActionsS2kNotes(); getElement('ContractsActionButton').innerHTML = data_array.handling; getElement('isaction_action_'+reversed+'_'+id).style.color = color; }, '&actiontype='+action+'&status='+status+'&kundenr='+nr+'&id='+id+'&cvm='+cvm+'&reversed='+reversed); } /*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */ !function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S), a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b), null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("