function popup (link,width,height) {
	open(link, "displayWindow", "width="+width+",height="+height+",status=no,toolbar=no,menubar=no");
	return false;
}

String.prototype.strip_tags = function() {
    var tmp = document.createElement("DIV");
    tmp.innerHTML = this;
    return tmp.textContent||tmp.innerText;
};

function isValidJSON(src) {
    if (trim(src).length > 0) {
        src = src.replace(/\\["\\\/bfnrtu]/g, '@');
        src = src.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']');
        src = src.replace(/(?:^|:|,)(?:\s*\[)+/g, '');

        return (/^[\],:{}\s]*$/.test(src));
    } else {
        return false;
    }
};

function makeAjaxUrl(link) {
    if (link) {
		if (link.indexOf('a=0') > -1) {
            return link.replace(/a=0/g, "a=1");
        } else {
			if (link.indexOf('#') > -1) {
				var arrLink = link.split('#');
				link = "";
				for (var i = 0; i < arrLink.length; i++) {
					if (arrLink[i]) {
    					if (i == 0) {
    						link = makeAjaxUrl(arrLink[i]);
    					} else {
    						link += "#"+arrLink[i];
    					}
    				}
    			}
    		} else {
    			if (link.indexOf('?') > -1) {
					link += '&a=1';
				} else {
					link += '?a=1';
				}
			}
			return link;
		}
		return link;
	}
}

function preview(obj,link) {

    if (typeof(obj)!='object') return false;

	if (trim($(obj).parents("tr:first").next("tr").children("td").children("div").children("div").html()) == '') {
		$(obj).parents("tr:first").next("tr").children("td").children("div").children("div").load(makeAjaxUrl(link),{},function() {
			$(obj).parents("tr:first").next("tr").children("td").children("div").children("img").css("display","none");
    		$(obj).parents("tr:first").next("tr").children("td").children("div").children("div").css("display","block");
		});
	}
	return false;
}

function getHexRGBColor(color) {
  	color = color.replace(/\s/g,"");
  	var aRGB = color.match(/^rgb\((\d{1,3}[%]?),(\d{1,3}[%]?),(\d{1,3}[%]?)\)$/i);

  	if(aRGB) {
    	color = '#';
    	for (var i=1;  i<=3; i++) color += Math.round((aRGB[i][aRGB[i].length-1]=="%"?2.55:1)*parseInt(aRGB[i])).toString(16).replace(/^(.)$/,'0$1');
  	}
  	else color = color.replace(/^#?([\da-f])([\da-f])([\da-f])$/i, '$1$1$2$2$3$3');
  	return color.toLowerCase();
}

function bookmark(title, url) {
	if (title == undefined)
    	title = document.title;
 	if (url == undefined)
		url = top.location.href;
        if (window.sidebar) {
            window.sidebar.addPanel(title, url, '');
         } else if (window.opera && window.print) {
             var t = document.createElement('a');
             t.setAttribute('rel', 'sidebar');
             t.setAttribute('href', url);
             t.setAttribute('title', title);
             t.click();
         } else {
             window.external.AddFavorite(url, title);
         }

       return false;
}

function addAttribute(name,value,obj) {
	var attr = document.createAttribute(name);
	attr.nodeValue = value;
	obj.setAttributeNode(attr);
}


function getRequestBody(oForm) {
	var aParams = new Array();

	$.each($(oForm).find("input, select, textarea"),function(n,el) {
	    if (!$(el).attr("disabled")) {
			if (($(el).attr("type")=='radio' && $(el).attr("checked")) || ($(el).attr("type")=='checkbox' && $(el).attr("checked")) || ($(el).attr("type")!='checkbox') && $(el).attr("type")!='radio') {
            	aParams[aParams.length] = $(el).attr("name") + "=" + encodeURIComponent($(el).attr("value") != "" ? $(el).attr("value") : $(el).val());
			}
		}
	});
	return aParams.join("&");
}

function addinput (obj,maxcount) {

	var my_parent 		= $(obj).parent();
    var grand_parent 	= $(my_parent).parent();
	var count 			= $(grand_parent).find("input:text").length;

	if (count == 0) return false;
	if (maxcount && count >= maxcount) return false;

	// Добавляем контент
	var newItem = $(my_parent).clone(true).insertAfter(my_parent);
	$(newItem).children("input:text").attr("value","");
}

function delinput (obj,maxcount) {
	// Определяем наличие в удаляемой позиции кнопки add
	var cont = $(obj).parent();
	var main = $(cont).parent();
	var count = $(main).find("input:text").length;

	if (count == 1) {
		// Если колличество элементов меньше максимально допустимого
		if (maxcount) {
			addinput(obj,maxcount);
		} else {
			addinput(obj);
		}
	}
	$(cont).remove();

}

function lock(objMain,idArray) {

	for(var i=0; i<idArray.length;i++) {
		var obj = document.getElementById(idArray[i]);
		if (objMain.checked) {
			obj.disabled = false;
		} else {
			obj.disabled = true;
		}

	}
}

function checkInt(value) {
	var re = /^[0-9]*$/;
	if (!re.test(value)) {
		return 0;
	} else {
		return value;
	}
}

function show_loader() {
	if ($("#loader-screen").length == 0) {
		// Создаем новый лоадер
		$("body").prepend("<div class='wait' id='loader-screen'><img src='"+_loading_screen_file+"' /></div>");
	} else {
		$("#loader-screen").show();
	}
}

function hide_loader() {
	$("#loader-screen").hide();
}

// Функция AJAX отправки формы на проверку
(function($) {

   	var defaults = {
   	    // Последний шаг
		noRefresh 	: false,
		sCaptcha	: false,
		rLink		: window.location.href
    };

    $.fn.sendForm = function(options,callback) {
        var settings = $.extend(defaults, options||{});
       	this.each(function() {


			$(this).submit(function() {
				// Отображаем лоадер
                show_loader();
				// Определяем тип DOM обхода
				$.ajax({
					url : makeAjaxUrl($(this).attr("action")),
					dataType : "json",
					data : getRequestBody($(this)),
					timout : 15000,
					type : "POST",
					success: function (data) {
						// Проверяем статус ответа сервера
						if (data['type']=="0") {

							// У нас ошибки. Преобразовываем сообщения в массив и выводим их
							if (data['session_name']) var sSessionName = data['session_name'];
							if (data['session_id']) var sSessionId = data['session_id'];
							if (data['session_key']) var sRand = data['session_key'];

							// Выводим сообщение об ошибке
							if (typeof data['value'] == 'array' || typeof data['value'] == 'object') {
								jAlert(data['value'].join("\n"));
                            } else {
                            	jAlert(data['value']);
                            }

				   			// Обновляем каптчу
				   			if (settings['sCaptcha'] && sRand && sSessionId && sSessionName) {
				    	       	$(settings['sCaptcha']).attr("src",_captcha_path+'?'+sSessionName+'='+sSessionId+'&r='+sRand);
					   		}

					   		// Скрываем лоадер
							hide_loader();
                            callback.call(false,false);
				    	} else {
				    		// Сообщение успешно отправлено. уведомляем об успехе
				    	    if (data['value']) {
				               	jAlert(data['value'],"Данные сохранены",function() {
									if (typeof callback != 'function') {
										if (!settings['noRefresh']) {
											window.location.href = settings['rLink'];
										} else {
				   							// Скрываем лоадер
											hide_loader();
											callback.call(true,true);
				                    	}
				         			} else {
			   							// Скрываем лоадер
										hide_loader();
				         				callback.call(true,true);
				         			}
				               	});
				            } else {
								if (typeof callback != 'function') {
									if (!settings['noRefresh']) {
										window.location.href = settings['rLink'];
									} else {
							   			// Скрываем лоадер
										hide_loader();
										callback.call(true,true);
				                	}
				     			} else {
						   			// Скрываем лоадер
									hide_loader();
				     				callback.call(true,true);
				     			}
				            }
				   		}
					},
					error: function (header) {
					    jAlert("Неизвестная ошибка отправки данных.","Ошибка",function() {
					    	hide_loader();
					    	callback.call(false,false);
					    });


					}
				});
				return false;
			});
		});
	}
})(jQuery);


function parseQuery ( query ) {
   var Params = {};
   if ( ! query ) {return Params;}// return empty object
   var Pairs = query.split(/[\?;&]/);
   for ( var i = 0; i < Pairs.length; i++ ) {
      var KeyVal = Pairs[i].split('=');
      if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
      var key = unescape( KeyVal[0] );
      var val = unescape( KeyVal[1] );
      val = val.replace(/\+/g, ' ');
      Params[key] = val;
   }
   return Params;
}

/*
function delcom(path) {
	var path = makeAjaxUrl(path);
	$.get(path);
	return false;
}
*/

function trim(str) {
    if (typeof str != "undefined") {
	   if (str.replace) return str.replace(/^\s+|\s+$/g, '');
	}
    return "";
}

function sendSort(url,id) {
	// Сортируем список значений в алфавитном порядке
	if (!id) var id = 'numeric'
    var ul = document.getElementById(id);
	if (ul) {
		var lis = ul.getElementsByTagName('li');
		var nl = new Array();

        for(var i =0; i<lis.length;i++) {
            var li = lis.item(i);
       		nl[i]=li.id;
       	}

       	var path = nl.join(';');

		if (url.indexOf('?') > -1) {
			url = url + '&';
		} else {
			url = url + '?';
		}

       	return makeAjaxUrl(url+'b='+path);
	}
}

function asort (path) {
	// Сортируем список значений в алфавитном порядке
	var ul = document.getElementById('numeric');
	if (ul) {
		var lis = ul.getElementsByTagName('li');
		var nl = new Array();
		var bl = new Array();

       	for(var i =0; i<lis.length;i++) {
       		var li = lis.item(i);
			var itemid = li.id;
			var itemname = li.innerHTML;
			nl[i] = itemname;
			bl[itemname] = itemid;

       	}
       	nl.sort();
       	// Уничтожаем numeric и воссоздаем его содержимое заново из отсортированного массива
       	ul.innerHTML = "";
       	for(var i in nl) {
      		var text = nl[i];
       		var itemid =  bl[text];

       		// Создаем элементы li
       		var new_child = document.createElement('li');
       		ul.appendChild(new_child);
       		addAttribute('id',itemid,new_child);
       		new_child.innerHTML = text;
       	}
       	$.get(sendSort(path));
	}
}

function rsort (path) {
	// Сортируем список значений в обратном алфавитному порядке
	var ul = document.getElementById('numeric');
	if (ul) {
		var lis = ul.getElementsByTagName('li');
		var nl = new Array();
		var bl = new Array();

       	for(var i =0; i<lis.length;i++) {
       		var li = lis.item(i);
			var itemid = li.id;
			var itemname = li.innerHTML;
			nl[i] = itemname;
			bl[itemname] = itemid;
       	}
       	nl.sort();
       	nl.reverse();
       	// Уничтожаем numeric и воссоздаем его содержимое заново из отсортированного массива
       	ul.innerHTML = "";
       	for(var i in nl) {
      		var text = nl[i];
       		var itemid =  bl[text];

       		// Создаем элементы li
       		var new_child = document.createElement('li');
       		ul.appendChild(new_child);
       		addAttribute('id',itemid,new_child);
       		new_child.innerHTML = text;
       	}
       	$.get(sendSort(path));
	}
}

// Функция перемещения экрана к нужной позиции
function jumpTo(position) {
	if (typeof position == "string") var position = document.getElementById(position);

	var isOpera = !!window.opera;
	if (isOpera) { var top = 'html'; } else { var top = 'html, body'; }
	var parentOffset = $(position).offset().top;
	$(top).animate({scrollTop: parentOffset}, 500);


}

$(document).ready(function() {
	$("a[href*='/go.html']").click(function() {
           var link = $(this).attr("href").split("?r=")[1];
           jConfirm("Вы действительно хотите перейти на сайт <strong>"+$(this).text()+"</strong>?","Переход по внешней ссылке",function(r) {
               if (r) window.open(link);
           });
           return false;
 	});
});





