var iTimeout;
var iTimeoutInterval;
var JoomlaLogin=0;
document.__ValJsLoaded = true;
function createReqObj(){
	var C=null;
	try 
	{
		C = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e)
	{
		try
		{
			C = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(sc)
		{
			C = null;
		}
	}
	if (!C && typeof XMLHttpRequest != "undefined"){
		C=new XMLHttpRequest();
	}
	return C;
}

function LoadUsingXMLHttpRequest(url)
{
	responseText = true;
	try {
  	var oXmlRequest ;
  	
  	oXmlRequest = createReqObj() ;
  	if (oXmlRequest == null) return false;

  	oXmlRequest.open( "GET", url, true) ;
  	oXmlRequest.send( null ) ;
  	
  	oXmlRequest.onreadystatechange = function () {
  		if (oXmlRequest.readyState == 4) 
		{
		   eval(oXmlRequest.responseText);
	

         
            
		
			
			
		}
  	}
  	return true;
  }catch(e) {
  	//alert('error loading using xmlhttprequest:'+e.toString());
  	result = false;
  }
  return result;
}

function LoadUsingXMLHttpRequest_noeval(url)
{
	responseText = true;
	try {
  	var oXmlRequest ;
  	
  	oXmlRequest = createReqObj() ;
  	if (oXmlRequest == null) return false;

  	oXmlRequest.open( "GET", url, true) ;
  	oXmlRequest.send( null ) ;
  	
  	oXmlRequest.onreadystatechange = function () {
  		if (oXmlRequest.readyState == 4) 
		{
		}
  	}
  	return true;
  }catch(e) {
  	//alert('error loading using xmlhttprequest:'+e.toString());
  	result = false;
  }
  	
  return result;
}

function LoadUsingJsHttpRequest(url) 
{
	result = true;
	try {
		with (document) {
			var e = createElement("script");
			e.type = "text/javascript";
			e.src = url;
			
			body.appendChild(e);
		}
	}catch(e) {	
		result = false;
	}
	
	return result;
}
function LoadUsingJsHttpRequest_eval(url) 
{
	result = true;
	try {
		with (document) {
			var e = createElement("script");
			e.type = "text/javascript";
			e.src = url;
			
			body.appendChild(e);
			
		
			eval(e);
		}
		
	}catch(e) {	
		result = false;
	}
	
	return result;
}


function printTimeOut() {
	iTimeout--;
	if (iTimeout == 0) {
		window.clearInterval(iTimeoutInterval);
		document.getElementById('OSScLoginForm').submit();
	}
	if (null != (	doc_login_error = document.getElementById('login_error'))) {
		doc_login_error.innerHTML += "<b>.</b>";	
	}
}

function onLoadDone() {
	window.clearInterval(iTimeoutInterval);
}

function ValidateLoginEx() {
	if(joomlalogin())
	{
		//return ValidateLogin();
	}
	return false;
}

function ValidateLogin(){
 	iTimeout = 10;
 	iTimeoutInterval = window.setInterval("printTimeOut()",1000);

	if (null != (	doc_login_error = document.getElementById('login_error'))) {
		doc_login_error.innerHTML = "<b>Checking login, please wait.. </b>";
	}
	if (null != (doc_login_button = document.getElementById('LoginButton'))) {
		doc_login_button.disabled = true;
	}
 	_username = escape(document.getElementById('f_username').value).replace(new RegExp('\\+','g'), '%2B');
	_password = escape(document.getElementById('f_password').value).replace(new RegExp('\\+','g'), '%2B');
	
	host = document.location.host;
 	//href = "http://"+host+"/oss_forms/users/login.php?ce=0&clogin=1&group=-1&FormID=1&username="+_username+"&password="+_password+"&method=jshttp&rand="+Math.random();
	
 	href = "http://www.ffl123.com/oss6/users/login.php?ce=0&group=-1&FormID=1&clogin=1&username="+_username+"&password="+_password+"&method=jshttp&rand="+Math.random();

  result = LoadUsingXMLHttpRequest(href);
  if (result == false) result = LoadUsingJsHttpRequest(href);
 
  return !result;
}
function utf8_encode ( argString ) {
    // Encodes an ISO-8859-1 string to UTF-8  
    // 
    // version: 909.322
    // discuss at: http://phpjs.org/functions/utf8_encode
    // +   original by: Webtoolkit.info (http://www.webtoolkit.info/)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: sowberry
    // +    tweaked by: Jack
    // +   bugfixed by: Onno Marsman
    // +   improved by: Yves Sucaet
    // +   bugfixed by: Onno Marsman
    // +   bugfixed by: Ulrich
    // *     example 1: utf8_encode('Kevin van Zonneveld');
    // *     returns 1: 'Kevin van Zonneveld'
    var string = (argString+''); // .replace(/\r\n/g, "\n").replace(/\r/g, "\n");

    var utftext = "";
    var start, end;
    var stringl = 0;

    start = end = 0;
    stringl = string.length;
    for (var n = 0; n < stringl; n++) {
        var c1 = string.charCodeAt(n);
        var enc = null;

        if (c1 < 128) {
            end++;
        } else if (c1 > 127 && c1 < 2048) {
            enc = String.fromCharCode((c1 >> 6) | 192) + String.fromCharCode((c1 & 63) | 128);
        } else {
            enc = String.fromCharCode((c1 >> 12) | 224) + String.fromCharCode(((c1 >> 6) & 63) | 128) + String.fromCharCode((c1 & 63) | 128);
        }
        if (enc !== null) {
            if (end > start) {
                utftext += string.substring(start, end);
            }
            utftext += enc;
            start = end = n+1;
        }
    }

    if (end > start) {
        utftext += string.substring(start, string.length);
    }

    return utftext;
}

function base64_encode (data) {
    // Encodes string using MIME base64 algorithm  
    // 
    // version: 909.322
    // discuss at: http://phpjs.org/functions/base64_encode
    // +   original by: Tyler Akins (http://rumkin.com)
    // +   improved by: Bayron Guevara
    // +   improved by: Thunder.m
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Pellentesque Malesuada
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // -    depends on: utf8_encode
    // *     example 1: base64_encode('Kevin van Zonneveld');
    // *     returns 1: 'S2V2aW4gdmFuIFpvbm5ldmVsZA=='
    // mozilla has this native
    // - but breaks in 2.0.0.12!
    //if (typeof this.window['atob'] == 'function') {
    //    return atob(data);
    //}
        
    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, enc="", tmp_arr = [];

    if (!data) {
        return data;
    }

    data = this.utf8_encode(data+'');
    
    do { // pack three octets into four hexets
        o1 = data.charCodeAt(i++);
        o2 = data.charCodeAt(i++);
        o3 = data.charCodeAt(i++);

        bits = o1<<16 | o2<<8 | o3;

        h1 = bits>>18 & 0x3f;
        h2 = bits>>12 & 0x3f;
        h3 = bits>>6 & 0x3f;
        h4 = bits & 0x3f;

        // use hexets to index into b64, and append result to encoded string
        tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
    } while (i < data.length);
    
    enc = tmp_arr.join('');
    
    switch (data.length % 3) {
        case 1:
            enc = enc.slice(0, -2) + '==';
        break;
        case 2:
            enc = enc.slice(0, -1) + '=';
        break;
    }

    return enc;
}

	
								 
function joomlalogin()
{
	juser =	document.getElementById('f_username').value;
	jpwd = document.getElementById('f_password').value;
	var href = 'http://www.ffl123.com/index.php?option=com_ffl&view=jlogin&username='+juser+'&password='+jpwd;
var req = new Request({
		
		url:href,

		onSuccess: function(txt){
			eval(txt);
			if(JoomlaLogin==1)
	{
			ValidateLogin();
	}
	else if(JoomlaLogin==0)
	{
		$('login_error').set('text', 'Login Failed.');
	}
	else if(JoomlaLogin==-1)
	{
		$('login_error').set('html', 'Your Subscription Expired click <a href="javascript:void(0)" onclick="return ValidateLogin();"> here</a> to renew.');
	}
		},

		// Our request will most likely succeed, but just in case, we'll add an
		// onFailure method which will let the user know what happened.
		onFailure: function(){
			$('login_error').set('text', 'Joomla Send Failed');
		}

	});
	
		req.send();
	
	return true;
	
}

function joomlalogout()
{
	var requrl = 'http://www.ffl123.com/index.php?option=com_user&task=logout';
	var req = new Request({
		
		url:requrl,

		onSuccess: function(txt){
			
		},

		// Our request will most likely succeed, but just in case, we'll add an
		// onFailure method which will let the user know what happened.
		onFailure: function(){
			$('login_error').set('text', 'Joomla Send Failed');
		}

	});
	
		req.send();
		
}

