function graph()
{
	var el;
	var txt_arr;
	var hide_div = '';
	var el_type;
	var locality = '';
	var city = '';
	var debug = 0;
	var div_center_start = '<table width="100%" height="100%" align="center" ><tr valign="middle"><td width="100%"   height="100%" valign="middle" align="center"  style="padding-left:5px; padding-right:3px;">';
	var div_center_end = '</td></tr></table>';
	
	this.add_element = function(el){
		this.el =  el;
		return ;
	};

	this.remove_element = function(){
		this.el =  null;
		return ;
	};

	this.debug_on = function(){
		this.debug = 1;
	};

	this.debug_off = function(){
		this.debug = 0;
	};

	this.set_hide_div = function(v){
		this.hide_div = v;
		return;
	}

	this.add_type = function(type){
		this.el_type = type;
		return;
	};

	this.remove_type = function(){
		this.el_type = null;
		return;
	};

	this.set_find_div = function(id){
		this.find_div = id;
		return;
	}

	this.get_div_center_start= function(){
		return div_center_start;
	}
	
	this.get_div_center_end= function(){
		return div_center_end;
	}
	this.ajaxRead = function(file)
	{
		this.fl = file; 
		this.show_error(" link :: "+file);
		var xmlObj = null;
		if(window.XMLHttpRequest)
		{
			xmlObj = new XMLHttpRequest();
		} 
		else if(window.ActiveXObject)
		{
			xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
		}
		else
		{
			return;
		}
		xmlObj.onreadystatechange = function()
		{
			if(xmlObj.readyState == 4)
			{
				graph.processXML(xmlObj.responseXML);
				graph.show_error(" text received : "+xmlObj.responseText);
			}else{
			}
		}
		xmlObj.open ('POST', file, true);
		xmlObj.send ('');
	};
	this.processXML = function(obj)
	{
		
		if(!obj)
		{
			if(this.$(this.el))
			this.$(this.el).innerHTML = '';
			return null;
		};
		
		var insertData='';
		objArray = obj.getElementsByTagName('data')[0];
		this.show_error(" Element registered : "+this.el_type);
		if(objArray == null)
		{
			return;
		}
		if(!this.el || this.el == (''|| null ) || this.el_type == ('' || null) || !this.$(this.el))
			return;
		
		subArray = objArray.getElementsByTagName(this.el_type);
		this.show_error(" sub array : " + subArray);
		
		switch(this.el_type)
		{
			case 'graph':
				this.show_error(" sub array length: " + subArray.length);
				
				var max = objArray.getElementsByTagName('conf')[0].getAttribute('max');
				var min = objArray.getElementsByTagName('conf')[0].getAttribute('min');
				var omax = objArray.getElementsByTagName('conf')[0].getAttribute('omax');
				var omin = objArray.getElementsByTagName('conf')[0].getAttribute('omin');
				var gw = objArray.getElementsByTagName('conf')[0].getAttribute('gw');
				var cw = objArray.getElementsByTagName('conf')[0].getAttribute('cw');
				var btl = objArray.getElementsByTagName('conf')[0].getAttribute('btl');
				var pf = objArray.getElementsByTagName('conf')[0].getAttribute('pf');
				var pt = objArray.getElementsByTagName('conf')[0].getAttribute('pt');
				var type = objArray.getElementsByTagName('conf')[0].getAttribute('type');
				var city = objArray.getElementsByTagName('conf')[0].getAttribute('cityid');
				document.getElementById('myCanvas').style.width = cw;
				document.getElementById('myCanvas').innerHTML = '';
				var showGph = false;
				var ptArr = Array();
				ptArr[3]='Apartment';
				ptArr[4]='Plot/Land';
				ptArr[5]='Builder Floor';
				ptArr[6]='Bungalow/Villa';
				ptArr[7]='Farm House';
				ptArr[8]='Service/Studio Apartment';
				ptArr[10]='Land';
				ptArr[11]='Office';
				ptArr[12]='Business Centre';
				ptArr[13]='Warehouse/Godown';
				ptArr[14]='Industrial setup';
				ptArr[15]='Shop';
				var ptype1 = 3;
				var ptype2 = 6;
				var ptype3 = 4;
				if(city == 'M1'){
					ptype1 = 3;
					ptype2 = 6;
					ptype3 = 4;
				}else if(city == 'M2'){
					ptype1 = 3;
					ptype2 = 6;
					ptype3 = 4;
				}else if(city == 'M3'){
					ptype1 = 3;
					ptype2 = 6;
					ptype3 = 4;
				}else if(city == 'M4'){
					ptype1 = 3;
					ptype2 = 6;
					ptype3 = 4;
				}else if(city == 'M5'){
					ptype1 = 3;
					ptype2 = 6;
					ptype3 = 4;
				}else if(city == 'M6'){
					ptype1 = 3;
					ptype2 = 6;
					ptype3 = 4;
				}else if(city == 'M7'){
					ptype1 = 3;
					ptype2 = 6;
					ptype3 = 4;
				}
				
				
				var html = '<table width="100%" border="0" cellspacing="0" cellpadding="0">';
				html += '<tr><td colspan="3" valign="top" style="line-height:10px;">&nbsp;</td></tr>';
				html += '<tr>';
				html += '<td width="30%" align="left" valign="top" style="padding-left:5px;font-size:11px;font-family: Verdana;height:14px;font-weight:bold;">';
				if(pt == ptype1)
					html += '<span style="color:'+ objArray.getElementsByTagName('conf')[0].getAttribute('g2bar') +'">'+ptArr[ptype1]+'</span>';
				else
					html += '<a class="buttonlink cursor" onclick=" loadGraph(\''+type+'\',\''+ptype1+'\',\'Sale\',\''+city+'\',\'l'+type+'\')"><span>'+ptArr[ptype1]+'</span></a>';
				html += '</td>';
				
				html += '<td width="40%" align="left" valign="top" style="padding-left:5px;font-size:11px;font-family: Verdana;height:14px;font-weight:bold;">';
				if(pt == ptype2)
					html += '<span style="color:'+ objArray.getElementsByTagName('conf')[0].getAttribute('g2bar') +'">'+ptArr[ptype2]+'</span>';
				else
					html += '<a class="buttonlink cursor" onclick=" loadGraph(\''+type+'\',\''+ptype2+'\',\'Sale\',\''+city+'\',\'l'+type+'\')"><span>'+ptArr[ptype2]+'</span></a>';
				html += '</td>';

				html += '<td width="30%" align="left" valign="top" style="padding-left:5px;font-size:11px;font-family: Verdana;height:14px;font-weight:bold;">';
				if(pt == ptype3)
					html += '<span style="color:'+ objArray.getElementsByTagName('conf')[0].getAttribute('g2bar') +'">'+ptArr[ptype3]+'</span>';
				else
					html += '<a class="buttonlink cursor" onclick=" loadGraph(\''+type+'\',\''+ptype3+'\',\'Sale\',\''+city+'\',\'l'+type+'\')"><span>'+ptArr[ptype3]+'</span></a>';
				html += '</td>';
				html += '</tr></table>';
				//var html = '<table width="100%" border="0" cellspacing="0" cellpadding="0">';
				//html += '<tr><td width="100%" valign="top" style="line-height:3px;">&nbsp;</td></tr>';
				//html += '<tr><td width="100%" valign="top" style="padding-left:5px;font-size:9px;font-family:Verdana;height:14px;font-weight:bold;color:'+ objArray.getElementsByTagName('conf')[0].getAttribute('g2bar')+'"><img src="'+IMG_SERVER+'/images/'+objArray.getElementsByTagName('conf')[0].getAttribute('g2img')+'" align="absmiddle">&nbsp;&nbsp;City ( '+ objArray.getElementsByTagName('conf')[0].getAttribute('g2')+')</td></tr>';
				//if(num > 1){
				//	html += '<tr><td width="100%" valign="top" style="padding-left:5px;font-size:9px;font-family:Verdana;height:14px;font-weight:bold;;color:'+ objArray.getElementsByTagName('conf')[0].getAttribute('g1bar')+'"><img src="'+IMG_SERVER+'/images/'+objArray.getElementsByTagName('conf')[0].getAttribute('g1img')+'" align="absmiddle">&nbsp;&nbsp;Subcity ('+ objArray.getElementsByTagName('conf')[0].getAttribute('g1')+')</td></tr>';
				//}
				//	html += '</table>';
				for(var i=0;i<subArray.length;i++)
				{
					
					var g = 'pdgraph'+i;
					g = new line_graph();
					var valArray = subArray[i].getElementsByTagName('stats');
					
					var settingArray = subArray[i].getElementsByTagName('settings');
					this.show_error(" valArray length: " + valArray.length);
					
					if( valArray.length > 0)
					{
						showGph = true;
						for(var j = 0; j < valArray.length; j++)
						{
							var key = valArray[j].getAttribute('key');
							var value = valArray[j].getAttribute('value');
							g.add(key, value);
						}
						
						var dw = parseInt(gw/settingArray[0].getAttribute('dw'));
						dw = dw - 2;
						g.setdw(dw); //gap between bottom item
						
						g.setBTL(btl); //gap between bottom item
						g.setPf(pf); //gap between bottom item
						g.setMax(parseInt(max));
						g.setMin(parseInt(min));
						g.setOMax(parseInt(omax));
						g.setOMin(parseInt(omin));
						g.setColor(4);
						g.setBarColor(settingArray[0].getAttribute('barcolor'));//Line color
						g.setThickness(settingArray[0].getAttribute('lthick'));//Line Thickness
						g.setDotColor(settingArray[0].getAttribute('dotcolor'));//Dor color
						g.render("myCanvas",html,"");
						//g.render("myCanvas","","");
					
					}else{
						document.getElementById('myCanvas').innerHTML = '<div width="100%" align="center" style="font-size:13px;padding-top:50px; font-family:Verdana;height:100px;*height:150px; font-weight:bold;color:'+objArray.getElementsByTagName('conf')[0].getAttribute('g2bar')+'">Data not available</div><div width="100%" align="center" >'+html+'</div>';
					}
				}
						
			break;
			default:
			break;
		}
	};

	this.$ = function(id){
		if(!id)
		return null;
		if(document.getElementById(id)){
			var tmp = document.getElementById(id);
			return tmp;
		}
		return false;
	};

	this.show_error = function(vl){
		if(this.debug)
			alert(vl);
		return true;
	};
}




