//<![CDATA[

var DEBUG = false;
var isIE = false;
var tip = userlang.substring(0,2);
var usersonline = new Array();
var xmlhttpflag = 0;

/*
var description;
var hardcoreBands = new Object();
hardcoreBands["mathyGoodnes"] = "Dillinger Escape Plan";
hardcoreBands["legendary"] = "Converge";
hardcoreBands["fashionistas"] = "Every Time I Die";

for(description in hardcoreBands) {  // print out the bands with descriptions
  alert(hardcoreBands[description] + " == " + description);
}
*/
 

function xmlRequest(url, data, callback)
{
	xmlHttpReq = false; 
	if(window.XMLHttpRequest) { 
		try { 
			xmlHttpReq = new XMLHttpRequest(); 
		} catch(error) { 
			xmlHttpReq = false; 
		}
	} else if(window.ActiveXObject) { 
		try { 
			xmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP"); 
            isIE = true;
            } catch(error) { 
			try { 
				xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP"); 
			} catch(error) { 
				xmlHttpReq = false; 
			} 
		} 
	}

	if (!xmlHttpReq) { 
//throw "XMLHttpRequest not supported by "+navigator.userAgent+".";

return false;
		
		}

	xmlHttpReq.open('POST', url, true);
	xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlHttpReq.onreadystatechange = function() { 
		if (xmlHttpReq.readyState == 4) { 
        		//document.getElementById('debug').innerHTML = xmlHttpReq.responseText;
			switch (xmlHttpReq.status) { 
				// TODO: handle other status values, error checking, etc
				case 200: 
					// Call the desired callback function 
					eval(callback + '(xmlHttpReq.responseXML);'); 
					break; 
				default: 
					break; 
			}  // switch
		}  // if
	}  // function

	xmlHttpReq.send(data);
	return true;
}

function plural(w)
{
	switch(w) {
		case "country":  return "countries"; break;
		case "city": return "cities"; break;
		case "suburb": return "suburbs"; break;
		case "district" :    return "districts"; break;
		case "type":    return "types"; break;
		case "user":    return "users"; break;
		default :
			return w;
	}
}

function ParseRow(s) {
   this.id = s.getElementsByTagName("id")[0].firstChild.nodeValue; 
   this.ip = s.getElementsByTagName("ip")[0].firstChild.nodeValue; 
   this.sesid = s.getElementsByTagName("sesid")[0].firstChild.nodeValue; 
   this.sdealerid = s.getElementsByTagName("sdealerid")[0].firstChild.nodeValue; 
   this.dealerid = s.getElementsByTagName("dealerid")[0].firstChild.nodeValue; 
   this.itemid = s.getElementsByTagName("itemid")[0].firstChild.nodeValue; 
   this.time = s.getElementsByTagName("time")[0].firstChild.nodeValue;
   this.method = s.getElementsByTagName("method")[0].firstChild.nodeValue;
   this.datetime = s.getElementsByTagName("datetime")[0].firstChild.nodeValue;
}

function getUsersOnline(optionsXML) {
//alert("in getUsersOnline function");
        var status = document.getElementById('displaystatus');
        var flags = 0;
	try	{
		var root      = optionsXML.getElementsByTagName('users')[0];
		var UsersList    = optionsXML.getElementsByTagName('user');
		try {
            var warning  = root.getElementsByTagName('warning');
			var flag     = warning[0].getAttribute('flag');
            var query    = root.getElementsByTagName('query').firstChild.nodeValue; 
		} catch (e) {}
		
		try	{
            var rowcount  = root.getElementsByTagName('rowcount'); 
		} catch (e) { if(DEBUG) alert(error.description);}

//alert("in getUsersOnline - ctr:"+UsersList.length);
			for(ctr=0;ctr<UsersList.length;ctr++) {
			   try
			   { 
				   usersonline[ctr] = new ParseRow(UsersList[ctr]);
			   }
			   catch (e)
			   {
				     if(DEBUG) alert("Error in xml data "+error.description);
			   }
			}

// alert("current status : "+document.getElementById('onlinestatus').innerHTML);
			try { document.getElementById('onlinestatus').innerHTML = dealerstatus(dealerid); } catch (error) { }
// alert("after check status : "+document.getElementById('onlinestatus').innerHTML);
			if (flag==0)
		    {
//			   if(DEBUG) alert("Flag is 0");
			} else {
//			   if(DEBUG) alert("Flag is 1");
		    }
	} catch(error) { 
		if(DEBUG) alert(error.description);
		xmlhttpflag = 0;
	}

//        status.innerHTML = '';
}

function ArabizeJ(t)
{
if(userlang=="arabic")
	{ 
	switch(t.toLowerCase()) {
		case "countries" : return 'الدول'; break;
		case "cities"    : return 'المدن'; break;
		case "suburbs"   : return 'الأحياء'; break;
		case "types"     : return 'الأنواع'; break;
		case "districts" : return 'المناطق'; break;
		case "country"   : return 'الدوله'; break;
		case "city"      : return 'المدينه'; break;
		case "suburb"    : return 'الحي'; break;
		case "type"      : return 'النوع'; break;
		case "district"  : return 'المنطقه'; break;
		case "user"  : return 'المستخدم'; break;
		case "users"  : return 'المستخدمين'; break;
        default :
			return t;
	}
  } else {
		return t;
  }
}


function dealerstatus(dealerid) {
		 var url = location.href;
		 var tokenvalue='';
		 var tokenname ='';
		 var tagtext = '';
		 var newstatus = '';
		 var found = false;
         var ctr = 0;

		 
		 if(url.indexOf("dealer.php") != -1) {
			tokenname = 'dealerid';
		    tokenvalue= dealerid;
		 } else {
			tokenname = 'userid';
			tokenvalue= userid;
		 }
         while(ctr<usersonline.length && !found) {
			found = usersonline[ctr].sdealerid==dealerid;
//			alert("ctr : "+ctr+"searching for dealer : "+dealerid+" online dealer : "+usersonline[ctr].sdealerid+" found : "+found);
/*
			if(tokenname='dealerid') {
			  found = usersonline[ctr].dealerid= tokenvalue;
			} else {
              found = usersonline[ctr].userid  = tokenvalue;
			} 
*/
			ctr++;
		 }
		 if(found) {
			 try
			 {
		 	   if(userlang=="arabic")
			   	  tagtext = 'متواجد';    //'هذا البائع متواجد الآن على الموقع';
			   else
				  tagtext = 'Online';    //'This dealer is online right now';
                  newstatus = '<img border="0" width=20 height=20 src="./images/online_tiny.gif" alt="'+tagtext+'">';
			 }
			 catch (error) {}
		 } else {
			 try
			 {
			   if(userlang=="arabic")
			   	  tagtext = 'غير متواجد';
			   else
				  tagtext = 'Offline';
                  newstatus = '<img border="0" width=20 height=20 src="./images/offline_tiny.gif" alt="'+tagtext+'">';
			 }
			 catch (error) {}
		 }
//alert(newstatus);
  return newstatus;
}

function getStatus()
{
	url = './js/onlinexmldata.php';  
	urldata = "";

//alert("in getStatus function");

	if (!xmlRequest(url, urldata, 'getUsersOnline')) 
	{ 
		if(DEBUG) ("Error in looking up info"); 
	} else {
      try {
		 var onlinestatus = document.getElementById('onlinestatus');
		 var viewers = document.getElementById('viewers');

		 onlinestatus.innerHTML= dealerstatus(dealerid);
         var viewersCTR=0;
		 for(ctr=0;ctr<usersonline.length;ctr++) {
			if(usersonline[ctr].dealerid==dealerid) viewersCTR++;
		 }
		 if(viewersCTR>0) viewersCTR--;
         viewers.innerHTML= viewersCTR;
     }  // try
      catch (error) {}
	}  // if
}  //  function

function CheckStatus(u) {
    usersonline = [];
try {
      getStatus();
	  for(ctr=0;ctr<usersonline.length;ctr++) {
        if(u==usersonline.userid) alert('This user : '+u+' is online');
	  }
    } catch(error) {
       if(DEBUG) alert(error.description);
    }
}

getStatus();
setTimeout(getStatus, 60000);  // 60,000 check every minute
    //]]>
