// stores the reference to the XMLHttpRequest object
var xmlHttp = createXmlHttpRequestObject(); 

// retrieves the XMLHttpRequest object
function createXmlHttpRequestObject() 
{	
  // will store the reference to the XMLHttpRequest object
  var xmlHttp;
  // if running Internet Explorer
  if(window.ActiveXObject)
  {
    try
    {
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (e) 
    {
      xmlHttp = false;
    }
  }
  // if running Mozilla or other browsers
  else
  {
    try 
    {
      xmlHttp = new XMLHttpRequest();
    }
    catch (e) 
    {
      xmlHttp = false;
    }
  }
  // return the created object or display an error message
  if (!xmlHttp)
 
    alert("Error creating the XMLHttpRequest object.");
  else 
    return xmlHttp;
}

// make asynchronous HTTP request using the XMLHttpRequest object 
function process()
{
	
  // proceed only if the xmlHttp object isn't busy
  if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
  {
    // retrieve the name typed by the user on the form
    // execute the quickstart.php page from the server
    xmlHttp.open("GET", "/common/refresher/get.php", true);  
    // define the method to handle server responses
    xmlHttp.onreadystatechange = handleServerResponse;
    // make the server request
    	xmlHttp.send(null);
  }
  else
    // if the connection is busy, try again after one second  
    setTimeout('process()', 1000);
}

// executed automatically when a message is received from the server
function handleServerResponse() 
{
  // move forward only if the transaction has completed
  if (xmlHttp.readyState == 4) 
  {
    // status of 200 indicates the transaction completed successfully
    if (xmlHttp.status == 200) 
    {
      // extract the XML retrieved from the server
      xmlResponse = xmlHttp.responseXML;
      // obtain the document element (the root element) of the XML structure
      xmlDocumentElement = xmlResponse.documentElement;
      change = xmlDocumentElement.getElementsByTagName("change");
      last = xmlDocumentElement.getElementsByTagName("last");
      pair = xmlDocumentElement.getElementsByTagName("pair_ID");
      // get the text message, which is in the first child of
      // the the document element
      helloMessage = xmlDocumentElement.firstChild.data;
      // update the client display using the data received from the server
      for(var i=0;i<7;i++)
      {
      	document.getElementById("pair_change_"+pair.item(i).firstChild.data).innerHTML = change.item(i).firstChild.data;
      	document.getElementById("pair_last_"+pair.item(i).firstChild.data).innerHTML = last.item(i).firstChild.data;
      }
      // restart sequence
      setTimeout('process()', 15000);
    } 
    // a HTTP status different than 200 signals an error
    else 
    {
      alert("There was a problem accessing the server: " + xmlHttp.statusText);
    }
  }
}


//STARTS FUNCTION THAT MANAGES SENDING PROCESS OF REPORT AN ERROR FORM IN /brokers
// make asynchronous HTTP request using the XMLHttpRequest object 
function slided_report_error()
{	
	document.getElementById("loading_report").style.display = 'block';	
	//alert(document.report_error_form.php_self.value);
  // proceed only if the xmlHttp object isn't busy
  if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
  {
	var url="/common/send/send.php?type=report_error&mathguard_answer="+document.report_error_form.mathguard_answer.value+"&mathguard_code="+document.report_error_form.mathguard_code.value+"&page="+document.report_error_form.php_self.value+"&name="+document.report_error_form.first_name.value+"&email="+document.report_error_form.email.value+"&report="+document.report_error_form.report.value;  	
	//document.getElementById("report_error").innerHTML = '';  
    // retrieve the name typed by the user on the form
    // execute the quickstart.php page from the server
    xmlHttp.open('GET',url,true);    
    //xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");  
    // define the method to handle server responses
    xmlHttp.onreadystatechange = handleGettingResults;
    // make the server request
    	xmlHttp.send(null);    	
  }
  else
    // if the connection is busy, try again after one second  
    setTimeout('slided_report_error()', 1000);
}

// executed automatically when a message is received from the server
function handleGettingResults() 
{
  // move forward only if the transaction has completed
  if (xmlHttp.readyState == 4) 
  {
    // status of 200 indicates the transaction completed successfully
    if (xmlHttp.status == 200) 
    {
      // extract the XML retrieved from the server
      xmlResponse = xmlHttp.responseXML;
      // obtain the document element (the root element) of the XML structure
      xmlDocumentElement = xmlResponse.documentElement;
      // get the text message, which is in the first child of
      // the the document element
      document.getElementById("loading_report").style.display = 'none';
      var nameMessage = xmlResponse.getElementsByTagName('error_name').item(0);      
      var emailMessage = xmlResponse.getElementsByTagName('error_email').item(0);      
      var codeMessage = xmlResponse.getElementsByTagName('error_code').item(0);      
      var errorMessage = xmlResponse.getElementsByTagName('error').item(0);      
      var outputMessage = xmlResponse.getElementsByTagName('output').item(0);  
      var dirMessage = xmlResponse.getElementsByTagName('dir').item(0);  
      
      if(nameMessage.firstChild.data == 'true' || emailMessage.firstChild.data == 'true' || codeMessage.firstChild.data == 'true')
      {
      	//alert(emailMessage.firstChild.data);
		document.getElementById("report_error_message").innerHTML = '<i><span style="color:red;">' + errorMessage.firstChild.data + '</span></i>';     
      }      
      else if(nameMessage.firstChild.data == 'false' && emailMessage.firstChild.data == 'false' && codeMessage.firstChild.data == 'false')
      {
      	//alert(emailMessage.firstChild.data);
      	document.getElementById("report_error").innerHTML = '<table cellpadding="0" cellspacing="0" height="100%" width="100%"><tr><td height="1%" align="' + dirMessage.firstChild.data + '" valign="bottom"><table cellpadding="0" cellspacing="0"><tr><td><a class="g_12" href="javascript:;" onmousedown="toggleSlide(\'report_error\');"><img border="0" src="/images/close.gif"> Close</a></td></tr></table></td></tr><tr><td align="center" valign="center"><table cellpadding="0" cellspacing="0"><tr><td><i><span style="color:green;">' + outputMessage.firstChild.data + '</span></i></td></tr></table></td></tr></table>';
      }      

      // update the client display using the data received from the server            
    } 
    // a HTTP status different than 200 signals an error
    else 
    {
      alert("There was a problem accessing the server: " + xmlHttp.statusText);
    }
  }
}
//ENDS FUNCTION THAT MANAGES SENDING PROCESS OF REPORT AN ERROR FORM IN /brokers



//STARTS FUNCTION THAT MANAGES SENDING PROCESS OF SEND VIA EMAIL FORM IN /brokers
// make asynchronous HTTP request using the XMLHttpRequest object 
function slided_send_via_email()
{	
	document.getElementById("loading_send_via").style.display = 'block';
	//alert(document.report_error_form.email.value);
  // proceed only if the xmlHttp object isn't busy
  if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
  {
	var url="/common/send/send.php?type=send_via_email&mathguard_answer="+document.send_via_email_form.mathguard_answer.value+"&mathguard_code="+document.send_via_email_form.mathguard_code.value+"&page="+document.send_via_email_form.php_self.value+"&s_name="+document.send_via_email_form.s_name.value+"&s_email="+document.send_via_email_form.s_email.value+"&r_name="+document.send_via_email_form.r_name.value+"&r_email="+document.send_via_email_form.r_email.value;
    
    // retrieve the name typed by the user on the form
    // execute the quickstart.php page from the server
    xmlHttp.open('GET',url,true);    
    //xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");  
    // define the method to handle server responses
    xmlHttp.onreadystatechange = handleResults;
    // make the server request
    	xmlHttp.send(null);
  }
  else
    // if the connection is busy, try again after one second  
    setTimeout('slided_send_via_email()', 1000);
}

// executed automatically when a message is received from the server
function handleResults() 
{
  // move forward only if the transaction has completed
  if (xmlHttp.readyState == 4) 
  {
    // status of 200 indicates the transaction completed successfully
    if (xmlHttp.status == 200) 
    {
      // extract the XML retrieved from the server
      xmlResponse = xmlHttp.responseXML;
      // obtain the document element (the root element) of the XML structure
      xmlDocumentElement = xmlResponse.documentElement;
      // get the text message, which is in the first child of
      // the the document element
      // update the client display using the data received from the server
      document.getElementById("loading_send_via").style.display = 'none';
      var s_nameMessage = xmlResponse.getElementsByTagName('error_s_name').item(0);      
      var s_emailMessage = xmlResponse.getElementsByTagName('error_s_email').item(0);      
      var r_nameMessage = xmlResponse.getElementsByTagName('error_r_name').item(0);      
      var r_emailMessage = xmlResponse.getElementsByTagName('error_r_email').item(0);            
      var codeMessage = xmlResponse.getElementsByTagName('error_code').item(0);      
      var errorMessage = xmlResponse.getElementsByTagName('error').item(0);      
      var outputMessage = xmlResponse.getElementsByTagName('output').item(0);  
      var dirMessage = xmlResponse.getElementsByTagName('dir').item(0);  
      
      if(s_nameMessage.firstChild.data == 'true' || s_emailMessage.firstChild.data == 'true' || r_nameMessage.firstChild.data == 'true' || r_emailMessage.firstChild.data == 'true' || codeMessage.firstChild.data == 'true')
      {
      	//alert(emailMessage.firstChild.data);
		document.getElementById("send_via_email_message").innerHTML = '<i><span style="color:red;">' + errorMessage.firstChild.data + '</span></i>';     
      }      
      else if(s_nameMessage.firstChild.data == 'false' && s_emailMessage.firstChild.data == 'false' && r_nameMessage.firstChild.data == 'false' && r_emailMessage.firstChild.data == 'false' && codeMessage.firstChild.data == 'false')
      {
      	//alert(emailMessage.firstChild.data);
      	document.getElementById("send_via_email").innerHTML = '<table cellpadding="0" cellspacing="0" height="100%" width="100%"><tr><td height="1%" align="' + dirMessage.firstChild.data + '" valign="bottom"><table cellpadding="0" cellspacing="0"><tr><td><a class="g_12" href="javascript:;" onmousedown="toggleSlide(\'send_via_email\');"><img border="0" src="/images/close.gif"> Close</a></td></tr></table></td></tr><tr><td align="center" valign="center"><table cellpadding="0" cellspacing="0"><tr><td><i><span style="color:green;">' + outputMessage.firstChild.data + '</span></i></td></tr></table></td></tr></table>';
      }      
    } 
    // a HTTP status different than 200 signals an error
    else 
    {
      alert("There was a problem accessing the server: " + xmlHttp.statusText);
    }
  }
}
//ENDS FUNCTION THAT MANAGES SENDING PROCESS OF SEND VIA EMAIL FORM IN /brokers




function include_ext_file_in_div(url, target, message, dir, curr, imp, white_line, print_event_details, print_title, print_banner_inside, print_title_table, print_add_to_your_site_top, print_add_to_your_site_bottom, print_report_an_error,print_importance, print_date_col, print_actual_col, print_previous_col, print_forecast_col, event_url,show_forexpros_logo) {
	//document.getElementById(loading_div).style.display = 'block';	
	//if(document.getElementById('hidden'+m).value == 'checked')	
		//alert('asd');
	if(curr)
	{
		//alert(curr[1]);
		if(document.getElementById('filter_div'))
	document.getElementById('filter_div').style.visibility = 'hidden';	
	for(i=0;i<13;i++)
	{
		if(curr[i] != undefined && curr[i] != 0)
		{
		url += '&'+curr[i]+'=hide';	
		//alert(curr[i]);
		}
	}
		if(imp)
		{
			//alert(imp[3]);
			for(j=0;j<=3;j++)
			{
				if(imp[j] != undefined && imp[j] != 0)
				{
					url += '&'+imp[j]+'=hide';	
				}
			}
		}		
		if(white_line)
		{
			url += '&white_line='+white_line;
		}
	}
	if(print_event_details)
	{
		url += '&print_event_details='+print_event_details;
	}
	if(print_title)
	{
		url += '&print_title='+print_title;
	}
	if(print_banner_inside)
	{
		url += '&print_banner_inside='+print_banner_inside;
	}
	if(print_title_table)
	{
		url += '&print_title_table='+print_title_table;
	}	
	if(print_add_to_your_site_top)
	{
		url += '&print_add_to_your_site_top='+print_add_to_your_site_top;
	}	
	if(print_add_to_your_site_bottom)
	{
		url += '&print_add_to_your_site_bottom='+print_add_to_your_site_bottom;
	}		
	if(print_report_an_error)
	{
		url += '&print_report_an_error='+print_report_an_error;
	}		
	if(print_importance) {
		url += '&print_importance='+print_importance;
	}
	if(print_date_col) {
		url += '&print_date_col='+print_date_col;
	}
	if(print_actual_col) {
		url += '&print_actual_col='+print_actual_col;
	}
	if(print_previous_col) {
		url += '&print_previous_col='+print_previous_col;
	}
	if(print_forecast_col) {
		url += '&print_forecast_col='+print_forecast_col;
	}
	if(event_url) {
		url += '&event_url='+event_url;
	}
	if(show_forexpros_logo) {
		url += '&show_forexpros_logo='+show_forexpros_logo;
	}
	var targetHeight = new Array();
	var targetWidth = new Array();
	obj[target] = document.getElementById(target);
	targetHeight[target] = parseInt(obj[target].offsetHeight)+"px";
  obj[target].innerHTML = '<table dir="'+dir+'" width="100%" height="' + targetHeight[target] + '"><tr style="height:50%;"><td align="center" valign="top">'+message+'<br /><img src="/images/fx_loading.gif"></td></tr><tr style="height:50%;"><td align="center" valign="bottom">'+message+'<br /><img src="/images/fx_loading.gif"></td></tr></table>';

  if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
  } 
  if (req != undefined) {
    req.onreadystatechange = function() {include_ext_file_in_div_done(url, target);};
    req.open("GET", url, true);
    req.send("");
  }
}  

function include_ext_file_in_div_done(url, target) {
  if (req.readyState == 4) { // only if req is "loaded"
    if (req.status == 200) { // only if "OK"
    	//document.getElementById(loading_div).style.display = 'none';
      document.getElementById(target).innerHTML = req.responseText;
    } else {
      document.getElementById(target).innerHTML=" Error:\n"+ req.status + "\n" +req.statusText;
    }
  }
}


// make asynchronous HTTP request using the XMLHttpRequest object 
function change_rates_preview(rows,enable_border,border_color,text_color,bg1,bg2,header_bg,header_text)
{
	//document.getElementById("loading_irates").style.display = 'block';	
	if(strpos(bg1,'#')!=false) {bg1 = substr(bg1,1);}
	if(strpos(bg2,'#')!=false) {bg2 = substr(bg2,1);}
	if(strpos(text_color,'#')!=false) {text_color = substr(text_color,1);}
	if(strpos(border_color,'#')!=false) {border_color = substr(border_color,1);}
	if(strpos(header_bg,'#')!=false) {header_bg = substr(header_bg,1);}	
	if(strpos(header_text,'#')!=false) {header_text = substr(header_text,1);}	
	//alert(bg1);
  // proceed only if the xmlHttp object isn't busy
  if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
  {
    xmlHttp.open("GET", "/i_rates.php?rows="+rows+"&bg1="+bg1+"&bg2="+bg2+"&text_color="+text_color+"&enable_border="+enable_border+"&border_color="+border_color+"&header_bg="+header_bg+"&header_text="+header_text, true);  
    xmlHttp.onreadystatechange = function () {change_rates_preview_response(rows,enable_border,border_color,text_color,bg1,bg2)};
    xmlHttp.send(null);
  }
  else
    // if the connection is busy, try again after one second  
    setTimeout('change_rates_preview(rows,enable_border,border_color,text_color,bg1,bg2)', 1000);
}

// executed automatically when a message is received from the server
function change_rates_preview_response(rows,enable_border,border_color,text_color,bg1,bg2)
{	
	if (xmlHttp.readyState == 4)
    if (xmlHttp.status == 200)
    {	
    	//alert(xmlHttp.responseText);
    	//document.getElementById("loading_irates").style.display = 'none';	
    	document.getElementById('irFrame').innerHTML='<span>&nbsp;</span>'+xmlHttp.responseText;
    }
    else 
    {
      alert("There was a problem accessing the server: " + xmlHttp.statusText);
    }
}


function get_ec_event_data(row_ID,loading_div,dir)
{
	//document.getElementById(loading_div).style.height=document.getElementById(row_ID).style.height;
	//alert(document.getElementById(loading_div).style.height);
	//document.getElementById(loading_div).style.display = '';
	//document.getElementById(row_ID).style.display = 'none';
	//alert(document.getElementById('banner_'+row_ID).innerHTML);
	//document.getElementById('banner_'+row_ID).innerHTML = '<TBODY><tr><td><img src="/images/spacer.gif" style="width: 50px;"></td><td>Loading</td></tr></TBODY>';
	
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
	{
		xmlHttp.open("GET", "/ec_event.php", true);  
		xmlHttp.onreadystatechange = function () {get_ec_event_data_response(row_ID,loading_div,dir)};
		xmlHttp.send(null);
	}
	else
	// if the connection is busy, try again after one second  
	setTimeout('get_ec_event_data(row_ID,loading_div,dir)', 1000);
}

function get_ec_event_data_response(row_ID,loading_div,dir)
{	
	if (xmlHttp.readyState == 4)
    if (xmlHttp.status == 200)
    {	
    	//alert(xmlHttp.responseText);
    	//document.getElementById("loading_irates").style.display = 'none';	
    	xmlResponse = xmlHttp.responseXML;
    	//var event_currency = xmlResponse.getElementsByTagName('event_currency').item(0).firstChild.data;
    	if(dir=='ltr') var textAlign = 'left';
    	else var textAlign = 'right';
    	var event_banner = xmlResponse.getElementsByTagName('event_banner').item(0).firstChild.data;
    	var event_banner_text = xmlResponse.getElementsByTagName('event_banner_text').item(0).firstChild.data;
    	//setTimeout('oppa()',1000);
    	//document.getElementById(loading_div).style.display = 'none';
    	//alert('banner '+event_banner+' text '+event_banner_text+' ID '+row_ID);
    	if(event_banner!='nothing' && event_banner_text!='nothing')
    	{
    	document.getElementById('banner_'+row_ID).innerHTML = '<table width="100%"><tr><td><img src="/images/spacer.gif" style="width: 5px;"></td><td style="vertical-align:middle;">'+event_banner+'</td><td><img src="/images/spacer.gif" style="width: 5px;"></td><td style="vertical-align:middle;text-align:'+textAlign+';width:100%;">'+event_banner_text+'</td></tr></table>';
    	}
    	else
    	{
    	document.getElementById('main_banner_td_'+row_ID).style.display = 'none';
    	
    	}
    	
		//document.getElementById(row_ID).style.display = '';
		
    }
    else 
    {
      alert("There was a problem accessing the server: " + xmlHttp.statusText);
    }
}
