var AC_FL_RunContent = 0; 
var DetectFlashVer = 0;

// Set required Flash Player version
var requiredMajorVersion = 9;
var requiredMinorVersion = 0;
var requiredRevision = 0;
    
// Disable back button
//history.forward();

var BrowserDetect = {
    init: function () {
        this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
        this.version = this.searchVersion(navigator.userAgent)
            || this.searchVersion(navigator.appVersion)
            || "an unknown version";
        this.OS = this.searchString(this.dataOS) || "an unknown OS";
    },
    searchString: function (data) {
        for (var i=0;i<data.length;i++) {
            var dataString = data[i].string;
            var dataProp = data[i].prop;
            this.versionSearchString = data[i].versionSearch || data[i].identity;
            if (dataString) {
                if (dataString.indexOf(data[i].subString) != -1)
                    return data[i].identity;
            }
            else if (dataProp)
                return data[i].identity;
        }
    },                  
    searchVersion: function (dataString) {
        var index = dataString.indexOf(this.versionSearchString);
        if (index == -1) return;
        return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
    },              
    dataBrowser: [
        {   string: navigator.userAgent,
            subString: "OmniWeb",
            versionSearch: "OmniWeb/",
            identity: "OmniWeb"
        },
        {
            string: navigator.vendor,
            subString: "Apple",
            identity: "Safari"
        },
        {
            prop: window.opera,
            identity: "Opera"
        },
        {
            string: navigator.vendor,
            subString: "iCab",
            identity: "iCab"
        },
        {
            string: navigator.vendor,
            subString: "KDE",
            identity: "Konqueror"
        },
        {
            string: navigator.userAgent,
            subString: "Firefox",
            identity: "Firefox"
        },
        {
            string: navigator.userAgent,
            subString: "Chrome",
            identity: "Chrome"
        },
        {
            string: navigator.vendor,
            subString: "Camino",
            identity: "Camino"
        },
        {       // for newer Netscapes (6+)
            string: navigator.userAgent,
            subString: "Netscape",
            identity: "Netscape"
        },
        {
            string: navigator.userAgent,
            subString: "MSIE",
            identity: "Explorer",
            versionSearch: "MSIE"
        },
        {
            string: navigator.userAgent,
            subString: "Gecko",
            identity: "Mozilla",
            versionSearch: "rv"
        },
        {       // for older Netscapes (4-)
            string: navigator.userAgent,
            subString: "Mozilla",
            identity: "Netscape",
            versionSearch: "Mozilla"
        }
    ],
    dataOS : [
        {
            string: navigator.platform,
            subString: "Win",
            identity: "Windows"
        },
        {
            string: navigator.platform,
            subString: "Mac",
            identity: "Mac"
        },
        {
            string: navigator.platform,
            subString: "Linux",
            identity: "Linux"
        }
    ]

};

BrowserDetect.init();

function checkOS(){
/*@cc_on
   @if (@_win32)
      return true;
   @else
      return false;
   @end
@*/
}

function DetectInvalidTen()
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];
		
        // Check to see if Flash version is between 10.0.0 and 10.0.22
		if (versionMajor != parseFloat(10)) 
			return false;
		else 
		{
			if (versionMinor != parseFloat(0))
				return false;
			else
			{
				if (versionRevision >= parseFloat(22))
					return false;
			}
		}
		return true;
	}
}

function checksys() 
{
    //alert('checksys');
    /*var supportedOS = (navigator.userAgent.indexOf("Windows NT 6.0") > -1 
       || navigator.userAgent.indexOf("Windows NT 5.1") > -1
       || navigator.userAgent.indexOf("Windows NT 5.0") > -1
       || navigator.userAgent.indexOf("PPC Mac OS X 10.3.9") > -1
       || navigator.userAgent.indexOf("PPC Mac OS X 10.4") > -1
       || navigator.userAgent.indexOf("PPC Mac OS X 10_4_11") > -1
       || navigator.userAgent.indexOf("Intel Mac OS X") > - 1);*/
      
    // Check browser
    //alert("BROWSER: " + BrowserDetect.browser);
    var supportedBrowser = ((BrowserDetect.browser == "Explorer" && parseInt(BrowserDetect.version) >= 6)
        || (BrowserDetect.browser == "Firefox" && parseInt(BrowserDetect.version) >= 2)
        || (BrowserDetect.browser == "Safari") || (BrowserDetect.browser == "Chrome"))
     
    if (!supportedBrowser)
    {
        // show error
        document.getElementById("validateMessages").style.display = "block";
        document.getElementById("winie32Fail").style.display = "block";
        document.getElementById("launch").style.display = "none";
        return false;
    } 
    
    //alert('Browser passed. Testing Flash Player...');
    
    // Browser is OK; check for Flash Player 9+
    var flashPlayerNinePlus = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
    var flashplayerOK;
    
    // If version is greater than 9+, check to see if it is an invalid version of Flash 10 (before 10.0.22).
    if (flashPlayerNinePlus)
    	flashPlayerOK = !DetectInvalidTen();
    else flashPlayerOK = flashPlayerNinePlus;
        
    //var flashPlayerOK = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
    //var flashDebug = 'Testing for Flash Player version ' + requiredMajorVersion + '.' + requiredMinorVersion + '.' + requiredRevision + '...';
    
    if (!flashPlayerOK)
    {
        document.getElementById("validateMessages").style.display = "block";
        document.getElementById("flashFail").style.display = "block";
        document.getElementById("launch").style.display = "none";
        //alert(flashDebug + '\nFailed. You do not have the correct Flash Player.');
        return false;
    }
    //else { alert(flashDebug + '\nPassed. Flash Player version is OK.'); }
    
    //alert('Flash Player passed. Testing OS...');
    
    // Broswer OK, Flash Player OK, test for supported OS platforms
    var supportedOS = (navigator.userAgent.indexOf("Win") > -1 || navigator.userAgent.indexOf("Intel Mac") > -1);

    if (!supportedOS)
    {
        if (navigator.userAgent.indexOf("Mac") > -1)
        {
        	// show note about 10.3.9 or later.
        	document.getElementById("osx1039Note").style.display = "block";
        	document.getElementById("winie32Warning").style.display = "none";
	        document.getElementById("warningMessages").style.display = "block";
	        document.getElementById("launch").style.display = "none";
	        return false;
        }
        else
        {
	        // show error
	        document.getElementById("validateMessages").style.display = "block";
	        document.getElementById("winieFail").style.display = "block";
	        document.getElementById("launch").style.display = "none";
	        return false;
	    }
    }
    
    //alert('OS passed. Testing for 64-bit OS (for warning)...');
    
    // OS is OK, browser is OK, Flash Player is OK; check 64-bit system.
    if(navigator.userAgent.indexOf("WOW64") != -1) 
    {
        document.getElementById("winie32Warning").style.display = "block";
        document.getElementById("osx1039Note").style.display = "none";
        document.getElementById("warningMessages").style.display = "block";
        document.getElementById("launch").style.display = "none";
        return false;
    }
    
    //alert('Everything passed. All is well.');
    
    // Everything is OK. Do nothing.
    document.getElementById("launch").style.display = "block";
    return true;    
}  

function checksys_anark() {

    var ok = true;
    var warn = false;
    var flashversion = '0';

    if(BrowserDetect.OS != 'Windows'
       || BrowserDetect.browser != "Explorer"
       || parseInt(BrowserDetect.version) < 6) {
        document.getElementById("winieFail").style.display = "block";
        ok = false;
    }
    
    if(ok) {
        document.getElementById("launch").style.display = "block";
        
        /* Check the user's version of Flash */
        /* modified to support flash version 10 */
        try {
            // version will be set for 7.X or greater players
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
            flashversionarray = axo.GetVariable("$version").split(",");
            flashversion = flashversionarray[0].split(" ");
        } catch (e) {
            flashversion[1] = '0';
        }
        
        
        /* If flashversion is not '8' or '9', then either Flash isn't installed or the user's version of Flash is too old. */
        /* fixed for 10 */
        if (flashversion[1] != '9' && flashversion[1] != '8' && flashversion[1] != '10') {
            document.getElementById("flashFail").style.display = "block";
            ok = false;
        }
    }
    
    if(ok) {
        /* Check if the user is running IE32 on a 64 bit OS */
        if(navigator.userAgent.indexOf("WOW64") != -1) {
            document.getElementById("winie32Warning").style.display = "block";
            ok = false;
            warn = true;
        }
    }
    
    if(ok) {
        /* Check if the user is running a 32 bit OS */
        if(!checkOS()) {
            document.getElementById("winie32Fail").style.display = "block";
            ok = false;
        }
    }
    
    /* If ok and warn are both false, show the error messages */
    if (!ok && warn == false) {
    
        document.getElementById("validateMessages").style.display = "block";
        document.getElementById("launch").style.display = "none";
    }
    
    /* If just ok is false, show the warning messages */
    else if (!ok) {
    
        document.getElementById("warningMessages").style.display = "block";
        document.getElementById("launch").style.display = "none";
        
    }/*else{
        if(popUpsBlocked){
            disableButton( document.getElementById('launchvb') );
            document.getElementById('launchVBMsg').innerHTML="We have detected that you are using popup blocking software.Please enable it to launch Visible Body.";
            alert('22We have detected that you are using popup blocking software.\n Please enable it to launch Visible Body.');
               
        }
    }*/
    
}  


function trackActivity(activityId){

var http = false;

if(navigator.appName == "Microsoft Internet Explorer") {
        http = new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        http = new XMLHttpRequest();
    }
    http.open("GET", contexRoot + "/activity?typeId="+activityId);
    
    http.onreadystatechange=function() {
        if(http.readyState == 4) {
            
        }
    }
    http.send(null);

}

function logOut() { 
    
    var session = sessid == "" && !enabled ? "" : ";jsessionid="+sessid;
    var sessionact = sessid == "" && !enabled ? "" : "&jsessionid="+sessid;
    var http = false;
    if(navigator.appName == "Microsoft Internet Explorer") {
        http = new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        http = new XMLHttpRequest();
    }
    http.open("GET", contexRoot + "/activity?typeId=44"+sessionact);
    http.onreadystatechange=function() {
        if(http.readyState == 4) {
        	var currentURL = window.location;
        	var urlString = "http://"+currentURL.host+contexRoot + "/j_acegi_logout"+session;
            window.location = urlString;
        }
    }
    http.send(null);
}

function GetXmlHttpObject()
{
    // code for Mozilla, etc.
    if (window.XMLHttpRequest) xmlhttp = new XMLHttpRequest();
    // code for IE
    else if (window.ActiveXObject) xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
    
    return xmlhttp;
}

function startVB(uri){

    var url_str= contexRoot + "/activity?uri=" + uri + "&typeId=45";
    
    xmlhttp=GetXmlHttpObject();
    if (xmlhttp != null) 
    {
        xmlhttp.open("GET", url_str + "?sid=" + Math.random(), true);
        xmlhttp.send();
    }
    else alert('Sorry, your browser does not support XMLHTTP. Try enabling XMLHTTP in your advanced options.');
    
}

var checkedItems;

function isSelected(itemName){

    for(x=0;x<checkedItems.length;x++){
    
        if(checkedItems[x] != '' && checkedItems[x] == itemName){
            return true;
        }
    }
    
    return false;
}


function reSetCheckBoxVal(formElements,checkedItemString,itemFirstName){
    
    checkedItems = checkedItemString.split(",");
    
    for(i=0;i<formElements.length;i++){
    
        if(formElements[i].type == "checkbox" && formElements[i].name.indexOf(itemFirstName) > -1){
        
            formElements[i].checked = isSelected(formElements[i].name);
        }
    }
}


function setOpenedDivs(){

    var divName = document.getElementById("userEdit_pwd");
    
        if( divName.style.display == "block"){
            document.getElementById("passwordEdited").value = "yes";
        }
}

function validateLength(obj,maxLength){
    
    if( obj.value.length > maxLength ){
        obj.value = obj.value.substring(0,maxLength);
        alert("You have reached the maximum character limit of the message.");
    }
}

function asynchronousCall(pageName){
    var http = false;
    
    if(navigator.appName == "Microsoft Internet Explorer") {
      http = new ActiveXObject("Microsoft.XMLHTTP");
    } else {
      http = new XMLHttpRequest();
    }
    
    http.open("GET", pageName);
    http.onreadystatechange=function() {
      if(http.readyState == 4) {
        //alert(http.responseText);
      }
    }
    http.send(null);
}

function enableButton() {
        
    <!-- Below functionality only works if the parent window exists and it should have a button called "launchvb" -->       
     if( !window.opener.closed && window.opener.launchvb ){
     
        var button = window.opener.launchvb;
        var warnbutton = window.opener.launchvbwarning;         
        
            if (window.opener.winie32Warning.style.display == "block")
            {
                 window.opener.launch.style.display="none";
                 window.opener.launchVBMsg.style.display="none";
                 window.opener.warningMessages.style.display="block";
            }
            else if( button ){
                 if (document.all || document.getElementById){
                       button.disabled = false;
                
                 }else if (button) {
                       button.onclick = button.oldOnClick;
                       button.value = button.oldValue;
                }
        
                 button.style.cursor = "pointer";
                 button.alt="Launch the Visible Body!";
                 window.opener.launchVBMsg.style.display="none";
                 window.opener.launchvb.src="images/launch_btn.jpg"
            }
    }
    trackActivity(46);
    asynchronousCall("VbSupport?vbStatus=closed");
}



function enableButtonSelf() {
        
            
    
     
        var button = self.launchvb;
        var warnbutton = self.launchvbwarning;          
        
            if (self.winie32Warning.style.display == "block")
            {
                 self.launch.style.display="none";
                 self.launchVBMsg.style.display="none";
                 self.warningMessages.style.display="block";
            }
            else if( button ){
                 if (document.all || document.getElementById){
                       button.disabled = false;
                
                 }else if (button) {
                       button.onclick = button.oldOnClick;
                       button.value = button.oldValue;
                }
        
                 button.style.cursor = "pointer";
                 button.alt="Launch the Visible Body!";
                 self.launchVBMsg.style.display="none";
                 self.launchvb.src="images/launch_btn.jpg"
            }
    
    trackActivity(46);
    asynchronousCall("VbSupport?vbStatus=closed");
}

function loadNotifier(type){
    var http;
    if(navigator.appName == "Microsoft Internet Explorer") {
          http = new ActiveXObject("Microsoft.XMLHTTP");
        } else {
          http = new XMLHttpRequest();
        }
    
    var query;
    if (type==1){ // page
        query = "/usageTracker?type=pageLoad&sid=";
    }
    else if (type==2){ // popup
        query = "/usageTracker?type=popupLoad&url=" + window.location.href + "&sid=";       
    }
    else{
        query = "/usageTracker?type=BADLOADNOTIFY&sid=";
    }
    
    http.open("GET", contexRoot + query + Math.random());
    http.send(null);
}

function unloadNotifier(type){
    var httpObj;
    if(navigator.appName == "Microsoft Internet Explorer") {
        httpObj = new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        httpObj = new XMLHttpRequest();
    }
    
    var unloadQuery;
    if (type==1){ // page
        unloadQuery = "/usageTracker?type=pageunload&sid=";
    }
    else if (type==2){ // popup
        unloadQuery = "/usageTracker?type=popupUnload&sid=";        
    }
    else{
        unloadQuery = "/usageTracker?type=BADUNLOADNOTIFY&sid=";
    }

    httpObj.open("GET", contexRoot + unloadQuery + Math.random());
    httpObj.send(null);
}

function loadHtmlNotifier(type){
    var http;
    if(navigator.appName == "Microsoft Internet Explorer") {
          http = new ActiveXObject("Microsoft.XMLHTTP");
        } else {
          http = new XMLHttpRequest();
        }
    
    var query;
    if (type==1){ // page
        query = 'http://' + document.domain + ':' + location.port + '/usageTracker?type=pageLoad&sid=';
    }
    else if (type==2){ // popup
        query = 'http://' + document.domain + ':' + location.port + '/usageTracker?type=popupLoad&url=' + window.location.href + '&sid=';       
    }
    else{
        query = 'http://' + document.domain + ':' + location.port + '/usageTracker?type=BADLOADNOTIFY&sid=';
    }
    
    http.open("GET", query + Math.random());
    http.send(null);
}

function unloadHtmlNotifier(type){
    var httpObj;
    if(navigator.appName == "Microsoft Internet Explorer") {
        httpObj = new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        httpObj = new XMLHttpRequest();
    }
    
    var unloadQuery;
    if (type==1){ // page
        unloadQuery = 'http://' + document.domain + ':' + location.port + '/usageTracker?type=pageunload&sid=';
    }
    else if (type==2){ // popup
        unloadQuery = 'http://' + document.domain + ':' + location.port + '/usageTracker?type=popupUnload&sid=';        
    }
    else{
        unloadQuery = 'http://' + document.domain + ':' + location.port + '/usageTracker?type=BADUNLOADNOTIFY&sid=';
    }

    httpObj.open("GET", unloadQuery + Math.random());
    httpObj.send(null);
}

function testee(){
	alert("flag");
}

function logoutAfterSubscription(){
    
    var httpObj;
    var session = sessid == "" && !enabled ? "" : ";jsessionid="+sessid;
    
    if(navigator.appName == "Microsoft Internet Explorer") {
        httpObj = new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        httpObj = new XMLHttpRequest();
    }
    
    window.location = contexRoot + "/j_acegi_logout"+session;    
}

function get_cookie(Name) {
  var search = Name + "="
  var returnvalue = "";
  if (document.cookie.length > 0) {
    offset = document.cookie.indexOf(search)
    // if cookie exists
    if (offset != -1) { 
      offset += search.length
      // set index of beginning of value
      end = document.cookie.indexOf(";", offset);
      // set index of end of cookie value
      if (end == -1) end = document.cookie.length;
      returnvalue=unescape(document.cookie.substring(offset, end))
      }
   }
  return returnvalue;
}

function reset_sessioncookie() {
	//var name = "JSESSIONID";
	//var jsesid_val = get_cookie( name );
	//createCookie(name,"",-1);
	//createCookie(name,jsesid_val,30);
}

function createCookie(name,value,mins) {
	if (mins) {
		var date = new Date();
		date.setTime(date.getTime()+(mins*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}
