﻿var isW3C = (document.getElementById) ? true : false
var isAll = (document.all) ? true : false

if(typeof (AC)==="undefined")
{
    AC={}
}
AC.Detector=
{
    getAgent:function()
    {
        return navigator.userAgent.toLowerCase()
    },
    isMac:function(B)
    {
        var A=B||this.getAgent();
        return !!A.match(/mac/i)
    },
    isWin:function(B)
    {
        var A=B||this.getAgent();
        return !!A.match(/win/i)
    },
    isWin2k:function(B)
    {
        var A=B||this.getAgent();
        return this.isWin(A)&&(A.match(/nt\s*5/i))
    },
    isWinVista:function(B)
    {
        var A=B||this.getAgent();return this.isWin(A)&&(A.match(/nt\s*6/i))
    },
    isWebKit:function(B)
    {
        if(this._isWebKit===undefined)
        {
            var A=B||this.getAgent();
            this._isWebKit=!!A.match(/AppleWebKit/i);
            this.isWebKit=function()
            {
                return this._isWebKit
            }
        }
        return this._isWebKit
    },
    isSafari2:function(C)
    {
        if(this._isSafari2===undefined)
        {
            if(!this.isWebKit())
            {
                this._isSafari2=false
            }
            else
            {
                var B=navigator.userAgent.toLowerCase();
                var A=parseInt(parseFloat(B.substring(B.lastIndexOf("safari/")+7)));
                this._isSafari2=(A>=419)
            }
            this.isSafari2=function()
            {
                return this._isSafari2
            }
        }
        return this._isSafari2
    },
    isOpera:function(B)
    {
        var A=B||this.getAgent();
        return !!A.match(/opera/i)
    },
    isIE:function(B)
    {
        var A=B||this.getAgent();
        return !!A.match(/msie/i)
    },
    isIEStrict:function(B)
    {
        var A=B||this.getAgent();
        return A.match(/msie/i)&&!this.isOpera(A)
    },
    isFirefox:function(B)
    {
        var A=B||this.getAgent();
        return !!A.match(/firefox/i)
    },
    isiPhone:function(B)
    {
        var A=B||this.getAgent();
        return this.isMobile(A)
    },
    isMobile:function(B)
    {
        var A=B||this.getAgent();
        return this.isWebKit(A)&&A.match(/Mobile/i)
    },
    isiTunesOK:function(B)
    {
        var A=B||this.getAgent();return this.isMac(A)||this.isWin2k(A)
    },
    isQTInstalled:function()
    {
        var A=false;
        if(navigator.plugins&&navigator.plugins.length)
        {
            for(var B=0;B<navigator.plugins.length;B++)
            {
                var C=navigator.plugins[B];
                if(C.name.indexOf("QuickTime")>-1)
                {
                    A=true;
                }
            }
        }
        else
        {
            if(typeof (execScript)!="undefined")
            {
                qtObj=false;
                execScript('on error resume next: qtObj = IsObject(CreateObject("QuickTimeCheckObject.QuickTimeCheck.1"))',"VBScript");
                A=qtObj
            }
        }
        return A
    },
    getQTVersion:function()
    {
        var A="0";
        if(navigator.plugins&&navigator.plugins.length)
        {   
            for(var C=0;C<navigator.plugins.length;C++)
            {
                var D=navigator.plugins[C];
                var B=D.name.match(/quicktime\D*([\.\d]*)/i);
                if(B&&B[1]){A=B[1]}
            }
        }
        else
        {
            if(typeof (execScript)!="undefined")
            {
                ieQTVersion=null;
                execScript('on error resume next: ieQTVersion = CreateObject("QuickTimeCheckObject.QuickTimeCheck.1").QuickTimeVersion',"VBScript");
                if(ieQTVersion){A=(ieQTVersion>>24).toString(16)}
            }
        }
        return A
    },
    isQTCompatible:function(C,E)
    {
        function B(G,I)
        {
            var F=parseInt(G[0],10);
            if(isNaN(F)){F=0}
            var H=parseInt(I[0],10);
            if(isNaN(H)){H=0}
            if(F===H)
            {
                if(G.length>1)
                {
                    return B(G.slice(1),I.slice(1))
                }
                else
                {
                    return true
                }
            }
            else
            {
                if(F<H)
                {
                    return true
                }
                else
                {
                    return false
                }
            }
        }
        var D=C.split(/\./);
        var A=E?E.split(/\./):this.getQTVersion().split(/\./);
        return B(D,A)
    },
    isValidQTAvailable:function(A)
    {
        return this.isQTInstalled()&&this.isQTCompatible(A)
    }
};

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.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{		// for Google Chrome Browser
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{
			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"
		}
	]
};

SSElement = 
{
    GetElementObject : function(elemID)
    {
        var elem = (isW3C) ? document.getElementById(elemID) : ((isAll) ? document.all[elemID] : null);
        return elem;
    },
    CreateSelectOption : function(ObjSelect,strOptText,strOptValue)
    {
        BrowserDetect.init();
        var newOpt = document.createElement("option");
        newOpt.value = strOptValue;
        newOpt.text = strOptText;
        //alert(BrowserDetect.browser);
        if(BrowserDetect.browser == "Explorer" || BrowserDetect.browser == "Opera" || BrowserDetect.browser == "Firefox" || BrowserDetect.browser == "Safari" || BrowserDetect.browser == "Chrome" ) // For Internet Explorer,Mozilla,Opera,Netscape,Safari
        {
            ObjSelect.options.add(newOpt);
        }
    },
    ClearFileUpload : function(control)
    {
        BrowserDetect.init();
        if(BrowserDetect.browser == "Explorer" || BrowserDetect.browser == "Chrome")
        {
            var who=document.getElementsByName(control)[0];
            var who2= who.cloneNode(false);
            who2.onchange= who.onchange;
            who.parentNode.replaceChild(who2,who);
        }
        else if(BrowserDetect.browser == "Firefox")
        {
            var whoF = document.getElementById(control);
            whoF.value = "";
        }
        else if(BrowserDetect.browser == "Opera")
        {
            //var who = document.getElementById(control);
            //alert(document.getElementsByName(control)[0].value);
            //document.getElementsByName(control)[0].text = "";
            //document.getElementsByName(control).item(0).innerText;
        }
    },
    RestrictJSAccess : function(AccpDomainArr)
    {
        //Beginning of "test.js" file
        var accepted_domains;
        accepted_domains = AccpDomainArr;
        //var accepted_domains=new Array("wsabstract.com","javascriptkit.com")
        
        var domaincheck=document.location.href //retrieve the current URL of user browser
        var accepted_ok=false //set acess to false by default

        if (domaincheck.indexOf("http")!=-1)
        { //if this is a http request
            for (r=0;r<accepted_domains.length;r++)
            {
                if (domaincheck.indexOf(accepted_domains[r])!=-1)
                { //if a match is found
                    accepted_ok=true; //set access to true, and break out of loop
                    break;
                }
            }
        }
        else
            accepted_ok=true;

        if (!accepted_ok)
        {
            alert("You\'re not allowed to directly link to this .js file on our server!");
            history.back(-1);
        }
    },
    RestrictRightClick : function(AlertMessage)
    {
        //message = "Right Click Not Allowed";
        message = AlertMessage;
        function NoRightClick()
        {
           //if(BrowserDetect.browser == "Explorer" || BrowserDetect.browser == "Opera" || BrowserDetect.browser == "Firefox" || BrowserDetect.browser == "Safari" || BrowserDetect.browser == "Chrome" ) // For Internet Explorer,Mozilla,Opera,Netscape,Safari
           if( ( (BrowserDetect.browser == "Explorer") && (event.button > 1) )  || ( (BrowserDetect.browser == "Firefox") &&(b.which > 1) ) ) // For Internet Explorer,Netscape
           {
                alert(message);
                return false;
           }
           else
           {
                return true;
           }
        }
        document.onmousedown = NoRightClick;
    },
    RestrictImageRightClick : function(AlertMessage)
    {
        var alert_message=AlertMessage;
        if (document.all)
            document.onmousedown=ImageRightClick(alert_message);
        else if (document.getElementById)
            document.onmouseup=ImageRightClick(alert_message);
        else if (document.layers)
            associateimages(alert_message);
    }
};


function ImageRightClick(strMsg) 
{
    if (document.all) 
    {
        if (event.button==2||event.button==3) 
        {
            if (event.srcElement.tagName=="IMG")
            {
                alert(strMsg);
                return false;
            }
        }
    }
    else if (document.layers) 
    {
        if (e.which == 3) 
        {
            alert(strMsg);
            return false;
        }
    }
    else if (document.getElementById)
    {
        if (e.which==3&&e.target.tagName=="IMG")
        {
            alert(strMsg);
            return false;
        }
    }
}

function associateimages(strMsg)
{
    for(i=0;i<document.images.length;i++)
        document.images[i].onmousedown=ImageRightClick(strMsg);
}



SSGrid = 
{
    SelectAllCheckBox : function(GridID,HdrChkBoxID,ChkBoxColNo)
    {
        //Get Reference Of GridView Control
        var objGrid = SSElement.GetElementObject(GridID);
        //Variable to contain the Checkbox Cell of the grid
        var objCell;
        
        var chkHeader = SSElement.GetElementObject(HdrChkBoxID);
        if(chkHeader !=null)
        {
            if (objGrid.rows.length > 0)
            {
                //Loop starts from 1. rows[0] points to the header.
                for (i=1; i<objGrid.rows.length; i++)
                {
                    //get the reference of CheckBox column
                    objCell = objGrid.rows[i].cells[ChkBoxColNo];
                    
                    //loop according to the number of childNodes in the cell
                    for (j=0; j<objCell.childNodes.length; j++)
                    {           
                        //if childNode type is CheckBox                 
                        if (objCell.childNodes[j].type =="checkbox")
                        {
                        //assign the status of the Select All checkbox to the cell checkbox within the grid
                            objCell.childNodes[j].checked = chkHeader.checked;
                        }
                    }
                }
            }
        }
        else
        {
            alert("Header checkbox not initialized");
        }
    }
};
