var ipChecked = false;
var isUsIp = false;
var isCanadianIp = false;
var isGermanIp = false;
var isItalianIp = false;
var currentCountry = '';

	/*
	 * IP CHECK Referer _config.php and TrackClick.php
	 */
var runIPCheck = function() {		

	ajaxHelper().execute( 'get', '/ajax/geo-ip/ipcheck?_' + (+ new Date()), function( response ) {
		currentCountry = response;

		switch( response ) {
			case 'us':
				isUsIp = true;
				break;

			case 'ca':
				isCanadianIp = true;
				break;

			case 'de':
				isGermanIp = true;
				break;

			case 'it':
				isItalianIp = true;
				break;

			default:
				break;
		}

		ipChecked = true;				
		return;
	}, function() {
		ipChecked = true;
		return;
	});
};

var ajaxHelper = function()
{
	//private functions
	var makeRequest = function( successCallback, failCallback ) {
		var xhr; //create new http-request
		if (window.XMLHttpRequest) {				// Object of the current windows 
			try {
				xhr = new XMLHttpRequest();     	// Firefox, Safari, ...
			} catch (z) {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");     	// IE8
			}
		} else if (window.ActiveXObject) {	// ActiveX version
			xhr = new ActiveXObject("Microsoft.XMLHTTP");  // Internet Explorer
		}
			 
		//set our eventhandlers
		xhr.onreadystatechange = function() {
			if( xhr.readyState == 4 ) { //request succeded
				if( xhr.status == 200 ) { //and returned a 200 OK
					successCallback( xhr.responseText );
				} else {
					failCallback( xhr.status );
				}
				
				xhr.onreadystatechange = function() {}; //reset the attached function
			}
		};
		
		return xhr;
	};
	
	
	//public
	return {
		execute: function( method, url, success, fail ) {
			var request = makeRequest( success, fail );
			request.open( 'get', url, true );
			request.send( null );
		}
	}
};

runIPCheck();

