Ext.onReady(function() {

  var runner = new Ext.util.TaskRunner();
//  runner.start(actBlink);
  if(Ext.fly('podarki')){
    runner.start(actRaspr);
  }

  if(Ext.isGecko){
  	window.addEventListener("scroll", onScrollBody, false);
  }else{
  	window.onscroll = onScrollBody;
  }


  checkAD();
});


var actBlink = {
    run: function(){
       Ext.fly('actm').toggleClass('aBlink');
    },
    interval: 500 // every 30 seconds
};

var actRaspr = {
    state: -10,
    run: function(){
       if(!Ext.fly('podarki')) return;
	   var setItems = Ext.fly('podarki').select('div').elements;
	   if(!setItems) return;


	   this.state++;
	   switch(this.state){
	   case 0:
		Ext.get(setItems[0]).frame("aaccee");
		break;
	   case 10:
		Ext.get(setItems[1]).frame("aaccee");
		break;
	   case 20:
		Ext.get(setItems[2]).frame("aaccee");
		break;
	   case 30:
		Ext.get(setItems[3]).frame("aaccee");
		break;

	   case 40:
		Ext.get(setItems[2]).frame("aaccee");
		break;
	   case 50:
		Ext.get(setItems[1]).frame("aaccee");
		break;

	   case 60:
		this.state = -1;
		break;
	   }
    },
    interval: 100 // every 30 seconds
};

function closeADSale(){
//  cupon = Ext.get('coupon-id').dom.innerHTML;
  alert('Пожалуйста, запомните номер вашего купона :\n\n\t\t\t\t'+Ext.cupon+'\n\n');
 
  Ext.Ajax.request({
    url: '/scripts/positic-ajax-kernel.php',
    method: 'GET',
    params: { action: 'cupon', cupon: Ext.cupon },
    success: function(r){
        adMessage = Ext.fly('salewin');
        adMessage.slideOut('b', {
      	    easing: 'easeOut',
      	    duration: 1,
      		callback : function(){
      			document.location.href="/";
      		}

      	});

    }
  });  			

}

function randomNumber (m,n)
{
  m = parseInt(m);
  n = parseInt(n);
  return Math.floor( Math.random() * (n - m + 1) ) + m;
}

function showADSale(){
//  var b = Ext.getBody();
//  cupon = (randomNumber(1000, 9999) + "")+"7";
  adMessage = Ext.get('salewin');
//  cID = Ext.get('coupon-id');
  if(!adMessage) return;
//  cID.dom.innerHTML = cupon;
  adMessage.setX((Ext.lib.Dom.getViewWidth()/2 - (adMessage.getWidth()?adMessage.getWidth():650)/2));
  adMessage.setY((Ext.lib.Dom.getViewHeight()/2 - (adMessage.getHeight()?adMessage.getHeight():350)/2));
  adMessage.slideIn('t', {
	    easing: 'easeOut',
	    duration: 1
	});
}

function checkAD(){
  var p = getURLParams();
  if(!p) return;

  if(p.utm_medium){
    showADSale();
  }
}

function getURLParams(){
	par = document.location.search.replace("\?","");
	if(par){
		par = Ext.urlDecode(par);
		if(par){
			return(par)
		}
	}
}




/* ------------------------------------ FLASH -------------------------------------------*/
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
function ControlVersion()
{
	var version;
	var axo;
	var e;
	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}
	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			
			// default to the first public version
			version = "WIN 6,0,21,0";
			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";
			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}
	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}
	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}
	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}
// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}
// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];
        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}
function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}
function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '';
  if (isIE && isWin && !isOpera)
  {
    str += '<object ';
    for (var i in objAttrs)
    {
      str += i + '="' + objAttrs[i] + '" ';
    }
    str += '>';
    for (var i in params)
    {
      str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    }
    str += '</object>';
  }
  else
  {
    str += '<embed ';
    for (var i in embedAttrs)
    {
      str += i + '="' + embedAttrs[i] + '" ';
    }
    str += '> </embed>';
  }
  return str;
}
function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  return AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  return AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    
    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblclick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
      case "id":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}

function writeBL(fileName, width, height, id){
  return('<div id="div-'+id+'">'+AC_FL_RunContent(
		'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
		'width', width,
		'height', height,
		'src', fileName,
		'quality', 'high',
		'pluginspage', 'http://www.adobe.com/go/getflashplayer',
//		'align', 'middle',
		'play', 'true',
		'loop', 'true',
		'scale', 'showall',
		'wmode', 'window',
		'devicefont', 'false',
		'id', id,
		'wmode', 'transparent',
		'bgcolor', '#FFFFFF',
		'name', id,
		'menu', 'true',
		'allowFullScreen', 'false',
		'allowScriptAccess','sameDomain',
		'movie', fileName,
		'salign', ''
		) //end AC code
		+'</div>'
	);
//  fl1
}


/* ------------------------------------ FLASH -------------------------------------------*/


var doing = false;

function doMenu(id, classSuff, classDiv, idTabs, anim, sender){

  if(doing) return;
  doing = true;
  anim = anim?anim:'t';
  classDiv = classDiv?classDiv:'tab';
  idTabs = idTabs?idTabs:'tabs';
  
  if(sender){
    var li = Ext.fly(sender).up('li');
    li.radioClass('ref-sel-class');
  }
  
  Ext.fly('tabs').select('div.'+classDiv).each(function(item){
    item.slideOut('b', {useDisplay: true});
  });

  classSuff = classSuff?classSuff:'tab-';
  currentMenuTab = Ext.fly(classSuff+id);
  if(currentMenuTab){
    currentMenuTab.slideIn(anim,
			    {
			    	useDisplay: true,
						callback : function(){
							doing = false;
						}
			});
  }
  
}

function doSForm(){
  Ext.Ajax.request({
    url: '/scripts/positic-ajax-kernel.php',
    method: 'POST',
    params: { action: 'form-menu',
    				flname: document.getElementById('flname').value,
    				flphone: document.getElementById('flphone').value,
    				fladdress: document.getElementById('fladdress').value,
    				flmessage: document.getElementById('flmessage').value
    				},
    success: function(r){
        adMessage = Ext.select('table.rform');
        adMessage.slideOut('b', {
      	    easing: 'easeOut',
      	    useDisplay: true,
      	    duration: 1,
      		callback : function(){
      				Ext.select('div.moduletable-menu-form').insertHtml('beforeEnd', r.responseText);
      		}

      	});
    }
  });  		
}


function onScrollBody(e){
    var st = 0;
    if(Ext.isGecko){
      st = window.scrollY;
    }else{
      st = document.body.scrollTop;
    }
    if(Ext.isIE){
        st = document.body.parentNode.scrollTop;
    }
    
      if(gr = Ext.get("grad")){
	sl = Ext.get("scrolllogo");
        if(st>3){
		gr.addClass("dograd");
		sl.addClass("show");
	}else{
		gr.removeClass("dograd");
		sl.removeClass("show");
	}
      }
}




function clickMenu2(senderID){
      		var calc = Ext.get("tabsPanel");
      		var menu = Ext.get("tabsItem");
            doRadioForDiv(menu, senderID);
            doRadioForDiv(calc, senderID+"-data");
			
			if(senderID == 'comments'){
//                Ext.get(senderID+"-data").mask('Загрузка...', 'x-mask-loading');		  		
                
                
                Ext.Ajax.request({
                    url: '/scripts/comments.php',
                    scope: this,
                    params: {id: (typeof articleID != 'undefined'?articleID:0), action: 'getcomments'},
                    success: function(response, options, c){
                        var div = Ext.get(senderID+"-data");
                        div.update(response.responseText);
                    }
                });
                
            }
			
			
		}

function doRadioForDiv(div, idselect){
		  if(!div) return;
			div.select('div').each(function(item, id, all){
				var ti = Ext.get(item);
				ti.removeClass('sel');
/*				ti.select('object').each(function(item, id, all){
				  Ext.get(item).removeClass('sel2');
				});*/
	    });
	    var ti = Ext.get(idselect);
	    ti.addClass('sel');
/*			ti.select('object').each(function(item, id, all){
			  Ext.get(item).addClass('sel2');
			});*/

		}



function postComment(){


  if(!Ext.fly("commentAuthor").dom.value){
    alert("Пожалуйста, введите свое имя.");
    return;
  }
  if(!Ext.fly("commentText").dom.value){
    alert("Пожалуйста, введите текст отзыва.");
    return;
  }
  if(Ext.fly("commentCap").dom.value!="н"){
    alert("Подсказка: наша компания называется - ОкНа Саламандер :-)");
    return;
  }

  Ext.Ajax.request({
    url: '/scripts/comments.php',
    success: function(r){
        //var tab = Ext.get("comments-data");
        //tab.update();
        alert("Ваш комментарий отправлен и будет опубликован после небольшой проверки. Спасибо!");
        clickMenu2('comments');
    },
    params: {
    	action: 'postcomment',
    	id: (typeof articleID != 'undefined'?articleID:0),
    	author: Ext.fly("commentAuthor").dom.value,
    	text: Ext.fly("commentText").dom.value,
    	url: document.location.href,
    	title: document.title
    }
  }); 
  return false;
}


