var ChartImage;
var platform_id = 1;
function render_chart()
{
	if (getObj("TickerSymbol0_input").style.display == "block") var TickerSymbol = _getSelect(getObj("TickerSymbol0"));
	if (getObj("TickerSymbol1_input").style.display == "block") var TickerSymbol = _getSelect(getObj("TickerSymbol1"));
	if (getObj("TickerSymbol2_input").style.display == "block") var TickerSymbol = _getSelect(getObj("TickerSymbol2"));
	if (getObj("TickerSymbol3_input").style.display == "block") var TickerSymbol = _getSelect(getObj("TickerSymbol3"));
	if (getObj("TickerSymbol4_input").style.display == "block") var TickerSymbol = _getSelect(getObj("TickerSymbol4"));
	if (getObj("TickerSymbol5_input").style.display == "block") var TickerSymbol = _getSelect(getObj("TickerSymbol5"));
	
	var TimeRange = getObj("TimeRange").value;

	var ChartType = _getSelect(getObj("ChartType"));
	
	var avgType1 = _getSelect(getObj("avgType1"));
	var Band = _getSelect(getObj("Band"));
	
	var movAvg1 = getObj("movAvg1").value;
	var avgType2 = _getSelect(getObj("avgType2"));
	var movAvg2 = getObj("movAvg2").value;
	
	var Volume = getObj("Volume").checked;
	if (Volume == true) Volume = "1";else Volume = "0";
	
	var ParabolicSAR = getObj("ParabolicSAR").checked;
	if (ParabolicSAR == true) ParabolicSAR = "1";else ParabolicSAR = "0";
	
	var LogScale = getObj("LogScale").checked;
	if (LogScale == true) LogScale = "1";else LogScale = "0";
	
	var PercentageScale = getObj("PercentageScale").checked;
	if (PercentageScale == true) PercentageScale = "1";else PercentageScale = "0";
	
	var image_src = "/chart/show/images";
	image_src += "/TickerSymbol/" + TickerSymbol;
	image_src += "/platform/" + platform_id;
	image_src += "/TimeRange/" + TimeRange;
	image_src += "/ChartType/" + ChartType;
	image_src += "/avgType1/" + avgType1;
	image_src += "/movAvg1/" + movAvg1;
	image_src += "/avgType2/" + avgType2;
	image_src += "/movAvg2/" + movAvg2;
	image_src += "/Volume/" + Volume;
	image_src += "/ParabolicSAR/" + ParabolicSAR;
	image_src += "/LogScale/" + LogScale;
	image_src += "/PercentageScale/" + PercentageScale;
	image_src += "/Band/" + Band;

	var elem = getObj("indicators_content");
	var selected = elem.getElementsByTagName("div");
	var names = "";
	var item;

	for(i = 0; i < selected.length; i++){
		if (selected[i].className == "checkbox_div") {
			item = selected[i].innerHTML;
			if (item == undefined) continue;
			names += item + ",";
		}
	}
	
	image_src += "/Indicators/" + names + "/";
	image_src += "rand/" + randomNumber(1, 9999) + "/";
	//getObj("chart_image").src = image_src;
	//getDataValues();
	removeCharts();
	display("chart_img_div", "none");
	display("rate_info_block", "none");
	display("text_information_gra", "none");
	display("loader", "block");
	ChartImage = new Image;
	ChartImage.onload = getDataValues;
	ChartImage.src = image_src;
}

function randomNumber (m,n)
{
  m = parseInt(m);
  n = parseInt(n);
  return Math.floor( Math.random() * (n - m + 1) ) + m;
}

function selectCursor(type)
{
	getObj("pointer_gra").className = "butons1";
	getObj("cursor_gra").className = "butons2";
	var cheked = getObj("cross").checked;
	if (cheked == true) {
		getObj("cursor_gra").className = "butons2_select";
		getObj("cross").checked = false;
	} else {
		getObj("pointer_gra").className = "butons_select_1";
		getObj("cross").checked = true;
	}
}

function viewSecuritiesBranche(link)
{
	var branche = _getSelect(getObj("branche"));
	var type_tender = _getSelect(getObj("type_tender"));
	link = "/branche/" + branche + "/type/"+ type_tender +"/" + link;
	window.location.href = link;
}
var selected_CodeType = 0;
function selectCodeType()
{

	var codes = _getSelect(getObj("codes"));
	
	if (selected_CodeType > 0) {
		document.getElementById('TickerSymbol0_input').style.display = "none";
		document.getElementById('TickerSymbol1_input').style.display = "none";
		document.getElementById('TickerSymbol2_input').style.display = "none";
		document.getElementById('TickerSymbol3_input').style.display = "none";
		document.getElementById('TickerSymbol4_input').style.display = "none";
		document.getElementById('TickerSymbol5_input').style.display = "none";
		
		if (codes == 0) {
			document.getElementById('TickerSymbol0_input').style.display = "block";
			platform_id = 1;
		}
		if (codes == 1) {
			document.getElementById('TickerSymbol1_input').style.display = "block";
			platform_id = 1;
		}
		if (codes == 2) {
			document.getElementById('TickerSymbol2_input').style.display = "block";
			platform_id = 1;
		}
		if (codes == 3) {
			document.getElementById('TickerSymbol3_input').style.display = "block";
			platform_id = 1;
		}
		if (codes == 4) {
			document.getElementById('TickerSymbol4_input').style.display = "block";
			platform_id = 6;
		}
		if (codes == 5) {
			document.getElementById('TickerSymbol5_input').style.display = "block";
			platform_id = 8;
		}
		
		
	}
	
	if (codes == 3) {
		getObj("periods_1").style.color = "";
		getObj("periods_2").style.color = "";
		getObj("periods_3").style.color = "";
		getObj("periods_4").style.color = "";
		getObj("periods_5").style.color = "";
	} else {
		selectPeriod('6', '4');
		getObj("periods_1").style.color = "#666666";
		getObj("periods_2").style.color = "#666666";
		getObj("periods_3").style.color = "#666666";
		getObj("periods_4").style.color = "#666666";
		getObj("periods_5").style.color = "#666666";
	}
	selected_CodeType++;
}

function selectPeriod(id, value)
{
	var codes = _getSelect(getObj("codes"));
	
	if (codes != 3 && id < 6) return;
	getObj("TimeRange").value = value;
	
	var elem = getObj("periods_ul");
	var template_element = elem.getElementsByTagName("li");
	var count = template_element.length;

	for (i = 0; i < count; i++) {
		template_element[i].className = "pasive";
	}
	
	getObj("periods_" + id).className = "act";
}

function getDataValues()
{
	getObj("ajax_flex_form").action = "/chart/show/imagesdata/";
	submitForm_ajax("ajax_flex_form", "renderGetValues");
}

var DataArray = new Array();
var width_element = 0;
function renderGetValues()
{
	var Xmls = ParseXml(RequestXml);
	var Error = getChanell("error", Xmls);
	var codes = _getSelect(getObj("codes"));
	if (Error == "false") {
		//display("chart_img_div", "block");
		display("loader", "none");
		display("false_load_img", "block");
		display("text_information_gra", "block");
		pasteContent("text_information_gra", getObj("TickerSymbol" + codes + "_input").value + " / " + getObj("codes_input").value);
		return;
	}
	display("false_load_img", "none");
	//alert(ChartImage.src);
	display("chart_img_div", "block");
	display("rate_info_block", "block");
	display("text_information_gra", "block");
	
	
	var count = getChanell("count", Xmls);
	count = count * 1;
	var width = getChanell("width", Xmls);
	width = width * 1;
	width_element = width;
	
	var rate = getChanell("rate", Xmls);
	
	pasteContent("rate_info_block", rate);
		
	setParams(Xmls);
	var ElementP = getElementPosition("chart_image");
	var top_elements = -ElementP.height + 20; 
	var height_div = ElementP.height - 45;
	
	pasteContent("text_information_gra", getObj("TickerSymbol" + codes + "_input").value + " / " + getObj("codes_input").value + " / " + date_gra);

	/*for (i = 0; i < coordinates.length; i++) {
		var newselect = document.createElement('div');
		newselect.id = "chart_info_view" + i;
		newselect.style.position = "absolute";
		var width_div = width * i;
		
		//var left_element = (ElementP.left + width_div + 41);
		//if (i > 0) left_element += 1;
		left_element = coordinates[i];
		newselect.style.marginLeft = left_element + "px";
		//newselect.style.top = ElementP.top + "px";
		//newselect.style.marginTop = top_elements + "px";
		newselect.style.width = width + "px";
		newselect.style.height = height_div + "px";
		newselect.className = "chart_block_div_class";
		//newselect.innerHTML = "s";
		
		newselect.setAttribute("onmouseover", "viewInfoChart('"+ i +"')");
		newselect.setAttribute("onmouseout", "viewInfoChart()");
		//newselect.setAttribute("onclick", "alert('ok')");
		//newselect.style.background = "white";
		//newselect.style.zIndex = "1000";
		//newselect.onclick = "alert('ok')";
		
		getObj("chart_img_div").appendChild(newselect);
		//pasteContent("rate_info_block", getContent("rate_info_block") + left_element + "<br/>");
	}*/
	var width_item = width * 1;
	var s = 0;
	DataArray = new Array();
	for (i = 0; i < coordinates.length; i++) {
		var left_element = coordinates[i];
		left_element = left_element * 1;
		width_item = width + left_element + 1;
		
		for (a = left_element; a < width_item; a++){
			DataArray[a] = i;
		}
	}

	getObj("chart_img_div").removeChild(getObj("chart_image"));
	
	var newimage = document.createElement('img');
	newimage.setAttribute("onmousemove", "ShowLine_chart(event);");
	newimage.setAttribute("onmouseover", "ShowsLine_chart();");
	newimage.setAttribute("onmouseout", "HideLine_chart();");
	newimage.id = "chart_image";
	getObj("chart_img_div").appendChild(newimage);
	
	getObj("chart_image").src = ChartImage.src;
	
	/*if (now_value > 0) {
		var top_now_value = now_value - 10;
		var left_now_value = 780;
		getObj("now_value").style.display = "block";
		getObj("now_value").style.marginTop = top_now_value + "px";
		getObj("now_value").style.marginLeft = left_now_value + "px";
		pasteContent("now_value", y_value);
	} else {
		getObj("now_value").style.display = "none";
	}*/
	
	display("loader", "none");
}

function viewInfoChart(id)
{
//alert(id);
	if (id == undefined) {
		pasteContent("chart_info_block", "");
		getObj('chart_info_block').style.display = "none";
	}
	if (!date_time[id]) {
		pasteContent("chart_info_block", "");
		getObj('chart_info_block').style.display = "none";
	} else {
		var str = "Time: " + date_time[id] + " | ";
		str += "Open: " + open_chart[id] + " | ";
		str += "Close: " + close[id] + " | ";
		str += "Min Value: " + min_value[id] + " | ";
		str += "Max Value: " + max_value[id] + " | ";
		str += "Volume: " + volume[id];// + " | ";
		//str += "Money Volume: " + money_volume[id];
		
		getObj('chart_info_block').style.display = "block";
		pasteContent("chart_info_block", str);
	}
}

function removeCharts()
{
	var elem = getObj("chart_img_div");
	var template_element = elem.getElementsByTagName("div");
	var count = template_element.length;

	var element = new Array(); 
	for (i = 0; i < count; i++) {
		if (template_element[i].className == "chart_block_div_class") {
			element.push(template_element[i].id);
		}
	}
	for (i = 0; i < element.length; i++) {
		var elementname = getObj(element[i]);
		getObj("chart_img_div").removeChild(elementname);
	}
}

var date_time;
var open_chart;
var close;
var min_value;
var max_value;
var volume;
var money_volume;
var coordinates;
var date_gra;
var now_value = 0;
var y_value;
function setParams(Xmls)
{
	date_gra = getChanell("date", Xmls);
	now_value = getChanell("y", Xmls);
	y_value = getChanell("y_value", Xmls);
	
	now_value = now_value * 1;
	
	date_time = getChanell("date_time", Xmls);
	date_time = date_time.split(",");
	
	open_chart = getChanell("open", Xmls);
	open_chart = open_chart.split(",");
	
	close = getChanell("close", Xmls);
	close = close.split(",");
	
	min_value = getChanell("min_value", Xmls);
	min_value = min_value.split(",");
	
	max_value = getChanell("max_value", Xmls);
	max_value = max_value.split(",");
	
	volume = getChanell("volume", Xmls);
	volume = volume.split(",");
	
	money_volume = getChanell("money_volume", Xmls);
	money_volume = money_volume.split(",");
	
	coordinates = getChanell("coordinates", Xmls);
	coordinates = coordinates.split(",");
}

function mousePageXY(e)
{
 var x = 0, y = 0;
var coord=new Array();
  if (!e) e = window.event;
  if (e.pageX || e.pageY)
  { x = e.pageX;
    y = e.pageY;
  }
  else if (e.clientX || e.clientY)
  { x = e.clientX + (document.documentElement.scrollLeft ||
document.body.scrollLeft) - document.documentElement.clientLeft;
    y = e.clientY + (document.documentElement.scrollTop ||
document.body.scrollTop) - document.documentElement.clientTop;
  }
  coord[0]=x;coord[1]=y;
  return coord; 
}

function getElementPosition(elemId)
{
    var elem = document.getElementById(elemId);
	
    var w = elem.offsetWidth;
    var h = elem.offsetHeight;
	
    var l = 0;
    var t = 0;
	
    while (elem)
    {
        l += elem.offsetLeft;
        t += elem.offsetTop;
        elem = elem.offsetParent;
    }

    return {"left":l, "top":t, "width": w, "height":h};
}


function echo(obj)
{
	var mCur = mousePageXY(obj);
	
	alert(mCur);
}

function ShowLine_chart(obj)
{
	if (getObj("cross").checked == true) {
		var mCur = mousePageXY(obj);
		var ElementP = getElementPosition("chart_image");

		if (mCur[1] < 514) {
			HideLine_chart();
			viewInfoChart(); 
			return;
		}
		
		if (mCur[1] > (ElementP.height + 552)) {
			HideLine_chart();
			viewInfoChart(); 
			return;
		}
		if (mCur[0] < 320) {
			HideLine_chart();
			viewInfoChart(); 
			return;
		}
		if (mCur[0] > 1064) {
			HideLine_chart();
			viewInfoChart();
			return;
		}
		var x = mCur[0] - 322;
		//pasteContent("text_information_gra", x);
		var id = DataArray[x];

		viewInfoChart(id);
		
		getObj("chart_info_block").style.marginTop = (-ElementP.height + 1) + "px";
		getObj("line_gorizontal").style.width = (ElementP.width - 35) + "px";
		//getObj("line_gorizontal").style.height = 1 + "px";
		getObj("line_vertical").style.height = (ElementP.height - 32) + "px";
		
		getObj("line_gorizontal").style.marginTop = (mCur[1] - ElementP.top - 5) + "px";
		getObj("line_vertical").style.marginLeft = (mCur[0] - ElementP.left - 5) + "px";
	} else {
		var mCur = mousePageXY(obj);
		var ElementP = getElementPosition("chart_image");
		
		if (mCur[1] < 514) return;
		if (mCur[1] > (ElementP.height + 474)) return;
		if (mCur[0] < 320) return;
		if (mCur[0] > 1064) return;

		var x = mCur[0] - 320;
		var id = DataArray[x];

		viewInfoChart(id);
	}
}

function ShowsLine_chart()
{
	if (getObj("cross").checked == true) {
		display("line_vertical", "block");
		display("line_gorizontal", "block");
	}
	//viewInfoChart();
}

function HideLine_chart()
{
	display("line_vertical", "none");
	display("line_gorizontal", "none");
	viewInfoChart();
}

function showIndecators_chart()
{
	var indecators = getObj("indecators");

	if (indecators.style.display == "none") display("indecators", "block");
	else display("indecators", "none");
}

function addNewIndicator_chart(obj, name)
{
	var value = _getSelect(getObj('indicators_select'));
	if (value == 0) return;
	$("#indicators_select_input").val(name);
	
	var newselect = document.createElement('div');
	newselect.id = "newselect" + selectIds;
		
	var input = document.createElement('span');
	input.id = 'span_' + newselect.id;
	input.innerHTML = "<input type='submit' class='buton' value='' onclick=\"deleteIndecator('" + newselect.id + "', this)\" />";
	//input.type = "submit";
	//input.className = "buton";
	//input.value = "";
	//input.setAttribute("onclick", "deleteIndecator('" + newselect.id + "', this)");
	
	var name = "#" + newselect.id; 
	//newselect.style.padding = "10px";
	newselect.className = "p_box";
	newselect.innerHTML = "<div class='checkbox_div'>"+ value +"</div>";
	//<img style='cursor: pointer;' onclick='deleteIndecator(\""+ newselect.id +"\");' src='/images/delete.jpg' />
	getObj("indicators_content").appendChild(newselect);
	getObj("indicators_content").appendChild(input);
	//$(name).selectbox();
	
	//pasteContent("newselect" + selectIds + "_container", "<ul>" + liObj + "</ul>");
	
	selectIds = selectIds + 1;
}

function _getSelect(select)
{
	if (is_object(select) == false) select = getObj(select);
	for (var i = 0; i < select.options.length; ++i) { 
		if(select.options[i].selected == true) return select.options[i].value;
	}
	
	return NULL;
}

function is_object( mixed_var ){  
   if(mixed_var instanceof Array) {  
        return false;  
    } else {  
        return (mixed_var !== null) && (typeof( mixed_var ) == 'object');  
    }  
}

var selectIds = 0;
function addIndecator_chart()
{
	//var Options = getContent("indecators_options");
	//alert(Options);
	var newselect = document.createElement('div');
	newselect.id = "newselect" + selectIds;
	
	var input = document.createElement('input');
	input.type = "submit";
	input.className = "buton";
	input.value = "";
	input.setAttribute("onclick", "deleteIndecator('" + newselect.id + "', this)");
	
	var name = "#" + newselect.id; 
	//newselect.style.padding = "10px";
	newselect.className = "p_box";
	
	//<img style='cursor: pointer;' onclick='deleteIndecator(\""+ newselect.id +"\");' src='/images/delete.jpg' />
	getObj("indicators_content").appendChild(newselect);
	getObj("indicators_content").appendChild(input);
	newselect.innerHTML = "<input type='button' value='ok' onclick='deleteIndecator()' /><select class='myselectbox2' name='select-"+ selectIds +"' >" + selectObj + "</select>";
	//$(name).selectbox();
	
	//pasteContent("newselect" + selectIds + "_container", "<ul>" + liObj + "</ul>");
	
	selectIds = selectIds + 1;
}

function deleteIndecator(id, obj)
{
	var element = getObj(id);
	getObj("indicators_content").removeChild(element);
	getObj("indicators_content").removeChild(getObj("span_" + id));
	//getObj("indicators_content").removeChild(obj);
}

function selectTr_charts(obj, type)
{
	if (type == "select"){
		obj.style.background = "#666666";
		obj.style.color = "white";
	}
	if (type == "unselect"){
		obj.style.background = "none";
		obj.style.color = "black";
	}
}

function showPeriod_charts(id)
{
	var date_start = getObj("calendar-inputField").value;
	var date_end = getObj("calendar-inputField2").value;
	
	var link = "/tenders/show/company-information/id/"+ id +"/datestart/"+ date_start +"/dateend/"+ date_end +"/";
	
	window.location.href = link;
}

function display(id, type)
{
	document.getElementById(id).style.display = type;
}

function getObj(id)
{
	return document.getElementById(id);
}

function getContent(id)
{
	return document.getElementById(id).innerHTML;
}

function pasteContent(id, content)
{
	if (content == undefined) content = ""; 
	document.getElementById(id).innerHTML = content;
}

function ParseXml(Xmls)
{
	return Xmls.documentElement;
}

/* Get Chanell Data */
function getChanell(name, doc)
{
	if (!doc.getElementsByTagName(name)) return "";
	if (!doc.getElementsByTagName(name).item(0)) return "";
	if (!doc.getElementsByTagName(name).item(0).firstChild) return "";
	
	return doc.getElementsByTagName(name).item(0).firstChild.nodeValue;
}
var imageLicence;
var id_imgLicence;
function loadImg(id_img, image)
{
	var hidden = getObj(id_img + "_value").value;
	if (hidden == 1) {
		getObj(id_img).src = "/images/img/" + image + "_mini.jpg";
		getObj(id_img + "_value").value = "0";
		getObj(id_img + "_zoom").style.display = "inline"; 
	}else {
		getObj(id_img).src = "/images/spinner.gif";
		image = "/images/img/" + image + ".jpg";
		imageLicence = image;
		id_imgLicence = id_img;
		getObj(id_img + "_value").value = "1";
		getObj(id_img + "_zoom").style.display = "none";
		
		ChartImage = new Image;
		ChartImage.onload = getLoadImage;
		ChartImage.src = image;
	}
}

function getLoadImage()
{
	getObj(id_imgLicence).src = imageLicence;
}

var loc = 0;
function locationChart()
{
	loc++;
	if (loc >= 2) window.location='/graphics-online.html';
}

function timeLocation(id)
{
	window.location='/periods_ul/' + id + '/graphics-online.html';
}

/*function getDataValues()
{
	getObj(id_imgLicence).src = imageLicence;
}*/