var xmlHttp
var retVal
function getAjaxData()
{
	xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null)
	{
		document.getElementById('ajaxDiv').innerHTML=""
		alert ("Browser does not support HTTP Request")
		return false
	} 

	
	var reqStr=getValidation()
	//alert(reqStr)
	if(reqStr==false)
	{
		document.getElementById('ajaxDiv').innerHTML=""
		return false
	}

	var url="http://www.forexcalc.com/forex_risk_calculator/fxcalc.php"
	url=url+reqStr
	//alert (url)
	
	
	xmlHttp.onreadystatechange=stateChanged 
	xmlHttp.open("GET",url,true)
	xmlHttp.send(null)
} 

function getCurData(cur,pair)
{
	xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null)
	{
		document.getElementById('ajaxDiv').innerHTML=""
		alert ("Browser does not support HTTP Request")
		return false
	} 

		
	var url="http://www.forexcalc.com/forex_risk_calculator/get_currency.php"
	url=url+"?cur="+cur+"&pair="+pair
	//alert (url)
	
	
	xmlHttp.onreadystatechange=gotCurPair 
	xmlHttp.open("GET",url,true)
	xmlHttp.send(null)
} 

function gotCurPair() 
{ 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{ 
		
		var contents=xmlHttp.responseText

		document.getElementById('extCurPair').innerHTML=contents

	} 
} 

function stateChanged() 
{ 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{ 
		
		var contents=xmlHttp.responseText

		document.getElementById('ajaxDiv').innerHTML=contents

	} 
} 

function GetXmlHttpObject()
{ 
	var objXMLHttp=null;
	if (window.XMLHttpRequest)
	{
		objXMLHttp=new XMLHttpRequest()
	}
	else if (window.ActiveXObject)
	{
		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
	}
	return objXMLHttp;
} 

function checkNumber(e)
{
	var unicode=e.charCode? e.charCode : e.keyCode
	
	if (unicode!=8&&unicode!=46&&unicode!=9/*&&unicode!=44*/) 
	{ 
		if (unicode<48||unicode>57) 
			return false 
	}
	return true
} 

function checkInteger(e)
{
	var unicode=e.charCode? e.charCode : e.keyCode
	
	if (unicode!=8&&unicode!=9) 
	{ 
		if (unicode<48||unicode>57) 
			return false 
	}
	return true
} 

//validation functions
function getValidation()
{
	retVal=true
	var currency = document.getElementById('currency').value
	var balance = document.getElementById('balance').value
	var leverage = document.getElementById('leverage').value
	var pair = document.getElementById('pair').value
	var bid = document.getElementById('bid').value
    var ask = document.getElementById('ask').value

	var is_needed = document.getElementById('is_needed').value
	var extrabid = document.getElementById('extrabid').value
    var extraask = document.getElementById('extraask').value

    var positionsize = document.getElementById('positionsize').value
	var direction = document.getElementById('direction').value
    var entryprice = document.getElementById('entryprice').value
    var targetprice = document.getElementById('targetprice').value
	var stoploss = document.getElementById('stoploss').value

	var num_balance = Number(balance);
	var num_leverage = Number(leverage);
	var funds = num_balance*num_leverage;
	var position = Number(positionsize);

	var num_targetprice = Number(targetprice);
	var num_entryprice = Number(entryprice);
	var num_stoploss = Number(stoploss);
	
	var num_bid = Number(bid);
	var num_ask = Number(ask);
	var num_ebid = Number(extrabid);
	var num_eask = Number(extraask);

	EmptyZero(balance,num_balance,'msg_balance');
	EmptyZero(leverage,num_leverage,'msg_leverage');
	EmptyZero(bid,num_bid,'msg_bid');
	EmptyZero(ask,num_ask,'msg_ask');
	EmptyZero(positionsize,position,'msg_positionsize');
	EmptyZero(entryprice,num_entryprice,'msg_entryprice');
	EmptyZero(targetprice,num_targetprice,'msg_targetprice');
	EmptyZero(stoploss,num_stoploss,'msg_stoploss');
	if (ask <= bid) {
		document.getElementById('msg_bid').innerHTML="<b style='color: red'>BID/ASK WRONG</b>"
		document.getElementById('msg_ask').innerHTML="<b style='color: red'>ASK MUST BE GREATER THAN BID</b>"
                retVal=false	
	
	}
	if(is_needed=="yes")
	{
		EmptyZero(extrabid,num_ebid,'msg_extrabid');
		EmptyZero(extraask,num_eask,'msg_extraask');

		if (extraask <= extrabid) {
                document.getElementById('msg_extrabid').innerHTML="<b style='color: red'>BID/ASK WRONG</b>"
                document.getElementById('msg_extraask').innerHTML="<b style='color: red'>ASK MUST BE GREATER THAN BID</b>"
                retVal=false

        }
	}
	else
	{
		extrabid=0
		extraask=0
	}

	if(position > funds && !(positionsize==""||position==0||funds==0) )
	{
		document.getElementById('msg_positionsize').innerHTML="<b>Exceeds Funds Available<b>"
		retVal=false
	}

	if(direction=="Long")
	{
		if(num_targetprice <= num_entryprice && !(targetprice=="" || entryprice=="" || num_targetprice==0 || num_entryprice==0) )
		{
			document.getElementById('msg_targetprice').innerHTML="<b>Target Must Be Greater Than Entry Price</b>"
			retVal=false
		}
		if(num_stoploss >= num_entryprice && !(stoploss=="" || entryprice=="" || num_stoploss==0 || num_entryprice==0))
		{
			document.getElementById('msg_stoploss').innerHTML="<b>Stop-Loss Must Be Less Than Entry Price</b>"
			retVal=false		
		}
	}
	else if(direction=="Short")
	{
		if(num_targetprice >= num_entryprice && !(targetprice=="" || entryprice=="" || num_targetprice==0 || num_entryprice==0))
		{
			document.getElementById('msg_targetprice').innerHTML="<b>Target Must Be Less Than Entry Price</b>"
			retVal=false
		}
		if(num_stoploss <= num_entryprice && !(stoploss=="" || entryprice=="" || num_stoploss==0 || num_entryprice==0))
		{
			document.getElementById('msg_stoploss').innerHTML="<b>Stop-Loss Must Be Greater Than Entry Price</b>"
			retVal=false				
		}
	}

	if(retVal==false)
		return false;

	var queryString = "?currency=" + currency + "&balance=" + balance + "&leverage=" + leverage + "&pair=" + pair + "&bid=" + bid + "&ask=" + ask + "&positionsize=" + positionsize + "&direction=" + direction + "&entryprice=" + entryprice + "&targetprice=" + targetprice + "&stoploss=" + stoploss	+ "&extrabid=" + extrabid + "&extraask=" + extraask + "&is_needed=" + is_needed	
	saveSelections(document.fxcalc);
	return queryString

}

function show_hide()
{
	var my_currency = "";
	var my_pair = "";
	var my_base = "";
	var my_quote = "";
	my_currency = document.getElementById('currency').value;
	my_pair = document.getElementById('pair').value;
	my_base = my_pair.substring(0,3);
	my_quote = my_pair.substring(4,7);
	if(my_currency==my_base || my_currency==my_quote)
	{
		document.getElementById('extrabid').style.display="none";
		document.getElementById('extraask').style.display="none";
		//document.getElementById('divExtrabid').innerHTML="";
		//document.getElementById('divExtraask').innerHTML="";
		document.getElementById('is_needed').value="no";
		document.getElementById('msg_extrabid').innerHTML="";
		document.getElementById('msg_extraask').innerHTML="";
		document.getElementById('extPrompt').innerHTML="&nbsp;";
		document.getElementById('extCurPair').innerHTML="&nbsp;";
	}
	else
	{
		document.getElementById('extrabid').style.display="";
		document.getElementById('extraask').style.display="";
		//document.getElementById('divExtrabid').innerHTML = "<b>Extra Bid</b>";
		document.getElementById('extPrompt').innerHTML = "Please also enter Bid/Ask prices for this pair?";
		//document.getElementById('divExtraask').innerHTML= "<b>Extra Ask</b>";
		document.getElementById('is_needed').value="yes";
		getCurData(my_currency,my_pair);
	}
}

function EmptyZero(STRING,NUMBER,ID)
{
	if(STRING=="" || NUMBER==0)
	{
		if(STRING=="")
		{
			document.getElementById(ID).innerHTML="<b style='color: red; '>Empty</b>"
			retVal=false
		}
		else
		{
			document.getElementById(ID).innerHTML="Zero"
			retVal=false		
		}
	}
	else document.getElementById(ID).innerHTML="<b style='color: #22AA00'>OK</b>"
}

function saveSelections(frm) {
     	//alert("saving");
		var setvalue;
		var fieldType;
		var index;
		var formname = frm.name;
		//alert(formname);
		// Expire cookie in 1 hour 
		var today = new Date();
		var exp   = new Date(today.getTime()+3600*1000); // change time here

		var string = "formname=" + formname + "|";
		var cookieName = formname;

		//alert(exp);
		//alert(formname);

		var n = 13;
		for (i = 0; i < n; i++)

		{
			e 	    = frm[i].name;
			fieldValue  = frm[i].value;
			fieldType   = frm[i].type;

			//alert(e);
			//alert(fieldType);
			//alert(fieldValue);

			//
			// RADIO BUTTON
			//
			if (fieldType == "radio") {
			//alert(frm.elements[e].length);
				for (x=0; x < frm.elements[e].length; x++) {
					if (frm.elements[e][x].checked)
					{
					index = x
					}
				}
			string = string + index + "\|";
			}

			//
			// TEXT, TEXTAREA, and DROPDOWN
			//
			if ((fieldType == "text") ||
			    (fieldType == "textarea") ||
			    (fieldType == "select-one"))
			{
		    	string = string + frm.elements[e].value + "\|";
		    	//alert("text");
			}

			//
			// CHECKBOX
			//
			if (fieldType == "checkbox")
			{
				if (frm.elements[e].checked==true) {
					var setvalue = "1";
					}
				if (frm.elements[e].checked==false) {
					var setvalue = "0";
					}
			string = string + setvalue + "\|";
			//alert("checkbox");
			}

			//
			// HIDDEN field
			//
			if (fieldType == "hidden")
			{
		    	string = string + frm.elements[e].value + "\|";
		    	//alert("text");
			}
		}
//alert(string)
setCookie(cookieName, string, exp); }

//
// LOAD FORM FIELD SELECTIONS FROM SAVED COOKIES
//

function loadSelections(frm) {
//	alert("loading");
var e;
var z;
var x;
var cookieName;
var fieldArray;
var fieldValues="";
var fieldValue;

var formname = frm.name;
//alert(formname)
// Retrieve form elements from cookie and split into array.

cookieName  = formname;
fieldValues = getCookie(cookieName);
//alert(fieldValues);
if(fieldValues==null)
	return;
fieldArray  = fieldValues.split("\|");

//alert(fieldArray);
//alert(fieldArray[0]);
//alert(fieldArray[1]);
//alert(fieldArray[2]);
//alert(fieldArray[3]);

		var n = 13;
		for (i = 0; i < n; i++) {
			e = frm[i].name;
			z = i;
			z++;
			var fieldType  = frm[i].type;
			var fieldValue = fieldArray[z];

			//
			// TEXT, TEXTAREA, and DROPDOWN
			//
			if ((fieldType == "text") ||
			    (fieldType == "textarea") ||
			    (fieldType == "select-one"))
			{
		    	frm.elements[e].value = fieldValue;
		    	//alert(e);
		    	//alert(fieldValue);
			}

			// CHECKBOX
			//
			if (fieldType == "checkbox")
			{
				fld_checkbox = fieldValue;
				if (fld_checkbox == "1") {
					frm.elements[e].checked = true;
				}
			}

			// RADIO BUTTON
			//
			if (fieldType == "radio") {
				x = fieldValue;
				//alert(x);
				frm.elements[e][x].checked = true;
			}

			//
			// HIDDEN field
			//
			if (fieldType == "hidden")
			{
		    	frm.elements[e].value = fieldValue;
		    	}
		}
}

/// COOKIE FUNCTIONS

function setCookie(name, value, expires, path, domain, secure) {
document.cookie= name + "=" + escape(value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}

function getCookie(name) {
var dc = document.cookie;
var prefix = name + "=";
var begin = dc.indexOf("; " + prefix);
if (begin == -1) {
begin = dc.indexOf(prefix);
if (begin != 0) return null;
} else {
begin += 2;
}
var end = document.cookie.indexOf(";", begin);
if (end == -1) {
end = dc.length;
}
return unescape(dc.substring(begin + prefix.length, end));
}
