
jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};

//document.location.href=add_params(document.location.href,'param1='+val+'&par2=val2');
function add_params(url,params,maxparams) {
	var r1 = /\?/;
	var r2 = /\#/;
	var p = url.search(r2);
	var t = p>0 ? url.substr(p) : '';		//tail:		#and_so_on
	var s = p>0 ? url.substr(0,p) : url;	//start:	http://name.dom[?params]
	var e = s.search(r1);
	if (e>0) {
		//parameters present
		var params = params + '&'+s.substr(e+1)+'&';	// par1=val1&...&
		var s=s.substr(0,e);						// http://name.dom
		//add parameters
		var r1 = /\&/;
		var r2 = /\=/;
		var used = '';
		var added = '';
		if (!maxparams) maxparams=100;
		for(var i=0;i<=maxparams;i++) {
			e=params.search(r1);
			if (e<=0) break;
			var pair = params.substr(0,e); // par=val
			p=pair.search(r2);
			var par = p>=0 ? pair.substr(0,p) : pair;
			if (used.search('&'+par+'&')<0) {
				used+='&'+par+'&';
				added+='&'+pair;
			}
			params = params.substr(e+1);
		}
		s = s + '?' + added.substr(1);
	} else {
		//no any parameters
		s = s + '?' + params;
	}
	return s+t;
}

function cmnRemove_class( eOn, sClass_name ){
	cmnSet_class( eOn, "", sClass_name );
}
function cmnSet_class( eOn, sClass_name, sInstead ){
	if( eOn ){
		sClass_name = ( sClass_name.length ) ? sClass_name.replace( /(^\s+|\s+$)/, "" ) : "";
		if( eOn.className.length ){
			var sOld = sClass_name;
			if( sInstead && sInstead.length ){
				sInstead = sInstead.replace( /\s+(\S)/g, "|$1" );
				if( sOld ){
					sOld += "|";
				}
				sOld += sInstead;
			}
			eOn.className = eOn.className.replace( new RegExp("(^|\\s+)(" + sOld +")($|\\s+)", "g"), "$1" );
		}
		eOn.className += ( eOn.className.length && sClass_name ? " " : "" ) + sClass_name;
	}
}
function cmnMatch_class( eOn, sClass_name ){
	return ( sClass_name && eOn.className && eOn.className.length && eOn.className.match( new RegExp("(^|\\s+)(" + sClass_name +")($|\\s+)") ) );
}
var arrStdPopupFeatures = [
	['menubar', 'no'],
	['toolbar', 'no'],
	['resizable', 'yes'],
	['scrollbars', 'yes'],
	['status', 'yes']
] 
function getPopupSizeRelatedFeatures( iWinW, iWinH, strUserFeatures ) {
	var strSizeRelatedFeatures = '';
	var iWinWidth = ( iWinW )? iWinW : 540;
	var iWinHeight = ( iWinH )? iWinH : 600;
	if ( screen ) {
		var iScrWidth = ( screen.width )? screen.width : 0;
		var iScrHeight = ( screen.height )? screen.height : 0;
		var bNeedScroll = false;
		if ( iScrWidth < iWinWidth + 50 ) { bNeedScroll = true; iWinWidth = iScrWidth - 50; }
		if ( iScrHeight < iWinHeight + 100 ) { bNeedScroll = true; iWinHeight = iScrHeight - 100; }
		if ( !(strUserFeatures && strUserFeatures.indexOf('scrollbars') >= 0 ) ) {
			strSizeRelatedFeatures += ( bNeedScroll )? ',scrollbars=yes' : ',scrollbars=no';
		}
		var iPosX = Math.round( ( iScrWidth - iWinWidth ) / 2 );
		var iPosY = Math.round( ( ( iScrHeight - 70 ) - iWinHeight ) / 2);
		strSizeRelatedFeatures += ( document.all )? ',left=' + iPosX + ',top=' + iPosY : ',screenX=' + iPosX + ',screenY=' + iPosY;
	}
	strSizeRelatedFeatures += ',width=' + iWinWidth + ',height=' + iWinHeight;

	return strSizeRelatedFeatures;
} 
function getStdFeatures( strUserFeatures ) {
	var strStdFeatures = '';
	for ( var i = 0; i < arrStdPopupFeatures.length; i++) {
		if ( !(strUserFeatures && strUserFeatures.indexOf( arrStdPopupFeatures[i][0] ) >= 0 ) ) {
			strStdFeatures += ',' + arrStdPopupFeatures[i][0] + '=' + arrStdPopupFeatures[i][1];
		}
	}
	return strStdFeatures;
}
function cmnPopup(strFileUrl, strUserWinName, iWinW, iWinH, strUserFeatures) {
	var strAllFeatures = strUserFeatures + getPopupSizeRelatedFeatures( iWinW, iWinH, strUserFeatures );
	strAllFeatures += getStdFeatures( strAllFeatures );
	var strWinName = ( strUserWinName )? strUserWinName : 'popupWin';
	var popupWin = window.open(strFileUrl, strWinName, strAllFeatures);
	if ( popupWin ) popupWin.focus();
}

/*
#########################################
Вывод медиаинформации, не зависимо Flash или Image
с возможностью вывода под слоем, каким-либо
#########################################
src	- путь к баннеру
link	- ссылка
width	- ширина в px
height - высота в px
version	- версия Flash
linkadds - доп.параметры
*/
var flash_checked = false;
var flash_plugin = false;
function ShowMedia(par){
	var res = '';
	par.src		= String(par.src || '');
	var type	= par.src.match(/.swf/i) ? 1 : 0;
	par.width	= par.width || false;
	par.height	= par.height || false;
	par.link	= par.link	|| false;
	par.version	= par.version || 6;
	par.linkadds= par.linkadds|| '';
	par.showerr	= par.showerr || false;
	par.flashparams = par.flashparams || {};
	par.nowrite = par.nowrite || false;
	if(type == 0){
		var lnk_beg	= '';
		var lnk_end	= '';
		if(par.link){
			lnk_beg	= '<a href="'+par.link+'" '+par.linkadds+'>';
			lnk_end	= '</a>';
		}
		res = lnk_beg + '<img src="' + par.src + '"' + (par.width ? ' width="' + par.width + '"' : '') + (par.height ? ' height="' + par.height + '"' : '') + ' alt="" title="" border="0">' + lnk_end;
	}else{
		if (!flash_checked) {
			checkFlashVer(par.version);
			flash_checked = true;
		}
		if(flash_plugin){
			var sizes	= ' width="' + par.width + '" height="' + par.height + '" ';
			if (par.flashparams.play==null)		par.flashparams.play	='true';
			if (par.flashparams.loop==null)		par.flashparams.loop	='true';
			if (par.flashparams.menu==null)		par.flashparams.menu	='false';
			//if (par.flashparams.wmode==null)	par.flashparams.wmode	='opaque';
			if (par.flashparams.quality==null)	par.flashparams.quality	='best';
			if (par.flashparams.allowScriptAccess==null)	par.flashparams.allowScriptAccess='always';
			if (par.flashparams.flashvars==null)			par.flashparams.flashvars='';
			var params1	= '<param name="movie" value="' + par.src + '">';
			var params2 = '';
			for (key in par.flashparams) {
				params1 += '<param name="'+key+'" value="'+par.flashparams[key]+'">';
				params2 += ' '+key+'="'+par.flashparams[key]+'" ';
			}
			res =	'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + sizes + '>' + params1 +
					'<embed type="application/x-shockwave-flash" src="' + par.src + '"' + sizes + params2 +'></embed>'+
					'</object>';
			
		} else {
			if (par.showerr) res='Для просмотра необходим Flash Player как минимум '+par.version+' версии. <a href="http://www.macromedia.com/go/getflashplayer">Загрузить</a>';
		}
	}
	if (par.nowrite) return res;
	document.write(res);
}

function checkFlashVer(v){
	if (v == 0){
		flash_plugin =1;
		return;
	}
	var f = 'Shockwave Flash';
	with (navigator){
		if (plugins && plugins[f]){
			flash_plugin = v <= parseInt(plugins[f].description.substring(16));
		}else{
			if (document.all && !window.opera){
				execScript('on error resume next: flash_plugin = IsObject(CreateObject("' + (f + '.' + f + '.').replace(/ /g, '')+v+'"))','VBScript');
			}
		}
	}
}

function StrToHtmlParams(obj) {
	var s = '';
	for(var key in obj)
		if((typeof obj[key] != 'function') && (obj[key]!=null))
			s += key+'='+encodeURIComponent(obj[key])+'&';
	return s.replace(/&$/, '');		
}


/*
#############################################
Класс для отображения рекламы
#############################################
*/
pAdvert = {
	loading: false,
	objects: Array(),
	addObject : function(obj_id, obj_url, obj_w, obj_h, ref_time){
		var obj	= $("#"+obj_id);
		if(obj.length==1){
			obj.addClass('loading');
			obj[0].style.width = obj_w+'px';
			obj[0].style.height = obj_h+'px';
			if (!ref_time) ref_time=0;
			pAdvert.objects[pAdvert.objects.length] = Array(obj, obj_url, ref_time);
		}
	},
	runQuery : function(){
		if (pAdvert.loading) return;
		if (pAdvert.objects.length>0) {
			pAdvert.loading=true;
			var obj_url = pAdvert.objects[0][1];
			obj_url += '&n='+String(Math.random()).substring(2,11);
			if (pAdvert.objects[0][2]==0) { //не указываем что загружали на обновляемых баннерах
				if (document.referrer) obj_url += '&referer='+escape(document.referrer);
				if (document.phpAds_used) obj_url += '&exclude='+document.phpAds_used;
			}
			$.getJSON(obj_url,pAdvert.endLoading);
		}
	},
	endLoading : function(response){
		var obj = pAdvert.objects[0][0];
		obj.removeClass('loading');
		if (response.bimg!='') {
			var logimg = (response.blog=='' ? '' : 
						'<div id="beacon_'+response.bid+'" style="position: absolute; left: 0px; top: 0px; visibility: hidden;">'+
						'<img src="'+response.blog+'" width="0" height="0" alt="" style="width: 0px; height: 0px;">'+
						'</div>' );
			var w = parseInt(obj[0].style.width);
			var h = parseInt(obj[0].style.height);
			obj[0].innerHTML = ShowMedia({
					 src: response.bimg+'&atar1='+response.target+'&alink1='+response.bclk,
					 width: w,
					 height: h,
					 link: response.bclk,
					 target: response.target,
					 version: 6,
					 showerr:true,
					 nowrite: true
					})+logimg;
		}
		if (pAdvert.objects[0][2]>0) { //обновляемый баннер
			setTimeout('pAdvert.addObject("'+obj[0].id+'","'+pAdvert.objects[0][1]+'",'+w+','+h+','+pAdvert.objects[0][2]+');pAdvert.runQuery();',pAdvert.objects[0][2]);
		} else { //обычный баннер
			if (!document.phpAds_used) document.phpAds_used = '';
			document.phpAds_used += 'bannerid:'+response.bid+',';
			document.phpAds_used += 'campaignid:'+response.cid+',';
		}
		pAdvert.objects.splice(0,1);
		pAdvert.loading=false;
		pAdvert.runQuery();
	}
}

function head_init() {
	$("#otherserv").click(function() {
		$("#othermenu").show();
		$("#mainmenu").hide();
	});
	$("#omclose").click(function() {
		$("#othermenu").hide();
		$("#mainmenu").show();
	});
	$("#nlog").qtip({
		content: $("#logintip"),
		position: {target:$('#lp'),adjust:{x:-180,y:-5}},
		style: {border:{width:1,radius:5,color:'#FCF0D6'},
			tip: {corner:'topMiddle',size: {x:6,y:6}},
			width: 200,
			padding:0
		}
	});
	$("#log").qtip({
		content: $("#userinfo"),
		position: {target:$('#lp'),adjust:{x:-183,y:-22}},
		style: {border:{width:1,radius:5,color:'#FCF0D6'},
			width: 200,
			padding:0
		},
		hide:{fixed:true,when:{event:'mouseout'},delay:500}
	});
}


