var dBtn = null;
var hTest = null;
var a=0;

Popup = function(){
	// ядро
	this.id_prefix = '';
	this.z_index = 10000;
	this.blocked = false;
	this.saveBlock = false;
	this.back_to_consult_popup=0;

	this.show = function(hData){
		if(!oPopup.busy() || oPopup.no_busy){
			oPopup.no_busy = false;
			oPopup.blockSite();
			this.mainHandler = null;
			this.onClose = hData.onClose;
			this.saveBlock = hData.saveBlock ? hData.saveBlock : false;
			this.save_hints = hData.save_hints;
			var sHtml = this.build(hData);
			var j = $(sHtml).appendTo('body');
			// j.html(sHtml);
			var iWidth = hData.width || 500;
			var iDocWidth = $(window).width();
			var iDocHeight = $(window).height();
      //alert($(document).scrollTop()+'; '+$(window).parents(window).scrollTop()+'; '+iDocWidth+'; '+iDocHeight);
     // window.opener.alert('asd');
     // setInterval("$('#spam_win').css('margin-top',(130+$(document).scrollTop())+'px');",100);
			var x = hData.left || Math.round((iDocWidth - iWidth)/2);
			if(hData.offsetX) x += hData.offsetX;
			var y = $(window).scrollTop() + Math.round((iDocHeight - j.height())/2);
			if(y < 0) y = 1;
			y = hData.top || y;
			if(hData.offsetY) y += hData.offsetY;
			var p_offset = oPopup._offset();
			var z_index = hData.z_index || oPopup.getZindex();
			j.css({left: x + p_offset.left + 'px', top: y + p_offset.top + 'px', width: iWidth + 'px', 'z-index': z_index});
			j.hide();
			if(hData.animate) j.fadeIn(); else j.show();
			this.bAnimate = hData.animate;
			this.visible = true;
			this.initEvents(j, hData);
			this.jContainer = j;
			oPopup._add(this);
			this.onShow.apply(this, []);
		}
	};
	
	this.closeViaButton = function(){
		var t = this.popup ? this.popup : this;
		t.close(true);
	};
	
	this.close = function(viaButton){
	    
		var t = this.popup ? this.popup : this;
		if(!t.save_hints) $('.popup_alert, .additional_popuphints').hide();
		
		if(a==1)
		{
	
			var back_to_course = Cookie.get("back_to_course"); 
			if(back_to_course){
				window.location = "/consultant/course/id/"+back_to_course;
			}
			
			var from_consultant = Cookie.get("from_consultant");
			if(from_consultant>0){
			  new_location = "/consultant/index/id/"+from_consultant;
			    Cookie.set("from_consultant", '0','/');
				window.location = new_location;
			}
	    

		}
		a=a==0?1:0;
		
		
		
		if(t.onClose) t.onClose(viaButton===true);
		if(t.store){
			if(t.bAnimate) t.jContainer.fadeOut(); else t.jContainer.hide();
		} else {
			if(t.bAnimate) t.jContainer.fadeOut( function(){ $(this).remove() } ); else t.jContainer.remove();;
			oPopup._remove(t);
		}
		
		t.visible = false;
		if(!t.saveBlock) oPopup.unblockSite();
                oPopup.unblockSite();
		return false;
	};
	
	this.isIe = function(){
		return ($.browser.msie && ($.browser.version == '5.0' || $.browser.version == '8.0'));
	};
	
	this.blockButtons = function(){
		if(this.isIe()){
			//this.jContainer.find('div.button').addClass('opa30');
		} else {
			this.jContainer.find('div.button').animate({opacity: 0.3}, 400);
		};
		this.blocked = true;
	};
	
	this.unblockButtons = function(){
		if(this.isIe()){
			//this.jContainer.find('div.button').removeClass('opa30');
		} else {
			this.jContainer.find('div.button').animate({opacity: 1}, 400);
		};
		this.blocked = false;
	};
	
	this.showLoading = function(sMsg){
		var j = this.jContainer;
		j.find('.popup_message').hide();
		j.find('.popup_buttons').hide();
		j.find('.popup_ajax').show();
	};
	
	this.hideLoading = function(sMsg){
		var j = this.jContainer;
		j.find('.popup_buttons').show();
		j.find('.popup_ajax').hide();
	};
	
	this.resetData = function(){
		this.jContainer.find("form").each(function(){
			this.reset();
		});
	};
	
	this.showMessage = function(success, message){
		var j = this.jContainer;
		if(success)
			this.jContainer.find('.pm_ok').show().find('.warning_inner').html(message);
			else this.jContainer.find('.pm_error').show().find('.war_cc').html(message);
	};
	
	
	this.onComboValueChange = function(name, value){};
	this.onShow = function(){};
	
	this.build = function(hData){
		var t = this;
		t.id_prefix = hData.prefix || '';
		t.handler = hData.handler;
		var sInfo = ''; 
		var sButtons = t.buildButtons(hData.buttons);
		if(hData.caption) sInfo += '<div class="lstt purple" style="font-size:20px;padding-bottom:5px;text-align:center;">'+ hData.caption +'</div>';
		if(hData.html) sInfo += hData.html;
		
		if(typeof(hData.items)=='string'){
			sInfo += hData.items;
		} else {
			if(hData.items) sInfo += t.buildForm(hData);
		};
		if(hData.note) sInfo += '<div class="dots f0 mp10">&nbsp;</div><div class="f12">'+hData.note+'</div>';
		
		var sTarget = hData.target ? (' target="'+hData.target+'"') : "";
		var sIframe = '';
		if(hData.iframe){
			sIframe = '<iframe name="'+this.id_prefix + 'popupiframe" id="'+this.id_prefix + 'popupiframe" style="display:none"></iframe>';
			sTarget = 'target="' + this.id_prefix + 'popupiframe' + '"';
		}
		var sAction = hData.action ? (' action="'+hData.action+'"') : "";
		
		var sSubmit = '<input type="submit" style="display:none" />';
		
		var sOnSubmit = hData.onSubmit || 'oPopup.onSubmit()';
		
			if (hData.upload_photo){
				sOnSubmit = 'oPopup.upload()';
				sSubmit = '<div align="center" width="100%" style="padding:10px 0 0 0;"><input type="image" src="/images/button/upload.png"></div>';
			}
				
		if (typeof hData.onComboValueChange == 'function')
			this.onComboValueChange = hData.onComboValueChange;
		
		if (typeof hData.onShow == 'function')
			this.onShow = hData.onShow;
			
		var sLoading = '<div class="popup_loading" style="text-align:center;display:none"><img src="/images/ajax.gif" align="absmiddle" /> <span style="padding-left:10px;font-size:14px">Подождите...</span></div>';
		
		var sHtml = '<form id="'+this.id_prefix+'form"' + sAction + sTarget + 'method="post" enctype="multipart/form-data" onSubmit="return '+sOnSubmit+'">' + sInfo + sButtons + sSubmit + '</form>' + sLoading + sIframe;

		var sClass = '';
		var sCloseButton = '<div class="pop_x">&nbsp;</div>';
		if (hData.hide_close_button){
			sCloseButton = '';
		}
		return '<div class="pop_general '+ sClass +'"><div class="pop_tbg f0"><div class="pop_rt f0">&nbsp;</div><div class="pop_lt f0">&nbsp;</div></div><div class="pop_lbg" style="height:100%;z-index:12050;"><div class="pop_rbg">'+sCloseButton+'<div class="pop_c">' + sHtml + '</div><div class="clear"></div></div></div><div class="pop_bbg f0"><div class="pop_rb f0">&nbsp;</div><div class="pop_lb f0">&nbsp;</div></div></div>';
	};
	
	this.buildButtons = function(buttons){
		var sButtons = "";
		if(buttons){
			this.initButtonsWidth(buttons);
			for(i=0; i<buttons.length; i++){
				sButtons += this.buildButton(buttons[i], i);
			}
			sButtons = '<br><br><table class="popup_buttons" width="100%"><tr><td>&nbsp;</td>' + sButtons + '<td>&nbsp;</td></table>';
		};
		sButtons += '<table class="popup_ajax" width="100%" style="padding-top:10px;display:none"><tr><td>&nbsp;</td><td width="64"><img src="/images/ajax64.gif" /></td><td>&nbsp;</td></table>';
		sButtons += '<div class="popup_message pm_ok warning_block" style="display:none;margin-top:15px"><div class="warning_left"><div class="warning_right"><div class="warning_inner"></div></div></div></div>';
		sButtons += '<div class="warinput popup_message pm_error" style="display:none;margin-top:15px"><div class="war_lt f0">&nbsp;</div><div class="war_rt f0">&nbsp;</div><div class="war_cc f12"></div><div class="war_lb f0">&nbsp;</div><div class="war_rb f0">&nbsp;</div></div>';
		return sButtons;
	};
	
	this.buildForm = function(hData){
		var items = hData.items;
		var s = "";
		for(i=0; i<items.length; i++){
			s += "<tr>" + this.buildInput(items[i]) + "</tr>";
		};
		s = '<table cellpadding="0" cellspacing="0" border="0" width="100%">' + s + '</table>';
		if(hData.yellowForm) s = '<div><div class="ltw f0">&nbsp;</div><div class="rtw f0 mb4">&nbsp;</div><div style="background-color:#f4f1e4;padding:15px">' + s + '</div><div class="lbw f0">&nbsp;</div><div class="rbw f0 mb4">&nbsp;</div></div>';
		return s;
	};
	
	this.initButtonsWidth = function(buttons){
		var iW = 0;
		for(i=0; i<buttons.length; i++){
			var iWidth = buttons[i].text.length*12;
			if(iWidth>iW) iW = iWidth;
		};
		if(iW<50) iW = 50;
		var iTotal = 0;
		for(i=0; i<buttons.length; i++){
			if(!buttons[i].width) buttons[i].width = iW;
			iTotal = iTotal + buttons[i].width + 23;
		}
		this.iTotalWidth = iTotal+5;
	};
	
	this.buildInput = function(hItem){
		if(typeof(hItem)=='string'){
			return hItem;
		} else {
			hItem.pname = this.id_prefix + hItem.name;
			if(!hItem.text) hItem.text = '';
			if(!hItem.type) hItem.type = 'text';
			switch(hItem.type){
				case 'text':
					return this.buildText(hItem);
				case 'password':
					return this.buildPas(hItem);
				case 'select':
					return this.buildSelect(hItem);
				case 'checkbox':
					return this.buildCheckbox(hItem);
				case 'checkboxlist':
					return this.buildCheckboxList(hItem);
				case 'textarea':
					return this.buildTextarea(hItem);
				case 'file':
					return '<div class="popup_alert popup_alert_file" id="popupalert_'+hItem.pname+'"> </div>' + this.buildFile(hItem);
				case 'radio':
					return sCommon + this.buildRadio(hItem);
				case 'comment':
					return this.buildComment(hItem);
				case 'phone':
					return this.buildPhone(hItem);
			}
			}
	};
	this.buildText = function(hItem){
		hItem.value = hItem.value || "";
		hItem.style = hItem.style || "";
		var width_out = 190;
		if(hItem.width){
			width_out = hItem.width;
		}
		var width_in = width_out - 20;
		var sMaxlength = '';
		if(hItem.maxlength) sMaxlength = ' maxlength = "' + hItem.maxlength + '" ';
		return '<td width="200" align="right"><div class="input_caption" style="padding-right:20px;">' + hItem.label + '<span class="purple">*</span>:</div></td>'
			+ '<td><img height="20" width="10" id="validate_result_for_'+hItem.name+'" class="result" src="/images/pixel.gif"><div id="container_for_'+hItem.name+'" style="width: '+width_out+'px;" input="'+hItem.name+'" class="sinput validated_input"><input type="text" style="width: '+width_in+'px;" default="" value="'+hItem.value+'" name="'+hItem.name+'" id="'+hItem.name+'"><div class="sinput_left"><div class="sinput_right">&nbsp;</div></div></div></td>';
	};
	this.buildPas = function(hItem){
		if(!hItem.value)hItem.value="";
		return '<td width="200" align="right" valign="top" style="padding-top:2px;"><div class="input_caption" style="padding-right:20px; padding-top:5px;">' + hItem.label + '<span class="purple">*</span>:</div></td>'
		+ '<td style="padding-top:5px;"><div style="width: 120px;" input="password" class="sinput validated_input"><div default="" class="password_default"></div>'
		+ '<input type="password" id="password" class="second_default" style="width: 100px;" value="" name="password">'
		+ '<div class="sinput_left"><div class="sinput_right">&nbsp;</div></div></div></td>';
	};
	this.buildSelect = function(hItem){
		var sItems = '';
		if(hItem.value && hItem.value!=''){
			for(var i=0;i<hItem.items.length; i++){ if(hItem.items[i][0]==hItem.value) hItem.text = hItem.items[i][1]; }
		}
		var sValue = hItem.value ? hItem.value : '';
		for(var i=0;i<hItem.items.length; i++){
			sItems += '<li title="'+hItem.items[i][1]+'" cvalue="'+hItem.items[i][0]+'" class="comboboxItem">'+hItem.items[i][1]+'</li>';
		}
		this.z_index = this.z_index - 2;
		return '<div class="popup_caption">'+hItem.label+'</div>'
		  + '<div class="popup_select"><span class="select4"><div class="comboboxContainer"><div class="comboboxValueContainer" style="z-index:'+this.z_index+'"><div title="'+hItem.text+'" class="comboboxValueContent" input="'+hItem.pname+'">'+hItem.text+'</div><div class="comboboxDropDownButton"/></div><div class="comboboxDropDownContainer_div" style="height: 144px; display: none; z-index:'+(this.z_index-1)+'"><ul tabindex="0" class="comboboxDropDownContainer">' 
		  + sItems
		  + '</ul></div></div></span><input type="hidden" value="'+sValue+'" id="'+hItem.pname+'" name="'+hItem.pname+'" /></div>';
	};
	this.buildSelectVisible = function(hItem){
		var sValue = hItem.value ? hItem.value : '';
		var html = '<div id="'+hItem.pname+'_groups" '+(sValue=='groups' ? '':'style="display:none"')+
		           '><div class="popup_caption">Группы:</div><div class="groups-container"><img src="/images/ajax.gif" /></div></div>';
	    return html;
	};
	this.buildTextarea = function(hItem){
		if(!hItem.value)hItem.value="";
		var sStyle = hItem.style || "";
		return '<div class="popup_textarea" style="' + sStyle +'">'+hItem.label+'<br/><div><textarea id="'+hItem.pname+'" name="'+hItem.pname+'">'+hItem.value+'</textarea></div></div>';
	};
	this.buildCheckbox = function(hItem){
		if(hItem.important){
			return '<div class="popup_important">'+
				'<div class="lt"><div class="rt">&nbsp;</div></div>'+
				'<div class="ct">'+
				'<div class="popup_checkbox" style="height:auto;padding:0px 13px"><img click1="checkboxshower()" click2="checkboxshower2()" height="16" width="16" src="/images/check_2.gif" style="float: left; margin-right: 6px;" input="'+hItem.pname+'"/><span>'+hItem.label+'</span></div><input type="hidden" value="0" id="'+hItem.pname+'" name="'+hItem.pname+'" />'+
				'</div>'+
				'<div class="lb"><div class="rb">&nbsp;</div></div>'+
			'</div>';
		}else{
			if(hItem.req){
				return '<div class="popup_checkbox checkboxlist_item" style="height:auto;padding:5px 13px;display:none"><img height="16" width="16" src="/images/check_2.gif" style="float: left; margin-right: 6px;" input="'+hItem.pname+'"/><span>'+hItem.label+'</span></div><input type="hidden" value="0" id="'+hItem.pname+'" name="'+hItem.pname+'" />';
			}else{
				return '<div class="popup_checkbox checkboxlist_item"><img class="'+ (hItem.value==1 ? "checked" : "") +'" height="16" width="16" src="/images/check_'+ (hItem.value==1 ? "3" : "2") +'.gif" style="float: left; margin-right: 6px;" input="'+hItem.pname+'"/><span>'+hItem.label+'</span></div><input type="hidden" value="'+ (hItem.value==1 ? "1" : "0") +'" id="'+hItem.pname+'" name="'+hItem.pname+'" />';
			}
		}
	};
	this.buildCheckboxList = function(hItem){
		var sItems = '';
		if(hItem.value && hItem.value!=''){
			for(var i=0;i<hItem.items.length; i++){ if(hItem.items[i][0]==hItem.value) hItem.text = hItem.items[i][1]; }
		}
		var sValue = hItem.value ? hItem.value : '';
		var selected_item='';
		var selected_img=''
		for(var i=0;i<hItem.items.length; i++){
			if(hItem.items[i][0]==hItem.checked_default){
				selected_item = '1';
				selected_img = '/images/check_3.gif';
			}else{
				selected_item = '0';
				selected_img = '/images/check_2.gif';
			};
			sItems += '<div class="popup_checkbox" style="height:auto;padding:5px"><img height="16" width="16" src="'+selected_img+'" style="float: left; margin-right: 6px;" input="community_id_'+hItem.items[i][0]+'"/><span>'+hItem.items[i][1]+'</span></div>'+
				'<input type="hidden" value="'+selected_item+'" id="community_id_'+hItem.items[i][0]+'" name="community_id_'+hItem.items[i][0]+'" />';
		}
		this.z_index = this.z_index - 2;
		return '<div class="popup_caption">'+hItem.label+'</div>' + 
		'<div style="height:150px;width:190px;overflow-x:hidden;overflow-y:scroll">'+
		sItems+
		'</div>';
	};
	this.buildRadio = function(hItem){
		var sItems = '';
		for(var i=0;i<hItem.items.length; i++){
			if(hItem.value==hItem.items[i][0]){addclass='radio_cur'}else{addclass='radio'};
			sItems += '<div class="radio_item fl '+addclass+'" value="'+hItem.items[i][0]+'"><span>'+hItem.items[i][1]+'</span></div>';
		}
		sItems += '<input type="hidden" value="'+hItem.value+'" id="radio_'+hItem.name+'" name="radio_'+hItem.name+'" />';
		
		return '<div class="popup_caption">'+hItem.label+'</div>' + 
		'<div class="radio_block" style="margin-left:120px;">'+
		sItems+
		'<div class="clear"></div></div>';
	};
	this.buildComment = function(hItem){
		return '<div class="popup_comment">'+hItem.label+'</div>';
	};
	this.buildFile = function(hItem){
		return '<div class="popup_file"><div class="input-file" style="width:300px"><label><a class="popup_button" href="#"><span class="as"></span><span class="ss">Обзор</span><span class="sa"></span></a><input type="file" name="'+hItem.pname+'" class="popup_input_file"/></label><var><input type="text" name="my-input-file-path" value="'+hItem.label+'" readonly="readonly" />&nbsp;</var></div></div>'
		+ (hItem.comment ? '<div class="popup_comment2">'+hItem.comment+'</div>' : "");
	};
	this.buildPhone = function(hItem){
	    
//	    return '<td width="200" align="right" style="padding-top:5px;"><div class="input_caption" style="padding-right:20px">' + hItem.label + '<span class="purple">*</span>:</div></td>'
//		+ '<td valign="top"><div style="padding-bottom: 4px;z-index:12100;"><table input="msisdn" class="table_items validated_input"><tr style="z-index:12090;"><td width="100"><div class="" style="z-index:12080;"><div id="container_for_prefix_msisdn" style="width: 95px;position:relative;z-index:12070;" class="select"><input type="text" readonly="true" class="input_for_text" name="prefix_msisdn_text" style="width: 55px; z-index: 2000;left:0px;" value="+7 (RU)"><div style="width: 45px; z-index: 1999;" class="select_center"><div class="select_right f0">&nbsp;</div><div class="select_left f0">&nbsp;</div><div class="select_cen">&nbsp;</div></div><div style="width: 95px; display: none; z-index: 1998;" class="select_op"><div class="select_op_inner"><div class="sel_right f0">&nbsp;</div><div class="sel_left f0">&nbsp;</div><div class="select_op_inner_I0"><div class="select_op_inner_I1"><div id="paneScroll" style="width: 93px; height: 123px; overflow: hidden;"><div style="width: 75px; overflow: hidden;"><div class="select_op_item" val="7">+7 (RU)</div><div class="select_op_item" val="380">+380 (UA)</div><div class="select_op_item" val="375">+375 (BY)</div><div class="select_op_item" val="7">+7 (KZ)</div><div class="select_op_item" val="49">+49 (DE)</div><div class="select_op_item" val="972">+972 (IL)</div><div class="select_op_item" val="1">+1 (US)</div><div class="select_op_item" val="370">+370 (LT)</div><div class="select_op_item" val="371">+371 (LV)</div><div class="select_op_item" val="372">+372 (EE)</div><div class="select_op_item" val="1">+1 (CA)</div><div class="select_op_item" val="33">+33 (FR)</div><div class="select_op_item" val="44">+44 (UK)</div></div></div></div></div></div></div><input type="hidden" class="input_for_value" value="7" id="prefix_msisdn" name="prefix_msisdn"></div></div></td><td width="45"><div id="container_for_msisdn" style="width: 89px;" input="msisdn" class="sinput "><input type="text" maxlength="10" style="width: 69px;" default="" value="" name="msisdn1" id="msisdn1"><div class="sinput_left"><div class="sinput_right">&nbsp;</div></div></div></td></tr></table></div></td>';
    
		var sCodeList = '';
		for(var code in pref){
			if(code!=5 && code!=16){
				sCodeList = sCodeList + '<div val="'+code+'" class="select_op_item">+ '+pref[code]+'</div>';
			}
		}
		var s = 
		'<div class="select bselect" style="width:70px;" id="container_for_pref_msisdn">'
		+'<input type="text" value="+7" style="width:30px;z-index:3000;//margin-left:-14px;" id="prefix_msisdn" name="prefix_msisdn" class="input_for_text" readonly="true" default="">'
		+'<div class="select_center" style="width:20px;z-index:2999;">'
			+'<div class="select_right f0">&nbsp;</div>'
			+'<div class="select_left f0">&nbsp;</div>'
			+'<div class="select_cen">&nbsp;</div>'
			+'</div>'
		+'<div class="select_op" style="width:70px;display:none;z-index:2998" >'
		+'	<div class="select_op_inner">'
		+'		<div class="sel_right_13 f0" style="height:236px">&nbsp;</div>'
		+'		<div class="sel_left_13 f0" style="height:236px">&nbsp;</div>'
		+'		<div class="select_op_inner_I0" style="height:208px">'
		+'			<div class="select_op_inner_I1" style="height:208px">'
		+'			<div style="width:68px;overflow:hidden;height:208px" id="paneScroll">'
		+'				<div style="width:50px;overflow:hidden">'
		+ sCodeList
/*
		+'			<div val="ru" class="select_op_item">+7</div>'
		+'			<div val="ua" class="select_op_item">+380</div>'
				+'<div val="by" class="select_op_item">+375</div>'


				+'						<div val="de" class="select_op_item">+49</div>'


										+'<div val="il" class="select_op_item">+972</div>'



										+'<div val="us" class="select_op_item">+1</div>'


										+'<div val="lt" class="select_op_item">+370</div>'


										+'<div val="lv" class="select_op_item">+371</div>'


										+'<div val="ee" class="select_op_item">+372</div>'


										+'<div val="fr" class="select_op_item">+33</div>'


										+'<div val="uk" class="select_op_item">+44</div>'
*/


							+'</div></div></div></div></div></div>'
		+'<input type="hidden" name="pref_msisdn" id="pref_msisdn" value="ru" class="input_for_value" /></div>';

 return '<td width="200" align="right" valign="top" style="padding-top:2px;"><div class="input_caption" style="padding-right:20px;">' + hItem.label + '<span class="purple">*</span>:</div></td>'
	+ '<td valign="top"><div style="padding-bottom: 4px;z-index:12100;"><table input="msisdn" class="table_items validated_input"><tr style="z-index:12090;"><td width="76">'+ s +'</td><td width="45"><div id="container_for_msisdn" style="width: 90px;" input="msisdn" class="sinput "><input type="text" maxlength="10" style="width: 69px;" default="" value="" name="msisdn1" id="msisdn1"><div class="sinput_left"><div class="sinput_right">&nbsp;</div></div></div></td></tr></table></div></td>';

	};
	this.buildButton = function(hItem, i){
		return '<td width="'+ hItem.width +'"><div class="button_violet" style="width:'+ hItem.width +'px;"><a class="popup_button_handler" onclick="return false" href="#"><span class="as"></span><span class="ss">'
			+ hItem.text
			+ '</span><span class="sa"></span></a></div></td>';
	};
	
	
	this.initEvents = function(oWhere, hData){
		var t = this;
				
		$('a.popup_button_handler', oWhere).each(function(i){
			if(typeof hData.buttons != 'undefined'){
				var fn = hData.buttons[i].handler;
				if(!fn && oPopup.handler) fn = function(){
					var i = $(this).attr('i');
					t.handler(i);
				};
				if(fn && !t.mainHandler) t.mainHandler = fn;
				if(!fn) fn = t.closeViaButton;
				this.popup = t;
				$(this).click(fn);
			}
		});
		$('div.pop_x', oWhere).each(function(){
			this.popup = t;
			var fc = $('#activation_code').val();
			if(fc) $('#activation_code').val('');
			$(this).click(t.close);
		});
		$('input', oWhere).keydown(function(event){
			if(event.keyCode==13 && t.mainHandler){
				t.popup = t;
				t.mainHandler();
				return false;
			}
		});
		
	};
	
	this.getData = function(){
		var hData = {};
		$('input, textarea', this.jContainer).each(function(){
			if(this.name && this.name!='' && this.name!='my-input-file-path'){
				hData[this.name] = this.value;
			}
		});
		return hData;
	};
	
	this.submit = function(){
		this.jContainer.find('form').each(function(){
			this.submit();
		});
	};
	
	this.invalidate = function(hData, sError, autoHints){
		var t = this;
		$('.popup_alert, .additional_popuphints').hide();
		oPopup.initHint();
		for(var i in hData){
			var sPname = this.id_prefix + i;
			$('#popupalert_'+sPname, this.jContainer).fadeIn().attr('mytitle', hData[i]).hover(
				function(){
					var p = $(this).offset();
					oPopup.jHint.html($(this).attr('mytitle')).css({left: p.left + 23, top: p.top-5}).fadeIn();
				},
				function(){
					oPopup.jHint.fadeOut();
				}
			);
			if(autoHints){
				var p = $('#popupalert_'+sPname, this.jContainer).offset();
				var j = oPopup.jHint.clone().appendTo('body');
				j.html(hData[i]).css({left: p.left + 23, top: p.top-5}).fadeIn().addClass('additional_popuphints');
			}
		}	
		if(sError && sError!=''){
			this.jContainer.find('.popup_error').html(sError).show();
		} else {
			this.jContainer.find('.popup_error').hide();
		}
	};
	
	this.extend = function(h1, h2){
		h1 = h1 || {}; h2 = h2 || {};
		for(var i in h2) h1[i] = h2[i];
		return h1;
	};
		
	// special functions
	
	this.alert = function(sText, hData){
		hData = hData || {};
		sText = '<div style="font-size: 14px;">' + sText + '</div>';
		hData = this.extend({ items:[ sText ], buttons:[ {text:'Закрыть окно', width: 121} ], animate: hData.animate, z_index: 100000}, hData);
		this.show(hData);
	};

	
	this.question = function(sText, fnCallback){
		if(!sText) sText='';
		this.fnCallback = fnCallback;
		this.show({
			items:[ sText ],
			buttons:[ {text:'Да', handler: function(){
				this.popup.close();
				if(this.popup.fnCallback) this.popup.fnCallback(true);
				return false;
				
			} }, {text:'Нет', handler: function(){
				this.popup.close();
				if(this.popup.fnCallback) this.popup.fnCallback(false);
				return false;
			}} ]
		});
	};

	this.inputText = function(sText, sValue, fnCallback){
		if(!sText) sText='';
		this.fnCallback = fnCallback;
		this.show({
			prefix: 'input_text_',
			items:[ {type:'text', label: sText, name:'text', value: sValue} ],
			buttons:[ {text:'Ок', handler: function(){
					var s = $('#input_text_text').val();
					oPopup.close();
					if(oPopup.fnCallback) oPopup.fnCallback(s);
			}} ]
		});
	};
	
	
	
};

// оPopup теперь представляет собой объект для упрощения некоторых вызовов и управления всеми попапами
oPopup = {
	z_index: 800,
	saveBlock: false,
	items: [],
	stores: {},
	siteBlocker: null,
	no_busy: false,
	alert: function(sText, hData){
		this.closeAll();
		$('.header').block();
		var p = new Popup();
		p.alert(sText, hData);
		return p;
	},
	alert_with_block: function(sText, hData){
		this.closeAllWithBlock();
		var p = new Popup();
		p.alert(sText, hData);
		return p;
	},
	show: function(hData){
		this.closeAll();
		$('.header').block();
		if(hData.store);
		var p = new Popup();
		p.show(hData);
		return p;
	},
	showNoCloseAll: function(hData){
		this.no_busy = true;
//		$('.header').block();
		if(hData.store);
		var p = new Popup();
		p.show(hData);
		return p;
	},
	html_block: function(key){
		var obj = this;
		obj.show({html:'<div style="padding:20px" align="center"><img src="/images/ajax32.gif" /></div>'});
		Kolizeo.post('/html-block/',{key:key},function(data){
			obj.show({html:data});
		})
	},
	question: function(sText, fnCallback){
		var p = new Popup();
		p.question(sText, fnCallback);
		return p;
	},
	getZindex: function(){
		return 10000;
	},
	blockSite: function(){
		$('.header').block();
//		if(!this.siteBlocker){
//			this.siteBlocker = $('<div style="position:absolute;left:0px;top:0px;background:url(/images/patter.gif);width:100%;height:100%;z-index:999">&nbsp;</div>').appendTo("body");
//		}
//		this.siteBlocker.show();
	},
	unblockSite: function(){
			$('.header').unblock();
	    //		if(this.siteBlocker) this.siteBlocker.hide();
	},
/*	закомментил Афанасьев
	popupTest1: function(){
	var p = this.show({
			prefix: 'album',
			action:'/update.html',
			iframe: true,
			items:[
				{type:'text', label:'Название альбома:', name:'name', eye : true, comment: 'Название есть название, без название что это за альбом?'},
				{type:'select', label:'Категория альбома:', name:'cat', text: 'Выберите...',
					items: [ [1, 'Природа'], [2, 'Техника'], [3, 'Автомобили'] ]
				},
				{type:'select', label:'Категория 2 альбома:', name:'cat', text: 'Выберите...',
				items: [ [1, 'Природа'], [2, 'Техника'], [3, 'Автомобили'] ]
				},
				{type:'checkbox', label:'Со всем согласен:', name:'agry'},
				{type:'comment', label:'Не торопитесь со всем соглашаться!'},
				{type:'textarea', label:'Добавить комментарий:', name:'comment'},
				{type:'file', label:'Укажите картинку', name:'image'},
				{type:'comment', label:'Большое количество оптимизаций, в основном касающихся рейтинга и текущих штурмов. Изменилась формула начисления количество денег, которые один человек может получить во время штурма. Теперь количество зависит от уровня персонажа.'}
			],
			buttons:[ {text:'Ок', handler: function(){
				oPopup.question('Вы уверены?', function(b){
					if(b) oPopup.question('Вы уверены'); else oPopup.alert('Вы не уверены');
				});
				return false;
			} }, {text:'Отмена'} ]
		});
		p.invalidate({'name':'Не заполнено', 'image':'Картинка не указана'}, 'Не заполнены обязательные поля');
	},
	onSubmit : function(){
		return false;
	},
	*/
	_add: function(p){
		this.items.push(p);
	},
	_remove: function(p){
		var items = [];
		for(var i=0; i<this.items.length; i++){
			if(p!=this.items[i]) items.push(this.items[i]);
		}
		this.items = items;
	},
	_offset: function(){
		var cnt = this.items.length;
		return ({left: cnt * 16, top: cnt * 16});
	},
	close: function(){
		if(this.items.length > 0){
			var item = this.items[this.items.length-1];
			item.close();
			$('.header').unblock();
		}
	},
	closeAll: function(){
		var items = [];
		for(var i=0; i<this.items.length; i++) items.push(this.items[i]);
		for(var i=0; i<items.length; i++) items[i].close();
		$('.header').unblock();
	},
	closeAllWithBlock:function(){
		var items = [];
		for(var i=0; i<this.items.length; i++) items.push(this.items[i]);
		for(var i=0; i<items.length; i++) items[i].close();
	},
	free: function(){
		return (this.items.length == 0);
	},
	busy: function(){
		return (!this.free());
	},
	count: function(){
		return this.items.length;
	},
	initHint: function(){
		if(!this.jHint) this.jHint = $('<div class="popup_hint"></div>').appendTo('body');
	},
	upload: function(){
		$('#ph_name').focus();
		if ($('#ph_file').val()==''){
			alert('Вы не выбрали фото для загрузки');
			return false;
		}
		$('#ph_file').hide();
		window.location = "/profile/photos/";
	}
}

function checkboxshower(){
	$('.checkboxlist_item').show();
}
function checkboxshower2(){
	$('.checkboxlist_item').hide();
	$('#popupalert_copyright').hide();
	$('#popupalert_rules').hide();
}

