function addBookmark(url, title){
  if (!url) url = location.href;
  if (!title) title = document.title;
  

  if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function")) window.sidebar.addPanel (title, url, "");
  //IE4+
  else if (typeof window.external == "object") window.external.AddFavorite(url, title);
  //Opera7+
  else if (window.opera && document.createElement)
  {
    var a = document.createElement('A');
    if (!a) return false; //IF Opera 6
    a.setAttribute('rel','sidebar');
    a.setAttribute('href',url);
    a.setAttribute('title',title);
    a.click();
  }
  else return false;
  
  return true;
}

function ajax_getCities(id,obj){
	var cid = $(obj).val();
	$.post(
		"/ajax.php",
		{
			"action" : "get_cities",
			id : cid
		},
		function(data){
			$("#"+id).empty().append("<option value=''>..выбрать</option>\n<option value='other' style='background:#bbbcbf;color:#bb1f25'>Другой</option>\n");
			$(data).each(function(k, v){
				//alert(k+" - "+v);
				$("#"+id).append("<option value='"+v.id+"'>"+v.name+"</option>\n");
			});
		},
		"json"
	);
}

function otherCity(obj){
	if($(obj).val() == "other"){
		$("#other_city").show();
		$("#other_city input").val('');
	}
	else{
		$("#other_city").hide();
		$("#other_city input").val( $(obj).val() );
	}
}

function otherProblem(obj){
	if($(obj).val() == "other"){
		$("#other_problem").show();
		$("#other_problem input").val('');
	}
	else{
		$("#other_problem").hide();
		$("#other_problem input").val( $(obj).val() );
	}
}


/* LIB */
//	Check and submit
function CheckAndSubmit(id){
	var flag = true;
	$("#"+id+" .ness").each(function(){
		if( $(this).val() == "" ) {
			$(this).focus().addClass("ness_bord");
			flag = false;
			return false;
		} else {
			$(this).removeClass("ness_bord");
		}
	});
	if(flag) {
		$("#"+id).submit();
		return false;
	}
	else return false;
}

function openwin( img , w , h , title ) {
	var hwnd;
	if( hwnd != null )
	hwnd.close();
	hwnd = window.open( img , "" , "toolbar=no , location=no , directories=no , resizable=no , width=" + w + " , height=" + h );
	hwnd.document.open();
	hwnd.document.write("<html>");
	hwnd.document.write("<head>");
	hwnd.document.write("<title>" + title + "</title>");
	hwnd.document.write("</head>");
	hwnd.document.write("<body bgcolor=#ffffff bottommargin=0 leftmargin=0 marginheight=0 marginwidth=0 rightmargin=0 topmargin=0 style='border:0px;'>");
	hwnd.document.write("<table align=center width=100% height=100% cellspacing=0 cellpadding=0 border=0>");
	hwnd.document.write("<tr><td><img src='" + img + "' border=0></td></tr>");
	hwnd.document.write("</table></body></html>");
	hwnd.document.close();
}

function openwin_text( url , w , h ) {
	window.open( url , "" , "toolbar=no , location=no , directories=no , resizable=no , scrollbars=yes , width=" + w + " , height=" + h );
}

function MOredirect( id ) {
	cid = $("#"+id).val();	
	window.location.href = "/municipalnie_obrazovaniia/"+cid+"/";
}

function redirect( uri ) {
	document.location.href = uri;
}

function preload() {
	var numArgs = arguments.length;
	if ( numArgs > 0 ) {
		arr = new Array()
		for( var i = 0; i < numArgs; i++ ) {
			arr[i] = new Image();
			arr[i].src = arguments[i];
		}
	}
}

/* FUNCTIONS LIB */
function clearCookie(){var now = new Date();var yesterday = new Date(now.getTime() - 1000 * 60 * 60 * 24);this.setCookie('co'+this.obj, 'cookieValue', yesterday);this.setCookie('cs'+this.obj, 'cookieValue', yesterday);};
function setCookie(cookieName, cookieValue, expires, path, domain, secure){document.cookie=escape(cookieName) + '=' + escape(cookieValue)+(expires ? '; expires=' + expires.toGMTString() : '')+(path ? '; path=' + path : '')+(domain ? '; domain=' + domain : '')+(secure ? '; secure' : '');};
function getCookie (cookieName){var cookieValue = '';var posName = document.cookie.indexOf(escape(cookieName) + '=');if (posName != -1) {var posValue = posName + (escape(cookieName) + '=').length;var endPos = document.cookie.indexOf(';', posValue);if (endPos != -1) cookieValue = unescape(document.cookie.substring(posValue, endPos));else cookieValue = unescape(document.cookie.substring(posValue));}return (cookieValue);};
function serialize (mixed_value) {var _getType = function (inp) {var type = typeof inp, match;var key;if (type == 'object' && !inp) {return 'null';}if (type == "object") {	if (!inp.constructor) {	return 'object';}var cons = inp.constructor.toString();match = cons.match(/(\w+)\(/);if (match) {	cons = match[1].toLowerCase();}var types = ["boolean", "number", "string", "array"];for (key in types) {if (cons == types[key]) {type = types[key];	break;}}}return type;};var type = _getType(mixed_value);var val, ktype = '';switch (type) {case "function": val = ""; break;case "boolean":val = "b:" + (mixed_value ? "1" : "0");break;case "number":val = (Math.round(mixed_value) == mixed_value ? "i" : "d") + ":" + mixed_value;break;case"string":val = "s:" + encodeURIComponent(mixed_value).replace(/%../g, 'x').length + ":\"" + mixed_value + "\"";break;case "array":case "object":val = "a";/*if (type == "object") {var objname = mixed_value.constructor.toString().match(/(\w+)\(\)/);if (objname == undefined) {return;}objname[1] = this.serialize(objname[1]);val = "O" + objname[1].substring(1, objname[1].length - 1);}*/var count = 0;var vals = "";var okey;var key;for (key in mixed_value) {ktype = _getType(mixed_value[key]);if (ktype == "function") { continue; }okey = (key.match(/^[0-9]+$/) ? parseInt(key, 10) : key);vals += this.serialize(okey) +this.serialize(mixed_value[key]);count++;}val += ":" + count + ":{" + vals + "}";break;case "undefined": default: val="N";break;}if (type != "object" && type != "array") {val += ";";}return val;}
function unserialize (data) {var error = function (type, msg, filename, line){throw new this.window[type](msg, filename, line);};var read_until = function (data, offset, stopchr){var buf = [];var chr = data.slice(offset, offset + 1);var i = 2;while (chr != stopchr) {if ((i+offset) > data.length) {error('Error', 'Invalid');}buf.push(chr);chr = data.slice(offset + (i - 1),offset + i);i += 1;}return [buf.length, buf.join('')];};var read_chrs = function (data, offset, length){var buf;buf = [];for (var i = 0;i < length;i++){var chr = data.slice(offset + (i - 1),offset + i);buf.push(chr);}return [buf.length, buf.join('')];};var _unserialize = function (data, offset){var readdata;var readData;var chrs = 0;var ccount;var stringlength;var keyandchrs;var keys;if (!offset) {offset = 0;}var dtype = (data.slice(offset, offset + 1)).toLowerCase();var dataoffset = offset + 2;var typeconvert = new Function('x', 'return x');switch (dtype){case 'i':typeconvert = function (x) {return parseInt(x, 10);};readData = read_until(data, dataoffset, ';');chrs = readData[0];readdata = readData[1];dataoffset += chrs + 1;break;case 'b':typeconvert = function (x) {return parseInt(x, 10) !== 0;};readData = read_until(data, dataoffset, ';');chrs = readData[0];readdata = readData[1];dataoffset += chrs + 1;break;case 'd':typeconvert = function (x) {return parseFloat(x);};readData = read_until(data, dataoffset, ';');chrs = readData[0];readdata = readData[1];dataoffset += chrs + 1;break;case 'n':readdata = null;break;case 's':ccount = read_until(data, dataoffset, ':');chrs = ccount[0];stringlength = ccount[1];dataoffset += chrs + 2;readData = read_chrs(data, dataoffset+1, parseInt(stringlength, 10));chrs = readData[0];readdata = readData[1];dataoffset += chrs + 2;if (chrs != parseInt(stringlength, 10) && chrs != readdata.length){error('SyntaxError', 'String length mismatch');}break;case 'a':readdata = {};keyandchrs = read_until(data, dataoffset, ':');chrs = keyandchrs[0];keys = keyandchrs[1];dataoffset += chrs + 2;for (var i = 0; i < parseInt(keys, 10); i++){var kprops = _unserialize(data, dataoffset);var kchrs = kprops[1];var key = kprops[2];dataoffset += kchrs;var vprops = _unserialize(data, dataoffset);var vchrs = vprops[1];var value = vprops[2];dataoffset += vchrs;readdata[key] = value;}dataoffset += 1;break;default:error('SyntaxError', 'Unknown / Unhandled data type(s): ' + dtype);break;}return [dtype, dataoffset - offset, typeconvert(readdata)];};return _unserialize((data+''), 0)[2];}
function __debug(arr,level) {var dumped_text = "";if(!level) level = 0;var level_padding = "";for(var j=0;j<level+1;j++) level_padding += "    ";if(typeof(arr) == 'object') { for(var item in arr) {var value = arr[item];if(typeof(value) == 'object') { dumped_text += level_padding + "'" + item + "' ...\n";dumped_text += dump(value,level+1);} else {dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";}}} else { dumped_text = "===>"+arr+"<===("+typeof(arr)+")";}return dumped_text;}

