var ajax_req_version_date = new Date();
var ajax_req_version = ajax_req_version_date.getMilliseconds() + ajax_req_version_date.getMinutes();

function newEvent() {
	document.getElementById('newevent').style.display = 'block';
}
function edit_event() {
	document.getElementById('editevent').style.display = 'block';
}
function show_hide(id) {
	if (document.getElementById(id).style.display == 'none') {
		document.getElementById(id).style.display = 'table-row-group';
	} 
	else {
		document.getElementById(id).style.display = 'none';
	}
}

function stopall(id) {
	document.getElementById(id).onclick = null;
}

function descCut() {
	if (document.getElementById('desc_full').style.display == 'none') {
		document.getElementById('desc_small').style.display = 'none';
		document.getElementById('desc_full').style.display = 'block';
	} 
	else {
		document.getElementById('desc_full').style.display = 'none';
		document.getElementById('desc_small').style.display = 'block';
	}
}
function selectall(obj,sAll) {
	var self = document.getElementById('control');
	var checkboxes = document.getElementsByTagName('input');

	for (i = 0; i < checkboxes.length; i++) {
		if(self.checked == true){
			checkboxes[i].checked = true;
		} 
		else {
			checkboxes[i].checked = false;
		}
		if(sAll == true) {
			self.checked = true;
			checkboxes[i].checked = true;
		}	
	}
}

function locCountry(toggle) {
	var selected = document.getElementById('country').options[document.getElementById('country').selectedIndex].value;
	if (toggle != 'search'){
		if (selected != 0) {
			ajaxRequest('/locations.list/?country=' + selected, 'requestLocation');
		}
	} else {
		window.location=window.location+'&country='+selected;
	}
}

function locRegion(toggle) {
	var selected = document.getElementById('region').options[document.getElementById('region').selectedIndex].value;
	var country = document.getElementById('country').options[document.getElementById('country').selectedIndex].value;
	if (toggle != 'search'){
	ajaxRequest('/locations.list/?country=' + country + '&region=' + selected,
			'requestLocation');
	} else {
		window.location=window.location+'&region='+selected;
	}
}

function changeLoc() {
	document.getElementById('chng').style.display = 'none';
	document.getElementById('country').style.display = 'block';
}

function switchCheckbox(name) {
	document.getElementById(name).disabled = false;
}

function removeElement(divNum) { // TODO: revise, look for error
	var d = document.getElementById('myDiv');
	var olddiv = document.getElementById(divNum);
	d.removeChild(olddiv);
}
function search_activate() {
	var query = document.getElementById('search_query').value;
	if(query == "Поиск"){
		document.getElementById('search_query').value = '';
	}
	document.search_form.submit();

}
function setCookie(name, value, expires, path, domain, secure) {
	document.cookie = name + "=" + escape(value)
			+ ((expires) ? "; expires=" + expires : "")
			+ ((path) ? "; path=" + path : "")
			+ ((domain) ? "; domain=" + domain : "")
			+ ((secure) ? "; secure" : "");
}

function getCookie(name) {
	var cookie = " " + document.cookie;
	var search = " " + name + "=";
	var setStr = null;
	var offset = 0;
	var end = 0;
	if (cookie.length > 0) {
		offset = cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = cookie.indexOf(";", offset)
			if (end == -1) {
				end = cookie.length;
			}
			setStr = unescape(cookie.substring(offset, end));
		}
	}
	return (setStr);
}

function swapSelectOptions(selectFrom, selectTo, swapAll) {
	if (typeof (selectFrom) == "string") {
		availableitems = document.getElementById(selectFrom);
	}
	if (typeof (selectTo) == "string") {
		selecteditems = document.getElementById(selectTo);
	}
	for ( var i = 0; i < availableitems.length; i++) {
		if (availableitems.options[i].selected || swapAll) {
			selecteditems.options[selecteditems.options.length] = new Option(
					availableitems.options[i].text);
			selecteditems.options[selecteditems.options.length - 1].value = availableitems.options[i].value;
			availableitems.options[i].selected = false;
			availableitems.options[i] = null;
			i--;
		}
	}
}

function disableElement(id) {
	obj = document.getElementById(id);
	obj.disabled = true;
}

function ajaxRequest(strURL, strTarget) {
	var xmlHttpReq = false;
	var self = this;
	if (window.XMLHttpRequest) {
		self.xmlHttpReq = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		self.xmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
	}
	self.xmlHttpReq.open('GET', strURL, true);
	self.xmlHttpReq.setRequestHeader('Content-Type',
			'application/x-www-form-urlencoded;charset=UTF-8;');
	self.xmlHttpReq.onreadystatechange = function() {
		if (self.xmlHttpReq.readyState == 4) {
			document.getElementById(strTarget).innerHTML = self.xmlHttpReq.responseText;
		}
	}
	self.xmlHttpReq.send('');
}

function multipleSelectAll(id) {
	obj = document.getElementById(id);
	for ( var i = 0; i < obj.length; i++) {
		obj.options[i].selected = true;
	}
}

function askdel(strURL, strTarget) {
	document.getElementById(strTarget).innerHTML = "<a href='" + strURL
			+ "'>да?</a>";
}

function expand_collapse(id, display_type, label_id, label_off, label_on) {
	obj = document.getElementById(id);
	oLabel = document.getElementById(label_id);
	state = obj.style.display;
	switch (state) {
		case 'block':
			obj.style.display = 'none';
			oLabel.innerHTML = label_off;
			oParent = oLabel.parentNode;
			oParent.className = 'nolink';
			break;
		default:
			obj.style.display = display_type;
			oLabel.innerHTML = label_on;
			oParent = oLabel.parentNode;
			oParent.className = 'nolink_active';
			break;
	}
}

function collapse(id, label_id, label) {
	obj = document.getElementById(id);
	oLabel = document.getElementById(label_id);
	state = obj.style.display;
	switch (state) {
	case 'block':
		obj.style.display = 'none';
		oLabel.innerHTML = label;
		oParent = oLabel.parentNode;
		oParent.className = 'nolink';
		break;
	default:
		break;
	}
}

function magicExpand(id) {
	obj = document.getElementById(id);
	if (obj != null){
	state = obj.style.display;
	switch (state) {
	case 'block':
		obj.style.display = 'none';
		break;
	default:
		obj.style.display = 'block';
		break;
	}
	}
}

function check_uncheck(id) {
	obj = document.getElementById(id);
	if (obj.checked == false)
		obj.checked = true;
	else
		obj.checked = false;
}

function enable_disable(id) {
	obj = document.getElementById(id);
	if (obj.disabled == false){
		obj.disabled = true;
	}
	else
		obj.disabled = false;
}

function uncheck(id) {
	obj = document.getElementById(id);
	if (obj.checked == true)
		obj.checked = false;
}

function addvariant(elem) {
	var objRow = elem.parentNode.parentNode;
	number = objRow.rowIndex - 1;

//	if(number > 13) return false;
	
	oNewTr = objRow.parentNode.rows[number].cloneNode(true);
	
	oBeforTr = objRow.parentNode.rows[number];
	resInput = oNewTr.getElementsByTagName('input');
	if (resInput){
		resInput[0].value = "";
		resInput[0].name = "new[]";
	}
//	oNewTr.style.display = 'block';
	oBeforTr.parentNode.insertBefore(oNewTr, oBeforTr.nextSibling)

	take = objRow.parentNode.getElementsByTagName('label');
	
//	take = objRow.parentNode.getElementsByTagName('input');
//	labels = objRow.parentNode.getElementsByTagName('label');
	
	i = 1;
	for (j = 0; j < take.length - 1; j++) {
		if (take.item(j).parentNode.parentNode.style.display != 'none') {			
			if (take.item(j).parentNode.parentNode.firstChild.firstChild != null) {
				label = take.item(j).parentNode.parentNode.firstChild.firstChild;
				if (label.nodeName == 'LABEL') {
					label.innerHTML = i + '.';
					i++;
				}
			}
		}
		if (take.item(j).parentNode.parentNode.lastChild.firstChild != null) {
			img = take.item(j).parentNode.parentNode.lastChild.firstChild;
			img.style.display = 'block';
		}
	}
}

function delvariant(elem) {
	
	oElement = elem.parentNode;
	while(oElement.tagName != 'TR' && oElement.tagName != 'tr'){
		oElement = oElement.parentNode;
	}
	
	oTable = oElement.parentNode;
	
	j=1;
	if (oTable.rows.length > 3) 
		oTable.removeChild(oElement);
	if (oTable.rows.length > 1) {
		for (i = 1; i < oTable.rows.length - 1; i++) {
			oCell = oTable.rows[i].cells[0];
			if (oCell.firstChild && oCell.firstChild.nodeName == 'LABEL') {
				oCell.firstChild.innerHTML = j + '.';
				j++;
			}
		}		
	}
	if (oTable.rows.length == 3){
		oCell = oTable.rows[1].cells[2];
		if (oCell.firstChild) {
			oCell.firstChild.style.display = 'none';
		}
	}
}

function markAllCheckbox(form_id) {
	oForm = document.getElementById(form_id);
	for (i = 0; i < oForm.elements.length; i++) {
		if (oForm.elements[i].type == 'checkbox')
			oForm.elements[i].checked = true;
	}
}

function unmarkAllCheckbox(form_id) {
	oForm = document.getElementById(form_id);
	for (i = 0; i < oForm.elements.length; i++) {
		if (oForm.elements[i].type == 'checkbox')
			oForm.elements[i].checked = false;
	}
}

function hide(id) {
	oElement = document.getElementById(id);
	if(oElement.style.display != 'none') 
		oElement.style.display = 'none'; 
	else
		return false;
	return true;
}

function show(id) {
	oElement = document.getElementById(id);
	
	if(oElement == null) return true;
	
	if(oElement.style.display != 'block') 
		oElement.style.display = 'block';
	else
		return false;
	return true;
}

function display(id, type){
	if (window.navigator.appName == 'Microsoft Internet Explorer') 
		type = 'block';
	
	oElement = document.getElementById(id);
	if(oElement.style.display != type) 
		oElement.style.display = type;
	else
		return false;
	return true;
}

function disable(id) {
	oElement = document.getElementById(id);
	
	if(oElement.disabled != true) {
		oElement.disabled = true;
	}
	else
		return false;
	return true;
}

function enable(id) {
	oElement = document.getElementById(id);
	
	if(oElement.disabled != false){ 
		oElement.disabled = false;
	}
	else
		return false;
	return true;
}

function filterWishes(event_id, price, url){
	priceList = price;
	aPrice = priceList.split(';');
	
	if(priceList != null){
		window.location = '/'+url+'/?id='+event_id+'&price_from='+aPrice[0]+'&price_to='+aPrice[1];
	} else {
		window.location = '/'+url+'/?id='+event_id;
	}
}

var deleteSubguest_warnig_shown = false;

function deleteSubguest(oElement){
    if(!deleteSubguest_warnig_shown) {	
        var alDlg = AlertDialog('Внимание!', 'Выбор гостя будет удалён и изменения вступят в силу после нажания кнопки "Сохранить"');
        alDlg.setOnClose(function(){
            deleteSubguest_warnig_shown = true;
        });
    }
    
    deleteRow(oElement);
}

function deleteRow(oElement){
	while(oElement.tagName != 'TR'){
		oElement = oElement.parentNode;
	}
	oTr = oElement;
	while(oElement.tagName != 'TABLE'){
		oElement = oElement.parentNode;
	}
	oTable = oElement;
	
	oTable.deleteRow(oTr.rowIndex);
}

function personalCategory(selected){	
	oField = document.getElementById('opt');
	if (selected.value == 'custom:1'){
		oField.style.display = 'block';
		oField.value = 'Введите название своей категории';
	} else {
		//tabSelector(selected.value);
		oField.style.display = 'none';		
	}
}

function personalCategoryCE(selected){		
	oField = $('input#opt');
	if ($(selected).val() == 'custom:1'){
		oField.show();
		oField.val('Введите название своей категории');
	} else {
		if ($(selected).val() != 'choose:0')
			tabSelector($(selected).val());
		oField.hide();
	}
}

function checkCategoryEdit(){
	category = document.getElementById('category_list'); 
	cValue = category.options[category.selectedIndex].value;
	if(cValue == 1){
		document.getElementById('opt').style.display = 'block';
	}
	
}

function multiplyMembers(table_id, prototype_id, newcount, offset){
	newcount = newcount*1;
	offset = offset*1;
	oProtoTable = document.getElementById(prototype_id);
	oTable = document.getElementById(table_id);
	oTr = oProtoTable.rows[0];
	number = oTable.rows.length - offset;
	
	multiplier = newcount - number;
	if(multiplier < 0) multiplier = 0;
	
	if(newcount >= number)
		for (m = 0; m < multiplier; m++){
			oNewTr = oTr.cloneNode(true);
			oNewTr.childNodes[0].innerHTML = (number + m + offset) + '.';
			for (i = 0; i < oNewTr.childNodes.length; i++) {
				if (oNewTr.childNodes.item(i).tagName == 'TD') {					
					oCell = oNewTr.childNodes.item(i);
					oCell.style.backgroundColor = '#FFFFFF';
					oCell.style.borderBottomWidth = '1px';
					oCell.style.borderBottomStyle = 'solid';
					oCell.style.borderBottomColor = '#E5EBF2'; 
					for (j = 0; j < oCell.childNodes.length; j++) {
						if (oCell.childNodes.item(j).name != null) {
							oRegX = new RegExp("0", "ig");
							oCell.childNodes.item(j).name = oCell.childNodes.item(j).name.replace(oRegX, (oTable.rows.length - 1) + "");
							oCell.childNodes.item(j).value = "";
							oCell.childNodes.item(j).disabled = false;							
						}
					}
				}
			}
			
			if (window.navigator.appName == 'Microsoft Internet Explorer') {
				oTrTmp = oTable.rows[oTable.rows.length - 1];
				oTrTmp.insertAdjacentElement('afterEnd', oNewTr);
			}
			else {
				oTable.appendChild(oNewTr);
			}
		}
	else {
		last = oTable.rows.length - 1;
		number = oTable.rows.length;
		for (m = number; m > newcount + offset; m--){
			oTable.deleteRow(last);
			last--;
		}
	}
}

function guests_show_button(button_id){
	oButton = document.getElementById(button_id);
	oForm = oButton.form;
	checked = false;
	for(i = 0; i < oForm.elements.length; i++){
		oElement = oForm.elements[i];
		if((oElement.tagName == 'INPUT' || oElement.tagName == 'input') && oElement.type == 'checkbox')
			if(oElement.checked == true){
				checked = true;
				break;
			}
	}
	
	if(checked) oButton.style.display = 'block';
	else oButton.style.display = 'none';
}

function show_hide_guestlist(tab_id){
	
}

function ajaxInline(sLink,sTarget){
	ajaxRequest(sLink,sTarget);
	//TODO:manipulations!
}

function deleteselected(){
    $(function($){
        testval = $('input:checkbox:checked');
    });
    if(testval.length > 0){
        var buttons = [
            {label:'Да',click:function(){ 
                $("table.list input[type^='checkbox']").each(function () {
                    if ($(this).attr("checked")){
                        var id = $(this).attr("name");
                        document.getElementById("action-button-"+id).innerHTML =  '<div class="perform-box">Сообщение удалено</div>';	
                        $(this).remove();
                        $.post("/inbox.delete/?id="+id, {ask_confirm:"true"}, function(response){});
                    }
                });
                opbj.close(); 
            }}, 
            {label:'Нет', style:'form-button-2',click:function(){ opbj.close();}}
        ];
        var opbj = new ConfirmDialog("Подтверждение удаления", "Вы точно хотите удалить сообщение?", buttons);
    }
}

//switches additional fields on the statistics page 
function switchStatFields(value){
	if (value!='getUsers_Online')
		show('dateselect');
	else 
		hide('dateselect');
	if (value=='getCountMembers' || value=='getCountEventsByCountMembers')
		show('typeselect');
	else 
		hide('typeselect');
	if (value=='getCountEventsByCountMembers'){
		show('qtylabel');
		show('qtyselect');
	} else { 
		hide('qtylabel');
		hide('qtyselect');
	}
	
} 

function switchStat2Fields(value){
	if (value=='8'){
		show('typeselect');
	} else { 
		hide('typeselect');
	}
	
} 
function add_uploader(table_id){
	oTable = document.getElementById(table_id);
	oProtoTable = document.getElementById(table_id);
	oTr = oProtoTable.rows[1];
	oNewTr = oTr.cloneNode(true);
	number = oTable.rows.length;
	
	if(number < 11) {
		first_cell = true;
		for (i = 0; i < oNewTr.childNodes.length; i++) {			
			if (oNewTr.childNodes.item(i).tagName == 'TD') {
				oCell = oNewTr.childNodes.item(i);
				for (j = 0; j < oCell.childNodes.length; j++) {
					if (oCell.childNodes.item(j).name != null) {
						oRegX = new RegExp("1", "ig");
						oCell.childNodes.item(j).name = oCell.childNodes.item(j).name.replace(oRegX, number + "");
						oCell.childNodes.item(j).value = "";
						oCell.childNodes.item(j).disabled = 0;
					}					
				}
			}
		}
	
		if (window.navigator.appName == 'Microsoft Internet Explorer') {
			oTr = oTable.rows[oTable.rows.length - 1];
			oTr.insertAdjacentElement('afterEnd', oNewTr);
		} 
		else {
			oTable.appendChild(oNewTr);
		}		
	}
	if(number >= 10) {
		oControl = document.getElementById('bulk_add_row_control');
		if(oControl != null){
			oControl.style.display = 'none';
		}
		oControl = document.getElementById('add_row_control');
		if(oControl != null){
			oControl.style.display = 'none';
		}
	}
}

function delete_uploader(table_id, button){
	var oTable = document.getElementById(table_id);
	if(oTable.rows.length > 3) {
	
		var oElement = button.parentNode;
		while(oElement.tagName != 'TR' && oElement.tagName != 'tr'){
			oElement = oElement.parentNode;
		}
		var oParent = oElement.parentNode;
		oParent.removeChild(oElement);
		
		var oControl = document.getElementById('add_row_control');
		if(oControl != null){
			oControl.style.display = 'inline';
		}
		oControl = document.getElementById('bulk_add_row_control');
		if(oControl != null && oTable.rows.length < 5){
			oControl.style.display = 'inline';
		}
	}
}

function showHidePanel(id){
	if(hide(id)){
		iconurl='/img/bullet-categories.gif';		
	}
	else if(display(id, 'table')){
		iconurl='/img/bullet-categories-2.gif'; 
	}
	ico = document.getElementById(id + '_status');
	if(ico) ico.src = iconurl;
}

function showHideDate(id, caption){
	element = document.getElementById(id);
	
	if(element.style.display == 'none') {
		element.style.display = 'block';
		caption.innerHTML = 'Cкрыть';
	}
	else {
		element.style.display = 'none';
		caption.innerHTML = 'Указать дату и время окончания';
		$("#date_end").val("");
	}
	
}

function tabSelector(key){	
	a_key = key.split(':');
	key = a_key[0];
	
	_index = new Array(
		'birthday', 'wedding','newborn',
		'house-warming','tv-sports',
		'poker', 'sports','picnic', 
		'play-party', 'flashmob', 'teambuilding',
		'party', 'farewell-party', 'engagement',
		'newborn-meeting', 'child-birthday',
		'newyear', 'valentin', 'feb23', 'mar8',
		'movie', 'concert', 'performance', 'exhibition'
);
	
	_all = new Array(1, 2, 3, 6);
	birthday = _all;
	wedding = _all;
	newborn = _all;
	child_birthday = _all;
	newborn_meeting = _all;
	engagement = _all;
	farewell_party = new Array(1, 3, 6);
	party = new Array(1, 3, 6);
	house_warming = _all;
	teambuilding = new Array(1, 3, 6);
	flashmob = new Array(1, 3, 6);
	play_party = new Array(1, 3, 6);
	picnic = new Array(1, 3, 6);
	sports = new Array(1, 3, 6);
	poker = new Array(1, 3, 6);
	tv_sports = new Array(1, 3, 6);
	newyear =  new Array(1, 3, 4, 5, 6);
	valentin =  new Array(1, 3, 4, 5, 6);
	movie = new Array(1, 3, 6);
	concert = new Array(1, 3, 6);
	performance = new Array(1, 3, 6);
	exhibition = new Array(1, 3, 6);
	feb23 = new Array(1, 2, 3, 4, 5, 6);
	mar8 = new Array(1, 2, 3, 4, 5, 6);
	map = new Array(
		birthday, wedding, newborn,
		house_warming, tv_sports,
		poker, sports, picnic,
		play_party, flashmob, teambuilding,
		party, farewell_party, engagement,
		newborn_meeting, child_birthday,
		newyear, valentin, feb23, mar8, 
		movie, concert, performance, exhibition);
	
	for(i = 0; i < _all.length; i++){
		checkbox = document.getElementById('tab_' + _all[i]);
		if (checkbox)
			checkbox.checked = 0;
	}
	
	for(i = 0; i < _index.length; i++){
		if(_index[i] == key){
			akey = i;
			break;
		}
	}
	tab_map = map[akey];	
	for(i = 0; i < tab_map.length; i++){		
		checkbox = document.getElementById('tab_' + tab_map[i]);
		if (checkbox)
			checkbox.checked = 1;
	}
}
