var question = 0;
var linkNum = 0;
var u = navigator.userAgent.toLowerCase();

var cssFix = function()
{
    var u = navigator.userAgent.toLowerCase(),
    addClass = function(el,val)
    {
        if(!el.className)
        {
            el.className = val;
        }
        else
        {
            var newCl = el.className;
            newCl += (" " + val);
            el.className = newCl;
        }
    },
    is = function(t){return (u.indexOf(t) != -1)};
	//alert(u);
    addClass(document.getElementsByTagName('html')[0],[
        (!(/opera|webtv/i.test(u)) && /msie (\d)/.test(u)) ? ('ie ie' + RegExp.$1)
        : is('firefox/2') ? 'gecko ff2'
        : is('firefox/3.5') ? 'gecko ff35'
        : is('firefox/3') ? 'gecko ff3'
        : is('gecko/') ? 'gecko'
        : is('opera/9') ? 'opera opera9' : /opera (\d)/.test(u) ? 'opera opera' + RegExp.$1
        : is('konqueror') ? 'konqueror'
        : is('applewebkit/') ? (is('chrome/') ? 'chrome' : 'webkit safari')
        : is('mozilla/') ? 'gecko' : '',
        (is('x11') || is('linux')) ? ' linux'
        : is('mac') ? ' mac'
        : is('win') ? ' win':''
    ].join(" "));
}();

$.fn.wait = function(time, type)
{
    time = time || 3000;
    type = type || "fx";
    return this.queue(type, function()
    {
        var self = this;
        setTimeout(function() {$(self).dequeue();}, time);
    });
};

$.fn.hasAttr = function(name)
{
   return this.attr(name) !== undefined;
};

$(document).ready(function ()
{
 
	$('a#qr-code').click(function()
	{
		var contacts = $('.contacts');
		$.blockUI(
		{
			message:contacts,
			css:
			{
				top:($(window).height() - contacts.outerHeight(true))/2,
				left:($(window).width() - contacts.outerWidth(true))/2,
				border:'none',
				cursor:'default',
				background:'transparent'
			},
			overlayCSS:
			{
				cursor:'default'
			}
		});
	});
	
	$('#close').click($.unblockUI);
  
});

Cookie =
{
    isSupported: function()
    {
        return !!navigator.cookieEnabled;
    },
    exists: function(name)
    {
        return document.cookie.indexOf(name + "=") + 1;
    },
    write: function(name, value, expires, path, domain, secure)
    {
        expires instanceof Date ? expires = expires.toGMTString() : typeof(expires) == 'number' && (expires = (new Date(expires * 1e3)).toGMTString());
        var r = [name + "=" + escape(value)], s, i;
        for(i in s = {expires: expires, path: path, domain: domain}) s[i] && r.push(i + "=" + s[i]);
        return secure && r.push("secure"), document.cookie = r.join(";"), true;
    },
    read: function(name)
    {
        var c = document.cookie, s = this.exists(name), e;
        return s ? unescape(c.substring(s += name.length, (c.indexOf(";", s) + 1 || c.length + 1) - 1)) : "";
    },
    remove: function(name, path, domain)
    {
        return this.exists(name) && this.write(name, "", new Date(0), path, domain);
    }
};

function getBrowser()
{
	var userAgent = navigator.userAgent.toLowerCase();
	$.browser.chrome = /chrome/.test(userAgent);
	var version = 0;
	var browser = '';
	if($.browser.msie)
	{
		browser = 'msie';
		userAgent = $.browser.version;
		userAgent = userAgent.substring(0,userAgent.indexOf('.'));	
		version = userAgent;
	}
	if($.browser.chrome)
	{
		browser = 'chrome';
		userAgent = userAgent.substring(userAgent.indexOf('chrome/') + 7);
		userAgent = userAgent.substring(0,userAgent.indexOf('.'));	
		version = userAgent;
		$.browser.safari = false;
	}
	if($.browser.safari)
	{
		browser = 'safari';
		userAgent = userAgent.substring(userAgent.indexOf('safari/') + 7);	
		userAgent = userAgent.substring(0,userAgent.indexOf('.'));
		version = userAgent;	
	}
	if($.browser.mozilla)
	{
		if(navigator.userAgent.toLowerCase().indexOf('firefox') != -1)
		{
			browser = 'mozilla';
			userAgent = userAgent.substring(userAgent.indexOf('firefox/') + 8);
			userAgent = userAgent.substring(0,userAgent.indexOf('.'));
			version = userAgent;
		}
	}
	if($.browser.opera)
	{
		browser = 'opera';
		userAgent = userAgent.substring(userAgent.indexOf('version/') + 8);
		userAgent = userAgent.substring(0,userAgent.indexOf('.'));
		version = userAgent;
	}
	return {browser:browser || "", version: version || "0"};
}

function BlockPageWithLoader()
{
	var scrollTop = $(window).scrollTop();
    $.blockUI(
    {
		fadeOut:1000,
		message:$('<div class="ajax-loader"></div>'),
		css:
		{
			width:'16px',
			height:'11px',
			top:($(window).height() - 11)/2 + scrollTop,
			left:($(window).width() - 16)/2,
			position:'absolute',
			backgroundColor:'transparent',
			border:'none',
			cursor:'default'
		},
		overlayCSS:
		{
			opacity:0.8,
			cursor:'default',
			backgroundColor:'#fff'
		}
    });
}

function BlockPage(obj, params)
{
    if(params.hideScroll) $('html, body').css('overflow','hidden');
	if(intval(params.width) == 0 ) params.width = 400;
	if(intval(params.height) == 0 ) params.height = 20;
	if(params.mess) $(obj).find('.inner-cont').html(params.mess);
	var scrollTop = $(window).scrollTop();
	var top = left = 0;
	if(params.top) top = params.top;
	else top = ($(window).height() - params.height)/2 + scrollTop;
	if(params.left) left = params.left;
	else left = ($(window).width() - params.width)/2;
	if(params.scroll) $(window).scrollTop(0);
    $.blockUI(
    {
		fadeOut:1000,
        message:$(obj),
        css:
        {
			width:params.width + 'px',
			height:params.height + 'px',
			top:top,
			left:left,
            border:'none',
            cursor:'default',
            background:'transparent',
			position:params.position,
			'text-align':'left'
        },
        overlayCSS:
        {
            cursor:'default'
        },
		onBlock:params.onBlockFunc,
		onUnblock:params.onUnblockFunc
    });
}

function UnBlockPage(params)
{
	if(params.showScroll) $('html, body').css('overflow','auto');
	$.unblockUI();
}

function ShowOverlayWaitingSimple(obj)
{
	var loader  = $('<div class="ajax-loader"></div>');
	var loaderH = loader.outerHeight(true);
	var loaderW = loader.outerWidth(true);
	$(obj).block(
	{
		fadeOut:1000,
		message:loader,
		css:
		{
			width:loaderW + 'px',
			height:loaderH + 'px',
			top:($(obj).outerHeight(true) - loaderH)/2,
			left:($(obj).outerWidth(true) - loaderW)/2,
			position:'absolute',
			backgroundColor:'transparent',
			border:'none',
			cursor:'default'
		},
		overlayCSS:
		{
			height:$(obj).outerHeight(true) + 'px',
			opacity:0.8,
			cursor:'default',
			backgroundColor:'#fff'
		}
	});
}

function ShowOverlay(obj, overlay, params)
{
	var overlayH = $(overlay).outerHeight(true);
	var overlayW = $(overlay).outerWidth(true);
	var overlayT = overlayL = 0;
	if(params.top != undefined) overlayT = params.top;
	else overlayT = ($(obj).outerHeight(true) - overlayH)/2;
	if(params.left != undefined) overlayL = params.left;
	else overlayL = ($(obj).outerWidth(true) - overlayW)/2;
	overlayH  = overlayH + 'px';
	overlayW  = overlayW + 'px';
	overlayT  = overlayT + 'px';
	overlayL  = overlayL + 'px';
	$(obj).block(
	{
		fadeOut:1000,
		message:$(overlay),
		css:
		{
			width:overlayW,
			height:overlayH,
			top:overlayT,
			left:overlayL,
			position:'absolute',
			backgroundColor:'transparent',
			border:'none',
			cursor:'default'
		},
		overlayCSS:
		{
			opacity:0.8,
			cursor:'default',
			backgroundColor:'#ccc'
		},
		onBlock:function()
		{
			$('.blockElement').css('top',overlayT);
		}
	});
}

function HideOverlay(obj)
{
	$(obj).unblock();
}

function CenterXY(id)
{
    var scrollTop = $(document).scrollTop();
    $(id).css(
    {
        position:'absolute',
        left:($(window).width() - $( id ).outerWidth())/2,
        top:($(window).height() - $( id ).outerHeight())/2 + scrollTop
    });
}

function getScreenDimension()
{
	var clientHeight = document.body.clientHeight, innerWidth = self.innerWidth;
	var screenWidth  = (self.opera ? innerWidth : screen.availWidth);
	var screenHeight = (self.opera ? clientHeight : screen.availHeight);
	return {"screenW":screenWidth, "screenH":screenHeight};
}

function GetAnchor()
{
    var URL = document.location.toString().split('#');
    if(URL.length > 1) return URL[1];
    else return '';
}

function checkEmail(email)
{
	return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(email);
}

function checkFields(arFields)
{
	var error = 0;
	var val = id = def = id2 = '';
	for(field in arFields)
	{
		id  = arFields[field]['id'];
		val = $(arFields[field]['id']).val();
		def = arFields[field]['default'];
		switch(arFields[field]['type'])
		{
			case 'int':
				if(intval(val) < 0 || val == def)
				{
					$(id).addClass('error');
					error++;
				}
				else $(id).removeClass('error');
			break;
			
			case 'text':
				if(empty(val) || val == def)
				{
					$(id).addClass('error');
					error++;
				}
				else $(id).removeClass('error');
			break;
			
			case 'email':
				if(empty(val) || val == def || !checkEmail(val))
				{
					$(id).addClass('error');
					error++;
				}
				else $(id).removeClass('error');
			break;
			
			case 'file':
				id2 = arFields[field]['id2'];
				if(empty(val) || val == def)
				{
					$(id2).addClass('error');
					error++;
				}
				else $(id2).removeClass('error');
			break;
			
			case 'pass':
				id2	 = arFields[field]['id2'];
				val2 = $(arFields[field]['id2']).val();
				if(empty(val) || empty(val2))
				{
					$(id).addClass('error');
					$(id2).addClass('error');
					error++;
				}
				else if(val != val2)
				{
					$(id).addClass('error');
					$(id2).addClass('error');
					error++;
				}
				else
				{
					$(id).removeClass('error');
					$(id2).removeClass('error');
				}
			break;
			
			case 'radio':
				var block = arFields[field]['block'];
				if($(id).length == 0)
				{
					$(block).addClass('error');
					error++;
				}
				else $(block).removeClass('error');
			break;
		}
	}
	return error;
}

function ShowNotes(arParams)
{
	var note = '<div' + (arParams.round ? ' class="round"' : '') + ' id="' + arParams.obj.attr('id') + '-hint" style="zoom:1; position:absolute; z-index:9999; background-color:#F6F6F6 !important; padding:5px !important; border:1px solid #ccc !important;"><div' + (arParams.round ? ' class="round"' : '') + ' style="zoom:1; width:' + (arParams.width ? arParams.width : '290') + 'px !important; font-size:10px !important; color:#525050; background-color:#F2F2EB !important; border:1px dotted #ccc !important; padding:5px !important; text-align:left !important;">' + arParams.data + '</div></div>';
	arParams.obj.live('mouseenter', function()
	{
		var pos = arParams.obj.offset();
		$(note).css({top:pos.top + 14, left:(arParams.align ? (arParams.align == 'left' ? (arParams.width ? (pos.left - arParams.width - 12) : (pos.left - 302)) : pos.left) : pos.left)}).appendTo('body');
	})
	.live('mouseleave', function()
	{
		$('#' + arParams.obj.attr('id') + '-hint').remove();
	});	
}

var loadJS = function(libs, obj, libs_obj)
{
	if(typeof obj === 'function') obj = {callback:obj, count:1};
    if(typeof libs === 'object')
	{
		for(var i in libs) loadJS(libs[i], obj, libs_obj);
        return;
    }
	var libs = libs_obj[libs];
    if(libs.callbacks === undefined) libs.callbacks = [];
    if(libs.check !== undefined) if(libs.check()) {if(obj.callback) obj.callback(); return;}
    libs.callbacks.push(obj);
    if(libs.pending) return;
    libs.pending = true;
	
    function docReady()
	{
		function downloadedJS()
		{
			libs.pending = false;
            var obj;
            while(obj = libs.callbacks.pop()) {obj.count--; if (obj.count == 0) obj.callback();}
        }
        downloadJS(libs.link, downloadedJS);
    }
	
    function downloadJS(src, callback)
	{
		var script = document.createElement('script');
        script.type = 'text/javascript';
        script.async = 'async';
        script.src = src;
        if(callback)
		{
			script.onload = script.onreadystatechange = function()
			{
				if(!script.readyState || /loaded|complete/.test(script.readyState))
				{
                    script.onload = script.onreadystatechange = null;
                    callback();
                }
            };
        }
        document.getElementsByTagName('head')[0].appendChild(script);
    }
	
    var deps_count = libs.deps ? libs.deps.length : 0;
    if (deps_count < 1) { docReady(); return; }
	var new_obj = {callback:docReady, count:deps_count};
    loadJS(libs.deps, new_obj, libs_obj);
};

