// -----------------------------------------------------------------------------------
// admin.js
// Common javascript functions and handles ajax requests
// -----------------------------------------------------------------------------------

function createRequestObject() 
	{
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer")
    	{
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    	}
    else
    	{
        ro = new XMLHttpRequest();
    	}
    return ro;
	}

var http = createRequestObject();

// -----------------------------------------------------------------------------------

function sndReq(action) 
	{
	if (action.indexOf("range") != 0)
		{
		if (document.getElementById("date_from"))
			{
			var x = document.getElementById("date_from");
			action = action + "|" + x.value;
			var x = document.getElementById("date_to");
			action = action + "|" + x.value;
			}
		}
		
	http.open('get', 'ajax.php?action='+action);
    http.onreadystatechange = handleResponse;
    http.send(null);
	}

// -----------------------------------------------------------------------------------

function sndReq2(action) 
	{
	http.open('get', 'ajax.php?action='+action);
    http.onreadystatechange = handleResponse;
    http.send(null);
	}

// -----------------------------------------------------------------------------------

function handleResponse() 
	{
    if(http.readyState == 4)
    	{
        var response = http.responseText;
        
        if(response.indexOf('|' != -1)) 
        	{
            update = response.split('|');
            if (update[0] == "toggle_forward_custom_vars")
            	{
	           	getObj('forward_custom_vars').innerHTML = update[1];
            	if (update[1] == "Yes")
            		{
            		getObj('forward_strip_afa_vars').style.display = "block";
            		getObj('forward_strip_afa_vars2').style.display = "block";
            		}
            	else
            		{
            		getObj('forward_strip_afa_vars').style.display = "none";
            		getObj('forward_strip_afa_vars2').style.display = "none";
            		}
            	}
	           	
            if (update[0] == "toggle_forward_strip_afa_vars")
	           	getObj('forward_strip_afa_vars3').innerHTML = update[1];
            	
            if (update[0] == "toggle_follow_me_leads")
	           	getObj('follow_me_leads').innerHTML = update[1];
            	
            if (update[0] == "toggle_follow_me_sales")
	           	getObj('follow_me_sales').innerHTML = update[1];
            	
            if (update[0] == "toggle_ip_clicks")
	           	ip_clicks.innerHTML = update[1];
            	
            if (update[0] == "toggle_archived")
	           	archived.innerHTML = update[1];
            	
            if (update[0] == "toggle_ip_leads")
	           	ip_leads.innerHTML = update[1];
            	
            if (update[0] == "toggle_ip_sales")
	           	ip_sales.innerHTML = update[1];
            	
            if (update[0] == "toggle_track_leads")
	           	track_leads.innerHTML = update[1];
            	
            if (update[0] == "toggle_track_sales")
	           	track_sales.innerHTML = update[1];
            	
            if (update[0] == "toggle_sticky")
	           	sticky.innerHTML = update[1];
            	
            if (update[0] == "update_stats")
	           	{	           		
	           	rows_array = update[1].split('*');
	           	
	           	for (var i=0;i<rows_array.length;i++)
					{
					var row = rows_array[i];
					stats = row.split('~');
					
					if (document.getElementById('stats_1_'+i))
						{
						var x = document.getElementById('stats_1_'+i);
						x.innerHTML = stats[0];	
						var x = document.getElementById('stats_2_'+i);
						x.innerHTML = stats[1];							
						var x = document.getElementById('stats_3_'+i);
						x.innerHTML = stats[2];							
						var x = document.getElementById('stats_4_'+i);
						x.innerHTML = stats[3];							
						var x = document.getElementById('stats_5_'+i);
						x.innerHTML = stats[4];							
						var x = document.getElementById('stats_6_'+i);
						x.innerHTML = stats[5];							
						var x = document.getElementById('stats_7_'+i);
						x.innerHTML = stats[6];							
						var x = document.getElementById('stats_8_'+i);
						x.innerHTML = stats[7];							
						var x = document.getElementById('stats_9_'+i);
						x.innerHTML = stats[8];							
						var x = document.getElementById('stats_10_'+i);
						x.innerHTML = stats[9];							
						}
					}
				}
				
			if (update[0] == "set_tracking_interval")
	           	{
	           	tracking_interval.innerHTML = update[1];	           		
	           	}
	           	
	        if (update[0] == "load_categories")
	           	{
	           	rows_array = update[1].split('~');
	           	
	            var selbox = document.form1.categories;
	           	
	           	for (var i=0;i<rows_array.length;i++)
					{
					var row = rows_array[i];
					
					info = row.split('-');
						
					
					if (info[0] != "")
						selbox.options[selbox.options.length] = new Option(info[1],info[0]);
					}
				}		
				
				
	        if (update[0] == "load_trackers")
	           	{
	           	//test.innerHTML = response;	
	           	rows_array = update[1].split('~');
	           	
	            var selbox = document.form1.trackers;
	           	
	           	for (var i=0;i<rows_array.length;i++)
					{
					var row = rows_array[i];
					
					info = row.split('-');
						
					
					if (info[0] != "")
						selbox.options[selbox.options.length] = new Option(info[1],info[0]);
					}
				}				
	        }
	    //test.innerHTML = response;	
	    }	   
	}
	
// -----------------------------------------------------------------------------------

function confirmSubmit(text)
	{
	var agree;
	var text;
	
	agree=confirm(text);
	
	if (agree)
		return true ;
	else
		return false ;
	}

// -----------------------------------------------------------------------------------

function UpdateURL(x) 
	{
	document.form_redirect.url.value = document.form_redirect.url.value + x;
	}

// -----------------------------------------------------------------------------------
	
function popUp(URL) 
	{
	day = new Date();
	id = day.getTime();
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=1,statusbar=0,menubar=0,resizable=1,width=400,height=300');");
	}

// -----------------------------------------------------------------------------------
	
function update_stats(code)
	{
	sndReq('update_stats|'+code);		
	setTimeout("update_stats('"+code+"')",5000);
	}
	
// -----------------------------------------------------------------------------------
	
function clear_radio_buttons() 
	{
    for (var i = 0; i < document.view.view_data.length; i++) 
    	{
        document.view.view_data[i].checked = false;
     	}
	}
	
// -----------------------------------------------------------------------------------
	
function clear_range() 
	{
    document.view.date_from.value = "";
    document.view.date_to.value = "";
    }

// -----------------------------------------------------------------------------------
    
function load_categories()
	{
	var campaign_ids = "";
	var test = document.getElementById('campaigns');
	for (var i=test.options.length-1; i>=0; i--)
		{
		if (test.options[i].selected) 
			{
			campaign_ids = campaign_ids + "," + test.options[i].value;
			}
		}
	clear_categories();
	clear_trackers();
	sndReq2("load_categories|" + campaign_ids);
	}	

// -----------------------------------------------------------------------------------
	
function clear_categories()
	{
	var elSel = document.getElementById('categories');
	var ii;
	for (ii = elSel.length - 1; ii>=0; ii--) 
		{
		elSel.remove(ii);
		}		
	}
	
// -----------------------------------------------------------------------------------
	
function load_trackers()
	{
	clear_trackers();
	var category_ids = "";
	var test = document.getElementById('categories');
	for (var i=test.options.length-1; i>=0; i--)
		{
		if (test.options[i].selected) 
			{
			category_ids = category_ids + "," + test.options[i].value;
			}
		}
	
	var campaign_ids = "";
	var test = document.getElementById('campaigns');
	for (var i=test.options.length-1; i>=0; i--)
		{
		if (test.options[i].selected) 
			{
			campaign_ids = campaign_ids + "," + test.options[i].value;
			}
		}
	
	sndReq2("load_trackers|" + category_ids + "|" + campaign_ids);
	}	

// -----------------------------------------------------------------------------------
	
function clear_trackers()
	{
	
	var elSel = document.form1.trackers;
	var ii;
	for (ii = elSel.length - 1; ii>=0; ii--) 
		{
		elSel.remove(ii);
		}	
	}

// -----------------------------------------------------------------------------------
	
function checkAll() 
	{
  	for (var i=0;i<document.form2.elements.length;i++) 
  		{
    	var e = document.form2.elements[i];
    	if (e.id.indexOf("campaign_") >= 0)
    		e.checked = true;
    	}
	}

// -----------------------------------------------------------------------------------

function uncheckAll() 
	{
  	for (var i=0;i<document.form2.elements.length;i++) 
  		{
    	var e = document.form2.elements[i];
    	if (e.id.indexOf("campaign_") >= 0)
    		e.checked = false;
  		}
	}
	
// -----------------------------------------------------------------------------------

function checkAllcampaign(campaign_id) 
	{
  	for (var i=0;i<document.form2.elements.length;i++) 
  		{
    	var e = document.form2.elements[i];
    	if (e.id.indexOf("campaign_" + campaign_id + "_") >= 0)
    		e.checked = true;
    	}
	}

// -----------------------------------------------------------------------------------

function uncheckAllcampaign(campaign_id) 
	{
  	for (var i=0;i<document.form2.elements.length;i++) 
  		{
    	var e = document.form2.elements[i];
    	if (e.id.indexOf("_" + campaign_id + "_") >= 0)
    		e.checked = false;
  		}
	}

// -----------------------------------------------------------------------------------

function getObj(n,d) 
	{
  	var p,i,x; 
  	
  	if(!d)
      	d=document;
      	
	if(n != undefined)
   		{
	   	if((p=n.indexOf("?"))>0&&parent.frames.length) 
	   		{
	   		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
			}
   		}

   	if(!(x=d[n])&&d.all)
		x=d.all[n];

	for(i=0;!x&&i<d.forms.length;i++)
		x=d.forms[i][n];

  	for(i=0;!x&&d.layers&&i<d.layers.length;i++)
		x=getObj(n,d.layers[i].document);

  	if(!x && d.getElementById)
		x=d.getElementById(n);

	return x;
	}
	
// -----------------------------------------------------------------------------------
	
function GenerateAutoCodeTrackerURL(campaign_id)
	{
	var url = getObj("auto_url").value;
		
	var opt = 
		{
	    method: 'post',
	    postBody: 'action=GenerateAutoCodeTrackerURL&campaign_id=' + encodeURI(campaign_id) + "&url=" + encodeURI(url),
	    
	    onSuccess: function(t)
	    	{
	    	var data_str = t.responseText;	    	
	    	var temp = data_str.split('|');
	    	
	    	if (!temp[0] == '1')
	    	   	alert(temp[1]);
	    	else
	    		alert("Code Created: " + temp[1]);
			},
	    
	    onFailure: function(t) 
	    	{
	    	alert("Ajax Request Failed");
			}
		}			
		
	myRequest = new Ajax.Request('ajax.php', opt);	
	}
	
// -----------------------------------------------------------------------------------

function check_all(field_name)
	{
	var field = getObj(field_name);
		
	for (i = 0; i < field.length; i++)
		field[i].checked = true ;
	}				
	
// -----------------------------------------------------------------------------------

function uncheck_all(field_name)
	{
	var field = getObj(field_name);
		
	for (i = 0; i < field.length; i++)
		field[i].checked = false ;
	}		

// -------------------------------------------------------------------------------------
		
function show_modal()
	{
	getObj('overlay').style.display='block';
	
	var modal = getObj('modal');
	modal.style.display='block';
	
	if (navigator.appName.indexOf("Microsoft")!=-1) 
   		var x = (document.body.offsetWidth / 2) - (300);	
   	else
   		var x = (window.innerWidth / 2) - (300);	
   	   		
	modal.style.left = x;
	}

// -------------------------------------------------------------------------------------

function hide_modal()
	{
	getObj('modal').style.display='none';
	getObj('overlay').style.display='none';	        		
	}

// -------------------------------------------------------------------------------------
	
function load_modal_content(code, start_timestamp, end_timestamp)
	{
	var modal = getObj('modal');
	var close_window = "<div align='right'>Close Window <a href=\"javascript:void(0);\" onclick=\"hide_modal();\"><img src='images/icon_close.jpg' border='0'></a></div>";
	
	var opt = 
		{
	    method: 'post',
	    postBody: 'action=get_404_log&code=' + encodeURI(code)
	    	+ '&start_timestamp=' + start_timestamp
	    	+ '&end_timestamp=' + end_timestamp
	    	,
	    
	    onSuccess: function(t)
	    	{
	    	var data_str = t.responseText;
	    	getObj('modal').innerHTML = close_window + "<br />" + data_str;
			
	    	},
	    
	    onFailure: function(t) 
	    	{
	    	alert("Ajax Request Failed");
			}
		}			
	
	myRequest = new Ajax.Request('ajax.php', opt);	
	
	modal.style.height = 450;					
	show_modal();	 			
	}
	
// -------------------------------------------------------------------------------------

	function getElement(aID)
		{
		return (document.getElementById) ? document.getElementById(aID) : document.all[aID];
		}
	
// -------------------------------------------------------------------------------------

	function SubmitTrackersGraphForm()
		{
	    var trackersForm = document.forms['trackers_form'];
	    var trackersGraphForm = document.forms['trackers_graph_form'];
	    var trackersSelectElements = trackersForm['edit_code[]'];
	
	    
	    var trackersArr = new Array();
	    for (var i = 0; i < trackersSelectElements.length; i++)
	        while (trackersSelectElements[i].selectedIndex != -1)
	        {
	            trackersArr.push(trackersSelectElements[i].value);     
	            trackersSelectElements[i].options[
	                trackersSelectElements[i].selectedIndex].selected = false;
	        }
	    if (trackersArr.length == 0)
	        return;
	        
	    var graphTypeInput = trackersGraphForm.graph;
	    graphTypeInput.value = (trackersArr.length == 1) ? 'one_tracker' :
	        'multiple_trackers';
	    
	    var trackersInput = document.createElement('input');
	
	    trackersInput.name = (trackersArr.length == 1) ? 'trackers' :
	
	        'selected_trackers';
	
	    trackersInput.type = 'hidden';
	    trackersInput.value = trackersArr;
	    trackersGraphForm.appendChild(trackersInput);  
	            
	    trackersGraphForm.submit();
		}
