uniqueid = '3a8ede6a4dab4469b0ccce0ba82b95551280432367';
var sDay=new Date();
var sTime=sDay.getTime();
document.write("<script src='http://www.nomadsinasia.com/sherpa//config/sherpa.js' type='text/javascript'></script>");

//											adddomloadevent script
/*
 * (c)2006 Jesse Skinner/Dean Edwards/Matthias Miller/John Resig
 * Special thanks to Dan Webb's domready.js Prototype extension
 * and Simon Willison's addLoadEvent
 *
 * For more info, see:
 * http://www.thefutureoftheweb.com/blog/adddomloadevent
 * http://dean.edwards.name/weblog/2006/06/again/
 * http://www.vivabit.com/bollocks/2006/06/21/a-dom-ready-extension-for-prototype
 * http://simon.incutio.com/archive/2004/05/26/addLoadEvent
 * 
 *
 * To use: call addDOMLoadEvent one or more times with functions, ie:
 *
 *    function something() {
 *       // do something
 *    }
 *    addDOMLoadEvent(something);
 *
 *    addDOMLoadEvent(function() {
 *        // do other stuff
 *    });
 *
 */  
addDOMLoadEvent = (function(){
    // create event function stack
    var load_events = [],
        load_timer,
        script,
        done,
        exec,
        old_onload,
        init = function () {
            done = true;

            // kill the timer
            clearInterval(load_timer);

            // execute each function in the stack in the order they were added
            while (exec = load_events.shift())
                exec();

            if (script) script.onreadystatechange = '';
        };

    return function (func) {
        // if the init function was already ran, just run this function now and stop
        if (done) return func();

        if (!load_events[0]) {
            // for Mozilla/Opera9
            if (document.addEventListener)
                document.addEventListener("DOMContentLoaded", init, false);

            // for Internet Explorer
            /*@cc_on @*/
            /*@if (@_win32)
                document.write("<script id=__ie_onload defer src=//0><\/scr"+"ipt>");
                script = document.getElementById("__ie_onload");
                script.onreadystatechange = function() {
                    if (this.readyState == "complete")
                        init(); // call the onload handler
                };
            /*@end @*/

            // for Safari
            if (/WebKit/i.test(navigator.userAgent)) { // sniff
                load_timer = setInterval(function() {
                    if (/loaded|complete/.test(document.readyState))
                        init(); // call the onload handler
                }, 10);
            }

            // for other browsers set the window.onload, but also execute the old window.onload
            old_onload = window.onload;
            window.onload = function() {
                init();
                if (old_onload) old_onload();
            };
        }

        load_events.push(func);
    }
})();

	
// parseUri 1.2.2
// (c) Steven Levithan <stevenlevithan.com>
// MIT License

function parseUri (str) {
	var	o   = parseUri.options,
		m   = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
		uri = {},
		i   = 14;

	while (i--) uri[o.key[i]] = m[i] || "";

	uri[o.q.name] = {};
	uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
		if ($1) uri[o.q.name][$1] = $2;
	});

	return uri;
};

parseUri.options = {
	strictMode: false,
	key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],
	q:   {
		name:   "queryKey",
		parser: /(?:^|&)([^&=]*)=?([^&]*)/g
	},
	parser: {
		strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
		loose:  /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
	}
};

// jXHR.js (JSON-P XHR) | v0.1 (c) Kyle Simpson | MIT License
(function(c){var b=c.setTimeout,d=c.document,a=0;c.jXHR=function(){var e,g,n,h,m=null;function l(){try{h.parentNode.removeChild(h)}catch(o){}}function k(){g=false;e="";l();h=null;i(0)}function f(p){try{m.onerror.call(m,p,e)}catch(o){throw new Error(p)}}function j(){if((this.readyState&&this.readyState!=="complete"&&this.readyState!=="loaded")||g){return}this.onload=this.onreadystatechange=null;g=true;if(m.readyState!==4){f("Script failed to load ["+e+"].")}l()}function i(o,p){p=p||[];m.readyState=o;if(typeof m.onreadystatechange==="function"){m.onreadystatechange.apply(m,p)}}m={onerror:null,onreadystatechange:null,readyState:0,open:function(p,o){k();internal_callback="cb"+(a++);(function(q){c.jXHR[q]=function(){try{i.call(m,4,arguments)}catch(r){m.readyState=-1;f("Script failed to run ["+e+"].")}c.jXHR[q]=null}})(internal_callback);e=o.replace(/=\?/,"=jXHR."+internal_callback);i(1)},send:function(){b(function(){h=d.createElement("script");h.setAttribute("type","text/javascript");h.onload=h.onreadystatechange=function(){j.call(h)};h.setAttribute("src",e);d.getElementsByTagName("head")[0].appendChild(h)},0);i(2)},setRequestHeader:function(){},getResponseHeader:function(){return""},getAllResponseHeaders:function(){return[]}};k();return m}})(window);


// ----- A/B Testing ---
d=document,l=d.location;
gC=function (n){var nEQ = n + "=";var ca = d.cookie.split(';');for(var i=0;i < ca.length;i++){var c = ca[i];while (c.charAt(0)==' ') c = c.substring(1,c.length);if (c.indexOf(nEQ) == 0) return c.substring(nEQ.length,c.length);}return null;};
// --- A/B Testing End

function pausecomp(millis)
{
var date = new Date();
var curDate = null;

do { curDate = new Date(); }
while(curDate-date < millis);
}

function sendRequest(url,params)
{
	var img = document.createElement('img');
	var path = url + '?' + params;
	img.src = path;
	
}
var seq = 0;
function getDocWidth() {
    var D = document;
    return Math.max(
        Math.max(D.body.scrollWidth, D.documentElement.scrollWidth),
        Math.max(D.body.offsetWidth, D.documentElement.offsetWidth),
        Math.max(D.body.clientWidth, D.documentElement.clientWidth)
    );
}

function getDocHeight() {
    var D = document;
    return Math.max(
        Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
        Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
        Math.max(D.body.clientHeight, D.documentElement.clientHeight)
    );
}

var sFormArray=[];

var unload_request_sent = 0;
function registerView(domain,vPage)
{
	url = 'http://www.nomadsinasia.com/sherpa/' + 'register_view.php';
	docY = getDocHeight();
	docX = getDocWidth();
	
	referrerUrl = document.referrer;
	r = parseUri(referrerUrl);
	referrerDomain = encodeURIComponent(r.host);
	ab_referer = r.path;
	query=encodeURIComponent(r.query);
	var x1 = new jXHR();
	x1.onreadystatechange = function(data){
			if (x1.readyState === 4) {
				if(data.track == 'Y')
				{
					registerForms(domain,vPage);
					window.onbeforeunload=function(e)
					{
						if(sFormArray.length>0)
						{
							var fData='';
							for(i=0;i<sFormArray.length;i++)
							{	
								if(sFormArray[i].submitSuccess!=true)
								{	
									var tArr=[];
									for(j=0;j<sFormArray[i].myElements.length;j++)
									{
										data=sFormArray[i].myElements[j].getDuration();
										tArr.push(data);
									}
									if(sFormArray[i].name)
									{	
										fData+='{"frm":"' + frm.name + '","data":[' + tArr.toString()
										 + ']},';
											
									}
									else
									{			
										fData+='{"frm":"'+i+'","data":[' + tArr.toString()
										 + ']},';		
							
									}
									
								}
							}
							if(fData)
							{	
								unload_request_sent = 1;
								url = 'http://www.nomadsinasia.com/sherpa/' + 'register_form.php';
								fData=rtrim(fData, ',');	
								par = 'callback=?&action=uTrack&uniqueid=' + uniqueid + '&fData=['+ fData +']';
								sendRequest(url,par);	
							}
							
						}
						if(unload_request_sent == 0)
						{
							url = 'http://www.nomadsinasia.com/sherpa/' + 'register_form.php';
							par = 'callback=?&action=puTrack&uniqueid=' + uniqueid ;
							sendRequest(url,par);
						}
						else
						{
							unload_request_sent = 0;
						}
						pStore();
						pausecomp(1000);
					}
				
					document.body.onmousemove = storeTrackingMoves;
					document.body.onmousedown = storeTrackingClicks;
					getScroll();
					//pStore(); 
					
				}
			}
		}
		coo=gC("rU");
		if(coo == null)
		{
			coo='null';
		}
		
	x1.open("GET",url + '?callback=?&domain=' + encodeURIComponent(domain) + '&uniqueid=' + uniqueid + '&page=' + encodeURIComponent(vPage) + '&aUrl=' + encodeURIComponent(aUrl) + '&docY='+ docY + '&docX=' + docX + '&dir=' + dir + '&referrer=' + encodeURIComponent(referrerDomain) + '&ab_referer=' + encodeURIComponent(ab_referer)+'&c='+encodeURIComponent(coo)+'&sq='+encodeURIComponent(query));
	x1.send();	
}

function sherpaElement(ele)
{
	var eObj=this;
	this.element=ele;
	this.toString=function()
				  {
					return '{"n":"' + this.element.name + '","t":"' + this.element.type + '"}';
				  }
	this.getDuration=function()
				  {
					this.checkVal();
					var d=parseInt(this.endTime)-parseInt(this.startTime);	
					return '{"n":"' + this.element.name + '","t":"' + this.element.type + '","d":"' + d + '","v":"' + this.hasVal + '"}';
				  }  
	this.addHandller=function(which)
	 {
		switch(which)
		{
			case 'onblur':	
							if(this.element.onblur!=null)
							{	
								this.sherpaBlurMethod=this.element.onblur;
							}
							
							this.element.onblur= function()
												{
													eObj.executeHandller('onblur');
												}
							break;
			case 'onfocus':
							if(this.element.onfocus!=null)
							{	
								this.sherpaFocusMethod=this.element.onfocus;
							}
							
							this.element.onfocus= function()
												{
													eObj.executeHandller('onfocus');
												}
							break;				
		}
	 }

	this.executeHandller=function(which)
		 {
			switch(which)
			{
				case 'onfocus':this.focusHandller();
								if(this.sherpaFocusMethod!=null)
									this.sherpaFocusMethod();
								break;
				case 'onblur':this.blurHandller();
								if(this.sherpaBlurMethod!=null)
									this.sherpaBlurMethod();
								break;				
			}	
		 }
	 
	 this.blurHandller=function()
	 					 {
		 					this.endTimer();
	 					 }
	 this.focusHandller=function()
	 					{
							this.startTimer();
	 					}
	this.startTimer=function()
					{
						var d=new Date();
						this.startTime=d.getTime();		
					}
	this.endTimer=function()
	{
		var d=new Date();
		this.endTime=d.getTime();		
	}
	this.checkVal=function()
				 {
		 			if(this.element.value)
		 			{
			 			this.hasVal='t';
		 			}
		 			else
		 			{
		 				this.hasVal='f';
		 			}				
				 }								    			
}

function sherpaForm(form,cnt,domain,vPage)
{
	var tObj=this;
	this.form=form;
	this.myElements=[];
	this.domain=domain;
	this.vPage=vPage;
	this.cnt=cnt;
	this.addHandller=function(which)
					 {
						switch(which)
						{
							case 'onsubmit':
											tObj.inItForm();
											if(this.form.onsubmit!=null)
											{	
												this.sherpaSubmitMethod=this.form.onsubmit;
											}
											
											this.form.onsubmit= function()
																{
																	tObj.executeHandller('onsubmit');
																}
											break;
						}
		 			 }

	this.executeHandller=function(which)
						 {
							switch(which)
							{
								case 'onsubmit':this.subHandller();
												if(this.sherpaSubmitMethod!=null)
													this.sherpaSubmitMethod();
												break;
							}	
						 }
	 this.subHandller=function()
	 				  {
						 this.submitSuccess=true;
		 				 var url = 'http://www.nomadsinasia.com/sherpa/' + 'register_form.php';
						 var tArray=[];	
		 				 var j=0;	
						 var elems=this.myElements;
						 for(j=0;j<elems.length;j++)
						 {
							 tArray.push(elems[j].getDuration());
						 }
						 formData=tArray.toString();
						 	
						 if((this.form.name!="") && (typeof(this.form.name)!="object"))
						 {	
								fData='{"frm":"' + this.form.name + '","data":[' + formData + ']}';
									
						 }
						 else
						 {			
								fData='{"frm":"' + this.cnt + '","data":[' + formData + ']}';
					
						 }
						 if(tArray.length>0)
						 {	
								var	par = 'callback=?&action=sTrack&uniqueid=' + uniqueid + '&fData='+ fData ;
								sendRequest(url,par);
						 }	
					 }
	 this.inItForm=function()
				   {
						var j;
						var sherpaElementObjAry=[];
						var sherpaElementObj;
						elems=this.form.elements;
						for(j=0;j<elems.length;j++)
						{
							sherpaElementObj=new sherpaElement(elems[j]);
							sherpaElementObj.addHandller("onfocus");
							sherpaElementObj.addHandller("onblur");
							sherpaElementObjAry.push(sherpaElementObj);
						}
						this.myElements=sherpaElementObjAry;
								   					
				   } 		
	 this.registerForm=function()
	 				   {
		 					return this.myElements.toString();
	 				   }						  		 
}

function registerForms(domain,vPage)
{
	url = 'http://www.nomadsinasia.com/sherpa/' + 'register_form.php';
	
	var i=0;
	var fData='';
	var frm;
	var sherpaFrm;
	var formData='';
	if(document.forms.length>0)
	{	
		for(i=0;i<document.forms.length;i++)
		{
			frm = document.forms[i];
			sherpaFrm=new sherpaForm(frm,i,domain,vPage);
			sherpaFrm.addHandller("onsubmit");
			formData=sherpaFrm.registerForm();
			sFormArray.push(sherpaFrm);
			if((frm.name!="") && (typeof(frm.name)!="object"))
			{	
				fData+='{"frm":"' + frm.name + '","data":[' + formData + ']},';
					
			}
			else
			{			
				fData+='{"frm":"'+i+'","data":[' + formData + ']},';		
	
			}
		}
		fData=rtrim(fData, ',');	
	}
	if(fData)
	{	
		par = 'callback=?&&action=nTrack&uniqueid=' + uniqueid + '&fData=['+ fData +']';
		sendRequest(url,par);
	}
}

function validateKey()
{
	url = "http://hellosherpa.com/users/validate_domain.php";
	t = parseUri(window.location.href);
	
	domain = t.host;
	vPage = t.path;
	aUrl = t.source;
	dir = t.directory;

	var x1 = new jXHR();
	x1.onreadystatechange = function(data){
			if (x1.readyState === 4) {
				if(data.stat == 'success')
				{
					registerView(domain,vPage);
				}
			}
		}
	x1.open("GET",url + '?callback=?&key=' + sherpaKey + '&domain=' + domain + "&_=" + Math.random()+"&h="+parseUri('http://www.nomadsinasia.com/sherpa/').host);
	x1.send();
}

var sendy = -1;
function getScroll()
{
	var topPosFix = typeof window.pageYOffset != 'undefined' ?
window.pageYOffset:document.documentElement &&
document.documentElement.scrollTop ?
document.documentElement.scrollTop: document.body.scrollTop?
document.body.scrollTop:0;


	if(sendy != topPosFix)
	{
		sendy = topPosFix;
		n = padZero(sendy.toString(2),16);
		x=0;
		n = n + padZero(x.toString(2),16);
		cDay= new Date();
		cTime=cDay.getTime();
		dTime=cTime-sTime;
		dTime=padZero(dTime.toString(2),32);
		n = dTime + n;
		num = parseInt(n,2).toString(36);
		var str=num;
		sTime=cTime;

		if((sherpaStore.length+str.length)<sherpaStoreLength)
		{
			sherpaStore=sherpaStore+'I'+str;
		}
		else
		{
			pStore();
		}						
	}
	setTimeout ( getScroll, 3000);
}

function getMouseXY(e)
{
	url = 'http://www.nomadsinasia.com/sherpa/' + 'register_click.php';
	par = 'callback=?&domain=' + domain + '&uniqueid=' + uniqueid + '&x=' + e.clientX + '&y=' + e.clientY + '&page=' + encodeURIComponent(vPage)+ "&_=" + Math.random() + '&seq=' + seq;
	sendRequest(url,par);
	seq++;
	return true;
}

var sherpaStepMove = 0;
var sherpaMouseMoves=[];
var sherpaMouseMovesSize=100;
var moveTimeOut;

var sherpaStore="";
var sherpaStoreLength=3000;
var storeTimeOut;
function clearStore()
{
	sherpaStore="";
}

function pStore()
{
	if(sherpaStore!="")
	{	
		var url = 'http://www.nomadsinasia.com/sherpa/' + 'register.php';
		var par = 'callback=?&domain=' + encodeURIComponent(domain) + '&uniqueid=' + uniqueid + '&e='+ sherpaStore ;
		sendRequest(url,par);
		clearStore();
	}
}

function storeTrackingMoves(e)
{
	var move=getMove(e);
	if(move!=null)
	{
		n = padZero(move.x.toString(2),16);
		n = n + padZero(move.y.toString(2),16);
		cDay= new Date();
		cTime=cDay.getTime();
		dTime=cTime-sTime;
		dTime=padZero(dTime.toString(2),32);
		n = dTime + n;
		num = parseInt(n,2).toString(36);
		var str=num;
		sTime=cTime;

		if((sherpaStore.length+str.length)<sherpaStoreLength)
		{
			sherpaStore=sherpaStore+'H'+str;
		}
		else
		{
			sherpaStepMove = 0;
			pStore();
		}						
	}
}


function padZero(data,zero)
{
	
	if(data.length< zero)
	{
		pad = zero - data.length;
	}
	str = '';
	for(i=0;i<pad;i++)
	{
		str = str + '0';
	}
	return str + data;
}

function MouseMove(x,y,s)
{
	this.x=x;
	this.y=y;
	this.s=s;			
}

function getMove(e)
{
	isIE = false;
	if(navigator.appName == 'Microsoft Internet Explorer')
		isIE = true;
	
	if(sherpaStepMove > 50)
	{
		sherpaStepMove = 0;
		return null;
	}
	sherpaStepMove++;
	seq++;
	if(isIE)
	{
		var move= new MouseMove(window.event.clientX,window.event.clientY,seq);
	}
	else
	{
		var move= new MouseMove(e.clientX,e.clientY,seq);
	}		
	return move;
}

var sherpaMouseClicks=[];
var sherpaMouseClicksSize=100;
var clickTimeOut;

function MouseClick(e,s)
{
	isIE=false;
	if(navigator.appName == 'Microsoft Internet Explorer')
		isIE = true;
	if(isIE)
        {
		this.x=window.event.clientX;
		this.y=window.event.clientY;
        }
        else
        {
		this.x=e.clientX;
		this.y=e.clientY;
        }   
	this.s=s;
	this.toString=function()
				 {
		 			return '{"x":' + this.x + ',"y":' + this.y + ',"s":' + this.s +'}';
				 }			
}

function storeTrackingClicks(e)
{
	var click=new MouseClick(e,seq);
	seq++;

	if(click!=null)
	{
		n = padZero(click.x.toString(2),16);
		n = n + padZero(click.y.toString(2),16);
		cDay= new Date();
		cTime=cDay.getTime();
		dTime=cTime-sTime;
		dTime=padZero(dTime.toString(2),32);
		n = dTime + n;
		num = parseInt(n,2).toString(36);
		var str=num;
		sTime=cTime;
		if((sherpaStore.length+str.length)<sherpaStoreLength)
		{
			sherpaStore=sherpaStore+'G'+str;
		}
		else
		{
			pStore();
		}						
	}
}

function pStoreTrackingClicks()
{
	if(sherpaMouseClicks.length>0)
	{	
		clicksArray = encodeURIComponent('{"data":[' + sherpaMouseClicks + ']}');
		var url = 'http://www.nomadsinasia.com/sherpa/' + 'register_click.php';
		var par = '?callback=?&domain=' + encodeURIComponent(domain) + '&uniqueid=' + uniqueid + '&clicks='+ clicksArray ;
		sendRequest(url,par);
		clearTrackingClicks();
	}
	clickTimeOut=setTimeout( pStoreTrackingClicks,10000);	
}

function clearTrackingClicks()
{
	sherpaMouseClicks=[];
}

function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

addDOMLoadEvent(validateKey);
