// İşlemler
var MODE_DELETE = 3;
var MODE_EDIT	= 2;
var MODE_ADD	= 1;
var CURR_TASK	= -1;

// Form büyüklüğü
var FORM_WIDTH = 600;
var FORM_HEIGHT= 600;

// Formun ID'si
var FORM_DIV_ID = 'DIV_PollForm';

// İşlem yapılan anketin ID'si
var CURR_POLL_ID = -1;

// Form alanlarının ID değerleri
var ids = ['name','text', 'is_active', 'is_current',
	'member_type1', 'member_type2', 'member_type3' ,
	'option1','option2','option3','option4','option5',
	'option6','option7','option8','option9','option10'];

// CPAINT
var cp = new cpaint();
cp.set_transfer_mode('post');
cp.set_response_type('text');
if(urladd==1)
    var serverFile = 'polls.admin.php?mode=ajax';
else
    var serverFile = 'polls/polls.admin.php?mode=ajax';
// Dizileri PHP'ye aktarmakta problem yaşıyoruz
// o yüzden dizileri string olarak aktaracağız
// elemanları birleştirirken aşağıdaki karakteri
// kullanıyoruz
var arraySep = '&&&';

// Loading.gif baslangicta yuklensin
// boylece dinamik olarak html'ye eklendiginde
// gosterim sirasinda problem yasanmayacak
var img = '../images/loading.gif';

function getRowByPollId(id)
{
	var tbl = document.getElementById('TBL_PollList');
	var rows= tbl.rows;
	for(var i=0; i<rows.length; i++)
		if (rows[i].id == 'tr_' + id)
			return rows[i];
	
	return null;
}

function DeleteResponse(response)
{
	var parts = response.split('-');
	var tr = document.getElementById('tr_' + parts[0]);
	if (parseInt(parts[1]) == 1)
	{
		var tbl = tr.parentNode;
		if (tr.parentNode.tagName != 'TABLE')
			tbl = tbl.parentNode;
		tbl.deleteRow(tr.rowIndex);
	}
	else
	{
		tr.cells[0].innerHTML = parts[0];
		tr.style.backgroundColor = '';
		alert('Silinemedi\n\n' + parts[1]);
	}
}

function deletePoll(id)
{
	var tr = document.getElementById('tr_' + id);
	var name=tr.cells[1].innerHTML;
	tr.style.backgroundColor = 'pink';
	if (confirm('Seçili anketini silmek üzeresiniz\n\nEmin misiniz?'))
	{
		tr.cells[0].innerHTML = '<img src="../images/loading.gif">';
		tr.style.backgroundColor = 'pink';
		
		cp.call(serverFile, 'deletePoll', DeleteResponse, id);
	}
	else
		tr.style.backgroundColor = '';
}

function editPoll(id)
{
	CURR_TASK = MODE_EDIT;
	CURR_POLL_ID = id;
	
	showModalLayer(FORM_DIV_ID, FORM_WIDTH, FORM_HEIGHT);
	loadPollForm(id);
}

function addPoll()
{
	CURR_TASK = MODE_ADD;
	CURR_POLL_ID = -1;
	
	showModalLayer(FORM_DIV_ID, FORM_WIDTH, FORM_HEIGHT);
	loadPollForm();
}

function cancelTheForm()
{
	closeModalLayer(FORM_DIV_ID);
}

function updateOrInsert()
{
	// Formda doldurulması gereken alanları kontrol edelim	
    // 1- Name alanı
	// 2- Text alanı
	// 3- En az iki tane seçenek (option1, option2 kontrolü kısayolumuz olsun)
	// 4- En az bir tane üye tipi (member_typeX)

    if (document.getElementById('name').value.length == 0)
    {
        alert('Anket adını yazmadınız');
        return;
    }

	if (document.getElementById('text').value.length == 0)
	{
		alert('Anket sorusunu yazmadınız');
		return;
	}
	
	if (document.getElementById('option1').value.length == 0 || 
		document.getElementById('option2').value.length == 0)
	{
		alert('En az iki tane anket seçeneği girmeniz gerekiyordu\n\nEğer en az iki seçenek girdiyseniz sırasıyla girmeyi deneyiniz');
		return;
	}
	
	if (document.getElementById('member_type1') &&
        document.getElementById('member_type1').checked == false && 
		document.getElementById('member_type2') &&
        document.getElementById('member_type2').checked == false && 
		document.getElementById('member_type3') &&
        document.getElementById('member_type3').checked == false)
	{
		alert('Ankete oy verebilecek en az bir tane üye tipi seçmelisiniz');
		return;
	}
		
	// Gönderilecek değerler
	// $type, $pollId, $text, $is_active, $memberTypes, $optionTexts, $optionIds
	var type 	= CURR_TASK;
	var pollId	= CURR_POLL_ID;
	var name	= document.getElementById('name').value;
    var text    = document.getElementById('text').value;
	var is_active = (document.getElementById('is_active') && document.getElementById('is_active').checked ? 1 : 0);
	var is_current = (document.getElementById('is_current')&& document.getElementById('is_current').checked ? 1 : 0);
	var memberTypes='';
    if(document.getElementById('member_type1')||document.getElementById('member_type2')||document.getElementById('member_type3'))
    {
            for(var i=1; i<=3; i++)
	        {
		        var obj = document.getElementById('member_type' + i);
		        if (obj && obj.checked)
			        memberTypes += i + ",";
	        }
	        memberTypes = memberTypes.substring(0, memberTypes.length - 1);
    }
    else
     {
       memberTypes='1,2,3';
     }
    
	var optionTexts = '';
	var optionIds 	= '';
	for(var i=1; i<=10; i++)
	{
		var obj = document.getElementById('option' + i);
	
		if (obj.value.length > 0)
		{
			optionTexts += obj.value + '&&&';
			if (obj.getAttribute('option_id') && obj.getAttribute('option_id') != '')
			{
				optionIds   += obj.getAttribute('option_id') + '&&&';
			}
		}
		else
			break;	
	}
	optionTexts = optionTexts.substring(0, optionTexts.length - 3);
	if (optionIds.length > 0 )
		optionIds = optionIds.substring(0, optionIds.length - 3);
		
	cp.call(serverFile, 'updateOrInsertPoll', UpdateResponse,
		type, pollId, name, text, is_active, is_current, memberTypes, optionTexts, optionIds);
}

function UpdateResponse(response)
{
	alert('Güncellendi/Eklendi');
    window.location.reload();
	
}

function loadPollForm(pollId)
{
	for(var i=0; i<ids.length; i++)
	{
		var obj = document.getElementById(ids[i]);
        if (! obj)
            continue;
		var isOption = obj.id.indexOf('option') >= 0;
		var srcObj = null;
				
		if (CURR_TASK == MODE_EDIT)
			srcObj = document.getElementById(ids[i] + '_' + pollId);
		
		if (obj.id == 'is_active' && CURR_TASK == MODE_EDIT)
			obj.checked = srcObj.value == '1';
		else if (obj.id == 'is_active' && CURR_TASK == MODE_ADD)
			obj.checked = true;
		else if (obj.id == 'is_current' && CURR_TASK == MODE_EDIT)
			obj.checked = srcObj.value == '1';
		else if (obj.id == 'is_current' && CURR_TASK == MODE_ADD)
			obj.checked = false;
		else if (obj.type == 'checkbox' && CURR_TASK == MODE_EDIT)
			obj.checked =  srcObj.value.length > 0 ;
		else if (obj.type == 'checkbox' && CURR_TASK == MODE_ADD)
			obj.checked = false;
		else if (CURR_TASK == MODE_ADD)
		{
			obj.value = '';
			if (isOption) 
			{
				obj.setAttribute('option_id', '');
				var avgDiv = document.getElementById('DIV_' + obj.id).innerHTML = '';
			}	
		}	
		else
		{		
			obj.value = srcObj ? srcObj.value : '';
			if (isOption && srcObj && srcObj.getAttribute('option_id'))
			{
				obj.setAttribute('option_id', srcObj.getAttribute('option_id'));
				
				var avgDiv = document.getElementById('DIV_' + obj.id);
				avgDiv.innerHTML = '<font style="width:75px;">%&nbsp;' + srcObj.getAttribute('vote_avg') + '</font>[' + 
					srcObj.getAttribute('vote_count')+ ' oy]';
			}				
		}
	}
}
