var tabs = new Array('targeting_sitecontent','targeting_keyword','targeting_demographic','targeting_geographic');
var request_id = 0;
var countTimer = null;
var ignore_submit_flag = false;
var page_name;

function addListeners() {
	//addSymbolListeners();
	addTabListeners();


   addInputListeners();


}
function addBannerWarnListeners() {
   // Event.observe( 'ad_type_image', 'click' , showBannerWarn, false );
   Event.observe( 'ad_type_text', 'click' , hideBannerWarn, false );
   Event.observe( 'ad_type_interstitial', 'click', hideBannerWarn, false );
   addInputListeners();
}
function showBannerWarn() {
	Element.show("banner-warning");
}
function hideBannerWarn() {
	Element.hide('banner-warning');
}
function enableInputsIn(elem, bool) {
	inputs = $(elem).getElementsByTagName('input');
	disabled = (bool) ? '' : 'disabled';
	for (i=0;i<inputs.length;i++) {
		inputs[i].disabled = disabled;
	}
}
function toggleCategoryChecks(e) {
	if (Event.element(e).value == 'no' ) {
		Element.hide('categoryChecks');
	} else if (Event.element(e).value == 'yes' ) {
		Element.show('categoryChecks');
	}
}
function toggleIncomeChecks(e) {
	if (Event.element(e).value == 'no' ) {
		Element.hide('incomeChecks');
	} else if (Event.element(e).value == 'yes' ) {
		Element.show('incomeChecks');
	}
}
function toggleEthChecks(e) {
	if (Event.element(e).value == 'no' ) {
		Element.hide('ethChecks');
	} else if (Event.element(e).value == 'yes' ) {
		Element.show('ethChecks');
	}
}

function toggleRunOfNetwork(e) {
   if (Event.element(e).value == 'run_of_network' ) {
      Element.show('madmin-run-of-network');
      var default_net_qual = document.getElementById('targetByQual4');
      default_net_qual.checked = 'checked';
   } else {
      Element.hide('madmin-run-of-network');
      var run_of_net_id = document.getElementById('targetByQual3');
      run_of_net_id.checked = '';
   }
}
function toggleGeoChecks(e) {
   if (Event.element(e).value == 'no' ) {
      Element.hide('geoChecks');
   } else if (Event.element(e).value == 'yes' ) {
      Element.show('geoChecks');
   }
}
function toggleGeos(e) {
	if (Event.element(e).value == 'country' ) {
		Element.hide('regions');
		Element.show('countries');
	} else if (Event.element(e).value == 'region' ) {
		Element.hide('countries');
		Element.show('regions');
	}
}
function updateImp(imp,sites, responding_id) {
   if (responding_id == request_id) {
   if ( page_name != 'splash page') removeCalculate();
      $('imp').innerHTML = imp;
      if ($('sites')) $('sites').innerHTML = sites;
   }
}

function addSimpleInputListeners() {
   //checkboxes, radios, buttons
   inputs = document.getElementsByTagName('input');
   for (i=0;i<inputs.length;i++) {
      if (inputs[i].type == 'radio' || inputs[i].type == 'checkbox' ) {
         Event.observe(inputs[i], 'click', inputChanged, false);
      }
   }
}
function addInputListeners() {
	//checkboxes, radios, buttons
	inputs = document.getElementsByTagName('input');
	for (i=0;i<inputs.length;i++) {
		if (inputs[i].type == 'radio' || inputs[i].type == 'checkbox' ) {
			Event.observe(inputs[i], 'click', inputChanged, false);
		}
	}
	//selected aras for geos
	geoBtns = $('geotarget').getElementsByTagName('input');
	for (i=0;i<geoBtns.length;i++) {
		if (geoBtns[i].type == 'button') {
			Event.observe(geoBtns[i], 'click', geoChanged, false);
		}
	}
	geoSelects = $('geotarget').getElementsByTagName('select');
	for (i=0;i<geoSelects.length;i++) {
		Event.observe(geoSelects[i], 'dblclick', geoChanged, false);
	}
	Event.observe('keywords', 'keydown', keywordsChanged, false);
}

function add_enter_override_listeners() {
   var inputs = document.getElementsByTagName('input');

   for ( i = 0; i < inputs.length; i++ ) {
      Event.observe(inputs[i], 'keydown', checkEnterKey, false);
   }
}
function inputChanged(e) {
   if (response_type == 'none') return;
   if ( response_type == 'everything') {
      estTraffic();
   } else {
      if ( page_name != 'splash page') makeCalculate();
      var container = 'aj_result';
      var url = '/mb/aj_imp_target.php';
      var pars = gather_targeting();
      var myAjax = new Ajax.Updater(container, url, {
         method: 'post',
         parameters: pars,
	 evalScripts: true
      });
   }
}
function geoChanged(e) {
   if (response_type == 'none') return;
   if ( response_type == 'everything') {
         estTraffic();
   } else {
      makeCalculate();
      var container = 'aj_result';
      var url = 'aj_imp_target.php';
      var pars = gather_targeting();
      var myAjax = new Ajax.Updater(container, url, {
	 method: 'post',
	 parameters: pars,
	 evalScripts: true
      });
   }
}
function keywordsChanged(e) {
   if (response_type == 'none') return;
   var keyNum = (e.which) ? e.which : e.keyCode;
   if (keyNum == Event.KEY_RETURN) {
      if ( response_type == 'everything') {
	 estTraffic();
      }
      makeCalculate();
      var container = 'aj_result';
      var url = 'aj_imp_target.php';
      var pars = gather_targeting();
      var myAjax = new Ajax.Updater(container, url, {
	 method: 'post',
	 parameters: pars,
	 evalScripts: true
      });
   }
}

function AdBriteFirstPageView() {
   var container = 'aj_result';
   var url = 'aj_imp_target.php';
   var pars = gather_targeting();
   var myAjax = new Ajax.Updater(container, url, {
				 method: 'post',
	                         parameters: pars,
	                         evalScripts: true
		                 });
}

function AdBriteAddLoadEvent(func) {
   var oldonload = window.onload;
   if (typeof window.onload != 'function') {
      window.onload = func;
   } else {
      window.onload = function () {
         oldonload();
         func();
      }
   }
}

function expandAll() {
	for (i=0;i<tabs.length;i++) {
		Element.show(tabs[i]);
		Element.addClassName('tab_'+tabs[i], 'on');
	}
}
function writeKeywords(e) {
   Element.toggle('keywords');
   Element.toggle('upload_keywords');
   Element.toggle('keyword_hint');
}
function addTabListeners() {
	table = $('tabs');
	tds = table.getElementsByTagName('td');
	for (i=0;i<tds.length;i++) {
		Event.observe(tds[i], 'click', tabClick, false);
	}
}
function tabClick(e) {
	tabId = Event.element(e).id;
	tabId = tabId.slice(4,tabId.length);
	for (i=0;i<tabs.length;i++) {
		if (tabs[i] != tabId ) {
			Element.hide(tabs[i]);
			if (Element.hasClassName('tab_'+tabs[i], 'on')) Element.removeClassName('tab_'+tabs[i], 'on');
		}
	}
	Element.show(tabId);
	Element.addClassName('tab_'+tabId, 'on');
}
function addSymbolListeners() {
	div = $('categoryChecks');
	symbols = document.getElementsByClassName('symbols', div);
	for( i in symbols ) {
		Event.observe( symbols[i], 'click', toggleSymbol, false );
	}
}
function addParentCheckListeners() {
	div = $('categoryChecks');
	lis = document.getElementsByClassName('category-parent', div);
	for( i=0; i<lis.length; i++ ) {
		var checkbox = lis[i].getElementsByTagName('input')[0];
		Event.observe( checkbox, 'click', selectAllSubcats, false );
	}
}
function selectAllSubcats(e) {
	var checked = ( Event.element(e).checked ) ? 'checked' : '';
	var parentLi = Event.element(e).parentNode.parentNode;
	var subUl = parentLi.getElementsByTagName('ul')[0];
	var subChecks = subUl.getElementsByTagName('input');
	for (i=0; i<subChecks.length; i++) {
		subChecks[i].checked = checked;
	}
}
function toggleSymbol(e) {
	symbol = Event.element(e);
	ul = symbol.parentNode.getElementsByTagName('ul')[0];
	if ( Element.visible(ul) ) {
		Element.hide(ul);
		symbol.style.backgroundImage = 'url(images/plus.png)'
	} else {
		Element.show(ul);
		symbol.style.backgroundImage = 'url(images/minus.png)'
	}
}
function estTraffic() {
   if (response_type == 'none') return;
   var cpc = $F('cpc_est');
   var bud = $F('bud_est');

   disableInputs('input-bar');
   if ($('bulk-buy-sites')) disableInputs('bulk-buy-sites');
   container = 'aj_return';
   var pars = gather_targeting();
   var url = 'aj_imp_target.php';
   var myAjax = new Ajax.Updater(container, url, {
      method: 'post',
      parameters: pars,
      evalScripts: true
   });
}

function showErrors(bid, budget) {
        clearErrorMessages();
        if (bid && Element.visible('bid')) {
                var insideDiv = document.createElement('div');
                insideDiv.id = 'bid-error';
                insideDiv.appendChild(document.createTextNode(bid));
                $('errors').appendChild(insideDiv);
        }
        if (budget) {
                var insideDiv = document.createElement('div');
                insideDiv.id = 'budget-error';
                insideDiv.appendChild(document.createTextNode(budget));
                $('errors').appendChild(insideDiv);
        }
        enableInputs('input-bar');
        if ($('bulk-buy-sites')) enableInputs('bulk-buy-sites');
}
/*
function showErrors(errors) {
        clearErrorMessages();
	if (errors['cpc']) {
		var insideDiv = document.createElement('div');
		insideDiv.id = 'bid-error';
		insideDiv.appendChild(document.createTextNode(errors['cpc']));
		div.appendChild(insideDiv);
	}
        if (errors['bud']) {
                var insideDiv = document.createElement('div');
                insideDiv.id = 'budget-error';
                insideDiv.appendChild(document.createTextNode(errors['bud']));
                div.appendChild(insideDiv);
	}
}
*/
function clearErrorMessages() {
   if ($('bid-error')) Element.remove('bid-error');
   if ($('budget-error')) Element.remove('budget-error');
}
function populateEsts( imp, sites, cpm, clks, spend, responding_id ) {
   if (responding_id == request_id) {
      clearErrorMessages();
      $('imp').innerHTML = imp;
      if ($('sites')) $('sites').innerHTML = sites;
      $('cpm').innerHTML = '$' + cpm;      // don't forget the $
      $('clic').innerHTML = clks;
      $('spend').innerHTML = '$' + spend;  // don't forget the $
      enableInputs('input-bar');
      if ($('bulk-buy-sites')) enableInputs('bulk-buy-sites');
   }
}
function populateOfs( imp, sites, clks, spend, responding_id ) {
   if (responding_id == request_id) {
      if ( spend < 75 ) {
         $('spend-percent').className = 'alert';
      } else {
         $('spend-percent').className = 'no_alert';
      }

      $('imp-total').innerHTML = '&nbsp;of&nbsp;' + imp;
      $('sites-total').innerHTML = '&nbsp;of&nbsp;' + sites;
      $('clic-total').innerHTML = '&nbsp;of&nbsp;' + clks;
      $('spend-percent').innerHTML = '&nbsp;(' + spend +'% of your daily budget)';
      enableInputs('input-bar');
      if ($('bulk-buy-sites')) enableInputs('bulk-buy-sites');
   }
}
function disableInputs(elem) {
        var inputs = $(elem).getElementsByTagName('input');
        for (i=0; i<inputs.length; i++ ) {
                if (!(inputs[i].disabled)) inputs[i].disabled = 'disabled';
        }
}
function enableInputs(elem) {
        var inputs = $(elem).getElementsByTagName('input');
        for (i=0; i<inputs.length; i++ ) {
                if (inputs[i].disabled) inputs[i].disabled = '';
        }
}

function count() {
        var imp = $('imp').innerHTML;
        var nImp = '';
        for (i=0; i<imp.length; i++ ) {
                var character = imp.substr(i,1);
                if (parseInt(character, 10) || parseInt(character, 10) == 0 ) {
                        nImp += Math.round(Math.random()*9)
                } else {
                        nImp += character;
                }
        }
        $('imp').innerHTML = nImp;
        if ($('sites')) { //don't count sites if it's site-specific/bulk
            var sites = $('sites').innerHTML;
            var nSites = '';
            for (i=0; i<sites.length; i++ ) {
                var character = sites.substr(i,1);
                if (parseInt(character, 10) || parseInt(character, 10) == 0 ) {
                        nSites += (Math.round(Math.random()*9))
                } else {
                        nSites += character;
                }
            }
            $('sites').innerHTML = nSites;
         }
}
function makeCalculate() {
   if ( !countTimer ) {
        div = document.createElement('div');
        div.id = 'calculating';
        img = document.createElement('img');
        img.src = 'images/loading.gif';
        img.alt = 'loading';
        var txt = document.createTextNode(' Calculating...');
        div.appendChild(img);
        div.appendChild(txt);
        $('est-imp').appendChild(div);
        countTimer = setInterval('count()', 200);
   }
}
function removeCalculate() {
   est = $('est-imp');
   est.removeChild(est.lastChild);
   clearInterval(countTimer);
   countTimer = null;
}


function gather_targeting() {

   request_id++;

   var qs = formData2QueryString(document.targeting_form) + '&request_id=' + request_id + '&response_type=' + response_type;
   return qs;
}

function checkEnterKey(evt) {
   evt = (evt) ? evt : event;
   var charCode = (evt.charCode) ? evt.charCode :
   ((evt.which) ? evt.which : evt.keyCode);
   if (charCode == 13 || charCode == 3) {
      estTraffic();
      ignore_submit_flag = true;
   }
}
function disableEnter(evt) {
   var evt = (evt) ? evt : ((event) ? event : null);
   var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
   if((onkeypress.keyCode == 13))  {return false;}
}
function check_submit_flag() {
   if (ignore_submit_flag == true) {
      ignore_submit_flag = false;
      return false;
   } else {
      return true;
   }
}

function applyMassBid(mass_bid) {
   var value = $F(mass_bid);
   var table = $("bulk-buy-sites");
   var inputs = table.getElementsByTagName("input");

   for ( i=0; i<inputs.length; i++ ) {
      inputs[i].value = value;
   }
}
