var req;
var pause = "false";

function getXMLHTTPObject() 
{
    if (window.XMLHttpRequest) {
        xmlHttpObject = new XMLHttpRequest();
    } 
    else if (window.ActiveXObject) {
        xmlHttpObject = new ActiveXObject("Microsoft.XMLHTTP");
    }
    return xmlHttpObject;
}

function reload_page( version, svr ) {
	var affiliate = getParameter('affiliate');
	var cpu = getParameter('cpu');
	var bw = getParameter('bw');
	var client = getParameter('cl');
	var signed = getParameter('signed');
	var array = new Array();
	if (version != null) {
		array = version.split(',');
	}
	var paramString = '?';
	
	if (array[0] != "" && array[0] != null)
		paramString = paramString + '&v=' + array[0];
	if (array[1] != "" && array[1] != null)
		paramString = paramString + '&p=' + array[1];
	if (array[2] != "" && array[2] != null)
		paramString = paramString + '&r=' + array[2];
	if (svr != "" && svr != null)
		paramString = paramString + '&s=' + svr;					
	if (affiliate != "" && affiliate != null)
		paramString = paramString + '&affiliate=' + affiliate;
	if (cpu != "" && cpu != null)
		paramString = paramString + '&cpu=' + cpu;
	if (bw != "" && bw != null)
		paramString = paramString + '&bw=' + bw;
	if (client != "" && client != null)
		paramString = paramString + '&cl=' + client;
	if (signed != "" && signed != null)
		paramString = paramString + '&signed=' + signed;
			
	if( svr != null && (version == "" || version == null) ) {
		window.location.replace(svr + paramString);
	}
	else {				
		window.location.replace('http://' + window.location.host + paramString);
	}				
}

function getParameter( param ) {  
	var regexS = "[\\?&]"+param+"=([^&#]*)";  
	var regex = new RegExp( regexS );  
	var results = regex.exec( window.location.href );  
	if( results == null )    
		return "";  
	else    
		return results[1];
}

function getServer() {
 	req = getXMLHTTPObject();
   	req.open('GET', 'http://' + window.location.host + '/PluraDistribution/PluraClientServer', true);
   	req.onreadystatechange = getServerCallback;
   	req.send(null);
}

function getServerCallback() {
    if (req.readyState == 4) {
        if (req.status == 200) {
        	pause = "false";
			reload_page(null, req.responseText);
        }
        else {
        	pause = "true";
        	setTimeout("getServer()",300000);
		}
	}
}

function getVersion( nodeType ) {
 	req = getXMLHTTPObject();
   	req.open('GET', 'http://' + window.location.host + '/Plura20091113/PluraClientVersion?nodeType=' + nodeType, true);
   	req.onreadystatechange = getVersionCallback;
   	req.send(null);
}

function getVersionCallback() {
    if (req.readyState == 4) {
        if (req.status == 200) {
        	var arr = new Array();
        	arr = req.responseText.split(',');
        	
        	if (arr.length == 3) {
	        	pause = "false";
				reload_page(req.responseText, getParameter('s'));
        	}
        	else {        		
	        	pause = "true";
				if (getParameter('signed') == '1') {
					setTimeout("getVersion('SJAVA')",300000);
				}
				else {
					setTimeout("getVersion('JAVA')",300000);
				}
        	}
        }
        else {
        	pause = "true";
			if (getParameter('signed') == '1') {
				setTimeout("getVersion('SJAVA')",300000);
			}
			else {
				setTimeout("getVersion('JAVA')",300000);
			}
		}
	}
}