var ns_Z7_OP4I1241M012F0A39MA40VIKH4_spInstance=ns_Z7_OP4I1241M012F0A39MA40VIKH4_spHelper;
var ns_Z7_OP4I1241M012F0A39MA40VIKH4_pollid;
var ns_Z7_OP4I1241M012F0A39MA40VIKH4_poll;
var ns_Z7_OP4I1241M012F0A39MA40VIKH4_currentPollOptions;
var ns_Z7_OP4I1241M012F0A39MA40VIKH4_selectedOption = "No Selection";
var ns_Z7_OP4I1241M012F0A39MA40VIKH4_activePolls;

var poll;


function display(pollid,jsonData){

var pageURL= document.getElementById("ns_Z7_OP4I1241M012F0A39MA40VIKH4__URL").innerHTML;
var url = "^[^!]+";
var result = pageURL.match(url);
var page =result!==null?result[0]:null;
document.getElementById("ns_Z7_OP4I1241M012F0A39MA40VIKH4__PageURL").value=page;

	if(pollid == null) return;
	loadPollDetails(pollid,jsonData);

	loadPollResults(pollid,jsonData);
	
	var ns_Z7_OP4I1241M012F0A39MA40VIKH4_spInstance=ns_Z7_OP4I1241M012F0A39MA40VIKH4_spHelper;
	// alert("");
	var alreadyVoted = localStorage.getItem("alreadyVoted"+ns_Z7_OP4I1241M012F0A39MA40VIKH4_pollid);
if(ns_Z7_OP4I1241M012F0A39MA40VIKH4_poll == null)	return;

	if( ns_Z7_OP4I1241M012F0A39MA40VIKH4_poll.status !="a" || alreadyVoted=="yes" || (!(new Date().getTime() <= ns_Z7_OP4I1241M012F0A39MA40VIKH4_poll.endDate && new Date().getTime() >= ns_Z7_OP4I1241M012F0A39MA40VIKH4_poll.startDate))){
		showResults();
		 $('.Poll_opts').hide();
		 
	}
	else{
		$(".Poll_opts").show();
		$("#Poll_results").hide();
		$(".vote_btn").show();
		$(".vote_div").show();
	    $('.Poll_results').hide();
	    
	  $('body').on('click', '.vote_btn', function() {
		  
			if(ns_Z7_OP4I1241M012F0A39MA40VIKH4_selectedOption != "No Selection")
				submitVote();
			else{
				alert(" من فضلك قم بالإختيار أولا ");
				return;
			}
			
		  $('.Poll_opts').fadeOut(500);
		  showResults();
		  localStorage.setItem("alreadyVoted"+ns_Z7_OP4I1241M012F0A39MA40VIKH4_pollid,"yes");
		  $(".Poll_opts").hide();
		  $(".Poll_results").show();
		  alert(" تم احتساب صوتك بنجاح، شكرا للمشاركة");
	    return false;
	  });
	}
	var pollClosed = localStorage.getItem("pollClosed"+ns_Z7_OP4I1241M012F0A39MA40VIKH4_pollid);

	if(pollClosed == "true")
		closePoll();
	else{
		openPoll();	
	}

}
function showResults(){
	
	
	$(".Poll_opts").hide();
	$("#Poll_results").show();
	$(".vote_btn").hide();
	$(".vote_div").hide();
	    $('.Poll_results').show();
	    
	    $(".vote_btn").hide();
	    
	    $('.Poll_results.row li').each(function() {
	      var value = $(this).children('p[class=pull-left]').text();
	      
	      //$(this).find('.skill_bar_progress').animate({width: parseInt(value)}, 1000);
	      $(this).closest('li').next().find('.skill_bar_progress').delay('1000').animate({width: value}, 1000);
	     // $(this).closest('li').next().find('.skill_bar_progress').animate({width: parseInt(value)}, 1000);
	     
	    });
}

function displayPollOptionResult(pollOption, totalCount){
	
	var percent = 0;
	if(totalCount != 0)
		percent = parseInt(pollOption.optionSelectedCount * 100 / totalCount);
	var liNode1 = document.createElement("LI");
	var liNode2 = document.createElement("LI");
	
	var div1 = document.createElement("div");
	div1.setAttribute("class","skill_bar");
	
	var div2 = document.createElement("div");
	div2.setAttribute("class","skill_bar_progress skill_"+pollOption.optionId);
	
	
	div1.appendChild(div2);
	liNode1.appendChild(div1);
	
	
	var p1 = document.createElement("p");
	p1.setAttribute("class","pull-right");
	p1.innerHTML = pollOption.optionText;
	
	var p2 = document.createElement("p");
	p2.setAttribute("class","pull-left");
	p2.innerHTML = percent +"%";
	
	liNode2.appendChild(p1);
	liNode2.appendChild(p2);
	$('.Poll_results')[0].appendChild(liNode2);
	$('.Poll_results')[0].appendChild(liNode1);
	
	showResults();
}

function displayPollOption(pollOption){
	var liNode = document.createElement("LI");
	// liNode.setAttribute("class", "clearfix");
	
	var input = document.createElement("input");
	
	input.setAttribute("id", pollOption.optionId);
	input.setAttribute("type", "radio");
	input.setAttribute("name", "selector");
	input.setAttribute("onclick", "optionSelected(this);");
	
	var label = document.createElement("label");
	label.setAttribute("for", pollOption.optionId);
	//label.setAttribute("dir", "rtl"); // rtl should be removed from html
	label.setAttribute("class","radio-inline pull-right");
	label.innerHTML = pollOption.optionText;
	
	var div = document.createElement("div");
	div.setAttribute("class","check");
	liNode.appendChild(input);
	liNode.appendChild(label);
	liNode.appendChild(div);
	
	$('.Poll_opts')[0].appendChild(liNode);
}

function increasePollOption(pollOption){
	var count = parseInt(pollOption.optionSelectedCount);
	count ++;
	pollOption.optionSelectedCount = count;
// contentType: "application/json",
	$.ajax({
		type : 'PUT',
		url : "/ertu.polls/rest/com.ibm.ertu.polls.rest.polloptions/"+pollOption.optionId,
		data : JSON.stringify (pollOption),
		async: false,
		success : function(json) {
			//loadPollResults(ns_Z7_OP4I1241M012F0A39MA40VIKH4_pollid);
			ns_Z7_OP4I1241M012F0A39MA40VIKH4_poll = json;
			adjustResultJSON(json,'PollResult');
		},
		dataType : 'json',
contentType: "application/json",
		complete : function(xhr, textStatus) {
		}
	});
}

function optionSelected(radio){
	for (var i = 0; i < ns_Z7_OP4I1241M012F0A39MA40VIKH4_currentPollOptions.length; i++) {
		if(radio.id == ns_Z7_OP4I1241M012F0A39MA40VIKH4_currentPollOptions[i].optionId){
			ns_Z7_OP4I1241M012F0A39MA40VIKH4_selectedOption = ns_Z7_OP4I1241M012F0A39MA40VIKH4_currentPollOptions[i];
			break;
		}
	}
	
}
function submitVote(){
		increasePollOption(ns_Z7_OP4I1241M012F0A39MA40VIKH4_selectedOption);
}
function getTotalCount(pollOptions){
	var totalCount = 0;
	for (var i = 0; i < pollOptions.length; i++) {
		totalCount = totalCount + parseInt(pollOptions[i].optionSelectedCount);
	}
	return totalCount;
}

$(document).ready(
	function() {
		preparePreferences();
		getPollOfPortlet(true,display);	
		$('.Poll_toggle_btn').click(function(){
			if(poll == "close"){
				openPoll();
			
			} else{
				closePoll();
			}
		});
	
		$(".vote_btn").click(function(){ });

		$("#ns_Z7_OP4I1241M012F0A39MA40VIKH4_prefDialog").detach().appendTo($("body"));
	}
);

function openPoll(){
	$('.Poll-container').css('transform','translate(0,0)');
	$('.Poll-container').css('-webkit-transform','translate(0,0)');
	poll = "open";
	$('.Poll_toggle_btn').find(".glyphicon").removeClass('glyphicon-chevron-right').addClass('glyphicon-chevron-left');
}

function closePoll(){

	$('.Poll-container').css('transform','translate(-98%,0)');
	$('.Poll-container').css('-webkit-transform','translate(-98%,0)');
	poll = "close";
	$('.Poll_toggle_btn').find(".glyphicon").removeClass('glyphicon-chevron-left').addClass('glyphicon-chevron-right');
	
	localStorage.setItem("pollClosed"+ns_Z7_OP4I1241M012F0A39MA40VIKH4_pollid, "true");
	poll = "close";
}

function loadPollResults(pollid,jsonData){
	if(jsonData != null){
		adjustResultJSON(jsonData,'PollResult');
		return;
	}
	if(pollid == null){
		return;
	}
	$.ajax({
	type : 'GET',
	url : "/ertu.polls/rest/com.ibm.ertu.polls.rest.polloptions/bypollid/"+pollid,
	data : {
		"name" : "jonas"
	},
        cache: false,
	accept: "application/json",
	async: false,
	success : function(json) {
		ns_Z7_OP4I1241M012F0A39MA40VIKH4_currentPollOptions = json;
		var totalCount = getTotalCount(json);
		$('.Poll_results').empty();
		$('.Poll_opts').empty();
		for (var i = 0; i < json.length; i++) {
			displayPollOptionResult(json[i],totalCount);
			displayPollOption(json[i]);
		}
	},

	contentType : "application/json",
	dataType : 'json',
	complete : function(xhr, textStatus) {
	}
});}

function adjustResultJSON(json,show){
	if( json == null ) return;
	if(show == 'PollOption'){
		$(".Poll_header")[0].innerHTML = json.question;
		$(".Poll_Ques")[0].innerHTML = json.description;
		$(".Poll_EndDate")[0].innerHTML = formatDate(json.endDate);
		ns_Z7_OP4I1241M012F0A39MA40VIKH4_poll = json;
	}else if(show == 'PollResult'){
		ns_Z7_OP4I1241M012F0A39MA40VIKH4_currentPollOptions = json.pollOptionsList;
		var totalCount = getTotalCount(json.pollOptionsList);
		$('.Poll_results').empty();
		$('.Poll_opts').empty();
		for (var i = 0; i < json.pollOptionsList.length; i++) {
			displayPollOptionResult(json.pollOptionsList[i],totalCount);
			displayPollOption(json.pollOptionsList[i]);
		}
	} else {
		console.log("error No show state for Poll");
	}
}


function loadPollDetails(pollid,jsonData){
	if( jsonData != null){
		adjustResultJSON(jsonData,'PollOption');
		return;
	}
	if(pollid == null){
		return;
	}
	$.ajax({
	type : 'GET',
	url : "/ertu.polls/rest/com.ibm.ertu.polls.rest.polls/"+pollid,
	data : {
		"name" : "jonas"
	},
        cache: false,
	async: true,
	success : function(json) {
		if(json){
		$(".Poll_header")[0].innerHTML = json.question;
		$(".Poll_Ques")[0].innerHTML = json.description;
		$(".Poll_EndDate")[0].innerHTML = formatDate(json.endDate);
		
		ns_Z7_OP4I1241M012F0A39MA40VIKH4_poll = json;
		}
	},

	contentType : "application/json",
	dataType : 'json',
	complete : function(xhr, textStatus) {
		//
	

		(textStatus);
	}
});}
// /////////////////////////////////




function getPreferences(dataset) {
	var scriptPref = dataset;
	if (!scriptPref) {
		scriptPref = [ "0" ];
	}
	return scriptPref;
}


function ns_Z7_OP4I1241M012F0A39MA40VIKH4_preparePref() {
    loadActivePolls();
}


function preparePreferences(){

	$('#ns_Z7_OP4I1241M012F0A39MA40VIKH4_showPrefDialog').click(function() {
		getPollOfPortlet(true,searchForPolls);
		//searchForPolls();
	});

	$('#ns_Z7_OP4I1241M012F0A39MA40VIKH4_setPreference').click(function() {
	    showPageLoader();
		linkPortletToPoll(true);  
	});
// here we add the function to cancel the preference dialog
	$('#ns_Z7_OP4I1241M012F0A39MA40VIKH4_cancelPreference').click(function() {
		$('#ns_Z7_OP4I1241M012F0A39MA40VIKH4_prefDialog').dialog('close');
	});
	ns_Z7_OP4I1241M012F0A39MA40VIKH4_preparePref();
}

function pollSelected(field){
	$("#ns_Z7_OP4I1241M012F0A39MA40VIKH4_pollIdTxt").prop("value",field.id);
	  
	$("#poll-table-body tr").each(function() {
	      
	      this.setAttribute("class","");
	     
	    });
	    
	 
	field.closest("tr").setAttribute("class","active");
	
}
///////////////////////////////////////////////



var ns_Z7_OP4I1241M012F0A39MA40VIKH4_polls_filtered = false;
var ns_Z7_OP4I1241M012F0A39MA40VIKH4_activePolls;

function loadActivePolls(){
	$.ajax({
	type : 'GET',
	url : "/ertu.polls/rest/com.ibm.ertu.polls.rest.polls/",
	data : "",
        cache: false,
	async: true,
	success : function(json) {
		ns_Z7_OP4I1241M012F0A39MA40VIKH4_activePolls = json;
		ns_Z7_OP4I1241M012F0A39MA40VIKH4_polls_filtered = false;
		$('#poll-table-body').empty();
		for (var i = 0; i < json.length; i++) {
			addPollRow(json[i]);
		}
	},

	contentType : "application/json",
	dataType : 'json',
	complete : function(xhr, textStatus) {
	}
});}
$.fn.serializeObject = function()
{
    var o = {};
    var a = this.serializeArray();
    $.each(a, function() {
        if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};
function showSearch(){
	
	$("#ns_Z7_OP4I1241M012F0A39MA40VIKH4_setPreference").hide();
	$('#searchForm').show();
	$('#manageForm').hide();
}
function searchForPolls() {
	var pollData = $('#searchForm').serializeObject();
//	var options = pollData.pollOptionsList;
	$(pollData).removeProp( "pollOptionsList" );
	searchPoll(pollData);

    $("#manageForm").show();
    $("#ns_Z7_OP4I1241M012F0A39MA40VIKH4_setPreference").show();
    
    $("#searchForm").hide();
    return false;
}

function searchPoll(pollData){
	pollData.status = "a";
	$.ajax({
		type : 'POST',
		url : "/ertu.polls/rest/com.ibm.ertu.polls.rest.polls/searchActive",
		data : JSON.stringify(pollData),
		async: false,
		success : function(results) {
		},

		contentType : "application/json",
		dataType : 'json',
		accept: "application/json",
		complete : function(xhr, textStatus) {
			
		},
		success : function(json) {
			ns_Z7_OP4I1241M012F0A39MA40VIKH4_polls_filtered  = true;
			ns_Z7_OP4I1241M012F0A39MA40VIKH4_activePolls = json;
			$('#poll-table-body').empty();
			if(json.length == 0)
				$("#no-results")[0].appendChild(document.createTextNode("لا يوجد نتائج"));
			else{
				$("#no-results").empty();
				for (var i = 0; i < json.length; i++) {
					addPollRow(json[i]);
				}
			}
		},
	});
	
}
function formatDate(date){
	if(date === undefined)
		return "غير محدد";
	date = new Date(date);
    var curr_date = date.getDate();
    var curr_month = date.getMonth() + 1; //Months are zero based
    var curr_year = date.getFullYear();
    return curr_year + "-" + curr_month + "-" + curr_date ;
}

function addPollRow(poll){
	
	
	var tr = document.createElement("TR");
	var selectTD = document.createElement("td");
	var serialTD = document.createElement("td");
	var questionTD = document.createElement("td");
	var startDateTD = document.createElement("td");
	var endDateTD = document.createElement("td");

	var input = document.createElement("input");
	
	input.setAttribute("id", poll.pollId);
	input.setAttribute("value", poll.pollId);
	input.setAttribute("type", "radio");
	input.setAttribute("name", "poll-radio");
	input.setAttribute("onclick", "pollSelected(this);");
	
	selectTD.appendChild(input);
	
	var serialText = document.createTextNode(poll.pollId);
	serialTD.appendChild(serialText);
	
	var quesText = document.createTextNode(poll.question);
	questionTD.appendChild(quesText);
	var startDateText = document.createTextNode(formatDate(poll.startDate));
	startDateTD.appendChild(startDateText);
	var endDateText = document.createTextNode(formatDate(poll.endDate));
	endDateTD.appendChild(endDateText);
	
	
	tr.appendChild(selectTD);
	tr.appendChild(serialTD);
	tr.appendChild(questionTD);
	tr.appendChild(startDateTD);
	tr.appendChild(endDateTD);
	tr.setAttribute("class","language-rtl");
	$('#poll-table-body')[0].appendChild(tr);
}

function cancel() {
    $("#manageForm").show();
    $("#ns_Z7_OP4I1241M012F0A39MA40VIKH4_setPreference").show();
    $("#searchForm").hide();
    return false;
}


function getPollOfPortlet(asyncState,callBack){
	var portletId = "ns_Z7_OP4I1241M012F0A39MA40VIKH4_";
	//contentType : "application/json",
	$.ajax({
	type : 'GET',
	url : "/ertu.polls/rest/com.ibm.ertu.polls.rest.polls/link/"+portletId,
	cache: false,
	accept: "application/json",
	async: asyncState,
	dataType : 'json',
	success : function(json) {
		if( ! $.isEmptyObject(json) ){
			ns_Z7_OP4I1241M012F0A39MA40VIKH4_pollid = json.pollId;
			ns_Z7_OP4I1241M012F0A39MA40VIKH4_poll = json;
		}
	},	
	complete : function(xhr, textStatus) {
		var pollId = ns_Z7_OP4I1241M012F0A39MA40VIKH4_pollid ;
		var jsonData = ns_Z7_OP4I1241M012F0A39MA40VIKH4_poll;
		var sourceID = "#ns_Z7_OP4I1241M012F0A39MA40VIKH4_pollIdTxt";
		$(sourceID).prop("value",pollId);
		if( callBack != null )
			callBack(pollId,jsonData);
	}
});
}

function linkPortletToPoll(asyncState){
		showPageLoader();
		var portletId = "ns_Z7_OP4I1241M012F0A39MA40VIKH4_";
		var colId = "#ns_Z7_OP4I1241M012F0A39MA40VIKH4_pollIdTxt";
		var pollId = "" + $(colId).prop('value');
		$.ajax({
		type : 'PUT',
		url : "/ertu.polls/rest/com.ibm.ertu.polls.rest.polls/link/"+portletId+"/"+pollId,
		contentType: "application/json",
 data: $('#manageForm').serialize(), 
		async: asyncState,
		success : function() {
			window.top.location.reload(); 
		},
		error : function(jqXHR, textStatus, errorThrown){
			console.log("error linking Poll to Portlet");
		},
		complete : function(xhr, textStatus) {
			
		}
	});
}
