// Default functions and variables
var ua = navigator.userAgent.toLowerCase();
isOpera = ua.indexOf("opera") != -1;
isIE = ((ua.indexOf("msie") != -1) && !isOpera && (ua.indexOf("webtv") == -1));
isGecko = ua.indexOf("gecko") != -1;
isNetscape = ua.indexOf("netscape") != -1;

var divson = 0;
function switchDivs() {
	if (divson == 1) $('mark_div').className = 'dnone';
	else $('mark_div').className = 'dblock';
	divson = 1 - divson;
}

var arrItems = {};
arrItems['zflag'] = false;
function allocationSwitchShow(idContainer,classBlocks,display)
{
	var divToMoveFr = $(idContainer);
	var arr = divToMoveFr.childNodes;
	var arrL = arr.length;
	var str = '';
	for (var i = 0; i < arrL; i++)
	{
		if (arr[i].className && arr[i].className != 'undefined' && arr[i].className == classBlocks)
		{
			if (display) {
				arr[i].style.display = 'block';
				arr[i].style.visibility = 'hidden';

				if (!arrItems['zflag'])
				{
					id = arr[i].id;
					w = arr[i].offsetWidth;
					h = arr[i].offsetHeight;
					s = (w * h);
					z = Math.round(Math.sqrt(360000) - Math.sqrt(s));
					arrItems[id] = {'w' : w, 'h' : h, 's' : s, 'z' : z};
					arr[i].style.zIndex = arrItems[id].z;
				}

				arr[i].style.visibility = 'visible';
			}
			else arr[i].style.display = 'none';
		}
	}
	if (display) arrItems['zflag'] = true;
}


function viewAlocation(PID,show,all)
{
	if (all)
	{
		var divToMoveFr = $(PID);
		var arr = divToMoveFr.childNodes;
		var arrL = arr.length;
		var str = '';
		for (var i = 0; i < arrL; i++)
		{
			if (arr[i].className && arr[i].className != 'undefined' && arr[i].className == all)
			{
				var tmpID = arr[i].id;
				var PID = /\d+/.exec(tmpID);
				var alPic = $('pers_' + PID + '_pic');
				if(alPic) {
					if (show)
					{
						arr[i].style.border = '1px solid #909090';
						alPic.style.border = '1px solid #E6E6E6';
					} else {
						arr[i].style.border = '0 none';
						alPic.style.border = '0 none';
					}
				}
			}
		}
	} else {
		var al = $('pers_' + PID); // al aka allocation
		var alPic = $('pers_' + PID + '_pic');
		var alTxt = $('pers_' + PID + '_txt');

		if (show)
		{
			al.style.border = '1px solid #909090';
			alPic.style.border = '1px solid #E6E6E6';
			alTxt.style.display = 'block';
			if (!arrItems[PID])
			{
				alTxt.style.visibility = 'hidden';// иначе ширины не получить!
				alTxt.style.width = alTxt.offsetWidth > arrItems['pers_' + PID].w ? 'auto' : ((2 + parseInt(arrItems['pers_' + PID].w))+ 'px');
				alTxt.style.left = alTxt.offsetWidth > arrItems['pers_' + PID].w ? ('-' + Math.round(Math.abs((alTxt.offsetWidth - arrItems['pers_' + PID].w) / 2)) + 'px') : '-1px';
				if ((alPic.offsetHeight + al.offsetTop + alTxt.offsetHeight + 1) > parseInt($('centralImgId').height)) {
					alTxt.style.top = '-' + (alTxt.offsetHeight) + 'px';
				}
				arrItems[PID] = true;
				alTxt.style.visibility = 'visible';
			}
		} else {
			al.style.border = '0 none';
			alPic.style.border = '0 none';
			alTxt.style.display = 'none';
		}
	}
}


function positionBorderFriends()
{
// с проверкой на загрузку после force login
	if (get_allocationFriends && ActiveUserNick()) {
		if ($('crop_bound')) {
			//allocationSwitchShow('crop_bound','allocation',true);
			allocationSwitchShow('crop_bound','allocation');
		}
		mark_working = 1;
	}
	else {
		if ($('crop_bound')) {
			allocationSwitchShow('crop_bound','allocation',true);
		}
		mark_working = 0;
	}
}

function fotoCrop(){
        try{
	this.croper = new rm_Crop('crop_bound');

	var _this = this;
	this.croper.addEventListener( rm_Crop.ON_STATE_CHANGE, function(p){_this.updateInputs(p)} );
	this.croper.addEventListener( rm_Crop.ON_START_CHANGE, function(p){_this.hideButtons(p)} );
	this.croper.addEventListener( rm_Crop.ON_STOP_CHANGE, function(p){_this.showButtons(p)} );
	} catch(e){}
}

fotoCrop.prototype = {
	params: {},
	hideAll: function (){
		this.croper.display('none');
		this.hideButtons();
		if($('crop_bound')) allocationSwitchShow('crop_bound','allocation',true);
	},
	hideButtons: function () {
		$('rm_buttons').style.display = 'none';
	},
	showButtons: function (param) {
		if( !param.crop.visible || !param.crop.frame.inited )
			return;
		$('rm_buttons').style.left = param.l + (param.w / 2 - 148 / 2) + 'px';
		$('rm_buttons').style.top = param.t + param.h + 10 + 'px';
		$('rm_buttons').style.display = 'block';
	},
	updateInputs: function (param) {
		this.params = param;
	}
}

var crop;
var mark_working = 0;
var get_allocationFriends = getGet('allocationFriends');

addHandler(window, 'load', function(){
	if ($('cropToggle') && $('cropToggle').href.indexOf('login') == -1)
	{
		var params = false;
		var paramsDefault = function() {
			return {
				l: crop.croper.frame.max_x / 2 - 50,
				t: crop.croper.frame.max_y / 2 - 50,
				w: 100,
				h: 100,
				crop: crop.croper
			}
		}
		crop = new fotoCrop();
		if(typeof spot == 'undefined') $('cropToggle').href = 'javascript:void(0);';

// after click on button
                if(typeof spot == 'undefined'){
		addHandler($('cropToggle'), 'click', function(){
			if( crop.croper.display() )
			{
				if( !params ) {
					params = paramsDefault();
				}
				crop.croper.initFromParams(params);
				if($('crop_bound')) {
					allocationSwitchShow('crop_bound','allocation');
				}
				mark_working = 1;
			} else {
				if($('crop_bound')) {
					allocationSwitchShow('crop_bound','allocation',true);
				}
				mark_working = 0;
			}
			crop.hideButtons();
		});
		}

// after force login
		if (get_allocationFriends && ActiveUserNick())
		{
			crop.croper.display();
			crop.croper.initFromParams(paramsDefault());
			allocationSwitchShow('crop_bound','allocation');
			mark_working = 1;
			crop.hideButtons();
		}
	}
});
addHandler(window,'load', positionBorderFriends);
//addHandler(window,'resize',positionBorderFriends);
























function splitDataValue(varString)
{
	var arrsplitDataValue = varString.split('|');
	for (var i = 0; i < arrsplitDataValue.length; i++)
	{
		var tmp_arrsplitDataValue = arrsplitDataValue[i].split('=');
		document.formNameFriendName.elements['selUser_' + tmp_arrsplitDataValue[0]].value = tmp_arrsplitDataValue[1];
		alert(document.formNameFriendName.elements['selUser_' + tmp_arrsplitDataValue[0]].value);
	}
}



function alpha(obj,opacity)
{
	var ua = navigator.userAgent.toLowerCase();
	isIE=((ua.indexOf("msie")!=-1) && (ua.indexOf("opera")==-1) && (ua.indexOf("webtv")==-1));
	var moz = opacity/100;
	if (isIE) {obj.filters.alpha.opacity=opacity;}
	else {
	obj.style.opacity=moz;
	obj.style.MozOpacity=moz; }
}



// Код для фильтра
var spanClass = 'aslink';
var nameInput = 'nameOfSelectedMan';
var arrFriendList = new Array();
function filterFriendList()
{
	var stringForFilter = document.formNameFriendName.inpNameFriend.value;// значение вводимое пользователем
	var blockContentFriendList = $('listFriend_nameFriend');
	var goodName = false;
	var string_listFriend = '';
	while(blockContentFriendList.lastChild) {blockContentFriendList.removeChild(blockContentFriendList.lastChild);}
	if (stringForFilter != '')
	{
		tmp_ul = blockContentFriendList;
		for (var i = 0; i < arrFriendList.length; i++)
		{
			var splitName = arrFriendList[i][1].split(' ');
			splitName = splitName.length ? splitName : [splitName];

			for (var j = 0; j < splitName.length; j++)
			{
				if (splitName[j].toLowerCase().substr(0, stringForFilter.length) == stringForFilter.toLowerCase())
					{goodName = true; break;}
				else {goodName = false;}
			}

			if (goodName)
			{
				string_listFriend += '<li><label><input type="radio" name="nameOfSelectedMan" id="iam' + arrFriendList[i][2] + '" value="' + arrFriendList[i][0] + '" style="margin-bottom: -2px;" /><span class="aslink">' + arrFriendList[i][1] + '</span><\/label><\/li>';
			}
		}
		tmp_ul.innerHTML = string_listFriend;
	}
	else
	{
		tmp_ul = blockContentFriendList;
		for (var i = 0; i < arrFriendList.length; i++)
		{
			string_listFriend += '<li><label><input type="radio" name="nameOfSelectedMan" id="iam' + arrFriendList[i][2] + '" value="' + arrFriendList[i][0] + '" style="margin-bottom: -2px;" /><span class="aslink">' + arrFriendList[i][1] + '</span><\/label><\/li>';
		}
		tmp_ul.innerHTML = string_listFriend;
	}
}
/* формирование списка друзей методами DOM
tmp_li = blockContentFriendList;//document.createElement('li');
tmp_label = document.createElement('label');
tmp_input = document.createElement('input');
tmp_input.setAttribute('type','radio');
tmp_input.name = nameInput;
tmp_input.id = 'iam' + arrFriendList[i][2];
tmp_input.value = arrFriendList[i][0];
tmp_input.style.marginBottom = '-2px';
tmp_span = document.createElement('span');
tmp_span.className = spanClass;
tmp_text = document.createTextNode(arrFriendList[i][1]);

tmp_span.appendChild(tmp_text);
tmp_label.appendChild(tmp_input);
tmp_label.appendChild(tmp_span);
tmp_li.appendChild(tmp_label);
tmp_ul.appendChild(tmp_li);*/

/*if (document.attachEvent){gebi('inpNameFriend').attachEvent('onkeypress',filterFriendList);}
else if (document.addEventListener){gebi('inpNameFriend').addEventListener('keypress',filterFriendList,false);}*/


if (document.attachEvent){window.attachEvent('onload',function(){$('inpNameFriend').attachEvent('onkeyup',filterFriendList);});}
else if (document.addEventListener){window.addEventListener('load',function(){$('inpNameFriend').addEventListener('keyup',filterFriendList,false);},false);}
// \Код для фильтра



function loadMyFriendsCallback(arr,error)
{
	//alert(arr);
	if(arr == 0)
	{
		alert('Владелец фото не является вашим другом.');
		formNameFriendNameReset();
		crop.hideAll();
		if($('crop_bound')) allocationSwitchShow('crop_bound','allocation',true);
		return false;
	}
	if(!arr.length)
		{arr = [arr];}

	var string_listFriend = "";
	for (var i=0; i<arr.length; i++)
	{
		if ((arr[i].LastName != null && arr[i].FirstName != null) && (arr[i].LastName != '' || arr[i].FirstName != ''))
			{tmp_nameFriendInList = arr[i].LastName + " " + arr[i].FirstName;}
		else if (arr[i].Nick != null && arr[i].Nick != '')
			{tmp_nameFriendInList = arr[i].Nick;}
		else if (arr[i].Email != '')
			{tmp_nameFriendInList = arr[i].Email;}
		else
			{tmp_nameFriendInList = 'Отсутствуют идентификационные данные';}

		nameFriendInList = (i == 0) ? 'Это я!' : tmp_nameFriendInList;
		string_valueLi = arr[i].ID;

		// Код для фильтра
		arrFriendList[i] = [string_valueLi,nameFriendInList,i];
		// Код для фильтра

		string_listFriend += '<li><label><input type="radio" name="nameOfSelectedMan" id="iam' + i + '" value="' + string_valueLi + '" style="margin-bottom: -2px;" /><span class="aslink">' + nameFriendInList + '</span><\/label><\/li>';
	}
	document.formNameFriendName.inpNameFriend.value = '';
	document.formNameFriendName.inpNameFriend.focus();
	$('listFriend_nameFriend').innerHTML = string_listFriend;


}

//var checkedRadio;
function whichOneChecked(obj)
{
	if (!obj.length)//
		{obj = [obj];}
	for (var i = 0; i < obj.length; i++)
	{
		if (obj[i].checked){var checkedValue = obj[i].value;break;}
	}
	return checkedValue;
}

//var current_album_id = '##album_id##';
//var current_image_id = '##image_id##';
function submitFormNameFriendName()
{
	var nameOfSelectedManObj = document.forms['formNameFriendName'].elements['nameOfSelectedMan'];
	var person_id = (!nameOfSelectedManObj || whichOneChecked(nameOfSelectedManObj) == undefined) ? 0 : whichOneChecked(nameOfSelectedManObj);

	var inpNameFriendValue = document.formNameFriendName.inpNameFriend.value;
	//var lengthInpNameFriend = inpNameFriendValue.length > 80 ? 80 : inpNameFriendValue.length;
	var person_nick = (person_id == 0) ? inpNameFriendValue.substr(0,80) : 0;

	if (person_id == 0 && person_nick == 0)
	{
		alert('Для обозначения выделенного друга выберите его Имя из списка или впишите самостоятельно');
		disabledFieldsTimer('formNameFriendName','formNameFriendSubmit','formNameFriendNameCancel','disFalse');
		return;
	}
	var amendment = 10;//isOpera ? 12 :
	var top = crop.params.t + amendment;
	var left = crop.params.l + amendment;
	var height = crop.params.h;
	var width = crop.params.w;
	var person_email = 0;

	ajax_call('perl_add_person',current_album_id,current_image_id,top,left,height,width,person_email,person_id,person_nick,addPersonCallback);
	return false;
}

function addPersonCallback(id,top,left,height,width,person_nick,person_email,path)
{
	person_Items++;
	//alert(id+" : "+top+" : "+left+" : "+height+" : "+width+" : "+person_nick+" : "+person_email+" : "+path);
	if(!id)
	{
		alert(top);
		formNameFriendNameReset();
		return false;
	}
	//TODO: make selection with top,left,height,width,person_nick
	//alert(person_nick);
	if (!person_nick) {person_nick = person_email;}
	if (person_email!=0)
	{
		person_nick_signature = '<a href="http://' + path + '">' + person_nick + '<\/a>';
		person_space = '<a href="http://' + path + '"><img src="http://img.mail.ru/0.gif" width="' + width + '" height="' + height + '" border="0" alt="" /></a>';
	}
	else
	{
		person_nick_signature = '<span>' + person_nick + '<\/span>';
		person_space = '<img src="http://img.mail.ru/0.gif" width="' + width + '" height="' + height + '" border="0" alt="" />';
	}

	var amendment_x = 10;//(isIE || isOpera) ?  : 3
	var amendment_y = 10;//(isIE || isOpera) ?  : 4
	var string_borderFriend = '<div id="pers_' + id + '_pic" class="pic" style="width: ' + width + 'px; height: ' + height + 'px;">' + person_space + '<\/div>' +
		'<div id="pers_' + id + '_txt" class="box_txt" style="top: ' + (parseInt(height) + 2) + 'px;"><div class="txt" align="center">' + person_nick_signature + '<\/div><\/div>';

	var deleteButton = '';
	deleteButton = '<a href="#" onclick="if(confirm(\'Удалить отмеченного друга?\')) {ajax_call(\'perl_delete_person\',\'' + current_album_id + '\',' + current_image_id + ',\'\',' + id + ',deletePersonCallback); return false;}" onmouseover="if (mark_working == 0) viewAlocation(\'' + id + '\', true);" onmouseout="if (mark_working == 0) viewAlocation(\'' + id + '\');"><img src="http://img.mail.ru/mail/ru/images/my/ico_delete_bold.gif" style="margin: 0 2px 0 2px; vertical-align: -4px;" class="delete_button" onMouseOver="alpha(this,100)" onMouseOut="alpha(this,25)" /><\/a>';

	var string_nameFriendHead ='<span id="AlbumName_listNames" class="nowrap">Уже отмечены: <\/span>';// style="margin-left:-82px;"
	var string_comma = '';
	var string_nameFriend = '';
	if ($('AlbumName_listNames') && (($('AlbumName_listNames').style.display == '') || ($('AlbumName_listNames').style.display == 'block')))
		{string_comma = ', ';}
	else if (!$('AlbumName_listNames'))
		{string_nameFriend += string_nameFriendHead;}
	else if ($('AlbumName_listNames') && (($('AlbumName_listNames').style.display == 'none')))
		{$('AlbumName_listNames').style.display = 'inline';}

	if (person_email!=0)
		{string_nameFriend += '<span id="span_' + id + '">' + string_comma + '<a href="http://www.mail.ru/agent?message&amp;to=' + person_email + '"><img src="http://status.mail.ru/?' + person_email + '" width="13" height="13" style="margin-right: 3px; vertical-align: -2px;" alt="" /><\/a><a href="http://' + path + '" target="_blank" onmouseover="if (mark_working == 0) viewAlocation(\'' + id + '\', true);" onmouseout="if (mark_working == 0) viewAlocation(\'' + id + '\');">' + person_nick + '<\/a>' + deleteButton + '<\/span';}
	else
		{string_nameFriend += '<span id="span_' + id + '">' + string_comma + '<span onmouseover="if (mark_working == 0) viewAlocation(\'' + id + '\', true);" onmouseout="if (mark_working == 0) viewAlocation(\'' + id + '\');" style="color: #666666; cursor: hand; cursor: pointer;">' + person_nick + '<\/span>' + deleteButton + '<\/span>';}

	var allocationNew = document.createElement('div');
	allocationNew.id = 'pers_' + id;
	allocationNew.className = 'allocation';
	$('crop_bound').appendChild(allocationNew);
	allocationNew.style.position = 'absolute';
	allocationNew.style.top = (parseInt(top) - 2 - amendment_y) + 'px';
	allocationNew.style.left = (parseInt(left) - 2 - amendment_x) + 'px';
	allocationNew.style.width = (parseInt(width) + 2) + 'px';
	allocationNew.onmouseover = function(){
		viewAlocation(id, true);
	};
	allocationNew.onmouseout = function(){
		viewAlocation(id);
	};
	allocationNew.innerHTML = string_borderFriend;
	$('block_selFriends').innerHTML += string_nameFriend;
	$('pers_' + id).style.display = 'block';

	//id = id;
	w = 2 + parseInt(width);
	h = height;
	s = (w * h);
	z = Math.round(Math.sqrt(360000) - Math.sqrt(s));
	arrItems['pers_' + id] = {'w' : w, 'h' : h, 's' : s, 'z' : z};
	$('pers_' + id).style.zIndex = arrItems['pers_' + id].z;

	mark_working = 0;// условие неработы выделения, для показа выделений с ссылок
	formNameFriendNameReset();
	return true;
}

/*var person_Items;
if('##person_Items##' == '') {person_Items = 0;}
else {person_Items = '##person_Items##';}*/
function deletePersonCallback(id,error)
{
	//alert('id = ' +id);
	if(!id){alert(error);return false;}
	//alert($('pers_' + id));
	//TODO: remove selection with id == id

	$('pers_' + id).parentNode.removeChild($('pers_' + id));
	$('span_' + id).parentNode.removeChild($('span_' + id));
	//$('pers_' + id).style.display = 'none';
	//$('span_' + id).style.display = 'none';
	person_Items--;
	if (person_Items <= 0)
	{
		$('AlbumName_listNames').style.display = 'none';
		$('div_mb_person').style.display = 'none';
	}

}






// Дисаблит поля на 10 секунд
// Если нет аргументов или есть спец. флаг - функция открывает формы
var arrShadowButton = new Array();
var timer_disabledFields;
var running = false;
function disabledFieldsTimer(formName,but_1,but_2,flagTimer)
{
	if (!formName)
	{
		if (!arrShadowButton.length)
		{
			arrShadowButton[0] = document.forms[formName].elements[but_1];
			arrShadowButton[1] = document.forms[formName].elements[but_2];
		}
		arrShadowButton[0].disabled = false;
		arrShadowButton[1].disabled = false;
		clearTimeout(timer_disabledFields);
		timer_disabledFields = null;
		arrShadowButton = [];
	}
	else
	{
		arrShadowButton[0] = document.forms[formName].elements[but_1];
		arrShadowButton[1] = document.forms[formName].elements[but_2];

		if (flagTimer == 'disFalse')
		{
			arrShadowButton[0].disabled = false;
			arrShadowButton[1].disabled = false;
			clearTimeout(timer_disabledFields);
			timer_disabledFields = null;
			arrShadowButton = [];
		}
		else
		{
			arrShadowButton[0].disabled = arrShadowButton[0].disabled == true ? false : true;
			arrShadowButton[1].disabled = arrShadowButton[1].disabled == true ? false : true;

			if (flagTimer == true) {running = true;}
			else {running = false;}

			var disFlag = arrShadowButton[0].disabled == true && arrShadowButton[1].disabled == true ? true : false;
			if (running == true && disFlag)
				{timer_disabledFields = setTimeout('disabledFieldsTimer()', 10000);}
		}
	}
}

// Показывает указанный блок и передаёт формы для дисебла другой функции
function upListFriendBlock(idBlock,formName,but_1,but_2,flagTimer)
{
	$(idBlock).style.display = 'block';
	disabledFieldsTimer(formName,but_1,but_2,flagTimer);
	ajax_call('perl_load_myfriends','carp','carp',loadMyFriendsCallback);
}

// Деблокирует все кнопки и закрывает слои выделения и блок друзей
function formNameFriendNameReset()
{
	disabledFieldsTimer('formNameFriendName','formNameFriendSubmit','formNameFriendNameCancel','disFalse');
	disabledFieldsTimer('cropperForm','person_pop_up_submit','person_pop_up_reset','disFalse');
	$('div_nameFriend').style.display = 'none';
	crop.hideAll();
	//switchDivs();
}

