var domain = "registrationams.tradenetworks.com";
var redirectedDomains = [
	["registration.bforex.com"],
	["www.bforex.com", "registration.bforex.com"],
	["tr.bforex.com", "registration.bforex.com"],
	["es.bforex.com", "registration.bforex.com"],
	["ru.bforex.com", "registration.bforex.com"],
	["fr.bforex.com", "registration.bforex.com"],
	["ar.bforex.com", "registration.bforex.com"]
	];

var iFrameLoadCustomEvent = "ondataavailable"; // Custom event name. Do not change: "ondataavailable" is the only event valid in IE 7-8

function loadScript(src, callback, id) {
	var head = document.getElementsByTagName('head')[0],
		script = document.createElement('script');
	script.type = 'text/javascript';
	if (id !== null && id !== "") {
		script.setAttribute("id", id);
	}

	script.onreadystatechange = function () {
		if (this.readyState === 'complete' || this.readyState === 'loaded') {
			if (callback !== null) {
				callback();
			}
		}
	};
	script.onload = callback;
	script.src = src;
	head.appendChild(script);
}

function tryLoadChain() {
	var chain = arguments,
		i;
	for (i = 0; i < chain.length; i++) {
		var isNotLoaded = chain[i][0];
		if (isNotLoaded) {
			var script = chain[i][1],
				id = chain[i][2];
			loadScript(script, null, id);
		}
	}
}

function isjQueryLoaded() {
	return (typeof jQuery !== 'undefined') && jQuery.fn.jquery >= "1.5.1";
}

function extractQueryStringParams() {
	var queryString = window.location.search; //Extract all query string

	if (queryString.length > 0) {
		queryString = queryString.replace('?&', '&');
		queryString = queryString.replace('?', '&');
	}

	return queryString;
}

function getRedirectedDomain() {
	var currentDomain = document.domain.toLowerCase();
	for (var i = 0; i < redirectedDomains.length; i++) {
		if (redirectedDomains[i][0] === currentDomain) {
			if (redirectedDomains[i].length > 1) {
				return location.protocol + "//" + redirectedDomains[i][1];
			}
			return location.protocol + "//" + redirectedDomains[i][0];
		}
	}
	return location.protocol + "//" + domain;
}

function createRegistrationFormFrameWithStyle(styleString) {
	createRegistrationFormFrameWithStyleAndQueryString(styleString, "");
}

function createRegistrationFormFrameWithStyleAndQueryString(styleString, queryString) {

	var regDomain = getRedirectedDomain();

	if (!isjQueryLoaded()) {
		loadScript(regDomain + '/RegAdmin/Scripts/jquery-1.5.1.min.js', null, null);
	}
	var regFormUrl = regDomain + "/RegAdmin/Forms/Routing/RedirectByLocation",
		queryStringParams = extractQueryStringParams();

	if (queryString !== null && queryString !== '') {
		queryStringParams += ("&" + queryString);
	}

	var visitedUrl = escape(window.location.protocol + "//" + window.location.host + window.location.pathname);

	if (queryStringParams.indexOf("&") === 0) {
		queryStringParams = queryStringParams.replace("&", "?");
	}

	visitedUrl += escape(queryStringParams);

	queryStringParams += ("&location=" + visitedUrl);
	queryStringParams += ("&referrerUrl=" + escape(document.referrer));

	if (queryStringParams.indexOf("&") === 0) {
		queryStringParams = queryStringParams.replace("&", "?");
	}
	var src = regFormUrl + queryStringParams;

	document.write(
		"<div id='regDiv' style='position:relative; " + styleString + "'>" +
			"<div id='loadingImage' style='position: absolute; width:220px; height:19px; left:50%; margin-left: -110px;'>" +
				"<img alt='' src='" + regDomain + "/RegAdmin/Content/Images/loadingBar.gif' width='220' height='19' />" +
			"</div>" +
			"<iframe id='iFrameRegForm' src='" + src + "' frameborder='0' allowtransparency='true' scrolling='no' style='display:none; background-color:transparent; " + styleString + "' onload='return onIFrameLoaded();'></iframe>" +
		"</div>"
	);
}

function onIFrameLoaded() {
	var iframe = document.getElementById("iFrameRegForm"),
		imgDiv = document.getElementById("loadingImage"),
		evt;

	if (typeof imgDiv !== "undefined" && imgDiv !== null) {
		imgDiv.parentNode.removeChild(imgDiv);
	}
	if (typeof iframe !== "undefined" && iframe !== null) {
		iframe.style.display = "block";
	}

	// Create custom event that can be listened from an external script
	if (document.createEvent) { // Regular browser
		evt = document.createEvent("HTMLEvents");
		evt.initEvent(iFrameLoadCustomEvent, true, true);
	} else { // IE 7-8
		evt = document.createEventObject();
		evt.eventType = iFrameLoadCustomEvent;
	}

	// Fire event
	if (document.createEvent) {
		document.dispatchEvent(evt); // Regular browser
	} else {
		document.fireEvent(evt.eventType, evt); // IE 7-8
	}
}
