// AJAX TECHNOLOGY 2.0
var xmlhttp;
var loadstatus = [];
var justload = [];
var just_image=[];
var att='';
var imp=0;
var AjaxCore = {
	method: "GET",
	DisplayContent: function(XModel,XBack,VCall){
		if (xmlhttp.readyState==4)
  			{// 4 = "loaded"
  				if (xmlhttp.status==200)
    				{// 200 = "OK"	
    	              						  		  		  											    
		    			for (i=0;i<XModel.length;i++){
						   XMLTagObj = xmlhttp.responseXML.getElementsByTagName(XModel[i])[0]; 	
						   console.log(XMLTagObj);
						   //if (!XMLTagObj) alert('You are not logined or this feature is disabled');
						   //else {
						    if (!document.getElementById(XBack[i]+'_'+VCall[i])){
						   		parentDiv = document.getElementById(XBack[i]);						   
						   		newdiv = document.createElement('div');
						   		newdiv.setAttribute('id',XBack[i]+'_'+VCall[i]);
						   		parentDiv.appendChild(newdiv);
							}
						    Core2.action.load(XBack[i]+'_'+VCall[i],Core2.action.eval(XMLTagObj.childNodes.item(0).data,XBack[i]+'_'+VCall[i]));											
						    Core2.action.display(XBack[i]);
						    area=XBack[i]+'_'+VCall[i]; // 
						    loadstatus[area]=1; // ghi chu the da duoc load
							
						   //}
					    }			
 
             		}
      		    else
            		{ // load fail
            			alert("Error 101:" + xmlhttp.statusText);
    		        }
  		}	
	},
	Request: function(){
		this.XML = true;
		this.action = {
			display: function(id){
				if (document.getElementById(id))
				document.getElementById(id).style.display = '';
			},
			display_subcat: function(id,cap,ok,main){
				if (ok==0) {
					document.getElementById("ok_"+id).innerHTML = "<img src='"+root+"img/tickok.png' width=14>";
					document.getElementById("btnSubmit").disabled = false;
					try { document.getElementById(document.getElementById("current_ok").value).innerHTML = ''; } catch(e){}
					document.getElementById("current_ok").value = "ok_"+id;
					document.getElementById("subcategory").value = id;
				}
				if (main!=0){
					document.getElementById("category").value = main;
				}
				cur = document.getElementById("cap_"+cap).value;
				if (cur>0) document.getElementById("showcat_"+cur).style.backgroundColor  = "#FFFFFF";
				document.getElementById("showcat_"+id).style.backgroundColor  = "#E9E9E9";
				document.getElementById("cap_"+cap).value=id;
				//document.getElementById("showcat_"+id).innerHTML = "sdf";
				rmp = document.getElementById("cap"+(cap*1)).value;
				try { Core2.action.hide(rmp); } catch(e){}
				document.getElementById("cap"+(cap*1)).value = 'sc_'+id;
				cap = cap*1;
				for (i=cap;i<4;i++){
					rmp = document.getElementById("cap"+i).value;
					try { Core2.action.hide(rmp); } catch(e){}
				}
				Core2.action.display('sc_'+id);
				
			},
			hide: function(id){
			    if (document.getElementById(id))
				document.getElementById(id).style.display = 'none';
			},
			changehide: function(id,im){
			    if (document.getElementById(id) && document.getElementById(id).style.display == 'none')
				document.getElementById(id).style.display = '';
				else if (document.getElementById(id) && document.getElementById(id).style.display == '')
				document.getElementById(id).style.display = 'none';
				if (document.getElementById(im).src == fullpath+'img/refine_1.png')
				document.getElementById(im).src = fullpath+'img/refine_2.png';				
				else document.getElementById(im).src = fullpath+'img/refine_1.png';
			},
			showhide: function(a,b){
				if (a.length > 0){
					for (i=0;i<a.length;i++){
						if (document.getElementById(a[i])) document.getElementById(a[i]).style.display = '';
					}
				}
				if (b.length > 0){
					for (j=0;j<b.length;j++){
						if (document.getElementById(b[j])) document.getElementById(b[j]).style.display = 'none';
					}
				}
			},
			sort: function(v){
			  if (v!=5){
				document.getElementById('refinesort').value = v;
				document.getElementById('refine').submit();
			  } else {
				  document.getElementById('yourpostcode').style.display = '';
			  }
			},
			submit_postcode: function(){
				document.getElementById('refinesortdistance').value = document.getElementById('ypostcode').value;
				document.getElementById('refine').submit();
			},
			ajaxup: function(formupload,showprogress){
				//alert(formupload)
				document.getElementById(formupload).submit();
				document.getElementById(showprogress).innerHTML = "<center><font color='#654862'>Uploading ....</font></center>";
				document.getElementById(showprogress).style.display = '';
			},
			changesub: function(id,im){
			    if (document.getElementById(id) && document.getElementById(id).style.display == 'none')
				document.getElementById(id).style.display = '';
				else if (document.getElementById(id) && document.getElementById(id).style.display == '')
				document.getElementById(id).style.display = 'none';
				if (document.getElementById(im).src == fullpath+'img/refine_2.png')
				document.getElementById(im).src = fullpath+'img/refine_1.png';				
				else document.getElementById(im).src = fullpath+'img/refine_2.png';
			},
			loadcity: function(id){
				//alert(id)								
				Core2.loadXMLDoc(root+"adverts/loadCity/"+id+"/"+Math.random(),["loadcity"],["loadcity"],["inputcity"],"reLoad","hide_all")
				Core2.action.display('loadcity');
				Core2.action.display('viewcity');
				if (document.getElementById("sscity")) document.getElementById("sscity").innerHTML = '';
			},
			loadspec: function(id){
				//alert(id)								
				Core2.loadXMLDoc(root+"adverts/loadSpec/"+id+"/"+Math.random(),["manufacturer","model","dateofreg","colour","fuel","transtype","bodytype","doors","engine","co2"],["divman","divmod","divreg","divcor","divfuel","divtrans","divbody","divdoor","diveng","divco"],["man","mod","reg","cor","fuel","trans","body","door","eng","co"],"reLoad","hide_all")
				
			},
			change_tabs: function(root,activetab){
				list_tab=document.getElementById(root).getAttribute('tab');
				exit=0;
				active_tab=document.getElementById(root).getAttribute('activetab');
				if (activetab!=active_tab) { 
					background=document.getElementById(activetab).getAttribute('background');				
					document.getElementById(root).setAttribute('activetab',activetab);
					if (list_tab){					
						fulllist=list_tab.split(';');
						for (j=0;j<fulllist.length;j++){
							if (fulllist[j]==activetab) exit=1;
							if (fulllist[j]!=activetab) {
								document.getElementById(fulllist[j]).className='main_tab_inactive';
								inactive=document.getElementById(fulllist[j]).getAttribute('background');
								document.getElementById(fulllist[j]).setAttribute('background',bg_inactive);
							} else {
								document.getElementById(fulllist[j]).className='main_tab_active';
								document.getElementById(fulllist[j]).setAttribute('background',bg_active);
							}
						}
						if (exit==0) document.getElementById(root).setAttribute('tab',list_tab+';'+activetab);
					}
				} 
				document.getElementById(activetab).className='main_tab_active';
				document.getElementById(activetab).setAttribute('background',bg_active);
				Core2.action.display(activetab);
			},			
			eval: function(respone,parentNode){				  
				var content = new Array();	var xml = respone; var tmp = respone; var src=-1;
				while(respone.indexOf("<script") > -1 || respone.indexOf("</script") > -1) {
					var start = respone.indexOf("<script");					
					var start_end = respone.indexOf(">", start);
					var end = respone.indexOf("</script", start);
					var end_end = respone.indexOf(">", end);						
					content.push(respone.substring(start_end+1, end));
					respone = respone.substring(0, start) + respone.substring(end_end+1);										
				}		
				
				for(var i=0; i<content.length; i++) {
					content[i] = Core2.action.replace(content[i],['<!--','//','-->','--'],['','','','']);									
					try {alert(content[i]);
						eval(content[i])
					} catch (e){ }
				}	
				return xml;				
			},
			require: function(JS,parentNode){
				var e = document.createElement("script");
   							e.src = JS;
   							e.type="text/javascript";
   							document.getElementById(parentNode).appendChild(e);
			},
			replace: function(content,resource,pattern){
				if (resource.length > 1){
					for (i=0;i<resource.length;i++) {						
						content = content.replace(resource[i],pattern[i]);
					}
				}
			  return content;
			},
			load: function(parentNode,Context){
			document.getElementById(parentNode).innerHTML = Context;
			},
			parseString: function(){
				var ob = document.getElementsByTagName("script");						
							for(var i=0; i<ob.length; i++){
								if (ob.item(i).text!=null) eval(ob.item(i).text);
							}							
			}		
		}
	}
}
AjaxCore.Request.prototype.loadXMLDoc = function(XAdd,XModel,XBack,VCall,reLoad,Xmethod){
xmlhttp=null;
forcereload=1;
for (i=0;i<XModel.length;i++){ //kiem tra load chua
  area=XBack[i]+'_'+VCall[i];
// disalble all element which is child of this parent 
  att=document.getElementById(XBack[i]).getAttribute('loaded');
	tmp=0;						   
	if (att){						   
		list=att.split(';');
		for (j=0;j<list.length;j++){
			loadstatus[XBack[i]+'_'+list[j]]=1;
			if (list[j]==VCall[i]) {
				Core2.action.display(XBack[i]+'_'+list[j]);
				tmp=1;	
			}
			else {
				if (Xmethod=='hide_all') Core2.action.hide(XBack[i]+'_'+list[j]);					
			}
		}
	}
	if (loadstatus[area]!=1) 	forcereload=0;  
    if (tmp==0) { 
	   		if (att) att=att+';'+VCall[i];
			else att=VCall[i];
			document.getElementById(XBack[i]).setAttribute('loaded',att);
	} 
// end disable
 } 
 if (reLoad=="reLoad"||forcereload==0){ // bat buoc load
 	justload['XAdd']=XAdd; justload['XModel']=XModel; justload['XBack']=XBack; justload['VCall']=VCall; justload['reLoad']=reLoad; justload['Xmethod']=Xmethod; 
	if (window.XMLHttpRequest)
  		{// code for IE7+, Firefox, Chrome, Opera, Safari
  			xmlhttp=new XMLHttpRequest();
 		}
	else
  		{// code for IE6, IE5
  			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  		}		
	xmlhttp.onreadystatechange=function(){ AjaxCore.DisplayContent(XModel,XBack,VCall); }
	xmlhttp.open(AjaxCore.method,XAdd,true);
	xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
	xmlhttp.setRequestHeader("Accept-Charset","UTF-8");
	xmlhttp.send(null);
 } else { // hien thi nhung cai da load
 	for (i=0;i<XModel.length;i++){ 		
		Core2.action.display(area);
	}	
 }
}
Core2 = new AjaxCore.Request();


