function dechex(number) {
    // Returns a string containing a hexadecimal representation of the given number  
    // 
    // version: 810.1317
    // discuss at: http://phpjs.org/functions/dechex
    // +   original by: Philippe Baumann
    // +   bugfixed by: Onno Marsman
    // *     example 1: dechex(10);
    // *     returns 1: 'a'
    // *     example 2: dechex(47);
    // *     returns 2: '2f'
    
    return parseInt(number).toString(16);
}



function uniqid() {
    // Generates a unique ID  
    // 
    // version: 903.2222
    // discuss at: http://phpjs.org/functions/uniqid
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // -    depends on: dechex
    // %        note 1: Uses an internal counter (in php_js global) to avoid collision
    // %        note 2: Not perfect yet. We need to checkout the PHP source
    // %        note 2: to find out how they generate this exactly
    // %        note 2: but for now we have a uniqid that generates unique numbers
    // %        note 2: similar to PHP's uniqid
    // *     example 1: uniqid(); // delays for 2 seconds
    // *     returns 1: '49c6ad2705df7'
    
    if (!this.php_js) {
        this.php_js = {};
    }
    
    if (!this.php_js['uniqid']) {
        var date = new Date;
        this.php_js['uniqid'] = date.getTime()/1000;
    }

    this.php_js['uniqid']++;

	return dechex(this.php_js['uniqid'])+dechex('10243256');
}


function $(id){
	return document.getElementById(id);
}
	
function faqSwitch(o){
	var oP = o.parentNode.parentNode;
	oP.className = (oP.className == "expanded") ? "collapsed" : "expanded"
	o.blur();	
}	

function faqSwitchGroup(o){
	var oP = o.parentNode.parentNode;
	var status = (oP.className == "expanded") ? "collapsed" : "expanded";
	oP.className = status;
	var oList = oP.getElementsByTagName("LI");
	for(var i=0; i<oList.length; i++){
		oList[i].className = status;
	}
	o.blur();	
}	

	
function inxGoodsSwitch(o,k){
	var oP = o.parentNode.parentNode;
	var olinks = oP.getElementsByTagName("A");
	for(var i=0; i<olinks.length; i++){
		olinks[i].className = "";
	}
	o.className = "act";
	o.blur();	
	changeDemoArea(k);
}		
	
function changeDemoArea(k){
	for(var i=1;;i++){
		var o = $("demoArea"+i);
		if($("demoArea"+i)){
			o.style.display="none";		
		}
		else break;
	}
	$("demoArea"+k).style.display="block";
	scrollerCollection["SCRL_container"+k].init();	
}

var photoGallery = {
	cImgIndex: 1,
	
	showImg: function(n,imgSrc,imgSrcLarge,desc,counter,total){
		var oList = $("idPhotoGalleryList").getElementsByTagName("LI");
		oList[this.cImgIndex-1].className = "";
		this.cImgIndex = n;
		oList[n-1].className = "cur";		
		var regExpFileName = /[^\/]+$/ig;
		var oImg = $("idPhotoGalleryBigImg"); 
		oImg.src = imgSrc;
		var oA = $("idPhotoGalleryBigA");
		oA.setAttribute("onclick", "photoGallery.showPopup({id:'idPopupPhoto',w:'776',imgsrc:'"+imgSrcLarge+"',alt_text:'"+desc+"',counter:'"+counter+"',total:'"+total+"'});return false");
		oA.onclick = function() {photoGallery.showPopup({id:'idPopupPhoto',w:'776',imgsrc:''+imgSrcLarge,alt_text:''+desc,counter:''+counter,total:''+total});return false};
		document.getElementById("idPhotoGalleryDesc").innerHTML = desc;
	}
	,
	showPopup: function(params){
		var popupPhoto = $("idPhotoGalleryPopupImg");
		popupPhoto.src = params.imgsrc;
		popup.show(params);
		document.getElementById("idPopupsDescr").innerHTML=params.alt_text;
		document.getElementById("idPopupsCounter").innerHTML="Фотография "+params.counter+" из "+params.total;
	},
	showNextImg: function(){
		var oList = $("idPhotoGalleryList").getElementsByTagName("A");
		var cur = ((this.cImgIndex+1)%oList.length);
		if(cur==0) cur=oList.length;
		oList[cur-1].onclick();
	}
	,
	showPrevImg: function(){
		var oList = $("idPhotoGalleryList").getElementsByTagName("A");
		var cur = ((this.cImgIndex-1)%oList.length);
		if(cur==0) cur=oList.length;
		oList[cur-1].onclick();
	}
	,
	showPopupNextImg: function(photoLargeArray, photoAltArray){
		var oList = $("idPhotoGalleryList").getElementsByTagName("A");
		var popupPhoto = $("idPhotoGalleryPopupImg");
		popupPhoto.src = "/webroot/delivery/images/ajax-loader.gif";
		var cur = ((this.cImgIndex-1)%photoLargeArray.length);
		if ( typeof(photoLargeArray[cur+1]) != "undefined" ) {
			popupPhoto.src = photoLargeArray[cur+1];
			document.getElementById("idPopupsDescr").innerHTML=photoAltArray[cur+1];
		} else {
			popupPhoto.src = photoLargeArray[0];
			document.getElementById("idPopupsDescr").innerHTML=photoAltArray[0];
			this.cImgIndex = 1;
			cur=-1;
  		}
  		var currentPhotoNum = cur+2;
  		document.getElementById("idPopupsCounter").innerHTML="Фотография "+currentPhotoNum+" из "+photoLargeArray.length;
		oList[cur+1].onclick();
	}
	,
	showPopupPrevImg: function(photoLargeArray, photoAltArray){
		var oList = $("idPhotoGalleryList").getElementsByTagName("A");
		var popupPhoto = $("idPhotoGalleryPopupImg");
		popupPhoto.src = "/webroot/delivery/images/ajax-loader.gif";
		var cur = ((this.cImgIndex-1)%photoLargeArray.length);
		if ( typeof(photoLargeArray[cur-1]) != "undefined" ) {
			popupPhoto.src = photoLargeArray[cur-1];
			document.getElementById("idPopupsDescr").innerHTML=photoAltArray[cur-1];
		} else {
			popupPhoto.src = photoLargeArray[photoLargeArray.length-1];
			document.getElementById("idPopupsDescr").innerHTML=photoAltArray[photoLargeArray.length-1];
			this.cImgIndex = photoLargeArray.length;
			cur=photoLargeArray.length; 
  		}
  		var currentPhotoNum = cur;
  		document.getElementById("idPopupsCounter").innerHTML="Фотография "+currentPhotoNum+" из "+photoLargeArray.length;  		
		oList[cur-1].onclick();
	}
}

/* toolTip */
var toolTip = {
	oToolTip: null,
	oCurrentOver: null,
	
	init: function (o) {
		if (!this.oToolTip) {
			this.oToolTip = document.createElement('DIV');
			this.oToolTip.className = 'toolTip';
			this.oToolTip.innerHTML = '';
			document.body.appendChild(this.oToolTip);
		}
	}
	,
	
	over: function (o, e) {
		this.init(o);
		
		if(this.oCurrentOver != o){
			this.oCurrentOver = o;
			this.oToolTip.style.display = 'none';
			
			var arrDivs = o.getElementsByTagName("DIV");
			var oTtoolTipInfo = null;
			for(var i=0; i<arrDivs.length; i++){
				if(arrDivs[i].className == "toolTipInfo"){
					oTtoolTipInfo = arrDivs[i];
					break;
				}
			}
			
			if(!oTtoolTipInfo){
				return;
			}
			
			this.oToolTip.innerHTML = '<table class="toolTipWrap"><tr><td>'+oTtoolTipInfo.innerHTML+'</td></tr></table>';
			
			if (!o.onmouseout){ o.onmouseout = function () {toolTip.out(this)}};
			if (!o.onmousemove){ o.onmousemove = function (evt) {toolTip.move(this,evt)}};
		}
		this.setPosition(e);
		this.oToolTip.style.display = 'block';

	}
	,
	
	out: function (o) {
		this.oToolTip.style.display = 'none';
	}
	,
	
	move: function (o, e) {
		this.setPosition(e);
	},
	
	setPosition: function (e) {
		var x, y;
		e = (e) ? e : window.event;
		
		if (e.pageX || e.pageY){
			x = e.pageX;
			y = e.pageY;
		}
		else if (e.clientX || e.clientY){
			x = e.clientX + document.body.scrollLeft;
			y = e.clientY + document.body.scrollTop;
		}		
		
		this.oToolTip.style.left = x + 0;
		this.oToolTip.style.top = y + 21;
	}	

}


/*
params = {id:"popupID", w:"500"}
id - popup id
w - width
*/

var popup = {
	oShim: null,
	oCurrDialog: null,
	
	show: function (params){
		var Dialog = $(params.id);
		var oPopupsOuter = $("popupsOuter");
		if(!this.oShim){
			this.oShim = document.createElement('DIV');
			this.oShim.id = 'popupShimOuter';
			this.oShim.innerHTML = '<div><iframe src="javascript:false" frameBorder="0" scroll="none"></iframe></div>';
			document.body.appendChild(this.oShim);
		}
		
		if(params.w){
			Dialog.style.width = params.w + 'px';
		}	
		
		this.oCurrDialog = Dialog;
		
		this.oShim.style.display = 'block';
		oPopupsOuter.style.margin = "0 0 0 0";
		Dialog.style.display = 'block';
		Dialog.style.margin = "0 auto";
	}
	,

	show_services: function (params){
		var d = new Date();
		var popupPhoto = $("antispamimage");
		popupPhoto.src = "/plugins/securimage/securimage_show.php?sid="+uniqid();
		var popupLink = $("popupLink");
		popupLink.innerHTML = params.title;	
		popupLink.href = params.link;	
		var hiddenorder = $("hiddenorder");
		hiddenorder.value = params.title;
		var hiddenlink = $("hiddenlink");
		hiddenlink.value = params.link;		
		var Dialog = $(params.id);
		var oPopupsOuter = $("popupsOuter");
		if(!this.oShim){
			this.oShim = document.createElement('DIV');
			this.oShim.id = 'popupShimOuter';
			this.oShim.innerHTML = '<div><iframe src="javascript:false" frameBorder="0" scroll="none"></iframe></div>';
			document.body.appendChild(this.oShim);
		}
		
		if(params.w){
			Dialog.style.width = params.w + 'px';
		}	
		
		this.oCurrDialog = Dialog;
		
		this.oShim.style.display = 'block';
		oPopupsOuter.style.margin = "0 0 0 0";
		Dialog.style.display = 'block';
		Dialog.style.margin = "0 auto";
	}
	,
	
	hide: function (params){
		if ($("antispamimage")) {
			var popupPhoto = $("antispamimage");
			popupPhoto.src = "";			
		}
		if ($("idPhotoGalleryPopupImg")) {
			var popupPhoto = $("idPhotoGalleryPopupImg");
			popupPhoto.src = "/webroot/delivery/images/ajax-loader.gif";
		}	
		var Dialog = $(params.id);
		var oPopupsOuter = $("popupsOuter");
		if(this.oShim) {
			this.oShim.style.display = 'none';
		}	
		oPopupsOuter.style.margin = '-1000em 0 0 -1000px';
		Dialog.style.display = 'none';
		Dialog.style.margin = '-1000em 0 0 -1000px';
	}
	,
	
	getPosY: function(o){
		var y = 0;
			while(o && o.tagName!="BODY"){
				y+= o.offsetTop + (o.clientTop || 0);
				o = o.offsetParent;		
			}
		return y;		
	}	
}

var checkLocation = {
	onload: function(params){
		popup.show(params);	
	},
	
	actionYes: function(params){
		SetCookie("lang", "en", 365);

		
		window.location = params.url;
	},
	
	actionNo: function(params){
		SetCookie("lang", "ru", 365);
		
		popup.hide(params);
	}	
}

function toggleApplicationBlock(o) {
	
	var block = o.parentNode.parentNode.getElementsByTagName('div')[0];
		
	if (block) {
		block.style.display = (block.style.display == 'none') ? "block" : "none";
	}
	
}

function pricesSwitch(o){
    var oP = o.parentNode.parentNode;
    oP.className = (oP.className == "expanded") ? "collapsed" : "expanded"
    o.blur();
}

