function getTimezoneID() {
	if(typeof timeZones != 'undefined') {
		for(var i in timeZones) {
			timeZone = timeZones[i];

			//                    year         month           day           hour          minute
			var STD = new Date(timeZone[3], timeZone[4] - 1, timeZone[5],  timeZone[6],  timeZone[7], 0, 0);
			var DST = new Date(timeZone[8], timeZone[9] - 1, timeZone[10], timeZone[11], timeZone[12], 0, 0);

  		var bias = timeZone[1];
			
			if (hasDaylightSavingTime(timeZone)) {
				var dayLightBias = timeZone[2];
				var deltaInMS = 60 * 60 * 1000;
	
				var DSTminusT = new Date(DST.getTime() - deltaInMS);
				var DSTplusT  = new Date(DST.getTime() + deltaInMS);
				var STDminusT = new Date(STD.getTime() - (-dayLightBias * 1000 * 60) - deltaInMS);
				var STDplusT  = new Date(STD.getTime() - (-dayLightBias * 1000 * 60) + deltaInMS);
	
				var offsetDSTminusT = DSTminusT.getTimezoneOffset();
				var offsetDSTplusT  = DSTplusT.getTimezoneOffset();
				var offsetSTDminusT = STDminusT.getTimezoneOffset();
				var offsetSTDplusT  = STDplusT.getTimezoneOffset();
	
				
				if( offsetDSTminusT == bias &&
					offsetDSTplusT  == bias + dayLightBias &&
					offsetSTDminusT == bias + dayLightBias &&
					offsetSTDplusT  == bias)
				{
	  			  return timeZone[0];
				}
			}
			else {
			  // no daylight saving time switch
				// compare bias only
				var offset = new Date().getTimezoneOffset();
				
				if (bias == offset) {
				  return timeZone[0];
				}
			} // if daylight
		} // for loop
	} else  {
		return 'no time zone info found';
	}

	return 'unknown time zone';
}

function hasDaylightSavingTime(timezone) {
 if (((timezone[3] == -1) && (timezone[4] == -1) && (timezone[5] == -1) && (timezone[6] == -1) && (timezone[7] == -1)) && 
    ((timezone[8] == -1) && (timezone[9] == -1) && (timezone[10] == -1) && (timezone[11] == -1) && (timezone[12] == -1)))
 {
   return false;
 }
 else
   return true;
 
}
