(function($){var $o;$.fn.mColorPicker=function(options){$o=$.extend($.fn.mColorPicker.defaults,options);if($o.swatches.length<10)$o.swatches=$.fn.mColorPicker.defaults.swatches
if($("div#mColorPicker").length<1)$.fn.mColorPicker.drawPicker();if($('#css_disabled_color_picker').length<1)$('head').prepend('<style id="css_disabled_color_picker" type="text/css">.mColorPicker[disabled] + span, .mColorPicker[disabled="disabled"] + span, .mColorPicker[disabled="true"] + span {filter:alpha(opacity=50);-moz-opacity:0.5;-webkit-opacity:0.5;-khtml-opacity: 0.5;opacity: 0.5;}</style>');$('.mColorPicker').live('keyup',function(){try{$(this).css({'background-color':$(this).val()}).css({'color':$.fn.mColorPicker.textColor($(this).css('background-color'))}).trigger('change');}catch(r){}});$('.mColorPickerTrigger').live('click',function(){$.fn.mColorPicker.colorShow($(this).attr('id').replace('icp_',''));});this.each(function(){$.fn.mColorPicker.drawPickerTriggers($(this));});return this;};$.fn.mColorPicker.currentColor=false;$.fn.mColorPicker.currentValue=false;$.fn.mColorPicker.color=false;$.fn.mColorPicker.init={replace:'[type=color]',index:0,enhancedSwatches:true,allowTransparency:true,checkRedraw:'DOMUpdated',liveEvents:false,showLogo:true};$.fn.mColorPicker.defaults={imageFolder:'/js/mColorPicker/images/',swatches:["#ffffff","#ffff00","#00ff00","#00ffff","#0000ff","#ff00ff","#ff0000","#4c2b11","#3b3b3b","#000000"]};$.fn.mColorPicker.liveEvents=function(){$.fn.mColorPicker.init.liveEvents=true;if($.fn.mColorPicker.init.checkRedraw&&$.fn.mColorPicker.init.replace){$(document).bind($.fn.mColorPicker.init.checkRedraw+'.mColorPicker',function(){$('input[data-mcolorpicker!="true"]').filter(function(){return($.fn.mColorPicker.init.replace=='[type=color]')?this.getAttribute("type")=='color':$(this).is($.fn.mColorPicker.init.replace);}).mColorPicker();});}};$.fn.mColorPicker.drawPickerTriggers=function($t){if($t[0].nodeName.toLowerCase()!='input')return false;var id=$t.attr('id')||'color_'+$.fn.mColorPicker.init.index++,hidden=false;$t.attr('id',id);if($t.attr('text')=='hidden'||$t.attr('data-text')=='hidden')hidden=true;var color=$t.val(),width=($t.width()>0)?$t.width():parseInt($t.css('width'),10),height=($t.height())?$t.height():parseInt($t.css('height'),10),flt=$t.css('float'),image=(color=='transparent')?"url('"+$o.imageFolder+"/grid.gif')":'',colorPicker='';$('body').append('<span id="color_work_area"></span>');$('span#color_work_area').append($t.clone(true));colorPicker=$('span#color_work_area').html().replace(/type="color"/gi,'').replace(/input /gi,(hidden)?'input type="hidden"':'input type="text"');$('span#color_work_area').html('').remove();$t.after((hidden)?'<span style="cursor:pointer;border:1px solid black;float:'+flt+';width:'+width+'px;height:'+height+'px;" id="icp_'+id+'">&nbsp;</span>':'').after(colorPicker).remove();if(hidden){$('#icp_'+id).css({'background-color':color,'background-image':image,'display':'inline-block'}).attr('class',$('#'+id).attr('class')).addClass('mColorPickerTrigger');}else{$('#'+id).css({'background-color':color,'background-image':image}).css({'color':$.fn.mColorPicker.textColor($('#'+id).css('background-color'))}).after('<span style="cursor:pointer;" id="icp_'+id+'" class="mColorPickerTrigger"><img src="'+$o.imageFolder+'color.png" style="border:0;margin:0 0 0 3px" align="absmiddle"></span>').addClass('mColorPickerInput');}
$('#icp_'+id).attr('data-mcolorpicker','true');$('#'+id).addClass('mColorPicker');return $('#'+id);};$.fn.mColorPicker.drawPicker=function(){$(document.createElement("div")).attr("id","mColorPicker").css('display','none').html('<div id="mColorPickerWrapper"><div id="mColorPickerImg" class="mColor"></div><div id="mColorPickerImgGray" class="mColor"></div><div id="mColorPickerSwatches"><div class="mClear"></div></div><div id="mColorPickerFooter"><input type="text" size="8" id="mColorPickerInput"/></div></div>').appendTo("body");$(document.createElement("div")).attr("id","mColorPickerBg").css({'display':'none'}).appendTo("body");for(n=9;n>-1;n--){$(document.createElement("div")).attr({'id':'cell'+n,'class':"mPastColor"+((n>0)?' mNoLeftBorder':'')}).html('&nbsp;').prependTo("#mColorPickerSwatches");}
$('#mColorPicker').css({'border':'1px solid #ccc','color':'#fff','z-index':999998,'width':'194px','height':'184px','font-size':'12px','font-family':'times'});$('.mPastColor').css({'height':'18px','width':'18px','border':'1px solid #000','float':'left'});$('#colorPreview').css({'height':'50px'});$('.mNoLeftBorder').css({'border-left':0});$('.mClear').css({'clear':'both'});$('#mColorPickerWrapper').css({'position':'relative','border':'solid 1px gray','z-index':999999});$('#mColorPickerImg').css({'height':'128px','width':'192px','border':0,'cursor':'crosshair','background-image':"url('"+$o.imageFolder+"colorpicker.png')"});$('#mColorPickerImgGray').css({'height':'8px','width':'192px','border':0,'cursor':'crosshair','background-image':"url('"+$o.imageFolder+"graybar.jpg')"});$('#mColorPickerInput').css({'border':'solid 1px gray','font-size':'10pt','margin':'3px','width':'80px'});$('#mColorPickerImgGrid').css({'border':0,'height':'20px','width':'20px','vertical-align':'text-bottom'});$('#mColorPickerSwatches').css({'border-right':'1px solid #000'});$('#mColorPickerFooter').css({'background-image':"url('"+$o.imageFolder+"grid.gif')",'position':'relative','height':'26px'});if($.fn.mColorPicker.init.allowTransparency)$('#mColorPickerFooter').prepend('<span id="mColorPickerTransparent" class="mColor" style="font-size:16px;color:#000;padding-right:30px;padding-top:3px;cursor:pointer;overflow:hidden;float:right;">transparent</span>');if($.fn.mColorPicker.init.showLogo)$('#mColorPickerFooter').prepend('<a href="http://meta100.com/" title="Meta100 - Designing Fun" alt="Meta100 - Designing Fun" style="float:right;" target="_blank"><img src="'+$o.imageFolder+'meta100.png" title="Meta100 - Designing Fun" alt="Meta100 - Designing Fun" style="border:0;border-left:1px solid #aaa;right:0;position:absolute;"/></a>');$("#mColorPickerBg").click($.fn.mColorPicker.closePicker);var swatch=$.fn.mColorPicker.getCookie('swatches'),i=0;if(typeof swatch=='string')swatch=swatch.split('||');if(swatch==null||$.fn.mColorPicker.init.enhancedSwatches||swatch.length<10)swatch=$o.swatches;$(".mPastColor").each(function(){$(this).css('background-color',swatch[i++].toLowerCase());});};$.fn.mColorPicker.closePicker=function(){$(".mColor, .mPastColor, #mColorPickerInput, #mColorPickerWrapper").unbind();$("#mColorPickerBg").hide();$("#mColorPicker").fadeOut()};$.fn.mColorPicker.colorShow=function(id){var $e=$("#icp_"+id);pos=$e.offset(),$i=$("#"+id);hex=$i.attr('data-hex')||$i.attr('hex'),pickerTop=pos.top+$e.outerHeight(),pickerLeft=pos.left,$d=$(document),$m=$("#mColorPicker");if($i.attr('disabled'))return false;if(pickerTop+$m.height()>$d.height())pickerTop=pos.top-$m.height();if(pickerLeft+$m.width()>$d.width())pickerLeft=pos.left-$m.width()+$e.outerWidth();$m.css({'top':(pickerTop)+"px",'left':(pickerLeft)+"px",'position':'absolute'}).fadeIn("fast");$("#mColorPickerBg").css({'z-index':999990,'background':'black','opacity':.01,'position':'absolute','top':0,'left':0,'width':parseInt($d.width(),10)+'px','height':parseInt($d.height(),10)+'px'}).show();var def=$i.val();$('#colorPreview span').text(def);$('#colorPreview').css('background',def);$('#color').val(def);if($('#'+id).attr('data-text'))$.fn.mColorPicker.currentColor=$e.css('background-color');else $.fn.mColorPicker.currentColor=$i.css('background-color');if(hex=='true')$.fn.mColorPicker.currentColor=$.fn.mColorPicker.RGBtoHex($.fn.mColorPicker.currentColor);$("#mColorPickerInput").val($.fn.mColorPicker.currentColor);$('.mColor, .mPastColor').bind('mousemove',function(e){var offset=$(this).offset();$.fn.mColorPicker.color=$(this).css("background-color");if($(this).hasClass('mPastColor')&&hex=='true')$.fn.mColorPicker.color=$.fn.mColorPicker.RGBtoHex($.fn.mColorPicker.color);else if($(this).hasClass('mPastColor')&&hex!='true')$.fn.mColorPicker.color=$.fn.mColorPicker.hexToRGB($.fn.mColorPicker.color);else if($(this).attr('id')=='mColorPickerTransparent')$.fn.mColorPicker.color='transparent';else if(!$(this).hasClass('mPastColor'))$.fn.mColorPicker.color=$.fn.mColorPicker.whichColor(e.pageX-offset.left,e.pageY-offset.top+(($(this).attr('id')=='mColorPickerImgGray')?128:0),hex);$.fn.mColorPicker.setInputColor(id,$.fn.mColorPicker.color);}).click(function(){$.fn.mColorPicker.colorPicked(id);});$('#mColorPickerInput').bind('keyup',function(e){try{$.fn.mColorPicker.color=$('#mColorPickerInput').val();$.fn.mColorPicker.setInputColor(id,$.fn.mColorPicker.color);if(e.which==13)$.fn.mColorPicker.colorPicked(id);}catch(r){}}).bind('blur',function(){$.fn.mColorPicker.setInputColor(id,$.fn.mColorPicker.currentColor);});$('#mColorPickerWrapper').bind('mouseleave',function(){$.fn.mColorPicker.setInputColor(id,$.fn.mColorPicker.currentColor);});};$.fn.mColorPicker.setInputColor=function(id,color){var image=(color=='transparent')?"url('"+$o.imageFolder+"grid.gif')":'',textColor=$.fn.mColorPicker.textColor(color);if($('#'+id).attr('data-text')||$('#'+id).attr('text'))$("#icp_"+id).css({'background-color':color,'background-image':image});$("#"+id).val(color).css({'background-color':color,'background-image':image,'color':textColor}).trigger('change');$("#mColorPickerInput").val(color);};$.fn.mColorPicker.textColor=function(val){if(typeof val=='undefined'||val=='transparent')return"black";val=$.fn.mColorPicker.RGBtoHex(val);return(parseInt(val.substr(1,2),16)+parseInt(val.substr(3,2),16)+parseInt(val.substr(5,2),16)<400)?'white':'black';};$.fn.mColorPicker.setCookie=function(name,value,days){var cookie_string=name+"="+escape(value),expires=new Date();expires.setDate(expires.getDate()+days);cookie_string+="; expires="+expires.toGMTString();document.cookie=cookie_string;};$.fn.mColorPicker.getCookie=function(name){var results=document.cookie.match('(^|;) ?'+name+'=([^;]*)(;|$)');if(results)return(unescape(results[2]));else return null;};$.fn.mColorPicker.colorPicked=function(id){$.fn.mColorPicker.closePicker();if($.fn.mColorPicker.init.enhancedSwatches)$.fn.mColorPicker.addToSwatch();$("#"+id).trigger('colorpicked');};$.fn.mColorPicker.addToSwatch=function(color){var swatch=[]
i=0;if(typeof color=='string')$.fn.mColorPicker.color=color.toLowerCase();$.fn.mColorPicker.currentValue=$.fn.mColorPicker.currentColor=$.fn.mColorPicker.color;if($.fn.mColorPicker.color!='transparent')swatch[0]=$.fn.mColorPicker.color.toLowerCase();$('.mPastColor').each(function(){$.fn.mColorPicker.color=$(this).css('background-color').toLowerCase();if($.fn.mColorPicker.color!=swatch[0]&&$.fn.mColorPicker.RGBtoHex($.fn.mColorPicker.color)!=swatch[0]&&$.fn.mColorPicker.hexToRGB($.fn.mColorPicker.color)!=swatch[0]&&swatch.length<10)swatch[swatch.length]=$.fn.mColorPicker.color;$(this).css('background-color',swatch[i++])});if($.fn.mColorPicker.init.enhancedSwatches)$.fn.mColorPicker.setCookie('swatches',swatch.join('||'),365);};$.fn.mColorPicker.whichColor=function(x,y,hex){var colorR=colorG=colorB=255;if(x<32){colorG=x*8;colorB=0;}else if(x<64){colorR=256-(x-32)*8;colorB=0;}else if(x<96){colorR=0;colorB=(x-64)*8;}else if(x<128){colorR=0;colorG=256-(x-96)*8;}else if(x<160){colorR=(x-128)*8;colorG=0;}else{colorG=0;colorB=256-(x-160)*8;}
if(y<64){colorR+=(256-colorR)*(64-y)/64;colorG+=(256-colorG)*(64-y)/64;colorB+=(256-colorB)*(64-y)/64;}else if(y<=128){colorR-=colorR*(y-64)/64;colorG-=colorG*(y-64)/64;colorB-=colorB*(y-64)/64;}else if(y>128){colorR=colorG=colorB=256-(x/192*256);}
colorR=Math.round(Math.min(colorR,255));colorG=Math.round(Math.min(colorG,255));colorB=Math.round(Math.min(colorB,255));if(hex=='true'){colorR=colorR.toString(16);colorG=colorG.toString(16);colorB=colorB.toString(16);if(colorR.length<2)colorR=0+colorR;if(colorG.length<2)colorG=0+colorG;if(colorB.length<2)colorB=0+colorB;return"#"+colorR+colorG+colorB;}
return"rgb("+colorR+', '+colorG+', '+colorB+')';};$.fn.mColorPicker.RGBtoHex=function(color){color=color.toLowerCase();if(typeof color=='undefined')return'';if(color.indexOf('#')>-1&&color.length>6)return color;if(color.indexOf('rgb')<0)return color;if(color.indexOf('#')>-1){return'#'+color.substr(1,1)+color.substr(1,1)+color.substr(2,1)+color.substr(2,1)+color.substr(3,1)+color.substr(3,1);}
var hexArray=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"],decToHex="#",code1=0;color=color.replace(/[^0-9,]/g,'').split(",");for(var n=0;n<color.length;n++){code1=Math.floor(color[n]/16);decToHex+=hexArray[code1]+hexArray[color[n]-code1*16];}
return decToHex;};$.fn.mColorPicker.hexToRGB=function(color){color=color.toLowerCase();if(typeof color=='undefined')return'';if(color.indexOf('rgb')>-1)return color;if(color.indexOf('#')<0)return color;var c=color.replace('#','');if(c.length<6)c=c.substr(0,1)+c.substr(0,1)+c.substr(1,1)+c.substr(1,1)+c.substr(2,1)+c.substr(2,1);return'rgb('+parseInt(c.substr(0,2),16)+', '+parseInt(c.substr(2,2),16)+', '+parseInt(c.substr(4,2),16)+')';};$(document).ready(function(){if($.fn.mColorPicker.init.replace){$('input[data-mcolorpicker!="true"]').filter(function(){return($.fn.mColorPicker.init.replace=='[type=color]')?this.getAttribute("type")=='color':$(this).is($.fn.mColorPicker.init.replace);}).mColorPicker();$.fn.mColorPicker.liveEvents();}});})(jQuery);;(function(){function log(){if(typeof(console)!='undefined'&&typeof(console.log)=='function'){Array.prototype.unshift.call(arguments,'[Ajax Upload]');console.log(Array.prototype.join.call(arguments,' '));}}
function addEvent(el,type,fn){if(el.addEventListener){el.addEventListener(type,fn,false);}else if(el.attachEvent){el.attachEvent('on'+type,function(){fn.call(el);});}else{throw new Error('not supported or DOM not loaded');}}
function addResizeEvent(fn){var timeout;addEvent(window,'resize',function(){if(timeout){clearTimeout(timeout);}
timeout=setTimeout(fn,100);});}
if(document.documentElement.getBoundingClientRect){var getOffset=function(el){var box=el.getBoundingClientRect();var doc=el.ownerDocument;var body=doc.body;var docElem=doc.documentElement;var clientTop=docElem.clientTop||body.clientTop||0;var clientLeft=docElem.clientLeft||body.clientLeft||0;var zoom=1;if(body.getBoundingClientRect){var bound=body.getBoundingClientRect();zoom=(bound.right-bound.left)/body.clientWidth;}
if(zoom>1){clientTop=0;clientLeft=0;}
var top=box.top/zoom+(window.pageYOffset||docElem&&docElem.scrollTop/zoom||body.scrollTop/zoom)-clientTop,left=box.left/zoom+(window.pageXOffset||docElem&&docElem.scrollLeft/zoom||body.scrollLeft/zoom)-clientLeft;return{top:top,left:left};};}else{var getOffset=function(el){var top=0,left=0;do{top+=el.offsetTop||0;left+=el.offsetLeft||0;el=el.offsetParent;}while(el);return{left:left,top:top};};}
function getBox(el){var left,right,top,bottom;var offset=getOffset(el);left=offset.left;top=offset.top;right=left+el.offsetWidth;bottom=top+el.offsetHeight;return{left:left,right:right,top:top,bottom:bottom};}
function addStyles(el,styles){for(var name in styles){if(styles.hasOwnProperty(name)){el.style[name]=styles[name];}}}
function copyLayout(from,to){var box=getBox(from);addStyles(to,{position:'absolute',left:box.left+'px',top:box.top+'px',width:from.offsetWidth+'px',height:from.offsetHeight+'px'});}
var toElement=(function(){var div=document.createElement('div');return function(html){div.innerHTML=html;var el=div.firstChild;return div.removeChild(el);};})();var getUID=(function(){var id=0;return function(){return'ValumsAjaxUpload'+id++;};})();function fileFromPath(file){return file.replace(/.*(\/|\\)/,"");}
function getExt(file){return(-1!==file.indexOf('.'))?file.replace(/.*[.]/,''):'';}
function hasClass(el,name){var re=new RegExp('\\b'+name+'\\b');return re.test(el.className);}
function addClass(el,name){if(!hasClass(el,name)){el.className+=' '+name;}}
function removeClass(el,name){var re=new RegExp('\\b'+name+'\\b');el.className=el.className.replace(re,'');}
function removeNode(el){el.parentNode.removeChild(el);}
window.AjaxUpload=function(button,options){this._settings={action:'upload.php',name:'userfile',data:{},autoSubmit:true,responseType:false,hoverClass:'hover',disabledClass:'disabled',onChange:function(file,extension){},onSubmit:function(file,extension){},onComplete:function(file,response){}};for(var i in options){if(options.hasOwnProperty(i)){this._settings[i]=options[i];}}
if(button.jquery){button=button[0];}else if(typeof button=="string"){if(/^#.*/.test(button)){button=button.slice(1);}
button=document.getElementById(button);}
if(!button||button.nodeType!==1){throw new Error("Please make sure that you're passing a valid element");}
if(button.nodeName.toUpperCase()=='A'){addEvent(button,'click',function(e){if(e&&e.preventDefault){e.preventDefault();}else if(window.event){window.event.returnValue=false;}});}
this._button=button;this._input=null;this._disabled=false;this.enable();this._rerouteClicks();};AjaxUpload.prototype={setData:function(data){this._settings.data=data;},disable:function(){addClass(this._button,this._settings.disabledClass);this._disabled=true;var nodeName=this._button.nodeName.toUpperCase();if(nodeName=='INPUT'||nodeName=='BUTTON'){this._button.setAttribute('disabled','disabled');}
if(this._input){this._input.parentNode.style.visibility='hidden';}},enable:function(){removeClass(this._button,this._settings.disabledClass);this._button.removeAttribute('disabled');this._disabled=false;},_createInput:function(){var self=this;var input=document.createElement("input");input.setAttribute('type','file');input.setAttribute('name',this._settings.name);addStyles(input,{'position':'absolute','right':0,'margin':0,'padding':0,'fontSize':'480px','cursor':'pointer'});var div=document.createElement("div");addStyles(div,{'display':'block','position':'absolute','overflow':'hidden','margin':0,'padding':0,'opacity':0,'direction':'ltr','zIndex':2147483583});if(div.style.opacity!=="0"){if(typeof(div.filters)=='undefined'){throw new Error('Opacity not supported by the browser');}
div.style.filter="alpha(opacity=0)";}
addEvent(input,'change',function(){if(!input||input.value===''){return;}
var file=fileFromPath(input.value);if(false===self._settings.onChange.call(self,file,getExt(file))){self._clearInput();return;}
if(self._settings.autoSubmit){self.submit();}});addEvent(input,'mouseover',function(){addClass(self._button,self._settings.hoverClass);});addEvent(input,'mouseout',function(){removeClass(self._button,self._settings.hoverClass);});div.appendChild(input);document.body.appendChild(div);this._input=input;},_clearInput:function(){if(!this._input){return;}
removeNode(this._input.parentNode);this._input=null;this._createInput();removeClass(this._button,this._settings.hoverClass);},_rerouteClicks:function(){var self=this;addEvent(self._button,'mouseover',function(){if(self._disabled){return;}
if(!self._input){self._createInput();}
var div=self._input.parentNode;copyLayout(self._button,div);div.style.visibility='visible';});},_createIframe:function(){var id=getUID();var iframe=toElement('<iframe src="javascript:false;" name="'+id+'" />');iframe.setAttribute('id',id);iframe.style.display='none';document.body.appendChild(iframe);return iframe;},_createForm:function(iframe){var settings=this._settings;var form=toElement('<form method="post" enctype="multipart/form-data"></form>');form.setAttribute('action',settings.action);form.setAttribute('target',iframe.name);form.style.display='none';document.body.appendChild(form);for(var prop in settings.data){if(settings.data.hasOwnProperty(prop)){var el=document.createElement("input");el.setAttribute('type','hidden');el.setAttribute('name',prop);el.setAttribute('value',settings.data[prop]);form.appendChild(el);}}
return form;},_getResponse:function(iframe,file){var toDeleteFlag=false,self=this,settings=this._settings;addEvent(iframe,'load',function(){if(iframe.src=="javascript:'%3Chtml%3E%3C/html%3E';"||iframe.src=="javascript:'<html></html>';"){if(toDeleteFlag){setTimeout(function(){removeNode(iframe);},0);}
return;}
var doc=iframe.contentDocument?iframe.contentDocument:window.frames[iframe.id].document;if(doc.readyState&&doc.readyState!='complete'){return;}
if(doc.body&&doc.body.innerHTML=="false"){return;}
var response;if(doc.XMLDocument){response=doc.XMLDocument;}else if(doc.body){response=doc.body.innerHTML;if(settings.responseType&&settings.responseType.toLowerCase()=='json'){if(doc.body.firstChild&&doc.body.firstChild.nodeName.toUpperCase()=='PRE'){response=doc.body.firstChild.firstChild.nodeValue;}
if(response){response=eval("("+response+")");}else{response={};}}}else{response=doc;}
settings.onComplete.call(self,file,response);toDeleteFlag=true;iframe.src="javascript:'<html></html>';";});},submit:function(){var self=this,settings=this._settings;if(!this._input||this._input.value===''){return;}
var file=fileFromPath(this._input.value);if(false===settings.onSubmit.call(this,file,getExt(file))){this._clearInput();return;}
var iframe=this._createIframe();var form=this._createForm(iframe);removeNode(this._input.parentNode);removeClass(self._button,self._settings.hoverClass);form.appendChild(this._input);form.submit();removeNode(form);form=null;removeNode(this._input);this._input=null;this._getResponse(iframe,file);this._createInput();}};})();;;(function($){$.fn.extend({autocomplete:function(urlOrData,options){var isUrl=typeof urlOrData=="string";options=$.extend({},$.Autocompleter.defaults,{url:isUrl?urlOrData:null,data:isUrl?null:urlOrData,delay:isUrl?$.Autocompleter.defaults.delay:10,max:options&&!options.scroll?10:150},options);options.highlight=options.highlight||function(value){return value;};options.formatMatch=options.formatMatch||options.formatItem;return this.each(function(){new $.Autocompleter(this,options);});},result:function(handler){return this.bind("result",handler);},search:function(handler){return this.trigger("search",[handler]);},flushCache:function(){return this.trigger("flushCache");},setOptions:function(options){return this.trigger("setOptions",[options]);},unautocomplete:function(){return this.trigger("unautocomplete");}});$.Autocompleter=function(input,options){var KEY={UP:38,DOWN:40,DEL:46,TAB:9,RETURN:13,ESC:27,COMMA:188,PAGEUP:33,PAGEDOWN:34,BACKSPACE:8};var $input=$(input).attr("autocomplete","off").addClass(options.inputClass);var timeout;var previousValue="";var cache=$.Autocompleter.Cache(options);var hasFocus=0;var lastKeyPressCode;var config={mouseDownOnSelect:false};var select=$.Autocompleter.Select(options,input,selectCurrent,config);var blockSubmit;$.browser.opera&&$(input.form).bind("submit.autocomplete",function(){if(blockSubmit){blockSubmit=false;return false;}});$input.bind(($.browser.opera?"keypress":"keydown")+".autocomplete",function(event){hasFocus=1;lastKeyPressCode=event.keyCode;switch(event.keyCode){case KEY.UP:event.preventDefault();if(select.visible()){select.prev();}else{onChange(0,true);}
break;case KEY.DOWN:event.preventDefault();if(select.visible()){select.next();}else{onChange(0,true);}
break;case KEY.PAGEUP:event.preventDefault();if(select.visible()){select.pageUp();}else{onChange(0,true);}
break;case KEY.PAGEDOWN:event.preventDefault();if(select.visible()){select.pageDown();}else{onChange(0,true);}
break;case options.multiple&&$.trim(options.multipleSeparator)==","&&KEY.COMMA:case KEY.TAB:case KEY.RETURN:if(selectCurrent()){event.preventDefault();blockSubmit=true;return false;}
break;case KEY.ESC:select.hide();break;default:clearTimeout(timeout);timeout=setTimeout(onChange,options.delay);break;}}).focus(function(){hasFocus++;}).blur(function(){hasFocus=0;if(!config.mouseDownOnSelect){hideResults();}}).click(function(){if(hasFocus++>1&&!select.visible()){onChange(0,true);}}).bind("search",function(){var fn=(arguments.length>1)?arguments[1]:null;function findValueCallback(q,data){var result;if(data&&data.length){for(var i=0;i<data.length;i++){if(data[i].result.toLowerCase()==q.toLowerCase()){result=data[i];break;}}}
if(typeof fn=="function")fn(result);else $input.trigger("result",result&&[result.data,result.value]);}
$.each(trimWords($input.val()),function(i,value){request(value,findValueCallback,findValueCallback);});}).bind("flushCache",function(){cache.flush();}).bind("setOptions",function(){$.extend(options,arguments[1]);if("data"in arguments[1])
cache.populate();}).bind("unautocomplete",function(){select.unbind();$input.unbind();$(input.form).unbind(".autocomplete");});function selectCurrent(){var selected=select.selected();if(!selected)
return false;var v=selected.result;previousValue=v;if(options.multiple){var words=trimWords($input.val());if(words.length>1){var seperator=options.multipleSeparator.length;var cursorAt=$(input).selection().start;var wordAt,progress=0;$.each(words,function(i,word){progress+=word.length;if(cursorAt<=progress){wordAt=i;return false;}
progress+=seperator;});words[wordAt]=v;v=words.join(options.multipleSeparator);}
v+=options.multipleSeparator;}
$input.val(v);hideResultsNow();$input.trigger("result",[selected.data,selected.value]);return true;}
function onChange(crap,skipPrevCheck){if(lastKeyPressCode==KEY.DEL){select.hide();return;}
var currentValue=$input.val();if(!skipPrevCheck&&currentValue==previousValue)
return;previousValue=currentValue;currentValue=lastWord(currentValue);if(currentValue.length>=options.minChars){$input.addClass(options.loadingClass);if(!options.matchCase)
currentValue=currentValue.toLowerCase();request(currentValue,receiveData,hideResultsNow);}else{stopLoading();select.hide();}};function trimWords(value){if(!value)
return[""];if(!options.multiple)
return[$.trim(value)];return $.map(value.split(options.multipleSeparator),function(word){return $.trim(value).length?$.trim(word):null;});}
function lastWord(value){if(!options.multiple)
return value;var words=trimWords(value);if(words.length==1)
return words[0];var cursorAt=$(input).selection().start;if(cursorAt==value.length){words=trimWords(value)}else{words=trimWords(value.replace(value.substring(cursorAt),""));}
return words[words.length-1];}
function autoFill(q,sValue){if(options.autoFill&&(lastWord($input.val()).toLowerCase()==q.toLowerCase())&&lastKeyPressCode!=KEY.BACKSPACE){$input.val($input.val()+sValue.substring(lastWord(previousValue).length));$(input).selection(previousValue.length,previousValue.length+sValue.length);}};function hideResults(){clearTimeout(timeout);timeout=setTimeout(hideResultsNow,200);};function hideResultsNow(){var wasVisible=select.visible();select.hide();clearTimeout(timeout);stopLoading();if(options.mustMatch){$input.search(function(result){if(!result){if(options.multiple){var words=trimWords($input.val()).slice(0,-1);$input.val(words.join(options.multipleSeparator)+(words.length?options.multipleSeparator:""));}
else{$input.val("");$input.trigger("result",null);}}});}};function receiveData(q,data){if(data&&data.length&&hasFocus){stopLoading();select.display(data,q);autoFill(q,data[0].value);select.show();}else{hideResultsNow();}};function request(term,success,failure){if(!options.matchCase)
term=term.toLowerCase();var data=cache.load(term);if(data&&data.length){success(term,data);}else if((typeof options.url=="string")&&(options.url.length>0)){var extraParams={timestamp:+new Date()};$.each(options.extraParams,function(key,param){extraParams[key]=typeof param=="function"?param():param;});$.ajax({mode:"abort",port:"autocomplete"+input.name,dataType:options.dataType,url:options.url,data:$.extend({q:lastWord(term),limit:options.max},extraParams),success:function(data){var parsed=options.parse&&options.parse(data)||parse(data);cache.add(term,parsed);success(term,parsed);}});}else{select.emptyList();failure(term);}};function parse(data){var parsed=[];var rows=data.split("\n");for(var i=0;i<rows.length;i++){var row=$.trim(rows[i]);if(row){row=row.split("|");parsed[parsed.length]={data:row,value:row[0],result:options.formatResult&&options.formatResult(row,row[0])||row[0]};}}
return parsed;};function stopLoading(){$input.removeClass(options.loadingClass);};};$.Autocompleter.defaults={inputClass:"ac_input",resultsClass:"ac_results",loadingClass:"ac_loading",minChars:1,delay:400,matchCase:false,matchSubset:true,matchContains:false,cacheLength:10,max:100,mustMatch:false,extraParams:{},selectFirst:true,formatItem:function(row){return row[0];},formatMatch:null,autoFill:false,width:0,multiple:false,multipleSeparator:", ",highlight:function(value,term){return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")+")(?![^<>]*>)(?![^&;]+;)","gi"),"<strong>$1</strong>");},scroll:true,scrollHeight:180};$.Autocompleter.Cache=function(options){var data={};var length=0;function matchSubset(s,sub){if(!options.matchCase)
s=s.toLowerCase();var i=s.indexOf(sub);if(options.matchContains=="word"){i=s.toLowerCase().search("\\b"+sub.toLowerCase());}
if(i==-1)return false;return i==0||options.matchContains;};function add(q,value){if(length>options.cacheLength){flush();}
if(!data[q]){length++;}
data[q]=value;}
function populate(){if(!options.data)return false;var stMatchSets={},nullData=0;if(!options.url)options.cacheLength=1;stMatchSets[""]=[];for(var i=0,ol=options.data.length;i<ol;i++){var rawValue=options.data[i];rawValue=(typeof rawValue=="string")?[rawValue]:rawValue;var value=options.formatMatch(rawValue,i+1,options.data.length);if(value===false)
continue;var firstChar=value.charAt(0).toLowerCase();if(!stMatchSets[firstChar])
stMatchSets[firstChar]=[];var row={value:value,data:rawValue,result:options.formatResult&&options.formatResult(rawValue)||value};stMatchSets[firstChar].push(row);if(nullData++<options.max){stMatchSets[""].push(row);}};$.each(stMatchSets,function(i,value){options.cacheLength++;add(i,value);});}
setTimeout(populate,25);function flush(){data={};length=0;}
return{flush:flush,add:add,populate:populate,load:function(q){if(!options.cacheLength||!length)
return null;if(!options.url&&options.matchContains){var csub=[];for(var k in data){if(k.length>0){var c=data[k];$.each(c,function(i,x){if(matchSubset(x.value,q)){csub.push(x);}});}}
return csub;}else
if(data[q]){return data[q];}else
if(options.matchSubset){for(var i=q.length-1;i>=options.minChars;i--){var c=data[q.substr(0,i)];if(c){var csub=[];$.each(c,function(i,x){if(matchSubset(x.value,q)){csub[csub.length]=x;}});return csub;}}}
return null;}};};$.Autocompleter.Select=function(options,input,select,config){var CLASSES={ACTIVE:"ac_over"};var listItems,active=-1,data,term="",needsInit=true,element,list;function init(){if(!needsInit)
return;element=$("<div/>").hide().addClass(options.resultsClass).css("position","absolute").appendTo(document.body);list=$("<ul/>").appendTo(element).mouseover(function(event){if(target(event).nodeName&&target(event).nodeName.toUpperCase()=='LI'){active=$("li",list).removeClass(CLASSES.ACTIVE).index(target(event));$(target(event)).addClass(CLASSES.ACTIVE);}}).click(function(event){$(target(event)).addClass(CLASSES.ACTIVE);select();input.focus();return false;}).mousedown(function(){config.mouseDownOnSelect=true;}).mouseup(function(){config.mouseDownOnSelect=false;});if(options.width>0)
element.css("width",options.width);needsInit=false;}
function target(event){var element=event.target;while(element&&element.tagName!="LI")
element=element.parentNode;if(!element)
return[];return element;}
function moveSelect(step){listItems.slice(active,active+1).removeClass(CLASSES.ACTIVE);movePosition(step);var activeItem=listItems.slice(active,active+1).addClass(CLASSES.ACTIVE);if(options.scroll){var offset=0;listItems.slice(0,active).each(function(){offset+=this.offsetHeight;});if((offset+activeItem[0].offsetHeight-list.scrollTop())>list[0].clientHeight){list.scrollTop(offset+activeItem[0].offsetHeight-list.innerHeight());}else if(offset<list.scrollTop()){list.scrollTop(offset);}}};function movePosition(step){active+=step;if(active<0){active=listItems.size()-1;}else if(active>=listItems.size()){active=0;}}
function limitNumberOfItems(available){return options.max&&options.max<available?options.max:available;}
function fillList(){list.empty();var max=limitNumberOfItems(data.length);for(var i=0;i<max;i++){if(!data[i])
continue;var formatted=options.formatItem(data[i].data,i+1,max,data[i].value,term);if(formatted===false)
continue;var li=$("<li/>").html(options.highlight(formatted,term)).addClass(i%2==0?"ac_even":"ac_odd").appendTo(list)[0];$.data(li,"ac_data",data[i]);}
listItems=list.find("li");if(options.selectFirst){listItems.slice(0,1).addClass(CLASSES.ACTIVE);active=0;}
if($.fn.bgiframe)
list.bgiframe();}
return{display:function(d,q){init();data=d;term=q;fillList();},next:function(){moveSelect(1);},prev:function(){moveSelect(-1);},pageUp:function(){if(active!=0&&active-8<0){moveSelect(-active);}else{moveSelect(-8);}},pageDown:function(){if(active!=listItems.size()-1&&active+8>listItems.size()){moveSelect(listItems.size()-1-active);}else{moveSelect(8);}},hide:function(){element&&element.hide();listItems&&listItems.removeClass(CLASSES.ACTIVE);active=-1;},visible:function(){return element&&element.is(":visible");},current:function(){return this.visible()&&(listItems.filter("."+CLASSES.ACTIVE)[0]||options.selectFirst&&listItems[0]);},show:function(){var offset=$(input).offset();element.css({width:typeof options.width=="string"||options.width>0?options.width:$(input).width(),top:offset.top+input.offsetHeight,left:offset.left}).show();if(options.scroll){list.scrollTop(0);list.css({maxHeight:options.scrollHeight,overflow:'auto'});if($.browser.msie&&typeof document.body.style.maxHeight==="undefined"){var listHeight=0;listItems.each(function(){listHeight+=this.offsetHeight;});var scrollbarsVisible=listHeight>options.scrollHeight;list.css('height',scrollbarsVisible?options.scrollHeight:listHeight);if(!scrollbarsVisible){listItems.width(list.width()-parseInt(listItems.css("padding-left"))-parseInt(listItems.css("padding-right")));}}}},selected:function(){var selected=listItems&&listItems.filter("."+CLASSES.ACTIVE).removeClass(CLASSES.ACTIVE);return selected&&selected.length&&$.data(selected[0],"ac_data");},emptyList:function(){list&&list.empty();},unbind:function(){element&&element.remove();}};};$.fn.selection=function(start,end){if(start!==undefined){return this.each(function(){if(this.createTextRange){var selRange=this.createTextRange();if(end===undefined||start==end){selRange.move("character",start);selRange.select();}else{selRange.collapse(true);selRange.moveStart("character",start);selRange.moveEnd("character",end);selRange.select();}}else if(this.setSelectionRange){this.setSelectionRange(start,end);}else if(this.selectionStart){this.selectionStart=start;this.selectionEnd=end;}});}
var field=this[0];if(field.createTextRange){var range=document.selection.createRange(),orig=field.value,teststring="<->",textLength=range.text.length;range.text=teststring;var caretAt=field.value.indexOf(teststring);field.value=orig;this.selection(caretAt,caretAt+textLength);return{start:caretAt,end:caretAt+textLength}}else if(field.selectionStart!==undefined){return{start:field.selectionStart,end:field.selectionEnd}}};})(jQuery);;var map,drawAreaListener,markerAreaListener,geoResult;var markerManager;var polygon=new Array();var line=new Array();var marker=new Array();var upolygon=new Array();var uline=new Array();var umarker=new Array();var uipoly=0,uiline=0,uimark=0;var ipoly=0,iline=0,imark=0;var colour=["0000FF","7F0000"];var clrs=["FF0000","7F0037","f8ff01","0000FF","007F0E","404040","B200FF","FF006E","7F0000","FFD800","FF0000","0000FF","7F0000","007F0E","7F0037","404040","B200FF","FF006E","FFD800","FF0000","0000FF","7F0000","007F0E","7F0037","404040","B200FF","939BFF","FF006E","FFD800"];var addstops=new Array();var out;var mapmodtime=0;var debug=0;var maptype;var route0="";var StartPoint="null",EndPoint="null";var stopid;var ap;var current_umplabel=null;var toolb3;var docdesc=$('meta[name=description]').attr('content');var doctitle=$('meta[name=title]').attr('content');var router,myMapType;var pin_marker=new YMaps.Placemark(new YMaps.GeoPoint(32.06021100282669,49.43573230804512),{hasHint:true,hasBalloon:true,hideIcon:false,draggable:true,style:'custom#pinmarker'});(function($){var a=$.ui.mouse.prototype._mouseMove;$.ui.mouse.prototype._mouseMove=function(b){if($.browser.msie&&document.documentMode>=9){b.button=1};a.apply(this,[b]);}}(jQuery));YMaps.jQuery(function(){wait();var out=$("#map");var w=$(window).width();var h=$(window).height();out.css('width',w);out.css('height',h);map=new YMaps.Map(YMaps.jQuery("#map")[0]);var options={tileUrlTemplate:"http://genshtab%d.map.ck.ua/%z/tile-%x-%y.png",backgroundMapType:YMaps.MapType.MAP,isTransparent:true,smoothZooming:true,copyright:"maps.vlasenko.net"},myData=new YMaps.TileDataSource(options.tileUrlTemplate,options.isTransparent,options.smoothZooming);myData.getTileUrl=function(tile,zoom){return this.getTileUrlTemplate().replace(/%x/i,tile.x).replace(/%y/i,tile.y).replace(/%z/i,zoom).replace('%d',(1*(tile.x&1)+(tile.y&1)+1));}
var MyLayer=function(){return new YMaps.Layer(myData);}
YMaps.Layers.add("genshtab",MyLayer);myMapType=new YMaps.MapType(["map","genshtab"],"Генштаб",{textColor:"#000000",maxZoom:13,minZoom:10});YMaps.Events.observe(map,map.Events.TypeChange,function(map,mEvent){var mname=map.getType().getName();if(mname=="Генштаб"){map.setMaxZoom(13);map.setMinZoom(10);var z=map.getZoom();if(z<10)map.setZoom(10);if(z>13)map.setZoom(13);map.addCopyright('&copy;&nbsp;<a href="http://maps.vlasenko.net">maps.vlasenko.net</a>');}else{map.setMaxZoom(19);map.setMinZoom(1);map.removeCopyright('&copy;&nbsp;<a href="http://maps.vlasenko.net">maps.vlasenko.net</a>');}});var genplanoptions={tileUrlTemplate:"http://andboson.net/genplan%d/%z/tile-%x-%y.jpg",backgroundMapType:YMaps.MapType.MAP,isTransparent:true,smoothZooming:true,copyright:"rada.ck.ua"},genplanData=new YMaps.TileDataSource(genplanoptions.tileUrlTemplate,genplanoptions.isTransparent,genplanoptions.smoothZooming);genplanData.getTileUrl=function(tile,zoom){return this.getTileUrlTemplate().replace(/%x/i,tile.x).replace(/%y/i,tile.y).replace(/%z/i,zoom).replace('%d',(1*(tile.x&1)+(tile.y&1)+1));}
var genplanMyLayer=function(){return new YMaps.Layer(genplanData);}
YMaps.Layers.add("genplan",genplanMyLayer);genplanmyMapType=new YMaps.MapType(["map","genplan"],"Генплан",{textColor:"#000000",maxZoom:17,minZoom:14});YMaps.Events.observe(map,map.Events.TypeChange,function(map,mEvent){var genplanmname=map.getType().getName();if(genplanmname=="Генплан"){map.setMaxZoom(17);map.setMinZoom(14);var genplanz=map.getZoom();if(genplanz<14)map.setZoom(14);if(genplanz>17)map.setZoom(17);map.addCopyright('&copy;&nbsp;<a href="http://rada.ck.ua">rada.ck.ua</a>');}else{map.setMaxZoom(19);map.setMinZoom(1);map.removeCopyright('&copy;&nbsp;<a href="http://rada.ck.ua">rada.ck.ua</a>');}});map.setCenter(new YMaps.GeoPoint(32.06021100282669,49.43573230804512),12);map.addControl(new YMaps.Zoom(),new YMaps.ControlPosition(YMaps.ControlPosition.TOP_LEft,new YMaps.Point(5,90)));var iz=new YMaps.ToolBar([]);map.addControl(iz,new YMaps.ControlPosition(YMaps.ControlPosition.TOP_LEft,new YMaps.Point(5,150)));map.enableScrollZoom();map.addCopyright('&copy;&nbsp;<a href="http://andboson.com">andboson</a>&nbsp;&copy;&nbsp;<a href="http://map.ck.ua">map.ck.ua</a>');markerManager=new YMaps.ObjectManager();map.addOverlay(markerManager);var typeControl=new YMaps.TypeControl([YMaps.MapType.MAP,YMaps.MapType.SATELLITE,YMaps.MapType.HYBRID,myMapType],[0,1,2,3]);var toolb=new YMaps.ToolBar([new YMaps.ToolBar.MoveButton(),new YMaps.ToolBar.RulerButton()]);map.addControl(toolb,new YMaps.ControlPosition(YMaps.ControlPosition.TOP_RIGHT,new YMaps.Point(113,5)));standartLoad(0);var abtn=new YMaps.ToolBarButton({icon:"img/markplace.png",caption:"",hint:"Инструменты рисования"});YMaps.Events.observe(abtn,abtn.Events.Click,function(){$('#tool').show();},toolb);toolb.add(abtn);var iz=new YMaps.ToolBar([]);map.addControl(iz,new YMaps.ControlPosition(YMaps.ControlPosition.TOP_LEft,new YMaps.Point(5,270)));var btn=new YMaps.ToolBarButton({icon:"img/cut.png",caption:"",hint:"Скопировать на свой сайт или блог"});YMaps.Events.observe(btn,btn.Events.Click,function(){cutmap();},iz);iz.add(btn);var iz2=new YMaps.ToolBar([]);map.addControl(iz2,new YMaps.ControlPosition(YMaps.ControlPosition.TOP_LEft,new YMaps.Point(5,300)));var btn2=new YMaps.ToolBarButton({icon:"img/update.png",caption:"",hint:"Очистить карту"});YMaps.Events.observe(btn2,btn2.Events.Click,function(){loadmap();$("#hintsadd").hide();$("#itemslist").hide();map.setCenter(new YMaps.GeoPoint(32.06021100282669,49.43573230804512),12);map.removeControl(ap);ap=null;if(toolb3.length()<1)toolb3.add(pinnerb);location.hash='';mapredraw();},iz2);iz2.add(btn2);toolb4=new YMaps.ToolBar([]);map.addControl(toolb4,new YMaps.ControlPosition(YMaps.ControlPosition.TOP_LEft,new YMaps.Point(5,330)));var pinnerb=new YMaps.ToolBarButton({icon:"img/map_add.png",caption:"",hint:"Создать свою карту"});YMaps.Events.observe(pinnerb,pinnerb.Events.Click,function(){adduserplace();},toolb4);toolb4.add(pinnerb);toolb3=new YMaps.ToolBar([]);map.addControl(toolb3,new YMaps.ControlPosition(YMaps.ControlPosition.TOP_LEft,new YMaps.Point(5,360)));var pinnerb=new YMaps.ToolBarButton({icon:"img/pin.png",caption:"",hint:"Поставить указатель"});YMaps.Events.observe(pinnerb,pinnerb.Events.Click,function(){loadmap();$("#hintsadd").hide();$("#itemslist").hide();map.removeControl(ap);ap=null;toolb3.removeAll();placepinmarker();},toolb3);toolb3.add(pinnerb);YMaps.Events.observe(map,map.Events.ContextMenu,function(map,mEvent){var pt=mEvent.getLocalPixels();var geopt=mEvent.getGeoPoint();var x=pt.getX();var y=pt.getY();var lng=geopt.getLng();var lat=geopt.getLat();var latlng=lng+', '+lat;var txt='<li id="wayfrom"  onclick="flag(\''+lng+','+lat+'\',\'исходная точка\');addtodirection(\''+lng+','+lat+'\',\'start\');">Как проехать отсюда</li>';txt+='<li style="border-bottom:1px solid gray;" id="wayhere" onclick="flag(\''+lng+','+lat+'\',\'точка прибытия\');addtodirection(\''+lng+','+lat+'\',\'end\');">Как проехать сюда</li>';txt+='<li id="setcenter" onclick="center(\''+lng+','+lat+'\');">Центрировать карту</li>';txt+='<li style="border-bottom:1px solid gray;"  id="stopshere" onmousedown="wait();" onclick="neareststops(\''+lng+','+lat+'\');">Ближайшие остановки</li>';txt+='<li id="getcoords" onclick="window.prompt(\'Долгота (Lng), Широта (lat)\',\''+latlng+'\');">Координаты точки</li>';txt+='<span style="position:absolute;top:-5px;left:-5px;"><img src="img/dot.gif"></span>';$("#context").html(txt);$("#context").css({"top":y-2,"left":x-2});$("#context").slideDown(200);$("#context").mouseleave(function(){$("#context").hide();});});wait(1);YMaps.jQuery(window).resize(function(){mapredraw();});});function mapredraw(){var h=$(window).height();var w=$(window).width();$('#map').css('height',h);$('#map').css('width',w);}
$(document).ready(function(){var bw=$(window).width();if(bw<1200){$("#search").css("left",210);$("#select").css("left",495);}
var url="server.php";$("#searchpopaddress").autocomplete(url,{extraParams:{type:'suggestaddress'}});$("#searchad").autocomplete(url,{extraParams:{type:'suggeststreets'}});var geturl=location.hash;function lm(){geturl=geturl.split("&");var gu=geturl[0].split("=");if(gu[0].substring(1)=="maptype")maptype=gu[1];if(gu[0].substring(1)=="disclamer"){disclamer();return;}
if(gu[0].substring(1)=="umid"){loadusermap(gu[1]);return;}
if(gu[0].substring(1)=="mark"){placepinmarker2(gu[1]);return;}
if(gu[0].substring(1)=="sstr"){wait();$("#searchad").val(decodeURI(gu[1]));$(function(){function srch(){visisearch('null');}window.setTimeout(srch,100);});return;}
maptype=jQuery.trim(maptype);if(maptype.slice(-1)=="/")maptype=maptype.slice(0,-1);switch(maptype){case'bus':stopid=null
var divid='#busli';if(geturl[1]){var gu2=geturl[1].split("=");var route=decodeURI(decodeURI(gu2[1]));$(function(){function lr(){loadroute(route);}
window.setTimeout(lr,300);});}
if(geturl[2]){var gu3=geturl[2].split("=");stopid=gu3[1];$(document).ready(function(){function ss(){searchpop(stopid);}
window.setTimeout(ss,900);});}
break;case'kino':var divid='#kinoli';break;case'wifi':var divid='#wifili';break;case'pops':var divid='#popsli';break;case'direction':var divid='#dirli';$("#tool").hide();break;case'sauna':var divid='#saunali';break;case'bike':var divid='#bikeli';break;case'hotel':var divid='#hotelli';break;case'osmp':var divid='#osmpli';break;case'pano':var divid='#panoli';break;default:var divid='';break;}
select(divid,maptype);}
if(geturl)window.setTimeout(lm,200);});function slclose(){$('#selectlist').slideUp('fast');window.clearTimeout();}
function slclosetool(){$('#selecttool').slideUp('fast');window.clearTimeout();}
function cutmap(){var w=$(window).width();var h=$(window).height();var off=$(document).scrollTop();var top=off+h/2-200;var left=w/2-250;$("#shadowtop").css({"top":0,"left":0,"width":w,"height":top});$("#shadowbottom").css({"top":top+300,"left":0,"width":w,"height":h-(top+300)});$("#shadowleft").css({"top":top,"left":0,"width":left,"height":300});$("#shadowright").css({"top":top,"left":left+400+2,"width":w-(left+400+2),"height":300});$("#cuttercont").animate({"opacity":0.1},0);$("#cutter").css({"top":top,"left":left});$("#getmapbtn").css({"top":top+310,"left":left+280})
$("#cutter").show();$("#getmapbtn").show();$("#cutter").resizable({handles:'all',ghost:true,helper:"ui-resizable-helper",delay:0,stop:function(event,ui){shadowresize('cutter');}});$("#cutter").draggable({helper:'original',stop:function(event,ui){shadowresize('cutter');}});shadowresize('cutter');}
function shadowresize(win){var w=$(window).width();var h=$(window).height();var cutterw=parseInt($("#"+win).css("width"));var cutterh=parseInt($("#"+win).css("height"));var cutterleft=parseInt($("#"+win).css("left"));var cuttertop=parseInt($("#"+win).css("top"));$("#shadowtop").css({"top":0,"left":0,"width":w,"height":cuttertop});$("#shadowleft").css({"top":cuttertop,"left":0,"width":cutterleft,"height":cutterh+4});$("#shadowbottom").css({"top":cuttertop+cutterh+4,"left":0,"width":w,"height":h-(cuttertop+cutterh+4)});$("#shadowright").css({"top":cuttertop,"left":cutterleft+cutterw+4,"width":w-(cutterleft+cutterw+4),"height":cutterh+4});$("#getmapbtn").css({"top":cuttertop+cutterh+10,"left":cutterleft+cutterw-120});$(".shadow").animate({"opacity":0.3},0);$("#shadow").css({"width":w,"height":h});$(".shadow").show();}
function getmap(){var w=$(window).width();var h=$(window).height();var off=$(document).scrollTop();var top=off+h/2-100;var left=w/2-350;var cutterw=parseInt($("#cutter").css("width"));var cutterh=parseInt($("#cutter").css("height"));var maptype=typemap;var x=parseInt($("#cutter").css("left"));var y=parseInt($("#cutter").css("top"));var centerx=x+cutterw/2;var centery=y+cutterh/2;var cpoint=map.converter.clientPixelsToCoordinates(new YMaps.Point(centerx,centery));var content='<!-- map.ck.ua  start-->\n'+'<script type="text/javascript">'+'document.write(unescape("%3Cscript src=\'http://map.ck.ua/js/extmap.js\' type=\'text/javascript\'%3E%3C/script%3E"));\n'+'</script>'+'<script type="text/javascript">\n'+'var mtype="'+maptype+'";\n'+'var hash="'+encodeURI(location.hash)+'";\n'+'var zoom='+map.getZoom()+';\n'+'var center='+$.toJSON([cpoint.getLng(),cpoint.getLat()])+';\n'+'var windims='+$.toJSON([cutterw,cutterh])+';\n'+'drawmap();\n'+'</script>\n'+'<!-- map.ck.ua end-->';$("#hintsaddcontent2").html('<textarea id="getmapta" style="padding:3px;width:489px;height:244px;">'+content+'</textarea>');$("#hintsadd2").css({"top":top,"left":left,"width":520,"height":260});$("#hintsadd2").show();$("#getmapta").select();$("#cutter").hide();$(".shadow").hide();$("#getmapbtn").hide();}
function loadmap(type){current_umplabel=null;$("#itemslistcont").html("");maptype=type;upolygon=new Array();uline=new Array();umarker=new Array();uipoly=0;uiline=0;uimark=0;polygon=new Array();line=new Array();marker=new Array();ipoly=0;iline=0;imark=0;var pnum=0,lnum=0,mnum=0;$('#save').hide();map.removeAllOverlays();markerManager.removeAll();map.addOverlay(markerManager);$.ajax({type:"POST",async:false,url:"server.php",data:"type=loadmap"+"&maptype="+type,success:function(msg){try{var resp=jQuery.parseJSON(msg);if(resp.status=='ok'){var all=resp.item.length;for(i=0;i<all;i++){itemt=$.trim(resp.item[i].itemtype);if(itemt=="polygon"){drawloadedarea(resp.item[i],pnum);pnum++;}
if(itemt=='marker'){drawloadedmarker(resp.item[i],mnum);mnum++;}
if(itemt=='line'){drawloadedline(resp.item[i],lnum);lnum++;}}}else{if(debug==1)alert('status error:: '+msg);}}
catch(e)
{if(debug==1)alert("parse error:: "+e);}}});wait(1);if($.cookie('addreminder')!='no'){$("#hintsadd").show();$("#hintsadd").css('z-index',9999);$("#hintsaddcontent").html('Вы можете сами добавлять объекты на эту карту.<br>'+'Используйте для этого инструмент рисования <img src="img/markplace.png" style="position:absolute;"><br>'+'После модерации Ваш объект появится на соответствующей карте.');}}
function drawloadedarea(data,num){var id=data.id;var techprim0=data.techprim0;var modtime=data.modtime;var hint=data.hint;var points=data.points;var itemtype=data.itemtype;var status=data.status;var from=data.from;var topic=data.topic;var comm=data.answers;if(!from){var opt=$.evalJSON(data.options.replace("coordRenderer","coordRendere0"));polygon[num]=YMaps.Polygon.fromEncodedPoints(points,'AAA',opt);}else{polygon[num]=YMaps.Polygon.fromEncodedPoints(points,'AAA',{hasHint:1,hasBalloon:1});}
if(from){if($("#lb"+from).html().length<2)return;if(from=="megas")var clr=colour[0];if(from=="laut")var clr=colour[1];var style=new YMaps.Style();style.polygonStyle=new YMaps.PolygonStyle();style.polygonStyle.fill=true;style.polygonStyle.outline=true
style.polygonStyle.strokeWidth=1;style.polygonStyle.strokeColor="00000099";style.polygonStyle.fillColor=clr+"92";polygon[num].setStyle(style);}
polygon[num].setHintContent(hint);polygon[num].id=id;var data=$.toJSON({"modtime":modtime,"from":from,"techprim0":techprim0});polygon[num].metaDataProperty=data;var prim=techprim0;var addb=commentline("poly",topic,id,num,comm);var like='<br><g:plusone size="standard" count="true" href="http://map.ck.ua/?maptype='+maptype+'&id='+id+'"></g:plusone><span id="vk">&nbsp;</span>';like+='<a class="odkl-klass-stat" style="position:absolute;margin-left:5px;display:inline;margin-top:1px;" href="http://map.ck.ua/?maptype='+maptype+'&id='+id+'" onclick="ODKL.Share(this);return false;" ><span>0</span></a>';var myEventListener=YMaps.Events.observe(polygon[num],polygon[num].Events.BalloonOpen,function(metka){gapi.plusone.go();var vkcontent=VK.Share.button('http://map.ck.ua/?maptype='+maptype+'&id='+id,{type:'round',title:hint});$('#vk').html(vkcontent.replace('id','style="display:inline-block;margin-left:-35px;margin-bottom:2px;" id'));},this);polygon[num].setBalloonContent('<a rel="canonical" style="text-decoration:none;" title="Ссылка на объект" href="http://map.ck.ua?maptype='+maptype+'&id='+id+'"><img style="vertical-align:-3px;width:15px;height:13px;" src="/img/anchor.png" border="0">&nbsp;'+'<b>'+hint+'</b></a><br><br>'+addb+like);polygon[num].setEditingOptions({drawing:true});$("#itemslistcont").append('<li  onmousedown="wait();"  onclick="searchpop('+id+')">'+hint+'</li>');map.addOverlay(polygon[num]);}
function drawloadedline(data,num){var id=data.id;var modtime=data.modtime;var hint=data.hint;var points=data.points;var itemtype=data.itemtype;var from=data.from;var techprim0=data.techprim0;var topic=data.topic;var comm=data.answers;var opt=$.evalJSON(data.options.replace("coordRenderer","coordRendere0"));line[num]=YMaps.Polyline.fromEncodedPoints(points,'AAA',opt);line[num].setOptions({hasHint:1,hasBalloon:1});if(from){if($("#lb"+from).html())if($("#lb"+from).html().length<2)return;if(from=="megas")var clr=colour[0];if(from=="laut")var clr=colour[1];if(from=="forward")var clr='060048';if(from=="back")var clr='7F0000';var style=new YMaps.Style();style.lineStyle=new YMaps.LineStyle();style.lineStyle.strokeWidth=3;style.lineStyle.strokeColor=clr+"a1";line[num].setStyle(style);if(from=="forward")$("#itemslistcont").append('<li onclick="searchpop('+id+')">Дорога туда</li>');if(from=="back")$("#itemslistcont").append('<li onclick="searchpop('+id+')">Дорога обратно</li>');}
line[num].setHintContent(hint);line[num].id=id;var data=$.toJSON({"modtime":modtime,"from":from,"techprim0":techprim0});line[num].metaDataProperty=data;var prim=techprim0;var addb=commentline("lin",topic,id,num,comm);var like='<br><g:plusone size="standard" count="true" href="http://map.ck.ua/?maptype='+maptype+'&id='+id+'"></g:plusone><span id="vk">&nbsp;</span>';like+='<a title="Класс!" class="odkl-klass-stat" style="position:absolute;margin-left:75px;display:inline;margin-top:1px;" href="http://map.ck.ua/?maptype='+maptype+'&id='+id+'" onclick="ODKL.Share(this);return false;" ><span>0</span></a>';like+='<p id="fbl"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=161142603959490&amp;xfbml=1"></script><fb:like href="http://map.ck.ua/?maptype='+maptype+'&id='+id+'" send="false" layout="button_count" width="450" show_faces="true" font=""></fb:like><p>';var myEventListener=YMaps.Events.observe(line[num],line[num].Events.BalloonOpen,function(metka){gapi.plusone.go();var vkcontent=VK.Share.button('http://map.ck.ua/?maptype='+maptype+'&id='+id,{type:'round',title:hint});$('#vk').html(vkcontent.replace('id','style="display:inline-block;margin-left:-35px;margin-bottom:2px;" id'));$('a[rel^=ligh]').lightBox();},this);line[num].setBalloonContent('<a rel="canonical" style="text-decoration:none;" title="Ссылка на объект" href="http://map.ck.ua?maptype='+maptype+'&id='+id+'"><img style="vertical-align:-3px;width:15px;height:13px;" src="/img/anchor.png" border="0">&nbsp;'+'<b>'+hint+'</b></a><br><br>'+prim+addb+like);line[num].setEditingOptions({drawing:true});if(!from)$("#itemslistcont").append('<li  onmousedown="wait();"  onclick="searchpop('+id+')">'+hint+'</li>');map.addOverlay(line[num]);}
function drawloadedmarker(data,num){var id=data.id;var hint=data.hint;var points=data.points;var itemtype=data.itemtype;var techprim0=data.techprim0;var modtime=data.modtime;var opt=$.evalJSON(data.options.replace("coordRenderer","coordRendere0"));var topic=data.topic;var comm=data.answers;points=points.split(",");var pt=new YMaps.GeoPoint(points[0],points[1]);marker[num]=new YMaps.Placemark(pt,opt);var data=$.toJSON({"modtime":modtime,"techprim0":techprim0});marker[num].metaDataProperty=data;marker[num].setHintContent(hint);marker[num].id=id;prim=techprim0;var url=maptype+'&id='+id;var addb='<hr><input  class="fg-button ui-state-default ui-corner-all" style="padding:1px;" type="button" value="Начало маршрута" onclick="addtodirection(\''+points[0]+','+points[1]+'\',\'start\');">';addb+='&nbsp;<input  class="fg-button ui-state-default ui-corner-all" style="padding:1px;" type="button" value="Конец маршрута" onclick="addtodirection(\''+points[0]+','+points[1]+'\',\'end\');">';addb+=commentline("mark",topic,id,num,comm,url);var like='<br><g:plusone size="standard" count="true" href="http://map.ck.ua/?maptype='+maptype+'&id='+id+'"></g:plusone><span id="vk">&nbsp;</span>';like+='<a title="Класс!" class="odkl-klass-stat" style="position:absolute;margin-left:75px;display:inline;margin-top:1px;" href="http://map.ck.ua/?maptype='+maptype+'&id='+id+'" onclick="ODKL.Share(this);return false;" ><span>0</span></a>';like+='<p id="fbl"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=161142603959490&amp;xfbml=1"></script><fb:like href="http://map.ck.ua/?maptype='+maptype+'&id='+id+'" send="false" layout="button_count" width="450" show_faces="true" font=""></fb:like><p>';var myEventBallonOpen=YMaps.Events.observe(marker[num],marker[num].Events.BalloonOpen,function(metka){$('a.qr').qr();var txt=$('#selectcontent > span').html();$('meta[name=description]').attr('content',hint);$('meta[name=title]').attr('content','Карта Черкасс: '+txt);$('meta[property=og:description]').attr('content',hint);$('meta[property=og:title]').attr('content','Карта Черкасс: '+txt);gapi.plusone.go();var vkcontent=VK.Share.button('http://map.ck.ua/?maptype='+maptype+'&id='+id,{type:'round',title:hint,text:'да!'});$('#vk').html(vkcontent.replace('id','style="display:inline-block;margin-left:-36px;margin-bottom:2px;" id'));$('a[rel^=ligh]').lightBox();setMT('property','og:title','Title for Facebook');},this);var myEventBallonClose=YMaps.Events.observe(marker[num],marker[num].Events.BalloonClose,function(metka){$('meta[name=description]').attr('content',docdesc);$('meta[name=title]').attr('content',doctitle);$('meta[property=og:description]').attr('content',docdesc);$('meta[property=og:title]').attr('content',doctitle);},this);marker[num].setBalloonContent('<a rel="canonical" class="qr" title="Ссылка на объект" href="http://map.ck.ua?maptype='+maptype+'&id='+id+'"><img style="vertical-align:-3px;width:15px;height:13px;" src="/img/anchor.png" border="0">&nbsp;'+'<b>'+hint+'</b></a><br>'+prim+addb+like);$("#itemslistcont").append('<li  onmousedown="wait();" onclick="searchpop('+id+')">'+hint+'</li>');marker[num].setIconContent('<img src="http://map.ck.ua/img/flag_red.png">');map.addOverlay(marker[num]);}
function strip(html)
{var tmp=document.createElement("DIV");tmp.innerHTML=html;return tmp.textContent||tmp.innerText;}
function getpops(){var tmp=$("#arrow").html();$("#arrow").html('<img src="img/ajax-loader-arrows.gif">');$("#poplist").slideDown('fast');$.ajax({type:"POST",async:false,url:"server.php",data:"type=getpops",success:function(msg){$("#poplist").html(msg);$("#arrow").html(tmp);}});}
function searchpop(id){var srch=$("#searchpopaddress").val();$("#poplist").slideUp('fast');var allp=polygon.length;var allm=marker.length;var alll=line.length;for(i=0;i<allp;i++){var pid=polygon[i].id;if(pid==id){var hint=polygon[i].getHintContent();$("#searchpopaddress").html(hint);polygon[i].openBalloon();var bal=polygon[i].getBalloon();var bpt=bal.getGeoPoint();map.setCenter(bpt,14);}}
for(i=0;i<allm;i++){var pid=marker[i].id;if(pid==id){var hint=marker[i].getHintContent();$("#searchpopaddress").html(hint);marker[i].openBalloon();var bal=marker[i].getBalloon();var bpt=bal.getGeoPoint();map.setCenter(bpt,15);}}
for(i=0;i<alll;i++){try{var pid=line[i].id;}catch(e){}
if(pid==id){try{var hint=line[i].getHintContent();$("#searchpopaddress").html(hint);line[i].openBalloon();var bal=line[i].getBalloon();var bpt=bal.getGeoPoint();map.setCenter(bpt,15);}catch(e){}}}
wait(1);}
function wait(i){if(i!=1){var w=$(window).width();var h=$(window).height();var off=$(document).scrollTop();var top=off+h/2-20;var left=w/2-100;$("#wait").css({"top":top,"left":left});$("#wait").show(1);}else{$("#wait").hide('fast');}}
function wait2(i){if(i!=1){var w=$(window).width();var h=$(window).height();var off=$(document).scrollTop();var top=off+h/2-20;var left=w/2-100;$("#wait2").css({"top":top,"left":left});$("#wait2").show(1);}else{$("#wait2").hide('fast');}}
function justwait(i){if(i!=1){var w=$(window).width();var h=$(window).height();var off=$(document).scrollTop();var top=off+h/2-40;var left=w/2-40;$("#justwait").css({"top":top,"left":left});$("#justwait").show(1);}else{$("#justwait").hide('fast');}}
function disclamer(){var w=$(window).width();var h=$(window).height();var off=$(document).scrollTop();var top=off+h/2-100;var left=w/2-350;$("#disclamer").css({"top":top,"left":left});$("#disclamer").show(1);}
function filter(type){var box=$("#lb"+type)
if(box.html().length<1){box.html('<img src="img/check.gif">');}else{box.html('');}
loadmap('pops');}
function select(obj,type)
{$('img.carred').remove();$('img.carblue').remove();$("#itemslist").hide();$("#hintsadd").hide();$("#itemslistcont").css('height',322);$("#itemslistbtn").html("");$("#itemslistcont").html("");$('#selectlist').slideUp('fast');$("#selectcontent").html($(obj).html());$("#hiddenmaptypem").val(type);$("#hiddenmaptypea").val(type);$("#hiddenmaptypel").val(type);$("#glmaptype").val(type);$('#legend').hide();$('#routetools').hide();$("#addroutebtn").hide();document.title="Map.ck.ua - это твой город! Подробная карта Черкас, маршруты траспорта, поиск адреса и многое другое.";if(type=="pops"){document.title="Map.ck.ua - Карта провайдеров города.";maptype='pops';location.hash='maptype=pops';$('#isp').show();$("#itemslist").show();}else{$('#isp').hide();}
if(type=="wifi"){document.title="Map.ck.ua - карта расположения wi-fi хоспотов";maptype='wifi';$("#itemslist").show();selecticon('default#wifiIcon','#wifiIcon');location.hash='maptype=wifi';}
if(type=="sauna"){document.title="Map.ck.ua - бани и сауны";maptype='sauna';$("#itemslist").show();selecticon('custom#sauna','#sauna');location.hash='maptype=sauna';}
if(type=="hotel"){document.title="Map.ck.ua - Гостиницы и отели";maptype='hotel';$("#itemslist").show();selecticon('custom#hotel','#hotel');location.hash='maptype=hotel';}
if(type=="kino"){document.title="Map.ck.ua - кинотеатры";maptype='kino';$("#itemslist").show();selecticon('default#cinemaIcon','#cinemaIcon');location.hash='maptype=kino';}
if(type=="bike"){document.title="Map.ck.ua - велокарта";maptype='bike';$("#itemslist").show();location.hash='maptype=bike';}
if(type=="osmp"){document.title="Map.ck.ua - терминалы";maptype='osmp';$("#itemslist").show();selecticon('custom#osmp','#osmp');location.hash='maptype=osmp';}
if(type=="pano"){document.title="Map.ck.ua - панорамы";maptype='pano';$("#itemslist").show();selecticon('custom#pano','#pano');location.hash='maptype=pano';}
if(type=="bus"){document.title="Map.ck.ua - маршруты транспорта";maptype='bus';selecticon('custom#busstop','#busstop');location.hash='maptype=bus';$("#tool").hide();$("#addroutebtn").show();loadroutes();return;}
if(type=="direction"){times=0;location.hash='maptype=direction';maptype="direction";$("#tool").hide();addplace();return;}
if(type=="usermap")return;loadmap(type);}
function encodePoints(points){var array=[],prev=new YMaps.Point(0,0),coef=1000000;for(var i=0,geoVector,currentPoint;i<points.length;i++){currentPoint=points[i].copy();geoVector=currentPoint.diff(prev).neg();array=array.concat(Base64.encode4bytes(geoVector.getX()*coef),Base64.encode4bytes(geoVector.getY()*coef));prev=currentPoint;}
return Base64.encode(array);}
var Base64=new function(){var _keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=";this.encode4bytes=function(x){var chr=[];for(var i=0;i<4;i++){chr[i]=x&0x000000ff;x=x>>8;}
return chr;}
this.encode=function(input){var output="",chr1,chr2,chr3,enc1,enc2,enc3,enc4,i=0,inputIsString=typeof input=="string";while(i<input.length){chr1=input[i++];chr2=input[i++];chr3=input[i++];enc1=chr1>>2
enc2=((chr1&3)<<4)|(chr2>>4);enc3=((chr2&15)<<2)|(chr3>>6)
enc4=chr3&63;if(isNaN(chr2)){enc3=enc4=64;}else if(isNaN(chr3)){enc4=64;}
output+=_keyStr.charAt(enc1)+_keyStr.charAt(enc2)+
_keyStr.charAt(enc3)+_keyStr.charAt(enc4);}
return output;}}
function slist(){$('#searchlist').html('<li><input name="city" type="checkbox" value="ON" checked id="city"><label for="city">&nbsp;&nbsp;Только в Черкассах</label></li>');}
var ret;function yasearch(str){if($('#city').attr('checked')){var value="Черкаси, "+str;}else{var value=str;}
var geocoder=new YMaps.Geocoder(value,{results:1});YMaps.Events.observe(geocoder,geocoder.Events.Load,function(){if(this.length()){var geoResult=this.get(0);geoResult.text=geoResult.text.replace(/Украина, Черкассы, /gi,"");var point=geoResult.getGeoPoint();var gpoint=point.getLng()+","+point.getLat();var nearest;$.ajax({type:"POST",async:false,url:"server.php",data:"type=getneareststops"+"&point="+gpoint,success:function(msg){try{var data=$.evalJSON(msg);var all=data.length;var mnum=0;nearest="<br>Ближайшие остановки в радиусе ~500м:<br>";for(i=0;i<all;i++){data[i].points=data[i].points[0]+","+data[i].points[1];drawloadedstops(data[i],mnum);var pts=data[i].points.split(",");var pt2=new YMaps.GeoPoint(pts[0],pts[1]);var dist=YMaps.humanDistance(point.distance(pt2));nearest=nearest+'<a href="#" onclick="searchpop(\'m'+data[i].id+'\');">'+data[i].hint+'</a> ('+dist+')'+'<br>';mnum++;}
if(mnum<1)nearest="";}catch(e){if(debug==1)alert(e);}}});geoResult.setStyle("custom#redflag");var addb='<hr><input type="button" value="Начало маршрута" onclick="addtodirection(\''+point.getLng()+','+point.getLat()+'\',\'start\');">';addb+='<input type="button" value="Конец маршрута" onclick="addtodirection(\''+point.getLng()+','+point.getLat()+'\',\'end\');">';geoResult.setHintContent('результаты поиска (Y)');geoResult.setBalloonContent('<b>'+geoResult.text+'</b><hr>'+nearest+addb);geoResult.setOptions({hasHint:1,hasBalloon:1,draggable:0,hideIcon:false});map.addOverlay(geoResult);map.setBounds(geoResult.getBounds());geoResult.openBalloon();ret="all ok";wait(1);$('#searchlist').hide();slist();return;}else{if(debug==1)alert("Ничего не найдено");$("#searchlist").html('<li>(y) ничего не нашлось..</li><li onclick="$(\'#searchlist\').hide(100);wait(1);"><img src="img/visicom.png" border=0 ><span style="color:#9387FF; float:right;">[х]</span></li>');$("#searchlist").show(100);ret="none";wait(1);return;}});YMaps.Events.observe(geocoder,geocoder.Events.Fault,function(geocoder,error){if(debug==1)alert("Произошла ошибка: "+error);$("#searchlist").html('<li>(e) ничего не нашлось..</li><li onclick="$(\'#searchlist\').hide(100);wait(1);"><img src="img/visicom.png" border=0 ><span style="color:#9387FF; float:right;">[х]</span></li>');$("#searchlist").show(100);wait(1);ret="none";})}
function visisearch(id){var str=$("#searchad").val();if(str[1]=='+'){str=str.substring(2);$('#city').attr('checked',false);yasearch(str);return;}
location.hash="sstr="+encodeURI(str);if($('#city').attr('checked')==false)location.hash="sstr=++"+encodeURI(str);$("#itemslistcont").html("");$("#itemslist").hide();$.ajax({type:"POST",async:false,url:"proxy.php",data:"type=vsearch&str="+str+"&id="+id,success:function(msg){var data=$.evalJSON(msg);if(data.status=='more'){moreresults(data);return;}
var pt=new YMaps.GeoPoint(data.LNG,data.LAT);if(data.LNG){}else{yasearch(str);return;}
mark=new YMaps.Placemark(pt,{hasHint:1,hasBalloon:1,draggable:0,hideIcon:false});var addb='<hr><input type="button" value="Начало маршрута" onclick="addtodirection(\''+data.LNG+','+data.LAT+'\',\'start\');">';addb+='<input type="button" value="Конец маршрута" onclick="addtodirection(\''+data.LNG+','+data.LAT+'\',\'end\');">';mark.setHintContent('результаты поиска (V)');mark.setStyle("custom#redflag");mnum=0;try{var all=data.near.length;}catch(e){}
var nearest="<br>Ближайшие остановки в радиусе ~500м:<br>";for(i=0;i<all;i++){data.near[i].points=data.near[i].points[0]+","+data.near[i].points[1];drawloadedstops(data.near[i],mnum);var pts=data.near[i].points.split(",");var pt2=new YMaps.GeoPoint(pts[0],pts[1]);var dist=YMaps.humanDistance(pt.distance(pt2));nearest=nearest+'<a href="#" onclick="searchpop(\'m'+data.near[i].id+'\');">'+data.near[i].hint+'</a> ('+dist+')'+'<br>';mnum++;}
if(mnum<1)nearest="";map.setCenter(pt,17);mark.setBalloonContent('<b>'+data.address+'</b><hr><div style="background:url(http://map.ck.ua/img/visicom_tr.png) no-repeat;min-height:20px;">'+nearest+addb+'</div>');map.addOverlay(mark);mark.openBalloon();wait(1);slist();$('#searchlist').hide();}});if($.cookie('addreminder')!='no'){$("#hintsadd").show();$("#hintsadd").css('z-index',9999);$("#hintsaddcontent").html('Вы можете назначить флаг начальной или конечной точкой маршрута.<br>Вторую конечную точку можно получить еще одним поиском или из тематической карты (wi-fi и т.п.).');}}
function addtodirection(str,who){if(who=="start")StartPoint=str;if(who=="end")EndPoint=str;map.closeBalloon();if((StartPoint!='null')&&(EndPoint!='null')){wait();getdirection();StartPoint='null';EndPoint='null';}}
var dline=[];function getdirection(){loadmap();$("#itemslistcont").html('');$("#itemslistbtn").html('');$("#itemslist").show();$.ajax({type:"POST",async:false,url:"server.php",data:"type=from2points"+"&pt1="+StartPoint+"&pt2="+EndPoint,success:function(msg){try{var resp=jQuery.parseJSON(msg);var rou=resp.routes;var all=resp.stops.item.length;var mnum=0;if(rou.length>0){$("#itemslistcont").append('<center><p style="background:#F7F7F7;border:1px gray solid;">Подходящий транспорт<sup>*</sup></p></center>');for(i=0;i<rou.length;i++){var val=rou[i];$("#itemslistcont").append('<center><a href="http://map.ck.ua/?maptype=bus&routename='+encodeURI(encodeURI(val))+'">'+val+'</a></center>');$("#hintsadd").show();$("#hintsadd").css('z-index',9999);$("#hintsaddcontent").html('<sup>*</sup>Без учета направления движения транспорта.<br>&nbsp;Уточняйте по маршрутам.');}}
if(all>0)$("#itemslistcont").append('<center><p style="background:#F7F7F7;border:1px gray solid;">Ближайшие остановки</p></center>');for(i=0;i<all;i++){var itemt=$.trim(resp.stops.item[i].itemtype);if(itemt=='marker'){drawloadedstops(resp.stops.item[i],mnum);mnum++;}}}
catch(e)
{if(debug==1)alert("parse error:: "+e);}}});router=new YMaps.Router([StartPoint,EndPoint]);YMaps.Events.observe(router,router.Events.Success,function(){map.addOverlay(router);router.applyView();var distance=router.getDistance();$("#itemslistcont").append('<center><p style="background:#F7F7F7;border:1px gray solid;">Длина: '+distance+'м.</p></center>');var route=router.getRoute(0);var action=[];action['back']='назад';action['left']='налево';action['right']='направо';action['none']='прямо';action['slight right']='правее';action['hard right']='резко направо';var v;for(var i=0;i<route.getNumRouteSegments();i++){var segment=route.getRouteSegment(i);$("#itemslistcont").append('<li onclick="selectsegment('+i+')";>'+action[segment.getAction()]+": "+segment.getStreet()+' '+segment.getDistance()+' м. '+'</li>');v++;}
router.getWayPoint(0).setStyle('custom#none');router.getWayPoint(1).setStyle('custom#none');routepoints=router.getRoute(0).getPoints();uline[0]=new YMaps.Polyline(routepoints,{hasHint:1});var data=$.toJSON({"opacity":"1a","width":6,"color":"9114ff","from":null,"techprim0":"Маршрут из точки "+router.getWayPoint(0).text+" в точку "+router.getWayPoint(1).text+"<br> Общая длина пути: "+router.getDistance()+"м."});uline[0].metaDataProperty=data;uline[0].setHintContent('найденный маршрут');var style=new YMaps.Style();style.lineStyle=new YMaps.LineStyle();style.lineStyle.strokeWidth=10;style.lineStyle.strokeColor="9114ffa1";uline[0].setStyle(style);uiline++;});YMaps.Events.observe(router,router.Events.RouteError,function(link,number){alert('Не удается проложить маршрут до точки № '+number);});wait(1);}
var selectline;var routepoints;function selectsegment(i){var numpt1=router.getRoute(0).getRouteSegment(i).getPolylineIndex();var numpt2=(router.getRoute(0).getNumRouteSegments()==(i+1))?routepoints.length:router.getRoute(0).getRouteSegment(i+1).getPolylineIndex();var pts=routepoints.slice(numpt1,numpt2);selectline=new YMaps.Polyline(pts,{hasHint:1,hasBalloon:1});var style=new YMaps.Style();style.lineStyle=new YMaps.LineStyle();style.lineStyle.strokeWidth=10;style.lineStyle.strokeColor="ffa516a1";selectline.setStyle(style);map.addOverlay(selectline);window.setTimeout(removeselectline,500);}
function removeselectline(){map.removeOverlay(selectline);}
function getdirectionold(){$("#itemslistcont").html('');$("#itemslistbtn").html('');$("#itemslist").show();$.ajax({type:"POST",url:"proxy_route.php",data:"start="+StartPoint+"&end="+EndPoint,success:function(msg){try{var data=$.evalJSON(msg);var dir=data.response.route.edges;}catch(e){alert('Не знаю, как тут проехать..');wait(1);return;}
var edges=dir['edge'];if(edges.length<1){var edges=[];edges.push(dir['edge']);}
var total=dir['@attributes']['length'];$("#itemslistcont").append('<center><p style="background:#F7F7F7;border:1px gray solid;">Длина: '+total+'м.</p></center>');var totalpts=[];alert(edges);for(i=0;i<1;i++){var name=edges[i]['@attributes']['name'];var len=edges[i]['@attributes']['length'];var id=edges[i]['@attributes']['id'];var points=edges[i]['points']['point'];var pts=[];alert('test'+points[r]['@attributes']['lng']+'||'+points[r]['@attributes']['lat']);for(r=0;r<points.length;r++){pts[r]=new YMaps.GeoPoint(points[r]['@attributes']['lng'],points[r]['@attributes']['lat']);totalpts.push(pts[r]);if((i==0)&&(r==0)){mark=new YMaps.Placemark(pts[r],{hasHint:1,hasBalloon:1,draggable:0});mark.setHintContent('результаты поиска');mark.setBalloonContent(data.address);mark.setStyle("custom#redflag");}
if((i==(edges.length-1))&&(r==(points.length-1))){mark=new YMaps.Placemark(pts[r],{hasHint:1,hasBalloon:1,draggable:0});mark.setHintContent('результаты поиска');mark.setBalloonContent(data.address);mark.setStyle("custom#redflag");}}
alert($.toJSON(pts));uline[uiline]=new YMaps.Polyline(pts,{hasHint:1,hasBalloon:1});var style=new YMaps.Style();style.lineStyle=new YMaps.LineStyle();style.lineStyle.strokeWidth=6;style.lineStyle.strokeColor="060048a1";uline[uiline].setStyle(style);name=name.replace(/Черкассы /gi,"");uline[uiline].setHintContent(name);var no=i+1;$("#itemslistcont").append('<li onclick="searchpop(\'d'+uiline+'\')";>'+no+'. '+name+'</li>');uline[uiline].id='d'+uiline;uline[uiline].setBalloonContent('<b>'+name+'</b><br>Дистанция: '+len+'м.');var data=$.toJSON({"opacity":"a1","width":6,"color":"060048","from":"","techprim0":'<b>'+name+'</b><br>Дистанция: '+len+'м.'});uline[uiline].metaDataProperty=data;map.addOverlay(uline[uiline]);uiline++;}
line[999]=new YMaps.Polyline(totalpts,{hasHint:0,hasBalloon:0});lbounds=new YMaps.GeoCollectionBounds(line[999].getPoints());startcar(999,'red');window.setTimeout(sc,1500);window.setTimeout(sc2,3000);wait(1);}});}
function sc(){startcar(999,'red');}
function sc2(){startcar(999,'red');}
function Car(line,map,color){try{var _this=this,points=line.getPoints(),indexTo=1,callback;}catch(e){}
YMaps.Events.observe(map,map.Events.BoundsChange,function(){this.car.stop();this.position();},this);this.start=function(func){try{this.create(points[0]);}catch(e){}
this.move();callback=func;}
this.position=function(){if(!indexTo){indexTo--;}
var toPx=map.converter.coordinatesToLocalPixels(points[indexTo]);this.car.css({left:toPx.x,top:toPx.y});this.move();}
this.move=function(){var toPx=map.converter.coordinatesToLocalPixels(points[indexTo]);var time=points[indexTo-1].distance(points[indexTo])
if(time<1){time=10;}
this.car.animate({left:toPx.x,top:toPx.y},{duration:time,complete:function(){_this.tick();},queue:0});}
this.tick=function(){if(indexTo<points.length-1){this.move();indexTo++;}else{this.remove();}}
this.create=function(startPoint){var fromPx=map.converter.coordinatesToLocalPixels(startPoint);this.car=YMaps.jQuery("<img class=\"car"+color+"\"/>").css({left:fromPx.x,top:fromPx.y}).appendTo(map.getContainer());}
this.remove=function(){this.car.remove();callback.call();}}
function startcar(num,color){new Car(line[num],map,color).start(function(){});}
function moreresults(data){var all=data.item.length;var list='';for(i=0;i<all;i++){list=list+'<li onclick="visisearch(\''+data.item[i].id+'\')">'+data.item[i].descr+'</li>';}
list=list+'<li onclick="$(\'#searchlist\').hide(100);wait(1);"><img src="img/visicom.png" border=0 ><span style="color:#9387FF; float:right;">[х]</span></li>';$("#searchlist").html(list);$("#searchlist").show(100);wait(1);}
function fbshow(){var w=$(window).width();var h=$(window).height();var off=$(document).scrollTop();var top=off+h/2-200;var curl=parseInt($('#fbwin').css("left"));var left=w/2-250;if(curl>100){$('#fbwin').animate({'opacity':'hide','left':-300,'top':parseInt(h)-100,height:90});return;}
$("#fbwin").css({"bottom":30,"left":-300});$('#fbwin').animate({'opacity':'show','left':left,'top':top,height:380});$("#fbwin").draggable({iframeFix:true,opacity:0.35,handle:'#fbwinheader'});}
function fbpost(){var txt=tinyMCE.get('fbtext').getContent();var mail=$("#fbmail").val();var name=$("#fbname").val();var b=$("#fbcontent").html();if(txt.length<5){alert('Слишком короткий текст сообщения!\n\r\Ну хоть пять букв напишите..');return;}
var item="&txt="+encodeURIComponent(txt)+"&mail="+encodeURIComponent(mail)+"&name="+encodeURIComponent(name);$.ajax({type:"POST",async:true,url:"server.php",data:"type=feedback"+item,success:function(msg){try{var resp=jQuery.parseJSON(msg);if(resp.status=='ok'){alert('\n\r Спасибо!\n\r\n\r\Ваш отзыв добавлен. Модератор сайта обязательно прочтет его.\n\r');$("#fbwin").fadeOut(500,function(){});return;}else{if(debug==1)alert('> '+msg);}}
catch(e)
{if(debug==1)alert(e);}}});return;}
function loadroutes(){$("#itemslistbtn").html("");$("#itemslistcont").html("");$("#itemslist").show();upolygon=new Array();uline=new Array();umarker=new Array();uipoly=0;uiline=0;uimark=0;polygon=new Array();line=new Array();marker=new Array();ipoly=0;iline=0;imark=0;$('#save').hide();map.removeAllOverlays();markerManager.removeAll();map.addOverlay(markerManager);var pnum=0,lnum=0,mnum=0;$.ajax({type:"POST",async:true,url:"server.php",data:"type=loadroutes",success:function(msg){try{var resp=jQuery.parseJSON(msg);if(resp.status=='ok'){var all=resp.item.length;$("#rl").hide();$("#itemslistbtn").html("<div id='rl' class='buttons'>Список маршрутов</div>");$("#itemslistcont").css('height',295);for(i=0;i<all;i++){$("#itemslistcont").append('<li  onmousedown="wait();"  onclick="loadroute(\''+resp.item[i].name+'\');">'+resp.item[i].name+'</li>');}}else{if(debug==1)alert('status error:: '+msg);}}
catch(e)
{if(debug==1)alert("parse error:: "+e);}}});wait(1);}
var lbounds;var ptforb=[];function loadroute(route){wait();route0=route;location.hash='maptype=bus&routename='+encodeURI(encodeURI(route));if(stopid)location.hash='maptype=bus&routename='+encodeURI(encodeURI(route))+'&id='+stopid;$("#itemslistbtn").html("");$("#itemslistcont").html("");$("#itemslist").show();upolygon=new Array();uline=new Array();umarker=new Array();uipoly=0;uiline=0;uimark=0;polygon=new Array();line=new Array();marker=new Array();ipoly=0;iline=0;imark=0;$('#save').hide();markerManager.removeAll();map.removeAllOverlays();map.addOverlay(markerManager);var pnum=0,lnum=0,mnum=0;$.ajax({type:"POST",async:false,url:"server.php",data:"type=loadroute&route="+route,success:function(msg){try{var resp=jQuery.parseJSON(msg);if(resp.status=='ok'){var all=resp.item.length;$("#rl").hide();$("#itemslistcont").html("");$("#itemslistbtn").html("<div id='rl' class='buttons' onmousedown='wait();' onclick='select(\"#busli\",\"bus\");'>Список маршрутов</div>");$("#itemslistcont").css('height',295);$("#itemslistcont").append('<center><p style="background:#F7F7F7;border:1px gray solid;">Маршрут '+route+'</p></center>');for(i=0;i<all;i++){itemt=$.trim(resp.item[i].itemtype);if(itemt=='line'){drawloadedlineroute(resp.item[i],lnum);lnum++;}
if(itemt=='marker'){drawloadedstops(resp.item[i],mnum);mnum++;}}
map.setBounds(lbounds);}else{if(debug==1)alert('status error:: '+msg);}}
catch(e)
{if(debug==1)alert("parse error:: "+e);}}});wait(1);$('img.carblue').remove();window.setTimeout(scr,1500);window.setTimeout(scr2,3700);}
function scr(){startcar(0,"blue");startcar(1,"red");}
function scr2(){startcar(0,"blue");startcar(1,"red");}
function drawloadedlineroute(data,num){var id=data.id;var modtime=data.modtime;var hint=data.hint;var points=data.points;var topic=data.topic;var comm=data.answers;ptforb[num]=points;var itemtype=data.itemtype;var from=data.from;var techprim0=data.techprim0;var opt=$.evalJSON(data.options);line[num]=YMaps.Polyline.fromEncodedPoints(points,'AAA',{hasHint:1,hasBalloon:1});if(from=="forward")var clr='060048';if(from=="back")var clr='7F0000';var style=new YMaps.Style();style.lineStyle=new YMaps.LineStyle();style.lineStyle.strokeWidth=3;style.lineStyle.strokeColor=clr+"a1";line[num].setStyle(style);if(from=="forward")$("#itemslistcont").append('<li onclick="wait(1);startcar('+num+',\'blue\');">-Дорога туда</li>');if(from=="back")$("#itemslistcont").append('<li onclick="wait(1);startcar('+num+',\'red\');">-Дорога обратно</li>');line[num].setHintContent(hint);line[num].id=id;var data=$.toJSON({"modtime":modtime,"from":from,"techprim0":techprim0});line[num].metaDataProperty=data;var prim=techprim0;var bcon="";if(from=="forward"){var addb=commentline("lin",topic,id,num,comm);}else{var addb="";}
line[num].setBalloonContent('<b>Маршрут '+hint+'</b>'+prim+'<hr><a href="http://map.ck.ua/?maptype=bus&routename='+encodeURI(encodeURI(route0))+'">Ссылка на маршрут</a>'+bcon+addb);line[num].setEditingOptions({drawing:true});if(!from)$("#itemslistcont").append('<li onclick="searchpop('+id+')">'+hint.substring(0,30)+'</li>');map.addOverlay(line[num]);line[0].openBalloon();lbounds=new YMaps.GeoCollectionBounds(line[0].getPoints());if(ptforb[num].length>ptforb[num].length)lbounds=new YMaps.GeoCollectionBounds(line[num].getPoints());}
function drawloadedstops(data,num){var id=data.id;var hint=data.hint;var points=data.points;var itemtype=data.itemtype;var techprim0=data.techprim0;var comm=data.answers;var modtime=data.modtime;var topic=data.topic;points=points.split(",");var pt=new YMaps.GeoPoint(points[0],points[1]);marker[num]=new YMaps.Placemark(pt,{hasHint:true,hasBalloon:true,hideIcon:false,draggable:false,style:"custom#busstop"});var data=$.toJSON({"modtime":modtime,"techprim0":techprim0});marker[num].metaDataProperty=data;marker[num].setHintContent(hint);marker[num].id='m'+id;prim=techprim0;var bcon='<b>'+hint+'</b>'+prim+'<hr>';if(route0){var surl=urler('http://map.ck.ua?maptype='+maptype+'&routename='+encodeURI(encodeURI(route0))+'&id=m'+id);if(!surl)surl=urler('http://map.ck.ua?maptype='+maptype+'&routename='+encodeURI(encodeURI(route0))+'&id=m'+id);var objurl='http://map.ck.ua/u/?sur='+surl;var qrurl='http://chart.apis.google.com/chart?cht=qr&chs=100x100&choe=UTF-8&chld=L%7C0&chl='+objurl;bcon=bcon+'<a href="?maptype='+maptype+'&routename='+encodeURI(encodeURI(route0))+'&id=m'+id+'">Ссылка на объект</a><p><center><img alt="qr-code" src="'+qrurl+'"></center><p>';}
var addb=commentline("mark",topic,id,num,comm);marker[num].setBalloonContent(bcon+addb);$("#itemslistcont").append('<li onmousedown="wait();" onclick="searchpop(\'m'+id+'\')";>'+num+'. '+hint.substring(0,30)+'</li>');YMaps.Events.observe(marker[num],marker[num].Events.BalloonOpen,function(metka){$('a[rel^=ligh]').lightBox();},this);map.addOverlay(marker[num]);}
function flag(str,hint){$("#context").hide();var points=str.split(",");var pt=new YMaps.GeoPoint(points[0],points[1]);marker[uimark]=new YMaps.Placemark(pt,{hasHint:true,hasBalloon:true,hideIcon:false,draggable:false,style:"custom#redflag"});var lat=pt.getLat();var lng=pt.getLng();var addb='<hr><input type="button" value="Начало маршрута" onclick="addtodirection(\''+lng+','+lat+'\',\'start\');">';addb+='<input type="button" value="Конец маршрута" onclick="addtodirection(\''+lng+','+lat+'\',\'end\');">';marker[uimark].setHintContent(hint);marker[uimark].setBalloonContent(hint+addb);map.addOverlay(marker[uimark]);}
function center(str){$("#context").hide();var points=str.split(",");var pt=new YMaps.GeoPoint(points[0],points[1]);map.setCenter(pt);$("#context").hide();}
function neareststops(str){var points=str.split(",");var pt=new YMaps.GeoPoint(points[0],points[1]);var gpoint=str;var nearest;$.ajax({type:"POST",async:false,url:"server.php",data:"type=getneareststops"+"&point="+gpoint,success:function(msg){try{var data=$.evalJSON(msg);var all=data.length;var mnum=0;nearest="<br>Ближайшие остановки в радиусе ~500м:<br>";for(i=0;i<all;i++){data[i].points=data[i].points[0]+","+data[i].points[1];wait();drawloadedstops(data[i],mnum);var pts=data[i].points.split(",");var pt2=new YMaps.GeoPoint(pts[0],pts[1]);var dist=YMaps.humanDistance(pt.distance(pt2));nearest=nearest+'<a href="#" onclick="searchpop(\'m'+data[i].id+'\');">'+data[i].hint+'</a> ('+dist+')'+'<br>';mnum++;}
if(mnum<1)nearest="";}catch(e){if(debug==0)alert(e);}}});flag(str,'точка поиска остановок'+nearest);wait(1);}
function showlogin(){var w=$(window).width();var h=$(window).height();var top=h/2-150;var left=w/2-200;$("#logindiv").css({"top":top,"left":left});$("#logindiv").show();shadowresize("logindiv");}
function login(){var user=$("#lname").val();var passw=$("#lpass").val();$.ajax({type:"POST",async:false,url:"smf.php",data:"smf=login&username="+encodeURIComponent(user)+"&pass="+encodeURIComponent(passw),success:function(msg){msg=$.trim(msg);if(msg=="ok"){$("#ltips").html("Проверка...");wait2();for(i=0;i<1000;i++){var t="ffff".substring(0,4);}
wait2(1);var data=getauthdata("json");if(data.is_guest){$("#ltips").html("Ошибка входа. Попробуйте обновить страницу или зайти через <a href=\"/board/\" target=\"_blank\">форум</a>.");$("#ltips").effect("pulsate",{times:3},500);loadmap();return;}
$("#uwname0").html('<span id="uwname">'+data.name+'</span>');$("#prof").attr('href','http://map.ck.ua/board/index.php?action=profile;u='+data.id);$("#submenu").css("display","block");$("#logindiv").hide();$(".shadow").hide();return;}else{if(user=="logout")return;$("#ltips").html("Неверные имя пользователя или пароль, либо вы забыли <a href='http://map.ck.ua/board/index.php?action=register' target='_new'>зарегистрироваться</a>.");$("#ltips").effect("pulsate",{times:3},500);return;}}});}
function getauthdata(atype){var data=[];$.ajax({type:"POST",async:false,url:"smf.php",data:"smf=auth&atype="+atype,success:function(msg){try{data=$.evalJSON(msg);}catch(e){data.status="no";data=$.trim(msg);}}});return data;}
function logout(){$('#lname').val('');login();$('#uwname').attr('id','uwname0');$('#uwname0').html('<a href="javascript:showlogin();">Войти</a>');$("#submenu").css("display","none");}
function commentline(obj,topic,id,num,comm,ourl){var objtype;var board;switch(maptype){case'wifi':board=3;break;case'bike':board=15;break;case'osmp':board=17;break;case'pano':board=18;break;case'pops':board=2;break;case'bus':board=4;break;case'kino':board=5;break;case'sauna':board=6;break;case'hotel':board=7;break;default:board=0;break;}
var numc='';var txt='<hr>';txt+='<a id="commlink'+id+'" href="javascript:$(\'#progressind\').show();showcomments(\''+obj+'\','+board+','+topic+','+id+','+num+');"><div class="ui-dialog-titlebar ui-corner-all ui-state-default" style="margin-top:5px;text-decoration:none;">&nbsp;Читать комментарии&nbsp;('+comm+')<span id="progressind" style="display:none;"><img src="http://map.ck.ua/img/indicator.gif"></span></div></a>';txt+='<div id="commentsdiv'+id+'" class="commentsdiv">ddddddddddddddddd</div>';txt+='<a href="javascript:addcomment(\''+obj+'\','+board+','+topic+','+id+','+num+',\''+ourl+'\');"><div onmousedown="$(\'#progressind2\').show();" class="ui-dialog-titlebar ui-corner-all ui-state-default" style="margin-top:5px;text-decoration:none;">&nbsp;Комментировать&nbsp;&nbsp;<span id="progressind2" style="display:none;"><img src="http://map.ck.ua/img/indicator.gif"></span></div></a>';return txt;}
function getnumcomments(obj,board,topic,id,num){var num;if(obj=="mark")object=marker;if(obj=="lin")object=line;if(obj=="poly")object=polygon;$.ajax({type:"POST",async:false,url:"getposts.php",data:"topicid="+topic,success:function(msg){try{var resp=jQuery.parseJSON(msg);var all=resp.item.length;num=(!resp)?0:all;}
catch(e){if(debug==1)alert("parse error:: "+e);}}});return num;}
function showcomments(obj,board,topic,id,num){if(obj=="mark")object=marker;if(obj=="lin")object=line;if(obj=="poly")object=polygon;if($("#commentsdiv"+id).is(':visible')){if((maptype=="bus")&&(obj=="mark"))id=id.substring(1);$("#commentsdiv"+id).hide();object[num].update();$("#progressind").hide();return;}
var cont="<div id='comments' class='ui-widget-content' style='padding:4px;margin:2px auto;margin-top:5px;'>";$.ajax({type:"POST",async:false,url:"getposts.php",data:"topicid="+topic,success:function(msg){try{var resp=jQuery.parseJSON(msg);if(resp.status=='ok'){var all=resp.item.length;for(i=0;i<all;i++){var poster=resp.item[i].poster;var text=resp.item[i].text;var date=resp.item[i].date;var link=resp.item[i].link;cont+="<div id='commentitem'>";cont+="<div><span>"+poster+"&nbsp;</span><span style='float:right;'><a href='"+link+"'>"+date+"</a></span></div>";cont+="<div id='uparr'></div>";cont+="<p class='ui-corner-all' style='background:#f7f7f7;padding:5px;'>"+text+"</p</div><br>";}}else{if(debug==1)alert('status error:: '+msg);}}
catch(e){if(debug==1)alert("parse error:: "+e);}}});cont+="</div>";$("#commentsdiv"+id).html(cont);$("#commentsdiv"+id).show();$("#progressind").hide();object[num].update();}
function addcomment(obj,board,topic,id,num,ourl){if(maptype.indexOf('user')!=-1)board=16;if(tinyMCE.get('bbcode'))tinyMCE.get('bbcode').remove();var auth=getauthdata("json");if(auth.is_guest){if(confirm("Только зарегистрированные пользователи могут оставлять комментарии.\n Хотите войти или зарегистрироваться?")){showlogin();return;}
return;}
var w=$(window).width();var h=$(window).height();var top=h/2-200;var left=w/2-260;$("#commentdiv").css({"top":top,"left":left});$("#commentdiv").show();$("#commentdiv").draggable({iframeFix:true,opacity:0.35,handle:'#commentdivh'});shadowresize("commentdiv");$("#commentdiv").draggable({helper:'original',stop:function(event,ui){shadowresize('commentdiv');}});$("#objname").val(obj);$("#board").val(board);$("#topic").val(topic);$("#url").val(ourl);$("#objnum").val(num);$('#progressind2').hide();}
function placecomment(){var ourl=$("#url").val();var txt=$("#bbcode").val();var topic=$("#topic").val();var board=$("#board").val();var num=$("#objnum").val();var obj=$("#objname").val();var top;if(obj=="mark")object=marker;if(obj=="lin")object=line;if(obj=="poly")object=polygon;var subj=object[num].getHintContent();var objid=object[num].id;$.ajax({type:"POST",async:false,url:"smf.php",data:"smf=post&board="+board+"&topic="+topic+"&subject="+encodeURIComponent(subj)+"&txt="+encodeURIComponent(txt)+"&maptype="+maptype+"&objid="+objid+"&objtype="+obj+"&ourl="+encodeURIComponent(ourl),success:function(msg){try{data=$.evalJSON(msg);if(data.status=="ok"){var top=data.topicid;$("#commentsdiv"+objid).hide();$("#topic").val(top);$("#commentdiv").hide();$(".shadow").hide();if((maptype=="bus")&&(obj=="mark"))objid=objid.substring(1);showcomments(obj,board,top,objid,num);$("#commlink"+objid).attr('href','javascript:showcomments(\''+obj+'\','+board+','+top+','+objid+','+num+')');}else{if(debug==1)alert(msg);}}catch(e){if(debug==1)alert(msg+"\n"+e);}}});}
function getmymapslist(){loadmap();$.ajax({type:"POST",async:true,url:"server.php",data:"type=loadusermaplist",success:function(msg){try{resp=$.evalJSON(msg);var all=resp.item.length;$("#itemslistbtn").html('<p id="mml" onclick="getmymapslist();" class="buttons">Список Ваших карт</p>');$("#itemslistcont").html('');for(i=0;i<all;i++){var umid=resp.item[i].umid;var name=resp.item[i].name;$("#itemslistcont").append('<li onmousedown="wait();" onclick="loadusermap(\''+umid+'\');location.hash=\'#umid='+umid+'\'";>'+name+'</li>');}
$("#itemslist").show();}catch(e){if(debug==1)alert(msg+"\n"+e);}}});wait(1);}
function placepinmarker(){map.addCursor(YMaps.Cursor.CROSSHAIR);var drawMarkerListener=YMaps.Events.observe(map,map.Events.Click,function(map,mEvent){var pt=mEvent.getGeoPoint();pin_marker.setGeoPoint(pt);pin_marker.setHintContent('точка внимания');pin_marker.setBalloonContent('<b>точка внимания</b><a href="javascript:;" onclick="editpincontent();" class="editlink">&nbsp;</a><br><DIV  id="ppintext" style="width:250px;height:20px;">&nbsp;<br>&nbsp;</DIV>');map.addOverlay(pin_marker);drawMarkerListener.disable();drawMarkerListener.cleanup();map.removeCursor(YMaps.Cursor.CROSSHAIR);var lat=pt.getLat();var lng=pt.getLng();pin_marker.openBalloon();var text=$('#ppintext').html();var hint=pin_marker.getHintContent();location.hash='mark='+lng+';'+lat+';'+map.getZoom()+';'+encodeURIComponent(hint)+';'+encodeURIComponent(text)+';'+typemap;},true);YMaps.Events.observe(pin_marker,pin_marker.Events.DragEnd,function(pmark){var lat=pmark.getGeoPoint().getLat();var lng=pmark.getGeoPoint().getLng();pin_marker.openBalloon();var text=$('#ppintext').html();var hint=pin_marker.getHintContent();location.hash='mark='+lng+';'+lat+';'+map.getZoom()+';'+encodeURIComponent(hint)+';'+encodeURIComponent(text)+';'+typemap;},true);YMaps.Events.observe(pin_marker,pin_marker.Events.Drag,function(pmark){var lat=pmark.getGeoPoint().getLat();var lng=pmark.getGeoPoint().getLng();location.hash='mark='+lng+';'+lat+';'+map.getZoom();},true);YMaps.Events.observe(map,map.Events.SmoothZoomEnd,function(){var lat=pin_marker.getGeoPoint().getLat();var lng=pin_marker.getGeoPoint().getLng();pin_marker.openBalloon();var text=$('#ppintext').html();var hint=pin_marker.getHintContent();location.hash='mark='+lng+';'+lat+';'+map.getZoom()+';'+encodeURIComponent(hint)+';'+encodeURIComponent(text)+';'+typemap;},true);YMaps.Events.observe(pin_marker,pin_marker.Events.BalloonClose,function(metka){if($('#pinname').val())editpincontentdo();});}
function placepinmarker2(coords){var splitcoord=coords.split(";");var lng=splitcoord[0];var lat=splitcoord[1];var zoom=splitcoord[2];var hint=splitcoord[3]?decodeURIComponent(splitcoord[3]):'точка внимания';var text=splitcoord[4]?'<b>'+decodeURIComponent(splitcoord[3])+'</b><br>'+decodeURIComponent(splitcoord[4]):'<b>точка внимания</b><br>';var mtype=splitcoord[5];var pt=new YMaps.GeoPoint(lng,lat);pin_marker.setGeoPoint(pt);pin_marker.setHintContent(hint);pin_marker.setBalloonContent(text);map.addOverlay(pin_marker);map.setCenter(pt,zoom);pin_marker.openBalloon();toolb3.removeAll();if(mtype==0)mtype="yatmap";changeMapType(mtype);}
function editpincontent(){var ball=$('#ppintext').html();var hint=pin_marker.getHintContent();var content='<b><input type="text" value="'+hint+'" id="pinname"></b><a href="javascript:;" onclick="editpincontentdo();" class="editlinkdo">&nbsp;</a><br>';content=content+'<textarea id="pintext" name="pintext" rows=14 class="tinymce" style="width:324px;height:200px;margin-top:5px;">&nbsp;'+ball+'</textarea>';pin_marker.setBalloonContent(content);tinyMCE.init({plugins:'advimage,emotions,insertdatetime,media,-youtube',mode:"textareas",theme:"advanced",theme_advanced_buttons1:"bold,italic,underline,separator,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,bullist,numlist,undo,redo,link,unlink,emotions, media, code",theme_advanced_buttons2:"image,cleanup,|,insertdate,inserttime,preview,|,forecolor,backcolor,|,fontselect,fontsizeselect,outdent,indent",theme_advanced_buttons3:"",theme_advanced_toolbar_location:"top",theme_advanced_toolbar_align:"left",theme_advanced_resizing:true,});}
function editpincontentdo(){pin_marker.setHintContent($('#pinname').val());var text=tinyMCE.getInstanceById('pintext').getContent()
var content='<b>'+$('#pinname').val()+'</b><a href="javascript:;" onclick="editpincontent();" class="editlink">&nbsp;</a><br><SPAN id="ppintext" style="width:250px;height:4px;">'+text+'&nbsp;</SPAN><P style="width:320px;height:4px;">&nbsp;</P>';tinyMCE.get('pintext').remove();$('#ppintext').remove();pin_marker.setBalloonContent(content);var lat=pin_marker.getGeoPoint().getLat();var lng=pin_marker.getGeoPoint().getLng();var hint=pin_marker.getHintContent();location.hash='mark='+lng+';'+lat+';'+map.getZoom()+';'+encodeURIComponent(hint)+';'+encodeURIComponent(text);}
function setMT(metaName,name,value){var t='meta['+metaName+'='+name+']';var mt=$(t);if(mt.length===0){t='<meta '+metaName+'="'+name+'" />';mt=$(t).appendTo('head');}
mt.attr('content',value);};$(function(){});var addstops=new Array();var none=new YMaps.Style();none.iconStyle=new YMaps.IconStyle();none.iconStyle.href="img/flag_red.png";none.iconStyle.size=new YMaps.Point(1,1);none.iconStyle.offset=new YMaps.Point(1,1);none.iconStyle.shadow=new YMaps.IconShadowStyle();none.iconStyle.shadow.href="img/flag_shadow.png";none.iconStyle.shadow.size=new YMaps.Point(1,1);none.iconStyle.shadow.offset=new YMaps.Point(1,1);YMaps.Styles.add("custom#none",none);var redflag=new YMaps.Style();redflag.iconStyle=new YMaps.IconStyle();redflag.iconStyle.href="img/flag_red.png";redflag.iconStyle.size=new YMaps.Point(24,32);redflag.iconStyle.offset=new YMaps.Point(-1,-31);redflag.iconStyle.shadow=new YMaps.IconShadowStyle();redflag.iconStyle.shadow.href="img/flag_shadow.png";redflag.iconStyle.shadow.size=new YMaps.Point(44,32);redflag.iconStyle.shadow.offset=new YMaps.Point(-4,-31);YMaps.Styles.add("custom#redflag",redflag);var pinmarker=new YMaps.Style();pinmarker.iconStyle=new YMaps.IconStyle();pinmarker.iconStyle.href="img/pinmarker.png";pinmarker.iconStyle.size=new YMaps.Point(24,32);pinmarker.iconStyle.offset=new YMaps.Point(-4,-31);pinmarker.iconStyle.shadow=new YMaps.IconShadowStyle();pinmarker.iconStyle.shadow.href="img/pinmarkershadow.png";pinmarker.iconStyle.shadow.size=new YMaps.Point(44,32);pinmarker.iconStyle.shadow.offset=new YMaps.Point(-2,-30);YMaps.Styles.add("custom#pinmarker",pinmarker);var busstop=new YMaps.Style();busstop.iconStyle=new YMaps.IconStyle();busstop.iconStyle.href="img/busstop.png";busstop.iconStyle.size=new YMaps.Point(25,25);busstop.iconStyle.offset=new YMaps.Point(-12,-12);YMaps.Styles.add("custom#busstop",busstop);var sauna=new YMaps.Style();sauna.iconStyle=new YMaps.IconStyle();sauna.iconStyle.href="img/saunamarker.png";sauna.iconStyle.size=new YMaps.Point(27,26);sauna.iconStyle.offset=new YMaps.Point(-9,-25);YMaps.Styles.add("custom#sauna",sauna);var hotel=new YMaps.Style();hotel.iconStyle=new YMaps.IconStyle();hotel.iconStyle.href="img/hotelmarker.png";hotel.iconStyle.size=new YMaps.Point(27,26);hotel.iconStyle.offset=new YMaps.Point(-9,-25);YMaps.Styles.add("custom#hotel",hotel);var buvet=new YMaps.Style();buvet.iconStyle=new YMaps.IconStyle();buvet.iconStyle.href="img/buvet.png";buvet.iconStyle.size=new YMaps.Point(27,26);buvet.iconStyle.offset=new YMaps.Point(-9,-25);YMaps.Styles.add("custom#buvet",buvet);var monument=new YMaps.Style();monument.iconStyle=new YMaps.IconStyle();monument.iconStyle.href="/img/monument.png";monument.iconStyle.size=new YMaps.Point(27,26);monument.iconStyle.offset=new YMaps.Point(-9,-25);YMaps.Styles.add("custom#monument",monument);var bikeparking=new YMaps.Style();bikeparking.iconStyle=new YMaps.IconStyle();bikeparking.iconStyle.href="/img/bikeparking.png";bikeparking.iconStyle.size=new YMaps.Point(27,26);bikeparking.iconStyle.offset=new YMaps.Point(-9,-25);YMaps.Styles.add("custom#bikeparking",bikeparking);var osmp=new YMaps.Style();osmp.iconStyle=new YMaps.IconStyle();osmp.iconStyle.href="/img/osmp_marker.png";osmp.iconStyle.size=new YMaps.Point(26,26);osmp.iconStyle.offset=new YMaps.Point(-9,-25);YMaps.Styles.add("custom#osmp",osmp);var pano=new YMaps.Style();pano.iconStyle=new YMaps.IconStyle();pano.iconStyle.href="/img/panorama3.png";pano.iconStyle.size=new YMaps.Point(40,25);pano.iconStyle.offset=new YMaps.Point(-11,-24);YMaps.Styles.add("custom#pano",pano);$(document).ready(function(){var data="server.php";$("#address").autocomplete(data,{extraParams:{type:'suggestaddress'}});$("#address_m").autocomplete(data,{extraParams:{type:'suggestaddress'}});$("#searchpopaddress").autocomplete(data,{extraParams:{type:'suggestaddress'}});});function markertool(){var w=$(window).width();var h=$(window).height();var off=$(document).scrollTop();var top=off+h/2-200;var left=w/2-250;$("#markertoolwin").css({"top":top,"left":left});$("#markertoolwin").slideDown('fast');$("#markertoolwin").draggable({iframeFix:true,opacity:0.35,handle:'#markertoolwinheader'});}
function drawStartMarker(){var name=$('#namem').val();if(name.length<2){alert('Слишком короткое название маркера');return;}
$('#markertoolwin').slideUp();var maptype=$('#hiddenmaptypem').val();var iconstyle=$('#hiddenicon').val();var techprim0=tinyMCE.get('markerinfo0').getContent();var from=$("#ispfrom").val();if(!from)var from=null;map.addCursor(YMaps.Cursor.CROSSHAIR);var placelistener=YMaps.Events.observe(map,map.Events.MouseMove,function(map,mEvent){var pt=mEvent.getLocalPixels();var geopt=mEvent.getGeoPoint();var x=pt.getX();var y=pt.getY();var lng=geopt.getLng();var lat=geopt.getLat();txt=lng+','+lat;$("#context2").html(txt);$("#context2").css({"top":y+5,"left":x+5});$("#context2").slideDown(200);});var drawMarkerListener=YMaps.Events.observe(map,map.Events.Click,function(map,mEvent){var pt=mEvent.getGeoPoint();umarker[uimark]=new YMaps.Placemark(pt,{hasHint:true,hasBalloon:true,hideIcon:false,draggable:false,style:iconstyle});var data=$.toJSON({"from":from,"maptype":maptype,"techprim0":techprim0});umarker[uimark].metaDataProperty=data;umarker[uimark].setHintContent(name);var str=name.substring(0,30);str=str.replace(/\"/gi,"");var add0="<li id=no"+uimark+" class=ui-state-default>"+str+"</li>";if(maptype=="bus"){var addto="&nbsp;<a href=\"#\" onclick=\"$('#routetoolcont').append('"+add0+"');\">[Добавить в маршрут]</a>";}else{var addto="";};prim=techprim0+"<hr>[ <a href=\'#\' onclick=\'map.removeOverlay(umarker["+uimark+"]);umarker["+uimark+"]=null;\'>Удалить</a> | <a href='#' id='geo' onclick=\'editmarkergeo("+uimark+");\' title='переместить маркер'>Переместить</a> | <a title='ввести координаты маркера' href='#' id='geocoords' onclick=\'editmarkergeocoords("+uimark+");\'>point</a> | <a title='изменить описание маркера' href='#'  id='desc'  onclick='editmarker("+uimark+");'>Редактировать описание</a> ]"+addto;umarker[uimark].setBalloonContent('<b>'+name+'</b>'+prim);map.addOverlay(umarker[uimark]);drawMarkerListener.disable();drawMarkerListener.cleanup();placelistener.disable();placelistener.cleanup();$("#context2").hide();map.removeCursor(YMaps.Cursor.CROSSHAIR);$('#usermap').css("top",111);maptypesignal();if(maptype=="bus")$("#routetoolcont").append("<li  id='no"+uimark+"' class='ui-state-default'>"+name+"</li>");uimark++;},true);}
function maptypesignal(){var mtcurr=$('#glmaptype').val();if(maptype!="bus"&&mtcurr)$('#save').show();if(!mtcurr){$("#hintsadd").show();$("#hintsadd").css('z-index',9999);$("#hintsaddcontent").html('Вы не выбрали карту для добавления объектов.<br>'+'Выберите какую-то карту, либо создайте свою, нажав кнопку <img src="/img/map_add.png">');$("#save").hide();}}
function areatool(){var w=$(window).width();var h=$(window).height();var off=$(document).scrollTop();var top=off+h/2-200;var left=w/2-200;$("#areatoolwin").css({"top":top,"left":left});$("#areatoolwin").slideDown('fast');$("#areatoolwin").draggable({iframeFix:true,opacity:0.35,handle:'#areatoolwinheader'});var fillcolor=$("#fill").val();var outcolor=$("#outline").val();}
function drawStartArea(){var name=$('#namea').val();if(name.length<2){alert('Слишком короткое название');return;}
$('#areatoolwin').slideUp();var opa=$("#opa").val();var fillcolor=$("#fill").val();var outcolor=$("#outline").val();var techprim0=tinyMCE.get('areainfo0').getContent();var from=$("#ispfrom").val();if(!from)var from=null;map.addCursor(YMaps.Cursor.CROSSHAIR);drawAreaListener=YMaps.Events.observe(map,map.Events.Click,function(map,mEvent){var pt=mEvent.getGeoPoint();upolygon[uipoly]=new YMaps.Polygon([pt],{hasHint:1,hasBalloon:1});upolygon[uipoly].setEditingOptions({drawing:true,drawingCursor:YMaps.Cursor.CROSSHAIR,stopDrawingByDblClick:true});var style=new YMaps.Style();style.polygonStyle=new YMaps.PolygonStyle();if(fillcolor!='transparent'){style.polygonStyle.fill=true;}else{style.polygonStyle.fill=false;}
if(outcolor!='transparent'){style.polygonStyle.outline=true;}else{style.polygonStyle.outline=false;}
style.polygonStyle.strokeWidth=1;style.polygonStyle.strokeColor=outcolor.substring(1)+"f0";style.polygonStyle.fillColor=fillcolor.substring(1)+opa;upolygon[uipoly].setStyle(style);upolygon[uipoly].id="";var data=$.toJSON({"opacity":opa,"outcolor":outcolor.substring(1),"color":fillcolor.substring(1),"from":from,"techprim0":techprim0});upolygon[uipoly].metaDataProperty=data;upolygon[uipoly].setHintContent(name);prim=techprim0+"<hr>[ <a href=\'#\' onclick=\'map.removeOverlay(upolygon["+uipoly+"]);upolygon["+uipoly+"]=null;\'>Удалить</a> | <a href='#'   id='geo2' onclick=\'upolygon["+uipoly+"].startEditing();\'>Редактирование контура</a> | <a href='#'  id='desc2' onclick=\'editpoly("+uipoly+");\'>Редактировать описание</a> ]";upolygon[uipoly].setBalloonContent('<b>'+name+'</b>'+prim);map.addOverlay(upolygon[uipoly]);drawAreaListener.disable();upolygon[uipoly].startEditing();YMaps.Events.observe(upolygon[uipoly],upolygon[uipoly].Events.StopDrawing,function(poly){uipoly++;drawAreaListener.cleanup();map.removeCursor(YMaps.Cursor.CROSSHAIR);},true);maptypesignal();},true);}
function linetool(){var w=$(window).width();var h=$(window).height();var off=$(document).scrollTop();var top=off+h/2-200;var left=w/2-200;$("#linetoolwin").css({"top":top,"left":left});$("#linetoolwin").slideDown('fast');$("#linetoolwin").draggable({iframeFix:true,opacity:0.35,handle:'#linetoolwinheader'});}
function drawStartLine(){var name=$('#namel').val();if(name.length<2){alert('Слишком короткое название линии');return;}
$('#linetoolwin').slideUp();var opa=$("#opal").val();var widl=$("#widl").html();var lcolor=$("#cline").val();var techprim0=tinyMCE.get('lineinfo0').getContent();var from=$("#ispfrom").val();if(!from)var from=null;map.addCursor(YMaps.Cursor.CROSSHAIR);drawLineListener=YMaps.Events.observe(map,map.Events.Click,function(map,mEvent){var pt=mEvent.getGeoPoint();uline[uiline]=new YMaps.Polyline([pt],{hasHint:1,hasBalloon:1});uline[uiline].setEditingOptions({drawing:true,drawingCursor:YMaps.Cursor.CROSSHAIR,stopDrawingByDblClick:true});var style=new YMaps.Style();style.lineStyle=new YMaps.LineStyle();style.lineStyle.strokeWidth=widl;if(lcolor=='transparent')opa='00';style.lineStyle.strokeColor=lcolor.substring(1)+opa;uline[uiline].setStyle(style);var data=$.toJSON({"opacity":opa,"width":widl,"color":lcolor.substring(1),"from":from,"techprim0":techprim0});uline[uiline].metaDataProperty=data;uline[uiline].setHintContent(name);prim=techprim0+"<hr>[ <a href=\'#\' onclick=\'map.removeOverlay(uline["+uiline+"]);uline["+uiline+"]=null;\'>Удалить</a> | <a href='#' id='geo3' onclick=\'uline["+uiline+"].startEditing();\'>Редактирование контура</a> | <a href='#'  id='desc3' onclick=\'editline("+uiline+");\'>Редактировать описание</a> ]";uline[uiline].setBalloonContent('<b>'+name+'</b>'+prim);map.addOverlay(uline[uiline]);drawLineListener.disable();uline[uiline].startEditing();YMaps.Events.observe(uline[uiline],uline[uiline].Events.StopDrawing,function(line){line.stopEditing();uiline++;drawLineListener.cleanup();map.removeCursor(YMaps.Cursor.CROSSHAIR);},true);maptypesignal();},true);}
function clearmap(){var drawAreaListener,markerAreaListener,geoResult;var polygon=new Array();var line=new Array();var marker=new Array();ipoly=0;iline=0;imark=0;var mapmodtime=0;var pnum=0,lnum=0,mnum=0;map.removeAllOverlays();markerManager.removeAll();map.addOverlay(markerManager);}
function editpoly(i){$('#name').val(upolygon[i].getHintContent());var data=upolygon[i].metaDataProperty;data=$.evalJSON(data);var opafill=(!data.opacity)?upolygon[i].getOptions().style.polygonStyle.fillColor.substring(6,8):data.opacity;var color=(!data.color)?upolygon[i].getOptions().style.polygonStyle.fillColor.substring(0,6):data.color;var outcolor=(!data.outcolor)?upolygon[i].getOptions().style.polygonStyle.strokeColor.substring(0,6):data.outcolor;$("#namea").val(upolygon[i].getHintContent());$("#opa").val(opafill);$("#slidera").slider("option","value",parseInt(opafill,16));$("#fill").val("#"+color);$("#fill").css("background-color","#"+color)
$("#outline").val("#"+outcolor);$("#outline").css("background-color","#"+outcolor);var techprim0=data.techprim0;$('#areainfo0').val(techprim0);$('#areabuttons').html('<input type="submit" name="submit" value="Okay" onclick="savechangesarea('+i+');">');areatool();}
function editmarker(i){$('#namem').val(umarker[i].getHintContent());var data=umarker[i].metaDataProperty;var style=umarker[i].getStyle();if(style.parentStyle)style=style.parentStyle;$('#hiddenicon').val(style);cont=style.slice(style.indexOf('#')+1);try{$('#iconcontent').html($('#'+cont).html());}catch(e){}
data=$.evalJSON(data);var techprim0=data.techprim0;$('#markerinfo0').val(techprim0);$('#markerbuttons').html('<input type="submit" name="submit" value="Okay" onclick="savechangesmarker('+i+');">');markertool();}
function editline(i){$('#namel').val(uline[i].getHintContent())
var data=uline[i].metaDataProperty;data=$.evalJSON(data);var techprim0=data.techprim0;var opal=(!data.opacity)?uline[i].getOptions().style.lineStyle.strokeColor.substring(6,8):data.opacity;var width=(!data.width)?uline[i].getOptions().style.lineStyle.strokeWidth:data.width;var color=(!data.color)?uline[i].getOptions().style.lineStyle.strokeColor.substring(0,6):data.color;$("#opal").val(opal);$("#sliderl").slider("option","value",parseInt(opal,16));$("#widl").html(width);$("#sliderlw").slider("option","value",width);$("#cline").val("#"+color);$("#cline").css("background-color","#"+color);$('#lineinfo0').val(techprim0);$('#linebuttons').html('<input type="submit" name="submit" value="Okay" onclick="savechangesline('+i+');">');linetool();}
function savechangesarea(i){var message="Сохранить изменения в этом объекте?";if(!confirm(message)){$('#areabuttons').html('<input type="submit" name="submit" value="Okay" onclick="drawStartArea();">&nbsp;<input type="submit" name="reset" value="Reset" onclick="$(\'#namea\').val(\'\');$(\'#areainfo0\').val(\'\');">');return;}
var name=$('#namea').val();if(name.length<2){alert('Слишком короткое название');return;}
var opa=$("#opa").val();var fillcolor=$("#fill").val();var outcolor=$("#outline").val();var techprim0=tinyMCE.get('areainfo0').getContent();if(!from)var from=null;var style=new YMaps.Style();style.polygonStyle=new YMaps.PolygonStyle();if(fillcolor!='transparent'){style.polygonStyle.fill=true;}else{style.polygonStyle.fill=false;}
if(outcolor!='transparent'){style.polygonStyle.outline=true;}else{style.polygonStyle.outline=false;}
style.polygonStyle.strokeWidth=1;style.polygonStyle.strokeColor=outcolor.substring(1)+"f0";style.polygonStyle.fillColor=fillcolor.substring(1)+opa;upolygon[i].setStyle(style);var data=$.toJSON({"opacity":opa,"outcolor":outcolor.substring(1),"color":fillcolor.substring(1),"from":from,"techprim0":techprim0});upolygon[i].metaDataProperty=data;upolygon[i].setHintContent(name);var prim=techprim0+"<hr>[ <a href=\'#\' onclick=\'map.removeOverlay(upolygon["+i+"]);upolygon["+i+"]=null;\'>Удалить</a> | <a href='#'   id='geo2' onclick=\'upolygon["+i+"].startEditing();\'>Редактирование контура</a> | <a href='#'  id='desc2' onclick=\'editpoly("+i+");\'>Редактировать описание</a> ]";upolygon[i].setBalloonContent('<b>'+name+'</b>'+prim);$('#areabuttons').html('<input type="submit" name="submit" value="Okay" onclick="drawStartArea();">&nbsp;<input type="submit" name="reset" value="Reset" onclick="$(\'#address\').val(\'\');$(\'#areainfo0\').val(\'\');">');$('#areatoolwin').slideUp();}
function savechangesmarker(i){var message="Сохранить изменения в этом объекте?";if(!confirm(message)){$('#markerbuttons').html('<input type="submit" name="submit" value="Okay" onclick="drawStartMarker();">&nbsp;<input type="submit" name="reset" value="Reset" onclick="$(\'#address_m\').val(\'\');$(\'#markerinfo0\').val(\'\');">');return;}
var name=$('#namem').val();if(name.length<2){alert('Слишком корткое название');return;}
var techprim0=tinyMCE.get('markerinfo0').getContent();var maptype=$('#hiddenmaptypem').val();var iconstyle=$('#hiddenicon').val();var data=$.toJSON({"maptype":maptype,"techprim0":techprim0});umarker[i].metaDataProperty=data;umarker[i].setHintContent(name);var prim=techprim0+"<hr>[ <a href=\'#\' onclick=\'map.removeOverlay(umarker["+i+"]);umarker["+i+"]=null;\'>Удалить</a> | <a href='#' id='geo' onclick=\'editmarkergeo("+i+");\' title='переместить маркер'>Переместить</a> | <a title='ввести координаты маркера' href='#' id='geocoords' onclick=\'editmarkergeocoords("+i+");\'>point</a> | <a title='изменить описание маркера' href='#'  id='desc'  onclick='editmarker("+i+");'>Редактировать описание</a> ]";umarker[i].setBalloonContent('<b>'+name+'</b>'+prim);$('#markerbuttons').html('<input type="submit" name="submit" value="Okay" onclick="drawStartMarker();">&nbsp;<input type="submit" name="reset" value="Reset" onclick="$(\'#address_m\').val(\'\');$(\'#markerinfo0\').val(\'\');">');$('#markertoolwin').slideUp();try{umarker[i].setStyle(iconstyle);}catch(e){return;}}
function savechangesline(i){var message="Сохранить изменения в этом объекте?";if(!confirm(message)){$('#linebuttons').html('<input type="submit" name="submit" value="Okay" onclick="drawStartLine();">&nbsp;<input type="submit" name="reset" value="Reset" onclick="$(\'#namel\').val(\'\');$(\'#lineinfo0\').val(\'\');">');return;}
var name=$('#namel').val();if(name.length<2){alert('Слишком короткое название');return;}
var opa=$("#opal").val();var widl=$("#widl").html();var lcolor=$("#cline").val();var techprim0=tinyMCE.get('lineinfo0').getContent();if(!from)var from=null;var style=new YMaps.Style();style.lineStyle=new YMaps.LineStyle();style.lineStyle.strokeWidth=widl;if(lcolor=='transparent')opa='00';style.lineStyle.strokeColor=lcolor.substring(1)+opa;uline[i].setStyle(style);var data=$.toJSON({"opacity":opa,"width":widl,"color":lcolor.substring(1),"from":from,"techprim0":techprim0});uline[i].metaDataProperty=data;uline[i].setHintContent(name);var prim=techprim0+"<hr>[ <a href=\'#\' onclick=\'map.removeOverlay(uline["+i+"]);uline["+i+"]=null;\'>Удалить</a> | <a href='#' id='geo3' onclick=\'uline["+i+"].startEditing();\'>Редактирование контура</a> | <a href='#'  id='desc3' onclick=\'editline("+i+");\'>Редактировать описание</a> ]";uline[i].setBalloonContent('<b>'+name+'</b>'+prim);$('#linebuttons').html('<input type="submit" name="submit" value="Okay" onclick="drawStartLine();">&nbsp;<input type="submit" name="reset" value="Reset" onclick="$(\'#namel\').val(\'\');$(\'#lineinfo0\').val(\'\');">');$('#linetoolwin').slideUp();}
function savemap(type){var allpoly=upolygon.length;var allline=uline.length;var allmark=umarker.length;$("#savelog").slideDown('fast');$("#savelog").draggable({iframeFix:true,opacity:0.35,handle:'#savelogheader'});$("#savelogcontent").html("");for(i=0;i<allpoly;i++){if(upolygon[i]!=null){var pts=upolygon[i].getPoints();var opt=$.toJSON(upolygon[i].getOptions());var hint=upolygon[i].getHintContent();var baloo=upolygon[i].getBalloonContent();var meta=upolygon[i].metaDataProperty;var metadata=$.evalJSON(meta);var from=metadata.from;if(!from)from="";var points=encodePoints(pts);if(hint.length<2){$("#savelogcontent").html($("#savelogcontent").html()+"<br> >Слишком короткий адрес!");continue;}
var data="&points="+encodeURIComponent(points)+"&options="+encodeURIComponent(opt)+"&hint="+encodeURIComponent(hint)+"&itemtype=polygon&maptype="+type+"&metainfo="+
encodeURIComponent(meta)+"&from="+from;var response=saveitem(data);$("#savelogcontent").html($("#savelogcontent").html()+"<br>"+response[0]);$("#savelogcontent").scrollTop($("#savelogcontent")[0].scrollHeight);}}
for(i=0;i<allline;i++){if(uline[i]!=null){var pts=uline[i].getPoints();var opt=$.toJSON(uline[i].getOptions());var hint=uline[i].getHintContent();var baloo=uline[i].getBalloonContent();var meta=uline[i].metaDataProperty;var metadata=$.evalJSON(meta);var from=metadata.from;if(!from)from="";var points=encodePoints(pts);if(hint.length<2){$("#savelogcontent").html($("#savelogcontent").html()+"<br> >Слишком короткий адрес!");continue;}
var data="&points="+encodeURIComponent(points)+"&options="+encodeURIComponent(opt)+"&hint="+encodeURIComponent(hint)+"&itemtype=line&maptype="+type+"&metainfo="+
encodeURIComponent(meta)+"&from="+from;var response=saveitem(data);$("#savelogcontent").html($("#savelogcontent").html()+"<br>"+response[0]);$("#savelogcontent").scrollTop($("#savelogcontent")[0].scrollHeight);}}
for(i=0;i<allmark;i++){if(umarker[i]!=null){var pt=umarker[i].getGeoPoint();var opt=$.toJSON(umarker[i].getOptions());var hint=umarker[i].getHintContent();if(hint.length<2){$("#savelogcontent").html($("#savelogcontent").html()+"<br> >Слишком короткий адрес\название!");continue;}
var baloo=umarker[i].getBalloonContent();var meta=umarker[i].metaDataProperty;var metadata=$.evalJSON(meta);var from=metadata.from;if(!from)from="";var data="&points="+encodeURIComponent(pt)+"&options="+encodeURIComponent(opt)+"&hint="+encodeURIComponent(hint)+"&itemtype=marker&maptype="+type+"&metainfo="+
encodeURIComponent(meta)+"&from="+from;var response=saveitem(data);$("#savelogcontent").html($("#savelogcontent").html()+"<br>"+response[0]);$("#savelogcontent").scrollTop($("#savelogcontent")[0].scrollHeight);}}
$("#savelogcontent").html($("#savelogcontent").html()+"<br> =======Сохранение завершено======");if(type!="usermap")$("#savelogcontent").html($("#savelogcontent").html()+"<br><br>Ваши объекты сохранены. После обработки модератором они будут добавлены на общую карту. Спасибо!");$("#savelogcontent").scrollTop($("#savelogcontent")[0].scrollHeight);wait2(1);wait();upolygon=new Array();uline=new Array();umarker=new Array();uipoly=0;uiline=0;uimark=0;polygon=new Array();line=new Array();marker=new Array();ipoly=0;iline=0;imark=0;var pnum=0,lnum=0,mnum=0;$('#save').hide();map.removeAllOverlays();markerManager.removeAll();map.addOverlay(markerManager);wait(1);}
function saveitem(item){var out=new Array();$.ajax({type:"POST",async:false,url:"server.php",data:"type=saveitem"+item,success:function(msg){try{var resp=jQuery.parseJSON(msg);if(resp.status=='ok'){out[0]='>map object: '+resp.objtype+' saved';out[1]=resp.id;}else{out[0]='> '+msg;}}
catch(e)
{out[0]=e;}}});return out;}
function editpolygeo(i){if(!verlock(polygon[i]))return;if(!maptime('pops'))return;polygon[i].startEditing();}
function editmarkergeo(i){umarker[i].closeBalloon();umarker[i].setOptions({draggable:1});YMaps.Events.observe(umarker[i],umarker[i].Events.DragEnd,function(mark){mark.setOptions({draggable:0});},true);}
function editmarkergeocoords(i){umarker[i].closeBalloon();var coords=window.prompt('Введите Долготу (Lng) и Широту (Lat) через запятую');var pt=new YMaps.GeoPoint.fromString(coords);umarker[i].setGeoPoint(pt);}
function save(){$('#itemslist').hide();var allpoly=upolygon.length;var allline=uline.length;var allmark=umarker.length;var type=$('#glmaptype').val();if((allpoly<1)&&(allline<1)&&(allmark<1)){return;}
if(type=='usermap'){var auth=getauthdata("check");if(auth=="ok"){wait(1);wait2(1);if(current_umplabel==null||!current_umplabel){userplacename();return;}
saveuserplace();return;}
wait2(1);if(current_umplabel==null||!current_umplabel){userplaceparams();return;}else{var w=$(window).width();var h=$(window).height();var off=$(document).scrollTop();var top=off+h/2-100;var left=w/2-250;$("#uplacepdel").css({"top":top,"left":left});$("#uplacepdel").slideDown('fast');$("#uplacepdel").draggable({iframeFix:true,opacity:0.35,handle:'#umhdel'});$("#delumpbtn").html('<input type="submit"  value="Сохранить" style="width:100px; height:22px;padding:2px;margin:3px 0px;" onclick="saveuserplace(2);">');return;}}
savemap(type);}
function hints(obj,txt){jQuery(document).ready(function(){$("#"+obj).mouseover(function(e){$("#hints").css("top",e.pageY);$("#hints").css("left",e.pageX);$("#hintscontent").html(txt);$("#hints").show();});$("#"+obj).mouseout(function(){$("#hints").hide();});});}
function findaddr(addr,toolwin){var str=$(addr).val();var streettype=$(toolwin+" input:radio:checked").val();str='Украина, Черкассы, '+streettype+str
var geocoder=new YMaps.Geocoder(str);YMaps.Events.observe(geocoder,geocoder.Events.Load,function(geocoder){geoResult=this.get(0);map.addOverlay(geoResult);geoResult.openBalloon();map.setCenter(geoResult.getGeoPoint(),18);});}
function closewin(win){if(win=="#areatoolwin"){$('#areabuttons').html('<input type="submit" name="submit" value="Okay" onclick="drawStartArea();">&nbsp;<input type="submit" name="reset" value="Reset" onclick="$(\'#address\').val(\'\');$(\'#areainfo0\').val(\'\');">');}
if(win=="#markertoolwin"){$('#markerbuttons').html('<input type="submit" name="submit" value="Okay" onclick="drawStartMarker();">&nbsp;<input type="submit" name="reset" value="Reset" onclick="$(\'#address_m\').val(\'\');$(\'#markerinfo0\').val(\'\');">');}
if(win=="#linetoolwin"){$('#linebuttons').html('<input type="submit" name="submit" value="Okay" onclick="drawStartLine();">&nbsp;<input type="submit" name="reset" value="Reset" onclick="$(\'#namel\').val(\'\');$(\'#lineinfo0\').val(\'\');">');}
$(win).slideUp('fast');}
function selecticon(style,obj){$('#hiddenicon').val(style);$('#iconcontent').html($(obj).html());$('#pickicon').slideUp('fast');$('#markernotes_ifr').show();}
function encodePoints(points){var array=[],prev=new YMaps.Point(0,0),coef=1000000;for(var i=0,geoVector,currentPoint;i<points.length;i++){currentPoint=points[i].copy();geoVector=currentPoint.diff(prev).neg();array=array.concat(Base64.encode4bytes(geoVector.getX()*coef),Base64.encode4bytes(geoVector.getY()*coef));prev=currentPoint;}
return Base64.encode(array);}
var Base64=new function(){var _keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=";this.encode4bytes=function(x){var chr=[];for(var i=0;i<4;i++){chr[i]=x&0x000000ff;x=x>>8;}
return chr;}
this.encode=function(input){var output="",chr1,chr2,chr3,enc1,enc2,enc3,enc4,i=0,inputIsString=typeof input=="string";while(i<input.length){chr1=input[i++];chr2=input[i++];chr3=input[i++];enc1=chr1>>2
enc2=((chr1&3)<<4)|(chr2>>4);enc3=((chr2&15)<<2)|(chr3>>6)
enc4=chr3&63;if(isNaN(chr2)){enc3=enc4=64;}else if(isNaN(chr3)){enc4=64;}
output+=_keyStr.charAt(enc1)+_keyStr.charAt(enc2)+
_keyStr.charAt(enc3)+_keyStr.charAt(enc4);}
return output;}}
function addroute(){$("#hintsadd").show();$("#hintsadd").animate({"opacity":0.8},200);$("#hintsaddcontent").html('Нажмите кнопку "Маршрут "туда" и нанесите маршрут в одну сторону, до места разворота или отстоя транспорта.<br>Наносите по правой стороне дороге по ходу движения.');$("#routetoolcont").dblclick(function(event){$("#"+event.target.id).animate({"opacity":"toggle"},500,function(){$("#"+event.target.id).remove();});});$('#routetools').show();$('#itemslist').hide();$("#itemslistbtn").html("");$("#itemslistcont").html("");$("#routetoolcont").html("");upolygon=new Array();uline=new Array();umarker=new Array();uipoly=0;uiline=0;uimark=0;polygon=new Array();line=new Array();marker=new Array();ipoly=0;iline=0;imark=0;var pnum=0,lnum=0,mnum=0;$('#save').hide();markerManager.removeAll();map.removeAllOverlays();map.addOverlay(markerManager);map.setCenter(new YMaps.GeoPoint(32.06373,49.43646),15);$.ajax({type:"POST",async:false,url:"server.php",data:"type=loadallstops",success:function(msg){try{var resp=jQuery.parseJSON(msg);if(resp.status=='ok'){var all=resp.item.length;$("#rl").hide();for(i=0;i<all;i++){drawallstops(resp.item[i],mnum);mnum++;}}else{if(debug==1)alert('status error:: '+msg);}}
catch(e)
{if(debug==1)alert("parse error:: "+e);}}});wait(1);$("#routetoolcont").sortable({placeholder:'ui-state-highlight'});}
function drawallstops(data,num){var id=data.id;var hint=data.hint;var points=data.points;var itemtype=data.itemtype;var techprim0=data.techprim0;var modtime=data.modtime;points=points.split(",");var pt=new YMaps.GeoPoint(points[0],points[1]);marker[num]=new YMaps.Placemark(pt,{hasHint:true,hasBalloon:true,hideIcon:false,draggable:false,style:"default#busIcon"});var data=$.toJSON({"modtime":modtime,"techprim0":techprim0});marker[num].metaDataProperty=data;marker[num].setHintContent(hint);marker[num].id=id;prim=techprim0;var str=hint.substring(0,30);str=str.replace(/\"/gi,"");var add0="<li id=id"+id+" class=ui-state-default>"+str+"</li>";var add="<hr><a href=\"#\" onclick=\"$('#routetoolcont').append('"+add0+"');\">[Добавить в маршрут]</a>";marker[num].setBalloonContent('<b>'+hint+'</b>'+prim+add);markerManager.add(marker[num],15,18);}
function routetool1(){map.addCursor(YMaps.Cursor.CROSSHAIR);drawRLineListener=YMaps.Events.observe(map,map.Events.Click,function(map,mEvent){var pt=mEvent.getGeoPoint();rline=new YMaps.Polyline([pt],{hasHint:1,hasBalloon:1});rline.setEditingOptions({drawing:true,drawingCursor:YMaps.Cursor.CROSSHAIR,stopDrawingByDblClick:true});var style=new YMaps.Style();style.lineStyle=new YMaps.LineStyle();style.lineStyle.strokeWidth=3;style.lineStyle.strokeColor="06004899";rline.setStyle(style);rline.setHintContent(name);prim="маршрут туда"+"<hr>[ <a href='#' onclick=\'rline.startEditing();\'>edit geo</a> ]";rline.setBalloonContent(prim);map.addOverlay(rline);drawRLineListener.disable();rline.startEditing();YMaps.Events.observe(rline,rline.Events.StopDrawing,function(line){line.stopEditing();drawRLineListener.cleanup();map.removeCursor(YMaps.Cursor.CROSSHAIR);},true);$('#curbtn').html('<div onclick="routetool2();" class="buttons">Маршрут "оттуда"</div>');$('.buttons').effect("highlight",{},200);$("#hintsaddcontent").html('Нажмите кнопку "Маршрут "оттуда" и нанесите маршрут в обратную сторону, если маршрут круговой, нанесите короткую линию в месте замыкания круга<br>Наносите по правой стороне дороге по ходу движения.');},true);}
function routetool2(){map.addCursor(YMaps.Cursor.CROSSHAIR);drawRLineListener=YMaps.Events.observe(map,map.Events.Click,function(map,mEvent){var pt=mEvent.getGeoPoint();rline2=new YMaps.Polyline([pt],{hasHint:1,hasBalloon:1});rline2.setEditingOptions({drawing:true,drawingCursor:YMaps.Cursor.CROSSHAIR,stopDrawingByDblClick:true});var style2=new YMaps.Style();style2.lineStyle=new YMaps.LineStyle();style2.lineStyle.strokeWidth=3;style2.lineStyle.strokeColor="7F000099";rline2.setStyle(style2);rline2.setHintContent(name);prim="маршрут туда"+"<hr>[ <a href='#' onclick=\'rline2.startEditing();\'>edit geo</a> ]";rline2.setBalloonContent(prim);map.addOverlay(rline2);drawRLineListener.disable();rline2.startEditing();YMaps.Events.observe(rline2,rline2.Events.StopDrawing,function(line){line.stopEditing();drawRLineListener.cleanup();map.removeCursor(YMaps.Cursor.CROSSHAIR);},true);$("#hintsaddcontent").html('Нажмите кнопку "Остановки транспорта" (нужное количество раз) и нанесите остановки в порядке следования, если в маршруте уже встречаются остановки (помеченые синими флажками), нажмите на флажок остановки и нажмите "добавить в маршрут".<br>Только что нарисованные остановки тоже можно добавлять в маршрут (для обратного пути). <br>Остановки в списке можно сортировать или удалять (для удаления дважды кликните по названию).<br> Остановки будут записываться в том порядке, в каком они расположены в списке.');$('#curbtn').html('<div onclick="markertool();" class="buttons">Остановки транспорта</div>&nbsp;&nbsp;Затем нажмите:<div onclick="routesavecall();" class="buttons">"Сохранить"</div>');$('.buttons').effect("highlight",{},200);},true);}
function routesavecall(){var w=$(window).width();var h=$(window).height();var off=$(document).scrollTop();var top=off+h/2-200;var left=w/2-250;$("#routesavewin").css({"top":top,"left":left});$("#routesavewin").slideDown('fast');$("#routesavewin").draggable({iframeFix:true,opacity:0.35,handle:'#routesavewinwinheader'});}
function routesave(){var routeinfo=$("#routeinfo").val();var routename=$("#routename").val();if(routename.length<2){alert('Слишком короткое название маршрута!');return;}
var allmark=umarker.length;$("#savelog").slideDown('fast');$("#savelog").draggable({iframeFix:true,opacity:0.35,handle:'#savelogheader'});$("#savelogcontent").html("");var addstops=$("#routetoolcont").sortable('toArray');for(r=0;r<addstops.length;r++){if(addstops[r].substring(0,2)=="id"){var number=Number(addstops[r].substring(2));addstops[r]=number;continue;}
var i=addstops[r].substring(2);if(umarker[i]!=null){var pt=umarker[i].getGeoPoint();var opt=$.toJSON(umarker[i].getOptions());var hint=umarker[i].getHintContent();var baloo=umarker[i].getBalloonContent();var meta=umarker[i].metaDataProperty;var metadata=$.evalJSON(meta);var from=metadata.from;if(!from)from="";var data="&points="+encodeURIComponent(pt)+"&options="+encodeURIComponent(opt)+"&hint="+encodeURIComponent(hint)+"&itemtype=marker&maptype=bus&metainfo="+
encodeURIComponent(meta)+"&from="+from+"&routename="+routename;var response=saveitem(data);var eta=addstops[r];for(l=0;l<addstops.length;l++){if(addstops[l]==eta){addstops[l]='id'+response[1];}}
addstops[r]=response[1];$("#savelogcontent").html($("#savelogcontent").html()+"<br>"+response[0]);$("#savelogcontent").scrollTop($("#savelogcontent")[0].scrollHeight);}}
if(rline!=null){var pts=rline.getPoints();var opt=$.toJSON(rline.getOptions());var points=encodePoints(pts);var meta=$.toJSON({"techprim0":routeinfo});var data="&points="+encodeURIComponent(points)+"&options="+encodeURIComponent(opt)+"&hint="+encodeURIComponent(routename)+"&itemtype=line&maptype=bus&metainfo="+
encodeURIComponent(meta)+"&from="+from+"&routename="+routename+"&addstops="+$.toJSON(addstops);var response=saveitem(data);$("#savelogcontent").html($("#savelogcontent").html()+"<br>"+response[0]);$("#savelogcontent").scrollTop($("#savelogcontent")[0].scrollHeight);}
if(rline2!=null){var pts=rline2.getPoints();var opt=$.toJSON(rline2.getOptions());var points=encodePoints(pts);var meta=$.toJSON({"techprim0":routeinfo});var data="&points="+encodeURIComponent(points)+"&options="+encodeURIComponent(opt)+"&hint="+encodeURIComponent(routename)+"&itemtype=line&maptype=bus&metainfo="+
encodeURIComponent(meta)+"&from="+from+"&routename="+routename+"&addstops="+$.toJSON(addstops);var response=saveitem(data);$("#savelogcontent").html($("#savelogcontent").html()+"<br>"+response[0]);$("#savelogcontent").scrollTop($("#savelogcontent")[0].scrollHeight);}
$("#savelogcontent").html($("#savelogcontent").html()+"<br> =======Сохранение завершено======");$("#savelogcontent").html($("#savelogcontent").html()+"<br><br>Ваши объекты сохранены. После обработки модератором они будут добавлены на общую карту. Спасибо!");$("#savelogcontent").scrollTop($("#savelogcontent")[0].scrollHeight);wait2(1);wait();wait(1);$("#routesavewin").slideUp('fast');$('#curbtn').html('<div id="rto" class="buttons" onclick="routetool1();">Маршрут "туда"</div>');$('#routetools').hide();}
var times=0;function addplace(){$("#hintsadd").show();$("#hintsadd").animate({"opacity":0.8},200);if(times==0)$("#hintsaddcontent").html('Нанесите точку выезда. После прокладки маршрута ее можно будет изменить на точку приезда.');wait(1);map.addCursor(YMaps.Cursor.CROSSHAIR);var drawMarkerListener=YMaps.Events.observe(map,map.Events.Click,function(map,mEvent){var pt=mEvent.getGeoPoint();marker[uimark]=new YMaps.Placemark(pt,{hasHint:true,hasBalloon:true,hideIcon:false,draggable:false,style:"custom#redflag"});var lat=pt.getLat();var lng=pt.getLng();if(times==0){var t="№1";}else{var t="№2";}
var prim="Точка "+t+" <hr>[ <a href=\'#\' onclick=\'map.removeOverlay(umarker["+uimark+"]);umarker["+uimark+"]=null;\'>delete</a> | <a href='#' id='geo' onclick=\'editmarkergeo("+uimark+");\'>edit geo</a> ]";var addb='<hr><input type="button" value="Начало маршрута" onclick="addtodirection(\''+lng+','+lat+'\',\'start\');">';addb+='<input type="button" value="Конец маршрута" onclick="addtodirection(\''+lng+','+lat+'\',\'end\');">';marker[uimark].setHintContent("Точка "+t);marker[uimark].setBalloonContent('<b>'+name+'</b>'+prim+addb);map.addOverlay(marker[uimark]);drawMarkerListener.disable();drawMarkerListener.cleanup();map.removeCursor(YMaps.Cursor.CROSSHAIR);uimark++;if(times==0)addtodirection(lng+','+lat,'start');if(times==1)addtodirection(lng+','+lat,'end');times++;if(times<2){$("#hintsaddcontent").html('Нанесите точку приезда. После прокладки маршрута ее можно будет изменить на точку выезда.');addplace();}
if(times>1)$("#hintsadd").hide();},true);}
function addgpx(url,src){wait();var gpx=new YMaps.GPX(url);YMaps.Events.observe(gpx,gpx.Events.Load,function(gpx){var routes=gpx.filter(function(obj){return obj.metaDataProperty.gpxMetaData.gpxTagName=="trkseg"});YMaps.jQuery.each(routes,function(){var distance=0;for(var pts=this.getPoints(),i=1,l=pts.length;i<l;i++){distance+=pts[i].distance(pts[i-1]);}
var dst=YMaps.humanDistance(distance);var startTime=xmlToDate(this.metaDataProperty.gpxMetaData.gpxStartTime),endTime=xmlToDate(this.metaDataProperty.gpxMetaData.gpxEndTime);var dur=YMaps.humanDuration((endTime-startTime)/1000);var distdur="<p>Проехали "+dst+" за "+dur+" </p>";this.metaDataProperty.distdur=distdur;});var filename=delgpx(src);for(i=0;i<routes.length;i++){var rt=routes[i];drawgpxline(rt,filename);}
lbounds=new YMaps.GeoCollectionBounds(uline[0].getPoints());map.setBounds(lbounds);wait(1);maptypesignal();});function drawgpxline(route,filename){var gpxfile=filename;var pts=route.getPoints();var txt=route.metaDataProperty.distdur;var name="Сегмент "+uiline;uline[uiline]=new YMaps.Polyline(pts,{hasHint:1,hasBalloon:1});uline[uiline].setEditingOptions({drawing:false,drawingCursor:YMaps.Cursor.CROSSHAIR,stopDrawingByDblClick:true});var style=new YMaps.Style();style.lineStyle=new YMaps.LineStyle();style.lineStyle.strokeWidth=4;style.lineStyle.strokeColor=clrs[uiline]+"d1";uline[uiline].setStyle(style);var filelink='<br><img style="vertical-align:-3px;width:15px;height:13px;" src="/img/anchor.png" border="0"><a href="http://map.ck.ua/usertracks/'+gpxfile+'">ссылка на gpx-file</a>';txt=txt+filelink;var data=$.toJSON({"opacity":"d1","width":4,"color":clrs[uiline]+"F1","from":"","techprim0":txt});uline[uiline].metaDataProperty=data;uline[uiline].setHintContent(name);var prim=txt+"<hr>[ <a href=\'#\' onclick=\'map.removeOverlay(uline["+uiline+"]);uline["+uiline+"]=null;\'>Удалить</a> | <a href='#'   id='geo3' onclick=\'editpoints("+uiline+");\'>Вырезать точки</a> | <a href='#'   id='geo3' onclick=\'uline["+uiline+"].startEditing();\'>Редактирование линии</a> | <a href='#'  id='desc3' onclick=\'editline("+uiline+");\'>Редактировать описание</a> ]";uline[uiline].setBalloonContent('<b>'+name+'</b>'+prim);map.addOverlay(uline[uiline]);YMaps.Events.observe(uline[uiline],uline[uiline].Events.StopDrawing,function(line){line.stopEditing();},true);uiline++;}
YMaps.Events.observe(gpx,gpx.Events.Fault,function(gpx,error){alert("Ошибка: "+error);});}
function editpoints(i){uline[i].closeBalloon();$("#hintsadd").show();$("#hintsadd").css('z-index',9999);$("#hintsaddcontent").html('Выделите мышкой прямоугольную область, на которой нужно удалить точки.<br>'+'Чтобы вырезать другую часть трека, повторите выбор пункта меню "Вырезать точки"');var liner=new LineSplicer(uline[i]);liner.start();}
function xmlToDate(val){var date=new Date();if(!val)
return date;date.setFullYear(val.substring(0,4),(val.substring(5,7)-1),val.substring(8,10));date.setHours(val.substring(11,13),val.substring(14,16),val.substring(17,19),val.substring(20,23));return date;}
function callupltrk(){var w=$(window).width();var h=$(window).height();var off=$(document).scrollTop();var top=off+h/2-100;var left=w/2-200;$("#upltrk").css({"top":top,"left":left});$("#upltrk").slideDown('fast');$("#upltrk").draggable({iframeFix:true,opacity:0.35,handle:'#upltrkh'});}
function progress(tp){if(tp=="show"){$("#upltrktips").html("<p><center>Идет загрузка..</center></p><center><img src='http://map.ck.ua/img/ajax-loader4.gif'></center>");}
if(tp=="hide"){$("#upltrktips").html("На данный момент поддерживаются только GPX-треки. Если Ваш трек в другом формате, конвертируйте его,<br>пожалуйства, в GPX-формат с помощью этого сервиса:");}}
function uploadend(resp){var data=$.evalJSON(resp);if(data.status!="ok"){alert(data.status);return;}
var url=data.src;var src=data.realgpx;addgpx(url,src);$("#upltrktips").html("На данный момент поддерживаются только GPX-треки. Если Ваш трек в другом формате, конвертируйте его,<br>пожалуйства, в GPX-формат с помощью этого сервиса:");$("#upltrk").hide();}
function delgpx(src){var file;$.ajax({type:"POST",async:false,url:"server.php",data:"type=delgpx&src="+src,success:function(msg){var data=$.evalJSON(msg);if(data.status!="ok"){alert(data.status);return;}
file=data.filename;}});return file;}
function LineSplicer(line)
{var _this=this;var mapcont=$(map.getContainer());var startx;var starty;var placelistenerstart,mouseuplistener,mousemovelistener;var splicer;var obj;map.disableDragging();this.obj=line;this.stop=function()
{var d=new Date();justwait();var tm=d.getTime();var boxtop=parseInt(this.splicer.css('top'));var boxleft=parseInt(this.splicer.css('left'));var boxright=parseInt(this.splicer.css('left'))+parseInt(this.splicer.css('width'));var boxbottom=parseInt(this.splicer.css('top'))+parseInt(this.splicer.css('height'));var rbpoint=map.converter.localPixelsToCoordinates(new YMaps.Point(boxleft,boxbottom));var tlpoint=map.converter.localPixelsToCoordinates(new YMaps.Point(boxright,boxtop));this.splicer.css({display:'none',width:1,height:1});this.placelistenerstart.disable();this.placelistenerstart.cleanup();this.mousemovelistener.disable();this.mousemovelistener.cleanup();this.mouseuplistener.disable();this.mouseuplistener.cleanup();var pointscount=parseInt(this.obj.getNumPoints());var newPoints=[];for(i=0;i<pointscount;i++){toPx=this.obj.getPoint(i);if(toPx)if((toPx.getLng()<tlpoint.getLng())&&(toPx.getLng()>rbpoint.getLng())&&(toPx.getLat()<tlpoint.getLat())&&(toPx.getLat()>rbpoint.getLat()))
{}else{newPoints.push(toPx);}}
this.obj.setPoints(newPoints);justwait(1);d=new Date();tm=d.getTime()-tm;console.log('time: '+tm);console.log('points: '+pointscount);this.splicer.remove();map.enableDragging();}
this.start=function()
{this.splicer=$("<div id=\"splicerdiv\"></div>").appendTo($('#logo'));this.placelistenerstart=YMaps.Events.observe(map,map.Events.MouseDown,function(map,mEvent){var pt=mEvent.getLocalPixels();var geopt=mEvent.getGeoPoint();var x=pt.getX();var y=pt.getY();_this.startx=x;_this.starty=y;_this.splicer.css({display:'block',top:_this.starty,left:_this.startx});});this.mouseuplistener=YMaps.Events.observe(map,map.Events.MouseUp,function(map,mEvent){this.stop();},this);$(document).one('mouseup',function(){_this.stop();});this.mousemovelistener=YMaps.Events.observe(map,map.Events.MouseMove,function(map,mEvent){var pt=mEvent.getLocalPixels();var geopt=mEvent.getGeoPoint();var x=pt.getX();var y=pt.getY();var lng=geopt.getLng();var lat=geopt.getLat();splicerwdth=x-_this.startx;splicerheight=y-_this.starty;var topx=_this.startx;var topy=_this.starty;if(splicerwdth<0){splicerwdth=Math.abs(splicerwdth);topx=x;}
if(splicerheight<0){splicerheight=Math.abs(splicerheight);topy=y;}
_this.splicer.css({width:splicerwdth,height:splicerheight,top:topy,left:topx});});}};jQuery.cookie=function(key,value,options){if(arguments.length>1&&String(value)!=="[object Object]"){options=jQuery.extend({},options);if(value===null||value===undefined){options.expires=-1;}
if(typeof options.expires==='number'){var days=options.expires,t=options.expires=new Date();t.setDate(t.getDate()+days);}
value=String(value);return(document.cookie=[encodeURIComponent(key),'=',options.raw?value:encodeURIComponent(value),options.expires?'; expires='+options.expires.toUTCString():'',options.path?'; path='+options.path:'',options.domain?'; domain='+options.domain:'',options.secure?'; secure':''].join(''));}
options=value||{};var result,decode=options.raw?function(s){return s;}:decodeURIComponent;return(result=new RegExp('(?:^|; )'+encodeURIComponent(key)+'=([^;]*)').exec(document.cookie))?decode(result[1]):null;};
