var event_handler = {};event_handler.fix = function (event){if (typeof(event) == 'undefined') event = window.event;if (typeof(event.target) == 'undefined') event.target = event.srcElement;if (typeof(event.layerX) == 'undefined') event.layerX = event.offsetX;if (typeof(event.layerY) == 'undefined') event.layerY = event.offsetY;if (!event.preventDefault) event.preventDefault = function(){event.returnValue = false;}return event;};event_handler.add = function (object, event_type, function_name, use_capture){if (window.opera){if (object == window){if (!object.addEventListener && !object.attachEvent){object = document;}}}if (object.addEventListener){object.addEventListener(event_type, function_name, use_capture);return true;}else if (object.attachEvent){var r = object.attachEvent('on'+event_type, function_name);return r;}else{object['on'+event_type] = function_name;return true;}};event_handler.remove = function (object, event_type, function_name, use_capture){if (window.opera){if (object == window){if (!object.addEventListener && !object.attachEvent){object = document;}}}if (object.removeEventListener){object.removeEventListener(event_type, function_name, use_capture);return true;}else if (object.detachEvent){var r = object.detachEvent('on'+event_type, function_name);return r;}else{object['on'+event_type] = null;return true;}};event_handler.event = null;event_handler.create = function (event_type, can_bubble, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, related_target){switch (event_type){case "click":var event = document.createEvent('MouseEvents');event.handler.event = event.initMouseEvent(event_type, can_bubble, cancelable, view,                     detail, screenX, screenY, clientX, clientY,                     ctrlKey, altKey, shiftKey, metaKey,                     button, related_target);break;}};event_handler.dispatch = function (element){element.dispatchEvent(event.handler.event);};var class_handler = {};class_handler.get = function (element){if (element && element.tagName){if (element.className){if (element.className.replace){var cl = element.className.replace(/\s+/g, ' ');return cl.split(' ');}}}return false;};class_handler.has = function (element, cl){var actual_class = class_handler.get(element);if (typeof(cl) == 'string'){for (var i = 0; i < actual_class.length; i++){if (actual_class[i] == cl){return true;}}}return false;};class_handler.add = function (element, cl){var actual_class = class_handler.get(element);if (typeof(cl) == 'string'){if (!class_handler.has(element, cl)){element.className += (actual_class.length > 0) ? ' ' + cl : cl;}return true;}return false;};class_handler.remove = function (element, cl){var actual_class = class_handler.get(element);if (typeof(cl) == 'string'){temp_class = '';for (var i = 0; i < actual_class.length; i++){if (actual_class[i] != cl){if (temp_class != ''){temp_class += ' ';}temp_class += actual_class[i];}element.className = temp_class;}return true;}return false;};class_handler.replace = function (element, old_class, new_class){var actual_class = class_handler.get(element);if ((typeof(old_class) == 'string') && (typeof(new_class) == 'string')){temp_class = '';if (class_handler.has(element, new_class)){class_handler.remove(element, old_class);}else if (class_handler.has(element, old_class)){for (var i = 0; i < actual_class.length; i++){if (temp_class != ''){temp_class += ' ';}temp_class += (actual_class[i] == old_class) ? new_class : actual_class[i];}element.className = temp_class;}else{class_handler.add(element, new_class);}return true;}return false;};class_handler.like = function (element, cl){var actual_class = class_handler.get(element);if (typeof(cl) == 'string'){for (var i = 0; i < actual_class.length; i++){reg = new RegExp (cl);if (actual_class[i].search(reg) != -1){return actual_class[i];}}}return false;};class_handler.getElementsByClass = function (cl){elements = [];var elm = document.getElementsByTagName('*');for (var i = 0; i < elm.length; i++){if (class_handler.has(elm[i], cl)){elements[elements.length] = elm[i];}}return elements;};var date_handler = {};date_handler.compare = function (from_date, to_date, sharp){start_date = new Array();end_date = new Array();start_date['year'] = from_date.substring(0, 4);start_date['month'] = from_date.substring(5, 7);start_date['day'] = from_date.substring(8, 10);start_date['hours'] = (from_date.substring(11, 13) != '') ? from_date.substring(11, 13) : 0;start_date['minutes'] = (from_date.substring(14, 16) != '') ? from_date.substring(14, 16) : 0;start_date['seconds'] = (from_date.substring(17, 19) != '') ? from_date.substring(17, 19) : 0;start_date['year'] = new Number(start_date['year']).valueOf();start_date['month'] = (new Number(start_date['month']).valueOf())-1;start_date['day'] = new Number(start_date['day']).valueOf();start_date['hours'] = new Number(start_date['hours']).valueOf();start_date['minutes'] = new Number(start_date['minutes']).valueOf();start_date['seconds'] = new Number(start_date['seconds']).valueOf();end_date['year'] = to_date.substring(0, 4);end_date['month'] = to_date.substring(5, 7);end_date['day'] = to_date.substring(8, 10);end_date['hours'] = (to_date.substring(11, 13) != '') ? to_date.substring(11, 13) : 0;end_date['minutes'] = (to_date.substring(14, 16) != '') ? to_date.substring(14, 16) : 0;end_date['seconds'] = (to_date.substring(17, 19) != '') ? to_date.substring(17, 19) : 0;end_date['year'] = new Number(end_date['year']).valueOf();end_date['month'] = (new Number(end_date['month']).valueOf())-1;end_date['day'] = new Number(end_date['day']).valueOf();end_date['hours'] = new Number(end_date['hours']).valueOf();end_date['minutes'] = new Number(end_date['minutes']).valueOf();end_date['seconds'] = new Number(end_date['seconds']).valueOf();from_date = new Date();from_date.setFullYear(start_date['year'], start_date['month'], start_date['day']);from_date.setHours(start_date['hours'], start_date['minutes'], start_date['seconds']);to_date = new Date();to_date.setFullYear(end_date['year'], end_date['month'], end_date['day']);to_date.setHours(end_date['hours'], end_date['minutes'], end_date['seconds']);if (sharp == true){if (from_date < to_date){return true;}}else{if (from_date <= to_date){return true;}}return false;};var dom_handler = {};dom_handler.getNextSibling = function (element){if (element.nextSibling){var sibling = element.nextSibling;while (sibling.nodeType != 1){if (sibling.nextSibling){sibling = sibling.nextSibling;}else{return false;}}return sibling;}return false;};dom_handler.insertAfter = function (insertNode, referenceNode){if (dom_handler.getNextSibling(referenceNode)){referenceNode.parentNode.insertBefore(insertNode, dom_handler.getNextSibling(referenceNode));}else{referenceNode.parentNode.appendChild(insertNode);}};dom_handler.getProperties = function (object){var keys = [];for (var key in object){if (key != 'getProperties'){keys.push(key);}}return keys;};if (!Array.prototype.indexOf){Array.prototype.indexOf = function (searchElement){if (this === void 0 || this === null) throw new TypeError();var t = Object(this);var len = t.length >>> 0;if (len === 0)return -1;var n = 0;if (arguments.length > 0){n = Number(arguments[1]);if (n !== n){n = 0;}else if (n !== 0){n = (n > 0 || -1) * Math.floor(Math.abs(n));}}if (n >= len)return -1;var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0);for (; k < len; k++){if (k in t && t[k] === searchElement)return k;}return -1;};}var form_handler = {};form_handler.alert_element_id = [];form_handler.checkSpecial = [];form_handler.invalid_fields_ids = [];form_handler.invalid_fields = [];form_handler.field_types = [];form_handler.default_values = [];form_handler.error_special = [];/** * Auto init, requires event_handler, class_handler * * Adds and removes classes 'focused' and 'focused_required' onfocus and onblur * * Default mode: checkForm with alert output * To output invalid fields to a html element: * form_handler.alert_element_id.<form_id> = '<element_id>'; * * To setup a special check function for form: * form_handler.checkSpecial.<form_id> = function () {}; * * Do the above two in a per-page script include/site wide include, but beware form id collisions! */form_handler.error_field_title = '';form_handler.alert_by_label = true;form_handler.error_message = TXT_JS_FORM_ERR;form_handler.init = function (){var forms = document.getElementsByTagName('form');for (var i = 0; i < forms.length; i++){if (class_handler.has(forms[i], 'checkAJAX')){event_handler.add(forms[i], 'submit', form_handler.checkAJAX);}else{event_handler.add(forms[i], 'submit', form_handler.checkForm);}var inputs = forms[i].getElementsByTagName('input');var texts = forms[i].getElementsByTagName('textarea');var selects = forms[i].getElementsByTagName('select');for (var j = 0; j < inputs.length; j++){if (inputs[j].type == 'text' || inputs[j].type == 'password'){event_handler.add(inputs[j], 'blur', form_handler.checkField);event_handler.add(inputs[j], 'keyup', form_handler.checkField);event_handler.add(inputs[j], 'focus', form_handler.checkField);event_handler.add(inputs[j], 'change', form_handler.checkField);event_handler.add(inputs[j], 'blur', form_handler.fieldBlur);event_handler.add(inputs[j], 'focus', form_handler.fieldFocus);}}for (var j = 0; j < texts.length; j++){event_handler.add(texts[j], 'blur', form_handler.checkField);event_handler.add(texts[j], 'keyup', form_handler.checkField);event_handler.add(texts[j], 'focus', form_handler.checkField);event_handler.add(texts[j], 'change', form_handler.checkField);event_handler.add(texts[j], 'blur', form_handler.fieldBlur);event_handler.add(texts[j], 'focus', form_handler.fieldFocus);}for (var j = 0; j < selects.length; j++){event_handler.add(selects[j], 'blur', form_handler.checkField);event_handler.add(selects[j], 'focus', form_handler.checkField);event_handler.add(selects[j], 'change', form_handler.checkField);event_handler.add(selects[j], 'blur', form_handler.fieldBlur);event_handler.add(selects[j], 'focus', form_handler.fieldFocus);}}};form_handler.buildRegExp = function (string){if (string){return new RegExp("^["+string+"]{1,}$");}return false;};form_handler.checkChars = function (string, re){if (string && re){return (string.search(re) == -1) ? true : false;}return true;};form_handler.checkField = function (event){if (event.tagName){field = event;}else{var event = event_handler.fix(event);var field = event.target;}var field_valid = true;var classes = class_handler.get(field);if (class_handler.has(field, 'required')){field_valid = (field.value.length > 0) ? true : false;if (field.tagName.toLowerCase() == 'select'){field_valid = (field.value != -1) ? true : false;}if (field.tagName.toLowerCase() == 'input' && field.type == 'checkbox'){field_valid = (field.checked) ? true : false;}}var i = 0;while (field_valid && i < classes.length){if (form_handler.default_values[classes[i]]){if ((event.type == 'focus') && event.target.value.length <= 0){field.value = form_handler.default_values[classes[i]];}if (event.type == 'blur' && field.value == form_handler.default_values[classes[i]]){field.value = '';}}if (form_handler.field_types[classes[i]]){field_valid = (field.value.length > 0 && form_handler.checkChars(field.value, form_handler.field_types[classes[i]])) ? false : true;}i++;}(field_valid) ? class_handler.remove(field, 'invalid') : class_handler.add(field, 'invalid');return (field_valid) ? "valid" : "invalid";};form_handler.checkSilent = function (element){var return_val = true;var inputs = element.getElementsByTagName('input');for (var i = 0; i < inputs.length; i++){if (form_handler.checkField(inputs[i]) == 'invalid'){return_val = false;}}var textareas = element.getElementsByTagName('textarea');for (var i = 0; i < textareas.length; i++){if (form_handler.checkField(textareas[i]) == 'invalid'){return_val = false;}}var selects = element.getElementsByTagName('select');for (var i = 0; i < selects.length; i++){if (form_handler.checkField(selects[i]) == 'invalid'){return_val = false;}}return return_val;};form_handler.checkAJAX = function (event){var event = event_handler.fix(event);if (!form_handler.checkForm(event)){return false;}var c = 0;var param = new Array();var inputs = event.target.getElementsByTagName('input');for (var i = 0; i < inputs.length; i++){if (inputs[i].tagName.toLowerCase() == 'radio' || inputs[i].tagName.toLowerCase() == 'checkbox'){if (inputs[i].checked == true || inputs[i].checked == 'true'){temp_field = new Array(inputs[i].name, inputs[i].value);param[c++] = temp_field;}}else{temp_field = new Array(inputs[i].name, inputs[i].value);param[c++] = temp_field;}}var textareas = event.target.getElementsByTagName('textarea');for (var i = 0; i < textareas.length; i++){temp_field = new Array(textareas[i].name, textareas[i].value);param[c++] = temp_field;}var selects = event.target.getElementsByTagName('select');for (var i = 0; i < selects.length; i++){temp_field = new Array(selects[i].name, selects[i].value);param[c++] = temp_field;}if (requester.loadURL('POST', form_handler.checkAJAX_script, param, false)){var response = requester.getXML();if (1 == 1){return false;}}return true;};form_handler.getInvalidFields = function (event){form_handler.invalid_fields_ids = [];form_handler.invalid_fields = [];event = event_handler.fix(event);var form = event.target;var inputs = form.getElementsByTagName('input');for (var i = 0; i < inputs.length; i++){if (class_handler.has(inputs[i], 'invalid')){form_handler.invalid_fields_ids[form_handler.invalid_fields_ids.length] = inputs[i].id;}}var selects = form.getElementsByTagName('select');for (var i = 0; i < selects.length; i++){if (class_handler.has(selects[i], 'invalid')){form_handler.invalid_fields_ids[form_handler.invalid_fields_ids.length] = selects[i].id;}}var textareas = form.getElementsByTagName('textarea');for (var i = 0; i < textareas.length; i++){if (class_handler.has(textareas[i], 'invalid')){form_handler.invalid_fields_ids[form_handler.invalid_fields_ids.length] = textareas[i].id;}}if (form_handler.alert_by_label){var labels = form.getElementsByTagName('label');for (var i = 0; i < labels.length; i++){var tmp_for = labels[i].getAttribute('for');if (tmp_for){var tmp_index = form_handler.invalid_fields_ids.indexOf(tmp_for);if (tmp_index >= 0){var tmp_desc = labels[i].innerHTML;form_handler.invalid_fields[form_handler.invalid_fields.length] = tmp_desc;}}}}else{for (var i = 0; i < form_handler.invalid_fields_ids.length; i++){form_handler.invalid_fields[i] = document.getElementById(form_handler.invalid_fields_ids[i]).title;}}var tmp_err_text = '';for (var i = 0; i < form_handler.invalid_fields.length; i++){tmp_err_text += (i > 0) ? ', ' : '';tmp_err_text += form_handler.invalid_fields[i];}return tmp_err_text;};form_handler.checkForm = function (event){var event = event_handler.fix(event);var target_form = event.target;if (!form_handler.checkSilent(target_form)){event.preventDefault();if (target_form.id){eval('var tmp_handler = form_handler.alert_element_id.'+target_form.id);if (tmp_handler){var tmp_element = document.getElementById(tmp_handler);if (tmp_element){tmp_element.innerHTML = form_handler.error_field_title+form_handler.getInvalidFields(event);tmp_element.style.visibility = 'visible';tmp_element.style.display = 'block';return false;}}}alert(form_handler.error_message);return false;}else{if (target_form.id){eval('var tmp_handler = form_handler.alert_element_id.'+target_form.id);if (tmp_handler){var tmp_element = document.getElementById(tmp_handler);if (tmp_element){tmp_element.innerHTML = '';tmp_element.style.display = 'none';}}}}if (target_form.id){eval('var tmp_handler = form_handler.checkSpecial.'+target_form.id);if (tmp_handler){eval('var check_res = form_handler.checkSpecial.'+target_form.id+'(event)');if (!check_res){eval('var tmp_error = form_handler.error_special.'+target_form.id);if (!tmp_error){event.preventDefault();return false;}eval('var tmp_handler = form_handler.alert_element_id.'+target_form.id);if (tmp_handler){var tmp_element = document.getElementById(tmp_handler);if (tmp_element && tmp_error){tmp_element.innerHTML = form_handler.error_field_title+tmp_error;tmp_element.style.visibility = 'visible';tmp_element.style.display = 'block';}}else{alert(tmp_error);}event.preventDefault();return false;}}}return true;};form_handler.fieldFocus = function (event){var event = event_handler.fix(event);if (!class_handler.has(event.target, 'focused')){if (class_handler.has(event.target, 'required')){class_handler.add(event.target, 'focused_reqired');}else{class_handler.add(event.target, 'focused');}}};form_handler.fieldBlur = function (event){var event = event_handler.fix(event);class_handler.remove(event.target, 'focused');class_handler.remove(event.target, 'focused_reqired');};form_handler.field_types["numbers"] =form_handler.buildRegExp("0123456789");form_handler.field_types["integer"] =new RegExp("^([-]|())([0123456789]{1,})$");form_handler.field_types["float"] =new RegExp("^([-]|())([0123456789]{1,})(()|(([\054])([0123456789]{1,})))$");form_handler.field_types["safe_chars"] =form_handler.buildRegExp("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_");form_handler.field_types["alphabet_lowercase"] =form_handler.buildRegExp("abcdefghijklmnopqrstuvwxyzáèïéìíòóø¹»úù»ý¾üöäëß ");form_handler.field_types["alphabet_uppercase"] =form_handler.buildRegExp("ABCDEFGHIJKLMNOPQRSTUVWXYZÁÈÏÉÌÍÒÓØ©«ÚÙ«Ý®ÜÖÄËß ");form_handler.field_types["alphabet"] =form_handler.buildRegExp("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZáèïéìíòóø¹»úù»ý¾ÁÈÏÉÌÍÒÓØ©«ÚÙ«Ý®üöäëÜÖÄËß ");form_handler.field_types["alphanumeric"] =form_handler.buildRegExp("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZáèïéìíòóø¹»úù»ý¾ÁÈÏÉÌÍÒÓØ©«ÚÙ«Ý®0123456789üöäëÜÖÄËß ");form_handler.field_types["extended"] =form_handler.buildRegExp("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZáèïéìíòóø¹»úù»ý¾ÁÈÏÉÌÍÒÓØ©«ÚÙ«Ý®üöäëÜÖÄËß\n\r\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\072\073\074\075\076\077\100\134\137\140\173\175");form_handler.field_types["phone_international"] =new RegExp("^((([+][1-9][0-9]{2}([ ]{0,1}))|([0]{2}([ ]{0,1})[1-9][0-9]{2}([ ]{0,1})))|())([1-9]{1}[0-9]{2}([ ]{0,1})[0-9]{3}([ ]{0,1})[0-9]{3})$");form_handler.field_types["url"] =new RegExp("^([htt]+(p|s))|[ftp]+[:]\/\/[a-zA-Z0-9]+([-_\.]?[a-zA-Z0-9])*\.[a-zA-Z]{2,4}(\/{1}[-_~&=\?\.a-z0-9]*)*$");form_handler.field_types["email"] =new RegExp("^[a-z0-9]+[a-z0-9\._-]*[a-z0-9]+@[a-z0-9]+[a-z0-9\._-]*[a-z0-9]+\.[a-z]{2,4}$");form_handler.field_types["us_date"] =new RegExp("^(([0-9]{4})([-])((0[1-9])|(1[012]))([-])((0[1-9])|([12][0-9])|(3[01])))$");form_handler.field_types["en_date"] =form_handler.field_types["us_date"];form_handler.field_types["us_datetime"] =new RegExp("^((([0-9]{4})([-])((0[1-9])|(1[012]))([-])((0[1-9])|([12][0-9])|(3[01])))([ ]{1})(((0[0-9])|(1[0-9])|(2[0-3]))([:])([0-5][0-9])([:])([0-5][0-9])))$");form_handler.field_types["en_datetime"] =form_handler.field_types["us_datetime"];form_handler.field_types["cz_date"] =new RegExp("^(((0[1-9]|[12][0-9]|3[01])(\.)(0[13578]|10|12)(\.)([1-2][0,9][0-9][0-9]))|(([0][1-9]|[12][0-9]|30)(\.)(0[469]|11)(\.)([1-2][0,9][0-9][0-9]))|((0[1-9]|1[0-9]|2[0-8])(\.)(02)(\.)([1-2][0,9][0-9][0-9]))|((29)(\.)(02)(\.)([02468][048]00))|((29)(\.)(02)(\.)([13579][26]00))|((29)(\.)(02)(\.)([0-9][0-9][0][48]))|((29)(\.)(02)(\.)([0-9][0-9][2468][048]))|((29)(\.)(02)(\.)([0-9][0-9][13579][26])))$");form_handler.field_types["cs_date"] =form_handler.field_types["cz_date"];form_handler.field_types["time"] =new RegExp("^(((0[0-9])|(1[0-9])|(2[0-3]))([:])([0-5][0-9]))$");event_handler.add(window, 'load', form_handler.init);position = {};position.getScrollX = function (event){if (typeof(window.pageYOffset) == 'number'){return window.pageXOffset;}else if (document.body && (document.body.scrollLeft || document.body.scrollTop)){return document.body.scrollLeft;}else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)){return document.documentElement.scrollLeft;}return 0;};position.getScrollY = function (event){if (typeof(window.pageYOffset) == 'number'){return window.pageYOffset;}else if (document.body && (document.body.scrollLeft || document.body.scrollTop)){return document.body.scrollTop;}else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)){return document.documentElement.scrollTop;}return 0;};position.getAvailableHeight = function (){if (typeof(window.innerHeight) == 'number'){return window.innerHeight;}else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)){return document.documentElement.clientHeight;}else if (document.body && (document.body.clientWidth || document.body.clientHeight)){return document.body.clientHeight;}};position.getAvailableWidth = function (){if (typeof(window.innerWidth) == 'number'){return window.innerWidth;}else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)){return document.documentElement.clientWidth;}else if (document.body && (document.body.clientWidth || document.body.clientHeight)){return document.body.clientWidth;}};position.getPositionX = function (event){var return_value = 0;if (event.pageX){return_value = event.pageX;}if (event.clientX){return_value = event.clientX + position.getScrollX(event);}return return_value;};position.getPositionY = function (event){var return_value = 0;if (event.pageY){return_value = event.pageY;}if (event.clientY){return_value = event.clientY + position.getScrollY(event);}return return_value;};position.getOffsetX = function (object){var tmp_left = 0;if (object.offsetParent){do{tmp_left += object.offsetLeft;} while (object = object.offsetParent);}return tmp_left;};position.getOffsetY = function (object){var tmp_top = 0;if (object.offsetParent){do{tmp_top += object.offsetTop;} while (object = object.offsetParent);}return tmp_top;};position.getOuterWidth = function (object, with_margin){var retval = 0;if (object.tagName){retval += object.offsetWidth;retval += (object.style.borderWidth) ? parseInt(object.style.borderWidth) : 0;if (with_margin){retval += (object.style.margin) ? parseInt(object.style.margin) : 0;}}return retval;};position.getOuterHeight = function (object, with_margin){var retval = 0;if (object.tagName){retval += object.offsetHeight;retval += (object.style.borderWidth) ? parseInt(object.style.borderWidth) : 0;if (with_margin){retval += (object.style.margin) ? parseInt(object.style.margin) : 0;}}return retval;};position.getMaxWidth = function (){    return Math.max(        Math.max(document.body.scrollWidth, document.documentElement.scrollWidth),        Math.max(document.body.offsetWidth, document.documentElement.offsetWidth),        Math.max(document.body.clientWidth, document.documentElement.clientWidth)    );};position.getMaxHeight = function (){    return Math.max(        Math.max(document.body.scrollHeight, document.documentElement.scrollHeight),        Math.max(document.body.offsetHeight, document.documentElement.offsetHeight),        Math.max(document.body.clientHeight, document.documentElement.clientHeight)    );};var confirm_wrapper = {};confirm_wrapper.message = "Opravdu chcete tuto akci provést?";confirm_wrapper.init = function (element){elements = document.getElementsByTagName('*');for (var i = 0; i < elements.length; i++){if (class_handler.has(elements[i], 'confirm')){if (elements[i].tagName.toLowerCase() == 'form'){event_handler.add(elements[i], 'submit', confirm_wrapper.ask);}else{event_handler.add(elements[i], 'click', confirm_wrapper.ask);}}}};confirm_wrapper.ask = function (event){if (!event.target){event = event_handler.fix(event);}var element = event.target;if (confirm(confirm_wrapper.message)){switch (event.type){case 'submit':element.submit();break;case 'click':break;}}else{event.preventDefault();}};event_handler.add(window, 'load', confirm_wrapper.init);var show_hide_wrapper = {};show_hide_wrapper.init = function (element){elements = document.getElementsByTagName('*');for (var i = 0; i < elements.length; i++){if (class_handler.like(elements[i], 'show_hide_')){event_handler.add(elements[i], 'click', show_hide_wrapper.click);}}};show_hide_wrapper.click = function (event){event = event_handler.fix(event);var element = event.target;var return_class = class_handler.like(element, 'show_hide_');while (return_class === false){element = element.parentNode;var return_class = class_handler.like(element, 'show_hide_');}var look_for = return_class.substring(10, return_class.length);var container = document.getElementById('show_hide_container_'+look_for);if (container){if (class_handler.has(container, 'hidden')){class_handler.remove(container, 'hidden');}else{class_handler.add(container, 'hidden');}}};event_handler.add(window, 'load', show_hide_wrapper.init);var normalize_time = {};normalize_time.init = function (){elements = document.getElementsByTagName('*');for (var i = 0; i < elements.length; i++){if (class_handler.has(elements[i], 'normalize_time')){event_handler.add(elements[i], 'blur', normalize_time.normalize);}}};normalize_time.normalize = function (event){event = event_handler.fix(event);if (typeof(event.target.value) == 'undefined'){return;}if (event.target.value.length <= 0){return;}var hrs = 0;var mins = 0;var time = event.target.value;var re = new RegExp('[^0-9]', 'g');var found = time.match(re);if (found != null){if (found.length > 1){for (var i = 1; i < found.length; i++){var tmp_re = new RegExp('\w');if (found[i].match(tmp_re)){var tmp_re = new RegExp(found[i]);}else{var tmp_re = new RegExp('\\'+found[i]);}time = time.replace(tmp_re, '');}}time = time.split(found[0]);hrs = parseInt(time[0]);mins = parseInt(time[1]);}else{hrs = parseInt(time);}if (hrs > 23){hrs = '00';}else if (hrs < 10){hrs = '0'+hrs;}if (mins > 59){mins = '00';}else if (mins < 10){mins = '0'+mins;}event.target.value = hrs+':'+mins;}event_handler.add(window, 'load', normalize_time.init);var window_handler = {};window_handler.open = function (file, window_id, width, height, modal, dependable, raised, scrollbars, resizable, toolbar, location, statusbar, menubar){if (width > 0 && height == 0){height = window.screen.availHeight - 50;}if (modal != 1){modal = 0;}if (dependable != 1){dependable = 0;}if (raised != 1){raised = 0;}if (scrollbars != 1 && scrollbars != 2){scrollbars = 0;}if (resizable != 1){resizable = 0;}if (toolbar != 1){toolbar = 0;}if (location != 1){location = 0;}if (statusbar != 1){statusbar = 0;}if (menubar != 1){menubar = 0;}try{var wnd = window.open(file, window_id, 'width='+width+'px,height='+height+'px,scrollbars='+scrollbars+',modal='+modal+',dependable='+dependable+',alwaysRaised='+raised+',resizable='+resizable+',toolbar='+toolbar+',location='+location+',statusbar='+statusbar+',menubar='+menubar);}catch(ex) {}if (wnd){var x = 5;var y = 0;var parent_window = wnd.opener;if (parent_window){if (document.all){x = (parent_window.screenLeft + 300);y = (parent_window.screenTop);}else{x = (parent_window.screenX + 300);y = (parent_window.screenY);}var is_first = parent_window.opener;if (typeof(is_first) !== 'object' || is_first == null){x = 15;}}wnd.moveTo(x, y);return wnd;}else{return false;}};window_handler.close_self = function (){window.close();};window_handler.close = function (element){element.close();};window_handler.reload = function (element){element.location.reload();};window_handler.forward_reload = function (parent_window, child){window_handler.reload(parent_window);window_handler.close(child);};window_handler.resize_to_content = function(){var isMSIE = (navigator.appName == "Microsoft Internet Explorer");var isOpera = (navigator.userAgent.indexOf("Opera") != -1);if (isOpera)return;if (isMSIE){var wrap = window.document.getElementById('wrapper');dx = (wrap.offsetWidth + 40);dy = (wrap.offsetHeight + 80);try{if (dy > (window.opener.screen.availHeight - 30)){dy = (window.opener.screen.availHeight - 30);}} catch (ex) {}if (dx < 320){dx = 320;}try { window.resizeTo(dx, dy); } catch (ex) {}}else{window.sizeToContent();if (window.innerWidth < 320){window.resizeBy((320 - window.innerWidth), 0);}if (window.innerHeight > (window.opener.screen.availHeight - 30)){window.resizeBy(0, -30);}window.scrollTo(0, 0);}};function xmlhttp_handler (){this.action = null;this.XML = null;this.commInterface = null;this.resetXMLHR();return true;}xmlhttp_handler.prototype.isAvailable = function (){if (this.commInterface == null){return false;}return true;};xmlhttp_handler.prototype.executeAction = function (){if (this.commInterface.readyState == 4){try{if (this.commInterface.status == 200){var not_set = truewhile (not_set){if (this.commInterface.requestXML != ''){this.responseText = this.commInterface.requestXML;not_set = false;}}if (this.action()){return true;}}else if (this.commInterface.status != 0){alert("There was an error while retrieving the URL: " + this.commInterface.statusText);}}catch (error){}}return true;}xmlhttp_handler.prototype.getText = function (){return this.commInterface.responseText;}xmlhttp_handler.prototype.getXML = function (){return this.commInterface.responseXML;}xmlhttp_handler.prototype.loadURL = function (type, url, params, asynchronous){if (asynchronous){asynchronous = true;}else{asynchronous = false;}if (type != 'GET' && type != 'POST'){return false;}else if (type == 'GET'){var first = true;for (var i = 0; i < params.length; i++){if (first){url += "?";}else{url += "&";}url += params[i][0]+'='+params[i][1];first = false;}var query = null;}if (type != '' && url != '' && query != ''){if (this.resetXMLHR()){this.commInterface.open(type, url, asynchronous);if (type == 'POST'){this.commInterface.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');var query = "";for (var i = 0; i < params.length; i++){if (i != 0){query += "&";}var reg_exp = new RegExp('[\+]');try{if (params[i][1].search(reg_exp) != -1){params[i][1] = params[i][1].replace(reg_exp, '%2B')}} catch (ex) {}query += params[i][0]+'='+params[i][1];}this.commInterface.send(query);}else{this.commInterface.send(query);}return true;}}else{return false;}}xmlhttp_handler.prototype.resetXMLHR = function(){var self = this;if (this.commInterface != null && this.commInterface.readyState != 0 && this.commInterface.readyState != 4){this.commInterface.abort();}try{this.commInterface = new XMLHttpRequest();}catch (error){try{this.commInterface = new ActiveXObject("Microsoft.XMLHTTP");}catch (error){return false;}}this.commInterface.onreadystatechange = function(){if (self.commInterface.readyState == 4){if (self.executeAction()){return true;}}};return true;}xmlhttp_handler.prototype.setAction = function (actionFunction){this.action = actionFunction;return true;}
