﻿Syncfusion_BrowsersCompatibility_version = "1.0";//////////////////////////////////////
//////////////////////////////////////
if( document.all && !document.getElementById ) 
{
document.getElementById = function( id ) 
{
return document.all[ id ];}
}
if( window.navigator == null )
{
window.navigator = new object();window.navigator.appName = "UNKNOWN BROWSER";}
//////////////////////////////////////
//////////////////////////////////////
function BrowsersCompatibility()
{
var DEF_BROWSER_NC_MESS = "This type of browser is not supported yet!";var DEF_BROWSER_NS6 = 0;var DEF_BROWSER_IE5 = 1;var DEF_BROWSER_OPERA = 2;var DEF_BROWSER_UNKNOWN = 3;var DEF_LEFT = 37;var DEF_RIGHT = 39;var DEF_UP = 38;var DEF_DOWN = 40;var DEF_PGUP = 33;var DEF_PGDOWN = 34;var DEF_HOME = 36;var DEF_END = 35;var DEF_TAB = 9;var DEF_MINUS = 45;var browserType;//////////////////////////////////////
//////////////////////////////////////
switch( window.navigator.appName )
{
case "Microsoft Internet Explorer": 
if( navigator.userAgent.indexOf( 'Opera' ) != -1 )
browserType = DEF_BROWSER_OPERA;else
browserType = DEF_BROWSER_IE5;break;case "Netscape": 
browserType = DEF_BROWSER_NS6;break;default:
browserType = DEF_BROWSER_UNKNOWN;break;}
//////////////////////////////////////////
this.isPasteKey = function( e )
{
switch( browserType )
{
case DEF_BROWSER_NS6:
case DEF_BROWSER_OPERA:
return ( e.ctrlKey && ( (e.which == 86) || (e.which == 118) ) );break;case DEF_BROWSER_IE5:
var reKeyboardChars = /[\x03\x18]/;return reKeyboardChars.test( e.keyCode );break;default: 
return null;}
}
//////////////////////////////////////
this.getClipboardData = function()
{
switch( browserType )
{
case DEF_BROWSER_OPERA:
case DEF_BROWSER_NS6:
try
{
window.netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");}
catch( e )
{
alert( "includes failed with exception: " + e );}
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);if (!clip) return;var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);if (!trans) return;trans.addDataFlavor('text/unicode');clip.getData(trans,clip.kGlobalClipboard);var str = new Object();var len = new Object();try { trans.getTransferData('text/unicode',str,len);}
catch(error) { return;}
if( str ) 
{
if (Components.interfaces.nsISupportsWString)
str = str.value.QueryInterface(Components.interfaces.nsISupportsWString);else if (Components.interfaces.nsISupportsString)
str = str.value.QueryInterface(Components.interfaces.nsISupportsString);else
str = null;}
if (str) return(str.data.substring(0,len.value / 2));return null;case DEF_BROWSER_IE5:
return window.clipboardData.getData( "TEXT" );default: 
return null;}
}
////////////////////////////////////////
this.specKeyAndNetscape = function( ch, e, arrowsLocked )
{
if ( browserType != DEF_BROWSER_NS6 ) return false;if ( 
( e.ctrlKey && ( ( ch == 67 ) || ( ch == 99 ) || ( ch == 45 ) ) ) 
)
{ 
return true;}
if ( arrowsLocked )
{
return ( 
( ch == DEF_PGUP ) ||
( ch == DEF_PGDOWN ) ||
( ch == DEF_HOME ) ||
( ch == DEF_END ) ||
( ch == DEF_TAB ) );}
else
{
return ( 
( ch == DEF_LEFT ) ||
( ch == DEF_RIGHT ) ||
( ch == DEF_DOWN) ||
( ch == DEF_UP ) ||
( ch == DEF_PGUP ) ||
( ch == DEF_PGDOWN ) ||
( ch == DEF_HOME ) ||
( ch == DEF_END ) ||
( ch == DEF_TAB ) );}
}
//////////////////////////////////////
this.getKeyCode = function( e )
{
var nKeyCode = null;switch( browserType )
{
case DEF_BROWSER_OPERA:
case DEF_BROWSER_NS6: 
nKeyCode = e.which;break;case DEF_BROWSER_IE5: 
nKeyCode = e.keyCode;break;default : 
break;}
return nKeyCode;}
//////////////////////////////////////
this.shiftKeyPressed = function( e )
{
return e.shiftKey;}
//////////////////////////////////////
this.ctrlKeyPressed = function( e )
{
return e.ctrlKey ;}
//////////////////////////////////////
this.altKeyPressed = function( e )
{
return e.altKey;}
//////////////////////////////////////
this.getSelectedLength = function( element )
{
switch( browserType ) 
{
case DEF_BROWSER_IE5: 
return document.selection.createRange().text.length;case DEF_BROWSER_OPERA:
case DEF_BROWSER_NS6: 
return element.selectionEnd - element.selectionStart;default:
return null;}
return null;}
this.getSelectedText = function( element )
{
var sSelectedText = null;switch( browserType ) 
{
case DEF_BROWSER_IE5:
sSelectedText = document.selection.createRange().text;break;case DEF_BROWSER_OPERA: 
case DEF_BROWSER_NS6: 
sSelectedText = element.value.substring( element.selectionStart, element.selectionEnd );break;default:
break;}
return sSelectedText;}
////////////////////////////////////////
////////////////////////////////////////
this.getCaretPos = function( element )
{
switch( browserType ) 
{
case DEF_BROWSER_IE5: 
var tr = document.selection.createRange();tr.moveStart( "textedit", -1 );element.caretPos = tr.text.length;return element.caretPos;case DEF_BROWSER_OPERA:
case DEF_BROWSER_NS6: 
element.caretPos = element.selectionEnd;return element.caretPos;default:
alert( DEF_BROWSER_NC_MESS + "getCaretPos" );}
return null;}
///////////////////////////////////////////
this.moveCaret = function( element, offset )
{
switch( browserType ) 
{
case DEF_BROWSER_IE5:
var tr = document.selection.createRange();tr.move( "textedit", -1 );if( offset != 0 ) tr.move( "character", offset );tr.select();break;case DEF_BROWSER_OPERA: 
case DEF_BROWSER_NS6: 
element.setSelectionRange( offset, offset );break;default:
alert( DEF_BROWSER_NC_MESS + "moveCaret" );}
return null;}
///////////////////////////////////////////
this.insertText = function( element, offset )
{ 
switch( browserType ) 
{
case DEF_BROWSER_IE5: 
var tr = document.selection.createRange();tr.text = str;break;case DEF_BROWSER_OPERA:
case DEF_BROWSER_NS6: 
var start = element.selectionStart;var end = element.selectionEnd;element.value = element.value.substr( 0, start ) + str + 
element.value.substr( end );element.setSelectionRange( end, end );break;default:
alert( DEF_BROWSER_NC_MESS + "insertText" );}
return null;}
////////////////////////////////////////////
this.removeText = function( element, length, offset )
{
switch( browserType ) 
{
case DEF_BROWSER_IE5: 
var tr = document.selection.createRange();tr.move( "character", offset );tr.moveEnd( "character", length );tr.text = "";break;case DEF_BROWSER_OPERA: 
case DEF_BROWSER_NS6: 
element.value = element.value.substr( 0, offset ) + 
element.value.substr( offset + length )
break;default:
alert( DEF_BROWSER_NC_MESS + "removeText" );}
return null;}
//////////////////////////////////////////////
this.updateText = function( element, str, offset )
{
switch( browserType ) 
{
case DEF_BROWSER_IE5: 
var tr = document.selection.createRange();tr.move( "character", offset );tr.moveEnd( "character", str.length );tr.text = str;if( offset > 0 )
{
element.focus();var tr = document.selection.createRange();tr.move( "character", offset + str.length );tr.select();}
break;case DEF_BROWSER_OPERA:
case DEF_BROWSER_NS6: 
if ( offset==0 )
{
element.value = str
}
else
{
element.value = element.value.substr( 0, offset-1 ) + str;element.setSelectionRange( offset, element.value.length );} 
break;default:
alert( DEF_BROWSER_NC_MESS + "updateText" );}
return null;}
////////////////////////////////////////////////////////
this.getSelectText = function( element )
{
var sRes = null;switch( browserType ) 
{
case DEF_BROWSER_IE5: 
sRes = document.selection.createRange().text;break;case DEF_BROWSER_OPERA: 
case DEF_BROWSER_NS6: 
sRes = element.substring(element.selectionStart, element.selectionEnd);break;default:
alert( DEF_BROWSER_NC_MESS + "getSelectText" );}
return sRes;}
//////////////////////////////////////////////////////////
this.updateSelectText = function( element, str )
{
switch( browserType ) 
{
case DEF_BROWSER_IE5: 
var tr = document.selection.createRange();tr.text = str;break;case DEF_BROWSER_OPERA:
case DEF_BROWSER_NS6:
if ( element.selectionStart!=element.selectionEnd )
{
var start = element.selectionStart;var end = element.selectionEnd;element.value = element.value.substr(0,start) + str + element.value.substr(end);element.setSelectionRange(end,end);}
break;default:
alert( DEF_BROWSER_NC_MESS + "updateSelectText" );break;}
return null;}
///////////////////////////////////////////////////////////
this.selectText = function( element, pos, length )
{
switch( browserType ) 
{
case DEF_BROWSER_IE5: 
var tr = document.selection.createRange();tr.move( "textedit", -1 );tr.move( "character", pos );tr.moveEnd( "character", length );tr.select();break;case DEF_BROWSER_OPERA:
case DEF_BROWSER_NS6: 
element.setSelectionRange( pos, pos+length );break;default:
alert( DEF_BROWSER_NC_MESS + "selectText" );break;}
}
//////////////////////////////////////////
//////////////////////////////////////////
}

Common={
};

if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();