/** 
 * kernel.js - core javascript code based on framework
 * Copyright (c) 2008 CREATIVE ZONE Studio (http://www.cz-site.com/)
 */



$.errors.debug = false;



var flashload = function( url )
{
    Kernel.Content.load(url);
}




if (top.Kernel == undefined)
 {
(function() { 

/**
 *  Kernel
 */



	(function(){
		$.ajaxSetup({type:"POST"});
		var $$ = Kernel = top.Kernel = {
			isloading    : false,
			isInitUnits  : false,
			arrUnits     : [],
			onload : function () {
				Kernel.Config.init($$.init);
				
$("body").append("<div class='overlay'><img src='media/zakaz.png'  /></div>");
$("body").append("<div class='overlay_activation'><img src='media/activation.png'  /></div>");


			},
			init : function () {
				$("#loading").ajaxStart(function(){

				// add loading



					$(".overlay").animate({opacity: "0.5"}, 2000);
                                        $(".overlay_activation").animate({opacity: "0.5"}, 2000);


					$$.isloading = true;
					//$().addModal("#loading",{css:{"background-color":"#222", opacity:"0.2"}});
					$(this).show();
					$("#lay_content").animate({opacity: 0.3},350);
					
					
                    Kernel.Basket.del(-1, true);
                    Kernel.Basket.del(-2, true);
                    Kernel.Basket.del(-3, true);
                    Kernel.Basket.del(-4, true);
                    
					
					//$("#lay_content").css({opacity: 0.4});
				}).ajaxStop(function(){
					$$.isloading = false;
					//$().removeModal();					
					$(this).hide();
					$("#lay_content").show().animate({opacity: 1.0},350);
				}).css({position:"fixed"});
				$.extend($.Modal.options, {css:{"background-color":"#222", cursor: "wait", opacity:"0.5"}});
				for (var i=0; i<$$.arrUnits.length; i++) {
					var func = $$.arrUnits[i].init;
					if (func) func();					
				}
				$$.isInitUnits = true;
				$$.addHandlers();
				$$.onAfterInit();
				$("#lay_site").show();
				
				  
			},
			addUnit : function (ref) {
				$$.arrUnits.push(ref);
			},
			delUnit : function (ref) {
				for (var i=0; i<$$.arrUnits.length; i++) {
					if (ref == $$.arrUnits[i]) {
						$$.arrUnits.splice(i, 1);
						break;
					}
				}
			},
			onAfterInit : function () {
				// for override
			},
			addHandlers : function (id) {
				if (!id) id = "body";
				//$(id+" h1").Sifr({font:"AvantGardeBkBT"});
				//$(id+" .hover *").msiefixOpacity();
				$(id+" img").msiefixPNG();
				
				$(id+" .btn").hover(function(){$(this).addClass("btnover");},function(){$(this).removeClass("btnover");}).click(function(){this.blur();});
				$(id+" .btnaddmore").hover(function(){$(this).addClass("btnover");},function(){$(this).removeClass("btnover");}).click(function(){this.blur();});
				
				$(id+" .fld").focus(function(){$(this).addClass("fldfocus");}).blur(function(){$(this).removeClass("fldfocus");});
				if (Kernel.Config.isAjax) {
					$(id+" a.menulink").click(function()
					
					{							
						this.blur();
						Kernel.Content.load(this.pathname);
						return false;
					});
				}
				$(id+" input.menulink").click(function(){
					this.blur();
					var url = $(this).attr("href");
					if (Kernel.Config.isAjax) {
						Kernel.Content.load(url);
					} else {
						window.location = url;
					}
					return false;
				});
				$(id+" a.popuplink").click(function(){
					this.blur();
					var id = this.href;
					if (window.pageTracker) pageTracker._trackPageview(id); //Google Analytics
					var win = window.open(id,"");
					return false;
				});
				$(id+" .tooltiped").Tooltip({tipboxid:"#tooltip", shiftx:-25, shifty:15, cursor: false,
					onshow : function(_t){
						return !Kernel.isloading;
					},
					onmove : function(_t){
						$("#tooltip .bg").setClass("bg bg_pos_"+_t.tx+""+_t.ty);
						$("#tooltip .message").setClass("message message_pos_"+_t.tx+""+_t.ty);
					}
				});
				$(id+" a[href^=mailto]").each(function(){
					var arr, src, email="";
					if (this.href.indexOf("@")>1) return;
					arr = this.href.split(":")[1].split("..");
					if (arr.length!=2) return;
					src = arr[1].split(".");
					while (src.length>0) email += src.pop()+".";
					email = $.rtrim(email,"\.") + "@";
					src = arr[0].split(".");
					while (src.length>0) email += src.pop()+".";
					email = $.rtrim(email,"\.");
					this.href = "mailto:"+email;
				});
			}
		};
	})();




/**
 *  Kernel.Config
 */
	(function() { 
		var $$ = Kernel.Config = {
			langid       : "ru",
			langs        : ["ru"],
			isAjax       : true,
			isHijax      : true,
			isFlash      : false,
			init : function (onInit) {
				$$.isFlash = $.Flash.skipdetect || $.Flash.isValidVersion(8);
				if ($.browser.msie6 && $$.isFlash) $$.isHijax = false;
				if (top.jsProxy  && top.jsProxy.langid && top.jsProxy.langs) {
					$$._initLang(top.jsProxy.langid,top.jsProxy.langs);
					if (onInit) onInit();
				} else {
					var data = {action : "getlangid"};
					$.ajax({type:"POST", dataType:"html", data:data, url:"data.langs.php", complete:function(xml,status){
							var res = {error:"true", langid:$$.langid, langs:$$.langs};
							if (status=="success") res = $.parseJSON(xml.responseText, res);
							$$._initLang(res.langid, res.langs);
							if (onInit) onInit();
						}
					});
				}
			},			
			_initLang : function (langid,langs) {
				if (langs && langs.constructor == Array) $$.langs = langs;
				for (var i=0; i<$$.langs.length; i++) {	
					if ($$.langs[i] == langid) {
						$$.langid = langid;
						break;
					}
				}
				$.langs.set({langid:$$.langid, type:"php", php_url:"data.langs.php", path:"langs/"});
			},
			setLang : function (langid) {
				if ($$.langid == langid) return;
				for (var i=0; i<$$.langs.length; i++) {	
					if ($$.langs[i] == langid) {
						var data = {action : "setlangid", langid : langid};
						$.ajax({type:"POST", dataType:"html", data:data, url:"data.langs.php", complete:function(xml,status){
								if (status=="success") {
									$$.langid = langid;
									$.langs.set({langid:$$.langid});
									$(".langs>div").hide();
									$(".langs>div."+Kernel.Config.langid).show();
									for (var i=0; i<Kernel.arrUnits.length; i++) {
										var func = Kernel.arrUnits[i].setLang;
										if (func) func();					
									}
								}
							}
						});
						break;
					}
				}
			}
		};
	})();



/**
 *  Kernel.Header
 */
	(function() { 
		var $$ = Kernel.Header = {
			logoAppear : 1,
			init : function () {
				if (Kernel.Config.isFlash) {
					$("#lay_header .logo .html").hide();
					$$.putFlashLogo();
				} else {
					$("#lay_header .logo .html").css({opacity:0}).show().animate({opacity: 1.0},450);
				}
			},
			putFlashLogo : function () {
			
			if (Kernel.Config.isFlash) {
					$$.logoAppear = ($$.logoAppear+1) % 2;
					//$("#lay_header .logo").Flash({url:"/media/logo.swf",id:"logo_swf",width:"330px",height:"120px",transparent:true},{appear:$$.logoAppear+1,callback:"Kernel.Header.onClickLogo()"});
			$("#lay_header .logo").Flash({url:"/media/logos/"+document.logo,id:"logo_swf",width:"330px",height:"120px",transparent:true},{appear:$$.logoAppear+1,callback:"Kernel.Header.onClickLogo()"});
			
			}

			},
			onClickLogo : function () {
				Kernel.Content.load(Kernel.Content.getStart());
			},
			setLang      :  function () {
			}
		};
		Kernel.addUnit($$);
	})();



/**
 *  Kernel.HeaderMenu
 */
	(function(){
		var $$ = Kernel.HeaderMenu = {
			lay_id    : "#lay_header .menu .items",
			ref       : null,
			menu      : null,
			init : function () {
				$$.ref = $($$.lay_id)[0];
				$($$.ref).menu_Tmv1({
					xml_url      : "admin/menu_site.xml",
					xml_tagname  : "headermenu",
					name         : "headermenuitem",
					data_url     : "/admin/menu_site.xml",//"/data.menu.php",
					langid       : Kernel.Config.langid,
					prefix       : Kernel.Config.langid,
					showdir      : "width",
					onClickItem  : $$.onClickItem,
					activeId     : "", //$.browser.msie6 ? "" : Kernel.Content.getCurrent(),
					flashparam   : [{width:"140px",height:"46px",transparent:true},{width:"140px",height:"46px",transparent:true}],
					isIndent     : false,
					isFlash      : Kernel.Config.isFlash,
					isAutoHide   : false,
					isCutline    : true,
					onMake       : $$.onMake
				});
				$$.menu = $$.ref.menu_Tmv1;
			},
			onClickItem : function(id,md) {
				if (Kernel.Config.isAjax)
                                    {
                                    Kernel.Content.load(id);
                                    return false;
                                    }
				else return true;
			},
			setCurrItem : function(id) {
				$$.menu.setCurrItem(id);
			},
			closeAllItems : function () {
				$$.menu.closeAllItems();
			},
			onMake : function () {
				$$.menu.setCurrItem(Kernel.Content.getCurrent());
			},
			setLang : function() {
				$$.menu.make({langid:Kernel.Config.langid, prefix:Kernel.Config.langid});
			}			
		}
		Kernel.addUnit($$);
	})();


/**
 *  Kernel.MainMenu
 */
	(function(){
		var $$ = Kernel.MainMenu = {
			lay_id    : "#lay_menu",
			ref       : null,
			menu      : null,
			init : function () {


				$$.ref = $($$.lay_id)[0];
				$($$.ref).menu_Tmv1({
					xml_url      : "admin/menu_site.xml",
					xml_tagname  : "mainmenu",
					name         : "mainmenuitem",
					data_url     : "/admin/menu_site.xml",//"/data.menu.php",
					langid       : Kernel.Config.langid,
					prefix       : Kernel.Config.langid,
					onClickItem  : $$.onClickItem,
					minopenlevel : 2,
					cutlinelevel : 3,
					subsearch    : 3,
					activeId     : Kernel.Content.getCurrent(),
					isIndent     : true,
					isFlash      : false,
					isAutoHide   : false,
					isCutline    : true,
					onMake       : $$.onMake
				});
				$$.menu = $$.ref.menu_Tmv1;

				
			},
			onClickItem : function(id,md) {

				if (Kernel.Config.isAjax)
                                {

                                    Kernel.Content.load(id);
                                    return false;
                                }
				else return true;
			},
			setCurrItem : function(id) {
                   

				$$.menu.setCurrItem(id);
			},
			closeAllItems : function () {
				$$.menu.closeAllItems();
			},
			onMake : function () {
				$$.menu.setCurrItem(Kernel.Content.getCurrent());


			},
			setLang : function() {
				$$.menu.make({langid:Kernel.Config.langid, prefix:Kernel.Config.langid});
			}			
		}
		Kernel.addUnit($$);



	})();

	

/**
 *  Kernel.FooterMenu
 */

	(function(){
		var $$ = Kernel.FooterMenu = {
			lay_id    : "#lay_footer .menu .items",
			ref       : null,
			menu      : null,
			init : function () {
				$$.ref = $($$.lay_id)[0];
				$($$.ref).menu_Tmv1({
					xml_url      : "admin/menu_site.xml",
					xml_tagname  : "footermenu",
					name         : "footermenuitem",
					data_url     : "/admin/menu_site.xml",//"/data.menu.php",
					langid       : Kernel.Config.langid,
					prefix       : Kernel.Config.langid,
					showdir      : "width",
					onClickItem  : $$.onClickItem,
					subsearch    : 1,
					activeId     : Kernel.Content.getCurrent(),
					isIndent     : false,
					isFlash      : false,
					isAutoHide   : false,
					isCutline    : true,
					onMake       : $$.onMake
				});
				$$.menu = $$.ref.menu_Tmv1;
			},
			onClickItem : function(id,md) {
				if (Kernel.Config.isAjax)
                                    {
                                        Kernel.Content.load(id);
                                        return false;
                                    }
                                else return true;
			},
			setCurrItem : function(id) {
				$$.menu.setCurrItem(id);
			},
			closeAllItems : function () {
				$$.menu.closeAllItems();
			},
			onMake : function () {
				$$.menu.setCurrItem(Kernel.Content.getCurrent());
			},
			setLang : function() {
				$$.menu.make({langid:Kernel.Config.langid, prefix:Kernel.Config.langid});
			}			
		}
		Kernel.addUnit($$);
	})();

	
	
/**
 *  Kernel.Content
 */
	(function() { 
		var $$ = Kernel.Content = {
			lay_id      : "#lay_content",
			start       : "home",
			current     : "",
			isloading   : false,
			init : function() {
			
			//Kernel.Feature.load();
			
			
			
				if (Kernel.Config.isAjax) {
					$.Hijax.checkLocation();
					if (Kernel.Config.isHijax) {
						$.Hijax.init($$._load);
					} else {
						$$.load($.Hijax.getCurrent());
					}
				} else {
				
					$$._firstLoad($.Hijax.getLocation());
					
				}
			},
			getStart : function () {
				if (top.jsProxy  && top.jsProxy.homepage) $$.start = top.jsProxy.homepage;
				return Kernel.Config.langid+$.file.addStartSlash($$.start);
			},
			getCurrent : function () {
				var tmp = Kernel.Config.isAjax ? $.Hijax.getCurrent() : $.Hijax.getLocation();
				return tmp ? tmp : ($$.current ? $$.current : $$.getStart());
			},
			
			getmyLocation : function () {
			
			return $.Hijax.getCurrent();
			},
			load : function (id, async) {

                              

                                   
				if (Kernel.Content.isloading) return;
				if (!id) id = $$.getStart();
				id = $.file.delStartSlash(id);
				if (!$.file.isFile(id)) id = $.file.addEndSlash(id);
				if (Kernel.Config.isHijax) {
				
					$.Hijax.load(id, async);


					
				} else {
                                    
					$$._load(id, async);
				}
				
				thisID = id;

				//Kernel.Feature.load();
				
						$.ajax({dataType:"html" ,url:"goodsleader.php", complete:function(xml,status)
                                               {
                                                    if (status=="success")
                                                        document.getElementById("cont_goods_goodsleader").innerHTML=xml.responseText;
                                                }
						});		
			
			},
                        comment_load: function(path)
                        {
                        Kernel.Content.load(path, 'false');
                        var myheight = document.getElementById('goodtitle').offsetHeight + document.getElementById('gooddesc').offsetHeight;
                        window.scrollTo(0, myheight+200);
                        return false;                        
                        },
                        video_show: function(path)
                        {
                        Kernel.Content.load(path, 'false');
                        var myheight = document.getElementById('goodtitle').offsetHeight + document.getElementById('gooddesc').offsetHeight;
                        window.scrollTo(0, myheight-180);return false;window.scrollTo(0, myheight+200);
                        return false;
                        },
			_load : function (id, async) {

			async = (async == "false")?false:true;

				if (Kernel.Content.isloading) return;
				if (!id) id = $$.getStart();
				if (window.pageTracker) pageTracker._trackPageview(id); //Google Analytics
				if ($$.current=="" && id==$$.getStart()) {
					$$._firstLoad(id);
					return;
				}
				$$.current = id;
				var data = {forajax : "true", content : id};
				var url = $.file.addStartSlash(id);
				if (!$.file.isFile(id)) url = $.file.addEndSlash(id);
				Kernel.Content.isloading = true;
				$$.onLoad(id);
				$.ajax({type: "POST", async:async, dataType: "html", data: data, url: url, complete:function(xml,status){
						Kernel.Content.isloading = false;
						
						
						if (status=="success") {
							//$($$.lay_id).css({opacity:0}).show();
							$$.scrollTop();
							$($$.lay_id).html(xml.responseText);
							$$.parse_tags(xml.responseText);
							Kernel.addHandlers($$.lay_id);
						} else {
							$($$.lay_id).html($.langs.str("Loading Error!", "Loading Error!"));
						}
						$$.onAfterLoad(id);
					}
				});
			},
			_firstLoad : function (id) {
				$($$.lay_id).css({opacity:0}).show().animate({opacity: 1.0},450);
				$$.current = id;
				Kernel.addHandlers($$.lay_id);
				$$.onAfterLoad(id);
				
			},
			parse_tags : function (cont) {
				var tag_0 = '<tag_title>';
				var tag_1 = '<\\/tag_title>';
				var re = new RegExp("(.*"+tag_0+")(.*)("+tag_1+".*)");
				var matches = re.exec(cont);
				if (matches && matches[2]) window.document.title = matches[2];
			},
			onLoad : function (id) {
				// for override
			},
			onAfterLoad : function () {
				// for override
			},
			scrollTop: function (v) {
				$(window).scrollTop(v || 0);
			},
			setLang : function () {
				var arr = $.file.delBoundSlash($$.getCurrent()).split("/");
				arr.shift();
				var newid = "/"+Kernel.Config.langid+"/"+arr.join("/");
				if (!$.file.isFile(newid)) newid = $.file.addEndSlash(newid);
				$$.load(newid);
			}
		};
		Kernel.addUnit($$);
	})();
	
	
/**
 *  Kernel.Feature
 */
	(function() { 
		var $$ = Kernel.Feature = {
			init : function () {
				$$.load();
			},
			load : function () {
				var data = {};
				
				var url;
				
				
				if ( thisID == ""  )
				url	= url	= "data.feature.php?furl="+ Kernel.Content.getCurrent();//Kernel.Content.getCurrent();
				else
				url	= "data.feature.php?furl="+thisID;//Kernel.Content.getCurrent();
				
				
				$.ajax({type: "POST", dataType: "html", data:data, url:url, complete:function(xml,status){
					
					if (status=="success") {
							$("#lay_feature").animate({opacity: 0.0},400, function(){
								$("#lay_feature").html(xml.responseText);
								$("#lay_feature").animate({opacity: 1.0},400);
								Kernel.addHandlers("#lay_feature");
							});
						} else {
							$("#lay_feature").html($.langs.str("<#en#>Loading Error!<#ru#>Loading Error!", "Loading Error!"));
						}
					}
				
				});
			
			},
			setLang : function () {
				$$.load();
			}
		};
		//Kernel.addUnit($$);
	})();


	
/**
 *  Kernel.Viewer
 */
	(function() { 
		var $$ = Kernel.Viewer = {
			isopen     : false,
			arrimg     : [],
			index      : 0,
			isfullsize : false,
			isloading  : false,
			init : function () {
				$("#viewer a.btn_full").click(function(e){this.blur();$$.fullsize();return false;});
				$("#viewer a.btn_close").click(function(e){this.blur();$$.close();return false;});
				$("#viewer a.btn_next").click(function(e){this.blur();$$.next();return false;});
				$("#viewer a.btn_prev").click(function(e){this.blur();$$.prev();return false;});
				//$("#viewer a.btn_save").click(function(e){this.blur(); $$.save(); return false;});
				$("#viewer .scroll").mousemove($$.scrollImage);
			},
			setImages : function (imgs) {
				$$.arrimg = imgs.split(";");
			},
			open : function (index) {
				if (index==null) index = 0;
				$$.isfullsize = false;
				$("#viewer .place").empty();
				
				
				switch ($.file.getExt($$.arrimg[index])) {
					case "html" :
						var win = window.open($$.arrimg[index],"","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1");
						return;
					case "swf" :
						var data = {action: "getswfsize", filename:$$.arrimg[index]};
						var url = "data.viewer.php";
						$.ajax({type: "POST", dataType: "html", data: data, url: url, complete:function(xml,status){
								if (status=="success") {
									try { 
										var data = eval("("+xml.responseText+")");
										if (!data.error) {
											var win = window.open("","","width="+(data.width+60)+",height="+(data.height+60)+",toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0");
											s = '<head><title>CREATIVE ZONE Studio - popup</title></head>';
											s += '<body onerror="return true" style="background-color:#171717; margin:0px; padding:10px;">';
											s += '<div style="border:#fff 10px solid; background-color:#183967; padding:10px">';
											s += $.Flash.getHTML({url:$.file.addStartSlash($$.arrimg[index]), id:"myid",width:data.width,height:data.height,bgcolor:"222222"});
											s += '</div>';
											s += "</body>";
											win.document.write(s);
										}
									} catch(e) { }
								} else { }
							}
						});
						return;
					case "flv" :
						$("a.btn_full, a.btn_next, a.btn_prev", "#viewer").hide();
						break;
					case "jpg" :
					case "gif" :
					case "png" :
					
						$("a.btn_full", "#viewer").show();
						$$.arrimg.length==1 ? 
							$("a.btn_next, a.btn_prev", "#viewer").hide() : 
							$("a.btn_next, a.btn_prev", "#viewer").show();
						$("#viewer .place").append($.create("img"));
						$("#viewer .place img").load(function(e){
							$("#viewer .imgwrap").scrollLeft(0).scrollTop(0);
							$$.setLoading(false);
						});
						break;
				}
				$().addModal("#viewer");
				$$.index = index;
				$$.showImage($$.index);
				$$.isopen = true;
				$(document).bind("keydown",$$.onKeyDown);
			},
			close : function () {
				$().removeModal();
				$("#viewer .place").empty();
				$$.isopen = false;
				$(document).unbind("keydown",$$.onKeyDown);
			},
			onKeyDown : function (e) {
				if ($$.isopen) {
					if (e.keyCode == 27) $$.close();
					if (e.keyCode == 37) $$.prev();
					if (e.keyCode == 39) $$.next();
					if (e.keyCode == 32) $$.fullsize();
				}
				return false;
			},
			showImage : function (index) {
				index = index==undefined ? $$.index : index;
				switch ($.file.getExt($$.arrimg[index])) {
					case "html" :
					case "swf" :
						break;
					case "flv" :
						$("#viewer .place").Flash({url:"/media/videoPlayer.swf",id:"videoPlayer",width:"520px",height:"440px",bgcolor:"000000", expressinstall:false}, {filename:$.file.addStartSlash($$.arrimg[index])});
						break;
					case "jpg" :
					
					case "png" :
						var param = "action=" + ($$.isfullsize ? "full" : "preview");
						param += "&width="+$("#viewer .imgwrap").width();
						param += "&height="+$("#viewer .imgwrap").height();
						param += "&image="+escape($$.arrimg[index]);
						$$.setLoading(true);
						//$("#viewer .place").html("<img src='data.viewer.php?"+param+"' />");
						$("#viewer .imgwrap img").attr("src", "data.viewer.php?"+param);
						break;
					case "gif" :
					 param = "action=" + ($$.isfullsize ? "full" : "preview");
						param += "&width="+$("#viewer .imgwrap").width();
						param += "&height="+$("#viewer .imgwrap").height();
						param += "&image="+escape($$.arrimg[index]);
						$$.setLoading(true);
						
						$("#viewer .imgwrap img").attr("src", $$.arrimg[index]);
					break;
				}
			},
			next : function () {
				if ($("#viewer a.btn_next").is(":visible")) {
					$$.index++;
					if ($$.index>=$$.arrimg.length) $$.index = 0;
					$$.showImage($$.index);
				}
			},
			prev : function () {
				if ($("#viewer a.btn_prev").is(":visible")) {
					$$.index--;
					if ($$.index<0) $$.index = $$.arrimg.length-1;
					$$.showImage($$.index);
				}
			},
			fullsize : function () {
				if ($("#viewer a.btn_full").is(":visible")) {
					if ($$.isfullsize) {
						$("#viewer .imgwrap").css({overflow: "hidden"});
					} else {
						$("#viewer .imgwrap").css({overflow: "auto"});
					}
					$$.isfullsize = !$$.isfullsize;
				$$.showImage();
				}
			},
			save : function() {
				// todo !!!
				var param = "action=" + ($$.isfullsize ? "full" : "preview");
				param += "&width="+$("#viewer .imgwrap").width();
				param += "&height="+$("#viewer .imgwrap").height();
				param += "&image="+escape($$.arrimg[$$.index]);
				var win = window.open("data.viewer.php?"+param,"","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1");
				s = '<head><title>popup</title></head>';
				s += '<body onerror="return true" style="background-color:#171717; margin:0px; padding:10px;">';
				s += '<img src="data.viewer.php?'+param+'">';
				s += "</body>";
				//win.document.write(s);
			},
			scrollImage : function (e) {
				if (!$$.isfullsize || $$.isloading) return;
				var x = e.pageX - $("#viewer .scroll").offset().left;
				var y = e.pageY - $("#viewer .scroll").offset().top;
				var sw = $("#viewer .scroll").width();
				var sh = $("#viewer .scroll").height();
				var iw = $("#viewer .imgwrap img").width();
				var ih = $("#viewer .imgwrap img").height();
				$("#viewer .imgwrap").scrollLeft((x/sw)*(iw-sw+30)).scrollTop((y/sh)*(ih-sh+30));
			},
			setLoading : function(flag) {
				if (flag) {
					$("#viewer .imgwrap img").css({opacity: 0.4});
					$("#viewer .loading").show();
				} else {
					$("#viewer .loading").hide();
					$("#viewer .imgwrap img").css({opacity: 1});
				}
				$$.isloading = flag;
			},
			setLang : function () {
			}
		};
		Kernel.addUnit($$);
	})();
	
	

/**
 *  Kernel.Basket
 *  format: data = {[id:2,price:10.00,quant:3],[id:1,price:12.99,quant:1], ...}
 */
	(function() { 
		var $$ = Kernel.Basket = {

                        delivPrice:0,
			cookie    : "eshop_basket",
			lay_quant : ".eshop_basket_quantity",
			lay_summa : ".eshop_basket_summa",
			init : function () {
				$.interrupt.add("Kernel.addHandlers", function(id){
					$(id+" .eshop_basket_add").click(function(e){
						
						
						this.blur();
						if (Kernel.isloading) return false;
						var md = $(this).metaData("attr","data");

						$$.add(md.id, md.price);
						
						
						
						return false;
					});
					$(id+" .eshop_basket_del").click(function(e){
						this.blur();
						if (Kernel.isloading) return false;
						var md = $(this).metaData("attr","data");
						$$.del(md.id);
						
					
						
						return false;
					});
				});
				Kernel.addHandlers(Kernel.Content.lay_id);
				$$.printInfo();
			},
			add : function (id,price) {


				var i, data = $$._getData();
                                   
				if ((i = $$._getIndex(id,data))!=null) {
					var thisgoods = parseInt(jQuery("#goods_in_shop_"+id).html());           
						
					 var basketGoods = parseInt(data[i].quant);

	                 	if (basketGoods < thisgoods )
					  
					data[i].quant++;
					
					
					  basketGoods = parseInt(data[i].quant);
	                 
	                 	if (basketGoods >= thisgoods )
							$("#add_in_eshop_basket_btn_"+id).animate({opacity: 0.0},300, function(){$(this).hide();});
				
					
					
                                    
				} else {
                                    
					data.push({id:id,price:price,quant:1});
					 thisgoods = parseInt($("#goods_in_shop_"+id).html());
					
					if(thisgoods == 1)
						$("#add_in_eshop_basket_btn_"+id).animate({opacity: 0.0},300, function(){$(this).hide();});
					
					
				}
                                
				$$._setData(data);
                                
				$(".eshop_basket_in_"+id+", .eshop_basket_del_"+id).css({opacity: 0}).show().animate({opacity: 1.0},300);

                            try{
                                $("div.transfer").remove();
                                var transfer = $("<div class='transfer'></div>");

                                var a_basket = $("a.basket");
                                var a_btn  = $("#add_in_eshop_basket_btn_"+id.toString());

                                transfer.css({top: a_btn.offset().top, left : a_btn.offset().left});
                                $("body").append(transfer);
                                transfer.animate({
                                top: a_basket.offset().top,
                                left: a_basket.offset().left,
                                width: a_basket.width()+70,
                                height: a_basket.height()+20
				}, 2*a_btn.offset().top ).animate({
				width: 0,
				height: 0,
				top: a_basket.offset().top+15,
				left: a_basket.offset().left+180
				},400).animate({
                                borderWidth:0},100);
                        }
                catch(e){}

                                $$.printInfo();
			},
			del : function (id,isall) {
				
				
				var i, data = $$._getData();
				if ((i = $$._getIndex(id,data))!=null) {
                                    
                                
					if (!isall && data[i].quant>1) {

						data[i].quant--;
                        
						var basketGoods = parseInt(data[i].quant);
		                 
	                    var thisgoods = parseInt(jQuery("#goods_in_shop_"+id).html());           
						if (basketGoods < thisgoods )
							$("#add_in_eshop_basket_btn_"+id).css({opacity: 0}).show().animate({opacity: 1.0},300);
							
                                               
					} else {
						data.splice(i,1);
						$(".eshop_basket_in_"+id+", .eshop_basket_del_"+id).animate({opacity: 0.0},300, function(){$(this).hide();});
						
						
						$("#add_in_eshop_basket_btn_"+id).css({opacity: 0}).show().animate({opacity: 1.0},300);
						
                         }
 
				     
					
				}
				
				
                                
				$$._setData(data);
				$$.printInfo();
			},
			set : function (id,quant) {
				var i, data = $$._getData();

                                
				if ((i = $$._getIndex(id,data))!=null) {

					;
					data[i].quant = quant;
					
					
				} 
				$$._setData(data);
				$$.printInfo();
			},
			clear : function () {
				$$._setData([]);
				$$.printInfo();
			},
			printInfo : function (data) {
				data = data || $$._getData();
				var quant = 0, summa = 0;

				for (var i=0; i<data.length; i++) {

                                    if(data[i].id != -1 ) // if delivery
					quant += data[i].quant;
					summa += data[i].quant * data[i].price;
				}
				$($$.lay_quant).text(quant);
				$($$.lay_summa).text(summa.toFixed(2));

			},
			_getData : function() {
				var data = $.parseJSON($.Cookies.get($$.cookie), [ ] );
				return data;
			},	
			_setData : function(data) {
				// var s = "'"+$.toJSON(data)+"'"; // todo - format kill
				var s = "[";
				for (var i=0; i<data.length; i++) {
					s += "{id:"+data[i].id+",price:"+data[i].price+",quant:"+data[i].quant+"},";
				}
				s = $.rtrim(s,",");
				s += "]";
				$.Cookies.set($$.cookie,s);
			},
			_getIndex : function(id, data) {
				for (var i=0; i<data.length; i++) {
					if (data[i].id == id) return i;
				}
				return null;
			},
			initContent : function () {
				var f = $("#form_eshop_basket")[0];
                                



				$.langs.load({module:"FormValid", path:"framework/langs/"});
				
				
				$("input.quant", f).keydown(function(e){
					if (Kernel.isloading) return false;
					var md = $(this).metaData("class");
					if (e.keyCode == 27) {
						$(e.target).val(md.quant);
						
						return false;
					}
					
					if ((e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105) || e.keyCode==8 || e.keyCode==46 || e.keyCode==37 || e.keyCode==39 || e.keyCode==9 ) {
						setTimeout(function(){
							
							var goods = parseInt(md.goods);//parseInt(jQuery("#goods_in_shop_"+md.id).html());
							//alert($(e.target).val());

                                                 

							if( parseInt($(e.target).val()) > goods) {
								$(e.target).val(goods);
							
							
							}
                                                       
							
							var val = $(e.target).val();
							if (val == 0 || isNaN(val)) $(e.target).val(1);
							else if (val > 100) $(e.target).val(goods);
                                                        //else $(e.target).val();
							$$.calcContent();
                                                       
						}, 50);
						return true;
					}
					return false;
				});
				
				// for battery edit
				$("input.quant_bat").keydown(function(e){

                                    
					if (Kernel.isloading) return false;
					
					if ((e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105) || e.keyCode==8 || e.keyCode==46 || e.keyCode==37 || e.keyCode==39 || e.keyCode==9 )
					{
						setTimeout(function(){
							
							
							
							var val = $(e.target).val();
							
							if (val == 0 || isNaN(val)) $(e.target).val(1);
							if (val > 100) $(e.target).val(100);
							 val = $(e.target).val();
							$$.set(-4,val);
							$$.calcContent();
						}, 50);

                                        return true;
					} else 
					return false;
				});

				// for battery edit
				$("input.batteryOn").click(function(e){
					
					Kernel.Basket.del(-4, true);
					if(this.checked == true)
					{
						Kernel.Basket.add(-4,10);
						
						$("#battery_input").css('display','inline');
						
					}
					else $("#battery_input").css('display','none');
					
					
					
				});
				
				
				
				$("input.quant", f).blur(function(e){
					setTimeout(function(){
						var md = $(e.target).metaData("class");
						var goods = parseInt(md.goods);//parseInt(jQuery("#goods_in_shop_"+md.id).html());
						
						if( $(e.target).val() > goods) $(e.target).val(goods);
						
						
						
						var val = $(e.target).val();
						if (val == 0 || isNaN(val)) $(e.target).val(1);
						if (val > 100) $(e.target).val(100);
						 md = $(e.target).metaData("class");
						$$.set(md.id,$(e.target).val());
						$$.calcContent();
					}, 50);
					return false;
				});

                                $("input.quant_bat").blur(function(e){
					setTimeout(function(){
						
						var goods = 100;//parseInt(jQuery("#goods_in_shop_"+md.id).html());

						if( $(e.target).val() > goods) $(e.target).val(goods);



						var val = $(e.target).val();
						if (val == 0 || isNaN(val)) $(e.target).val(1);
						if (val > 100) $(e.target).val(100);
						 md = $(e.target).metaData("class");
						$$.set(md.id,$(e.target).val());
						$$.calcContent();
					}, 50);
					return false;
				});
				
				$("input.eshop_basket_remove", f).click(function(e){
					if (Kernel.isloading) return false;
					var md = $(this).metaData("class");
					$$.del(md.id, true);
					Kernel.Content.load(Kernel.Content.getCurrent());
					return false;
				});
				
				
				
				$("input.btnClearAll", f).click(function(e){
					if (Kernel.isloading) return false;
					$$.clear();
					Kernel.Content.load(Kernel.Content.getCurrent());
					return false;
				});
				
				
				$("#form_eshop_buy").FormValid({onsubmit:function(){
						if (Kernel.isloading) return false;
						var f = this;
                                                
						var lay_status = "#eshop_basket_send";
						$(".success, .error",lay_status).hide();
						$(lay_status).hide();
						var data = $(f).serializeArray();
						data[data.length] ={name: "forajax", value: "true"};
						var url = $.file.addStartSlash($.URL.delHost($(f).attr("action")));
						if (window.pageTracker) pageTracker._trackPageview($.file.parentFolder(url)+"send/zapros.html"); //Google Analytics
						$.ajax({dataType:"html", data:data, url:url, complete:function(xml,status){
								var res = {error:"true"};
								if (status=="success") res = $.parseJSON(xml.responseText, res);
                                                              

								if (res.error=="false") 
								{
								
								
								
                                   $("#delivery_data").slideUp("fast");
                                   $(" .success, .success_check").hide();

                                   if ($("#delivery3").attr("checked"))
                                	   $(lay_status+" .success_check").show();
                                   else $(lay_status+" .success").show();
                                                                    
								   f.reset();

                                   $(".overlay img").msiefixPNG();
                                   $(".overlay").top = 400;
                                   $(".overlay").height($(document).height()).show();
									
									setTimeout( function(){$(".overlay").hide()},6000);
									
								} 
								else 
								{
									$(lay_status+" .error").show();
									
								}

                                try
                                {
                                	Kernel.Content.scrollTop();
                                	$("#delivery1, #delivery2, #delivery3").attr("checked",false);
                                	$("#address").val("Донецкая");
                                	$('#date').datepicker('enable');
                                	$("#date_text").html("Желаемая дата самовывоза:");
                                	$("#time_text").html('Время самовывоза:');
                                }
                                catch(e){};
                                                                
                                                                
								$(lay_status).css({opacity:0}).show().animate({opacity: 1.0},450);
							}
						});
						return false;
				}});
				$$.calcContent();
			},				
			calcContent : function () {
				var f = $("#form_eshop_basket")[0];
				var total = 0;
				$("input.quant",f).each(function(){
					var md = $(this).metaData("class");
					var id = md.id;
					var price = Number(md.price);
					var quant = Number($(this).val());
					var summa = price * quant;
					$(".summa_"+id,f).html(summa.toFixed(2));
					total += summa;
				});
				$(".total",f).html(total.toFixed(2));
			},				
			setLang : function () {
			}
		};
		Kernel.addUnit($$);
	})();
	

	
/**
 *  Initialize
 */

	$.interrupt.add("Kernel.onAfterInit", function(){
		$("#loading, #loading *, #tooltip *, #viewer *, #complaint_link *").msiefixPNG().msiefixFixed();
		$.interrupt.add("Kernel.MainMenu.onClickItem, Kernel.HeaderMenu.onClickItem, Kernel.FooterMenu.onClickItem", function(){
			if ($$.isloading) $.interrupt.stop();
		});
		$.interrupt.add("Kernel.Content.onLoad", function(id){
			Kernel.Header.putFlashLogo();
			Kernel.MainMenu.setCurrItem(id);
			Kernel.HeaderMenu.setCurrItem(id);
			Kernel.FooterMenu.setCurrItem(id);
	
			
		});
	});


	$(function() {
		Kernel.onload();
	});

})();
}
Kernel = top.Kernel;

Kernel.show_order = function()
{
                                   $(".overlay img").msiefixPNG();
                                   $(".overlay").top = 400;
                                   $(".overlay").height($(document).height()).show();

									setTimeout( function(){$(".overlay").hide()},6000);

}


$("body").append("<div style='position:absolute;' id='alldialogs'></div>");