function srAddEvent(obj, type, fn) { 
	if (obj.addEventListener) obj.addEventListener(type, fn, false);
	else if (obj.attachEvent) obj.attachEvent("on"+type, fn );
}

srAddEvent(window, 'load', restoreDataForm);
srAddEvent(window, 'load', videocastsHeightResize);
srAddEvent(window, 'load', inputLimit);

var g_reloaded = new Array ();
g_reloaded['cities'] = false;
g_reloaded['developer_type'] = false;
g_reloaded['task_type'] = false;

function developers_advanced_search () {
	var oForm = document.getElementById ('advanced_search_form');
	var oArr = document.getElementById ('b_arr');
	if (oForm.style.display == 'none') {
		oForm.style.display = 'block';
		oArr.innerHTML = '<a href="/buy_now/find_webdevs/" onclick="developers_advanced_search (); return false;">&#160;&#8593;&#160;</a>';
	} else {
		oForm.style.display = 'none';
		oArr.innerHTML = '<a href="/buy_now/find_webdevs/" onclick="developers_advanced_search (); return false;">&#160;&#8595;&#160;</a>';
	}
}

function reloadSelect (elementId) {
	var oElement = document.getElementById (elementId);
	if (elementId == 'select_cities') {
		g_reloaded['cities'] = true;
		var sValue = oElement.value;
		if (sValue == '' || sValue == 0) {
			g_reloaded['cities'] = false;
			return false;
		}
		if (g_reloaded['task_type'] == false) {
			var dValue = document.getElementById('select_developer_type').value;
			if (dValue != '' || dValue != 0) {
				loadSelOptions ('task_type', sValue, elementId, dValue, 'select_developer_type');
			} else {
				loadSelOptions ('task_type', sValue, elementId);
			}
		}
		if (g_reloaded['developer_type'] == false) {
			var dValue = document.getElementById('select_task_type').value;
			if (dValue != '' || dValue != 0) {
				loadSelOptions ('developer_type', sValue, elementId, dValue, 'select_task_type');
			} else {
				loadSelOptions ('developer_type', sValue, elementId);
			}
		}
	}
	else if (elementId == 'select_developer_type') {
		g_reloaded['developer_type'] = true;
		var sValue = oElement.value;
		if (sValue == '' || sValue == 0) {
			g_reloaded['developer_type'] = false;
			return false;
		}
		if (g_reloaded['cities'] == false) {
			var dValue = document.getElementById('select_task_type').value;
			if (dValue != '' || dValue != 0) {
				loadSelOptions ('cities', sValue, elementId, dValue, 'select_task_type');
			} else {
				loadSelOptions ('cities', sValue, elementId);
			}
		}
		if (g_reloaded['task_type'] == false) {
			var dValue = document.getElementById('select_cities').value;
			if (dValue != '' || dValue != 0) {
				loadSelOptions ('task_type', sValue, elementId, dValue, 'select_cities');
			} else {
				loadSelOptions ('task_type', sValue, elementId);
			}
		}
	}
	else if (elementId == 'select_task_type') {
		g_reloaded['task_type'] = true;
		var sValue = oElement.value;
		if (sValue == '' || sValue == 0) {
			g_reloaded['task_type'] = false;
			return false;
		}
		if (g_reloaded['cities'] == false) {
			var dValue = document.getElementById('select_developer_type').value;
			if (dValue != '' || dValue != 0) {
				loadSelOptions ('cities', sValue, elementId, dValue, 'select_developer_type');
			} else {
				loadSelOptions ('cities', sValue, elementId);
			}
		}
		if (g_reloaded['developer_type'] == false) {
			var dValue = document.getElementById('select_cities').value;
			if (dValue != '' || dValue != 0) {
				loadSelOptions ('developer_type', sValue, elementId, dValue, 'select_cities');
			} else {
				loadSelOptions ('developer_type', sValue, elementId);
			}
		}
	}
}

function reloadSelectNew (oElement) {
	if (oElement.id == 'select_cities') {
		g_reloaded['cities'] = true;
		var sValue = oElement.value;
		if (sValue == '' || sValue == 0) {
			g_reloaded['cities'] = false;
			return false;
		}
		if (g_reloaded['task_type'] == false) {
			var dValue = document.getElementById('select_developer_type').value;
			if (dValue != '' || dValue != 0) {
				loadSelOptions ('task_type', sValue, oElement.id, dValue, 'select_developer_type');
			} else {
				loadSelOptions ('task_type', sValue, oElement.id);
			}
		}
		if (g_reloaded['developer_type'] == false) {
			var dValue = document.getElementById('select_task_type').value;
			if (dValue != '' || dValue != 0) {
				loadSelOptions ('developer_type', sValue, oElement.id, dValue, 'select_task_type');
			} else {
				loadSelOptions ('developer_type', sValue, oElement.id);
			}
		}
	}
	else if (oElement.id == 'select_developer_type') {
		g_reloaded['developer_type'] = true;
		var sValue = oElement.value;
		if (sValue == '' || sValue == 0) {
			g_reloaded['developer_type'] = false;
			return false;
		}
		if (g_reloaded['cities'] == false) {
			var dValue = document.getElementById('select_task_type').value;
			if (dValue != '' || dValue != 0) {
				loadSelOptions ('cities', sValue, oElement.id, dValue, 'select_task_type');
			} else {
				loadSelOptions ('cities', sValue, oElement.id);
			}
		}
		if (g_reloaded['task_type'] == false) {
			var dValue = document.getElementById('select_cities').value;
			if (dValue != '' || dValue != 0) {
				loadSelOptions ('task_type', sValue, oElement.id, dValue, 'select_cities');
			} else {
				loadSelOptions ('task_type', sValue, oElement.id);
			}
		}
	}
	else if (oElement.id == 'select_task_type') {
		g_reloaded['task_type'] = true;
		var sValue = oElement.value;
		if (sValue == '' || sValue == 0) {
			g_reloaded['task_type'] = false;
			return false;
		}
		if (g_reloaded['cities'] == false) {
			var dValue = document.getElementById('select_developer_type').value;
			if (dValue != '' || dValue != 0) {
				loadSelOptions ('cities', sValue, oElement.id, dValue, 'select_developer_type');
			} else {
				loadSelOptions ('cities', sValue, oElement.id);
			}
		}
		if (g_reloaded['developer_type'] == false) {
			var dValue = document.getElementById('select_cities').value;
			if (dValue != '' || dValue != 0) {
				loadSelOptions ('developer_type', sValue, oElement.id, dValue, 'select_cities');
			} else {
				loadSelOptions ('developer_type', sValue, oElement.id);
			}
		}
	}
}

function reset_filters () {
	g_reloaded['cities'] = false;
	g_reloaded['developer_type'] = false;
	g_reloaded['task_type'] = false;
	load_all ('cities');
	load_all ('developer_type');
	load_all ('task_type');
}

function load_all (needFieldName) {
	document.getElementById('select_' + needFieldName).innerHTML = '';
	oOption = document.createElement ('option');
	oOption.value = '';
	oOption.appendChild(document.createTextNode('загрузка...'));
	document.getElementById('select_' + needFieldName).appendChild(oOption);
	AjXmlSimple('/umap.getDevFilter/?need_field=' + needFieldName + '&all=1', 'block_select_' + needFieldName);
}

function loadSelOptions (needFieldName, selectedValue, selectedField, selectedValueTwo, selectedFieldTwo) {
	document.getElementById('select_' + needFieldName).innerHTML = '';
	oOption = document.createElement ('option');
	oOption.value = '';
	oOption.appendChild(document.createTextNode('загрузка...'));
	document.getElementById('select_' + needFieldName).appendChild(oOption);
	AjXmlSimple('/umap.getDevFilter/?need_field=' + needFieldName + '&selected_field=' + selectedField + '&selected_id=' + selectedValue + '&selected_field_two=' + selectedFieldTwo + '&selected_id_two=' + selectedValueTwo, 'block_select_' + needFieldName);
}

function put_options_to_select (content, selectId) {
	document.getElementById(selectId).innerHTML = content;
}

function tipShowHide(blockId) {
	var e = document.getElementById(blockId);
	if(e.style.display == 'block') e.style.display = 'none';
	else e.style.display = 'block';
}

AjXmlSimple = function(XMLname, idResDiv) {
	var req = new Ajax.Request(
		XMLname, {
			method: 'get',
			onSuccess:
			function(resp) {
				var response = resp.responseText || "no response text";
				document.getElementById(idResDiv).innerHTML = response;
			}
		}
	);
}

function change_data_user(oForm) {
	var eFormArr = oForm.elements;
	if (eFormArr['password'].value !== eFormArr['password_confirm'].value) {
		var theLabel_1 = eFormArr['password'].previousSibling;
		var theLabel_2 = eFormArr['password_confirm'].previousSibling;
		s_alert = "Значения полей \"" + theLabel_1.childNodes[0].nodeValue + "\" и \"" + theLabel_2.childNodes[0].nodeValue + "\" не совпадают";
		alert(s_alert);
		eFormArr['password_confirm'].focus();
		return false;
	}
	if (eFormArr['email'].value) {
		var s_email = eFormArr['email'].value;
		var regexp = /[\w\-]+@[\w\-]+\.[\w]+/;
		if (!regexp.test(s_email)) {
			alert("Неверный синтаксис электронного адреса (email)");
			eFormArr['email'].focus();
			return false;
		}
	}
	return true;
}

function checkRegdataForm(the_form, s_fields) {
	if (!the_form) {
		alert("Передан неверный идентификатор формы");
		return false;
	}
	if (typeof(s_fields) !== 'string') var s_fields = '';
	var arr_fields = s_fields.split(/\s*[,;]\s*/ig);
	var b_need_all = (!(arr_fields.length) || !(s_fields.length));
	var arr_field_names = new Array();
	if (!b_need_all) {
		var f = 0;
		for (f=0; f<arr_fields.length; f++) {
			arr_field_names[arr_fields[f]] = 1;
		}
	}
	var arr_input_elements = the_form.elements;
	var i_element = 0;
	for (i_element=0; i_element<arr_input_elements.length; i_element++) {
		var the_element = arr_input_elements[i_element];
		var s_el_name = the_element.name;
		if (b_need_all || (typeof(arr_field_names[s_el_name]) !== 'undefined' && arr_field_names[s_el_name] === 1)) {
			var s_el_type = the_element.type;
			s_el_type = s_el_type.toUpperCase();
			if ((s_el_type === 'TEXT' || s_el_type === 'PASSWORD') && !the_element.value.length) {
				the_element.focus();
				s_alert = "Необходимо заполнить все обязательные поля";
				var theLabel = the_element.previousSibling;
				if (theLabel && theLabel.tagName && theLabel.tagName.toUpperCase() === 'LABEL') {
					s_alert += "\r\n" + "Не заполнено поле \"" + theLabel.childNodes[0].nodeValue + "\"";
				}
				alert(s_alert);
				return false;
			}
		}
	}
	if (the_form.elements['password'] && the_form.elements['password_confirm'] && the_form.elements['password'].value !== the_form.elements['password_confirm'].value) {
		var theLabel_1 = the_form.elements['password'].previousSibling;
		var theLabel_2 = the_form.elements['password_confirm'].previousSibling;
		s_alert = "Значения полей \"" + theLabel_1.childNodes[0].nodeValue + "\" и \"" + theLabel_2.childNodes[0].nodeValue + "\" не совпадают";
		alert(s_alert);
		the_form.elements['password_confirm'].focus();
		return false;
	}
	if (the_form.elements['email']) {
		var s_email = the_form.elements['email'].value;
		var regexp = /[\w\-]+@[\w\-]+\.[\w]+/;
		if (!regexp.test(s_email)) {
			alert("Неверный синтаксис электронного адреса (email)");
			the_form.elements['email'].focus();
			return false;
		}
	}
	saveDataForm(the_form);
	return true;
}

function showEditForm(tableId, formId, linkId) {
	tableObject = document.getElementById(tableId);
	formObject = document.getElementById(formId);
	link = document.getElementById(linkId);
	if (tableObject.style.display == 'block') {
		tableObject.style.display = 'none';
		link.style.display = 'none';
		formObject.style.display = 'block';
	}
	else {
		tableObject.style.display = 'block';
		link.style.display = 'block';
		formObject.style.display = 'none';
	}
}

function getFormData(oObjForm) {
	var arrData = new Array();
	if (oObjForm && oObjForm.elements && oObjForm.elements.length) {
		for (iI=0; iI<oObjForm.elements.length; iI++) {
			oElement = oObjForm.elements[iI];
			if (oElement.name && oElement.name.length) {
				var sVal = "";
				if (oElement.type == 'checkbox') {
					sVal = (oElement.checked? 1: 0);
					arrData[oElement.name] = sVal;
				} else if (oElement.type == 'file') {
					if (oElement.value) {
						var fileObj = oElement.cloneNode(true);
						if (!iframeObj) {
							var divObj = document.getElementById('testAjax');
							var iframeObj = document.createElement("iframe");
							var formObj = document.createElement("form");
							iframeObj.id = iframeObj.name = 'iframeObj';
							iframeObj.onload = function() {
								//divObj.removeChild(iframeObj);
								divObj.removeChild(formObj);
							}
							divObj.style.display = 'none';
							divObj.appendChild(iframeObj);
							divObj.appendChild(formObj);
							formObj.action = oObjForm.action;
							formObj.method = oObjForm.method;
							formObj.enctype = oObjForm.enctype;
							formObj.target = iframeObj.id;
						}
						if (!formObj) {
							var formObj = document.createElement("form");
							divObj.appendChild(formObj);
							formObj.action = oObjForm.action;
							formObj.method = oObjForm.method;
							formObj.enctype = oObjForm.enctype;
							formObj.target = iframeObj.id;
						}
						formObj.appendChild(fileObj);
					}
				} else if (oElement.tagName.toUpperCase()==='SELECT' && oElement.multiple) {
					var arrVal = new Array();
					var iOpt=0;
					for (iOpt=0; iOpt<oElement.options.length; iOpt++) {
						var theOpt = oElement.options[iOpt];
						if (theOpt.selected) arrVal[iOpt] = theOpt.value;
					}
					arrData[oElement.name] = arrVal;
				} else {
					sVal = oElement.value;
					arrData[oElement.name] = sVal;
				}
				
			}
		}
	}
	if (formObj) formObj.submit();
	return arrData;
}

function ajaxFormEditObject(form ,oId) {
	var formArr = getFormData(form);
	callback = function(transport) {
		AjXmlSimple('/umap.objectInfo/'+oId+'/', 'objectView');
		$('confirm').innerHTML = transport.responseText;
		showEditForm('objectView', 'objectEdit', 'editLink');
		AjXmlSimple('/umap/data/getEditForm/'+oId+'////1/', 'objectEdit');
	}
	var ajax = new Ajax.Request(form.action + '?ajax=1', {method: form.method, parameters: formArr, onSuccess: callback});
}

function update_rating_form(oLink, formId, divId) {
	if (document.getElementById(formId)) {
		var oForm = document.getElementById(formId);
		var oDiv = document.getElementById(divId);
		var oSend = document.getElementById('update_rating_send');
	}
	else return false;
	if (oDiv.style.display == 'block') {
		oDiv.style.display = 'none';
		oLink.innerHTML = 'Обновить текущий рейтинг';
	}
	else {
		oDiv.style.display = 'block';
		oForm.firstChild.focus();
		oLink.innerHTML = 'Скрыть форму';
		oSend.innerHTML = '';
		oSend.style.display = 'none';
	}
}

function update_rating_ajax(form ,oId) {
	var formArr = getFormData(form);
	var oLink = document.getElementById('update_rating_link');
	var oSend = document.getElementById('update_rating_send');
	var callback = function(transport) {oSend.innerHTML = transport.responseText;}
	form.update_rat.value = '';
	oSend.style.display = 'block';
	oSend.innerHTML = '<img src="/img/ajax_loader_2.gif" alt="" style="margin:20px;" />';
	update_rating_form(oLink, 'update_rating', 'update_rating_block');
	var ajax = new Ajax.Request(form.action + '?ajax=1', {method: form.method, parameters: formArr, onSuccess: callback});
}

function uprat_help() {
	var callback = function(transport) {
		win.document.getElementById('popUp').style.margin = '20px';
		win.document.getElementById('popUp').innerHTML = transport.responseText;
	}

	win = window.open("", "_blank", "width=800,height=600,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=no");
	win.document.write("<html><head><title>UMI.CMS: Правила расчёта рейтинга</title><link type=\"text/css\" rel=\"stylesheet\" href=\"/css/update_rating.css\" /></head><body>");
	if (navigator.userAgent.indexOf('IE') != -1) {
		win.document.write("<script>"
			+"function _CloseOnEsc(e) {"
				+"if (e) event = e;"
				+"if (event.keyCode == 27 || event.keyCode == 82 || event.keyCode == 116) {window.close(); return;}"
			+"}"
			+"function _showBlock(e) {"
				+"if (e) event = e;"
				+"var element = event.srcElement;"
				+"if (element.tagName == 'H3') {"
					+"var oBlock = element.nextSibling.firstChild;"
					+"if (oBlock.style.display == 'none') oBlock.style.display = 'block';"
					+"else oBlock.style.display = 'none';"
				+"}"
			+"}"
			+"document.onkeydown = _CloseOnEsc;"
			+"document.onclick = _showBlock;"
		+"</script>");
	}
	else {
		win.document.onkeydown = function(event) {
			if (event.keyCode == 27) {
				event.view.window.close();
				return;
			}
			if (event.keyCode == 116 || event.keyCode == 82) {
				var popUp = event.view.window.document.getElementById('popUp');
				popUp.innerHTML = "<img style=\"margin:220px 0 0 0;\" src=\"/img/ajax_loader_2.gif\" alt=\"\" />";
				var callbackIn = function(transportIn) {popUp.innerHTML = transportIn.responseText;}
				var ajax = new Ajax.Request('/umap.pageInfo/49535.content', {method: 'get', onSuccess: callbackIn});
				return false;
			}
		}

		win.document.onclick = function(event) {
			var element = Event.element(event);
			if (element) {
				if (element.tagName == "H3") {
					var oBlock = element.nextSibling.firstChild;
					if (oBlock.style.display == 'none') oBlock.style.display = 'block';
					else oBlock.style.display = 'none';
				}
				return true;
			}
			else return false;
		}
	}
	win.document.write("<div id=\"popUp\" style=\"text-align:center;\"><img style=\"margin:220px 0 0 0;\" src=\"/img/ajax_loader_2.gif\" alt=\"\" /></div></body></html>");
	win.focus();
	win.document.close();

	var ajax = new Ajax.Request('/umap.pageInfo/49535.content', {method: 'get', onSuccess: callback});

	return false;
}

function changeActionMap(mapObj, linkId) {
	var linkObj = document.getElementById(linkId);
	for (i=0; i<linkObj.parentNode.childNodes.length; i++) linkObj.parentNode.childNodes[i].style.display = 'none';
	linkObj.style.display = 'block';
	if (navigator.userAgent.indexOf('MSIE 6.0') != -1) {
		for (i=0; i<mapObj.parentNode.childNodes.length; i++) {
			mapObj.parentNode.childNodes[i].style.background = 'url(/img/main_action_'+mapObj.parentNode.childNodes[i].id+'_b.gif) no-repeat';
		}
		mapObj.style.background = 'url(/img/main_action_'+mapObj.id+'_a.gif) no-repeat';
	}
	else {
		for (i=0; i<mapObj.parentNode.childNodes.length -1; i++) mapObj.parentNode.childNodes[i].className = 'back';
		mapObj.className = 'act';
	}
}

function calendarEventsChange(mode) {
	var fastButton = document.getElementById('calendarevents_buttons_fast');
	var fastBlock = document.getElementById('calendarevents_fast');
	var archButton = document.getElementById('calendarevents_buttons_arch');
	var archBlock = document.getElementById('calendarevents_arch');
	if (mode == 'fast') {
		fastButton.style.display = 'block';
		fastBlock.style.display = 'block';
		archButton.style.display = 'none';
		archBlock.style.display = 'none';
	}
	else if (mode == 'arch') {
		fastButton.style.display = 'none';
		fastBlock.style.display = 'none';
		archButton.style.display = 'block';
		archBlock.style.display = 'block';
	}
	else {
		return false;
	}
}

function setParamsFilter() {
	var callback = function(transport) {
		document.location.href = '/buy_now/offer/';
	}
	var oForm = document.getElementById('form_find_webdevs').firstChild;
	var url = '/catalog/setParamsFilter/?';
	for (var i=0;i<oForm.elements.length;i++) {
		var name = oForm.elements[i].name;
		var value = oForm.elements[i].value;
		switch (name) {
			case 'fields_filter[cities]':
				url += 'city=' + value + '&';
				break;
			case 'fields_filter[developer_type]':
				url += 'developer_type=' + value + '&';
				break;
			case 'fields_filter[task_type]':
				url += 'task_type=' + value + '&';
				break;
			case 'fields_filter[budget][0]':
				url += 'budget_start=' + value + '&';
				break;
			case 'fields_filter[budget][1]':
				url += 'budget_end=' + value + '&';
				break;
			default:
		}
	}
	var ajax = new Ajax.Request(url, {method: 'get', onSuccess: callback});
}

function setParamBudget(budget_start, budget_end) {
	var oStart = document.getElementById(budget_start);
	var oEnd = document.getElementById(budget_end);
	oStart.nextSibling.value = oStart.value;
	oEnd.nextSibling.value = oEnd.value;
}

function testKey(e) {
	var key = (typeof e.charCode == 'undefined' ? e.keyCode : e.charCode);
	if (key == 0 || key == 8 || key == 9 || key == 13 || key == 16 || key == 17) return true;
	if (key > 32 && key < 47) return true;
	if (e.ctrlKey) {
		if (key == 65 || key == 67 || key == 82 || key == 86 || key == 88 || key == 97 || key == 99 || key == 118 || key == 120) return true;
	}
	if (key < 48 || key > 57) {
		alert('Только цифры!');
		return false;
	}
	return true;
}

function saveDataForm(form) {
	if (!form) return false;
	if (!form.id) {
		alert("You should set id attribute in form tag to save or restore it.");
		return false;
	}
	var cookieData = new Array;
	for (var i = 0; i < form.elements.length; i++) {
		var input = form.elements[i];
		if (input.name) {
			var inputName = input.name.replace(/([)\\])/g, "\\$1");
			switch (input.type) {
				case "password": {
					break;
				}
				case "text":
				case "textarea": {
					cookieData.push({type: 'T', name: inputName, value: input.value});
					break;
				}
				case "checkbox":
				case "radio": {
					cookieData.push({type: 'C', name: input.id, value: (input.checked ? 1 : 0)});
					break;
				}
				case "select-multiple":
				case "select-one": {
					cookieData.push({type: 'S', name: inputName, value: input.selectedIndex});
					break;
				}
			}
		}
	}
	var str = "";
	for (var i = 0; i < cookieData.length; i++) {
		var elementData = cookieData[i];
		var value = new String(elementData.value);
		var inputName = new String(elementData.name);
		if (!inputName || !value) continue;
		str += elementData.type + "," + inputName.length + "," + inputName + "," + value.length + "," + value;
	}
	document.cookie = "frm" + form.id + "=" + escape(str.replace(/([|\\])/g, "\\$1"));
	return true;
}

function restoreDataForm() {
	var cookie = new String(unescape(document.cookie));
	var posStart, posEnd;
	var forms = document.getElementsByTagName('form');
	var form = false;
	for (var i = 0; i < forms.length; i++) {
		if (forms[i].id) {
			var cookieName = "frm" + forms[i].id + "=";
			if ((posStart = cookie.indexOf(cookieName)) == -1) continue;
			else form = forms[i];
		}
		else continue;
	}
	if (!cookieName || !form) return false;
	if ((posEnd = cookie.indexOf(";", posStart)) == -1) posEnd = cookie.length;
	var data = cookie.substring(posStart + cookieName.length, posEnd);
	var pos = 0, cookieData = new Array;
	while (pos < data.length) {
		var inputName;
		var type = data.substring(pos, pos + 1);
		pos += 2;
		var length = parseInt(data.substring(pos, data.indexOf(",", pos)));
		pos = data.indexOf(",", pos) + 1;
		var inputName = data.substring(pos, pos + length);
		pos += length + 1;
		var length = parseInt(data.substring(pos, data.indexOf(",", pos)));
		if (length == 0) {
			pos += 2;
			continue;
		}
		else pos = data.indexOf(",", pos) + 1;
		var value = data.substring(pos, pos + length);
		pos += length;
		cookieData.push({type: type, name: inputName, value: value});
	}
	for (var i = 0; i < cookieData.length; i++) {
		var elementData = cookieData[i];
		if (elementData.type && elementData.name) {
			switch(elementData.type) {
				case "P": {
					break;
				}
				case "T": {
					form.elements[elementData.name].value = elementData.value;
					break;
				}
				case "C": {
					document.getElementById(elementData.name).checked = (elementData.value == 1) ? true : false;
					break;
				}
				case "S": {
					form.elements[elementData.name].selectedIndex = elementData.value;
					break;
				}
			}
		}
	}
}

function change_rate(elementId, changeKey) {
	var handler = function(response) {alert(response.state);}
	var url = '/vote/json_rate/'+elementId+'/'+changeKey+'/';
	lLib.getInstance().makeRequest(url, handler);
}

function videocastsHeightResize() {
	if (document.getElementById('videocasts')) {
		var cast_arr = document.getElementsByName('hidden');
		var block_arr = document.getElementsByName('hidden_block');
		var cast_height = '0';
		var block_height = '0';
		for (var i=0; cast_arr.length>i; i++) {
			cast_arr[i].style.height = 'auto';
			if (cast_arr[i].offsetHeight > cast_height) {
				cast_height = cast_arr[i].offsetHeight;
			}
		}
		for (var j=0; cast_arr.length>j; j++) {
			cast_arr[j].style.height = cast_height + 'px';
		}
		for (var i=0; block_arr.length>i; i++) {
			block_arr[i].style.height = 'auto';
			if (block_arr[i].offsetHeight > block_height) {
				block_height = block_arr[i].offsetHeight;
			}
		}
		for (var j=0; block_arr.length>j; j++) {
			block_arr[j].style.height = block_height + 'px';
		}
	}
}

function inputLimit() {
	var textObj = document.getElementById('partner_descr');
	var limitObj = document.getElementById('limit');
	if (textObj && limitObj) {
		if (textObj.value.length > 600) {
			textObj.value = textObj.value.substring(0, 600);
		}
		limitObj.innerHTML = 600 - textObj.value.length;
	}
}