var background = false;

function open_frame(){
	Element.show('background');
	$('background').style.height = document.body.offsetHeight;
	background = true;
}

function close_frame(){
	Element.hide('background');
	background = false;
}


function click_esc(ev){
	ev || (ev = window.event);
	if(ev.keyCode == 27 && background){
		close_frame();
	}
}
function clearParticipant(num){
	$('Participant' + num).remove();
}

function NewForm(form){
	new Insertion.Before(form+'UserPromt', $('New'+form).innerHTML);
}

function ViewForm(form){
	if(form == 'Client') {
		if($F('uProjectUclientId') != ''){
			alert('Вы уже выбрали клиента!'); return;
		}
		$('uProjectUclientId').toggleClassName('required');
		$('ClientSelect').toggle();
	}
	$("Add" + form).toggle();
	$$('input.connect_'+form).invoke('toggleClassName', 'required').invoke('setValue', '');
	$(form+"UserPromt").toggle();
}

function setMark(path, mark){
	new Ajax.Updater('userMark', path + '/' + mark);
}

function showMark(mark){
	for(var i=1; i<6; i++){
		if(i <= mark)$('star'+i).src = '/img/UserStar_over.gif';
		else $('star'+i).src = '/img/blankStar_over.gif';
	}
	setTitle($('star'+mark).alt);
}

function clearMark(mark, title){
	for(var i=1; i<6; i++){
		if(i <= mark)$('star'+i).src = '/img/UserStar.gif';
		else $('star'+i).src = '/img/blankStar.gif';
	}
	setTitle(title);
}

function setTitle(title){
	$('titleMark').update(title);	
}

function afterLogin(json, text){
	if(json){
		$('login').update(text);
		$('login').innerHTML;
	}
	else{
		$('Content').update(text);
		$('Content').innerHTML;
	}
}

function changeCommentText(act, id){
	if(act == 'smile'){//id = smile
		Element.hide('F2');
		tinyMCE.execCommand('mceInsertContent', false, '<img src="/img/smiles/'+id+'">');
	}
	else{
		Element.hide('F1');
		
		switch(act){
			case 'bold':
				tinyMCE.get('CommentText'+id).execCommand('Bold');
				break;
			case 'italic':
				tinyMCE.get('CommentText'+id).execCommand('Italic');
				break;
			case 'img':
				alert('Пока не работает!');
//				tinyMCE.get('CommentText').execCommand('Italic');
				break;
			case 'url':
				alert('Пока не работает!');
//				tinyMCE.get('CommentText').execCommand('Italic');
				break;
			case 'quote':
				tinyMCE.execCommand('mceReplaceContent',false,'&quot;{$selection}&quot;');
				break;
		}
	}
}

var show_element = null;
function pulldown(show_element_id, class_name){
	if(show_element != null) Element.hide(show_element);
	
	if(show_element != show_element_id){
		show_element = show_element_id;

		Element.show(show_element_id);
		Element.addClassName(class_name);
	}
	else show_element = null;
	
	return false;
}

var login_error = false;

function validateField(field, id){
	var error = false;
	
	switch (field){
		case 'login':
			var reg = /^[a-zA-Z0-9\-\_]{1,16}$/;
			
			if($F('UserLogin').length > 16)  error = 'Максимальная длина Логина - 16 символов';
			else if($F('UserLogin') == $F('UserPassword')) error = 'Логин и пароль не должны совпадать';
			else if(!reg.test($F('UserLogin')))   error = 'Логин может содержать латинские символы, цифры, символ подчеркивания (”_”) и дефис (”-”)';
			else {
				new Ajax.Request('/users/validateLogin',
				{
					method: 'post', parameters: 'data[login]=' + $F('UserLogin'),
					onComplete: function(transport, json) {
						if(json){
							error = 'Уже зарегестрирован пользователь с таким логином';
							alert(error);

							login_error = true;
						}
						else login_error = false;
					}
				});
			}
			break;
		case 'email':
			var reg = /^([a-z0-9][a-z0-9_\-\.\+]*)@([a-z0-9][a-z0-9\.\-]{0,63}\.[a-z]{2,4})$/;	
			if(!reg.test($F(id)))   error = 'Неправильный формат e-mail';
			break;	
		case 'phone':
			var reg = /^(\+)*([0-9\-\(\)\ ]){7,}$/;	
			if(!reg.test($F(id)))   error = 'Телефон может содержать цифры, ”-”, ”+”, пробел, скобки.';		
			break;	
		case 'text':
			if($F(id).length > 700)  error = 'Вы ввели больше 700 символов!';
			break;	
		case 'site':
			break;	
		case 'zip':
			var reg = /^\d{6}$/;	
			if(!reg.test($F(id)))   error = 'Индекс должен содержать 6 цифр.';
			break;	
		case 'password':
			if($F('UserPassword').length < 4 || $F('UserPassword').length > 20)  error = 'Пароль должен содержать от 4 до 20 символов';
			else if($F('UserLogin') == $F('UserPassword')) error = 'Логин и пароль не должны совпадать';
			break;	
		case 'confirm':
			if($F('UserConfirmPassword') != $F('UserPassword')) error = 'Пароли не совпадают';
			break;	
	}
	
	
	if(error){
		alert(error);
	}
	
	return error;
}

function validateForm(step){
	
	if(login_error){
		alert('Уже зарегестрирован пользователь с таким логином');
		return false;
	}
	
	var error = false;
	if(step == 1){
		if (!$('UserTypePrivate').checked && (!$('subtype1').checked && !$('subtype2').checked)){
				alert('Выберите тип регистрации');
				return false;
			}
		var fields = ['login', 'password', 'confirm', 'email'];
	}
	else if(step == 2 && !$('Licence').checked){
		alert('Для регистрации вы должны принять Лицензионное соглашение');
		return false;		
	}
	else if (step == 2){
		var fields = ['email', 'phone', 'text', 'zip', 'site'];
	}
	else{ //EDIT Settings
		var fields = ['login', 'password', 'confirm', 'email'];
	}


	$$('input.required, textarea.required, select.required').each(function(e){
//		alert(e.id);
		if($F(e) == ''){ 
			error = true;
		}
	});

	if(error){
		alert('Заполните обязательные поля');
		return false;
	}

	fields.each(function(field){
		$$('input.' + field).each(function(e){
			if(!error && $F(e) != '') error = validateField(field, e);
		});

	});
	return !error;
}


$$('*.group_required').each(function(group){
	var inputs = group.select('input');
	inputs.invoke('observe', 'change', function(){groupInputs(inputs)});
});

function groupInputs(inputs){
	if(inputs.find(function(val){return (val.value != '');})){ inputs.invoke ('addClassName', 'required'); }
	else {inputs.invoke ('removeClassName', 'required');}
}

function validateTotalForm(){
	error = 0;
	$$('input.error, textarea.error, select.error').invoke('removeClassName', 'error');
	
	//validate required fields
	$$('input.required, textarea.required, select.required').each(function(elem){
		if($F(elem) == ''){
			elem.addClassName('error');
			error = 1;
		}	
	});
	
	if (error){
		alert('Заполните, пожалуйста, все обязательные поля!');
		return false;		
	} 
	
	return true;
}


var list = 0;
function toggleList(t){//alert(elem.id);
	$$('dd.subcategories').each(function(elem) {
		if(list){
			elem.hide();
			elem.up().removeClassName('activ');
		}
		else{
			elem.show();
			elem.up().addClassName('activ');
		}
	});
	list = 1 - list;
	if(list)  t.update('Свернуть список');
	else t.update('Раскрыть список');
}

var confirm_form_display = false;
function beforeDelete(name, type){
//	if(!confirm_form_display){
//		$('delete_client_name').update(name);
//		$('confirm_'+type+'_form').show();
//		confirm_form_display = true;
//	}
//	
//	return false;

	return window.confirm('Вы действительно хотите удалить клиента «'+name+'»?');
}

//============	Comments ======================//
function sendComment(form, action, id, update){
	if(tinyMCE.get('CommentText' + id).getContent({format : "text"}) != ""){
		$('CommentText' + id).setValue(tinyMCE.get('CommentText' + id).getContent({format : "text"}));
	 	new Ajax.Updater(update,'/comments/'+action, {
	 		asynchronous:true, 
	 		evalScripts:true, 
	 		parameters:Form.serialize(form), 
	 		requestHeaders:['X-Update', 'CommentBlock']
	 	}); 
	}
}
//============  SETUP TOOLTIPS  ===============//
function DeleteFromTip(path){
	if(window.confirm('Вы действительно хотите удалить?')){
		new Ajax.Request('/profile/delete/' + path,
		{
			onComplete: function(transport, json) { if(json) document.location.reload();}
		}
		);
	} 
	else return false;
}
function TooltipTxt(data)
{ 
	var a_edit = new Element('a', { href: '/profile/edit/'+data.join("/") }).update("Редактировать").wrap('li', { 'class': 'redact' });
	var a_delete = new Element('a', { 'onclick' : 'return DeleteFromTip(\''+data.join("/")+'\');' }).update("Удалить").wrap('li', { 'class': 'dalete' });

    tip = "<div class='JS1' id=Tip1>";
    tip += "<div class=JS11><ul>";
    tip += a_edit.wrap('li').innerHTML;
    tip += a_delete.wrap('li').innerHTML;
    tip += "</ul></div></div>";
    return tip;
}
function TooltipTxt2(id)
{ 
	var a_edit = new Element('a', { href: '/profile/edit/'+id }).update("Редактировать").wrap('li');

    tip = "<div class='JS3' id=Tip1>";
    tip += "<div class=JS11><ul>";
    tip += a_edit.wrap('li').innerHTML;
    tip += "</ul></div></div>";
    
    return tip;
}
//=========================OFFERS============================//

function changeOfferImage(images, id, type){
	
	if(!id) return;
	
	var src = images[type][id];
	$("ExampleIcon").update("<img src='/img/icons/"+type + "/" + src+"'>");
	
	return id;
}