/*
Cookie functions
*/
function createCookie(aName, aValue, days){
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = aName+"="+aValue+expires+"; path=/";
}

function readCookie(aName) {
	var nameEQ = aName + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(aName) {
	createCookie(aName,"",-1);
}

function toggleZigtElem(elemId){
  elem = document.getElementById(elemId);
  if (elem.style.display == 'none'){
    elem.style.display = 'inline';
  } else {
    elem.style.display = 'none';
  }
}

function checkLength(aElem, mSize){  
  if (aElem.value.length > mSize){
    aElem.value = aElem.value.substr(0, mSize);
    alert('Een reactie mag maximaal ' + mSize + ' tekens lang zijn.');
  }
  document.getElementById('z_m_c').innerHTML = aElem.value.length + ' - ' + mSize;
}

function addReaction(aDiv, aName, aMessage, aDate){
  var tbl = document.getElementById('reactions');  
  newrow = tbl.insertRow(1);
  if (aName == ''){
    aName = 'Anoniem'; 
  }  
  var cell1 = newrow.insertCell(0);
  cell1.className = 'dotted_blue_text';
  cell1.valign = 'top';
  cell1.innerHTML = aName;  
  var cell2 = newrow.insertCell(1);
  cell2.className = 'dotted_blue';
  cell2.valign = 'top';
  cell2.innerHTML = aMessage;  
  var cell3 = newrow.insertCell(2);
  cell3.className = 'dotted_blue_text';
  cell3.valign = 'top';
  cell3.align = 'right';
  cell3.innerHTML = aDate;  
  aDiv.innerHTML = 'Bericht toegevoegd!';  
  document.getElementById('reactions_container').style.display = 'inline';
  setTimeout(function(){aDiv.innerHTML = '';}, 2000);
}

var req = null;
function handleReact(aId, aObj){
  errMess = 'Mening plaatsen mislukt. Probeer het opnieuw!';
  aDiv = document.getElementById('z_r');
  aName = document.getElementById('z_n').value;
  aMessage = document.getElementById('z_m').value;  
  if (trimAll(aMessage) == '') {
    alert('Er is geen bericht ingevuld');    
    return false;
  }  
  req = initRequester(req);  
  req.open("POST", "ajax.php", true);
  req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");  
  var reqTO = setTimeout(function(){req.abort();alert(errMess);}, 2000);
  req.onreadystatechange = function() { 
    if (req.readyState == 4){
      clearTimeout(reqTO);
      if (req.status == 200){        
        if (req.responseText == 'ERROR' || req.responseText == ''){
          alert(errMess);
        } else {
          addReaction(aDiv, aName, aMessage, req.responseText);
        }
      }      
    }
  }
  query = 'object='+aObj+'&methodname=addReaction&content_id='+aId+'&name='+aName+'&message='+escape(aMessage);
  aDiv.innerHTML = 'Een moment geduld aub...';
  req.send(query);
}

function handlePoll(pollId, optionId){
  errMess = 'Poll verwerking mislukt. Probeer het opnieuw!';  
  req = initRequester(req);  
  req.open("POST", "ajax.php", true);
  req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");  
  var reqTO = setTimeout(function(){req.abort();alert(errMess);}, 2000);
  req.onreadystatechange = function() { 
    if (req.readyState == 4){
      clearTimeout(reqTO);
      if (req.status == 200){        
        if (req.responseText == 'ERROR'){
          alert(errMess);
        } else {
          document.getElementById('poll_r').innerHTML = req.responseText;
        }
      }      
    }
  }
  query = 'object=cms_polls&methodname=addPoll&id='+pollId+'&poll_id='+pollId+'&option_id='+optionId;  
  req.send(query);
}


function RecurseAll(aType, aNumber, aElem){
  aCheck = aElem.checked;
  for(i = 0; i < aNumber; i++){
    newID = aType + '_' + i;
    if (document.getElementById(newID)){
      if (aCheck){
        document.getElementById(newID).checked = true;
      } else {
        document.getElementById(newID).checked = false;
      }
    }
  }
}

function handleBasket(aType, aNumber, aAc){
  var aIds = '';
  for(i = 0; i < aNumber; i++){
    newID = aType + '_' + i;
    if (document.getElementById(newID)){
      if (document.getElementById(newID).checked){
        if (aAc == 'del' && document.getElementById(newID).parentNode.parentNode){
          document.getElementById(newID).parentNode.parentNode.style.display = 'none';
        }
        aIds = aIds + ',' + document.getElementById(newID).value;
      }
    }
  }
  if (aNumber == 0){
    aIds = '0';
  }
  if (aIds == ''){
    return; 
  }
  errMess = 'Timeout. Probeer het opnieuw!';  
  req = initRequester(req);  
  req.open("POST", "zigt.php", true);
  req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");  
  var reqTO = setTimeout(function(){req.abort();alert(errMess);}, 5000);
  req.onreadystatechange = function() { 
    if (req.readyState == 4){
      clearTimeout(reqTO);
      if (req.status == 200){
        createCookie(aType+'_'+'basket', req.responseText, 21);
        if (aAc == 'del'){
          //alert('Item(s) verwijdert uit favorieten. ' + readCookie(aType+'_'+'basket')); 
          alert('Item(s) verwijdert uit favorieten.');
        } else if (aAc == 'add') {
          //alert('Item(s) toegevoegd aan favorieten. ' + readCookie(aType+'_'+'basket')); 
          alert('Item(s) toegevoegd aan favorieten.');
        }
      }
    }
  }
  query = 'ids='+aIds+'&type='+aType+'&action='+aAc+'&default='+readCookie(aType+'_'+'basket');
  req.send(query);
}

function handleBackend(aId, aKind, aOld){
  errMess = 'Timeout. Probeer het opnieuw!';  
  req = initRequester(req);  
  req.open("POST", "zigt.php", true);
  req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");  
  var reqTO = setTimeout(function(){req.abort();alert(errMess);}, 5000);
  req.onreadystatechange = function() { 
    if (req.readyState == 4){
      clearTimeout(reqTO);
      if (req.status == 200){                
        document.getElementById('overzigt_detail').innerHTML = req.responseText;
      }      
    }
  }
  query = 'id='+aId+'&kind='+aKind+'&old='+aOld;
  document.getElementById('overzigt_detail').innerHTML = 'Een moment geduld aub...';
  req.send(query);
}

function addToFavorites(aUrl, aTitle){
  if (typeof aUrl == 'undefined' ) aUrl = 'http://www.zigt.nl';
  if (typeof aTitle == 'undefined' ) aTitle = 'Mediabureau ZIGT';
  if (document.all){
    window.external.AddFavorite(aUrl, aTitle);
  }
}

/*
GoogleMAPS for ZIGT
*/
function mediaMaps(){
  openWindow('?action=behaviour&actionid=783&windowname=ZIGT_MAPS', 'ZIGT_MAPS', 'resizable,width=1024,height=768,scrollbars');
}

function zigtzoomed(oldlevel, newlevel) {  
  var o = zoomtodetail(oldlevel);
  var n = zoomtodetail(newlevel);
  if (o != n || n == 0) {
    var b = map.getBounds();
    l = '&sw=' + b.getSouthWest().toUrlValue() +
       '&ne=' + b.getNorthEast().toUrlValue() +
       '&zoomlevel=' + newlevel +
       '&level=' + n;
    procLink(l);
  }
}

var movestartc = true;
function zigtmovestart() {
  movestartc = true;
}

function zigtinfowindowopen(){
  movestartc = false;
}

function zigtmoveend() {
  if (!movestartc){
    return; 
  }  
  var z = map.getZoom();
  var n = zoomtodetail(z);
  var b = map.getBounds();
  l = '&sw=' + b.getSouthWest().toUrlValue() +
    '&ne=' + b.getNorthEast().toUrlValue() +
    '&zoomlevel=' + z +
    '&level=' + n;
  procLink(l);
}

function procVars(aName){
  str = '';
  elems = document.getElementById(aName).getElementsByTagName('li');  
  if (elems.length > 0){    
    for (i=0; i < elems.length; i++){
      tmp = elems[i].id.split('_');
      str = str + ((i > 0)? ',' : '') + tmp[2];
    }
  }
  return str;
}

var proclink = '';
function procLink(aLink){
  if (aLink.indexOf(proclink) == -1)
    aLink = proclink + aLink;
  aLink = aLink + '&zigtgemeenten=' + procVars('zigtgemeenten');
  aLink = aLink + '&zigtratesheets=' + procVars('zigtratesheets');  
  aLink = aLink + '&zigttype=' + getFromEl('zigt_ratesheet_kind_id');  
  aLink = aLink + '&zigtuitgexpl=' + getFromEl('bms_relations_l_exploitant_id');
  document.location = aLink;
}

function getFromEl(aName) {
  el = document.getElementById(aName);
  return el.value;
}

function aZ(t, aId, aLabel, add){  
  elid = 'i_'+t+'_'+aId;
  expl_elem = document.getElementById('tar_link_holder');
  if (t == 1){
    elem = document.getElementById('zigtgemeenten');
  } else {
    elem = document.getElementById('zigtratesheets');
  }
  if (document.getElementById(elid)){
    // already existing
    if (!add){      
      elem.removeChild(document.getElementById(elid));
      if (!elem.hasChildNodes()) {
        expl_elem.innerHTML = 'U heeft nog geen tariefkaarten geselecteerd. Selecteer links eerst de door u gewenste media.';
      }
    }
  } else if (add) {        
    var el = document.createElement('li');
    el.id = elid;
    el.innerHTML = aLabel + ' <a href="javascript:void(0);" onclick="aZ('+t+','+aId+',\''+escape(aLabel)+'\',false); return false;"><img src="zigt/delarrow.gif"/></a>';
    elem.appendChild(el);
    expl_elem.innerHTML = '<a href="javascript:void(0);" onclick="cB(); return false;">Bekijk tariefkaarten in ZIGT.com</a>';
  }
}

function cBD(aId){
  document.location = '?ac=Search&type=advanced&t=1&id='+aId;
}

function cB(){
  aLink = '?ac=Search&type=advanced&stab=Y&do_search=yes&searchobject=as_tar&dl=yes&active=y';
  aLink = aLink + '&zigtgemeenten=' + procVars('zigtgemeenten');
  aLink = aLink + '&zigtratesheets=' + procVars('zigtratesheets');  
  aLink = aLink + '&zigttype=' + getFromEl('zigt_ratesheet_kind_id');  
  aLink = aLink + '&zigtuitgexpl=' + getFromEl('bms_relations_l_exploitant_id');
  window.document.location = aLink;
}

function zigtFKTROnClick(editorlabel, suffix, aId, aValue) {  
  loc = document.URL;
  bits = loc.split('?');
  base = bits[0];
  loc = bits[0] + '?ac=Zigt+Maps&level=3&sel_id=' + aId;
  document.location=loc;
  return false;
}

function zigtExploitantOnClick(editorlabel, suffix, aId, aValue) {
  aLink = proclink;
  aLink = aLink + '&zigtgemeenten=' + procVars('zigtgemeenten');
  aLink = aLink + '&zigtratesheets=' + procVars('zigtratesheets');  
  aLink = aLink + '&zigttype=' + getFromEl('zigt_ratesheet_kind_id');  
  aLink = aLink + '&zigtuitgexpl=' + aId;
  document.location = aLink;
}
