
/********************************************************************************************/
/** Included: /dgv.objects/basket/view/www.fanupasaule.lv/basket.js **/
/********************************************************************************************/

function basket(){

	this.add_to_basket = function($product_id, $quantity, $variation){
		this.disableWindow();

		if (!$variation){
			$variation = 0;
		}
		
		var $left 	= document.getElementById("basket-sizer").offsetLeft/2 - 150;
		var $height = document.getElementById("basket-sizer").offsetTop;

		$top = $height/2 - 100 + document.body.scrollTop;
		var $div = document.createElement("DIV");
		$div.id = "basket-loader-container"

		$div.innerHTML = '<div id="basket-loader" style="position:absolute; top:'+$top+'px; left:'+$left+'px; z-index:1000; white-space:nowrap; border:2px solid #85817c; padding:20px; background:#ffffff; width:300px; height:100px; text-align:center; color:#85817c; font-weight:bold"><img src="/imgCollector.php?basket:loading.gif" border="0" style="margin-top:20px"/><br>Updating basket ... </div>';
		document.body.appendChild($div)
		$_url.rpc('/dgv/rpc.php?basket:rpc.basket&product_id='+$product_id+"&quantity="+($quantity?$quantity:1)+"&variation="+$variation+"&lang="+$language, 0);

		if (document.getElementById("item-"+$product_id)){
			if ($quantity == 0){
				document.getElementById("item-"+$product_id).className = "";
			} else {
				document.getElementById("item-"+$product_id).className = "inbasket";
			}
		}
	}

	this.close_basket = function(){
		this.enableWindow();
		var $c = document.getElementById("basket-loader-container")
		$c.parentNode.removeChild($c);
	}

	//======================================================================================

	this.disableWindow = function(){
		var $newDiv = document.createElement("DIV");
		$newDiv.innerHTML = '<div id="products_screencloser" style="background:#000000; position:absolute; left:0px; top:0px; z-index:100; opacity:0.50; filter:alpha(opacity=50)"></div><div style="position:absolute;" id="GTK_BG_VALUE"></div>';
		document.body.appendChild($newDiv);

		var $Layer 			= window.document.getElementById("products_screencloser");
		var $Sizer          = window.document.getElementById("basket-sizer");
		if (!$Sizer) {
			$Sizer = document.createElement("DIV");
			$Sizer.id = "basket-sizer";
			document.body.appendChild($Sizer);
		}

		$Layer.style.width  = "100%";
		$Layer.style.height = Math.max(document.body.scrollHeight, document.getElementById("basket-sizer").offsetTop)+"px";
	}

	this.enableWindow = function(){
		var $win = window.document.getElementById("products_screencloser")
		if ($win){
			$win.parentNode.removeChild($win);
		}
	}

	//======================================================================================

	this.gotobasket = function(){
		if (!window.$baketUrl){
			alert("window.$baketUrl is not defined ! Set it in header.tpl");
		}
		document.location.href = window.$baketUrl;
	}
	
}

$basket = new basket();
/********************************************************************************************/
/** Included: /dgv.objects/filters/view/www.fanupasaule.lv/filters.js **/
/********************************************************************************************/

//<script>

function filters(){
	
	this.$last_opened = null;
	this.$last_filter_att = null;
	this.$last_filter_var = null;

	this.makelink = function(){
		var $inputs = window.document.getElementsByTagName("input");
		var $checked_attributes = new Array();
		var $checked_variations = new Array();
		var $custom_filters 	= new Array();
		
		$counter = $inputs.length; 
		for ($x=0; $x < $counter; $x++) {
			if ($inputs[$x].checked && $inputs[$x].name=="att[]"){
				$checked_attributes.push(this.filterEcrane($inputs[$x].value));
			}
			if ($inputs[$x].checked && $inputs[$x].name=="var[]"){
				$checked_variations.push(this.filterEcrane($inputs[$x].value));
			}
			
			switch(true){
				case $inputs[$x].checked && $inputs[$x].id=="filter[onstock]":  	 $custom_filters.push("f[st]=1"); break;
				case $inputs[$x].checked && $inputs[$x].id=="filter[w_image]":  	 $custom_filters.push("f[wi]=1"); break;
				case $inputs[$x].value && $inputs[$x].id == "filter[intitle]":  	 $custom_filters.push("f[tl]="+this.filterEcrane($inputs[$x].value)); break;
				
				case $inputs[$x].id.match(/slider.+from/i) != null :
					if (! $inputs[$x].getAttribute("isChanged")){
						break;
					}
					var $cellName = new RegExp("slider[[](.+)][[]", "gi").exec($inputs[$x].id)[1];
					if (document.getElementById("slider["+$cellName+"][from]").value || document.getElementById("slider["+$cellName+"][to]").value){
						$checked_attributes.push(
							$inputs[$x].getAttribute("template")+":"+
							$cellName+":"+
							this.filterEcrane(document.getElementById("slider["+$cellName+"][from]").value)+":"+
							this.filterEcrane(document.getElementById("slider["+$cellName+"][to]").value));	
					}
					break;
			}
		}
		var $link 	 = document.location.href.split("?");
		if (!$link[1]) {
			$link[1] = '&';
		}
		var $details = $link[1].split("&");
		var $parts 	 = $details[0].split(".");
		var $info	 = $details[1].split(".");
		$info[0]	 = ''; // Skidivajem tekushij produkt
		$parts[2] 	 = encodeURI($checked_attributes.join(","));
		$parts[3] 	 = encodeURI($checked_variations.join(","));
		$details[0]	 = $parts.join(".");
		$details[1]  = $info.join(".");
		
		$filters.$last_filter_att = $link[0]+"?"+$details.join("&");
		$filters.$last_filter_att = $filters.$last_filter_att.replace(/&f\[[^&]+/gi, "");
		if ($custom_filters.length > 0){
			$filters.$last_filter_att += "&"+($custom_filters.join("&"))
		}
		try {
			var $priceFrom 	= document.getElementById("filter[price][from]").value;
			var $priceTo 	= document.getElementById("filter[price][to]").value;
			if ($priceFrom || $priceTo){
				$filters.$last_filter_att += "&f[pr]="+$priceFrom+"-"+$priceTo;
			}
		} catch ($e) {}
		
	}

	this.filterEcrane = function($value){
		return $value; // Deprecated. Teperj eto v PHP funkcii	
	}
	
	this.filter = function(){
		this.makelink();
		document.location.href = $filters.$last_filter_att;
	}
	
	this.filter_price = function(){
		var $from 		= document.getElementById("filters_price_from").value;
		var $to 		= document.getElementById("filters_price_to").value;
		var $new_link 	= document.location.href.replace(new RegExp("&f.cp.=[0-9]+", "gi"), "");
		$new_link 		= $new_link.replace(new RegExp("&f.pr.=[^&]+", "gi"), "");
		
		document.location.href = $new_link+"&f[pr]="+$from+"-"+$to;

	}
	
}

function filters_slider(){
	
	this.initSlider = function($sliderName){
		var $sliderContainer = document.getElementById($sliderName);
		var $polzunki = $sliderContainer.getElementsByTagName("span");
		$polzunki[0].onmousedown = $filters_slider.initMove;
		$polzunki[1].onmousedown = $filters_slider.initMove;
		$polzunki[0].firstChild.innerHTML = $sliderContainer.getElementsByTagName("DIV")[0].getAttribute("to");
		$polzunki[1].firstChild.innerHTML = $sliderContainer.getElementsByTagName("DIV")[0].getAttribute("from");
	}

	this.setSlider = function($object, $min, $max){
		var $polzunki = document.getElementById($object).getElementsByTagName("span");
		$filters_slider.initMove(null, $polzunki[1], true);
		
		$filters_slider.$sliderArea.style.marginLeft = (($min - $filters_slider.$sliderObject.getAttribute("from")) / $filters_slider.pointsPerPixel)+"px";
		$filters_slider.$sliderArea.style.marginRight = (($filters_slider.$sliderObject.getAttribute("to") - $max) / $filters_slider.pointsPerPixel)+"px";
		$filters_slider.setValues(1);
	}
	
	this.initMove = function($event, $object, $nosetEvent){
		$event = $event || window.event;
		
		if (!$object){
			$object = this;
		}
		
		$filters_slider.$sliderObject 	= $object.parentNode.parentNode; 
		$filters_slider.$sliderArea 		= $object.parentNode; 
		$filters_slider.$direction		= $object.className == "sliderMin" ? "marginLeft" : "marginRight";
		$filters_slider.$sliderPos		= $filters_slider.objectPos($filters_slider.$sliderObject)[0];
		$filters_slider.$sliderAreaWidth 	= $filters_slider._size($filters_slider.$sliderArea.clientWidth) + $filters_slider._size($filters_slider.$sliderArea.style.marginLeft) + $filters_slider._size($filters_slider.$sliderArea.style.marginRight);
		
		$filters_slider.$precision		= $filters_slider.$sliderObject.getAttribute("precision");
		$filters_slider.$step				= $filters_slider.$sliderObject.getAttribute("step");
		$filters_slider.pointsPerPixel 	= ($filters_slider.$sliderObject.getAttribute("to") - $filters_slider.$sliderObject.getAttribute("from")) / ($filters_slider.$sliderAreaWidth - 14);
		$filters_slider.$id				= $filters_slider.$sliderObject.parentNode.id;
		$filters_slider.$callback 		= $filters_slider.$sliderObject.getAttribute("callback");

		if (!$nosetEvent){
			window.document.onmousemove = $filters_slider.moveSlider; 
			window.document.onmouseup 	= $filters_slider.stopMove;
		}

		return false;		
	}
	
	this.moveSlider = function($event){
		$event = $event || window.event;
		var $mousePosition 		= $filters_slider.mousePos($event);

		if ($filters_slider.$direction == "marginLeft"){
			$offset = Math.max($mousePosition[0] - $filters_slider.$sliderPos + 5, 0);
			$filters_slider.$sliderArea.style.marginLeft = $offset+"px";
			if ($filters_slider.$sliderArea.clientWidth <= 14){
				$filters_slider.$sliderArea.style.marginLeft = $filters_slider.$sliderAreaWidth - $filters_slider._size($filters_slider.$sliderArea.style.marginRight) - 14; 
			}
		} else {
			$offset = Math.max($filters_slider.$sliderAreaWidth + $filters_slider.$sliderPos - $mousePosition[0] - 5, 0);
			$filters_slider.$sliderArea.style.marginRight = $offset+"px";
			if ($filters_slider.$sliderArea.clientWidth <= 14){
				$filters_slider.$sliderArea.style.marginRight = $filters_slider.$sliderAreaWidth - $filters_slider._size($filters_slider.$sliderArea.style.marginLeft) - 14; 
			}
		}
		$filters_slider.setValues(0);
		return false;
	}
	
	this.setValues = function($autoMatically){
		var $polzunki = $filters_slider.$sliderArea.getElementsByTagName("span");
		var $valueMin = ($filters_slider.pointsPerPixel * $filters_slider._size($filters_slider.$sliderArea.style.marginLeft) + $filters_slider.$sliderObject.getAttribute("from") * 1); 
		var $valueMax = (($filters_slider.$sliderObject.getAttribute("to") * 1) - $filters_slider.pointsPerPixel * $filters_slider._size($filters_slider.$sliderArea.style.marginRight)); 
		
		$valueMin = (Math.round($valueMin / $filters_slider.$step) * $filters_slider.$step).toFixed($filters_slider.$sliderObject.getAttribute("precision"));
		$valueMax = (Math.round($valueMax / $filters_slider.$step) * $filters_slider.$step).toFixed($filters_slider.$sliderObject.getAttribute("precision"));
		
		$polzunki[0].firstChild.innerHTML = $valueMax;
		$polzunki[1].firstChild.innerHTML = $valueMin;
		
		document.getElementById('slider['+$filters_slider.$id+"][from]").value = $valueMin;
		document.getElementById('slider['+$filters_slider.$id+"][to]").value = $valueMax;
		
		if (!$autoMatically){
			document.getElementById('slider['+$filters_slider.$id+"][from]").setAttribute("isChanged",1);
			document.getElementById('slider['+$filters_slider.$id+"][to]").setAttribute("isChanged",1);
		}
		return new Array($valueMin, $valueMax);
	}
	
	this.stopMove = function(){
		window.document.onmousemove = null;
		window.document.onmouseup 	= null;
		if (!$filters_slider.$callback){
			$filters.filter();
		} else {
			eval($filters_slider.$callback);
		}	
	}
	
	//======================================================================================
	/** Opredelenije pozicii objekta ot nachala ekrana **/
	this.objectPos = function(obj){
		var $size = new Array(0,0);
		while (obj.offsetParent) {
			$size[1] += obj.offsetTop
			$size[0] += obj.offsetLeft
			obj = obj.offsetParent;
		}
		return $size;
	}
	/** Tekushee polzozhenije mishki **/
	this.mousePos = function($event){
		if ($event.pageX || $event.pageY)	{
			posx = $event.pageX;
			posy = $event.pageY;
		} else if ($event.clientX || $event.clientY) {
			posx = $event.clientX;
			posy = $event.clientY;
		}
		return new Array(posx, posy);
	}		
	
	this._size = function($string){
		return ($string+'').replace("px", "")*1;
	}
	
}

$filters_slider 	= new filters_slider();
$filters 			= new filters();

/********************************************************************************************/
/** Included: /dgv.objects/order/view/www.fanupasaule.lv/order.js **/
/********************************************************************************************/

//<script>

function order(){

	this.change_delivery = function(){
		var $form = document.getElementById("order_delivery_form");
		if (!$form){
			alert("You need to set ID='order_delivery_form' to <form>");
			return;
		}
		document.getElementById("save_step").value = ''; // Skidivajem chtobi ne perejti na next step
		$form.submit();
	}
	
	this.swhitch_payer_mode = function($radio){
		document.getElementById("tr-fiz_name")		.style.display = $radio.value == 1 ? "none" : "";
		document.getElementById("tr-fiz_surname")	.style.display = $radio.value == 1 ? "none" : "";
		document.getElementById("tr-jur_title")		.style.display = $radio.value == 0 ? "none" : "";
		document.getElementById("tr-jur_regnr")		.style.display = $radio.value == 0 ? "none" : "";
		document.getElementById("tr-jur_adrese")	.style.display = $radio.value == 0 ? "none" : "";
	}
	
	this.change_delivery_type = function($checkbox){
		$order.$delivery_type = $checkbox.value;
		$order.get_delivery_costs();
	}
	
	
	this.change_country = function(){
		this.change_delivery();
	}
}

$order = new order();
/********************************************************************************************/
/** Included: /dgv.objects/paginator/view/www.fanupasaule.lv/paginator.js **/
/********************************************************************************************/

//<script>

function paginator() {
	
	this.mpselect_on = function($element){
		
		var $position 	= this.get_position($element);
		var $width 		= $element.clientWidth;
		var $div 		= $element.nextSibling;
		
		$div.style.display 	= ($div.style.display == "none" || !$div.style.display) ? 'block' : 'none';
		$div.style.width 	= ($width+1)+"px";
		$div.style.top 		= ($position[1]+20)+"px";
		$div.style.left 	= $position[0]+"px";
	}	
	
	this.get_position = function(obj){
		var $size = new Array(0,0);
		while (obj.offsetParent) {
			$size[1] += obj.offsetTop
			$size[0] += obj.offsetLeft
			obj = obj.offsetParent;
		}
		return $size;
	}

}
$paginator = new paginator();
/********************************************************************************************/
/** Included: /dgv.objects/products/view/www.fanupasaule.lv/products.js **/
/********************************************************************************************/

//<script>

document.write('<div id="sizer" style="position:absolute;right:0px;bottom:0px;width:1px;height:1px"></div>');

function products() {

	this.imgl = function($imgid){
		var $img = document.getElementById("i"+$imgid).firstChild;
		this.img($img);
	}

	// Nachinajem zagruzku image
	this.img = function($img, $imgID){

		this.disableWindow();

		this.$last_opened_Img = $img;

		//------------------------------------------------------------------------
		// <<< Display "Loading Image"

			var $screenX = document.getElementById("sizer").offsetLeft*1;
			var $screenY = document.getElementById("sizer").offsetTop*1;

			var $top  	= $screenY/2 - 100 + document.body.scrollTop;
			var $left 	= $screenX/2 - 150;
			var $div 	= document.createElement("DIV");

			$div.id 		= "product-loader-container"
			$div.innerHTML 	= '<div id="product-loader" style="position:absolute; top:'+$top+'px; left:'+$left+'px; z-index:1000; border:2px solid #eeeeee; background:#ffffff; width:300px; height:140px; text-align:center; color:#85817c; font-weight:bold"><div style="padding:20px"><img src="images/loading.gif" border="0" style="margin-top:10px"/><br>Loading Image ... </div></div>';
			document.body.appendChild($div)

		//--------------------------------------------------------------------------------------
		// <<< Loading Image

			var $popupimg = new Image();
			$popupimg.onload = $products.img_preveiw_show;

			if ($imgID){
				var $basesrc = $img.src.replace(new RegExp("[.][0-9][.]", "gi"), '.'+$imgID+'.');
			} else {
				var $basesrc = $img.src;
			}

			$popupimg.src 	= $basesrc.replace(new RegExp("(.s2.)|(.s1.)", "gi"),".s0.");

			return false;
	}

	// Kogda image zagruzhen v browser - pokazivajem jego
	this.img_preveiw_show = function(){

		var $imgHeight 		= this.height*1;
		var $imgWidth 		= this.width*1;
		this.style.margin 	= "0px";

		var $screenX = document.getElementById("sizer").offsetLeft*1;
		var $screenY = document.getElementById("sizer").offsetTop*1;

		var $container = document.getElementById("product-loader");

		var $height = $imgHeight > $screenY - 40 ? $screenY - 30 : $imgHeight + 10;

		$container.style.top 		= (document.body.scrollTop + ($screenY/2-$height/2))+"px";
		$container.style.left		= ($screenX/2-($imgWidth+150)/2)+"px";
		$container.style.width 		= ($imgWidth+160)+"px";
		$container.style.height 	= ($height+3)+"px";
		$container.style.overflow 	= "auto";
		$container.style.overflowX 	= "hidden";

		var $small = this.src.replace(".s0.", ".s1.");
		var $small2 = $small.replace(new RegExp("[.][0-9][.]", "gi"), '.0.');
		var $small3 = $small.replace(new RegExp("[.][0-9][.]", "gi"), '.1.');
		var $small4 = $small.replace(new RegExp("[.][0-9][.]", "gi"), '.2.');
		var $small5 = $small.replace(new RegExp("[.][0-9][.]", "gi"), '.3.');

		var $string = "<div style='position:absolute; width:41px; height:15px; margin:0px background:#ffffff; right:0px;cursor:pointer;' onclick='$products.img_preveiw_close();return false'><img src='/imgCollector.php?products:close.png' border='0'/></div>";
		$string += '<table cellspacing=0 cellpadding=0>';
		$string += '<tr><td style="background:#eeeeee; text-align:center; border:1px solid #ffffff" width="135" valign=top><div style="padding:5px">';
		$string += '<img imgid=0 src="'+$small2+'" border="0" vspace="3" style="border:1px solid #cccccc; visibility:hidden" onmouseover="$products.img_mouse_over(this)" onload="$products.img_check(this)"/><br>';
		$string += '<img imgid=1 src="'+$small3+'" border="0" vspace="3" style="border:1px solid #cccccc; visibility:hidden" onmouseover="$products.img_mouse_over(this)" onload="$products.img_check(this)"/><br>';
		$string += '<img imgid=2 src="'+$small4+'" border="0" vspace="3" style="border:1px solid #cccccc; visibility:hidden" onmouseover="$products.img_mouse_over(this)" onload="$products.img_check(this)"/>';
		$string += '<img imgid=3 src="'+$small5+'" border="0" vspace="3" style="border:1px solid #cccccc; visibility:hidden" onmouseover="$products.img_mouse_over(this)" onload="$products.img_check(this)"/>';
		$string += '</div></td><td id="mainimgcontainer" onclick="$products.img_preveiw_close();return false" style="cursor:pointer; border:1px solid #ffffff;" title="Close image"></td></tr>';
		$string += '</table>';

		this.alt = "Close Image";
		this.title = "Close Image";

		$container.innerHTML = $string;

		//$container.innerHTML = "<div onclick='$main.img_preveiw_close();return false' style='cursor:pointer;' title='Close image'><div style='position:absolute; width:50px; height:30px; background:#ffffff; right:0px;'><img src='images/close.gif' border='0' style='margin-top:10px'/></div></div>";
		//$container.firstChild.appendChild(this);

		document.getElementById("mainimgcontainer").appendChild(this);
	}

	this.img_preveiw_close = function(){
		this.enableWindow();
		var $i = document.getElementById("product-loader-container");
		if ($i){
			$i.parentNode.removeChild($i);
		}
		return false;
	}

	this.img_mouse_over = function($image){
		$image.style.border 	= "1px solid green";
		$image.style.cursor 	= "pointer"
		$image.onmouseout 		= $products.img_mouse_out;
		$image.onclick 			= $products.change_image;
	}

	this.change_image = function(){
		$products.img_preveiw_close();
		$products.img($products.$last_opened_Img, this.getAttribute("imgid"));
	}

	this.img_mouse_out = function(){
		this.style.border = "1px solid #cccccc"
	}

	this.img_check = function($image){
		if ($image.width == 88 && $image.height == 89){ // Eto nofoto image
			if ($image.parentNode){
				$image.parentNode.removeChild($image);
			}
		} else {
			$image.style.visibility = "";
		}
	}

	//======================================================================================

	this.disableWindow = function(){
		var $newDiv = document.createElement("DIV");
		$newDiv.innerHTML = '<div id="products_screencloser" style="background:#000000; position:absolute; left:0px; top:0px; z-index:100; opacity:0.50; filter:alpha(opacity=50)"></div><div style="position:absolute;" id="GTK_BG_VALUE"></div>';
		document.body.appendChild($newDiv);

		var $Layer 			= window.document.getElementById("products_screencloser");
		$Layer.style.width  = "100%";
		$Layer.style.height = Math.max(document.body.scrollHeight, document.getElementById("sizer").offsetTop)+"px";
	}

	this.enableWindow = function(){
		var $win = window.document.getElementById("products_screencloser")
		if ($win){
			$win.parentNode.removeChild($win);
		}
	}

	//======================================================================================

	this.scroll = function($obj_name){
		if (!$obj_name){
			return;
		}
		var $item = document.getElementById("item-"+$obj_name);
		if (!$item) {return;}
		$pos = this.findPos($item);
		$item.className = "last-visited";
        window.scrollTo(0,$pos - 200);
	}
    this.findPos = function($obj) {
        var $curtop = 0;
        while ($obj.offsetParent) {
                $curtop += $obj.offsetTop
                $obj = $obj.offsetParent;
        }
        return $curtop;
    }

	this.get_position = function(obj){
		var $size = new Array(0,0);
		while (obj.offsetParent) {
			$size[1] += obj.offsetTop
			$size[0] += obj.offsetLeft
			obj = obj.offsetParent;
		}
		return $size;
	}

	//======================================================================================

	this.deactBookmarks = function($a){
		var $items = $a.parent.getElementsByTagName("a");
		$counter = $items.length; 
		for ($x=0; $x < $counter; $x++) {
			$items[$x].className = "";
			document.getElementById("bookmark-"+$items[$x].getAttribute("bookmark")).style.display = "none";
		}
	}
	
	this.actBookmark = function($item){
		var $items = $item.getElementsByTagName("a");
		$counter = $items.length; 
		for ($x=0; $x < $counter; $x++) {
			$items[$x].onclick = $products.changeBookmark;
			$items[$x].parent = $item;
		}
	}
	this.changeBookmark = function(){
		$products.deactBookmarks(this);
		if (this.getAttribute("bookmark")){
			this.className = "active";
		}
		document.getElementById("bookmark-"+this.getAttribute("bookmark")).style.display = "";
	}
	
	this.search = function($baselink){
		var $searchString = document.getElementById("products_search").value;
		$searchString = $searchString.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); // Trim
		document.location.href = $baselink.replace("{baselink}", encodeURIComponent($searchString));
		return false;
	}
	
	
}

$products = new products();


/********************************************************************************************/
/** Included: /dgv.objects/vendors/view/www.fanupasaule.lv/vendors.js **/
/********************************************************************************************/

//<script>
function b2b_vendors(){
	
	this.$obj_w_vendors = null;
	
	this.init_filter = function($object){
		$b2b_vendors.$obj_w_vendors = $object;
		$object.onmouseover = null;
		var $objs = $object.getElementsByTagName("input");
		$counter = $objs.length; 
		for ($x=0; $x < $counter; $x++) {
			if ($objs[$x].name == "vf[]"){
				$objs[$x].onclick = $b2b_vendors.make_filter;
			}
		}
	}
	
	this.make_filter = function(){
		var $vendors_to_select = new Array();
		$objs = $b2b_vendors.$obj_w_vendors.getElementsByTagName("input");
		$counter = $objs.length; 
		for ($x=0; $x < $counter; $x++) {
			if ($objs[$x].name == "vf[]" && $objs[$x].checked){
				$vendors_to_select.push($objs[$x].value);
			}
		}		
		
		var $link 	= document.location.href.split("?");
		var $parts 	= $link[1].split(".");
		$parts[1] 	= encodeURI($vendors_to_select.join(","));
		$b2b_filter.$last_filter_att = $link[0]+"?"+$parts.join(".");
		$b2b_filter.$last_filter_att = $b2b_filter.$last_filter_att.replace(new RegExp("&f.cp.=[0-9]+", "gi"), "");
		document.location.href = $b2b_filter.$last_filter_att;		
	}
	
}

$b2b_vendors = new b2b_vendors();
/********************************************************************************************/
/** Included: /dgv.shared/_counter/view/_counter.js.php **/
/********************************************************************************************/


function _counter() {

	this.update = function($objectName, $groupName, $setCounter, $window){
		if (!$window){
			$window = window.top.window;
		}
		
		if (!$window || !$window.document || !$window.document.body){
			return;
		}
		
		var $spans = $window.document.body.getElementsByTagName("SPAN");
		var $counter = $spans.length;

		for (var $x=0; $x < $counter; $x++) {
			if ($spans[$x].getAttribute("_counter") == $objectName && $spans[$x].getAttribute("_counterGroup") == $groupName){
				$spans[$x].innerHTML = $setCounter;
			}
		}
		
		var $frames = $window.frames;
		var $counter = $frames.length;
		for (var $x=0; $x < $counter; $x++) {
			$_counter.update($objectName, $groupName, $setCounter, $frames[$x].window);
		}
	}	

}

$_counter = new _counter();
/********************************************************************************************/
/** Included: /dgv.shared/_debugger/view/_debugger.js.php **/
/********************************************************************************************/

// DebugMode is ON.

function _debugger($scriptTime){

	this.init = function($scriptTime){
		try {
			var $header = null;
			var $headers = document.getElementsByTagName("DIV");
			var $counter = $headers.length;
			for (var $x = 0; $x < $counter; $x ++){
				if ($headers[$x].className == "_popupHeader"){
					$header = $headers[$x];
					$offsetRight = "50px";
					$offsetTop = "4px";
					break;
				}
				if ($headers[$x].className == "header"){
					$offsetRight = "10px";
					$offsetTop = "1px";
					$header = $headers[$x];
					break;
				}
			}
			if ($header){
				$header.oncontextmenu = this.reload;
			}
			
			var $debugWindow = document.createElement("DIV");
			$debugWindow.style.position = "absolute";
			if ($header){
				$debugWindow.style.right = "30px";
				$debugWindow.style.top = "5px";
				$debugWindow.className = "onheader"
			} else {
				$debugWindow.style.right = "5px";
				$debugWindow.style.bottom = "5px";
				$debugWindow.className = "onfooter"
			}
			$debugWindow.id = "_debuggerPanel";
			
			$debugWindow.style.whiteSpace = "nowrap";
			$debugWindow.innerHTML = ''+$scriptTime+'<img src="/imgCollector.php?_debugger:check.gif" border="0" style="margin-left: 4px"  title="" onclick="$_debugger.openChecker(this)" /><img src="/imgCollector.php?_debugger:watches.png" border="0" style="margin-left: 4px"  title="get info about variable watches in this window" onclick="$_debugger.watches()" /><img src="/imgCollector.php?_debugger:info.gif" border="0" hspace="8" title="get info about current window" onclick="$_debugger.fileinfo()"/><img src="/imgCollector.php?_debugger:debug.gif" border="0" onclick="$_popup.open(\'/dgv/popup.debugWindow.php\', 950, 750)" title="open debugger poupup"/><img src="/imgCollector.php?_debugger:close.gif" border="0" onclick="$_debugger.hideMenu(this)" style="margin-left:8px" title="Hide debug menu"/>';
			window.document.body.appendChild($debugWindow);		
		} catch ($e) {
		}
		
	}

	this.openChecker = function(){
		$_popup.open("/dgv/screens/_debugger/popup.checker.php", 900, 700);
	}
	this.hideMenu = function($img){
		$img.parentNode.parentNode.removeChild($img.parentNode);
	}

	this.reload = function(){
		document.location.href = document.location.href;
		return false;
	}

	this.$visible = false;
	this.fileinfo = function(){

		var $info = document.getElementById("_debuggerInfo");
		$info.style.top = "30px";
		$info.style.right = "50px";
		if (this.$visible){
			$info.style.display = "none";
			this.$visible = false;
		} else {
			$info.style.display = "";
			this.$visible = true;
		}

		$_debugger.addViewInfoToAllObjects(document.getElementsByTagName("body")[0]);
	}

	this.watches = function() {

		var watchWin = document.getElementById("_debuggerWatches") || true;
		if(!watchWin) return ;

		watchWin.style.top = "30px";
		watchWin.style.right = "50px";
		if(watchWin.style.display == "none"){
			watchWin.style.display = "";
		} else {
			watchWin.style.display = "none";
		}
	}

	this.expandWatch = function(id){
		var watch = document.getElementById("_debuggerWatch[" + id + "]");
		if (!watch) return;
		watch.style.display =  watch.style.display == "none" ? "" : "none";
	}

	this.viewViewInfo = function($event){
		$event = $event ? $event : window.event;
		if ($event.cancelBubble) {
				$event.cancelBubble = true;
		}
		if ($event.returnValue) {
				$event.returnValue = false;
		}
		if ($event.stopPropagation) {
				$event.stopPropagation();
		}
		window.prompt("Function: "+this.$_debugInfo[1]+"\n\nFile: "+this.$_debugInfo[2]+"\n", this.$_debugInfo[2]);
		return false;
	}

	this.addViewInfoToAllObjects = function($objNode){
		var $objChildNode = $objNode.firstChild;
		while ($objChildNode){
			if ($objChildNode.nodeType == 8){
				if ($info = $objChildNode.nodeValue.match(new RegExp("<<<", "gi"))){
					$_debugger.$lastView = $objChildNode.nodeValue.split(":");
					$_debugger.$insertInfoMode = true;
				}
				if ($objChildNode.nodeValue.match(new RegExp(">>>", "gi"))){
					$_debugger.$insertInfoMode = false;
				}
			} else {
				if ($_debugger.$insertInfoMode == true){
					$objChildNode.oncontextmenu = $_debugger.viewViewInfo;
					$objChildNode.$_debugInfo = $_debugger.$lastView;
				} else {
					if (!$objChildNode.oncontextmenu){
						$objChildNode.oncontextmenu = $_debugger.viewViewInfo;
						$objChildNode.$_debugInfo = new Array("", "", document.getElementById("_debuggerCurrentFile").value)
					}
				}
			}
			$_debugger.addViewInfoToAllObjects($objChildNode);
			$objChildNode = $objChildNode.nextSibling;
		}
	}

	this.insertFile = function($input){
		var $tr = $input.parentNode.parentNode;
		$tr.cells[$tr.cells.length - 2].firstChild.value = $input.name;
	}

	this.$insertInfoMode = false;
	this.$lastView = new Array();
	this.$all = new Array();
	this.init($scriptTime);
}

/********************************************************************************************/
/** Included: /dgv.shared/_filter/view/_filter.js **/
/********************************************************************************************/

function _filter(){
	
	this.filterTable = function($objTableName, $field){
		var $table = document.getElementById($objTableName); 
		if (!$table){
			alert("Table not found:"+$objTableName);
		}
		var $rows  = $table.rows;
		var $count = $rows.length;
		for ($x = 0; $x < $count ; $x ++){
			var $cells = $rows[$x].cells;
			var $count2 = $cells.length;
			var $passed = 0;
			if (! $field.value){
				$passed = 1;
			} else {
				for ($y = 0; $y < $count2 ; $y ++){
					if ($cells[$y].tagName == "TH"){
						$passed = 1;
					}
					if ($cells[$y].innerHTML.match(new RegExp($field.value, "gi"))){
						$passed = 1;
					}
				}
			}
			if ($passed){
				$rows[$x].style.display = "";
			} else {
			$rows[$x].style.display = "none";
			}
		} 
		
	}

}
$_filter = new _filter();
/********************************************************************************************/
/** Included: /dgv.shared/_form/view/_form.js.php **/
/********************************************************************************************/

//<script>

function _form(){
	
	//======================================================================================

	// Eto pizdanutj IE. 
	// Esli  prosto sdelatj disable , to on ranshe disablitsa chem proishodit action
	this.$lastButton = '';
	
	this.disableButton = function($button){
		$_form.$lastButton = $button;
		window.setTimeout("$_form._disableButton()", 10);
	}
	this._disableButton = function(){
		$_form.$lastButton.disabled = true;
		$_form.$lastButton = null;  
	}
	
	this.submitToRpc = function($form, $debugMode){
		if (!document.getElementById("_formRpcResult")){
			alert('document.getElementById("_formRpcResult") is failed. You need to create element with this name');
		}
		$form.target = "_formRPCform";
		if (!document.getElementById("_formRPCform")){
			var $ifame = document.createElement("DIV");
			$ifame.id = "_formRPCform-container"
			$ifame.innerHTML = '<iframe name="_formRPCform" id="_formRPCform" onload="$_form.restoreAfterRpc(this)" style="'+($debugMode?'':'display:none')+'"></iframe>';
			document.body.appendChild($ifame);
		}
		return true;
	}
	this.restoreAfterRpc = function($iframe){
	
		if ( $iframe.contentDocument){
			$iFrameBody = $iframe.contentDocument.body;
		} else if ( $iframe.contentWindow ) {
			$iFrameBody = $iframe.contentWindow.document.body;
		}
		document.getElementById("_formRpcResult").innerHTML = $iFrameBody.innerHTML;
	}
	
	this.markErrorRemove = function( $allFields){
		// Sperva ubirajem error marker so vseh polej
		var $allFields = $allFields.split(",");
		while($singleField = $allFields.pop()){ 
			if ($field  = window.parent.window.document.getElementById($singleField)){
				this._markLabel($field, "");
			}
		}
	}
	
	this.markError = function($fieldName){
		// Teperj stavim error marker
		var $field  = window.parent.window.document.getElementById($fieldName);
		if ($field){
			this._markLabel($field, "red");
		}
	}
	
	this._markLabel = function($field, $color){
		while($field = $field.parentNode){
			if ($field.tagName == "TR"){
				var $children = $field.getElementsByTagName("*");
				var $len = $children.length;
				for (var $x = 0; $x < $len; $x ++){
					if ($children[$x].className == "_formLabel"){
						$children[$x].style.color = $color;
					}
				}
			}
		}
	}
	
	
	
	//======================================================================================
	
	this.repeaterAdd = function($repeaterID, $nofocus){
		var $repeater = document.getElementById("_formRepeater-"+$repeaterID+"");
		if (!$repeater){
			alert("repeater with this ID is not found ["+$repeaterID+"]");
			return false;
		}
		var $newDiv 		= document.createElement("DIV");
		var $baseHTML 		= $repeater.innerHTML;
		$baseHTML 			= $baseHTML.replace(new RegExp("tmp=", "gi"), "name=", $baseHTML);
		$baseHTML 			= $baseHTML.replace(new RegExp("{ID}", "gi"), "", $baseHTML);
		$newDiv.innerHTML = $baseHTML;
		$repeater.nextSibling.appendChild($newDiv);
		if (! $nofocus){
			$newDiv.getElementsByTagName("INPUT")[0].focus();
		}
	}
	
	this.repeaterDel = function($button){
		var $div = $button.parentNode.parentNode.parentNode.removeChild($button.parentNode.parentNode);
	}
	
	this.repeaterMove = function($button, $direction){
		var $container = $button.parentNode.parentNode;
		var $nearestElement = ($direction == 0) ? $container.nextSibling : $container.previousSibling;
		if (!$nearestElement){ // Esli net rjadom stojashego elementa
			return;
		}
		if ($direction == 1){
			$nearestElement.parentNode.insertBefore($container, $nearestElement);
		} else {
			$nearestElement.parentNode.insertBefore($nearestElement, $container);
		}
	}
	
	/**
	* Funkcija lovit ENTER v poljah repeatera i sozdajet sledujushij element s perevodom tuda fokusa
	*/
	this.repeaterKeyDown = function($event, $currentElement){
		if ($event.keyCode == 13){
			while ($currentElement) {
				if ($currentElement.className == "_formRepeater"){
					var $repeaterID = $currentElement.getAttribute("repeaterID");
					$_form.repeaterAdd($repeaterID);
					return false; // Chtob forma ne posilalasj
				}				
				var $currentElement = $currentElement.parentNode;
			}
		}
	}	
	
	
	//--------------------------------------------------------------------------------------
	
	this.bookmark = function($event){
		var $event = $event ? $event : window.event;
		var $obj = this;
		$bookmark_id = $obj.getAttribute("bookmarkID");

		var $roots = $obj.parentNode.getElementsByTagName("div");
		var $length = $roots.length;

		if (!$event.ctrlKey){
			for(var $x=0;$x<$length;$x++){
				$roots[$x].className = "";
				document.getElementById($roots[$x].id+"-c").style.display = "none";
				document.getElementById($roots[$x].id+"-h").style.display = "none";
				$roots[$x].style.borderBottom = "1px solid #6392ce";
			}
		} else {
			document.getElementById($obj.id+"-h").style.display = "";
		}
		$obj.className = "active";
		document.getElementById($obj.id+"-c").style.display = "";
		document.getElementById("bookmarks_opened["+$bookmark_id+"]").value = $obj.id;
		$_form.setCookie("bookmark_opened", $obj.title);
		$obj.style.borderBottom = "1px solid "+$obj.getAttribute("bg");
	}
	
	this.setCookie = function($cookie, $value) {
		var date = new Date();
		date.setTime(date.getTime()+(2*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
		document.cookie = $cookie+"="+$value+expires+"; path=/";
	}	
	
	this.form_select_linked_process = function($event, $object){
		if (!$object){
			$object = this;
		}
		var subSelects = $object.getAttribute("sub_select_id").split("|");
		var c = subSelects.length;
		var $client = [];
		for (var i = 0; i < c; i++) {
			$client[i] = new XMLHttpRequest();
			var link = "/dgv/rpc.php?_form:_selectLinked&selectID=" + ($object.name) + "&subSelectID=" + (subSelects[i]) + "&currentID=" + $object.value;
			$client[i].open("GET", link);
			$client[i].setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
			$client[i].$subSelectID = subSelects[i];

			$client[i].onreadystatechange = function ()
			{
				if (this.readyState == 4) {
					var $container = document.getElementById(this.$subSelectID + "-container")
					var $json = this.responseText.match(new RegExp("{.+}"));
					var myObject = eval("(" + $json + ")");
					$container.innerHTML = myObject.html;
					eval(myObject.js);
				}
			}
			$client[i].send();
		}

	}

	this.charmaps = {};
	this.setCharValue = function(obj)
	{
		var charmap = obj.parentNode.id.replace("charmap-", "");

		if((this.charmaps[charmap].mode == "single") && this.charmaps[charmap].lastClickedChar){
			if(this.charmaps[charmap].lastClickedChar !== obj){
				this.setCharValue(this.charmaps[charmap].lastClickedChar);
			}
		}
		var hidden 		= document.getElementById(obj.id.replace("_button", ""));
		hidden.value 	= Math.abs(hidden.value*1 - 1);
		obj.className 	= hidden.value*1 ? "_formCharSelected" : "_formChar";
		this.charmaps[charmap].lastClickedChar = hidden.value*1 ? obj : null;
	}

	this.setCharmapMode = function(charmap, mode){
		this.charmaps[charmap] = this.charmaps[charmap] || {};
		this.charmaps[charmap].mode = mode;
	}
	
	//======================================================================================
	

	this.$calendar_div 		= '';
	this.$calendar_object 	= '';

	this.calendar = function($day, $month, $year, $name, $void_date, $left_offset_px){
		if ($day.toString().length == 1)
			$day = "0" + $day;
		
		if($month.toString().length == 1)
			$month = "0" + $month;


		var $ctext = $day+'.'+$month+'.'+$year;
		if ($year == 1970 || $void_date == 1){
			$ctext = "";
		}
		
		var $HTML = '<input type="text" name="'+$name+'" id="'+$name+'" ';
		$HTML += 'value="'+$ctext+'" ';
		$HTML += 'style="width:66px" ';
		$HTML += 'onchange="if(window.GTK_cal_change){GTK_cal_change(\''+$name+'\')}"/>';
		$HTML += '<img src="/imgCollector.php?_form:calc.gif" border="0" hspace="2" onclick="$_form.calendar_popup(this.previousSibling.value, 0, this, '+($left_offset_px?$left_offset_px:0)+')"/>';
		$HTML += '<span></span>';
		document.write($HTML)
	}	
	
	this.calendar_popup = function ($date, $offset, $object, $left_offset_px){
		if (this.calendar_div && $offset == 0){
			this.calendar_div.parentNode.removeChild(this.calendar_div);
			this.calendar_div = null;
			this.calendar_object = null;
			return;
		}
		if (this.calendar_div && $offset != 0){
			this.calendar_div.parentNode.removeChild(this.calendar_div);
		}

		if ($object == this.calendar_object && $offset == 0){
			this.calendar_object = '';
			return;
		}

		var $monthes = new Array("January", "February", "Mart", "April", "May", "June", "July", "August", "Septemer", "October", "November", "December");

		if (!$date){
			var $t = new Date();
			var month = $t.getMonth() + 1
			var day = $t.getDate()
			var year = $t.getFullYear()
			$date = day+"."+month+"."+year;
		} 
		$temp 	= $date.split(".");
		$month 	= $temp[1]*1 + $offset*1;
		$year   = $temp[2]*1;

		if ($month < 1){
			$year --;
			$month = 12;
		}
		if ($month > 12){
			$year ++;
			$month = 1;
		}

		if ($temp[0].toString().length == 1){
			$temp[0] = "0" + $temp[0];
		}
		if ($month.toString().length == 1) {
			$month = "0" + $month;
		}

		$date 	= $temp[0]+"."+$month+"."+$year;

		var $hLINES = '';
		for (var $x = 1; $x < 33; $x++){
			var $newDate = new Date(($year), $month-1, $x);
			if ($newDate.getMonth() != $month-1){
				break;
			}
			$curDayID = $newDate.getDay() == 0 ? $curDayID = 7 : $curDayID = $newDate.getDay();
			
			if ($x == 1){
				$hLINES += $_form.calendar_1_line($curDayID);
			}
			$hLINES += '<a onclick="$_form.calendar_setday(this)" class="'+($curDayID >= 6 ? 'weekend ' : '')+($temp[0]==$x?'today':'')+'">'+$x+'</a>';
			if ($curDayID == 7){
				$hLINES += '<br>';
			}
		}

		this.calendar_div = document.createElement("span");
		if ($left_offset_px){
			this.calendar_div.style.marginLeft = $left_offset_px+"px";
		}
		
		this.calendar_div.style.zIndex = 1000000;
		this.calendar_div.className = "_form_calendar";
		$hCalendar = '<div class="cheader">';
		$hCalendar += '<b onclick="$_form.calendar_popup(\''+$date+'\', -1, null, '+$left_offset_px+')" style="float:left">««</b>';
		$hCalendar += '<b onclick="$_form.calendar_popup(\''+$date+'\', 1, null, '+$left_offset_px+')" style="float:right">»»</b>';
		$hCalendar += $monthes[$month-1]+' '+$year;
		$hCalendar += '</div>';
		$hCalendar += '<table><tr><td year="'+$year+'" month="'+$month+'">'+$hLINES+'</td></tr></table>';
		this.calendar_div.innerHTML = $hCalendar;

		if (!$object){
			$object = this.calendar_object;
		}
		
		$object.parentNode.insertBefore(this.calendar_div, $object);
		this.calendar_object = $object;
	}

	this.calendar_1_line = function($dayid){
		var $hLINES = '';
		if ($dayid == 0){
			$dayid = 7;
		}
		for (var $x=1; $x<$dayid; $x++){
			$hLINES += '<a class="void">&nbsp;</a>';
		}
		return $hLINES;

	}

	this.calendar_setday = function($obj){
		$year = $obj.parentNode.getAttribute("year");
		$month = $obj.parentNode.getAttribute("month");
		$day = $obj.innerHTML;

		if ($day.toString().length == 1)
			$day = "0" + $day;
		if($month.toString().length == 1)
			$month = "0" + $month;
		
		this.calendar_object.previousSibling.previousSibling.value = $day+"."+$month+"."+$year;
		if(window.GTK_cal_change){GTK_cal_change(this.calendar_object.previousSibling.previousSibling.name);}
		this.calendar_object = "";
		this.calendar_div.parentNode.removeChild(this.calendar_div);
		this.calendar_div = null;
	}	
	
	//======================================================================================
	// <<< Slider functions

	this.$isSlidingNow 		= 0;
	this.$direction 		= null;
	this.$sliderDiv 		= null;
	this.$sliderStatus 		= null;
	this.$sliderPosition 	= null;
	this.$sliderStep 		= null;
	this.$sliderPrecision 	= null;
	
	this.$infoLeft 		= 0;
	this.$infoRight  	= 0;
	this.$infoPixel  	= 0;
	
	/** Inicializacija slidera. Ustanovka eventov na polzunki **/
	this.initSlider = function($slider){
		var $imgs = $slider.getElementsByTagName("span");

		$imgs[0].onmousedown 	= $_form.startMove;
		$imgs[1].onmousedown 	= $_form.startMove;

		$slider.onmousemove 	= false;
		return false;
	}
	
	/** Nachalo dvizhenija, onmousedown na polzunke **/
	this.startMove = function($event){
		$event = $event ? $event : window.event;
		
		var $info = this.parentNode.parentNode.getElementsByTagName("span");
		
		$_form.$sliderDiv 			= this.parentNode.parentNode;
		$_form.$sliderStatus 		= this.parentNode;
		$_form.$isSlidingNow 		= 1;
		$_form.$sliderStep 			= $_form.$sliderDiv.getAttribute("step");
		$_form.$sliderPrecision   	= $_form.$sliderDiv.getAttribute("precision");
		$_form.$infoLeft 			= $info[1].firstChild;
		$_form.$infoRight 			= $info[0].firstChild;
		$_form.$infoPixel 			= ($_form.$sliderDiv.clientWidth*1 - 14) / ($_form.$sliderDiv.getAttribute("to")*1 - $_form.$sliderDiv.getAttribute("from")*1);
		$_form.$direction 			= this.getAttribute("dir");
		$_form.$sliderPosition 		= $_form.position($_form.$sliderDiv)[0];
		
		window.document.onmouseup 		= $_form.stopMove;
		window.document.onmousemove 	= $_form.moveSlider;
		
		return false;
	}
	
	/** Opredelenije pozicii objekta ot nachala ekrana **/
	this.position = function(obj){
		var $size = new Array(0,0);
		while (obj.offsetParent) {
			$size[1] += obj.offsetTop
			$size[0] += obj.offsetLeft
			obj = obj.offsetParent;
		}
		return $size;
	}	
	
	/** Zavershenije peremeshenija **/
	this.stopMove = function(){
		$_form.isSlidingNow 			= 0;
		window.document.onmousemove 	= null;
		window.document.onmouseout 		= null;
		if (window.$sliderTimeout){
			window.clearTimeout(window.$sliderTimeout);
		}
	}

	/** Inicializacija zavershenija peremeshenija **/	
	this.startStopMove = function(){
		if (window.$sliderTimeout){
			window.clearTimeout(window.$sliderTimeout);
		}
		window.$sliderTimeout = window.setTimeout("$_form.stopMove()", 100);
	}
	
	/** Peredvigajem polzunok **/
	this.moveSlider = function($event){
		$event = $event ? $event : window.event;
		
		if ($_form.$direction == "left"){
			$_form.$sliderStatus.style.marginLeft = ($_form.getMousePosition($event)[0] - $_form.$sliderPosition + 8) + "px";
			if ($_form.$sliderStatus.style.marginLeft.replace("px", "")*1 < 0){
				$_form.$sliderStatus.style.marginLeft = "0px";
			}
		} else {
			$_form.$sliderStatus.style.marginRight = $_form.$sliderDiv.clientWidth - ($_form.getMousePosition($event)[0] - $_form.$sliderPosition + 10)+"px";
			if ($_form.$sliderStatus.style.marginRight.replace("px", "")*1 < 0){
				$_form.$sliderStatus.style.marginRight = "0px";
			}
			
		}

		if ($_form.$sliderStatus.clientWidth < 14){
			
			if ($_form.$direction == "left"){
				$_form.$sliderStatus.style.marginLeft = ($_form.$sliderDiv.clientWidth - $_form.$sliderStatus.style.marginRight.replace("px", "") - 14) + "px";
			} else {
				 $_form.$sliderStatus.style.marginRight = ($_form.$sliderDiv.clientWidth - $_form.$sliderStatus.style.marginLeft.replace("px", "") - 14) + "px";
			}
		}
		
		$leftValue 	= ($_form.$sliderStatus.style.marginLeft.replace("px", "")*1 / $_form.$infoPixel)*1 + $_form.$sliderDiv.getAttribute("from")*1;
		$rightValue = (($_form.$sliderStatus.style.marginLeft.replace("px", "")*1 - 14 + $_form.$sliderStatus.clientWidth*1) / $_form.$infoPixel)*1 + $_form.$sliderDiv.getAttribute("from")*1;
		
		$leftValue 	= (Math.round($leftValue / $_form.$sliderStep) * $_form.$sliderStep).toFixed($_form.$sliderPrecision);
		$rightValue = (Math.round($rightValue / $_form.$sliderStep) * $_form.$sliderStep).toFixed($_form.$sliderPrecision);
		
		$_form.$infoLeft.innerHTML  = $leftValue
		$_form.$infoRight.innerHTML = $rightValue
		document.getElementById($_form.$sliderDiv.id+"[from]").value = $leftValue;
		document.getElementById($_form.$sliderDiv.id+"[to]").value = $rightValue;

		if (window.$sliderTimeout){
			window.clearTimeout(window.$sliderTimeout);
		}
		
		return false;
	}
	
	/** Tekushee polzozhenije mishki **/
	this.getMousePosition = function($event){
		if ($event.pageX || $event.pageY)	{
			posx = $event.pageX;
			posy = $event.pageY;
		} else if ($event.clientX || $event.clientY) {
			posx = $event.clientX;
			posy = $event.clientY;
		}
		return new Array(posx, posy);
	}	
	
	//======================================================================================
	
	this.$mpselect_visible = null;
	
	this.show_mpselect = function($button, $title){
		$obj = document.getElementById("mpselect_"+$title);
		
		if ($button.getAttribute("checked") == 1){
			$button.src = "/_gtk/images/mpselect_off.gif";
			$button.setAttribute("checked", 0)
			$obj.style.display = "none";
			$mpselect_visible = null;
		} else {
			$_form.mpselect_hide();
			$button.src = "/_gtk/images/mpselect_on.gif";
			$button.setAttribute("checked", 1)
			$obj.style.display = "";
			$mpselect_visible = $button;
		}
	}
	
	this.mpselect_hide = function()
	{
		if (!$_form.$mpselect_visible){return;}
		$_form.$mpselect_visible.src = "/_gtk/images/mpselect_off.gif";
		$_form.$mpselect_visible.setAttribute("checked", 0)
		$_form.$mpselect_visible.previousSibling.style.display = "none";
		$_form.$mpselect_visible = null;
	}
			
	this.mpselect_addvalue = function($checkbox, $title)
	{
		var $obj = document.getElementById("mpselect_"+$title);
		var $checkboxes = $obj.getElementsByTagName("INPUT");
		var $l = $checkboxes.length;
		var $items_checked = new Array();
		for(var $x=0;$x<$l;$x++){
			if ($checkboxes[$x].checked){
				$items_checked.push($checkboxes[$x].nextSibling.innerHTML);
			}
		}
		document.getElementById("mpselect_values_"+$title).innerHTML = $items_checked.join(", ");;
	}
			
	this.mpselect_boolean = function($select, $title)
	{
		var $obj = document.getElementById("mpselect_"+$title);
		var $checkboxes = $obj.getElementsByTagName("INPUT");
		var $l = $checkboxes.length;
		var $items_checked = new Array();
		for(var $x=0;$x<$l;$x++){
			$checkboxes[$x].checked = false;
		}
		$select.previousSibling.checked = true;
		$_form.mpselect_addvalue($select.previousSibling, $title);
	}	
	
	this.time_select = function()
	{
		var objInput = this.nextSibling;
		objInput.value = this.options[this.selectedIndex].text;
		this.style.visibility = 'hidden';
	}
	
	this.time_hideSelect = function($void, $element)
	{
		if ($element){
			var objSelect = document.getElementById($element).previousSibling;
		} else {
			var objSelect = this.previousSibling;
		}
		if (objSelect) 
		{
			objSelect.style.visibility = 'hidden';
		}
	}
	
	this.time_initHideSelect = function()
	{
		window.setTimeout("$_form.time_hideSelect(null, '"+this.id+"')", 100);
	}

	this.time = function($obj,$step)
	{
		$obj.onkeyup = $_form.time_hideSelect;
		$obj.onblur = $_form.time_initHideSelect;

		var objStartDate=new Date();
		objStartDate.setHours(0);
		objStartDate.setMinutes(0);
		objStartDate.setSeconds(0);
		objStartDate.setMilliseconds(0);

		var elemName = ''+$obj.id+'_select';
		var objSelect = document.getElementById(elemName);
		if (!objSelect) {
			var objSelect = document.createElement('select');
		} else {
			objSelect.style.visibility = 'visible';
			return;
		}
		objSelect.name = elemName;
		objSelect.id = elemName;
		objSelect.multiple = true;
		objSelect.size = 6;
		objSelect.onclick = $_form.time_select;
		objSelect.style.position = 'absolute';
		objSelect.style.marginTop = '20px';
		$step = $step*1000;
		for (i=0;i<86000000;i+=$step)
		{
			var objOption = document.createElement('option');
			var objDate=new Date(objStartDate.getTime()+i);
			var strHours = '00'+objDate.getHours();
			var strMinutes = '00'+objDate.getMinutes();
			//var strSeconds = '00'+objDate.getSeconds();
			objOption.text = strHours.substring(strHours.length-2,strHours.length)+
				':'+strMinutes.substring(strMinutes.length-2,strMinutes.length);
				//+':'+strSeconds.substring(strSeconds.length-2,strSeconds.length);
			objOption.value = i;
			objSelect.options.add(objOption);
		}
		$obj.parentNode.insertBefore(objSelect,$obj);
	}
	
	this.addFile = function($input){
		$input.previousSibling.value = ""; // Stirajem staroje znachenije
		$input.parentNode.parentNode.parentNode.cells[0].firstChild.innerHTML = $input.value;
		$parent = $input; 
		while($parent = $parent.parentNode){
			if ($parent.tagName == "FORM"){
				if ($parent.getAttribute("enctype") != "multipart/form-data"){
					alert("Warning !!! ENCTYPE of form tag must be [multipart/form-data]");
					return;
				} else {
					return;
				}
			}
		}
		alert("Warning !!! No parent <form> tag is detected !!!");
	}	

	this.collapseExpand = function($checkbox){
		var $div = $checkbox.nextSibling;
		if ($div.className == "_formCollapseHidden"){
			$div.className = "_formCollapseVisible";	
			$checkbox.firstChild.src = "/imgCollector.php?_form:submenu-down.gif";
			$checkbox.firstChild.nextSibling.value = 1;
		} else {
			$div.className = "_formCollapseHidden";
			$checkbox.firstChild.src = "/imgCollector.php?_form:submenu-up.gif";
			$checkbox.firstChild.nextSibling.value = 0;
		}
		
	}
	
	this.inputFocus = function($input){
		if ($input.wasFocused){
			return;
		}
		$input.value = "";
		$input.style.color  = "#000000"
		$input.wasFocused = true;
	}
	
	/*--------------------------------------------------------------------------------------*/
	
	this.$popupInputs  = '';
	this.$lastElement  = '';
	
	this.popupInputShow = function($html, $group, $element){

		if ($element == this.$lastElement){ // Click na tot-zhe element, zakrivajem i uhodim
			this.popupInputHide($group);
			return false;
		}		
		
		if (this.$popupInputs.match(";"+$group+";")){ // Esli uzhe jestj otkritij element - closajem jego
			this.popupInputHide($group);
		}
		
		this.$lastElement = $element;

		if (document.getElementById("_formPopupInput-"+$group)){
			document.getElementById("_formPopupInput-"+$group).parentNode.removeChild(document.getElementById("_formPopupInput-"+$group));
		}

		var $div = document.createElement("DIV");
		$div.style.position 	= "absolute";
		$div.style.textAlign 	= "left";
		$div.style.marginLeft 	= "0px";
		$div.style.marginTop 	= "0px";
		$div.style.width 		= "1px";
		$div.style.height 		= "1px";
		$div.id 				= "_formPopupInput-"+$group;
		$div.innerHTML 			= $html;
		$div.style.visibility  	= "hidden";
		$div.style.zIndex 		= 10001;

		if ($element.tagName){
			$element.appendChild($div);
		}
		
		this.$popupInputs += ";"+$group+";";
		
		if ($div.offsetLeft + $div.firstChild.clientWidth > window.document.body.clientWidth){ // Sluchillsa uhod za ekran
			$div.style.marginLeft = ((window.document.body.clientWidth - ($div.offsetLeft + $div.firstChild.clientWidth)) - 30)+"px";
		}
		$div.style.visibility = "visible";
		
		return $div;
	}
	
	this.popupInputHide = function($group, $hide){
		this.$popupInputs = this.$popupInputs.replace(";"+$group+";", "");
		if (document.getElementById("_formPopupInput-"+$group)){
			if ($hide){
				document.getElementById("_formPopupInput-"+$group).style.display = "none";
			} else {
				document.getElementById("_formPopupInput-"+$group).parentNode.removeChild(document.getElementById("_formPopupInput-"+$group));
			}
		}
		this.$lastElement = '';
	}

	this.mutex = function(){
		var $index = arguments[0]*1;
		for($x=1 ; $x < arguments.length; $x ++){
			var $mode = (($x-1) == $index) ? "" : "none";
			var $fields = arguments[$x].split(",");
			for($y=0; $y < $fields.length; $y ++){
				$node = document.getElementById($fields[$y]);
				while($node = $node.parentNode){
					if ($node.tagName == "TR"){
						$node.style.display = $mode;
						break;
					}
				}
			}
		}

	}

	this.addEvent = function(elem, action, listener){
		if (elem.addEventListener){
			elem.addEventListener(action, listener, false);
		}	else {
			elem.attachEvent("on"+action, function($event) {
				listener.apply(elem, [$event]);
			});
		}
	}

}

$_form = new _form();
/********************************************************************************************/
/** Included: /dgv.shared/_help/view/_help.js.php **/
/********************************************************************************************/

//<script>
function _help($mode, $url){

	this.init = function($mode){

		var $header = null;
		var $headers = document.getElementsByTagName("DIV");
		var $counter = $headers.length;
		for (var $x = 0; $x < $counter; $x ++){
			if ($headers[$x].className == "_popupHeader"){
				$header = $headers[$x];
				break;
			}
			if ($headers[$x].className == "header"){
				$header = $headers[$x];
				break;
			}
		}
		if ($header){
			var $newDiv = document.createElement("SPAN");
			$newDiv.id = "_helpPanel";
			$newDiv.style.position = "absolute";
			$newDiv.style.marginTop = "3px"
			if ($mode){
				$newDiv.innerHTML = '<img src="/imgCollector.php?_help:info.gif" border="0" hspace="8" title="Information about current screen" onclick="$_help.openHelp()"/>';
			} else {
				$newDiv.innerHTML = '<img src="/imgCollector.php?_help:info-unact.gif" border="0" hspace="8" title="Information about current screen" onclick="$_help.openHelp()"/>';
			}

			$header.appendChild($newDiv);
		}


	}

	this.openHelp = function($void, $instance){
		if ($instance){
			$_popup.open("/dgv/screens/_help/popup.help.php?instance="+$instance, '95%', '95%');			
		} else {
			$_popup.open("/dgv/screens/_help/popup.help.php?file="+$url, '95%', '95%');
		}
	}

	this.$url = $url;
	this.init($mode);
}

function _help_Info()
{
	this.showInfo = function($object, $helper_id){
		
		var $left = document.getElementById("sizer").offsetLeft;
		
		var $position = this.get_position($object);
		
		if (!document.getElementById("helper-info")){
			var $i = document.createElement("div");
			$i.id = "helper-info";
			document.body.appendChild($i);
		} else {
			$i = document.getElementById("helper-info");
			$i.style.display = "";
		}
		if ($position[0] + 200 > $left){
			$position[0] = $position[0] - 250;
		}
		$i.style.left = ($position[0]+12)+"px";
		$i.style.top = ($position[1]+16)+"px";
		
		$_url.rpc('/dgv/rpc/_help:rpc.helper?id='+($helper_id), "helper-info", 0);
		$object.onmouseout = $helper.hide;
	}	
	
	this.helper_correct_height = function(){
		var $c = document.getElementById("helper-info");
		var $height = document.getElementById("sizer").offsetTop + document.body.scrollTop;
		var $top = this.get_position($c)[1];
		if ($top + $c.clientHeight > $height){
			var $nh = $top - (($top + $c.clientHeight + 10) - $height);
			$c.style.top = $nh+"px";
		}
	}
	
	this.hide = function(){
		$v = document.getElementById("helper-info");
		$v.style.display = "none";
	}	
	
	this.get_position = function(obj){
		var $size = new Array(0,0);
		while (obj.offsetParent) {
			$size[1] += obj.offsetTop
			$size[0] += obj.offsetLeft
			obj = obj.offsetParent;
		}
		return $size;
	} 

}
$_help_Info = new _help_Info();
/********************************************************************************************/
/** Included: /dgv.shared/_log/view/_log.js **/
/********************************************************************************************/

function _log(){

	this.startMonitoring = function ()
	{
		$_log.$timeout = window.setTimeout("$_log.makeTick()", 1000);
	}

	this.makeTick = function()
	{
		var $client = new XMLHttpRequest();
		$client.open("GET", "/dgv/screens/_log/rpc.monitoring.php");
		$client.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");

		$client.onreadystatechange = function() {
			if(this.readyState == 4) {
				var $container = document.getElementById(this.$subSelectID+"-container")
				var $json = this.responseText.match(new RegExp("{.+}"));
				var myObject = eval("(" + $json + ")");
				$container.innerHTML = myObject.html;
				eval(myObject.js);
			}
		}
		$client.send();
	}
	
}

$_log = new _log();
/********************************************************************************************/
/** Included: /dgv.shared/_paginator/view/_paginator.js **/
/********************************************************************************************/

//<script>

function _paginator(){

	this.init = function($object, $instanceName){
		
		$items = $object.getElementsByTagName("A");
		var $counter = $items.length;
		for ($x=0; $x < $counter; $x++) {
			$items[$x].onclick = this.pagelist_change_page;
			$items[$x].$instanceName = $instanceName;
		}		
		
		var $newF1 		= document.createElement("FORM");
		$newF1.id 		= "_paginatorForm"+$instanceName;
		$newF1.method 	= "POST";
		$newF1.name 	= "_paginator"+$instanceName;
		$newF1.innerHTML = '<input type="hidden" value="" name="_paginator" id="_paginator'+$instanceName+'">' +
							'<input type="hidden" value="'+$instanceName+'" name="_paginatorName">';
		document.body.appendChild($newF1);
		
	}
	
	this.pagelist_change_page = function(){
		document.getElementById("_paginator"+this.$instanceName).value = ((this.innerHTML == "«" || this.innerHTML == "»" || this.innerHTML == "»»" || this.innerHTML == "««") ? this.getAttribute("value") : this.innerHTML*1 - 1);
		document.getElementById("_paginatorForm"+this.$instanceName).submit();
	}
}

$_paginator = new _paginator();
/********************************************************************************************/
/** Included: /dgv.shared/_popup/view/_popup.js **/
/********************************************************************************************/

//<script>

var $loadinImage = new Image();
$loadinImage.src = "/imgCollector.php?_popup:loading.gif";

if (!window.top.window.document.getElementById("_popupSizer")){ // Generim sizer toljko 1 raz dlja rootParent okna
	document.write("<div id='_popupSizer'></div>");
	window.$_popupOpendedPopupsStack = new Array();
	window.$lastPopupId = 0;
}

function _popup(){
	
	
	this.open = function($url, $width, $height, $counterName, $submitAction, $hidden)
	{
		var $window = window.top;

		var $newDiv 			 = window.top.document.createElement("DIV");
		$newDiv.className 		 = "_popupContent";
		
		this.showLoading($counterName);
		
		$width 	= this.getPopupSize(2, $width);
		$height = this.getPopupSize(3, $height);
		
		$newDiv.$realLeft 	= ((this.getScreenSize()[2] - $width)/2) + "px";
		$newDiv.style.left  = "-5000px"; // Nizje hiditj okno, inache focus ne budet rabotatj
		$newDiv.style.top 	= ((this.getScreenSize()[3] - $height)/2) + "px";
		
		
		
		if (!$url.match(new RegExp("^/"))){
			var $baseurl = window.document.location.href.split("/");
			$baseurl.pop();
			$url = $baseurl.join("/") + '/' + $url;
		}
		
		window.top.$lastPopupId ++;
		
		if ($submitAction){ // Esli eto submit konkretnoj formi, to ne nado gruzitj content
			var $baseurl = $url;
			$url = "about:blank";
		}
		
		
		$newDiv.innerHTML 	= "<iframe src='"+$url+"' style='width:"+$width+"px; height:"+$height+"px' id='_popup_"+window.top.$lastPopupId+"' name='_popup_"+window.top.$lastPopupId+"' frameborder='0' onload='$_popup.showIframe(this, "+($hidden?1:0)+")' isLoaded='0'></iframe>";
		$newDiv.$opener		= window;
		$newDiv.style.zIndex = 100;
		
		//======================================================================================
		
		var $openedPopups = window.top.$_popupOpendedPopupsStack.length;
		if ($openedPopups == 0){
			this.disableWindow();
		} else {
			//window.top.$_popupOpendedPopupsStack[$openedPopups-1].style.display = "";
			window.top.window.document.getElementById("_popupWindowDisabler").style.zIndex = 100;
			window.top.$_popupOpendedPopupsStack[$openedPopups-1].style.zIndex = 99;
		}
		window.top.$_popupOpendedPopupsStack.push($newDiv);

		//======================================================================================
		
		
		window.top.document.body.appendChild($newDiv);
		
		if ($submitAction){
			this.changeTarget(window.top.$lastPopupId, $submitAction, $baseurl);
		}
	}
	
	/**
	* Smisl funkcii v tom chtobi najti parent formu i podstavitj jej v target tot Popup Window kotorij
	* 	bil otrkit cherez $_popup.open(); Dabi forma poslala svoj post imenno tuda
	*/
	this.changeTarget = function($lastPopupId, $submitButton, $baseurl){
		var $x = 0;
		$parent = $submitButton;
		while($parent = $parent.parentNode){
			if ($x++ > 10){
				return;
			}
			if ($parent.tagName == "FORM"){
				
				var lastTarget = $parent.target;
				var lastAction = $parent.action;

				$parent.target = '_popup_'+window.top.$lastPopupId;
				$parent.action = $baseurl;

				if ($submitButton.type == 'button' || $submitButton.type == 'image'){
					$parent.submit();
					$parent.target = lastTarget;
					$parent.action = lastAction;
				}
				
				return;
			}
		}
	}
	
	//======================================================================================
	// <<< Zakritije Popup okna
	
		this.$contentIsChanged = 0;
		this.onClose = null;
		

		this.close = function($depth, $evalBeforeClose, $evalAfterClose)
		{
			
			if (window.$_popupEvalBeforeClose != undefined){
				eval(window.$_popupEvalBeforeClose);
			}
			// Stavim proverku na to chto idet popitka zakritj popup do togo kak zagruzilsa frame
			var $loader = window.top.document.getElementById("_popupLoader");
			if ($loader){
				window.setTimeout("$_popup.close("+$depth+")", 100);
				return;
			}
			window.top.$_popup._close($depth, $evalBeforeClose, $evalAfterClose);
		}	

		this._close = function($depth, $evalBeforeClose, $evalAfterClose){

			 if ($evalBeforeClose){
				window.top.eval($evalBeforeClose);
			}
			
			var $depth = $depth ? $depth : 1;
			
			for (var $x = 1; $x <= $depth; $x++){

				if ($_popup.$contentIsChanged){
					if (!confirm("Dati nav saglabāti. Pārliecināti ka gribat aizvērt logu ?")){
						return;
					}
					$_popup.$contentIsChanged = false;
				}

				var $popup = window.top.$_popupOpendedPopupsStack.pop();
				var $openedPopups = window.top.$_popupOpendedPopupsStack.length;

				var $_objPopup = this.getFrame().$_popup || null;

				if($_objPopup && $_objPopup.onClose){
					$_objPopup.onClose()
				}
				
				if ($openedPopups == 0){
					this.enableWindow();
				} else {
					window.top.$_popupOpendedPopupsStack[$openedPopups-1].style.display = "";
					window.top.$_popupOpendedPopupsStack[$openedPopups-1].style.zIndex = 100;
				}
				$popup.parentNode.removeChild($popup);
			}
			
			if ($evalAfterClose){
				window.top.window.$evalAfterClose = $evalAfterClose;
				window.top.window.setTimeout("window.top.window.$_popup._evalAfterClose();", 100);
			}			
		}
		
		this._evalAfterClose = function(){
			eval(window.top.window.$evalAfterClose);
		}
	
	// >>> Zakritije Popup okna
	//======================================================================================
	
	this.isOpened  = function(){ // Otrkrit popup libo net
		if (!window.top.$_popupOpendedPopupsStack.length){
			return false;
		}
		return true;
	}
	
	/**
	 * @return window
	 */
	this.getOpener = function($depth){
		if (!window.top.$_popupOpendedPopupsStack.length){ // This is not a popup
			return false;
		}
		var $depth = $depth ? $depth : 1;
		var $openedPopups = window.top.$_popupOpendedPopupsStack.length;
		return window.top.$_popupOpendedPopupsStack[$openedPopups-$depth].$opener;
	}
	
	/**
	 * @return DIV
	 */
	this.getPopup = function(){
		var $openedPopups = window.top.$_popupOpendedPopupsStack.length;
		return window.top.$_popupOpendedPopupsStack[$openedPopups-1];
	}
	
	this.getFrame = function(){
		return window.top.window.frames[window.top.window.frames.length-1].window;
	}
	

	
	this.reloadOpener = function($depth)
	{
		var $depth = $depth ? $depth : 1;
		var $openedPopups = window.top.$_popupOpendedPopupsStack.length;
		
		for (var $x = 1; $x <= $depth; $x++){
			var $opener = window.top.$_popupOpendedPopupsStack[$openedPopups-$x].$opener;
			if ($opener){
				$opener.document.location.href = $opener.document.location.href;
			}
		}
	}
	
	this.resetOpener = function($field_to_left){
		
		var $tmp = $_popup.getOpener().document.location.href.split("?");
		if ($field_to_left){
			var $r = new RegExp($field_to_left+"[^&]+");
			$tmp[0] += "?"+$r.exec($tmp[1]);
		}
		$_popup.getOpener().document.location.href = $tmp[0];
	}	
	
	this.resubmitOpener = function()
	{
		$_popup.getOpener().document.location.reload();    
	}    
	
	//======================================================================================
	// <<< Private functions
	
	this.showIframe = function($iFrame, $hiddenMode){
		var $loader = window.top.document.getElementById("_popupLoader");
		$iFrame.setAttribute("isLoaded", 1);
		if ($loader){ // If loader dont exists - this is iframe refresh 
			if (! $hiddenMode){
				$iFrame.parentNode.style.left = $iFrame.parentNode.$realLeft;
			}
			$loader.parentNode.removeChild($loader);
			var $frame = window.top.window.frames[window.frames.length-1].window;
			try {
				if (!$frame.document.activeElement || $frame.document.activeElement.tagName == "BODY"){
					if ($frame.document.getElementsByTagName("input").length > 0){
						try {$frame.document.getElementsByTagName("input")[0].focus();}catch($e){}
					}
					$iFrame.onload = null;
				}
			} catch ($e) {
				$iFrame.onload = null;
			}
		}
		$_popup.loadingStop();
	}
	
	this.showLoading = function($counterName)
	{
		var $newDiv 		= window.top.document.createElement("DIV");
		$newDiv.id			= "_popupLoader";
		$newDiv.style.zIndex = 150;
		$newDiv.style.left 	= ((this.getScreenSize()[2] - 100)/2) + "px";
		$newDiv.style.top 	= ((this.getScreenSize()[3] - 220)/2) + "px";
		if ($counterName){
			window.setTimeout("$_popup._getCounter('"+$counterName+"')", 1000);
		} else {
		}
		$newDiv.innerHTML 	= 'Lādējam datus ...<br><img src="/imgCollector.php?_popup:loading.gif" border="0"/><div id="_popupCounterInfo"></div>';
		
		$newDiv.className 	= "_popupLoading";
		window.top.document.body.appendChild($newDiv);
	}
	
	/**
	* Poluchajem informaciju o prodvizhenii raboti skripta
	*  	Ne dodelano. Natknulasa na problemu s parallelnimi requestami pod Nginx i ostanovilsa poka
	*/
	this._getCounter = function($counterName)
	{
		var $url 		= document.location.href.split("/")[2].split(":")[0];
		var $wrapper	= document.location.href.split("/")[0];
		// XMLHttpRequest ne mozhet idti na drugoj port, poetomu script
		var $script = document.createElement("SCRIPT");
		$script.src = $wrapper+"//"+$url+":81/dgv/screens/_popup/rpc.getCounter.php?counterName="+($counterName);
		document.body.appendChild($script);
	}
	
	this.disableWindow = function()
	{
		var $newDiv = window.top.window.document.createElement("DIV");
		$newDiv.id 	= "_popupWindowDisabler";
		$newDiv.style.width  = this.getScreenSize()[0];
		$newDiv.style.height = (this.getScreenSize()[3]+20)+"px";
		window.top.document.body.appendChild($newDiv);
	}
	this.enableWindow = function()
	{
		var $disabler = window.top.document.getElementById("_popupWindowDisabler");
		if ($disabler){
			$disabler.parentNode.removeChild($disabler);
		}
	}
	

	this.getPopupSize = function($x, $size)
	{
		if (($size+"").match(new RegExp("%", "gi"))){ // Esli ukazan procent to 
			var $size = (this.getScreenSize()[$x] / 100 * $size.replace("%", "")) - 20; 
		} else {
			var $size = this.getScreenSize()[$x] < $size + 20 ? this.getScreenSize()[$x] - 20 : $size;
		}
		return $size;
	}
		
	this.getScreenSize = function()
	{
		var $x = Math.max(window.top.document.body.scrollWidth, window.top.document.getElementById("_popupSizer").offsetLeft);
		var $y = Math.max(window.top.document.body.scrollHeight, window.top.document.getElementById("_popupSizer").offsetTop);
		return new Array($x+"px", $y+"px", $x, $y);
	}
	
	//======================================================================================
	// <<< Header
	
	this.header = function($headerText)
	{
		var $closeButton 	= this.getOpener() ? '<i onclick="$_popup.close()"></i>' : '';
		var $moveEvent 		= this.getOpener() ? 'onmousedown="$_popup.headerMove(this)"' : '';
		
		document.write('<div class="_popupHeader" '+$moveEvent+'>'+$closeButton+''+$headerText+'</div>');
		window.document.onkeydown = $_popup.catchKey;
	}
	
	this.$escPressed = 0;
	this.catchKey = function($event){
		$event = $event ? $event : window.event;
		if ($event.keyCode == 27){
			if ($_popup.$escPressed){
				$_popup.close();
			} else {
				window.setTimeout("$_popup.clearEsc()", 500);
				$_popup.$escPressed = 1;
			}
		}
	}
	this.clearEsc = function(){
		$_popup.$escPressed = 0;
	}
	
	this.headerMove = function($header){
		window.document.onmouseup 			= $_popup.headerMoveStop;
		window.document.onmousemove 		= $_popup.headerMoveCatch;
		
		// Strahujemsa ot gljuka jesli vijdem na window.top pri move mousa
		window.top.window.document.onmousemove = $_popup.headerMoveCatch;
		window.top.window.document.onmouseup	= $_popup.headerMoveStop;
	}
	
	this.headerMoveStop = function(){
		
		window.document.onmousemove 			= null;
		window.top.window.document.onmousemove 	= null;
		window.top.$startMousePosition 			= null;
	}
	
	this.headerMoveCatch = function($event){
		if ($event){
			$rootWindow = window == window.top ? 1 : 0;
		} else {
			if (window.event){
				$rootWindow = 0;
				$event = window.event;
			} else {
				$rootWindow = 1;
				$event = window.top.window.event;
			}
		}
		$window = window.top;
		if (!window.top.$startMousePosition || window.top.$startMousePosition == 0){
			window.top.$startMousePosition = $_popup._get_global_mouse_position($event, $_popup.getPopup());
			window.top.$startFramePosition = new Array($_popup.getPopup().offsetLeft, $_popup.getPopup().offsetTop);
		}
		
		var $mousePosition = $_popup._get_global_mouse_position($event, $_popup.getPopup(), $rootWindow);
		$_popup.getPopup().style.left = (window.top.$startFramePosition[0]  + ($mousePosition[0]-window.top.$startMousePosition[0]))+"px";
		$_popup.getPopup().style.top = (window.top.$startFramePosition[1]  + ($mousePosition[1]-window.top.$startMousePosition[1]))+"px";
		return false;
	}
	

	this._get_global_mouse_position = function($event, $popup, $isRootWindow){
		if ($event.pageX || $event.pageY)	{
			posx = $event.pageX;
			posy = $event.pageY;
		} else if ($event.clientX || $event.clientY) {
			posx = $event.clientX;
			posy = $event.clientY;
		}
		if ($popup && !$isRootWindow){
			posx += $popup.offsetLeft;
			posy += $popup.offsetTop;
		}
		return new Array(posx, posy);
	}	
	
	this.resize = function($width, $height){
		var $screenSize = this.getScreenSize();
		
		// Ogranichivajem popup razmerom okna
		if (($width+"").match(new RegExp("%", "gi"))){
			$width = ($screenSize[2] / 100 * $width.replace("%", "")) - 20; // Esli ukazan procent to 
		} else {
			$width = $screenSize[2] < $width + 20 ? $screenSize[2] - 20 : $width;		
		}
		if (($height+"").match(new RegExp("%", "gi"))){
			$height = ($screenSize[3] / 100 * $height.replace("%", "")) - 20; // Esli ukazan procent to 
		} else {
			$height = $screenSize[3] < $height + 20 ? $screenSize[3] - 20 : $height;
		}

		// Objazatelno nuzhen timeout, tak kak inache iframe mozhet jeshe ne bitj zagruzhennim, tak kak onload iz window vizovetsa ranshe
		window.setTimeout("$_popup.setSize("+$width+", "+$height+", "+(($screenSize[2] - $width)/2)+", "+(($screenSize[3] - $height)/2)+")", "10");
	}
	
	this.setSize = function($iWidth, $iHeight, $pWidth, $pHeight){
		var $popup = $_popup.getPopup();
		var $iframe = $popup.firstChild;
		if (!$iframe.getAttribute("isLoaded")){
			window.setTimeout("$_popup.setSize("+$iWidth+", "+$iHeight+", "+$pWidth+", "+$pHeight+")", "10");
			return;
		}
	
		$popup.style.left = $pWidth + "px";
		$popup.style.top =  $pHeight + "px";
		
		$iframe.style.width = $iWidth+"px";
		$iframe.style.height = $iHeight+"px";
	}
	
	this.callJsInOpener = function($function_name, $arguments){
		eval("$_popup.getOpener()."+$function_name+"("+$arguments+")");
	}

	//--------------------------------------------------------------------------------------
	// <<< Pokazivajet zagruzku
	
	this.loadingStart = function($text)
	{
		var $iFrameLeft = $_popup.getPopup().style.left;
		var $iFrameTop = $_popup.getPopup().style.top;
		var $iFrameWidth = $_popup.getPopup().clientWidth;
		var $iFrameHeight = $_popup.getPopup().clientHeight;
		
		var $_popupLoadingDiv 	= window.top.window.document.createElement("DIV");
		$_popupLoadingDiv.id 	= "_popupLoadingDiv";
		
		$_popupLoadingDiv.style.position 		= "absolute";
		$_popupLoadingDiv.style.backgroundColor = "#ffffff";
		$_popupLoadingDiv.style.width 			= $iFrameWidth+"px";
		$_popupLoadingDiv.style.height 			= $iFrameHeight+"px";
		$_popupLoadingDiv.style.left 			= $iFrameLeft;
		$_popupLoadingDiv.style.top 			= $iFrameTop;
		$_popupLoadingDiv.style.zIndex 			= 110;
		
		$_popupLoadingDiv.innerHTML = '<div style="color:red; background:#c6d9fe; position:absolute; top:0px; left:0px; width:'+$iFrameWidth+'px; height:'+$iFrameHeight+'px; opacity:0.50; filter:alpha(opacity=50)"></div><div style="position:absolute; top:40%;text-align:center;left:40%; border:1px solid #6392ce; padding:10px; background:#ffffff; white-space:nowrap"><img src="/_skin/images/loading.gif" border="0" /><br>'+$text+'<br><i></i></div>';
		
		window.top.window.document.body.appendChild($_popupLoadingDiv);
		
		$_popup.loadingStopInterval = window.setTimeout("$_popup.loadingShowStop()", 20000);
		
	}
	
	this.loadingShowStop = function(){
		try {
			var $_popupLoadingDiv = window.top.window.document.getElementById("_popupLoadingDiv");
			$_popupLoadingDiv.getElementsByTagName("i")[0].innerHTML = '<input type="button" style="margin:10px 0px" class="button-small" name="" value="Stop action" onclick="$_popup.loadingStop()"/>';
		} catch ($e){}
	}
	
	this.loadingStop = function()
	{
		try {
			var $_popupLoadingDiv = window.top.window.document.getElementById("_popupLoadingDiv");
			$_popupLoadingDiv.parentNode.removeChild($_popupLoadingDiv);
		} catch ($e){}
	}
	
}
$_popup = new _popup();

/********************************************************************************************/
/** Included: /dgv.shared/_sections/universe/view/_sections_universe.js **/
/********************************************************************************************/

function _sections_universe() {

	this.$last_opened = 0;
	
	this.submenu = function($x, $menu){
		$_sections_universe.stop_hiding();
		$_sections_universe.hide_top_submenu();
		try {
			document.getElementById("s-"+$x).style.display = "block";
			$_sections_universe.$last_opened = $x;
			$menu.onmouseout = $_sections_universe.start_hiding;
		} catch ($e) {}
	}
	
	
	this.hide_top_submenu = function(){
		if (document.getElementById("s-"+$_sections_universe.$last_opened)){
			document.getElementById("s-"+$_sections_universe.$last_opened).style.display = "none";
		}
	}

	this.start_hiding = function(){
		window.$timeout = window.setTimeout("$_sections_universe.hide_top_submenu()", 100);
	}

	this.stop_hiding = function() {
		if (window.$timeout){
			window.clearTimeout(window.$timeout);
			window.$timeout = '';
		}
	}
}

$_sections_universe = new _sections_universe();
/********************************************************************************************/
/** Included: /dgv.shared/_table/view/_table.js **/
/********************************************************************************************/

//<script>

function _table($tableName) {
	
	this.$tableName = '';
	
	if (!window.$_table){ // Dobavljajem chtobi bilo lehche obrashatsa k tablice
		window.$_table = new Array();
	}
	window.$_table.push(this);	
	
	//======================================================================================
	
	/**
	*	Inicializacija tablici. Rasstavljajem events na Rows Tablici
	*/
	this.inits = function($objTable, $tableName){
		
		$objTable.onmousemove = null;
		
		this.$tableName 		  = $tableName;
		$objTable.onmousemove 	  = null;
		$objTable.$_tableJsObject = this; 
		
		if (!this.$callOnRowClick){
			alert("window.callOnRowClick() is not defined and $table.$callOnRowClick is not defined.\nAdd window.callOnRowClick() or use $table->do->setJsFunctionOnclick");
		}
		
		var $rows 		= $objTable.rows;
		var $counter 	= $rows.length;
		
		// $x = 1 , tak kak header ne nuznno trogarj
		for ($x=1; $x < $counter; $x++) {
			$rows[$x].onmouseover 	= this.onMouseIn;
			$rows[$x].onmouseout 	= this.ouMouseGone;
			if (this.$callOnRowClick){
				$rows[$x].onclick 		= this.$callOnRowClick;
				$rows[$x].onmousedown 	= this.markRow;
				$rows[$x].$tableId 		=  $objTable.id;
				$rows[$x].$id 			=  $rows[$x].id.replace("item-","");
			}
		}
	}
	
	this.$lastClicked = 0;
	this.markRow = function(){
		
		/**
		* I vse taki eto ubral. Tak kak poluchil comment chto bilo udobnee kogda pokazivalisj vse kliknutije
		* 
		if ($_table.$lastClicked){
			$_table.$lastClicked.className = $_table.$lastClicked.getAttribute("lastClass");
		}
		*/
		this.className = this.className.replace("onMouseIn", "");
		this.setAttribute("lastClass", this.className);
		this.className = "_tableMarked";
		$_table.$lastClicked = this;
	}
	
	this._initSorter = function($tableName){
		// Forma kotoraja submititsa pri Smene pravil sortirovki
		var $newF1 			= document.createElement("FORM");
		$newF1.id 			= "_table-sort-form"+$tableName;
		$newF1.name 		= "_table-sort-form"+$tableName;
		$newF1.method 		= "POST";
		$newF1.innerHTML 	= '<input type="hidden" value="" name="_sorter_field" id="_sorter_field'+$tableName+'">';
		$newF1.innerHTML 	+= '<input type="hidden" value="'+$tableName+'" name="_sorter_name">';
		$newF1.innerHTML 	+= '<input type="hidden" value="" name="_sorter_direction" id="_sorter_direction'+$tableName+'">';
		document.body.appendChild($newF1);
	}
	

	this.onMouseIn = function(){
		this.style.cursor = "pointer"
		if (!this.className.match(RegExp("table-", "")) && !this.className.match(RegExp("_table", ""))){
			this.className = "onMouseIn";
		}
	}
	
	this.ouMouseGone = function($null, $tr){
		if (!$tr){
			$tr = this;
		}
		if ($tr.className == "onMouseIn"){
			$tr.className = "";
		}
	}
	
	this.getChecked = function($chkName){
		if (!$chkName || $chkName == "undefined"){
			$chkName = "chk[]";
		}
		var $inputs = document.getElementsByTagName("INPUT");
		var $counter = $inputs.length;
		var $ischecked = new Array();
		for ($x = 0; $x < $counter; $x ++){
			if ($inputs[$x].checked && $inputs[$x].name == $chkName){
				$ischecked.push($inputs[$x].value);
			}
		}
		return $ischecked;
	}
	
	this.make_sort = function($field, $direction, $tableName){
		this._initSorter($tableName);
		document.getElementById("_sorter_field"+$tableName).value = $field;
		document.getElementById("_sorter_direction"+$tableName).value = $direction;
		document.getElementById("_table-sort-form"+$tableName).submit();
		
	}
	
	this.show_menu = function($object){
		var $table = ($object.parentNode.nextSibling.tagName == "TABLE") ? $object.parentNode.nextSibling : $object.parentNode.nextSibling.nextSibling;
		if (document.getElementById("table-corner-menu")){
			window.clearTimeout($table.$hide_interval);
			return;
		}
		var $newDiv = document.createElement("DIV");
		$newDiv.innerHTML = '<img src="/imgCollector.php?_table:print.gif" border="0" onclick="window.$_table_'+$table.id+'.print_table(this)"  title="Drukāt tabulu"/>'+
							'<img src="/imgCollector.php?_table:excel.gif" border="0" style="margin-left:3px" onclick="window.$_table_'+$table.id+'.excel_table(this, 0)" title="Eksportēt lapu EXCEL"/>'+
							'<img src="/imgCollector.php?_table:excel.gif" border="0" style="margin-left:3px" onclick="window.$_table_'+$table.id+'.excel_table(this, 1)" title="Eksportēt visu tabulu uz EXCEL"/>';
		$newDiv.id 				= "_table-actions"
		$newDiv.style.cursor 	= "pointer";
		$newDiv.style.padding 	= "3px";
		$newDiv.style.width 	= "60px"
		$newDiv.style.position 	= "absolute"
		$newDiv.style.marginTop = "-22px";
		eval("$newDiv.onmousemove = function(){if(window.$_table_"+$table.id+".$hide_interval != undefined){clearTimeout(window.$_table_"+$table.id+".$hide_interval);}}");
		eval("$newDiv.onmouseout = function(){window.$_table_"+$table.id+".$hide_interval = setTimeout('window.$_table_"+$table.id+".hide_menu()', 1000);}");
		$object.parentNode.insertBefore($newDiv, $object.parentNode.firstChild);
	}
	
	this.hide_menu = function(){
		if (this.$hide_interval){
			window.clearTimeout(this.$hide_interval);
		}
		if (document.getElementById("_table-actions")){
			document.getElementById("_table-actions").parentNode.removeChild(document.getElementById("_table-actions"));
		}		
	}
	
	this.print_table = function($img){
		var $p = $img.parentNode.parentNode;
		window.$_tableLastPrinted = ($p.nextSibling.tagName == "TABLE") ? $p.nextSibling : $p.nextSibling.nextSibling;
		window.open('/dgv/screens/_table/print_table.php', '', 'width=700,height=500,scrollbars=yes,resizable=yes');
	}	
	
	this.excel_table = function($img, $mode){
		if (document.getElementById("_tableExcelFrame")){
			document.getElementById("_tableExcelFrame").parentNode.removeChild(document.getElementById("_tableExcelFrame"));
		}
		var $p  = $img.parentNode.parentNode;
		var $f 	= document.createElement("IFRAME");
		
		window.$_tableLastPrinted = ($p.nextSibling.tagName == "TABLE") ? $p.nextSibling : $p.nextSibling.nextSibling;
		
		$f.id = "_tableExcelFrame";
		var $prefix = document.location.href.match("[?]") ? "&" : "?";  
		var $addon = $mode ? "&_paginatorNoPageLimit=1" : '';
		$f.src = document.location.href+$prefix+"_tableExcelExport="+window.$_tableLastPrinted.id+$addon;
		$f.style.display = "none"
		document.body.appendChild($f);
	}	
	
	//======================================================================================
	//======================================================================================
	//======================================================================================
	
	//======================================================================================
	
	this.$table_to_scroll 		= null;
	this.$header_OBJ 			= null;
	this.$left_OBJ 				= null;
	this.$table_start_height 	= null;
	this.$table_start_width 	= null;
	this.$header_rows_count		= 0;
	this.$left_rows_count		= 0;
	this.$offset_from_top		= 0;
	
	//--------------------------------------------------------------------------------------
	/** Iniciirujem scrolling **/
	
		this.set_scrolling = function($table, $object, $top_rows, $left_rows, $offset_from_top){

			this.$table_to_scroll 		= document.getElementById($table);
			this.$header_rows_count 	= $top_rows;
			this.$left_rows_count 		= $left_rows;
			
			if ($offset_from_top){
				this.$offset_from_top = $offset_from_top;
			}
			
			if (!this.$table_to_scroll){
				alert("Object with this ID not found ["+$table+"]");
			} else {
				if (this.$table_to_scroll.tagName != "TABLE"){
					alert("Object with this ID is not TABLE ["+$table+"]");
				}
			}
			
			if (!$object){
				$object = window;
				window.onload = this.test;
			}
			$object.onscroll = this.scroll_table;
		}
	
		this.scroll_table = function(){
			if (!$table.$header_OBJ){
				$table.init_scroll_header();
			}
			
			if (document.documentElement.scrollTop*1 > $table.$table_start_height){
				$table.$header_OBJ.style.display = "";
				$table.$header_OBJ.style.left = (document.documentElement.scrollLeft*-1 + $table.$table_start_width*1)+"px";
			} else {
				$table.$header_OBJ.style.display = "none";
			}
			
			if ($table.$left_OBJ){
				if (document.documentElement.scrollLeft*1 > $table.$table_start_width){
					$table.$left_OBJ.style.display = "";
					$table.$left_OBJ.style.top = (document.documentElement.scrollTop*-1 + $table.$table_start_height*1)+"px";
				} else {
					$table.$left_OBJ.style.display = "none";
				}
			}
			
			
		}
	
	
	//--------------------------------------------------------------------------------------
	/** Generim Tablicu s headerom **/
	
	
	this.test = function(){
		$table.init_scroll_header();
	}
	
	this.init_scroll_header = function(){
		
		if ($table.$table_to_scroll.clientWidth == 0){ // Zhdem poka table zagruzicca polnostju i sozdajem shapku
			window.setTimeout("$table.init_scroll_header()", 500);
			return;
		}
		
		var $originalTablePosition = $gtk.position($table.$table_to_scroll);
		$table.$table_start_height  = $originalTablePosition[1];
		$table.$table_start_width  = $originalTablePosition[0];
		
		$style = "none";
		if ($table.$header_OBJ){
			$style = $table.$header_OBJ.style.display;
			$table.$header_OBJ.parentNode.removeChild($table.$header_OBJ);
		}
		
		$table.$header_OBJ = document.createElement("TABLE");
		
		document.body.insertBefore($table.$header_OBJ, document.body.firstChild);
		
		//$table.$header_OBJ.style.tableLayout	= "fixed";
		
		$table.$header_OBJ.style.position 	= "fixed";
		$table.$header_OBJ.className 		= $table.$table_to_scroll.className;
		$table.$header_OBJ.style.width 		= $table.$table_to_scroll.clientWidth + "px";
		$table.$header_OBJ.style.top 		= (this.$offset_from_top)+"px";
		$table.$header_OBJ.style.left 		= ($originalTablePosition[0])+"px";

		for(var $y = 0 ; $y < $table.$header_rows_count * 1; $y++){
			$table._clone_row($table.$table_to_scroll, $table.$header_OBJ, $y);
		}
		
		$table.$header_OBJ.style.display = $style;
		
		//======================================================================================
		
		if ($table.$left_rows_count){
			
			$table.$left_OBJ = document.createElement("TABLE");
			document.body.insertBefore($table.$left_OBJ, document.body.firstChild);
			
			$table.$left_OBJ.style.height = $table.$table_to_scroll.clientHeight + "px";
			
			$table.$left_OBJ.style.position 	= "fixed";
			$table.$left_OBJ.className 			= $table.$table_to_scroll.className;
			$table.$left_OBJ.style.width 		= $table.$table_to_scroll.rows[0].cells[0].clientWidth + "px";
			$table.$left_OBJ.style.top 			= ($originalTablePosition[1])+"px";
			$table.$left_OBJ.style.left 		= (0)+"px";
			
			$table._clone_column($table.$table_to_scroll, $table.$left_OBJ, 0);
			
			$table.$left_OBJ.rows[0].style.visibility = "hidden"
			$table.$left_OBJ.rows[1].style.visibility = "hidden"
			$table.$left_OBJ.rows[2].style.visibility = "hidden"
			
			$table.$left_OBJ.rows[0].cells[0].className = "";
			$table.$left_OBJ.rows[1].cells[0].className = "";
			$table.$left_OBJ.rows[2].cells[0].className = "";
			
			$table.$left_OBJ.style.display = "none";
			
		}
		
		
		
	}	
	
	this._clone_row = function($src, $target, $row){
		
		$newTR = $target.insertRow(-1);
		
		$items = $src.rows[$row].cells.length;
		
		for(var $x=0;$x<$items;$x++){
			
			$newTD = document.createElement("TH");
			$newTR.appendChild($newTD);

			
			$newTD.colSpan 				= $src.rows[$row].cells[$x].colSpan;
			$newTD.rowSpan 				= $src.rows[$row].cells[$x].rowSpan;
			$newTD.style.color 			= $src.rows[$row].cells[$x].style.color;
			$newTD.className			= $src.rows[$row].cells[$x].className;
			
			$newTD.style.padding		= "0px"
			$newTD.style.paddingLeft 	= "0px";
			$newTD.style.paddingRight 	= "0px";
			$newTD.style.paddingTop 	= "0px";
			$newTD.style.paddingBottom 	= "0px";
			$newTD.style.width 			= $src.rows[$row].cells[$x].clientWidth+"px";
			
			$newTD.style.height 		= $src.rows[$row].cells[$x].clientHeight+"px";
			$newTD.style.display 		= $src.rows[$row].cells[$x].style.display;
			if ($src.rows[$row].cells[$x].style.borderLeft){
				$newTD.style.borderLeft 	= $src.rows[$row].cells[$x].style.borderLeft;
			} 
			if ($src.rows[$row].cells[$x].style.borderRight){
				$newTD.style.borderRigth 	= $src.rows[$row].cells[$x].style.borderRight;
			}
			if ($src.rows[$row].cells[$x].style.border){
				$newTD.style.border 		= $src.rows[$row].cells[$x].style.border;
			}
			$newTD.onclick 				= $src.rows[$row].cells[$x].onclick;
			$newTD.innerHTML 			= $src.rows[$row].cells[$x].innerHTML;
			
		}
		
		
	}	
	
	this._clone_column = function($src, $target, $column){
		
		var $items = $src.rows.length;
		
		for(var $x=0;$x < $items;$x++){
			
			$newTR = $target.insertRow(-1);
			$newTD = $newTR.insertCell(0);

			
			$newTD.colSpan 				= $src.rows[$x].cells[$column].colSpan;
			$newTD.style.color 			= $src.rows[$x].cells[$column].style.color;
			$newTD.className			= $src.rows[$x].cells[$column].className;
			
			$newTD.style.paddingTop 	= "0px";
			$newTD.style.paddingBottom 	= "0px";
			$newTD.style.width 			= $src.rows[$x].cells[$column].clientWidth+"px";
			
			$newTD.style.height 		= $src.rows[$x].cells[$column].clientHeight+"px";
			$newTD.style.display 		= $src.rows[$x].cells[$column].style.display;
			if ($src.rows[$x].cells[$column].style.borderLeft){
				$newTD.style.borderLeft 	= $src.rows[$x].cells[$column].style.borderLeft;
			} 
			if ($src.rows[$x].cells[$column].style.borderRight){
				$newTD.style.borderRigth 	= $src.rows[$x].cells[$column].style.borderRight;
			}
			if ($src.rows[$x].cells[$column].style.border){
				$newTD.style.border 		= $src.rows[$x].cells[$column].style.border;
			}
			$newTD.onclick 		= $src.rows[$x].cells[$column].onclick;
			$newTD.innerHTML	= $src.rows[$x].cells[$column].innerHTML;
			
		}
		
		
	}	

	this.check_all = function($object, $title){
		var $table = $object.parentNode.parentNode.parentNode;
		var $obj = $table.getElementsByTagName("INPUT");
		$counter = $obj.length;
		for ($x=0; $x < $counter; $x++) {
			if ($obj[$x].name == ($title ? $title : "chk") + "[]"){
			$obj[$x].checked =  $object.checked;
			}
		}
		if(this.callbackAfterCheckAll){
			this.callbackAfterCheckAll($object, $title);
		}
	}
	this.callbackAfterCheckAll = null;

}


function _tableUtils() {

	/**
	* Delajem refresh stroke.
	* 
	* @param integer $DGVObjectRealID -> ID objekta
	* @param string  $DGVObjectName = DGVobjectName
	* @param string  $DGVviewTableFunction = funkcija vo View otvechajushaja za pokaz tablici
	* @param string  $tableID 	= Esli ne ukazano - idet pervaja tablica u kotoroj attribut generator="_table" 
	* @param string  $rowID 	= <tr id="xxxxx"> esli ne ukazano - idet "item-"+$DGVObjectRealID
	* @param string  $windows 	= js kod dlja poiska Windows gde iskatj tablici. Po umolchaniju - $_popup.getOpener();
	*/
	this.refreshRow = function($DGVObjectRealID, $DGVObjectName, $DGVviewTableFunction, $tableID, $rowID, $windows, $uniqueFieldName){
		var $script = document.createElement("SCRIPT");
		var $rpc = "/dgv/rpc.php?_table:refreshRow.php";
		$rpc += "&DGVObjectRealID="			+ $DGVObjectRealID;
		$rpc += "&DGVObjectName="			+ $DGVObjectName;
		$rpc += "&DGVviewTableFunction="	+ $DGVviewTableFunction;
		$rpc += "&tableID="					+ ($tableID ? $tableID : '');
		$rpc += "&rowID="					+ ($rowID ? $rowID : '');
		$rpc += "&windows="					+ ($windows ? $windows : '');
		$rpc += "&uidField="				+ ($uniqueFieldName ? $uniqueFieldName : 'id');

		$script.src = $rpc;
		document.body.appendChild($script);		
	}
	
	this.check_all = function($checkbox, $title){
		var $table = $checkbox.parentNode.parentNode.parentNode;
		var $obj = $table.getElementsByTagName("INPUT");
		$counter = $obj.length;
		for ($x=0; $x < $counter; $x++) {
			if ($obj[$x].name == ($title ? $title : "chk") + "[]"){
			$obj[$x].checked =  $checkbox.checked;
			}
		}
		if(this.callbackAfterCheckAll){
			this.callbackAfterCheckAll($checkbox, $title);
		}
	}	
}

$_tableUtils = new _tableUtils();

/********************************************************************************************/
/** Included: /dgv.shared/_tree/view/_tree.js **/
/********************************************************************************************/

//<script>

function _tree(){

	this.collapse = function($u){
		var $img = $u.firstChild;
		var $id = $img.id.replace("_treek-", "");
		// Ishem imenno sdedi chaildov , tak kak mozhet bitj mnogo derevjev na 1 html page
		var $containers = $u.parentNode.parentNode.getElementsByTagName("DIV");
		$counter = $containers.length; 
		for ($x=0; $x < $counter; $x++) {
			if ($containers[$x].id == "_treec-"+$id){
				$container = $containers[$x]
				break;
			}
		}
		
		if ($container.style.display == "none"){
			$container.style.display = "";
			$img.src = $img.src.replace("Closed", "Opened");
			$img.nextSibling.src = $img.nextSibling.src.replace("Closed", "Opened");
			this.updateCookie($id, "_treeOpenedCats", "add");
		} else {
			$container.style.display = "none";
			$img.src = $img.src.replace("Opened", "Closed");
			$img.nextSibling.src = $img.nextSibling.src.replace("Opened", "Closed");
			this.updateCookie($id, "_treeOpenedCats", "remove");
		}
		this.$stopBubbling = 1;
	}
	
	this.onOver = function($object){
		$object.$oldClassName = $object.className;
		$object.className += ' _treeOvered';
		$object.onmouseout = this.onOut;
		$object.$id = $object.id.replace("_treecat-", "");
		if (!this.onClick){
			if (!window.$alertSubmitted){
				alert('$_tree.onClick = function($objectCategory) is not defined"');
			}
			window.$alertSubmitted = 1;
		} else {
			$object.onclick = this._preOnClick;
		}
	}

	this.$lastClicked = 0;
	this.markRow = function(cat){

		if ($_tree.$lastClicked){
			$_tree.$lastClicked.className = $_tree.$lastClicked.getAttribute("lastClass");
		}
		cat.className = cat.className.replace("_treeOvered", "");
		cat.setAttribute("lastClass", cat.className);
		cat.className = "_treeMarked";
		$_tree.$lastClicked = cat;
	}


	this.onOut = function(){
		this.className = this.className.replace("_treeOvered", "");
	}
	
	this._preOnClick = function(){
		if ($_tree.$stopBubbling){
			$_tree.$stopBubbling = 0;
			return;
		}
		$_tree.markRow(this);
		$_tree.onClick(this);
	}
	
	//======================================================================================
	
	this.updateCookie = function($value, $cookie_name, $mode) {
		var $cook = this.getCookie($cookie_name);
		$cook = $cook.replace(":"+$value+":", "");
		if ($mode == "add"){
			$cook += ":"+$value+":";
		}
		document.cookie = $cookie_name+"="+$cook+";path="+escape("/");
	}
	
	this.getCookie = function(sName) {
		var aCookie = document.cookie.split("; ");
		for (var i=0; i < aCookie.length; i++){
			var aCrumb = aCookie[i].split("=");
			if (sName == aCrumb[0])
			return unescape(aCrumb[1]);
		}
		return '';
	}	
	
}

$_tree = new _tree();
/********************************************************************************************/
/** Included: /dgv.shared/_url/view/_url.js.php **/
/********************************************************************************************/

function _url() {

	this.rpc = function($url, $debug, $noCheckConnection){
		if (window.$_urlRpcElement && ! $noCheckConnection){
			window.document.body.removeChild(window.$_urlRpcElement);
		}
		window.$_urlRpcElement = window.document.createElement("SCRIPT");
		window.$_urlRpcElement.src = $url;
		if ($debug){
			alert(window.$_urlRpcElement.src);
		}
		window.document.body.appendChild(window.$_urlRpcElement);
		
	}

}
$_url = new _url();

