var datag = null;
var piechart = null;

function loadGAPI() 
{  
  //google.load("visualization", "1", {'packages':['areachart'], 'callback':putCharts});
  google.load("visualization", "1", {'packages':['piechart'], 'callback':putCharts});
}

function initLoader() 
{
  var script = document.createElement("script");
  script.src = "http://www.google.com/jsapi?callback=loadGAPI";
  script.type = "text/javascript";
  document.getElementsByTagName("head")[0].appendChild(script);
}

function chartMouseOvercreatePieChart(e) 
{
  piechart.setSelection([e]);
}

function chartMouseOutcreatePieChart(e) 
{
  piechart.setSelection([{'row': null, 'column': null}]);
}

function putCharts()
{
  var divg = document.createElement('div');
  divg.id = 'piechart';
  
  eval(datag.js);
  
  browser.setInnerHTML($('divpoll'), datag.html);
  
  $('lagrafica').appendChild(divg);
  
  piechart = new google.visualization.PieChart(divg);
  var formatter = new google.visualization.NumberFormat({prefix: '', negativeColor: 'red', negativeParens: true});
  formatter.format(data, 1);
  piechart.draw(data, {
                       is3D:false, 
                       width: 400, 
                       height: 200, 
                       legend: 'right', 
                       title: 'Respuestas',
                       //colors: [{color: '#15a1ae'},{color: '#fa8c0f'},{color: '#c70b25'},{color: '#006699'}],
                       //colors: [{color: '#deb887'},{color: '#ee82ee'},{color: '#fa8072'},{color: '#8fbc8f'}],
                       colors: thecolors,
                       legendFontSize:'12',
                       tooltipFontSize: '12'                      
                      });
  
  divg.style.cssFloat = 'right';
  divg.style.styleFloat = 'right';

  divg.style.display = 'block';
  
  
  google.visualization.events.addListener(piechart, 'onmouseover', chartMouseOvercreatePieChart);
  google.visualization.events.addListener(piechart, 'onmouseout', chartMouseOutcreatePieChart);
}

function createGraph(resp)
{
  
  datag = resp;
  initLoader();
  
}

function polloka(r)
{
  //alert('1');
  //browser.setInnerHTML($('divpoll'), r.responseText);
  var response = r.responseText;
  
  var resp = JSONDecode(response);
  
  //alert(r.responseText);
  createGraph(resp);
}

function pollokb(r)
{
  //alert('1');
  browser.setInnerHTML($('divpoll'), r.responseText);
  //var response = r.responseText;
  //var resp = JSONDecode(response);
  //alert(r.responseText);
  //createGraph(resp);
}

function getpoll_a(href)
{
  var request = ajaxManager.createRequest(href, 'POST', null, polloka, true, true);
}

function getpoll_b(href)
{
  var request = ajaxManager.createRequest(href, 'POST', null, pollokb, true, true);
}

function getpoll(formid)
{
  var request = ajaxManager.createRequest('/', 'POST', null, polloka, false);
  addFormValues($(formid), request);
  request.send();
}

function addFormValues(form, request)
{
  for(var i = 0;i < form.elements.length;i++)
  {
    // we ignore the page for AJAX since we force it manually
    switch(form.elements[i].type)
    {
      case "text":
      case "textarea":
      case "hidden":
      case "password":
        request.addParameter(form.elements[i].name, utf8.encode(form.elements[i].value));
        break;
      case "radio":
        if (form.elements[i].checked)
          request.addParameter(form.elements[i].name, utf8.encode(form.elements[i].value));
        break;
      case "select-one":
        if (form.elements[i].selectedIndex >= 0)
          request.addParameter(form.elements[i].name, utf8.encode(form.elements[i].options[form.elements[i].selectedIndex].value));
        break;
      case "select-multiple":
      case "checkbox":
        if (form.elements[i].checked)
          request.addParameter(form.elements[i].name, utf8.encode(form.elements[i].value));
        break;
      case "file":
        // no se puede leer por JS
      case "image":
      case "button":
      case "submit":
      case "reset":
        // ignorado
      default:
        break;
    }
  }
}

var arrayrotate = null;
var indexrotate = 0;
var previousrotate = -1;
var timerrotate = 0;

function startrotate(vector, tiempo)
{
  arrayrotate = vector;
  indexrotate = 0;
  previousrotate = -1;
  timerrotate = tiempo;

  if (browser.msie6)
  {
    for (var i = 0, l = arrayrotate.length; i < l; i++)
      $('div_'+arrayrotate[i]).style.display = 'none';
  }

  dorotate();
}

function dorotate()
{
  if (previousrotate > -1)
    $('x_'+arrayrotate[previousrotate]).style.backgroundImage = "url('/pics/carrusel/title-off.png')";
  $('x_'+arrayrotate[indexrotate]).style.backgroundImage = "url('/pics/carrusel/title-on.png')";

  // apagamos y prendemos
  if (browser.msie6)
  {
    if (previousrotate > -1)
      $('div_'+arrayrotate[previousrotate]).style.display = 'none';
    $('div_'+arrayrotate[indexrotate]).style.display = '';
  }
  else
  {
    if (previousrotate > -1)
      animManager.fadeout($('div_'+arrayrotate[previousrotate]), 1000, null);
    animManager.fadein($('div_'+arrayrotate[indexrotate]), 1000, null);
  }

  previousrotate = indexrotate;
  indexrotate ++;
  if (indexrotate >= arrayrotate.length)
    indexrotate = 0;

  var t = setTimeout(dorotate, timerrotate);
}