var easyresize = false;var Wiredness = {undo: function(){loading();this.sendRequest('action=undo', this.changeImage);},flickrAlbumPhotos: function(paramHash){paramHash.action = 'flickrAlbumPhotos';this.sendUpdate(paramHash.toQueryString(), 'browser');},flickrRecent : function(){Toolbox.init('Browser', 'Open Recent FlickR Image', '165', '10');this.sendUpdate('action=flickrRecent', 'browser');},rotateOverlay : function(){loading();this.sendRequest('action=rotateOverlay', this.rotateOverlayCallback);},flickrPhotosets : function(){Toolbox.init('Browser', 'My FlickR Photosets', '165', '10');this.sendUpdate('action=flickrPhotosets', 'browser');},flickrUserPhotos : function(){Toolbox.init('Browser', 'My FlickR Photos', '165', '10');this.sendUpdate('action=flickrUserPhotos', 'browser');},flickrUploadForm : function(){Toolbox.init('Browser', 'Upload to FlickR', '165', '10');this.sendUpdate('action=flickrUploadForm', 'browser');},picasaAlbums : function(){Toolbox.init('Browser', 'My Picasa Albums', '165', '10');this.sendUpdate('action=picasaAlbums', 'browser');},picasaUploadForm : function(){Toolbox.init('Browser', 'Upload to Picasa', '165', '10');this.sendUpdate('action=picasaUploadForm', 'browser');},glowfoto : function(){Toolbox.init('Browser', 'Host at Glowfoto.com', '165', '10');this.sendUpdate('action=glowfoto', 'browser');},imageshack : function(){Toolbox.init('Browser', 'Host at ImageShack.us', '165', '10');this.sendUpdate('action=imageshack', 'browser');},print : function(){var width = document['current'].width + 20;var height = document['current'].height + 20;window.open('print.php',null,'left=50,top=50,width=' + width + ',height=' + height + ',toolbar=0,resizable=0');},info : function(){Toolbox.init('Browser', 'Image Properties', '165', '10');this.sendUpdate('action=info', 'browser');},underexposed : function(){loading();this.sendRequest('action=underexposed', this.changeImage);},overexposed : function(){loading();this.sendRequest('action=overexposed', this.changeImage);},polaroid : function(){loading();this.sendRequest('action=polaroid', this.changeImage);},vignette : function(){loading();this.sendRequest('action=vignette', this.changeImage);},watercolor : function(){loading();this.sendRequest('action=watercolor', this.changeImage);},sharpen : function(){loading();this.sendRequest('action=sharpen', this.changeImage);},grayscale : function(){loading();this.sendRequest('action=grayscale', this.changeImage);},negate : function(){loading();this.sendRequest('action=negate', this.changeImage);},sepia : function(){loading();this.sendRequest('action=sepia', this.changeImage);},sketch : function(){loading();this.sendRequest('action=sketch', this.changeImage);},blur : function(){loading();this.sendRequest('action=blur', this.changeImage);},emboss : function(){loading();this.sendRequest('action=emboss', this.changeImage);},edgedetect : function(){loading();this.sendRequest('action=edgedetect', this.changeImage);},easyresize : function(){loading();easyresize = true;qstr = 'action=exactresize&imgwidth=' + escape(document['current'].width) + '&imgheight=' + escape(document['current'].height);this.sendRequest(qstr, this.changeImage);},exactresize : function(theForm){loading();easyresize = true;this.sendRequest($(theForm).serialize(), this.changeImage);},changeImage: function(transport){var str = transport.responseText;if(str.indexOf('ERROR:') != -1){Toolbox.init('Error', str, '20', '10');loadingOff();}else{document["current"].src = str;imgSrc = str;}},onFailure: function(){Toolbox.init('Error', 'An error occured processing this request. Please try again later!', '20', '10');loadingOff();},rotateOverlayCallback: function(transport) {var str = transport.responseText;Toolbox.init('ImageLayer', 'Image Overlay Layer', '170', '10');updatePageOverlay(str);},sendRequest: function(params, theFunction){new Ajax.Request('lib.php', {onSuccess: theFunction,onFailure: this.onFailure,parameters: params});},sendUpdate: function(params, updateDiv){new Ajax.Updater(updateDiv, 'lib.php', {onFailure: this.onFailure,parameters: params});}};function resizeImage(){var form = document.forms['easyresize'];var percent = form.percent.value;var curWidth = form.width.value;var curHeight = form.height.value;percent = percent / 100;document['current'].style.width = curWidth * percent;document['current'].style.height = curHeight * percent;calculateCenter();}function commonSizes(){var form = document.forms['easyresize'];var option = form.common.value;var curWidth = form.width.value;var curHeight = form.height.value;var direction = curWidth / curHeight;if(option == 320){if(direction >= 1.33){var factor = 320 / curWidth;document['current'].style.width = 320;document['current'].style.height = Math.round(curHeight * factor);}else{var factor = 240 / curHeight;document['current'].style.width = Math.round(curWidth * factor);document['current'].style.height = 240;}}else if(option == 640){if(direction >= 1.33){var factor = 640 / curWidth;document['current'].style.width = 640;document['current'].style.height = Math.round(curHeight * factor);}else{var factor = 480 / curHeight;document['current'].style.width = Math.round(curWidth * factor);document['current'].style.height = 480;}}else if(option == 800){if(direction >= 1.33){var factor = 800 / curWidth;document['current'].style.width = 800;document['current'].style.height = Math.round(curHeight * factor);}else{var factor = 600 / curHeight;document['current'].style.width = Math.round(curWidth * factor);document['current'].style.height = 600;}}else if(option == 1024){if(direction >= 1.33){var factor = 1024 / curWidth;document['current'].style.width = 1024;document['current'].style.height = Math.round(curHeight * factor);}else{var factor = 768 / curHeight;document['current'].style.width = Math.round(curWidth * factor);document['current'].style.height = 768;}}calculateCenter();}function resetImageSize(formName){if(easyresize == false){var form = document.forms[formName];document['current'].style.width = form.width.value;document['current'].style.height = form.height.value;document['current'].removeAttribute('style');document['current'].removeAttribute('width');document['current'].removeAttribute('height');calculateCenter();}}function updateCurrentSize(){var form = document.forms['easyresize'];form.width.value = document['current'].width;form.height.value = document['current'].height;}function constrainSize(type){var form = document.forms['exactresize'];var curWidth = form.width.value;var curHeight = form.height.value;var width = form.imgwidth.value;var height = form.imgheight.value;if(form.constrain.checked){if(type == 'w'){var factor = width / curWidth;form.imgheight.value = Math.round(curHeight * factor);}else if(type == 'h'){var factor = height / curHeight;form.imgwidth.value = Math.round(curWidth * factor);}}document['current'].style.width = form.imgwidth.value;document['current'].style.height = form.imgheight.value;calculateCenter();}function loading(){document.getElementById('loadingdiv').style.display = 'inline';document.getElementById('loadingdiv').style.width = document['current'].width;document.getElementById('loadingdiv').style.height = document['current'].height;document.getElementById('loadingimage').style.display = 'inline';document.getElementById('loadingimage').style.left = (document.getElementById('current').width / 2) - (document.getElementById('loadingimage').width / 2);document.getElementById('loadingimage').style.top = (document.getElementById('current').height / 2)- (document.getElementById('loadingimage').height / 2);}function loadingOff(){document.getElementById('loadingdiv').style.display = 'none';document.getElementById('loadingimage').style.display = 'none';}function browserLoading(){document.getElementById('browser').innerHTML = '<br/><img src="loading.gif"><br/><br/>';}function addLayer(image){CropImageManager.resetLayer(image.src);}function calculateCenter(){if(easyresize == true){document['current'].removeAttribute('style');document['current'].removeAttribute('width');document['current'].removeAttribute('height');easyresize = false;}document.getElementById('maindiv').style.width = document['current'].width;document.getElementById('maindiv').style.height = document['current'].height;document.getElementById('maindiv').style.left = (document.body.clientWidth / 2) - (document.getElementById('current').width / 2);loadingOff();}function xmlhttpPostNew(qstring, displayLoading, functionReturn) {if(displayLoading==true){loading();}var xmlHttpReq = false;var self = this;	if (window.XMLHttpRequest) {self.xmlHttpReq = new XMLHttpRequest();}	else if (window.ActiveXObject) {self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");}self.xmlHttpReq.open('POST', 'lib.php', true);self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');self.xmlHttpReq.onreadystatechange = function() {if (self.xmlHttpReq.readyState == 4) {functionReturn(self.xmlHttpReq.responseText);}};self.xmlHttpReq.send(qstring);}function xmlhttpPost(strURL, strType) {var qstring = getquerystring(strType);if(strType != 'info' && strType != 'flickrrecent' && strType != 'flickrsearch' && strType != 'flickrUserPhotos' && strType != 'flickrUserAlbums' && strType != 'imageshack' && strType != 'glowfoto' && strType != 'flickrupload' && strType != 'flickrAlbumPhotos' && strType != 'flickruploadform' && strType != 'clipart' && strType != 'picasaalbums' && strType != 'picasaupload' && strType != 'picasauploadform' ){loading();}var xmlHttpReq = false;var self = this;	if (window.XMLHttpRequest) {self.xmlHttpReq = new XMLHttpRequest();}	else if (window.ActiveXObject) {self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");}self.xmlHttpReq.open('POST', strURL, true);self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');self.xmlHttpReq.onreadystatechange = function() {if (self.xmlHttpReq.readyState == 4) {if(strType == 'text'){updatePageOverlay(self.xmlHttpReq.responseText);}else if(strType == 'info' || strType == 'flickrrecent' || strType == 'flickrsearch' || strType == 'flickrUserPhotos' || strType == 'flickrUserAlbums' || strType == 'flickrAlbumPhotos' || strType == 'imageshack' || strType == 'glowfoto' || strType == 'flickrupload' || strType == 'flickruploadform' || strType == 'picasauploadform' || strType == 'flickruploadform' || strType == 'clipart' || strType == 'picasaalbums' || strType == 'picasaupload'){updateBrowser(self.xmlHttpReq.responseText);}else if(strType == 'easyresize' || strType == 'exactresize'){resizeupdatepage(self.xmlHttpReq.responseText);}else{updatepage(self.xmlHttpReq.responseText);}}};self.xmlHttpReq.send(qstring);}function xmlGetRemoteImage(strURL, strType, strImageURL) {var qstring = 'action=filefromurl&url=' + escape(strImageURL);loading();var xmlHttpReq = false;var self = this;	if (window.XMLHttpRequest) {self.xmlHttpReq = new XMLHttpRequest();}	else if (window.ActiveXObject) {self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");}self.xmlHttpReq.open('POST', strURL, true);self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');self.xmlHttpReq.onreadystatechange = function() {if (self.xmlHttpReq.readyState == 4) {updatepage(self.xmlHttpReq.responseText);}};self.xmlHttpReq.send(qstring);}function updatepage(str){if(str.indexOf('ERROR:') != -1){Toolbox.init('Error', str, '20', '10');loadingOff();}else{document["current"].src = str;imgSrc = str;}}function resizeupdatepage(str){document["current"].src = str;imgSrc = str;}function updatePageOverlay(str){var overlayDiv = document.createElement('div');overlayDiv.setAttribute('id','overlaydiv');overlayDiv.setAttribute('name','overlaydiv');overlayDiv.style.position = 'absolute';overlayDiv.style.top = '0';overlayDiv.style.left = '0';overlayDiv.style.display = 'none';overlayDiv.innerHTML = '<img src="' + str + '" id="overlay" name="overlay" alt="Current Overlay" onload="addLayer(this);">';document.getElementById('base').appendChild(overlayDiv);document.forms['layer'].image.value = str;}function updateBrowser(str){document.getElementById('browser').innerHTML = str;}function createStringQuery(queryString, displayLoading, returnFunction){xmlhttpPostNew(queryString, displayLoading, returnFunction);}function createFormQuery(strType, theForm, displayLoading, returnFunction){var queryString;queryString = 'action=' + strType;for(i=0; i<theForm.elements.length; i++){if(theForm.elements[i].type != 'button' && theForm.elements[i].type != 'reset' && theForm.elements[i].type != 'submit'){if(theForm.elements[i].type != 'checkbox' && theForm.elements[i].type != 'radio'){queryString += '&' + theForm.elements[i].name + '=' + theForm.elements[i].value;}else{if(theForm.elements[i].checked){var checked = 1;}else{var checked = 0;}queryString += '&' + theForm.elements[i].name + '=' + checked;}}}xmlhttpPostNew(queryString, displayLoading, returnFunction);}function getquerystring(strType) {if(strType=='picasaupload'){var form = document.forms['picasaupload'];var album_id = form.album_id.value;qstr = 'action=picasaupload&album_id=' + escape(album_id);return qstr;}else if(strType=='layer'){var form = document.forms['layer'];var left = form.newx.value;var top = form.newy.value;var width = form.width.value;var height = form.height.value;var image = form.image.value;var type = form.type.value;var opacity = form.opacity.value;if(type == 'text'){var form = document.forms['text'];var text = form.text.value;var fontsize = form.fontsize.value;var font = form.font.value;var rgb = form.rgb.value;var fontshadow = form.fontshadow.value;var align = form.align.value;qstr = 'action=layer&opacity=' + escape(opacity) + '&image=' + escape(image) + '&left=' + left + '&top=' + top + '&width=' + width + '&height=' + height + '&type=' + type + '&text=' + escape(text) + '&font=' + escape(font) + '&rgb=' + escape(rgb) + '&fontshadow=' + escape(fontshadow) + '&align=' + escape(align);}else{qstr = 'action=layer&opacity=' + escape(opacity) + '&image=' + escape(image) + '&left=' + left + '&top=' + top + '&width=' + width + '&height=' + height + '&type=' + type;}document.getElementById('overlaydiv').innerHTML = '';CropImageManager.removeCropper();return qstr;}else if(strType=='flickrsearch'){var form = document.forms['flickrsearch'];var search = form.search.value;var page = form.page.value;qstr = 'action=flickrsearch&search=' + escape(search) + '&page=' + escape(page);return qstr;}else if(strType=='flickrupload'){var form = document.forms['flickrupload'];var title = form.title.value;var description = form.description.value;var tags = form.tags.value;var photoset = form.photoset.value;qstr = 'action=flickrupload&title=' + escape(title) + '&description=' + escape(description) + '&tags=' + escape(tags) + '&photoset=' + escape(photoset);return qstr;}else if(strType=='flickrAlbumPhotos'){var form = document.forms['flickruseralbum'];var photoset_id = form.photoset_id.value;qstr = 'action=flickrAlbumPhotos&photoset_id=' + escape(photoset_id);return qstr;}else{return 'action=' + strType;}}var Zoom = {windowWidth: null,windowHeight: null,zoomAmount: null,outlineWidth: null,outlineHeight: null,newWidth: null,newHeight: null,startHTML: null,startZoom : function (){windowWidth = 200;windowHeight = 200;zoomAmount = 10;newWidth = document.getElementById('current').width * zoomAmount;newHeight = document.getElementById('current').height * zoomAmount;outlineWidth = windowWidth / zoomAmount;outlineHeight = windowHeight / zoomAmount;document.getElementById('zoomOutline').style.width = outlineWidth;document.getElementById('zoomOutline').style.height = outlineHeight;document.getElementById('zoomBox').style.width = windowWidth;document.getElementById('zoomBox').style.height = windowHeight;startHTML = document.getElementById('maindiv').innerHTML;document.getElementById('maindiv').innerHTML = '<img src="' + imgSrc + '" id="current" name="current" alt="Current Image" style="padding:0;margin:0;border:0;" onmouseover="Zoom.zoomOn(event);" onmousemove="Zoom.zoomMove(event);" onmouseout="Zoom.zoomOff();">';},stopZoom : function (){document.getElementById('maindiv').innerHTML = startHTML;document.getElementById('zoomOutline').style.display = 'none';},zoomOutlineMove : function (evt){var currentZoomTop = evt.clientY - (1 + (outlineWidth / 2));var currentZoomLeft = evt.clientX - (1 + (outlineHeight / 2));document.getElementById('zoomOutline').style.display = 'inline';if (currentZoomTop < document.getElementById('maindiv').offsetTop){currentZoomTop = document.getElementById('maindiv').offsetTop;}else if((currentZoomTop + outlineHeight) > (document.getElementById('maindiv').offsetTop + document.getElementById('current').height)){currentZoomTop = (document.getElementById('maindiv').offsetTop + document.getElementById('current').height) - outlineHeight;}if(currentZoomLeft < document.getElementById('maindiv').offsetLeft){currentZoomLeft = document.getElementById('maindiv').offsetLeft;}else if((currentZoomLeft + outlineWidth) > (document.getElementById('maindiv').offsetLeft + document.getElementById('current').width)){currentZoomLeft = (document.getElementById('maindiv').offsetLeft + document.getElementById('current').width) - outlineHeight;}document.getElementById('zoomOutline').style.top = currentZoomTop;document.getElementById('zoomOutline').style.left = currentZoomLeft;},zoomMove : function (evt){Zoom.zoomOutlineMove(evt);var currentX = evt.clientX - document.getElementById('maindiv').offsetLeft;var currentY = evt.clientY - document.getElementById('maindiv').offsetTop;var offsetLeft = (currentX * zoomAmount) - (windowWidth / 2);var offsetTop = (currentY * zoomAmount) - (windowWidth / 2);if(offsetLeft < 0){offsetLeft = 0;}else if(offsetLeft > (newWidth - windowWidth)){offsetLeft = (newWidth - windowWidth);}if(offsetTop < 0){offsetTop = 0;}else if(offsetTop > (newHeight - windowHeight)){offsetTop = (newHeight - windowHeight);}var offsetRight = newWidth - (offsetLeft + windowWidth);var offsetBottom = newHeight - (offsetTop + windowHeight);document.getElementById('zoomBox').innerHTML = '<img src="' + imgSrc + '" id="zoomImg" name="zoomImg" alt="Zoomed Image" style="padding:0;margin:-'+ offsetTop+'px -'+ offsetRight+'px -'+ offsetBottom+'px -'+ offsetLeft+'px;border:0;width:'+ newWidth +'px;height:'+ newHeight +'px;overflow:hidden;">';},zoomOff : function (){document.body.style.cursor = 'default';},zoomOn : function (evt){document.body.style.cursor = 'crosshair';Zoom.zoomMove(evt);},windowSize : function (button, evt){if(button.id == 'windowLarger'){windowWidth += 20;windowHeight += 20;}else if(button.id == 'windowSmaller'){windowWidth -= 20;windowHeight -= 20;}else if(button.id == 'zoomLarger'){zoomAmount += 1;zoomAmount += 1;}else if(button.id == 'zoomSmaller'){zoomAmount -= 1;zoomAmount -= 1;}newWidth = document.getElementById('current').width * zoomAmount;newHeight = document.getElementById('current').height * zoomAmount;outlineWidth = windowWidth / zoomAmount;outlineHeight = windowHeight / zoomAmount;document.getElementById('zoomOutline').style.width = outlineWidth;document.getElementById('zoomOutline').style.height = outlineHeight;document.getElementById('zoomBox').style.width = windowWidth;document.getElementById('zoomBox').style.height = windowHeight;Zoom.zoomMove(evt);}};var Toolbox = {init : function(type, title, top, left){var html;var newDivId = 'menu'+type;var newDivHandle = 'handle'+type;var newDivRoot = 'root'+type;Toolbox.existenceCheck (newDivId);if(type == 'OpenUrl' || type == 'OpenFile'){Toolbox.existenceCheck ('menuOpenFile');Toolbox.existenceCheck ('menuOpenUrl');}else if(type == 'Text' || type == 'Shape' || type == 'Crop' || type == 'Zoom'){Toolbox.existenceCheck ('menuShape');Toolbox.existenceCheck ('menuCrop');Toolbox.existenceCheck ('menuZoom');Toolbox.existenceCheck ('menuText');Toolbox.existenceCheck ('menuLayer');}var newDiv = document.createElement('div');newDiv.setAttribute('id',newDivId);if(type == 'Error'){html = '<div id="'+newDivRoot+'" class="boxMainError" style="top:' + top + 'px;left:' + left + 'px">';html += '<div id="'+newDivHandle+'" class="boxTitleError" onmouseover="document.body.style.cursor = \'move\';" onmouseout="document.body.style.cursor = \'default\';">';html += '<span id="dpTitleText">An Error Occurred in the Application!</span>';}else{html = '<div id="'+newDivRoot+'" class="boxMain" style="top:' + top + 'px;left:' + left + 'px">';html += '<div id="'+newDivHandle+'" class="boxTitle" onmouseover="document.body.style.cursor = \'move\';" onmouseout="document.body.style.cursor = \'default\';">';html += '<span id="dpTitleText">&nbsp;' + title + '&nbsp;&nbsp;</span>';}if(type == 'Crop' || type == 'Layer' || type == 'Shape' || type == 'ImageLayer'){html += '<a href="#" onclick="document.body.style.cursor = \'default\';CropImageManager.removeCropper();Toolbox.destroyBox (\'' + newDivId + '\');return false;"><img src="imageicons/close.png" border="0"></a></div>';}else if(type == 'Zoom'){html += '<a href="#" onclick="document.body.style.cursor = \'default\';Zoom.stopZoom();Toolbox.destroyBox (\'' + newDivId + '\');return false;"><img src="imageicons/close.png" border="0"></a></div>';}else if(type == 'EasyResize'){html += '<a href="#" onclick="document.body.style.cursor = \'default\';fdSliderController._deconstruct();resetImageSize(\'easyresize\');Toolbox.destroyBox (\'' + newDivId + '\');return false;"><img src="imageicons/close.png" border="0"></a></div>';}else if(type == 'ExactResize'){html += '<a href="#" onclick="document.body.style.cursor = \'default\';fdSliderController._deconstruct();resetImageSize(\'exactresize\');Toolbox.destroyBox (\'' + newDivId + '\');return false;"><img src="imageicons/close.png" border="0"></a></div>';}else{html += '<a href="#" onclick="document.body.style.cursor = \'default\';Toolbox.destroyBox (\'' + newDivId + '\'); fdSliderController._deconstruct(); return false;"><img src="imageicons/close.png" border="0"></a></div>';}if(type == 'OpenUrl'){html += '<table>';html += '<tr><td>Select an image by entering its URL.<br>PNG, JPEG and BMP Files Only</td></tr>';html += '<tr><td><form name="url">';html += '<form name="url"><input type="text" name="url" size="30"><br/>';html += '<input type="button" name="submit" onclick="createFormQuery(\'filefromurl\', this.form, true, updatepage);Toolbox.destroyBox (\'' + newDivId + '\');" value="Select File >>">';html += '</form></td></tr></table>';}else if(type == 'Error'){html += '<table>';html += '<tr><td><center>' + title + '<br><br><input type="button" value="Continue" onclick="Toolbox.destroyBox(\'' + newDivId + '\');"></center></td></tr></table>';}else if(type == 'OpenFile'){html += '<table>';html += '<tr><td>Select an image to upload.<br>PNG, GIF, JPEG and BMP Files Only<br>5MB Maximum Filesize</font></td></tr>';html += '<tr><td><form action="upload.php" method="post" enctype="multipart/form-data" name="upload" onsubmit="return AjaxUpload.submit(this, {\'onStart\' : startCallback, \'onComplete\' : completeCallback})"><input type="hidden" name="action" value="upload"><input type="file" name="file" size="20"><br/><input type="submit" name="submit" value="Upload File >>">';html += '</form></td></tr></table>';}else if(type == 'EasyResize'){html += '<table><tr><td>To resize the image you can either: <br/> - Use the slider below to dynamically resize the image.<br/> - Select a common photo size.</td></tr>';html += '<tr><td><form name="easyresize" id="easyresize"><table><tr><td>Slider Resize:</td><td>';html += '<input name="action" type="hidden" value="exactresize"/>';html += '<input name="percent" id="slider" type="text" title="1 - 200" class="fd_range_1_200 fd_callback_resizeImage fd_classname_extraclass fd_tween" value="100" size="3"/>';html += '<input name="width" type="hidden" value="' + document['current'].width + '"/>';html += '<input name="height" type="hidden" value="' + document['current'].height + '"/>';html += '</td></tr>';html += '<tr><td></td><td><table width="100%" cellpadding="0" cellspacing="0"><tr><td align="left"><img src="imageicons/delete.png"></td><td align="right"><img src="imageicons/add.png"></td></tr></table></td></tr>';html += '<tr><td colspan=2><br/></td>';html += '<tr><td>Common Sizes:</td><td><select name="common" onchange="commonSizes();">';html += '<option></option>';html += '<option value="320">Extra Small (320 x 240)</option>';html += '<option value="640">Small (640 x 480)</option>';html += '<option value="800">Medium (800 x 600)</option>';html += '<option value="1024">Large (1024 x 768)</option>';html += '</select></td></tr>';html += '<tr><td colspan="2" align="center"><input type="button" id="easyresize" value="Adjust Size" onclick="Wiredness.easyresize();Toolbox.init(\'EasyResize\', \'Easy Resize\', \'300\', \'10\');"/></td></tr>';html += '</table></form>';}else if(type == 'ExactResize'){html += '<table><tr><td>Specify the exact image size in pixels.</td></tr>';html += '<tr><td><form name="exactresize">';html += '<input name="action" type="hidden" value="exactresize"/>';html += '<input name="width" type="hidden" value="' + document['current'].width + '"/>';html += '<input name="height" type="hidden" value="' + document['current'].height + '"/>';html += 'Constrain Size Ratio?<input type="checkbox" name="constrain" checked><br/>';html += '<input type="text" name="imgwidth" size="2" onkeyup="constrainSize(\'w\');">px Width<br/>';html += '<input type="text" name="imgheight" size="2" onkeyup="constrainSize(\'h\');">px Height<br/>';html += '<input type="button" name="submit" onclick="Wiredness.exactresize(this.form);" value="Resize Image >>">';html += '</form></td></tr></table>';}else if(type == 'Rotate'){html += '<table><tr><td>Select a direction to rotate the image.</td></tr>';html += '<tr><td><form name="rotate">';html += '<table><tr><td>Degree:</td><td>';html += '<select name="degree">';html += '<option value="270">Left</option>';html += '<option value="180">Flip 180 Degrees</option>';html += '<option value="90">Right</option>';html += '</select></td></tr></table>';html += '<input type="button" name="submit" onclick="createFormQuery(\'rotate\', this.form, true, updatepage);" value="Rotate Image >>">';html += '</form></td></tr></table>';}else if(type == 'Crop'){html += '<table><tr><td>1 - Drag out an area to crop within the image.<br/>2 - Click the crop button.</td></tr>';html += '<tr><td><form name="crop" id="crop"><input type="hidden" name="newx" id="newx"/><input type="hidden" name="newy" id="newy" />';html += '<table><tr><td>Width:</td><td><input type="text" name="width" id="width" size="2" value="0" onchange="CropImageManager.updateSize(document.forms[\'crop\']);"/></td></tr>';html += '<tr><td>Height</td><td><input type="text" name="height" id="height" size="2" value="0" onchange="CropImageManager.updateSize(document.forms[\'crop\']);"/></td></tr></table>';html += '<input type="button" id="resetCropper" value="Reset" onclick="CropImageManager.resetCropper();"/>&nbsp;&nbsp;&nbsp;<input type="button" id="Crop" value="Crop" onclick="createFormQuery(\'crop\', this.form, true, updatepage);Toolbox.destroyBox (\'' + newDivId + '\');CropImageManager.removeCropper();"/></form></td></tr></table>';}else if(type == 'Email'){html += '<form name="email" id="email"><table><tr><td>Email To:</td><td><input type="text" size="27" name="email" id="email" />&nbsp;</td></tr>';html += '<tr><td valign="top">Message:</td><td><textarea name="message" id="message" cols="20" rows="6"></textarea></td></tr>';html += '<tr><td colspan="2" align="center"><input type="button" id="sendEmail" value="Send" onclick="createFormQuery(\'email\', this.form, true, updatepage);"/></td></tr>';html += '</table></form>';}else if(type == 'Zoom'){html += '<div id="zoomBox" name="zoomBox" style="overflow:hidden"></div>';}else if(type == 'Flip'){html += '<form name="flip" id="flip"><table><tr><td>Flip Direction:</td><td>';html += '<select name="direction">';html += '<option value="horizontal">Horizontal</option>';html += '<option value="vertical">Vertical</option>';html += '<option value="both">Both</option>';html += '</select></td></tr>';html += '<tr><td colspan="2" align="center"><input type="button" id="flip" value="Flip" onclick="createFormQuery(\'flip\', this.form, true, updatepage);"/></td></tr>';html += '</table></form>';}else if(type == 'Brightness'){html += '<form name="brightness" id="brightness"><table><tr><td>Brightness:</td><td>';html += '<input name="amount" id="slider" type="text" title="0 - 200" class="fd_range_0_200 fd_classname_extraclass fd_tween" value="100" size="3" />';html += '</td></tr>';html += '<tr><td></td><td><table width="100%" cellpadding="0" cellspacing="0"><tr><td align="left"><img src="imageicons/lightbulb_off.png"></td><td align="right"><img src="imageicons/brightness.png"></td></tr></table></td></tr>';html += '<tr><td colspan="2" align="center"><input type="button" id="bright" value="Adjust Brightness" onclick="createFormQuery(\'brightness\', this.form, true, updatepage);"/></td></tr>';html += '</table></form>';}else if(type == 'Contrast'){html += '<form name="contrast" id="contrast"><table><tr><td>Contrast:</td><td>';html += '<input name="amount" id="slider" type="text" title="0 - 200" class="fd_range_0_200 fd_classname_extraclass fd_tween" value="100" size="3" />';html += '</td></tr>';html += '<tr><td></td><td><table width="100%" cellpadding="0" cellspacing="0"><tr><td align="left"><img src="imageicons/contrast_low.png"></td><td align="right"><img src="imageicons/contrast_high.png"></td></tr></table></td></tr>';html += '<tr><td colspan="2" align="center"><input type="button" id="contrast" value="Adjust Contrast" onclick="createFormQuery(\'contrast\', this.form, true, updatepage);"/></td></tr>';html += '</table></form>';}else if(type == 'Colour'){html += '<form name="colour" id="colour"><table>';html += '<tr><td align="center">';html += '<div style="width:103px;height:20px;border:1px solid #7F9DB9;">';html += '<input type="text" maxlength="7" style="width:80px;font-size:12px;height:17px;float:left;border:0px;padding-top:1px" name="colourvalue" size="10">';html += '<img style="float:right;padding-right:0px;padding-top:1px" src="images/select_arrow.gif" onmouseover="this.src=\'images/select_arrow_over.gif\'" onmouseout="this.src=\'images/select_arrow.gif\'" onclick="showColorPicker(this,document.forms[0].colourvalue)">';html += '</div>';html += '</td></tr>';html += '<tr><td align="center"><input type="button" id="colour" value="Apply Colourization" onclick="createFormQuery(\'colourize\', this.form, true, updatepage);"/></td></tr>';html += '</table></form>';}else if(type == 'Browser'){html += '<div name="browser" id="browser"><br/><img src="loading.gif" align="center"><br/><br/></div>';}else if(type == 'ImageOverlay'){html += '<table>';html += '<tr><td>Select an image to upload.<br>PNG, GIF, JPEG and BMP Files Only<br>1MB Maximum Filesize</font></td></tr>';html += '<tr><td><form action="upload.php" method="post" enctype="multipart/form-data" name="upload" onsubmit="return AjaxUpload.submit(this, {\'onStart\' : startCallback, \'onComplete\' : completeOverlayCallback})"><input type="hidden" name="action" value="overlay"><input type="file" name="file" size="20"><br/><input type="submit" name="submit" onclick="document.body.style.cursor = \'default\';" value="Overlay Image">';html += '</form></td></tr></table>';}else if(type == 'Text'){html += '<table><tr><td>Add text to the image.</td></tr>';html += '<tr><td><form name="text">';html += '<table><tr><td>Text:</td><td><textarea name="text" rows="3" cols="30"></textarea></td>';html += '</tr><tr><td>Text Align:</td>';html += '<td><select name="align">';html += '<option value="Left">Left</option>';html += '<option value="Center">Center</option>';html += '<option value="Right">Right</option>';html += '</select></td></tr><tr>';html += '</tr><tr><td>Font:</td>';html += '<td><select name="font">';html += '<option value="verdana.ttf">Verdana</option>';html += '<option value="impact.ttf">Impact</option>';html += '<option value="times.ttf">Times New Roman</option>';html += '<option value="ariblk.ttf">Arial Black</option>';html += '<option value="georgia.ttf">Georgia</option>';html += '<option value="comic.ttf">Comic Sans Serif</option>';html += '<option value="debussy.ttf" selected>Debussy</option>';html += '</select></td></tr><tr>';html += '<td>Font Size:</td><td>';html += '<select name="fontsize">';html += '<option value="8">8</option>';html += '<option value="9">9</option>';html += '<option value="10">10</option>';html += '<option value="11">11</option>';html += '<option value="12">12</option>';html += '<option selected value="13">13</option>';html += '<option value="14">14</option>';html += '<option value="16">16</option>';html += '<option value="18">18</option>';html += '<option value="20">20</option>';html += '<option value="22">22</option>';html += '<option value="24">24</option>';html += '<option value="26">26</option>';html += '<option value="28">28</option>';html += '<option value="36">36</option>';html += '<option value="48">48</option>';html += '</select>px</td></tr><tr><td>Font Colour:</td><td>';html += '<div style="width:103px;height:20px;border:1px solid #7F9DB9;">';html += '<input type="text" maxlength="7" style="width:80px;font-size:12px;height:17px;float:left;border:0px;padding-top:1px" name="rgb" size="10" value="#FFFFFF">';html += '<img style="float:right;padding-right:0px;padding-top:1px" src="images/select_arrow.gif" onmouseover="this.src=\'images/select_arrow_over.gif\'" onmouseout="this.src=\'images/select_arrow.gif\'" onclick="showColorPicker(this,document.forms[0].rgb)">';html += '</div></td></tr><tr><td>Font Shadow:</td><td>';html += '<select name="fontshadow">';html += '<option value="Dark">Dark</option>';html += '<option value="Light">Light</option>';html += '<option value="None">None</option>';html += '</select>';html += '</td></tr></table><center><input type="button" name="submit" onclick="createFormQuery(\'text\', this.form, true, updatePageOverlay);document.body.style.cursor = \'default\';Toolbox.init(\'Layer\', \'Layer\', \'170\', \'10\');" value="Apply Text"></center></form></td></tr></table>';}else if(type == 'Layer'){var form = document.forms['text'];var text = form.text.value;var font = form.font.value;var fontsize = form.fontsize.value;var rgb = form.rgb.value;var fontshadow = form.fontshadow.value;var align = form.align.value;Toolbox.destroyBox('menuText');html += '<table><tr><td>Add text to the image.</td></tr>';html += '<tr><td><form name="text">';html += '<table><tr><td>Text:</td><td><textarea name="text" rows="3" cols="30">' + text + '</textarea></td>';html += '</tr><tr><td>Text Align:</td>';html += '<td><select name="align">';html += '<option value="Left"';if(align=='Left'){ html += ' SELECTED'; }html += '>Left</option>';html += '<option value="Center"';if(align=='Center'){ html += ' SELECTED'; }html += '>Center</option>';html += '<option value="Right"';if(align=='Right'){ html += ' SELECTED'; }html += '>Right</option>';html += '</select></td></tr><tr><td>Font:</td>';html += '<td><select name="font">';html += '<option value="verdana.ttf"';if(font=='verdana.ttf'){ html += ' SELECTED'; }html += '>Verdana</option>';html += '<option value="impact.ttf"';if(font=='impact.ttf'){ html += ' SELECTED'; }html += '>Impact</option>';html += '<option value="times.ttf"';if(font=='times.ttf'){ html += ' SELECTED'; }html += '>Times New Roman</option>';html += '<option value="ariblk.ttf"';if(font=='ariblk.ttf'){ html += ' SELECTED'; }html += '>Arial Black</option>';html += '<option value="georgia.ttf"';if(font=='georgia.ttf'){ html += ' SELECTED'; }html += '>Georgia</option>';html += '<option value="comic.ttf"';if(font=='comic.ttf'){ html += ' SELECTED'; }html += '>Comic Sans Serif</option>';html += '<option value="debussy.ttf"';if(font=='debussy.ttf'){ html += ' SELECTED'; }html += '>Debussy</option>';html += '</select></td></tr><tr>';html += '<td>Font Size</td><td>';html += '<select name="fontsize">';html += '<option value="8"';if(fontsize==8){ html += ' SELECTED'; }html += '>8</option>';html += '<option value="9"';if(fontsize==9){ html += ' SELECTED'; }html += '>9</option>';html += '<option value="10"';if(fontsize==10){ html += ' SELECTED'; }html += '>10</option>';html += '<option value="11"';if(fontsize==11){ html += ' SELECTED'; }html += '>11</option>';html += '<option value="12"';if(fontsize==12){ html += ' SELECTED'; }html += '>12</option>';html += '<option value="13"';if(fontsize==13){ html += ' SELECTED'; }html += '>13</option>';html += '<option value="14"';if(fontsize==14){ html += ' SELECTED'; }html += '>14</option>';html += '<option value="16"';if(fontsize==16){ html += ' SELECTED'; }html += '>16</option>';html += '<option value="18"';if(fontsize==18){ html += ' SELECTED'; }html += '>18</option>';html += '<option value="20"';if(fontsize==20){ html += ' SELECTED'; }html += '>20</option>';html += '<option value="22"';if(fontsize==22){ html += ' SELECTED'; }html += '>22</option>';html += '<option value="24"';if(fontsize==24){ html += ' SELECTED'; }html += '>24</option>';html += '<option value="26"';if(fontsize==26){ html += ' SELECTED'; }html += '>26</option>';html += '<option value="28"';if(fontsize==28){ html += ' SELECTED'; }html += '>28</option>';html += '<option value="36"';if(fontsize==36){ html += ' SELECTED'; }html += '>36</option>';html += '<option value="48"';if(fontsize==48){ html += ' SELECTED'; }html += '>48</option>';html += '</select>px</td></tr><tr><td>Font Colour:</td><td>';html += '<div id="colorlayer" name="colorlayer" style="width:103px;height:20px;border:1px solid #7F9DB9;">';html += '<input type="text" maxlength="7" style="width:80px;font-size:12px;height:17px;float:left;border:0px;padding-top:1px" name="rgb" id="rgb" size="10" value="' + rgb + '">';html += '<img style="float:right;padding-right:0px;padding-top:1px" src="images/select_arrow.gif" onmouseover="this.src=\'images/select_arrow_over.gif\'" onmouseout="this.src=\'images/select_arrow.gif\'" onclick="showColorPicker(this,document.forms[0].rgb)">';html += '</div></td></tr><tr><td>Font Shadow:</td><td>';html += '<select name="fontshadow">';html += '<option value="Dark"';if(fontshadow=='Dark'){ html += ' SELECTED'; }html += '>Dark</option>';html += '<option value="Light"';if(fontshadow=='Light'){ html += ' SELECTED'; }html += '>Light</option>';html += '<option value="None"';if(fontshadow=='None'){ html += ' SELECTED'; }html += '>None</option>';html += '</select>';html += '</td></tr></table><center><input type="button" name="submit" onclick="JavaScript:xmlhttpPost(\'lib.php\', \'text\');CropImageManager.removeCropper();" value="Modify Text"></center></form></td></tr></table>';html += '<table><tr><td valign="bottom">1 - Position the text within the image.<br/>2 - Click the merge text button.</td></tr>';html += '<tr><td><form name="layer">';html += 'Opacity: <select id="opacity" name="opacity">';html += '<option value="100" SELECTED>100%</option>';html += '<option value="95">95%</option>';html += '<option value="90">90%</option>';html += '<option value="85">85%</option>';html += '<option value="80">80%</option>';html += '<option value="75">75%</option>';html += '<option value="70">70%</option>';html += '<option value="65">65%</option>';html += '<option value="60">60%</option>';html += '<option value="55">55%</option>';html += '<option value="50">50%</option>';html += '<option value="45">45%</option>';html += '<option value="40">40%</option>';html += '<option value="35">35%</option>';html += '<option value="30">30%</option>';html += '<option value="25">25%</option>';html += '<option value="20">20%</option>';html += '<option value="15">15%</option>';html += '<option value="10">10%</option>';html += '<option value="5">5%</option>';html += '</select><br/>';html += '<input type="hidden" name="image" value=""><input type="hidden" name="type" value="text">';html += '<input type="hidden" name="newx" id="newx"/><input type="hidden" name="newy" id="newy" /><input type="hidden" name="width" id="width" /><input type="hidden" name="height" id="height" />';html += '<input type="button" name="submit" onclick="JavaScript:xmlhttpPost(\'lib.php\', \'layer\');Toolbox.destroyBox (\'' + newDivId + '\');" value="Merge Text"> <input type="button" name="submit" onclick="Toolbox.destroyBox (\'' + newDivId + '\');CropImageManager.removeCropper();" value="Cancel"></form></td></tr></table>';}else if(type == 'ImageLayer'){html += '<table><tr><td valign="bottom">1 - Position the overlay image within the image.<br/>2 - Click the merge image button.</td></tr>';html += '<tr><td><form name="layer">';html += 'Opacity: <select id="opacity" name="opacity">';html += '<option value="100" SELECTED>100%</option>';html += '<option value="95">95%</option>';html += '<option value="90">90%</option>';html += '<option value="85">85%</option>';html += '<option value="80">80%</option>';html += '<option value="75">75%</option>';html += '<option value="70">70%</option>';html += '<option value="65">65%</option>';html += '<option value="60">60%</option>';html += '<option value="55">55%</option>';html += '<option value="50">50%</option>';html += '<option value="45">45%</option>';html += '<option value="40">40%</option>';html += '<option value="35">35%</option>';html += '<option value="30">30%</option>';html += '<option value="25">25%</option>';html += '<option value="20">20%</option>';html += '<option value="15">15%</option>';html += '<option value="10">10%</option>';html += '<option value="5">5%</option>';html += '</select><br/>';html += '<input type="hidden" name="image" value=""><input type="hidden" name="type" value="image">';html += '<input type="hidden" name="newx" id="newx"/><input type="hidden" name="newy" id="newy" /><input type="hidden" name="width" id="width" /><input type="hidden" name="height" id="height" />';html += '<input type="button" name="submit" onclick="JavaScript:xmlhttpPost(\'lib.php\', \'layer\');Toolbox.destroyBox (\'' + newDivId + '\');" value="Merge Images"> <input type="button" name="cancel" onclick="Toolbox.destroyBox (\'' + newDivId + '\');CropImageManager.removeCropper();" value="Cancel"></form></td></tr></table>';}else if(type == 'Shape'){html += '<table><tr><td>1 - Drag out an area to create the shape within the image.<br/>2 - Click the create button.</td></tr>';html += '<tr><td><form name="shape" id="shape"><input type="hidden" name="newx" id="newx"/><input type="hidden" name="newy" id="newy" />';html += '<table><tr><td>Shape:</td><td>';html += '<select name="shape">';html += '<option value="rect">Rectangle</option>';html += '<option value="ellipse">Ellipse</option>';html += '</select></td></tr>';html += '</tr><tr><td>Border Colour:</td><td>';html += '<div style="width:103px;height:20px;border:1px solid #7F9DB9;">';html += '<input type="text" maxlength="7" style="width:80px;font-size:12px;height:17px;float:left;border:0px;padding-top:1px" name="borderrgb" size="10" value="#FFFFFF">';html += '<img style="float:right;padding-right:0px;padding-top:1px" src="images/select_arrow.gif" onmouseover="this.src=\'images/select_arrow_over.gif\'" onmouseout="this.src=\'images/select_arrow.gif\'" onclick="showColorPicker(this,document.forms[0].borderrgb)">';html += '</div></td></tr>';html += '<tr><td>Filled?:</td><td><input type="checkbox" name="filled" id="filled" value="y"/></td></tr>';html += '</tr><tr><td>Fill Colour:</td><td>';html += '<div style="width:103px;height:20px;border:1px solid #7F9DB9;">';html += '<input type="text" maxlength="7" style="width:80px;font-size:12px;height:17px;float:left;border:0px;padding-top:1px" name="fillrgb" size="10" value="#FFFFFF">';html += '<img style="float:right;padding-right:0px;padding-top:1px" src="images/select_arrow.gif" onmouseover="this.src=\'images/select_arrow_over.gif\'" onmouseout="this.src=\'images/select_arrow.gif\'" onclick="showColorPicker(this,document.forms[0].fillrgb)">';html += '</div></td></tr>';html += '<tr><td>Width:</td><td><input type="text" name="width" id="width" size="2" value="0" onchange="CropImageManager.updateSize(document.forms[\'shape\']);"/></td></tr>';html += '<tr><td>Height:</td><td><input type="text" name="height" id="height" size="2" value="0" onchange="CropImageManager.updateSize(document.forms[\'shape\']);"/></td></tr></table>';html += '<input type="button" id="resetCropper" value="Reset" onclick="CropImageManager.resetCropper();"/>&nbsp;&nbsp;&nbsp;<input type="button" id="create" value="Create" onclick="createFormQuery(\'shape\', this.form, true, updatepage);Toolbox.destroyBox (\'' + newDivId + '\');CropImageManager.removeCropper();"/></form></td></tr></table>';}else if(type == 'RedEye'){html += '<table><tr><td><i><b>EXPERIMENTAL FUNCTION</b></i><br/>1 - Drag out a box around the eye.<br/>2 - Click the adjust image button.<br/>3 - Repeat for each eye!</td></tr>';html += '<tr><td><form name="redeye" id="redeye"><input type="hidden" name="newx" id="newx" value="0"/><input type="hidden" name="newy" id="newy" value="0"/>';html += '<input type="hidden" name="width" id="width" value="0"/>';html += '<input type="hidden" name="height" id="height" value="0"/></table>';html += '<input type="button" id="adjust" value="Adjust Image" onclick="createFormQuery(\'redeye\', this.form, true, updatepage);Toolbox.destroyBox (\'' + newDivId + '\');CropImageManager.removeCropper();"/></form></td></tr></table>';}else if(type == 'FlickrSearch'){html += '<form name="flickrsearch" id="flickrsearch"><table><tr><td>Search:</td><td><input type="text" size="27" name="search" id="search" />&nbsp;<input type="hidden" name="page" id="page" value="0"/></td></tr>';html += '<tr><td colspan="2" align="center"><input type="button" id="sendSearch" value="Search FlickR" onclick="Toolbox.init(\'Browser\', \'Flickr Photo Search\', \'165\', \'10\');JavaScript:xmlhttpPost(\'lib.php\', \'flickrsearch\');Toolbox.destroyBox (\'' + newDivId + '\');"/></td></tr>';html += '</table></form>';}newDiv.innerHTML = html;document.getElementById('base').appendChild(newDiv);Drag.init(document.getElementById(newDivHandle), document.getElementById(newDivRoot));fdSliderController._construct();if(type == 'ExactResize'){document.forms['exactresize'].imgwidth.value = document["current"].width;document.forms['exactresize'].imgheight.value = document["current"].height;}else if(type == 'Layer'){document.getElementById('colorlayer').style.background = document.forms['text'].rgb.value;document.getElementById('rgb').style.background = document.forms['text'].rgb.value;}},existenceCheck : function(div){var existenceCheck = document.getElementById(div);if (existenceCheck){document.body.style.cursor = 'default';if(div == 'menuCrop' || div == 'menuShape' || div == 'menuLayer'){CropImageManager.removeCropper();}else if(div == 'menuShape' || div == 'menuZoom'){Zoom.stopZoom();}else if(div == 'menuEasyResize' || div == 'menuExactResize'){resetImageSize('easyresize');}existenceCheck.parentNode.removeChild(existenceCheck);}},destroyBox : function(div)	{var userdiv = document.getElementById(div);userdiv.parentNode.removeChild(userdiv);}};var Drag = {divHandle : null,init : function(dragHandle, dragRoot){dragHandle.onmousedown = Drag.dragStart;dragHandle.hmode = true;dragHandle.vmode = true;dragHandle.root = dragRoot;dragHandle.minX = 0;dragHandle.minY = 0;dragHandle.maxX = document.body.clientWidth - (dragRoot.clientWidth+2);dragHandle.maxY = null;dragHandle.root.onDragStart = new Function();dragHandle.root.onDragEnd = new Function();dragHandle.root.onDrag = new Function();},dragStart : function(args){var dragHandle = Drag.divHandle = this;args = Drag.setArgs(args);var mouseY	= args.clientY;var mouseX	= args.clientX;var currentY = parseInt(dragHandle.root.style.top);var currentX = parseInt(dragHandle.root.style.left);dragHandle.root.onDragStart(currentX, currentY);dragHandle.lastMouseX = mouseX;dragHandle.lastMouseY = args.clientY;dragHandle.minMouseX = mouseX - currentX + dragHandle.minX;dragHandle.maxMouseX = dragHandle.minMouseX + dragHandle.maxX - dragHandle.minX;dragHandle.minMouseY = mouseY - currentY + dragHandle.minY;document.onmousemove = Drag.dragMove;document.onmouseup = Drag.dragEnd;return false;},dragMove : function(args){args = Drag.setArgs(args);var dragHandle = Drag.divHandle;var mouseY	= args.clientY;var mouseX	= args.clientX;var currentY = parseInt(dragHandle.root.style.top);var currentX = parseInt(dragHandle.root.style.left);if(mouseX < dragHandle.minMouseX){mouseX = dragHandle.minMouseX;}if(mouseX > dragHandle.maxMouseX){mouseX = dragHandle.maxMouseX;}if(mouseY < dragHandle.minMouseY){mouseY = dragHandle.minMouseY;}var newX = currentX + (mouseX - dragHandle.lastMouseX);var newY = currentY + (mouseY - dragHandle.lastMouseY);Drag.divHandle.root.style["left"] = newX + "px";Drag.divHandle.root.style["top"] = newY + "px";Drag.divHandle.lastMouseX = mouseX;Drag.divHandle.lastMouseY = mouseY;Drag.divHandle.root.onDrag(newX, newY);return false;},dragEnd : function(){document.onmousemove = null;document.onmouseup = null;},setArgs : function(args){if (typeof args == 'undefined'){args = window.event;}if (typeof args.layerX == 'undefined'){args.layerX = args.offsetX;}if (typeof args.layerY == 'undefined'){args.layerY = args.offsetY;}return args;}};var DragLayer = {divHandle : null,init : function(dragHandle, dragRoot){dragHandle.onmousedown = DragLayer.dragStart;dragHandle.hmode = true;dragHandle.vmode = true;dragHandle.root = dragRoot;dragHandle.root.onDragStart = new Function();dragHandle.root.onDragEnd = new Function();dragHandle.root.onDrag = new Function();},dragStart : function(args){var dragHandle = DragLayer.divHandle = this;args = DragLayer.setArgs(args);var mouseY	= args.clientY;var mouseX	= args.clientX;var currentY = parseInt(dragHandle.root.style.top);var currentX = parseInt(dragHandle.root.style.left);dragHandle.root.onDragStart(currentX, currentY);dragHandle.lastMouseX = mouseX;dragHandle.lastMouseY = args.clientY;document.onmousemove = DragLayer.dragMove;document.onmouseup = DragLayer.dragEnd;return false;},dragMove : function(args){args = DragLayer.setArgs(args);var dragHandle = DragLayer.divHandle;var mouseY	= args.clientY;var mouseX	= args.clientX;var currentY = parseInt(dragHandle.root.style.top);var currentX = parseInt(dragHandle.root.style.left);var newX = currentX + (mouseX - dragHandle.lastMouseX);var newY = currentY + (mouseY - dragHandle.lastMouseY);DragLayer.divHandle.root.style["left"] = newX + "px";DragLayer.divHandle.root.style["top"] = newY + "px";DragLayer.divHandle.lastMouseX = mouseX;DragLayer.divHandle.lastMouseY = mouseY;if(DragLayer.divHandle.root.style["left"] < document.getElementById('maindiv').style["left"]){DragLayer.divHandle.root.style["left"] = document.getElementById('maindiv').style["left"];}var right = document.getElementById('maindiv').offsetLeft + (document.getElementById('current').width - document.getElementById('overlay').width);if(DragLayer.divHandle.root.style["left"] > (right + "px")){DragLayer.divHandle.root.style["left"] = right;}if(DragLayer.divHandle.root.style["top"] < document.getElementById('maindiv').style["top"]){DragLayer.divHandle.root.style["top"] = document.getElementById('maindiv').style["top"];}var bottom = document.getElementById('maindiv').offsetTop + (document.getElementById('current').height - document.getElementById('overlay').height);if(DragLayer.divHandle.root.style["top"] > (bottom + "px")){DragLayer.divHandle.root.style["top"] = bottom;}DragLayer.divHandle.root.onDrag(newX, newY);return false;},dragEnd : function(){document.onmousemove = null;document.onmouseup = null;},setArgs : function(args){if (typeof args == 'undefined'){args = window.event;}if (typeof args.layerX == 'undefined'){args.layerX = args.offsetX;}if (typeof args.layerY == 'undefined'){args.layerY = args.offsetY;}return args;}};var AjaxUpload = {frame : function(c) {var n = 'f' + Math.floor(Math.random() * 99999);var d = document.createElement('DIV');d.innerHTML = '<iframe style="display:none" src="about:blank" id="'+n+'" name="'+n+'" onload="AjaxUpload.loaded(\''+n+'\')"></iframe>';document.body.appendChild(d);var i = document.getElementById(n);if (c && typeof(c.onComplete) == 'function') {i.onComplete = c.onComplete;}return n;},form : function(f, name) {f.setAttribute('target', name);},submit : function(f, c) {AjaxUpload.form(f, AjaxUpload.frame(c));if (c && typeof(c.onStart) == 'function') {return c.onStart();} else {return true;}},loaded : function(id) {var i = document.getElementById(id);if (i.contentDocument) {var d = i.contentDocument;} else if (i.contentWindow) {var d = i.contentWindow.document;} else {var d = window.frames[id].document;}if (d.location.href == "about:blank") {return;}if (typeof(i.onComplete) == 'function') {i.onComplete(d.body.innerHTML);}}};function startCallback() {loading();return true;}function completeCallback(str) {if(str.indexOf('ERROR:') != -1){Toolbox.init('Error', str, '20', '10');loadingOff();}else{Toolbox.destroyBox ('menuOpenFile');document["current"].src = str;imgSrc = str;}}function completeOverlayCallback(str) {if(str.indexOf('ERROR:') != -1){Toolbox.init('Error', str, '20', '10');loadingOff();}else{Toolbox.init('ImageLayer', 'Image Overlay Layer', '170', '10');updatePageOverlay(str);Toolbox.destroyBox ('menuImageOverlay');}}_dynarch_menu_url = "src/";(function(){var UA=navigator.userAgent,w=window;_dynarch_top=window.parent;try{_dynarch_top._dynarch_menu_test=null;}catch(ex){_dynarch_top=w;}w.is_gecko=/gecko/i.test(UA);w.is_opera=/opera/i.test(UA);w.is_ie=/msie/i.test(UA)&&!is_opera&&!(/mac_powerpc/i.test(UA));w.is_ie5=is_ie&&/msie 5\.[^5]/i.test(UA);w.is_mac_ie=/msie.*mac/i.test(UA);w.is_khtml=/Konqueror|Safari|KHTML/i.test(navigator.userAgent);if(typeof _dynarch_top._dynarch_menu_url=="undefined")_dynarch_top._dynarch_menu_url="/hmenu/";else{_dynarch_top._dynarch_menu_url=_dynarch_top._dynarch_menu_url.replace(/\x2f*$/,'/');if(!/^(https?:|\x2f)/.test(_dynarch_top._dynarch_menu_url)&&_dynarch_top!=window)_dynarch_top._dynarch_menu_url=_dynarch_top.document.URL.replace(/\x2f?[^\x2f]*$/,"/")+_dynarch_top._dynarch_menu_url;}w._dynarch_menu_shadow=new Image();w._dynarch_menu_shadow.src=_dynarch_top._dynarch_menu_url+"img/shadow.png";w._dynarch_menu_ediv="<div unselectable='on'>&nbsp;</div>";})();function DynarchMenu(el,config){var T1,a,i;if(config.d_profile){DynarchMenu.profile={item:0,tree:0};T1=(new Date()).getTime();}this._baseMenuInfo=null;this._popupMenus=[];this._activeKeymap=null;this._globalKeymap=null;this._activePopup=null;this._fixed=false;this.items={};this.target=null;this.config=config;try{this._df=config.frames.popups.document.createDocumentFragment();}catch(e){this._df=null;this._ca=[];}el.parentNode.insertBefore(this.createMenuTree(el,!config.vertical),el);if(this._df){config.container.appendChild(this._df);this._df=null;}else{a=this._ca;for(i=a.length;--i>=0;)config.container.appendChild(a[i]);}if(config.d_profile)alert("DynarchMenu: generated in "+(((new Date()).getTime()-T1)/1000)+" sec.\n"+"containing "+DynarchMenu.profile.item+" items in "+DynarchMenu.profile.tree+" (sub)menus.");if(config.setFocus)config.frames.popups.focus();};DynarchMenu._hiderID=0;DynarchMenu._createHider=function(win){var f=null;if(is_ie&&!is_ie5){var filter='filter:progid:DXImageTransform.Microsoft.alpha(style=0,opacity=0);';var id='dynarch-menu-hider-'+(++this._hiderID);win.document.body.insertAdjacentHTML('beforeEnd','<iframe id="'+id+'" scroll="no" frameborder="0" '+'style="position:absolute;visibility:hidden;'+filter+'border:0;top:0;left:0;width:0;height:0;" '+'src="javascript:false;"></iframe>');f=win.document.getElementById(id);}return f;};DynarchMenu._setupHider=function(f,x,y,w,h){if(f){var s=f.style;s.left=x+"px";s.top=y+"px";s.width=w+"px";s.height=h+"px";s.visibility="visible";}};DynarchMenu._closeHider=function(f){if(f)f.style.visibility="hidden";};DynarchMenu._C=null;DynarchMenu._T=null;DynarchMenu._OT=null;DynarchMenu._RE_PR=/(^|\s+)pressed(\s+|$)/ig;DynarchMenu._RE_AH=/(^|\s+)active|hover(\s+|$)/ig;DynarchMenu._RE_DS=/(^|\s+)disabled(\s+|$)/ig;DynarchMenu._RE_CP=/clones-popup-(.*)/;DynarchMenu._RE_OPL=/(^|\s+)open-left(\s+|$)/;DynarchMenu._RE_CTX_ID=/context-for-(.*)/;DynarchMenu._RE_CTX_CL=/context-class-([^-\s]+)-([^\s]+)/;DynarchMenu._RE_CTX_AL=/context-align-([a-z]+)/;DynarchMenu._RE_SCROLL_D=/(^|\s+)dynarch-menu-scroll-(up-|down-)?disabled/g;DynarchMenu._RE_SCROLL_H=/(^|\s+)dynarch-menu-scroll-(up-|down-)?hover/g;DynarchMenu._activeItem=null;DynarchMenu._menus=null;DynarchMenu._nop=function(){};DynarchMenu.setup=function(el,args){if(typeof args=="undefined")args={};var config={},tmp;function PD(name,value){var v=args[name];config[name]=(typeof v=="undefined")?value:v;};PD("className",null);PD("tooltips",false);PD("shadows",[4,4]);PD("smoothShadow",true);PD("dx",0);PD("dy",0);PD("basedx",0);PD("basedy",0);PD("timeout",150);PD("baseTimeout",50);PD("context",false);PD("vertical",false);PD("electric",config.vertical?250:false);PD("blink",false);PD("lazy",false);PD("d_profile",false);PD("toolbar",false);PD("ctxbutton",2);PD("frames",{main:window,popups:window});PD("scrolling",null);if(config.scrolling===true){config.scrolling={step1:5,step2:10,speed:30};}tmp=config.frames;if(typeof tmp.main=="string")tmp.main=_dynarch_top.frames[tmp.main];if(typeof tmp.popups=="string")tmp.popups=_dynarch_top.frames[tmp.popups];PD("crossFrames",tmp.main!==tmp.popups);PD("container",config.frames.popups.document.body);PD("clone",false);PD("onPopup",DynarchMenu._nop);PD("setFocus",true);if(config.blink===true)config.blink=5;if(typeof el=="string")el=tmp.main.document.getElementById(el);if(is_mac_ie)return null;if(is_ie5)config.smoothShadow=false;if(config.context)config.vertical=true;if(!el){alert("Error: menu element not found.");return false;}el.style.display="none";var i,els,a=DynarchMenu._menus,tmp2;if(!a||a.length==0){a=DynarchMenu._menus=[];els=[config.frames.main,config.frames.main.document];if(config.frames.popups!==config.frames.main){els[els.length]=config.frames.popups;els[els.length]=config.frames.popups.document;}for(i=els.length;--i>=0;){tmp=els[i];DynarchMenu.watchFrame(tmp,tmp);}DynarchMenu._eventElements=els;}return a[a.length]=new DynarchMenu(el,config);};document.DynarchMenu=DynarchMenu;_dynarch_top.DynarchMenu=DynarchMenu;DynarchMenu.watchFrame=function(f,w){if(typeof w=="undefined")w=window;try{DynarchMenu._addEvent(f,(is_ie||is_opera)?"keydown":"keypress",w.DynarchMenu._documentKeyPress);DynarchMenu._addEvent(f,"mousedown",w.DynarchMenu._documentMouseDown);DynarchMenu._addEvent(f,"mouseup",w.DynarchMenu._documentMouseUp);DynarchMenu._addEvent(f,"mouseover",w.DynarchMenu._documentMouseOver);}catch(e){};};DynarchMenu._clearTimeout=function(){if(_dynarch_top.DynarchMenu._T){_dynarch_top.clearTimeout(_dynarch_top.DynarchMenu._T);_dynarch_top.DynarchMenu._T=null;}};DynarchMenu._forAllMenus=function(callback){for(var i=_dynarch_top.DynarchMenu._menus.length;--i>=0&&!callback(_dynarch_top.DynarchMenu._menus[i]););};DynarchMenu._closeOtherMenus=function(menu){DynarchMenu._forAllMenus(function(tmp){if(tmp!=menu){var a=tmp._popupMenus,i;for(i=a.length;--i>=0;)a[i].close(false,true);tmp._baseMenuInfo.close();window.status="";}});};DynarchMenu.prototype.cloneEl=function(el,doc){if(this.config.clone){if(el.ownerDocument!=doc){if(is_ie){var div=doc.createElement("div");div.innerHTML=el.outerHTML;el=div.removeChild(div.firstChild);}else el=doc.importNode(el,true);}else el=el.cloneNode(true);}return el;};DynarchMenu.prototype.addIcon=function(info,item,icon){var doc=info.parent.base?this.config.frames.main.document:this.config.frames.popups.document;var CE=DynarchMenu._createElement,t,l=item.firstChild.firstChild,r=CE("tr",CE("tbody",t=CE("table",null,doc))),td1=CE("td",r),td2=CE("td",r);icon.unselectable="on";td1.appendChild(r=this.cloneEl(icon,doc));td1.className="icon";td2.className="label";while(l){td1=l.nextSibling;td2.appendChild(l);l=td1;}t.cellSpacing=t.cellPadding=0;t.style.borderCollapse="collapse";item.firstChild.appendChild(t);return r;};DynarchMenu.prototype.createMenuItem=function(li,parent,horiz,arrow){var tmp,ctx=null,cfg=this.config,licl=li.className,icon=null,label,html_popup=true,tooltip,action=null,item,info,self=this,key=null,disabled=/(^|\s+)disabled(\s+|$)/i.test(licl),nohover=DynarchMenu.getCA(li,"nohover"),win=parent.base?cfg.frames.main:cfg.frames.popups,doc=win.document,CE=DynarchMenu._createElement;if(cfg.d_profile)++DynarchMenu.profile.item;tmp=DynarchMenu._getChildrenByTagName(li,"a");tmp=tmp.length>0?tmp[0]:li;label=DynarchMenu._getLabel(tmp);if(typeof label=="string"){label=label.replace(/(^\s+|\s+$)/g,'');if(/^a$/i.test(tmp.tagName)&&tmp.accessKey){key=tmp.accessKey;tmp.accessKey="";}else if(!/^<img/i.test(label)){label=label.replace(/_([a-zA-Z0-9])/,"<u unselectable='on'>$1</u>");key=RegExp.$1;label=label.replace(/__/,"_");}html_popup=false;}tooltip=/^\s*$/.test(tmp.title)?"":tmp.title;if(tmp.href&&/\S/.test(tmp.href)){if(/^javascript:(.*)$/i.test(tmp.href))action=new DynarchMenu.JSAction(RegExp.$1);else action=new DynarchMenu.LinkAction(tmp.href,tmp.target);action.className="explicit-action";action.explicit=true;}else action=new DynarchMenu.DefaultAction(li);tmp=DynarchMenu._getChildrenByTagName(li,"img");if(tmp.length>0)icon=tmp[0];info=new DynarchMenu.MenuItem({html_popup:html_popup,separator:html_popup||!/\S/.test(label)&&!icon,icon:icon,label:label,parent:parent,submenu:null,tooltip:tooltip,action:action,menu:this,disabled:disabled,nohover:nohover,align:licl?(DynarchMenu._RE_CTX_AL.test(licl)?RegExp.$1:"mouse"):"mouse"});if(li.id)this.items[info.id=li.id]=info;if(action)action.info=info;if(horiz){item=CE("td",null,doc);info.labelTD=item;if(info.separator)item.innerHTML="<div unselectable='on'></div>";else{item.innerHTML="<div unselectable='on'>"+label+"</div>";if(icon)info.icon=this.addIcon(info,item,icon);}}else{item=CE("tr",null,doc);tmp=CE("td",item);if(info.separator&&!html_popup){tmp.innerHTML=_dynarch_menu_ediv;tmp.colSpan=3;}else{tmp.className="icon";if(icon)tmp.appendChild(info.icon=this.cloneEl(icon,doc));else tmp.innerHTML=_dynarch_menu_ediv;tmp=CE("td",item);tmp.className="label";info.labelTD=tmp;if(html_popup)tmp.appendChild(this.cloneEl(label,doc));else tmp.innerHTML=label;tmp=CE("td",item);tmp.className="end";tmp.innerHTML=_dynarch_menu_ediv;if(arrow)tmp.className+=" arrow";}}if(is_ie&&key&&parent.base){tmp=CE("a",item);tmp.href="#";tmp.accessKey=key;}info.element=item;item.className=(info.separator&&!html_popup)?"separator":"item";if(action.className)item.className+=" "+action.className;if(disabled)info.disabled=true;if(cfg.tooltips)item.title=info.tooltip;DynarchMenu.addInfo(item,"__msh_info",info);if(DynarchMenu._RE_CTX_ID.test(licl)){ctx=document.getElementById(RegExp.$1);if(ctx)DynarchMenu.setupContext(ctx,info);}else if(DynarchMenu._RE_CTX_CL.test(licl)){ctx=document.getElementsByTagName(RegExp.$1);tmp=new RegExp('(^|\\s)'+RegExp.$2+'(\\s|$)');for(i=ctx.length;--i>=0;)if(tmp.test(ctx[i].className))DynarchMenu.setupContext(ctx[i],info);}else if(licl)item.className+=" "+licl;if(!nohover){if(html_popup)item.onmouseover=win.DynarchMenu.EventHandlers.popup_resetActive;if(key)parent.keymap[key.toLowerCase()]=info;item.onmouseover=win.DynarchMenu.EventHandlers.item_onMouseOver;if(!info.separator){item.onmouseout=win.DynarchMenu.EventHandlers.item_onMouseOut;item.onmousedown=win.DynarchMenu.EventHandlers.item_onMouseDown;}}return item;};DynarchMenu._documentMouseDown=function(ev){ev||(ev=window.event);var el=is_ie?ev.srcElement:ev.target,j;for(j=el;j&&!j.__msh_info;j=j.parentNode);if(!j||j.__msh_info.base)_dynarch_top.DynarchMenu._closeOtherMenus(j&&j.__msh_info.menu);};DynarchMenu._msupTimeout=null;DynarchMenu._documentMouseUp=function(ev){ev||(ev=window.event);if(DynarchMenu._msupTimeout)return false;var menu=_dynarch_top.DynarchMenu._C,el,info;if(menu){el=is_ie?ev.srcElement:ev.target;for(;el&&!(el.__msh_is_dynarch_menu&&(info=el.__msh_info));el=el.parentNode);if(!el)_dynarch_top.DynarchMenu._closeOtherMenus(null);else if(info&&info.exec)info.exec();}_dynarch_top.DynarchMenu._C=null;_dynarch_top.DynarchMenu._activeItem=null;};DynarchMenu._documentMouseOver=function(ev){var menu=_dynarch_top.DynarchMenu._C,el,tmout;if(menu&&menu.config.electric){ev||(ev=window.event);el=is_ie?ev.srcElement:ev.target;for(;el&&!el.__msh_is_dynarch_menu;el=el.parentNode);if(!el||el===document.body){tmout=menu.config.electric;if(tmout===true)tmout=1;if(!_dynarch_top.DynarchMenu._T)_dynarch_top.DynarchMenu._T=_dynarch_top.setTimeout('_dynarch_top.DynarchMenu._closeOtherMenus(null); _dynarch_top.DynarchMenu._T = null;',tmout);}else _dynarch_top.DynarchMenu._clearTimeout();}};DynarchMenu._documentKeyPress=function(ev){ev||(ev=window.event);DynarchMenu._forAllMenus(function(menu){var tmp=menu._activePopup,item=tmp?tmp.active_item:null,kmap;function do_27(){if(tmp){tmp.close(true,true);if(item)item.mouseout();if(tmp.base||(tmp.parent.base&&tmp.config.context)){tmp.resetActive();tmp.active_submenu=null;_dynarch_top.DynarchMenu._activeItem=null;_dynarch_top.DynarchMenu._closeOtherMenus(null);}DynarchMenu._stopEvent(ev);}};function do_13(){if(!item)return;item.activate(true,true);if(item.action&&!item.submenu)item.exec();DynarchMenu._stopEvent(ev);};function do_ud(up){if(tmp){if(!item)item=up?tmp.getFirstItem():tmp.getLastItem();else item=up?tmp.getNextItem(item):tmp.getPrevItem(item);if(item){item.hover(false,true);tmp.active_item=item;}DynarchMenu._stopEvent(ev);}};function serveKeymap(keymap){var key=String.fromCharCode((is_ie||is_opera)?ev.keyCode:ev.charCode).toLowerCase();item=keymap[key];if(typeof item!="undefined"){item.hover(true,true);if(!item.submenu)item.exec();tmp=item.submenu;item=null;do_ud(true);DynarchMenu._stopEvent(ev);}};switch(ev.keyCode){case 27:do_27();break;case 13:do_13();if(item){tmp=item.submenu;item=null;do_ud(true);}break;case 37:if(!menu._activeKeymap)break;if(tmp.parent&&!tmp.parent.horiz)do_27();else{if(tmp.parent){tmp=tmp.parent;item=tmp.active_item;}do_ud(false);item.activate(false,true);}break;case 39:if(!menu._activeKeymap)break;if(item&&!item.parent.horiz&&item.submenu){do_13();tmp=item.submenu;item=null;do_ud(true);}else{while(tmp.parent){tmp=tmp.parent;item=tmp.active_item;}do_ud(true);item.activate(false,true);}break;case 40:case 38:if(!menu._activeKeymap)break;do_ud(ev.keyCode==40);break;default:kmap=ev.altKey?menu._globalKeymap:menu._activeKeymap;if(kmap)serveKeymap(kmap);}});};DynarchMenu.prototype.createMenuTree=function(ul,horiz){var base=!this._baseMenuInfo,a_li,div,table,i,info,li,item,tmp,ret=null,self=this,cfg=this.config,ctx=cfg.context,submenu,CE=DynarchMenu._createElement,win=base?cfg.frames.main:cfg.frames.popups,doc=win.document;if(cfg.d_profile)++DynarchMenu.profile.tree;a_li=DynarchMenu._getChildrenByTagName(ul,"li");if(a_li.length==0)return;ret=div=CE("div",null,doc);div.className=(base&&horiz)?"dynarch-horiz-menu":"dynarch-popup-menu";if(base&&horiz&&cfg.toolbar)div.className+=" dynarch-menu-toolbar";if(base&&!horiz&&!ctx)div.className+=" dynarch-popup-base-menu";if(ul.className)div.className+=" "+ul.className;tmp=["a","b","c","d"];if(cfg.scrolling)tmp.unshift("dynarch-menu-scroll");for(i=tmp.length;--i>=0;(div=CE("div",div)).className=tmp[i]);info=new DynarchMenu.MenuTree({menu:this,base:base,horiz:horiz,element:ret,active_submenu:null,active_item:null,visible:false,keymap:{},config:cfg,_T_close:null,open_left:DynarchMenu._RE_OPL.test(ul.className)});if(ul.id)info.id=ul.id;DynarchMenu.addInfo(ret,"__msh_info",info);info.table=table=CE("table",div);table.cellSpacing=0;table.cellPadding=0;tmp=CE("tbody",table);DynarchMenu._class(ret,null,cfg.className);if(base){this._globalKeymap=info.keymap;this._baseMenuInfo=info;if(ctx)ret.style.display="none";}else{ret.style.display="none";if(this.config.lazy)this.config.container.appendChild(ret);else if(this._df)this._df.appendChild(ret);else this._ca[this._ca.length]=ret;}if(horiz){info.parent=null;div=CE("tr",tmp);}else div=tmp;ret.onmouseover=win.DynarchMenu.EventHandlers.tree_onMouseOver;ret.onmouseout=win.DynarchMenu.EventHandlers.tree_onMouseOut;for(i=0;i<a_li.length;++i){li=a_li[i];if(DynarchMenu._RE_CP.test(li.className)){tmp=document.getElementById(RegExp.$1);}else{tmp=DynarchMenu._getChildrenByTagName(li,"ul");tmp=(tmp.length>0)?tmp[0]:null;}item=this.createMenuItem(li,info,horiz,!!tmp);div.appendChild(item);if(tmp){item.className+=" has-submenu";item.__msh_info.ul=ul=tmp;item.__msh_info.submenu=function(){var menu=this.menu;submenu=this.submenu=menu.createMenuTree(this.ul,false).__msh_info;submenu.parent=info;submenu.parent_item=this;menu._popupMenus[menu._popupMenus.length]=submenu;};if(!this.config.lazy)item.__msh_info.submenu();}}return ret;};DynarchMenu.prototype.destroy=function(){var a=this._baseMenuInfo.element,i,el;try{a.parentNode.removeChild(a);a=this._popupMenus;for(i=a.length;--i>=0;)try{el=a[i].element;el.parentNode.removeChild(el);el=a[i]._shadow;if(el)el.parentNode.removeChild(el);}catch(e){};a=_dynarch_top.DynarchMenu._menus;for(i=a.length;--i>=0;)if(a[i]==this)a.splice(i,1);if(a.length==0){a=DynarchMenu._eventElements;for(i=a.length;--i>=0;){el=a[i];if(el)try{DynarchMenu._removeEvent(el,(is_ie||is_opera)?"keydown":"keypress",el.DynarchMenu._documentKeyPress);DynarchMenu._removeEvent(el,"mousedown",el.DynarchMenu._documentMouseDown);DynarchMenu._removeEvent(el,"mouseup",el.DynarchMenu._documentMouseUp);DynarchMenu._removeEvent(el,"mouseover",el.DynarchMenu._documentMouseOver);}catch(e){};}}}catch(ex){};};DynarchMenu._stopEvent=function(ev){if(is_ie){ev.cancelBubble=true;ev.returnValue=false;}else{ev.preventDefault();ev.stopPropagation();}};DynarchMenu._removeEvent=function(el,evname,func){if(el.removeEventListener)el.removeEventListener(evname,func,true);else if(el.detachEvent)el.detachEvent("on"+evname,func);else el["on"+evname]=null;};DynarchMenu._addEvent=function(el,evname,func){if(el.addEventListener)el.addEventListener(evname,func,true);else if(el.attachEvent)el.attachEvent("on"+evname,func);else el["on"+evname]=func;};DynarchMenu._getChildrenByTagName=function(el,tag){var i,a=[];if(tag)tag=tag.toLowerCase();for(i=el.firstChild;i;i=i.nextSibling){if(i.nodeType!=1)continue;if(!tag||tag==i.tagName.toLowerCase())a[a.length]=i;}return a;};DynarchMenu._createElement=function(tagName,parent,doc){if(!doc){if(parent)doc=parent.ownerDocument;if(!doc)doc=document;}var el=doc.createElement(tagName);if(is_ie)el.unselectable="on";else if(is_gecko)el.style.setProperty("-moz-user-select","none","");if(parent)parent.appendChild(el);return el;};DynarchMenu._getLabel=function(el){var i,c,txt;if(el.tagName.toLowerCase()=="a"){if(is_ie){c=DynarchMenu._getChildrenByTagName(el,null);for(i=c.length;--i>=0;c[i].unselectable="on");}return el.innerHTML;}c=DynarchMenu._getChildrenByTagName(el,'div');if(c.length)return c[0];txt="";for(i=el.firstChild;i;i=i.nextSibling)if(i.nodeType==3)txt+=i.data;return txt;};DynarchMenu._getPos=function(el){if(/^body$/i.test(el.tagName))return{x:0,y:0};var SL=0,ST=0,is_div=/^div$/i.test(el.tagName),r,tmp;if(is_div&&el.scrollLeft)SL=el.scrollLeft;if(is_div&&el.scrollTop)ST=el.scrollTop;if(el.parentNode&&el.parentNode!==el.offsetParent){if(el.parentNode.scrollTop)ST+=el.parentNode.scrollTop;if(el.parentNode.scrollLeft)ST+=el.parentNode.scrollLeft;}r={x:el.offsetLeft-SL,y:el.offsetTop-ST};if(el.offsetParent){tmp=this._getPos(el.offsetParent);r.x+=tmp.x;r.y+=tmp.y;}return r;};DynarchMenu._class=function(el,del,add){if(!el)return;if(el.element)el=el.element;if(del)el.className=el.className.replace(del,' ');if(add)el.className+=" "+add;};DynarchMenu._related=function(element,ev){var related,type;if(is_ie){type=ev.type;if(type=="mouseover")related=ev.fromElement;else if(type=="mouseout")related=ev.toElement;}else related=ev.relatedTarget;for(;related;related=related.parentNode)if(related===element)return true;return false;};DynarchMenu.psLeft=function(){var d=document;return d.documentElement.scrollLeft||d.body.scrollLeft;};DynarchMenu.psTop=function(){var d=document;return d.documentElement.scrollTop||d.body.scrollTop;};DynarchMenu.preloadImages=function(filter){if(is_ie){var ai=[],hi={},i;function f(s,p){var i,t,pp=s.href;if(filter&&s.readOnly&&!filter.test(p+pp))return;if(pp)p+=pp.replace(/(\x2f?)[^\x2f]+$/,"$1");for(i=s.rules.length;--i>=0;){t=s.rules(i).style.backgroundImage;if(/url\((.*?)\)/.test(t)){t=p+RegExp.$1;if(!hi[t]){ai.push(t);hi[t]=1;}}}for(i=s.imports.length;--i>=0;)f(s.imports(i),p);};for(i=document.styleSheets.length;--i>=0;)f(document.styleSheets[i],"");document.write("<div style='display:none'>");for(i=ai.length;--i>=0;)document.write("<img src='"+ai[i]+"' />");document.write("</div>");}};DynarchMenu._infoMap=null;DynarchMenu._cleanUp=function(){var a=_dynarch_top.DynarchMenu._infoMap,i,o,p;for(i=a.length;--i>=0;){o=a[i][0];p=a[i][1];try{o[p]=null;o.parentNode.removeChild(o);o=a[i][0]=null;}catch(e){};a.splice(i,1);}_dynarch_top.DynarchMenu._infoMap=null;};DynarchMenu.addInfo=function(el,name,value){el.__msh_is_dynarch_menu=true;el[name]=value;if(is_ie){var a=_dynarch_top.DynarchMenu._infoMap;if(!a){a=_dynarch_top.DynarchMenu._infoMap=[];DynarchMenu._addEvent(_dynarch_top,"unload",_dynarch_top.DynarchMenu._cleanUp);}a[a.length]=[el,name];}};DynarchMenu.setupContext=function(ctx,tree){this.addInfo(ctx,"__msh_info2",tree);var buttons=2,b;if(tree&&tree.menu&&tree.menu.config&&tree.menu.config.ctxbutton)buttons=tree.menu.config.ctxbutton;if(/dynarch-menu-ctxbutton-([a-z]+)/.test(ctx.className)){b=RegExp.$1;buttons=((b=="left")?1:((b=="both")?3:buttons));}if(buttons&1)ctx.onclick=DynarchMenu.EventHandlers.ctx_onContextMenu;if(buttons&2)ctx[is_opera?"onmousedown":"oncontextmenu"]=DynarchMenu.EventHandlers.ctx_onContextMenu;};DynarchMenu.JSAction=function(code){this.js=code.replace(/%20/g,' ');};DynarchMenu.JSAction.prototype.exec=function(){var retval=false;eval(this.js);return retval;};DynarchMenu.LinkAction=function(url,target){if(!(target&&/\S/.test(target)))target=null;if(is_ie)url=url.replace(/^about:blank(.+)$/,"$1");this.url=url;this.target=target;};DynarchMenu.LinkAction.prototype.exec=function(){if(this.target){var tmp=document.getElementById(this.target);if(!tmp&&document.getElementsByName){tmp=document.getElementsByName(this.target);tmp=tmp.length?tmp[0]:null;}if(tmp){tmp=is_opera?tmp:tmp.contentWindow;tmp.location=this.url;}else window.open(this.url,this.target);}else window.location=this.url;return false;};DynarchMenu.DefaultAction=function(li){this.params=li;while(li&&/^([uo]l|li)$/i.test(li.tagName)){if(li.onclick){this.action=li.onclick;break;}li=li.parentNode;}};DynarchMenu.DefaultAction.prototype.exec=function(){if(!this.info.submenu){if(typeof this.action=="function")return this.action(this.info);else try{var retval=false;eval(this.action);return retval;}catch(e){};}return true;};DynarchMenu.EventHandlers={popup_resetActive:function(ev){this.__msh_info.parent.resetActive();return false;},item_onMouseOver:function(ev){ev||(ev=window.event);if(DynarchMenu._related(this,ev))return false;var item=this.__msh_info;if(!item.separator)return item.hover();else if(item.html_popup){item.parent.clearTimeout();return item.parent.resetActive(item);}},item_onMouseOut:function(ev){ev||(ev=window.event);if(DynarchMenu._related(this,ev))return false;return this.__msh_info.mouseout();},item_onMouseDown:function(ev){ev||(ev=window.event);var info=this.__msh_info,ret;_dynarch_top.DynarchMenu._C=info.menu;DynarchMenu._stopEvent(ev);_dynarch_top.DynarchMenu._activeItem=info;if(info.parent&&!info.parent.base)info.parent.closePopups();ret=info.activate(false,true);return ret;},tree_onMouseOver:function(ev){ev||(ev=window.event);if(!DynarchMenu._related(this,ev)){var info=this.__msh_info;if(info.parent){info.parent.resetActive(info.parent_item,"active");info.parent.active_submenu=info;}}return false;},tree_onMouseOut:function(ev){ev||(ev=window.event);if(!DynarchMenu._related(this,ev)){var info=this.__msh_info;if(!info.active_submenu)this.__msh_info.resetActive();}return false;},ctx_onContextMenu:function(ev){ev||(ev=window.event);DynarchMenu._closeOtherMenus();if(!is_opera||ev.button==2){if(DynarchMenu._msupTimeout)clearTimeout(DynarchMenu._msupTimeout);DynarchMenu._msupTimeout=setTimeout(function(){DynarchMenu._msupTimeout=null;},150);var info=this.__msh_info2;if(typeof info.submenu=="function")info.submenu();info.submenu.openContext(ev,this);setTimeout(function(){_dynarch_top.DynarchMenu._C=info.menu;},info.menu.config.timeout);DynarchMenu._stopEvent(ev);return false;}}};DynarchMenu.populateObject=function(o,props){for(var i in props)o[i]=props[i];};DynarchMenu.MenuItem=function(props){this.visible=true;this.pressed=false;DynarchMenu.populateObject(this,props);};DynarchMenu.MenuItem.prototype.disable=function(dis){if(typeof dis=="undefined")dis=true;this.disabled=dis;DynarchMenu._class(this.element,DynarchMenu._RE_DS,dis?"disabled":null);};DynarchMenu.MenuItem.prototype.display=function(dis){if(typeof dis=="undefined")dis=!this.visible;this.visible=dis;this.element.style.display=dis?"":"none";};DynarchMenu.MenuItem.prototype._exec=function(){if(!this.disabled&&!this.separator&&this.action&&!this.action.exec()){DynarchMenu._class(this.element,DynarchMenu._RE_AH);var a=this.menu._popupMenus,i;for(i=a.length;--i>=0;)a[i].close(false,true);this.menu._baseMenuInfo.close();window.status="";}};DynarchMenu.MenuItem.prototype.exec=function(){var step=this.menu.config.blink;if((this.submenu&&!this.action.explicit)||this.html_popup||!step)return this._exec();var self=this;var timer=setInterval(function(){DynarchMenu._class(self.element,DynarchMenu._RE_AH,--step&1?'active':null);if(!step){clearInterval(timer);self._exec();}},60);};DynarchMenu.MenuItem.prototype.setLabel=function(text){this.labelTD.innerHTML="<div unselectable='on'>"+text+"</div>";this.label=text;};DynarchMenu.MenuItem.prototype.hover=function(activate,instant){var menu=this.parent,el=this.element;if(this.disabled&&menu.base){menu.clearPopups(this);menu.resetActive();return;}menu.clearTimeout();window.status=this.tooltip;el.title=menu.config.tooltips?this.tooltip:"";if(typeof activate=="undefined")activate=this.submenu&&(menu.config.electric||!menu.base||menu.active_submenu);menu.clearPopups(this);if(menu.resetActive(this))DynarchMenu._clearTimeout();if(activate)this.activate(true,instant);return false;};DynarchMenu.MenuItem.prototype.activate=function(noclose,instant){if(!this.disabled){var menu=this.parent,submenu=this.submenu,el=this.element;menu.resetActive(this);if(submenu){if(typeof submenu=="function"){this.submenu();submenu=this.submenu;}if(!noclose&&!menu.config.electric&&menu.base&&submenu==menu.active_submenu){submenu.close(false,true);_dynarch_top.DynarchMenu._activeItem=null;menu.resetActive(this,"hover");}else submenu.open(el,this,instant);}}return false;};DynarchMenu.MenuItem.prototype.setClass=function(del,add){DynarchMenu._class(this.element,del,add);};DynarchMenu.MenuItem.prototype.setPressed=function(state){if(typeof state=="undefined")state=!this.pressed;this.pressed=state;this.setClass(DynarchMenu._RE_PR,state?"pressed":null);};DynarchMenu.MenuItem.prototype.mouseout=function(){var p=this.parent,s=this.submenu;if(s&&DynarchMenu._OT)clearTimeout(DynarchMenu._OT);DynarchMenu._clearTimeout();if(!s||!s.visible)p.resetActive();window.status="";return false;};DynarchMenu.MenuTree=function(props){DynarchMenu.populateObject(this,props);if(!this.base)this.hider=DynarchMenu._createHider(this.menu.config.frames.popups);};DynarchMenu.MenuTree.prototype.getNextItem=function(item){var i=item.element.nextSibling;while(i&&i.__msh_info.separator)i=i.nextSibling;if(!i){if(this.menu.config.scrolling)return null;i=item.element.parentNode.firstChild;}return i.__msh_info;};DynarchMenu.MenuTree.prototype.getPrevItem=function(item){var i=item.element.previousSibling;while(i&&i.__msh_info.separator)i=i.previousSibling;if(!i){if(this.menu.config.scrolling)return null;i=item.element.parentNode.lastChild;}return i.__msh_info;};DynarchMenu.MenuTree.prototype.resetActive=function(item,cls){item||(item=null);if(!cls)(!item||!item.html_popup)?(cls="hover"):(cls="");DynarchMenu._class(this.active_item,DynarchMenu._RE_AH);DynarchMenu._class(item,DynarchMenu._RE_AH,_dynarch_top.DynarchMenu._activeItem==item?"active":cls);var tmp=this.active_item!=item;this.active_item=item;if(item&&this.menu.config.scrolling)this._scrollIntoView(item);return tmp;};DynarchMenu.MenuTree.prototype.clearPopups=function(item){var m=this.active_submenu;if(m&&m!=item.submenu)m.close();};DynarchMenu.MenuTree.prototype.closePopups=function(){var i,m;for(i=this.getFirstItem().element;i;i=i.nextSibling){m=i.__msh_info.submenu;if(m&&typeof m!="function")m.closePopups().close(false,true);}return this;};DynarchMenu.MenuTree.prototype.clearTimeout=function(){if(this._T_close){clearTimeout(this._T_close);this._T_close=null;}};DynarchMenu.MenuTree.prototype.close=function(by_key,instant){var self=this.menu;if(this.base){self._activeKeymap=null;self._activePopup=null;}else{if(!this.visible||(this._T_close&&!instant))return false;var info=this;tmp=this.closePopups().parent;tmp.resetActive(by_key?tmp.active_item:null);DynarchMenu._class(this.active_item,DynarchMenu._RE_AH);if(!by_key)tmp.active_item=null;tmp.active_submenu=null;this.active_item=this.active_submenu=null;if(instant||(this.parent.base&&!self.config.vertical))this._close();else this._T_close=setTimeout(function(){info._close();info._T_close=null;},self.config.timeout);}};DynarchMenu.MenuTree.prototype.getFirstItem=function(){return this.horiz?this.element.firstChild.__msh_info:this.table.firstChild.firstChild.__msh_info;};DynarchMenu.MenuTree.prototype.getLastItem=function(){return this.horiz?this.element.lastChild.__msh_info:this.table.lastChild.lastChild.__msh_info;};DynarchMenu.MenuTree.prototype.openContext=function(ev,trigger){var el=ev.srcElement||ev.target,p,align=this.parent_item.align;if(!trigger)trigger=null;this.menu.target=trigger;if(el.className&&DynarchMenu._RE_CTX_AL.test(el.className))align=RegExp.$1;switch(align){case "bottom":p=DynarchMenu._getPos(el);p.y+=el.offsetHeight;break;case "right":p=DynarchMenu._getPos(el);p.x+=el.offsetWidth;break;default:p={x:ev.clientX+DynarchMenu.psLeft(),y:ev.clientY+DynarchMenu.psTop()};break;}this.open(null,null,true,p);};DynarchMenu.MenuTree.prototype.open=function(el,item,instant,pos){this.clearTimeout();DynarchMenu._clearTimeout();if(DynarchMenu._OT)clearTimeout(DynarchMenu._OT);var info=this;if(instant)this._open(el,item,pos);else DynarchMenu._OT=setTimeout(function(){info._open(el,item,pos);DynarchMenu._OT=null;},this.menu.config[this.parent.base?"baseTimeout":"timeout"]);};DynarchMenu.MenuTree.prototype._close=function(){this.element.style.display="none";this.visible=false;this.menu._activePopup=this.parent;this.menu._activeKeymap=this.parent.keymap;if(this._shadow)this._shadow.style.display="none";for(var i=this.getFirstItem().element;i;i=i.nextSibling)DynarchMenu._class(i,DynarchMenu._RE_AH);DynarchMenu._closeHider(this.hider);};DynarchMenu.$=function(func,obj,par){return function(p1){func.call(obj,par,this,p1);};};DynarchMenu.MenuTree.prototype._scrollIntoView=function(item){var diff,el=item.element,table=this.table,div=table.parentNode;if(div.scrollTop>el.offsetTop){div.scrollTop=el.offsetTop;this._scrollSetArrowState();}else{diff=el.offsetTop+el.offsetHeight-(div.scrollTop+div.offsetHeight);if(diff>0)div.scrollTop+=diff;this._scrollSetArrowState();}};DynarchMenu.MenuTree.prototype._scrollSetArrowState=function(){try{var table=this.table,div=table.parentNode,s1=this._scrollDiv1,s2=this._scrollDiv2;if(div.scrollTop==0){s1.className+=" dynarch-menu-scroll-disabled dynarch-menu-scroll-up-disabled";this._scrollStopHandler();}else s1.className=s1.className.replace(DynarchMenu._RE_SCROLL_D," ");if(div.scrollTop+div.offsetHeight==table.offsetHeight){s2.className+=" dynarch-menu-scroll-disabled dynarch-menu-scroll-down-disabled";this._scrollStopHandler();}else s2.className=s2.className.replace(DynarchMenu._RE_SCROLL_D," ");}catch(ex){};};DynarchMenu.MenuTree.prototype._scrollHandler=function(dir){this.table.parentNode.scrollTop+=this._scrollStep*dir;this._scrollSetArrowState();};DynarchMenu.MenuTree.prototype._scrollStartHandler=function(dir,div){this._scrollStep=this.menu.config.scrolling.step1;this._scrollTimer=setInterval(DynarchMenu.$(this._scrollHandler,this,dir),this.menu.config.scrolling.speed);div.className+=" dynarch-menu-scroll-hover "+(dir>0?"dynarch-menu-scroll-down-hover":"dynarch-menu-scroll-up-hover");};DynarchMenu.MenuTree.prototype._scrollStopHandler=function(undef,div){if(this._scrollTimer){clearInterval(this._scrollTimer);this._scrollTimer=null;}div.className=div.className.replace(DynarchMenu._RE_SCROLL_H," ");};DynarchMenu.MenuTree.prototype._scrollDoubleSpeed=function(dbl){this._scrollStep=this.menu.config.scrolling[dbl?"step2":"step1"];};DynarchMenu.MenuTree.prototype._setupScroll=function(){var scroll_div=this.table.parentNode;if(!this._hasScroll){var CE=DynarchMenu._createElement;this._hasScroll=true;var s1=CE("div",null,document);s1.className="dynarch-menu-scroll-up";s1.innerHTML="&nbsp;";if(is_ie)s1.style.width=this.table.offsetWidth+"px";var p=scroll_div.parentNode;p.insertBefore(s1,scroll_div);var s2=s1.cloneNode(true);s2.className="dynarch-menu-scroll-down";p.appendChild(s2);var AI=DynarchMenu.addInfo;AI(s1,"onmouseover",DynarchMenu.$(this._scrollStartHandler,this,-1));AI(s2,"onmouseover",DynarchMenu.$(this._scrollStartHandler,this,1));var tmp=DynarchMenu.$(this._scrollStopHandler,this);AI(s1,"onmouseout",tmp);AI(s2,"onmouseout",tmp);tmp=DynarchMenu.$(this._scrollDoubleSpeed,this,true);AI(s1,"onmousedown",tmp);AI(s2,"onmousedown",tmp);tmp=DynarchMenu.$(this._scrollDoubleSpeed,this,false);AI(s1,"onmouseup",tmp);AI(s2,"onmouseup",tmp);this._scrollDiv1=s1;this._scrollDiv2=s2;}this._showScroll(true);scroll_div.scrollTop=0;this._scrollDiv1.className+=" dynarch-menu-scroll-up-disabled";this._scrollDiv2.className=this._scrollDiv2.className.replace(DynarchMenu._RE_SCROLL_D," ");};DynarchMenu.MenuTree.prototype._showScroll=function(disp){if(this._hasScroll){var p=this.table.parentNode.parentNode;p.firstChild.style.display=disp?"":"none";p.lastChild.style.display=disp?"":"none";}};DynarchMenu.MenuTree.prototype._open=function(el,item,pos){this.menu.config.onPopup.call(this,this.menu.target,item,pos);var m=this.element,self=this.menu,cfg=self.config,win=cfg.frames.popups,p=el?win.DynarchMenu._getPos(el):pos,pe,base=this.parent?this.parent.base:false,dx=base?cfg.basedx:cfg.dx,dy=base?cfg.basedy:cfg.dy,horiz=this.parent?this.parent.horiz:false,tmp,s,vw,sw;if(!el)el={offsetHeight:0,offsetWidth:0};if(base&&cfg.crossFrames){if(cfg.vertical){p.x=win.DynarchMenu.psLeft();p.y+=win.DynarchMenu.psTop();}else p.y=win.DynarchMenu.psTop();}else if(self._fixed&&!is_ie&&base){p.x+=win.DynarchMenu.psLeft();p.y+=win.DynarchMenu.psTop();}pe={x:p.x,y:p.y};_dynarch_top.DynarchMenu._C=self;DynarchMenu._closeOtherMenus(self);if((!base||cfg.vertical)&&item)item.parent.closePopups();if(!(base&&cfg.crossFrames)){if(horiz)p.y+=el.offsetHeight;else{if(!is_khtml){p.x+=el.offsetWidth;}else if(el){p=win.DynarchMenu._getPos(el.lastChild);p.x+=el.lastChild.offsetWidth;p.y-=1;}}}vw=win.DynarchMenu.getWinSize();vw.x+=win.DynarchMenu.psLeft();vw.y+=win.DynarchMenu.psTop();sw=cfg.shadows||[0,0];s=m.style;if(is_ie)s.position="absolute";s.visibility="hidden";s.display="block";var scroll_div=this.table.parentNode;if(cfg.scrolling){this._showScroll(false);scroll_div.style.height="";scroll_div.style.width="";}if(this.open_left||p.x+m.offsetWidth>vw.x){p.x=pe.x-m.offsetWidth+(horiz?el.offsetWidth:2);dx=-dx;}if(p.y+m.offsetHeight>vw.y&&pe.y>m.offsetHeight){p.y=pe.y-m.offsetHeight+(horiz?0:(win.DynarchMenu._getPos(m).y+m.offsetHeight-win.DynarchMenu._getPos(this.getLastItem().element).y));dy=-dy;}else if(!horiz)p.y-=win.DynarchMenu._getPos(this.getFirstItem().element).y-win.DynarchMenu._getPos(m).y;if(p.x+m.offsetWidth+sw[0]>vw.x)p.x-=sw[0];if(p.y<0)p.y=0;var y_low=p.y+m.offsetHeight-vw.y;if(cfg.scrolling&&y_low>0){var height=scroll_div.offsetHeight-y_low;height-=m.offsetHeight-scroll_div.offsetHeight;height-=sw[1];if(sw[3])height-=sw[3];height-=24;if(height<vw.y*0.75){y_low=Math.floor(vw.y*0.75-height);height+=y_low;p.y-=y_low;}if(is_ie)scroll_div.style.width=this.table.offsetWidth+"px";if(height<scroll_div.offsetHeight){scroll_div.style.height=height+"px";this._setupScroll();}}p.x+=dx;p.y+=dy;s.left=p.x+"px";s.top=p.y+"px";DynarchMenu._setupHider(this.hider,p.x,p.y,m.offsetWidth+sw[0],m.offsetHeight+sw[1]);if(this.parent){this.parent.active_submenu=this;this.parent.resetActive(item,"active");}self._activePopup=this;self._activeKeymap=this.keymap;tmp=this._shadow;if(cfg.shadows){if(!tmp){var SS=cfg.smoothShadow;this._shadow=tmp=DynarchMenu._createElement((SS&&!is_ie)?"img":"div",null,cfg.container.ownerDocument);if(SS)tmp.src=_dynarch_menu_shadow.src;tmp.className="dynarch-menu-shadow";DynarchMenu.addInfo(tmp,'__msh_info',this);if(is_ie)tmp.style.position="absolute";if(SS&&is_ie&&!is_ie5){tmp.className="dynarch-IE6-shadow";tmp.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+_dynarch_menu_shadow.src+"',sizingMethod='scale')";}tmp.style.width="2px";tmp.style.height="2px";cfg.container.appendChild(tmp);}s=tmp.style;if(sw.length>2){s.left=p.x+sw[0]+"px";s.top=p.y+sw[1]+"px";s.width=m.offsetWidth+sw[2]+"px";s.height=m.offsetHeight+sw[3]+"px";}else{s.left=p.x+sw[0]+"px";s.top=p.y+sw[1]+"px";s.width=m.offsetWidth+"px";s.height=m.offsetHeight+"px";}s.display="block";}this.visible=true;m.style.visibility="visible";};DynarchMenu.getWinSize=function(){if(is_gecko){return{x:window.innerWidth,y:window.innerHeight};}if(is_opera)return{x:window.innerWidth,y:window.innerHeight};if(is_ie){if(!document.compatMode||document.compatMode=="BackCompat")return{x:document.body.clientWidth,y:document.body.clientHeight};else return{x:document.documentElement.clientWidth,y:document.documentElement.clientHeight};}var div=document.createElement("div"),s=div.style;s.position="absolute";s.bottom=s.right="0px";document.body.appendChild(div);s={x:div.offsetLeft,y:div.offsetTop};document.body.removeChild(div);return s;};DynarchMenu.getCA=function(el,name){return el.getAttribute("DynarchMenu:"+name);};DynarchMenu._nfo={product:"hmenu-2.9",licensee:"Dynarch.com user: Omni",license_key:"linkware-7618662",purchase_date:"Tue Jan9 20:53:06 2007 GMT",license_type:"linkware"};var Builder = {NODEMAP: {AREA: 'map',CAPTION: 'table',COL: 'table',COLGROUP: 'table',LEGEND: 'fieldset',OPTGROUP: 'select',OPTION: 'select',PARAM: 'object',TBODY: 'table',TD: 'table',TFOOT: 'table',TH: 'table',THEAD: 'table',TR: 'table'},node: function(elementName) {elementName = elementName.toUpperCase();var parentTag = this.NODEMAP[elementName] || 'div';var parentElement = document.createElement(parentTag);try {parentElement.innerHTML = "<" + elementName + "></" + elementName + ">";} catch(e) {}var element = parentElement.firstChild || null;if(element && (element.tagName != elementName))element = element.getElementsByTagName(elementName)[0];if(!element) element = document.createElement(elementName);if(!element) return;if(arguments[1])if(this._isStringOrNumber(arguments[1]) ||(arguments[1] instanceof Array)) {this._children(element, arguments[1]);} else {var attrs = this._attributes(arguments[1]);if(attrs.length) {try {parentElement.innerHTML = "<" +elementName + " " +attrs + "></" + elementName + ">";} catch(e) {}element = parentElement.firstChild || null;if(!element) {element = document.createElement(elementName);for(attr in arguments[1])element[attr == 'class' ? 'className' : attr] = arguments[1][attr];}if(element.tagName != elementName)element = parentElement.getElementsByTagName(elementName)[0];}}if(arguments[2])this._children(element, arguments[2]);return element;},_text: function(text) {return document.createTextNode(text);},_attributes: function(attributes) {var attrs = [];for(attribute in attributes)attrs.push((attribute=='className' ? 'class' : attribute) +'="' + attributes[attribute].toString().escapeHTML() + '"');return attrs.join(" ");},_children: function(element, children) {if(typeof children=='object') {children.flatten().each( function(e) {if(typeof e=='object')element.appendChild(e);else if(Builder._isStringOrNumber(e))element.appendChild(Builder._text(e));});} else if(Builder._isStringOrNumber(children))element.appendChild(Builder._text(children));},_isStringOrNumber: function(param) {return(typeof param=='string' || typeof param=='number');}};var Droppables = {drops: [],remove: function(element) {this.drops = this.drops.reject(function(d) { return d.element==$(element) });},add: function(element) {element = $(element);var options = Object.extend({greedy:true,hoverclass: null,tree:false}, arguments[1] || {});if(options.containment) {options._containers = [];var containment = options.containment;if((typeof containment == 'object') &&(containment.constructor == Array)) {containment.each( function(c) { options._containers.push($(c)) });} else {options._containers.push($(containment));}}if(options.accept) options.accept = [options.accept].flatten();Element.makePositioned(element);options.element = element;this.drops.push(options);},findDeepestChild: function(drops) {deepest = drops[0];for (i = 1; i < drops.length; ++i)if (Element.isParent(drops[i].element, deepest.element))deepest = drops[i];return deepest;},isContained: function(element, drop) {var containmentNode;if(drop.tree) {containmentNode = element.treeNode;} else {containmentNode = element.parentNode;}return drop._containers.detect(function(c) { return containmentNode == c });},isAffected: function(point, element, drop) {return ((drop.element!=element) &&((!drop._containers) ||this.isContained(element, drop)) &&((!drop.accept) ||(Element.classNames(element).detect(function(v) { return drop.accept.include(v) } ) )) &&Position.within(drop.element, point[0], point[1]) );},deactivate: function(drop) {if(drop.hoverclass)Element.removeClassName(drop.element, drop.hoverclass);this.last_active = null;},activate: function(drop) {if(drop.hoverclass)Element.addClassName(drop.element, drop.hoverclass);this.last_active = drop;},show: function(point, element) {if(!this.drops.length) return;var affected = [];if(this.last_active) this.deactivate(this.last_active);this.drops.each( function(drop) {if(Droppables.isAffected(point, element, drop))affected.push(drop);});if(affected.length>0) {drop = Droppables.findDeepestChild(affected);Position.within(drop.element, point[0], point[1]);if(drop.onHover)drop.onHover(element, drop.element, Position.overlap(drop.overlap, drop.element));Droppables.activate(drop);}},fire: function(event, element) {if(!this.last_active) return;Position.prepare();if (this.isAffected([Event.pointerX(event), Event.pointerY(event)], element, this.last_active))if (this.last_active.onDrop)this.last_active.onDrop(element, this.last_active.element, event);},reset: function() {if(this.last_active)this.deactivate(this.last_active);}};var Draggables = {drags: [],observers: [],register: function(draggable) {if(this.drags.length == 0) {this.eventMouseUp= this.endDrag.bindAsEventListener(this);this.eventMouseMove = this.updateDrag.bindAsEventListener(this);this.eventKeypress= this.keyPress.bindAsEventListener(this);Event.observe(document, "mouseup", this.eventMouseUp);Event.observe(document, "mousemove", this.eventMouseMove);Event.observe(document, "keypress", this.eventKeypress);}this.drags.push(draggable);},unregister: function(draggable) {this.drags = this.drags.reject(function(d) { return d==draggable });if(this.drags.length == 0) {Event.stopObserving(document, "mouseup", this.eventMouseUp);Event.stopObserving(document, "mousemove", this.eventMouseMove);Event.stopObserving(document, "keypress", this.eventKeypress);}},activate: function(draggable) {window.focus();this.activeDraggable = draggable;},deactivate: function() {this.activeDraggable = null;},updateDrag: function(event) {if(!this.activeDraggable) return;var pointer = [Event.pointerX(event), Event.pointerY(event)];if(this._lastPointer && (this._lastPointer.inspect() == pointer.inspect())) return;this._lastPointer = pointer;this.activeDraggable.updateDrag(event, pointer);},endDrag: function(event) {if(!this.activeDraggable) return;this._lastPointer = null;this.activeDraggable.endDrag(event);this.activeDraggable = null;},keyPress: function(event) {if(this.activeDraggable)this.activeDraggable.keyPress(event);},addObserver: function(observer) {this.observers.push(observer);this._cacheObserverCallbacks();},removeObserver: function(element) {this.observers = this.observers.reject( function(o) { return o.element==element });this._cacheObserverCallbacks();},notify: function(eventName, draggable, event) {if(this[eventName+'Count'] > 0)this.observers.each( function(o) {if(o[eventName]) o[eventName](eventName, draggable, event);});},_cacheObserverCallbacks: function() {['onStart','onEnd','onDrag'].each( function(eventName) {Draggables[eventName+'Count'] = Draggables.observers.select(function(o) { return o[eventName]; }).length;});}};var Draggable = Class.create();Draggable.prototype = {initialize: function(element) {var options = Object.extend({handle: false,starteffect: function(element) {element._opacity = Element.getOpacity(element);new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7});},reverteffect: function(element, top_offset, left_offset) {var dur = Math.sqrt(Math.abs(top_offset^2)+Math.abs(left_offset^2))*0.02;element._revert = new Effect.Move(element, { x: -left_offset, y: -top_offset, duration: dur});},endeffect: function(element) {var toOpacity = typeof element._opacity == 'number' ? element._opacity : 1.0;new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity});},zindex: 1000,revert: false,scroll: false,scrollSensitivity: 20,scrollSpeed: 15,snap: false}, arguments[1] || {});this.element = $(element);if(options.handle && (typeof options.handle == 'string')) {var h = Element.childrenWithClassName(this.element, options.handle, true);if(h.length>0) this.handle = h[0];}if(!this.handle) this.handle = $(options.handle);if(!this.handle) this.handle = this.element;if(options.scroll && !options.scroll.scrollTo && !options.scroll.outerHTML)options.scroll = $(options.scroll);Element.makePositioned(this.element);this.delta= this.currentDelta();this.options= options;this.dragging = false;this.eventMouseDown = this.initDrag.bindAsEventListener(this);Event.observe(this.handle, "mousedown", this.eventMouseDown);Draggables.register(this);},destroy: function() {Event.stopObserving(this.handle, "mousedown", this.eventMouseDown);Draggables.unregister(this);},currentDelta: function() {return([parseInt(Element.getStyle(this.element,'left') || '0'),parseInt(Element.getStyle(this.element,'top') || '0')]);},initDrag: function(event) {if(Event.isLeftClick(event)) {var src = Event.element(event);if(src.tagName && (src.tagName=='INPUT' ||src.tagName=='SELECT' ||src.tagName=='OPTION' ||src.tagName=='BUTTON' ||src.tagName=='TEXTAREA')) return;if(this.element._revert) {this.element._revert.cancel();this.element._revert = null;}var pointer = [Event.pointerX(event), Event.pointerY(event)];var pos= Position.cumulativeOffset(this.element);this.offset = [0,1].map( function(i) { return (pointer[i] - pos[i]) });Draggables.activate(this);Event.stop(event);}},startDrag: function(event) {this.dragging = true;if(this.options.zindex) {this.originalZ = parseInt(Element.getStyle(this.element,'z-index') || 0);this.element.style.zIndex = this.options.zindex;}if(this.options.ghosting) {this._clone = this.element.cloneNode(true);Position.absolutize(this.element);this.element.parentNode.insertBefore(this._clone, this.element);}if(this.options.scroll) {if (this.options.scroll == window) {var where = this._getWindowScroll(this.options.scroll);this.originalScrollLeft = where.left;this.originalScrollTop = where.top;} else {this.originalScrollLeft = this.options.scroll.scrollLeft;this.originalScrollTop = this.options.scroll.scrollTop;}}Draggables.notify('onStart', this, event);if(this.options.starteffect) this.options.starteffect(this.element);},updateDrag: function(event, pointer) {if(!this.dragging) this.startDrag(event);Position.prepare();Droppables.show(pointer, this.element);Draggables.notify('onDrag', this, event);this.draw(pointer);if(this.options.change) this.options.change(this);if(this.options.scroll) {this.stopScrolling();var p;if (this.options.scroll == window) {with(this._getWindowScroll(this.options.scroll)) { p = [ left, top, left+width, top+height ]; }} else {p = Position.page(this.options.scroll);p[0] += this.options.scroll.scrollLeft;p[1] += this.options.scroll.scrollTop;p.push(p[0]+this.options.scroll.offsetWidth);p.push(p[1]+this.options.scroll.offsetHeight);}var speed = [0,0];if(pointer[0] < (p[0]+this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[0]+this.options.scrollSensitivity);if(pointer[1] < (p[1]+this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[1]+this.options.scrollSensitivity);if(pointer[0] > (p[2]-this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[2]-this.options.scrollSensitivity);if(pointer[1] > (p[3]-this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[3]-this.options.scrollSensitivity);this.startScrolling(speed);}if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0);Event.stop(event);},finishDrag: function(event, success) {this.dragging = false;if(this.options.ghosting) {Position.relativize(this.element);Element.remove(this._clone);this._clone = null;}if(success) Droppables.fire(event, this.element);Draggables.notify('onEnd', this, event);var revert = this.options.revert;if(revert && typeof revert == 'function') revert = revert(this.element);var d = this.currentDelta();if(revert && this.options.reverteffect) {this.options.reverteffect(this.element,d[1]-this.delta[1], d[0]-this.delta[0]);} else {this.delta = d;}if(this.options.zindex)this.element.style.zIndex = this.originalZ;if(this.options.endeffect)this.options.endeffect(this.element);Draggables.deactivate(this);Droppables.reset();},keyPress: function(event) {if(event.keyCode!=Event.KEY_ESC) return;this.finishDrag(event, false);Event.stop(event);},endDrag: function(event) {if(!this.dragging) return;this.stopScrolling();this.finishDrag(event, true);Event.stop(event);},draw: function(point) {var pos = Position.cumulativeOffset(this.element);var d = this.currentDelta();pos[0] -= d[0]; pos[1] -= d[1];if(this.options.scroll && (this.options.scroll != window)) {pos[0] -= this.options.scroll.scrollLeft-this.originalScrollLeft;pos[1] -= this.options.scroll.scrollTop-this.originalScrollTop;}var p = [0,1].map(function(i){return (point[i]-pos[i]-this.offset[i])}.bind(this));if(this.options.snap) {if(typeof this.options.snap == 'function') {p = this.options.snap(p[0],p[1],this);} else {if(this.options.snap instanceof Array) {p = p.map( function(v, i) {return Math.round(v/this.options.snap[i])*this.options.snap[i] }.bind(this))} else {p = p.map( function(v) {return Math.round(v/this.options.snap)*this.options.snap }.bind(this))}}}var style = this.element.style;if((!this.options.constraint) || (this.options.constraint=='horizontal'))style.left = p[0] + "px";if((!this.options.constraint) || (this.options.constraint=='vertical'))style.top= p[1] + "px";if(style.visibility=="hidden") style.visibility = "";},stopScrolling: function() {if(this.scrollInterval) {clearInterval(this.scrollInterval);this.scrollInterval = null;Draggables._lastScrollPointer = null;}},startScrolling: function(speed) {this.scrollSpeed = [speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed];this.lastScrolled = new Date();this.scrollInterval = setInterval(this.scroll.bind(this), 10);},scroll: function() {var current = new Date();var delta = current - this.lastScrolled;this.lastScrolled = current;if(this.options.scroll == window) {with (this._getWindowScroll(this.options.scroll)) {if (this.scrollSpeed[0] || this.scrollSpeed[1]) {var d = delta / 1000;this.options.scroll.scrollTo( left + d*this.scrollSpeed[0], top + d*this.scrollSpeed[1] );}}} else {this.options.scroll.scrollLeft += this.scrollSpeed[0] * delta / 1000;this.options.scroll.scrollTop+= this.scrollSpeed[1] * delta / 1000;}Position.prepare();Droppables.show(Draggables._lastPointer, this.element);Draggables.notify('onDrag', this);Draggables._lastScrollPointer = Draggables._lastScrollPointer || $A(Draggables._lastPointer);Draggables._lastScrollPointer[0] += this.scrollSpeed[0] * delta / 1000;Draggables._lastScrollPointer[1] += this.scrollSpeed[1] * delta / 1000;if (Draggables._lastScrollPointer[0] < 0)Draggables._lastScrollPointer[0] = 0;if (Draggables._lastScrollPointer[1] < 0)Draggables._lastScrollPointer[1] = 0;this.draw(Draggables._lastScrollPointer);if(this.options.change) this.options.change(this);},_getWindowScroll: function(w) {var T, L, W, H;with (w.document) {if (w.document.documentElement && documentElement.scrollTop) {T = documentElement.scrollTop;L = documentElement.scrollLeft;} else if (w.document.body) {T = body.scrollTop;L = body.scrollLeft;}if (w.innerWidth) {W = w.innerWidth;H = w.innerHeight;} else if (w.document.documentElement && documentElement.clientWidth) {W = documentElement.clientWidth;H = documentElement.clientHeight;} else {W = body.offsetWidth;H = body.offsetHeight}}return { top: T, left: L, width: W, height: H };}};var SortableObserver = Class.create();SortableObserver.prototype = {initialize: function(element, observer) {this.element= $(element);this.observer= observer;this.lastValue = Sortable.serialize(this.element);},onStart: function() {this.lastValue = Sortable.serialize(this.element);},onEnd: function() {Sortable.unmark();if(this.lastValue != Sortable.serialize(this.element))this.observer(this.element)}};var Sortable = {sortables: {},_findRootElement: function(element) {while (element.tagName != "BODY") {if(element.id && Sortable.sortables[element.id]) return element;element = element.parentNode;}},options: function(element) {element = Sortable._findRootElement($(element));if(!element) return;return Sortable.sortables[element.id];},destroy: function(element){var s = Sortable.options(element);if(s) {Draggables.removeObserver(s.element);s.droppables.each(function(d){ Droppables.remove(d) });s.draggables.invoke('destroy');delete Sortable.sortables[s.element.id];}},create: function(element) {element = $(element);var options = Object.extend({element:element,tag:'li',dropOnEmpty: false,tree:false,treeTag:'ul',overlap:'vertical',constraint:'vertical',containment: element,handle:false,only:false,hoverclass:null,ghosting:false,scroll:false,scrollSensitivity: 20,scrollSpeed: 15,format:/^[^_]*_(.*)$/,onChange:Prototype.emptyFunction,onUpdate:Prototype.emptyFunction}, arguments[1] || {});this.destroy(element);var options_for_draggable = {revert:true,scroll:options.scroll,scrollSpeed: options.scrollSpeed,scrollSensitivity: options.scrollSensitivity,ghosting:options.ghosting,constraint:options.constraint,handle:options.handle };if(options.starteffect)options_for_draggable.starteffect = options.starteffect;if(options.reverteffect)options_for_draggable.reverteffect = options.reverteffect;else if(options.ghosting) options_for_draggable.reverteffect = function(element) {element.style.top= 0;element.style.left = 0;};if(options.endeffect)options_for_draggable.endeffect = options.endeffect;if(options.zindex)options_for_draggable.zindex = options.zindex;var options_for_droppable = {overlap:options.overlap,containment: options.containment,tree:options.tree,hoverclass:options.hoverclass,onHover:Sortable.onHover};var options_for_tree = {onHover:Sortable.onEmptyHover,overlap:options.overlap,containment:options.containment,hoverclass:options.hoverclass};Element.cleanWhitespace(element);options.draggables = [];options.droppables = [];if(options.dropOnEmpty || options.tree) {Droppables.add(element, options_for_tree);options.droppables.push(element);}(this.findElements(element, options) || []).each( function(e) {var handle = options.handle ?Element.childrenWithClassName(e, options.handle)[0] : e;options.draggables.push(new Draggable(e, Object.extend(options_for_draggable, { handle: handle })));Droppables.add(e, options_for_droppable);if(options.tree) e.treeNode = element;options.droppables.push(e);});if(options.tree) {(Sortable.findTreeElements(element, options) || []).each( function(e) {Droppables.add(e, options_for_tree);e.treeNode = element;options.droppables.push(e);});}this.sortables[element.id] = options;Draggables.addObserver(new SortableObserver(element, options.onUpdate));},findElements: function(element, options) {return Element.findChildren(element, options.only, options.tree ? true : false, options.tag);},findTreeElements: function(element, options) {return Element.findChildren(element, options.only, options.tree ? true : false, options.treeTag);},onHover: function(element, dropon, overlap) {if(Element.isParent(dropon, element)) return;if(overlap > .33 && overlap < .66 && Sortable.options(dropon).tree) {return;} else if(overlap>0.5) {Sortable.mark(dropon, 'before');if(dropon.previousSibling != element) {var oldParentNode = element.parentNode;element.style.visibility = "hidden";dropon.parentNode.insertBefore(element, dropon);if(dropon.parentNode!=oldParentNode)Sortable.options(oldParentNode).onChange(element);Sortable.options(dropon.parentNode).onChange(element);}} else {Sortable.mark(dropon, 'after');var nextElement = dropon.nextSibling || null;if(nextElement != element) {var oldParentNode = element.parentNode;element.style.visibility = "hidden";dropon.parentNode.insertBefore(element, nextElement);if(dropon.parentNode!=oldParentNode)Sortable.options(oldParentNode).onChange(element);Sortable.options(dropon.parentNode).onChange(element);}}},onEmptyHover: function(element, dropon, overlap) {var oldParentNode = element.parentNode;var droponOptions = Sortable.options(dropon);if(!Element.isParent(dropon, element)) {var index;var children = Sortable.findElements(dropon, {tag: droponOptions.tag});var child = null;if(children) {var offset = Element.offsetSize(dropon, droponOptions.overlap) * (1.0 - overlap);for (index = 0; index < children.length; index += 1) {if (offset - Element.offsetSize (children[index], droponOptions.overlap) >= 0) {offset -= Element.offsetSize (children[index], droponOptions.overlap);} else if (offset - (Element.offsetSize (children[index], droponOptions.overlap) / 2) >= 0) {child = index + 1 < children.length ? children[index + 1] : null;break;} else {child = children[index];break;}}}dropon.insertBefore(element, child);Sortable.options(oldParentNode).onChange(element);droponOptions.onChange(element);}},unmark: function() {if(Sortable._marker) Element.hide(Sortable._marker);},mark: function(dropon, position) {var sortable = Sortable.options(dropon.parentNode);if(sortable && !sortable.ghosting) return;if(!Sortable._marker) {Sortable._marker = $('dropmarker') || document.createElement('DIV');Element.hide(Sortable._marker);Element.addClassName(Sortable._marker, 'dropmarker');Sortable._marker.style.position = 'absolute';document.getElementsByTagName("body").item(0).appendChild(Sortable._marker);}var offsets = Position.cumulativeOffset(dropon);Sortable._marker.style.left = offsets[0] + 'px';Sortable._marker.style.top = offsets[1] + 'px';if(position=='after')if(sortable.overlap == 'horizontal')Sortable._marker.style.left = (offsets[0]+dropon.clientWidth) + 'px';elseSortable._marker.style.top = (offsets[1]+dropon.clientHeight) + 'px';Element.show(Sortable._marker);},_tree: function(element, options, parent) {var children = Sortable.findElements(element, options) || [];for (var i = 0; i < children.length; ++i) {var match = children[i].id.match(options.format);if (!match) continue;var child = {id: encodeURIComponent(match ? match[1] : null),element: element,parent: parent,children: new Array,position: parent.children.length,container: Sortable._findChildrenElement(children[i], options.treeTag.toUpperCase())};if (child.container)this._tree(child.container, options, child);parent.children.push (child);}return parent;},_findChildrenElement: function (element, containerTag) {if (element && element.hasChildNodes)for (var i = 0; i < element.childNodes.length; ++i)if (element.childNodes[i].tagName == containerTag)return element.childNodes[i];return null;},tree: function(element) {element = $(element);var sortableOptions = this.options(element);var options = Object.extend({tag: sortableOptions.tag,treeTag: sortableOptions.treeTag,only: sortableOptions.only,name: element.id,format: sortableOptions.format}, arguments[1] || {});var root = {id: null,parent: null,children: new Array,container: element,position: 0};return Sortable._tree (element, options, root);},_constructIndex: function(node) {var index = '';do {if (node.id) index = '[' + node.position + ']' + index;} while ((node = node.parent) != null);return index;},sequence: function(element) {element = $(element);var options = Object.extend(this.options(element), arguments[1] || {});return $(this.findElements(element, options) || []).map( function(item) {return item.id.match(options.format) ? item.id.match(options.format)[1] : '';});},setSequence: function(element, new_sequence) {element = $(element);var options = Object.extend(this.options(element), arguments[2] || {});var nodeMap = {};this.findElements(element, options).each( function(n) {if (n.id.match(options.format))nodeMap[n.id.match(options.format)[1]] = [n, n.parentNode];n.parentNode.removeChild(n);});new_sequence.each(function(ident) {var n = nodeMap[ident];if (n) {n[1].appendChild(n[0]);delete nodeMap[ident];}});},serialize: function(element) {element = $(element);var options = Object.extend(Sortable.options(element), arguments[1] || {});var name = encodeURIComponent((arguments[1] && arguments[1].name) ? arguments[1].name : element.id);if (options.tree) {return Sortable.tree(element, arguments[1]).children.map( function (item) {return [name + Sortable._constructIndex(item) + "=" +encodeURIComponent(item.id)].concat(item.children.map(arguments.callee));}).flatten().join('&');} else {return Sortable.sequence(element, arguments[1]).map( function(item) {return name + "[]=" + encodeURIComponent(item);}).join('&');}}};Element.isParent = function(child, element) {if (!child.parentNode || child == element) return false;if (child.parentNode == element) return true;return Element.isParent(child.parentNode, element);};Element.findChildren = function(element, only, recursive, tagName) {if(!element.hasChildNodes()) return null;tagName = tagName.toUpperCase();if(only) only = [only].flatten();var elements = [];$A(element.childNodes).each( function(e) {if(e.tagName && e.tagName.toUpperCase()==tagName &&(!only || (Element.classNames(e).detect(function(v) { return only.include(v) }))))elements.push(e);if(recursive) {var grandchildren = Element.findChildren(e, only, recursive, tagName);if(grandchildren) elements.push(grandchildren);}});return (elements.length>0 ? elements.flatten() : []);};Element.offsetSize = function (element, type) {if (type == 'vertical' || type == 'height'){return element.offsetHeight;}else{return element.offsetWidth;}};var fdSliderController;(function() {function fdSlider(inp,range,callback,classname,hide,tween, vertical) {this._created= false;this._inp= inp;this._hideInput = true;this._min= range[0]||0;this._max= range[1]||0;this._range= this._max - this._min;this._tween= tween;this._mouseX= 0;this._timer= null;this._classname = classname||'';this._drag= false;this._kbEnabled = true;this._callback= callback||false;this._vertical= vertical||false;this._x;this._y;this._wrapper;this._outerWrapper;this._bar;this._handle;this._events = {stopevent: function(e) {if (e == null) e = document.parentWindow.event;if (e.stopPropagation) {e.stopPropagation();e.preventDefault();}return false;},onfocus: function(e) {self._wrapper.className = self._wrapper.className + ' focused';},onblur: function(e) {self._wrapper.className = self._wrapper.className.replace('focused','');},onkeypress: function(e) {if (e == null) e = document.parentWindow.event;var kc = e.keyCode;if ((kc >= 35 && kc <= 40) || !self._kbEnabled) {return self._events.stopevent(e);}},onkeydown: function(e) {if(!self._kbEnabled) return true;if (e == null) e = document.parentWindow.event;var kc = e.keyCode != null ? e.keyCode : e.charCode;if ( kc < 35 || kc > 40 ) return true;var xtmp = self._vertical ? self._handle.offsetTop : self._handle.offsetLeft;var wtmp = self._vertical ? self._outerWrapper.offsetHeight - self._handle.offsetHeight : self._outerWrapper.offsetWidth - self._handle.offsetWidth;var inc= Math.round(self._incPx / 2) < 1 ? 1 : Math.round(self._incPx / 2);if(self._vertical) inc = -inc;if ( kc == 37 || kc == 40 ) {xtmp -= inc;xtmp = Math.floor(xtmp);} else if ( kc == 39 || kc == 38) {xtmp += inc;xtmp = Math.ceil(xtmp);} else if ( kc == 35 ) {xtmp = wtmp;} else if ( kc == 36 ) {xtmp = 0;}if(xtmp < 0) xtmp = 0;else if(xtmp > wtmp) xtmp = wtmp;self.updateInput(xtmp);if(self._vertical) self._handle.style.top = xtmp + "px";else self._handle.style.left = xtmp + "px";return self._events.stopevent(e);},onchange: function( e ) {var pos = self.calcFromInput();if(self._vertical) self._handle.style.top = pos + "px";else self._handle.style.left = pos + "px";if(self._callback && self._callback in window) {window[self._callback]();}return true;},onmouseover: function( e ) {this.className = this.className +' fd-slider-hover';},onmouseout: function( e ) {this.className = this.className.replace(/fd\-slider\-hover/g,"");},onmouseup: function( e ) {self._kbEnabled = true;self._handle.className = self._handle.className.replace("fd-slider-hover","");if(self._drag) {fdSliderController.removeEvent(document, 'mousemove', self._events.trackmouse);self._drag = false;}fdSliderController.removeEvent(document, 'mouseup',self._events.onmouseup);clearTimeout(self._timer);self._timer = null;},trackmouse: function( e ) {if (!e) var e = window.event;var x = self._vertical ? self._handleX + (e.clientY-self._mouseX) : self._handleX + (e.clientX-self._mouseX);if(x < 0) x = 0;var max = self._vertical ? self._outerWrapper.offsetHeight - self._handle.offsetHeight : self._outerWrapper.offsetWidth - self._handle.offsetWidth;if(x > max) x = max;if(self._vertical) self._handle.style.top = x + "px";else self._handle.style.left = x + "px";self.updateInput(x);},onmousedown: function( e ) {clearTimeout(self._timer);self._timer = null;self._kbEnabled = false;var targ;if (!e) var e = window.event;if (e.target) targ = e.target;else if (e.srcElement) targ = e.srcElement;if (targ.nodeType == 3) targ = targ.parentNode;if(targ.className.search("fd-slider-handle") != -1) {self._handle.className = self._handle.className + " fd-slider-hover";self._mouseX = self._vertical ? e.clientY : e.clientX;self._handleX = parseInt(self._vertical ? self._handle.style.top : self._handle.style.left)||0;self._handle.className = self._handle.className.replace('fd-slider-hover', '') + ' fd-slider-hover';self._drag = true;fdSliderController.addEvent(document, 'mousemove', self._events.trackmouse);fdSliderController.addEvent(document, 'mouseup',self._events.onmouseup);} else {self.locate();self._drag= false;var posx= 0;var sLft= 0;var sTop= 0;if (document.documentElement && document.documentElement.scrollTop) {sTop = document.documentElement.scrollTop;sLft = document.documentElement.scrollLeft;} else if (document.body) {sTop = document.body.scrollTop;sLft = document.body.scrollLeft;}if (e.pageX)posx = self._vertical ? e.pageY : e.pageX;else if (e.clientX)posx = self._vertical ? e.clientY + sTop : e.clientX + sLft;posx -= ((self._vertical ? self._y : self._x) + Math.round((self._vertical ? self._handle.offsetHeight : self._handle.offsetWidth)/2));if(posx < 0) posx = 0;else if(!self._vertical && posx > self._outerWrapper.offsetWidth - self._handle.offsetWidth)posx = self._outerWrapper.offsetWidth - self._handle.offsetWidth;else if(self._vertical && posx > self._outerWrapper.offsetHeight - self._handle.offsetHeight) posx = self._outerWrapper.offsetHeight - self._handle.offsetHeight;if(self._tween) {self.tweenTo(posx);} else {self._posx = posx;fdSliderController.addEvent(document, 'mouseup', self._events.onmouseup);self.onTimer();}}}};this.onTimer = function() {var xtmp = self._vertical ? self._handle.offsetTop : self._handle.offsetLeft;if(self._posx < xtmp) {xtmp -= self._incPx;xtmp = Math.floor(xtmp);if(xtmp < self._posx) xtmp = self._posx;} else {xtmp += self._incPx;xtmp = Math.ceil(xtmp);if(xtmp > self._posx) xtmp = self._posx;}self.updateInput(xtmp);if(self._vertical) {self._handle.style.top = xtmp + "px";} else {self._handle.style.left = xtmp + "px";}if(xtmp != self._posx) self._timer = setTimeout(self.onTimer, 200);else self._kbEnabled = true;};this.calculateRange = function() {var sW = self._vertical ? self._outerWrapper.offsetHeight : self._outerWrapper.offsetWidth;var hW = self._vertical ? self._handle.offsetHeight : self._handle.offsetWidth;this._incPx= (sW - hW) / 10 < 1 ? 1 : (sW - hW) / 10;};this.locate = function(){var curleft = 0;var curtop= 0;var obj = self._outerWrapper;try {while (obj.offsetParent) {curleft += obj.offsetLeft;curtop+= obj.offsetTop;obj= obj.offsetParent;};} catch (e) {}self._x = curleft;self._y = curtop;};this.tweenTo = function(x){self._kbEnabled = false;self._tweenX = parseInt(x);self._tweenB = parseInt(self._vertical ? self._handle.style.top : self._handle.style.left);self._tweenC = self._tweenX - self._tweenB;self._tweenD = 20;self._frame= 0;if (!self._timer) self._timer = setTimeout(self.tween,50);};this.tween = function(){self._frame++;var c = self._tweenC;var d = 20;var t = self._frame;var b = self._tweenB;var x = Math.ceil((t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b);if(self._vertical) self._handle.style.top = x + "px";else self._handle.style.left = x + "px";self.updateInput(x);if(t!=d && !self._md) self._timer = setTimeout(self.tween,20);else {if(self._vertical) self._handle.style.top = self._tweenX + "px";else self._handle.style.left = self._tweenX + "px";clearTimeout(self._timer);self._timer = null;self._kbEnabled = true;};};this.updateInput = function(x) {var max = self._vertical ? self._outerWrapper.offsetHeight - self._handle.offsetHeight : self._outerWrapper.offsetWidth - self._handle.offsetWidth;var inc = max / self._range;var val = self._vertical ? -Math.floor((x / inc) + -Math.abs(self._min)) : Math.floor((x / inc) + Math.abs(self._min));if(val < self._min) val = self._min;else if(val > self._max) val = self._max;self._inp.value = val;if(self._callback && self._callback in window) window[self._callback]();};this.calcFromInput = function() {var value = parseInt(self._inp.value);if(isNaN(value)) value = self._min;if(value < self._min) value = self._min;else if(value > self._max) value = self._max;self._inp.value = value;var max = self._vertical ? self._outerWrapper.offsetHeight - self._handle.offsetHeight : self._outerWrapper.offsetWidth - self._handle.offsetWidth;var inc = max / self._range;var tot = value - self._min;return Math.ceil(tot * inc);};this.build = function() {if(self._hideInput) self._inp.style.display = "none";else fdSliderController.addEvent(self._inp,'change',self._events.onchange);self._outerWrapper= document.createElement('div');self._outerWrapper.className= "fd-slider" + (self._vertical ? "-vertical " : " ") + self._classname;self._outerWrapper.id= "fd-slider-" + inp.name;self._wrapper= document.createElement('div');self._wrapper.className= "fd-slider-inner";self._bar= document.createElement('div');self._bar.className= "fd-slider-bar";self._handle= document.createElement('div');self._handle.className= "fd-slider-handle";self._wrapper.appendChild(self._bar);self._wrapper.appendChild(self._handle);self._outerWrapper.appendChild(self._wrapper);self._inp.parentNode.insertBefore(self._outerWrapper, self._inp);self._wrapper.setAttribute("autoComplete", "off");self._wrapper.setAttribute("tabIndex", "1");self._wrapper.onblur= self._events.onblur;self._wrapper.onfocus= self._events.onfocus;fdSliderController.addEvent(self._handle,"mouseover", self._events.onmouseover);fdSliderController.addEvent(self._handle,"mouseout",self._events.onmouseout);fdSliderController.addEvent(self._wrapper, "mousedown", self._events.onmousedown);fdSliderController.addEvent(self._wrapper, "keypress",self._events.onkeypress);fdSliderController.addEvent(self._wrapper, "keydown",self._events.onkeydown);self.recalculate();};this.resetPosition = function() {var max = self._vertical ? self._outerWrapper.offsetHeight - self._handle.offsetHeight : self._outerWrapper.offsetWidth - self._handle.offsetWidth;var inc = max / self._range;if(self._vertical) {self._handle.style.top = Math.ceil(self._inp.value * inc) + "px";} else {self._handle.style.left = Math.ceil(self._inp.value * inc) + "px";}};this.recalculate = function() {self.locate();try {var sW = self._outerWrapper.offsetWidth;var sH = self._outerWrapper.offsetHeight;var hW = self._handle.offsetWidth;var hH = self._handle.offsetHeight;var bH = self._bar.offsetHeight;var bW = self._bar.offsetWidth;if(self._vertical) {self._bar.style.height = Math.round(sH - hH) + "px";self._bar.style.left= Math.floor((sW - bW) / 2) + "px";self._bar.style.top= Math.round(hH / 2) + "px";} else {self._bar.style.width= Math.round(sW - hW) + "px";self._bar.style.left= Math.round(hW / 2) + "px";self._bar.style.top= Math.floor((sH - bH) / 2) + "px";}self.calculateRange();var pos = self.calcFromInput();if(self._vertical) {self._handle.style.top = pos + "px";} else {self._handle.style.left = pos + "px";}} catch (e) {}};var self = this;fdSliderController.addEvent(window, 'resize', self.recalculate);self.build();};fdSliderController = {sliders: {},tab: 1,uniqueid: 1,addEvent: function(obj, type, fn) {if( obj.attachEvent ) {obj["e"+type+fn] = fn;obj[type+fn] = function(){obj["e"+type+fn]( window.event );};obj.attachEvent( "on"+type, obj[type+fn] );} else obj.addEventListener( type, fn, true );},removeEvent: function(obj, type, fn) {if( obj.detachEvent ) {obj.detachEvent( "on"+type, obj[type+fn] );obj[type+fn] = null;} else obj.removeEventListener( type, fn, true );},_construct: function( e ) {var regExp_1 = /fd_range_([-]{0,1}[0-9]+){1}_([-]{0,1}[0-9]+){1}/ig;var regExp_2 = /fd_callback_([a-zA-Z0-9_]+)/ig;var regExp_3 = /fd_classname_([a-zA-Z0-9_\-]+)/ig;var inputs= document.getElementsByTagName("input");var classname = "";var func= "";var hide= false;var tween= true;var vertical= false;var callback, cName, startIndex, range;for(var i = 0, inp; inp = inputs[i]; i++) {if(inp.type == "text" && inp.className && inp.className.search(regExp_1) != -1) {if(document.getElementById("fd-slider-"+inp.name)) continue;range = inp.className.match(regExp_1)[0].replace(/fd_range_/, '').split('_');callback = "";if(inp.className.search(regExp_2) != -1) {callback = inp.className.match(regExp_2)[0].replace(/fd_callback_/, '');}classname = "";if(inp.className.search(regExp_3) != -1) {classname = inp.className.match(regExp_3)[0].replace(/fd_classname_/, '');}hide= inp.className.search(/fd_hide_input/ig) != -1;tween = inp.className.search(/fd_tween/ig) != -1;vertical = inp.className.search(/fd_vertical/ig) != -1;fdSliderController.sliders[inp.name] = new fdSlider(inp, range, callback, classname, hide, tween, vertical);}}},_deconstruct: function( e ) {}}})();var MSIE = navigator.userAgent.indexOf('MSIE')>=0?true:false;var navigatorVersion = navigator.appVersion.replace(/.*?MSIE (\d\.\d).*/g,'$1')/1;var form_widget_amount_slider_handle = 'images/slider_handle.gif';var slider_handle_image_obj = false;var sliderObjectArray = new Array();var slider_counter = 0;var slideInProgress = false;var handle_start_x;var event_start_x;var currentSliderIndex;function form_widget_cancel_event(){return false;}function getImageSliderHeight(){if(!slider_handle_image_obj){slider_handle_image_obj = new Image();slider_handle_image_obj.src = form_widget_amount_slider_handle;}if(slider_handle_image_obj.width>0){return;}else{setTimeout('getImageSliderHeight()',50);}}function positionSliderImage(e,theIndex,inputObj){if(this)inputObj = this;if(!theIndex)theIndex = inputObj.getAttribute('sliderIndex');var handleImg = document.getElementById('slider_handle' + theIndex);var ratio = sliderObjectArray[theIndex]['width'] / (sliderObjectArray[theIndex]['max']-sliderObjectArray[theIndex]['min']);var currentValue = sliderObjectArray[theIndex]['formTarget'].value-sliderObjectArray[theIndex]['min'];handleImg.style.left = currentValue * ratio + 'px';setColorByRGB();}function adjustFormValue(theIndex){var handleImg = document.getElementById('slider_handle' + theIndex);var ratio = sliderObjectArray[theIndex]['width'] / (sliderObjectArray[theIndex]['max']-sliderObjectArray[theIndex]['min']);var currentPos = handleImg.style.left.replace('px','');sliderObjectArray[theIndex]['formTarget'].value = Math.round(currentPos / ratio) + sliderObjectArray[theIndex]['min'];}function initMoveSlider(e){if(document.all)e = event;slideInProgress = true;event_start_x = e.clientX;handle_start_x = this.style.left.replace('px','');currentSliderIndex = this.id.replace(/[^\d]/g,'');return false;}function startMoveSlider(e){if(document.all)e = event;if(!slideInProgress)return;var leftPos = handle_start_x/1 + e.clientX/1 - event_start_x;if(leftPos<0)leftPos = 0;if(leftPos/1>sliderObjectArray[currentSliderIndex]['width'])leftPos = sliderObjectArray[currentSliderIndex]['width'];document.getElementById('slider_handle' + currentSliderIndex).style.left = leftPos + 'px';adjustFormValue(currentSliderIndex);if(sliderObjectArray[currentSliderIndex]['onchangeAction']){eval(sliderObjectArray[currentSliderIndex]['onchangeAction']);}}function stopMoveSlider(){slideInProgress = false;}function form_widget_amount_slider(targetElId,formTarget,width,min,max,onchangeAction){if(!slider_handle_image_obj){getImageSliderHeight();}slider_counter = slider_counter +1;sliderObjectArray[slider_counter] = new Array();sliderObjectArray[slider_counter] = {"width":width - 9,"min":min,"max":max,"formTarget":formTarget,"onchangeAction":onchangeAction};formTarget.setAttribute('sliderIndex',slider_counter);formTarget.onchange = positionSliderImage;var parentObj = document.createElement('DIV');parentObj.style.width = width + 'px';parentObj.style.height = '12px';parentObj.style.position = 'relative';parentObj.id = 'slider_container' + slider_counter;document.getElementById(targetElId).appendChild(parentObj);var obj = document.createElement('DIV');obj.className = 'form_widget_amount_slider';obj.innerHTML = '<span></span>';obj.style.width = width + 'px';obj.id = 'slider_slider' + slider_counter;obj.style.position = 'absolute';obj.style.bottom = '0px';parentObj.appendChild(obj);var handleImg = document.createElement('IMG');handleImg.style.position = 'absolute';handleImg.style.left = '0px';handleImg.style.zIndex = 5;handleImg.src = slider_hand