
		//======================================================
		//======= GENERAL ======================================
		//======================================================

		var gDMAs=0;
		//FORMAT COMMAS FOR THOUSANDS
		function formatThousandsOld(numValue){
			
			var strValue;
			var str;
				
			strValue = String(numValue);
							
			if(strValue.length>3)
				str = ","+strValue.slice(strValue.length-3);
			else
				return strValue;
				
			if(strValue.length>6)
				str = strValue.slice(0,strValue.length-6)+","+strValue.slice(strValue.length-6,strValue.length-3)+str;
			else
				str = strValue.slice(0,strValue.length-3)+str;

			return str;
			
		}
		
		function formatThousands(nStr)
		{
			nStr += '';
			x = nStr.split('.');
			x1 = x[0];
			x2 = x.length > 1 ? '.' + x[1] : '';
			var rgx = /(\d+)(\d{3})/;
			while (rgx.test(x1)) {
				x1 = x1.replace(rgx, '$1' + ',' + '$2');
			}
			return x1 + x2;
		}

		
		// THIS IS FOR THE WIZARD SUB NAV STYLE SWITCHER
		var PrevDiv="";
		var PrevClass="";
		var ThisClass="";
		PrevIndex=-1;
		
		function changeClass(divId){	

			if(PrevIndex!=-1)
			{
			  //Set previous ID back to original class
			  var obj = document.getElementById(PrevDiv);
			  obj.className = PrevClass;
			}
		  
			if(PrevClass=="linkon"){
				ThisClass = "link";
			}else{
				ThisClass = "linkon";
			}
			
			//Not the first time someone clicked
			PrevIndex=1
		
			PrevDiv = divId.id;
			PrevClass = divId.className;

			if(divId.id=="div3"){
				divId.className = "link";
			}else{
				divId.className = ThisClass;
			}
			
		}
		
		
		//USED TO GET SPECIFIC VALUES FROM THE URL
		function getURLVar(urlVarName) {
			//divide the URL in half at the '?' 
			var urlHalves = String(document.location).split('?');
			var urlVarValue = '';
			if(urlHalves[1]){
				//load all the name/value pairs into an array 
				var urlVars = urlHalves[1].split('&');
				//loop over the list, and find the specified url variable 
				for(i=0; i<=(urlVars.length); i++){
				if(urlVars[i]){
					//load the name/value pair into an array 
					var urlVarPair = urlVars[i].split('=');
					if (urlVarPair[0] && urlVarPair[0] == urlVarName) {
						//I found a variable that matches, load it's value into the return variable 
						urlVarValue = urlVarPair[1];
						}
					}
				}
			}
			return urlVarValue; 
		}
		
		
		// RUN ON PAGE LOAD FOR WIZARDS 2, 3 and 4
		function init(numy){
		
			//update the SCREENS and IMPRESSIONS
			document.getElementById("rawscrs").value=getURLVar('scr');
			document.getElementById("rawimps").value=getURLVar('imp');
			document.getElementById("states").value=getURLVar('sel');
			if(numy==3){
				document.getElementById("demoids").value=getURLVar('demoids');
			}
			if(numy==4){
				document.getElementById("demoids").value=getURLVar('demoids');
				document.getElementById("venueids").value=getURLVar('venueids');
			}
			
			document.getElementById("screens").innerHTML=formatThousands(document.getElementById("rawscrs").value);
			document.getElementById("impressions").innerHTML=formatThousands(document.getElementById("rawimps").value);
			
			
		}
		
		
		//RUN WHEN DEMOS/VENUES ARE CLICKED/UNCLICKLED ON WIZARDS 2 and 3
		function masterCalc(check,scr,imp){
			
			if(check==true){ 
				//ADDING
				var oldscreens_string = document.getElementById("rawscrs").value;
				var oldimps_string = document.getElementById("rawimps").value;
				
				var newscreens = parseInt(oldscreens_string)+parseInt(scr);
				var newimps = parseInt(oldimps_string)+parseInt(imp);
		
				document.getElementById("rawscrs").value = newscreens;
				document.getElementById("rawimps").value = newimps;
				document.getElementById("screens").innerHTML = formatThousands(newscreens);
				document.getElementById("impressions").innerHTML = formatThousands(newimps);
		
			}else{ 
				
				//SUBTRACTING
				var oldscreens_string = document.getElementById("rawscrs").value;
				var oldimps_string = document.getElementById("rawimps").value;
				
				var newscreens = parseInt(oldscreens_string)-parseInt(scr);
				var newimps = parseInt(oldimps_string)-parseInt(imp);
		
				document.getElementById("rawscrs").value = newscreens;
				document.getElementById("rawimps").value = newimps;
				document.getElementById("screens").innerHTML = formatThousands(newscreens);
				document.getElementById("impressions").innerHTML = formatThousands(newimps);
		
			}
		
		}




		//======================================================
		//=======WIZARD 1 ======================================
		//======================================================
		
		// STATE SELECTION TYPES=========
		// manual=0, allstates=1, dmas=2;
		// THIS is vital to the  generateSelectedString() function below
		var searchType = 0;
		
		//VALIDATION===========
		//MAKE SURE THEY CHOSE AT LEAST 1 STATE
		function checkStates(){
			if(gDMAs==0)
				var lenny = generateSelectedString ();
			else
				var lenny = "topdmas";
			if(lenny.length!=0){
				location.href='wizard2.php?sel='+lenny+'&scr='+document.getElementById('rawscrs').value+'&imp='+document.getElementById('rawimps').value;
			}else{
				alert("Please Choose at Least One State to Proceed");
				location.href=window.location;
			}
		}
		
	    //IN CASE THEY CLICK 'SKIP THIS STEP' PASS THIS TO THE URL
		var allstates = 'AL,AK,AZ,AR,CA,CO,CT,DE,DC,FL,GA,HI,ID,IL,IN,IA,KS,KY,LA,ME,MD,MA,MI,MN,MS,MO,MT,NE,NV,NH,NJ,NM,NY,NC,ND,OH,OK,OR,PA,RI,SC,SD,TN,TX,UT,VT,VA,WA,WV,WI,WY';


		// IF THEY SELECT ALL STATES
		function allStates(screens,impresssions,s_formatted,i_formatted){
			gDMAs=0;
			selected = [];
			
			 try //Internet Explorer
			  {
			  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
			  }
			catch(e)
			  {
			  try //Firefox, Mozilla, Opera, etc.
				{
				xmlDoc=document.implementation.createDocument("","",null);
				}
			  catch(e)
				{
				alert(e.message);
				return;
				}
			}
			xmlDoc.async=false;
			xmlDoc.load('mapfiles/ammap_data_allstates.xml');
						 
			//
			if (xmlDoc.xml == null){
				var serializer = new XMLSerializer();
				var xml = serializer.serializeToString(xmlDoc);
			}else{
				xmlObj=xmlDoc.documentElement;
				var xml = xmlObj.xml;
			} 
	 
	 		var selected = '';
			//var disabled = true;
			var searchType = 1;
			
			//UNESCAPE
			var dataInsert = unescape(xml);
			//REMOVE LINE BREAKS
			dataInsert =dataInsert.replace(/[\r\n]+/g, "");
			
			document.getElementById('ammap').setData(dataInsert);
			document.getElementById("screens").innerHTML=s_formatted;
			document.getElementById("impressions").innerHTML=i_formatted;
			document.getElementById("rawscrs").value=screens;
			document.getElementById("rawimps").value=impresssions;
			 
			
		
		}
		// IF THEY SELECT ALL STATES
		
		
		// THIS IS FOR ALL DMAS
		function allDmas(screens,impresssions,s_formatted,i_formatted){
			
			gDMAs=1;
			
			selected = [];
			
			 try //Internet Explorer
			  {
			  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
			  }
			catch(e)
			  {
			  try //Firefox, Mozilla, Opera, etc.
				{
				xmlDoc=document.implementation.createDocument("","",null);
				}
			  catch(e)
				{
				alert(e.message);
				return;
				}
			}
			xmlDoc.async=false;
			xmlDoc.load('mapfiles/ammap_data_dmas.xml');
			
						 
			//
			if (xmlDoc.xml == null){
				var serializer = new XMLSerializer();
				var xml = serializer.serializeToString(xmlDoc);
				//var vario = xml;
				//alert("test");
	
			}else{
				xmlObj=xmlDoc.documentElement;
				var xml = xmlObj.xml;
				//alert("test");
	
			} 
	 
	 		
	 		var selected = '';
			//var disabled = true;
	 		var searchType = 2;
			
			 //UNESCAPE
			 var dataInsert = unescape(xml);
			 //REMOVE LINE BREAKS
			 dataInsert =dataInsert.replace(/[\r\n]+/g, "");
			 


			 document.getElementById('ammap').setData(dataInsert);
			document.getElementById("screens").innerHTML=s_formatted;
			document.getElementById("impressions").innerHTML=i_formatted;
			document.getElementById("rawscrs").value=screens;
			document.getElementById("rawimps").value=impresssions;
			 
			 //document.getElementById('selected').value = 'AL,AK,AZ,AR,CA,CO,CT,DE,DC,FL,GA,HI,ID,IL,IN,IA,KS,KY,LA,ME,MD,MA,MI,MN,MS,MO,MT,NE,NV,NH,NJ,NM,NY,NC,ND,OH,OK,OR,PA,RI,SC,SD,TN,TX,UT,VT,VA,WA,WV,WI,WY';
		  
		  	 //document.getElementById('debug').value = dataInsert;
		  
			//selected = ['AL','AK','AZ','AR','CA','CO','CT','DE','DC','FL','GA','HI','ID','IL','IN','IA','KS','KY','LA','ME','MD','MA','MI','MN','MS','MO','MT','NE','NV','NH','NJ','NM','NY','NC','ND','OH','OK','OR','PA','RI','SC','SD','TN','TX','UT','VT','VA','WA','WV','WI','WY'];
			//selected = generateSelectedString ();
			
		
		}
		// THIS IS FOR ALL DMAS
		
		
		// TO CLEAR THE XML - WHEN THEY CLICK 'CLEAR'
		function clearXML(){
			
			var oldscreens_string = 0;
			var oldimps_string = 0;
									
			var newscreens = 0;
			var newimps = 0;
			
		  	var searchType = 0;
			
			filled = [];

			var disabled = false;
			
			//alert(disabled);

			gDMAs=0;
			selected = [];
			
			 try //Internet Explorer
			  {
			  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
			  }
			catch(e)
			  {
			  try //Firefox, Mozilla, Opera, etc.
				{
				xmlDoc=document.implementation.createDocument("","",null);
				}
			  catch(e)
				{
				alert(e.message);
				return;
				}
			}
			xmlDoc.async=false;
			xmlDoc.load('mapfiles/ammap_data.xml');
						 
			//
			if (xmlDoc.xml == null){
				var serializer = new XMLSerializer();
				var xml = serializer.serializeToString(xmlDoc);
			}else{
				xmlObj=xmlDoc.documentElement;
				var xml = xmlObj.xml;
			} 
			
			
			
			//UNESCAPE
			var dataInsert = unescape(xml);
			//REMOVE LINE BREAKS
			dataInsert =dataInsert.replace(/[\r\n]+/g, "");
			
			document.getElementById('ammap').setData(dataInsert);
			document.getElementById("screens").innerHTML='0';
			document.getElementById("impressions").innerHTML='0';
			document.getElementById("rawscrs").value = 0;
			document.getElementById("rawimps").value = 0;
			
			
			//alert(searchType);
			//alert("DISABLED = "+disabled);
			
		}
		// TO CLEAR THE XML
		
		
		
				
		//======================================================
		//=======WIZARD 2 and 3 ================================
		//======================================================
		
		
		//USED IN WIZARD 2 and 3 to get the list of checked boxes to pass to the next page
		function getCheckedIds(page){
		
			//alert("get checked");
		
			var frm = document.form1
			var checkedboxes = "";
			// get the form elements
			var el = frm.elements
			// a variation to store whether any boxes are checked
			var testit = false;
			// loop through the elements...
			for(i=0;i<el.length;i++) {
				// check if the element is a checkbox and whether it is checked
				if (el[i].type == "checkbox" && el[i].checked == true) {
					// we have found a checked box so remember this!
					if(checkedboxes.length>0){
						checkedboxes = checkedboxes+","+el[i].value;     
					}else{
						checkedboxes = el[i].value;  
					}
				}
			}
			
			
			if(checkedboxes.length!=0){

				if(page==3){
					// wizard2 does not update the raw values because it uses an ajax call to update imps and scrs
					var formattedscr = new String(document.getElementById("screens").innerHTML);
					var formattedimp = new String(document.getElementById("impressions").innerHTML);
					// we'll update them here before we plug them into the url for the next page
					document.getElementById("rawscrs").value = formattedscr.replace(/,/g,"");
					document.getElementById("rawimps").value = formattedimp.replace(/,/g,"");

					//location.href='wizard3.php?'+document.URL.substring((document.URL.indexOf('?')+1), document.URL.length)+'&demoids='+checkedboxes;
					var demovari = checkedboxes;
					location.href='wizard3.php?sel='+document.getElementById('states').value+'&scr='+document.getElementById('rawscrs').value+'&imp='+document.getElementById('rawimps').value+'&demoids='+demovari;
				}else{
					//location.href='wizard4.php?'+document.URL.substring((document.URL.indexOf('?')+1), document.URL.length)+'&venueids='+checkedboxes;
					//var demovari = getURLVar(demos);
					var venuevari = checkedboxes;
					location.href='wizard4.php?sel='+document.getElementById('states').value+'&scr='+document.getElementById('rawscrs').value+'&imp='+document.getElementById('rawimps').value+'&demoids='+document.getElementById('demoids').value+'&venueids='+venuevari;
				}
				
			}else{
				alert("Please Choose at Least One to Proceed");
				location.href=window.location;
			}
			
			
			
			
			//return checkedboxes;
			//alert(checkedboxes);
			
		}
		
		
		
		// TOGGLE ALL DEMOS or VENUES
		function toggler(){
		
		  // set the form to look at (your form is called form1)
		  var frm = document.form1
		  
		  // get the form elements
		  var el = frm.elements
		  // a variation to store whether any boxes are checked
		  var testit = false;
		  // loop through the elements...
		  for(i=0;i<el.length;i++) {
			// check if the element is a checkbox and whether it is checked
			if (el[i].type == "checkbox" && el[i].checked == true) {
			  // we have found a checked box so remember this!
			  testit = true;
			}
		  }
		  // loop through the elements again.../
		  for(i=0;i<el.length;i++) {
			// and check if it is a checkbox
			if(el[i].type == "checkbox" ) {
			  // if it is a checkbox and we have found a checked box
			  if(testit == true) {
				// tick the box
				//document.getElementById("test").value="Check All";
				el[i].checked = false; }
			  else {
				// otherwise untick the box
				//document.getElementById("test").value="Uncheck All";
				el[i].checked = true; }
			}
		  }
		  
		   if(testit == true){
			document.getElementById("screens").innerHTML='0';
			document.getElementById("impressions").innerHTML='0';
		  }else{
			init();
		  }
		  
		
		}


		

		
		//======================================================
		//======= AMMAP SPECIFIC STUFF= ========================
		//======================================================
				
		var selected = {};
		var filled = {};
		var disabled = false;
		
		
		function amRegisterClickAnywhere(map_id, object_id, title, value){
			
			
			//alert(searchType);
			
			
			// not natural searching
			if (searchType != 0) {
				//disabled = true;
				return;
			}
			
			// register only clicks on countries
			if (object_id.length != 2) {
				return;
			}
									
			// skip click
			if (disabled) {
				disabled = false;
				return;
			}

					
			// add/remove from selected collection
			if (selected[object_id] == undefined || selected[object_id] == false) {
				selected[object_id] = true;
			}
			else {
				selected[object_id] = false;
			}
								
			// request data from the map
			document.getElementById('ammap').getData();
			

								
		}
							
		function amReturnData(map_id, data){
			
			//alert(searchType);
			
			// not natural searching
			if (searchType != 0) {
				//disabled = true;
				return;
			}
			
			//alert("amReturnData");
								
			// get selected string
			var str = generateSelectedString();
								
			// add link_width for each selected area
			data = unescape(data);
			var regex;
			var click = 'xx';
			
			for (key in selected) {
				if (selected[key]) {
					// add link with
					regex = new RegExp('(<area.*oid="' + key + '")[^>]*>');
					data = data.replace(regex, '$1 color="#2c70a5" link_with="'+str+'" />');
					click = key;
					disabled = true;
				}else {
					// remove link with
					regex = new RegExp('(<area.*oid="' + key + '")[^>]*>');
					data = data.replace(regex, '$1 />');			
				}
			}
			
			document.getElementById('ammap').setData(data);
			document.getElementById('ammap').clickObject(click);
			

		}
							
		
		function generateSelectedString () {
								
			//MANUAL STATE SELECTION
			if(searchType==0){

				var str = '';
				var prefix = '';
				
				for (key in selected) {
					if (selected[key]) {
						str += prefix + key;
						prefix = ',';
					}
				}
				
				return str;
									
			//ALL STATE SELECTION
			}else if(searchType==1){
									
				var str = ['AL','AK','AZ','AR','CA','CO','CT','DE','DC','FL','GA','HI','ID','IL','IN','IA','KS','KY','LA','ME','MD','MA','MI','MN','MS','MO','MT','NE','NV','NH','NJ','NM','NY','NC','ND','OH','OK','OR','PA','RI','SC','SD','TN','TX','UT','VT','VA','WA','WV','WI','WY'];
				return str;
								
			//TOP DMA STATE SELECTION
			}else if(searchType==2){
									
				var str = ['PA','TN','TX','UT','VA'];
				return str;
									
			}
								
		}
							
		
		function updatefields(state,screens,imps) {
			
			//alert("updatefields");
			
			// dummy function
			if (filled[state] == undefined) {
				filled[state]=0;
			}
								
			if (selected[state] && filled[state]==0) {
				
				//alert("UPDATING - PLUS");
									
				var oldscreens_string = document.getElementById("rawscrs").value;
				var oldimps_string = document.getElementById("rawimps").value;
									
				var newscreens = parseInt(oldscreens_string)+parseInt(screens);
				var newimps = parseInt(oldimps_string)+parseInt(imps);
								
				document.getElementById("rawscrs").value = newscreens;
				document.getElementById("rawimps").value = newimps;
				document.getElementById("screens").innerHTML = formatThousands(newscreens);
				document.getElementById("impressions").innerHTML = formatThousands(newimps);
									
				filled[state]=1;
				
				
			}else{
				
				if(!selected[state] && filled[state]==1){
					
					//alert("UPDATING - MINUS");
										
					var oldscreens_string = document.getElementById("rawscrs").value;
					var oldimps_string = document.getElementById("rawimps").value;
									
					var newscreens = parseInt(oldscreens_string)-parseInt(screens);
					var newimps = parseInt(oldimps_string)-parseInt(imps);
									
					document.getElementById("rawscrs").value = newscreens;
					document.getElementById("rawimps").value = newimps;
									
					document.getElementById("screens").innerHTML = formatThousands(newscreens);
					document.getElementById("impressions").innerHTML = formatThousands(newimps);
										
					filled[state]=0;
					
				}
			}
									
		}
		// ]]>
		
		
		//AJAX CODE
		function makeRequest(url) {
	
		div="ajaxout";
	
	if(arguments.length>2)
	{
		preLoader = arguments[2];
		document.getElementById(preLoader).style.display="block";
	}
	else
		preLoader = "null";
	
        var httpRequest;
		//change to preloader look
        if (window.XMLHttpRequest) { // Mozilla, Safari, ...
            httpRequest = new XMLHttpRequest();
            if (httpRequest.overrideMimeType) {
                httpRequest.overrideMimeType('text/xml');
                // See note below about this line
            }
        } 
        else if (window.ActiveXObject) { // IE
            try {
                httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
                } 
                catch (e) {
                           try {
                                httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
                               } 
                             catch (e) {}
                          }
                                       }

        if (!httpRequest) {
            alert('Cannot create an XMLHTTP instance. Try refreshing the page.');
            return false;
        }
        //alert(url);
		httpRequest.onreadystatechange = function() { alertContents(httpRequest,div,url,preLoader); };
        httpRequest.open('GET', url, true);
        httpRequest.send('');

    }
		
		function alertContents(httpRequest,div,url,preLoader) {
		
        if (httpRequest.readyState == 4) {
            if (httpRequest.status == 200) {
                //update the content
				//FIRST check for login expiration
				//alert(httpRequest.responseText);
				
				if(div=="null")
				{
							
				
					//alert(httpRequest.responseText);
					return;
				}
			
				
							//remove preloaders
				if(preLoader!="null")
					document.getElementById(preLoader).style.display='none';
			
				
				/////
				document.getElementById(div).innerHTML = httpRequest.responseText;
			
            } else {
                alert('There was a problem with the request.');
            }
        }

    }
		
function clickDemos()
{
	var url;
	
	var frm = document.form1
	var checkedboxes = "";
	// get the form elements
	var el = frm.elements
	// a variation to store whether any boxes are checked
	var testit = false;
	// loop through the elements...
	for(i=0;i<el.length;i++) {
		// check if the element is a checkbox and whether it is checked
		if (el[i].type == "checkbox" && el[i].checked == true) {
			// we have found a checked box so remember this!
			if(checkedboxes.length>0){
				checkedboxes = checkedboxes+","+el[i].value;     
			}else{
				checkedboxes = el[i].value;  
			}
		}
	}
	url = "demo_recalc.php?sel="+document.getElementById('states').value+"&demoids="+checkedboxes;
	makeRequest(url);

}
		
		
		
		
		