﻿var GridViewOriginalRowBackColor;
var UnhandledExceptionMessage = "عملیات به علت خطا صورت نگرفت !";

var imageButtonPauseID;
var imageButtonPalyID;

var imageButtonSoundID;
var imageButtonMuteID;


function arrayInsertAt(array, index, object)
{    
    if (index > -1 && index <= array.length ) 
        array.splice(index, 0, object);
}
     
function SetMouseOverColor(element) 
{
    GridViewOriginalRowBackColor = element.style.backgroundColor;
    
    element.style.backgroundColor = '#EFEFEF';
}

function SetMouseOutColor(element) 
{
    element.style.backgroundColor = GridViewOriginalRowBackColor;
}

function HideElements(id)
{
    try
    
    {
        document.getElementById(id).style.display = 'None';
    }
    catch(Error)
    {
    }
}

function ShowElements(id)
{
    try
    {
        document.getElementById(id).style.display = '';    
    }    
    catch(Error)
    {
    }    
}

function SetElementText(id, text)
{
    document.getElementById(id).value = text;
}

function SetElementStatus(id, status)
{
    document.getElementById(id).disabled = status;
}

function ShowHideElements(id)
{
    if(document.getElementById(id).style.display == '')
        document.getElementById(id).style.display = 'None';
    else
        document.getElementById(id).style.display = '';
        
    return false;
}

function ShowToolTip(Message)        
{        
    document.getElementById('_DivToolTip').style.top = 100;
    document.getElementById('_DivToolTip').style.left = 100;
        
    document.getElementById('_DivToolTip').style.display = 'block';            
    
    if(navigator.appName == 'Microsoft Internet Explorer')
    {
        document.getElementById('_ToolTipBody').innerText = Message;
    }
    else
    {
        document.getElementById('_ToolTipBody').textContent = Message;
    }
}

function HideToolTip()        
{   
    document.getElementById('_DivToolTip').style.display = 'none';                 
    return false;
}


function ShowMessageBox(Message, Caption)        
{
    var _PopUpHeight = document.getElementById('_DivMessageBox').style.height;
    var _PopUpWidth = 370;
    
    var _Width = GetWindowWidth();
    var _Height = GetWindowHeight();
    
    document.getElementById('_DivBlinde').style.height = _Height + "px";    
    document.getElementById('_DivBlinde').style.display = 'block';
    
    document.getElementById('_DivMessageBox').style.top = ((_Height / 2) - (_PopUpHeight / 2)) + "px";                
    document.getElementById('_DivMessageBox').style.left = ((_Width / 2) - (_PopUpWidth / 2)) + "px";
        
    document.getElementById('_DivMessageBox').style.display = 'block';            
    
    if(navigator.appName == 'Microsoft Internet Explorer')
    {
        document.getElementById('_MessageBody').innerText = Message;
        document.getElementById('_MessageCaption').innerText = Caption;
    }
    else
    {
        document.getElementById('_MessageBody').textContent = Message;
        document.getElementById('_MessageCaption').textContent = Caption;
    }
}

function HideMessage()        
{   
    document.getElementById('_DivMessageBox').style.display = 'none';                 
    document.getElementById('_DivBlinde').style.display = 'none';
    return false;
}

function HideConfirmBox()        
{   
    document.getElementById('_DivConfirmBox').style.display = 'none';                 
    document.getElementById('_DivBlinde').style.display = 'none';
    return false;
}

function ShowConfirmBox(Confirm, Caption, YesTarget, NoTarget)        
{
    var _PopUpHeight = document.getElementById('_DivConfirmBox').style.height;
    var _PopUpWidth = 370;
    
    var _Width = GetWindowWidth();
    var _Height = GetWindowHeight();    
    var _ScrollY = getWindowScrollY();
    var _ScrollX = getWindowScrollX();
            
    document.getElementById('_DivBlinde').style.height = _ScrollY + _Height + "px";        
    document.getElementById('_DivBlinde').style.display = 'block';
    
    document.getElementById('_DivConfirmBox').style.top = (_ScrollY + (_Height / 2) - (_PopUpHeight / 2)) + "px";            
        
    document.getElementById('_DivConfirmBox').style.left = ((_Width / 2) - (_PopUpWidth / 2)) + "px";
        
    document.getElementById('_DivConfirmBox').style.display = 'block';                
    
    if(navigator.appName == 'Microsoft Internet Explorer')
    {
        document.getElementById('_ConfirmBody').innerText = Confirm;
        document.getElementById('_ConfirmCaption').innerText = Caption;
    }
    else
    {
        document.getElementById('_ConfirmBody').textContent = Confirm;
        document.getElementById('_ConfirmCaption').textContent = Caption;
    }
           
    document.getElementById('ButtonYes').onclick = function()
    {                    
        HideConfirmBox();
        if(YesTarget != '')
        {
            if (!theForm.onsubmit || (theForm.onsubmit() != false))
            {
                theForm.__EVENTTARGET.value = YesTarget;
                theForm.submit();        
            }
        }
        else
            return false;
    }
    document.getElementById('ButtonNo').onclick = function()
    {
        HideConfirmBox();
        if(NoTarget != '')
        {
            if (!theForm.onsubmit || (theForm.onsubmit() != false))
            {
                theForm.__EVENTTARGET.value = NoTarget;
                theForm.submit();        
            }
            else
                return false;
        }   
    }
}

function GetWindowWidth()
{
    var myWidth = 0, myHeight = 0;
    if( typeof( window.innerWidth ) == 'number' ) 
    {
        //Non-IE
        myWidth = window.innerWidth;
        myHeight = window.innerHeight;
    } 
    else 
        if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) )
        {
            //IE 6+ in 'standards compliant mode'
            myWidth = document.documentElement.clientWidth;
            myHeight = document.documentElement.clientHeight;
        }
        else 
            if( document.body && ( document.body.clientWidth || document.body.clientHeight ) )
            {
                //IE 4 compatible
                myWidth = document.body.clientWidth;
                myHeight = document.body.clientHeight;
            }
    return myWidth;
}

function GetWindowHeight()
{
    var myWidth = 0, myHeight = 0;
    if( typeof( window.innerWidth ) == 'number' ) 
    {
        //Non-IE
        myWidth = window.innerWidth;
        myHeight = window.innerHeight;
    } 
    else 
        if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) )
        {
            //IE 6+ in 'standards compliant mode'
            myWidth = document.documentElement.clientWidth;
            myHeight = document.documentElement.clientHeight;
        }
        else 
            if( document.body && ( document.body.clientWidth || document.body.clientHeight ) )
            {
                //IE 4 compatible
                myWidth = document.body.clientWidth;
                myHeight = document.body.clientHeight;
            }
    return myHeight;
}


function getWindowScrollX() 
{
    var scrOfX = 0, scrOfY = 0;
    if( typeof( window.pageYOffset ) == 'number' ) 
    {
        //Netscape compliant
        scrOfY = window.pageYOffset;
        scrOfX = window.pageXOffset;
    } 
    else 
        if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) 
        {
            //DOM compliant
            scrOfY = document.body.scrollTop;
            scrOfX = document.body.scrollLeft;
        } 
        else 
            if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) )
            {
                //IE6 standards compliant mode
                scrOfY = document.documentElement.scrollTop;
                scrOfX = document.documentElement.scrollLeft;
            }
    return scrOfX;
}

function getWindowScrollY() 
{
    var scrOfX = 0, scrOfY = 0;
    if( typeof( window.pageYOffset ) == 'number' ) 
    {
        //Netscape compliant
        scrOfY = window.pageYOffset;
        scrOfX = window.pageXOffset;
    } 
    else 
        if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) 
        {
            //DOM compliant
            scrOfY = document.body.scrollTop;
            scrOfX = document.body.scrollLeft;
        } 
        else 
            if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) )
            {
                //IE6 standards compliant mode
                scrOfY = document.documentElement.scrollTop;
                scrOfX = document.documentElement.scrollLeft;
            }
    return scrOfY;
}


function ArrangeTrackerMenu(element)
{    
    AutoPlaceOnMap = false;
        
    HideElements(imageButtonPauseID);
    ShowElements(imageButtonPalyID);
        
    if(element.id == '_Tracking')
    {
        if(document.getElementById('_DivTracking').style.display != '')
        {
            document.getElementById('_DivTracking').style.display = '';            
            document.getElementById('_DivLastGPRSPosition').style.display = 'None';
            document.getElementById('_DivSpeedPoints').style.display = 'None';
            document.getElementById('_DivStopPoints').style.display = 'None';
        }
        else
            document.getElementById('_DivTracking').style.display = 'None';
    }
    
    if(element.id == '_LastGPRSPosition')
    {
        if(document.getElementById('_DivLastGPRSPosition').style.display != '')
        {
            document.getElementById('_DivTracking').style.display = 'None';            
            document.getElementById('_DivLastGPRSPosition').style.display = '';
            document.getElementById('_DivSpeedPoints').style.display = 'None';
            document.getElementById('_DivStopPoints').style.display = 'None';
         }
         else
            document.getElementById('_DivLastGPRSPosition').style.display = 'None';            
    }               
        
    if(element.id == '_SpeedPoints')
    {
        if(document.getElementById('_DivSpeedPoints').style.display != '')
        {
            document.getElementById('_DivTracking').style.display = 'None';            
            document.getElementById('_DivLastGPRSPosition').style.display = 'None';
            document.getElementById('_DivSpeedPoints').style.display = '';
            document.getElementById('_DivStopPoints').style.display = 'None';
         }
         else
            document.getElementById('_DivSpeedPoints').style.display = 'None';            
    }                   
    
    if(element.id == '_StopPoints')
    {
        if(document.getElementById('_DivStopPoints').style.display != '')
        {
            document.getElementById('_DivTracking').style.display = 'None';            
            document.getElementById('_DivLastGPRSPosition').style.display = 'None';
            document.getElementById('_DivSpeedPoints').style.display = 'None';
            document.getElementById('_DivStopPoints').style.display = '';
         }
         else
            document.getElementById('_DivStopPoints').style.display = 'None';            
    }                   
    
    
    return false;       
}

function ArrangeAccountSettingMenu(element)
{    
    AutoPlaceOnMap = false;
        
    if(element.id == '__ChangePassword')
    {
        if(document.getElementById('__DivChangePassword').style.display != '')
        {
            document.getElementById('__DivChangePassword').style.display = '';            
            document.getElementById('__DivAccountSettings').style.display = 'None';
            document.getElementById('__DivGeneralSettings').style.display = 'None';
        }
        else
            document.getElementById('__DivChangePassword').style.display = 'None';
    }

    if(element.id == '__AccountSettings')
    {
        if(document.getElementById('__DivAccountSettings').style.display != '')
        {
            document.getElementById('__DivChangePassword').style.display = 'None';
            document.getElementById('__DivAccountSettings').style.display = '';
            document.getElementById('__DivGeneralSettings').style.display = 'None';
        }
        else
            document.getElementById('__DivAccountSettings').style.display = 'None';
    }

    if(element.id == '__GeneralSettings')
    {
        if(document.getElementById('__DivGeneralSettings').style.display != '')
        {
            document.getElementById('__DivChangePassword').style.display = 'None';
            document.getElementById('__DivAccountSettings').style.display = 'None';
            document.getElementById('__DivGeneralSettings').style.display = '';
        }
        else
            document.getElementById('__DivGeneralSettings').style.display = 'None';
    }
           

    return false;       
}

function ArrangeToolsMenu(element)
{            
    if(element.id == '_ShowLatLon')
    {
        if(document.getElementById('_DivShowLatLon').style.display != '')
        {
            document.getElementById('_DivShowLatLon').style.display = ''; 
        }
        else
            document.getElementById('_DivShowLatLon').style.display = 'None';
    }    
    return false;       
}




function ArrangeDeviceConfigMenu(element)
{            
    if(element.id == '_GetDevicesConfig')
    {
        if(document.getElementById('__DivGetDevicesConfig').style.display != '')
        {
            document.getElementById('__DivGetDevicesConfig').style.display = ''; 
            document.getElementById('__DivDevicesConfig').style.display = 'None'; 
        }
        else
            document.getElementById('__DivGetDevicesConfig').style.display = 'None';
    }    
    
    if(element.id == '_DevicesConfig')
    {
        if(document.getElementById('__DivDevicesConfig').style.display != '')
        {
            document.getElementById('__DivGetDevicesConfig').style.display = 'None'; 
            document.getElementById('__DivDevicesConfig').style.display = ''; 
        }
        else
            document.getElementById('__DivDevicesConfig').style.display = 'None';
    }    
    
    return false;       
}


function TestFileType(elemet, fileTypes)
{    
    if (!elemet.value) return;

    dots = elemet.value.toLowerCase().split(".")

    fileType = "." + dots[dots.length-1];
    
    if(fileTypes.join(".").indexOf(fileType) < 0)
    {
        ShowMessageBox('فایل با پسوند jpeg, gif, png, jpg پذیرفته است .', 'پیغام');    
        return;
    }
}

function PalySound(Container) 
{
    var element = document.getElementById(Container);
    element.innerHTML = '<embed src=\'../Images/Beep.mp3\' autostart=\'1\' loop=\'0\' height=\'0\' width=\'0\' type=\'' + getMimeType() + '\'></embed>';
}

function getMimeType()
{
    var mimeType = "application/x-mplayer2";
    var agt=navigator.userAgent.toLowerCase();
    if (navigator.mimeTypes && agt.indexOf("windows") == -1)
    {
        //non-IE, no-Windows
        var plugin=navigator.mimeTypes["audio/mpeg"].enabledPlugin;
        if (plugin)
            mimeType="audio/mpeg"; //Mac/Safari & Linux/FFox
    }
    return mimeType;
}

function prepareMouseOverImage(image, originalURL)
{    
    if( typeof( window.innerWidth ) == 'number' ) 
    {
	    image.mouseOverImage=originalURL;
	    image.onload=function(){return true;};
	    image.normalImage=grayscale(image, false);

	    image.onmouseover=function()
	    {
		    this.src=this.mouseOverImage;
	    }

	    image.onmouseout=function()
	    {
		    this.src=this.normalImage;
	    }
	    image.src=image.normalImage;    
    }
    else
    {
        image.style.filter = 'progid:DXImageTransform.Microsoft.BasicImage(grayScale=1)';
        
	    image.onmouseover=function()
	    {
		    image.style.filter = 'progid:DXImageTransform.Microsoft.BasicImage(grayScale=0)';
	    }
        
	    image.onmouseout=function()
	    {
		    image.style.filter = 'progid:DXImageTransform.Microsoft.BasicImage(grayScale=1)';
	    }        
    }        
}

function grayscale(image, bPlaceImage)
{
    var myCanvas=document.createElement("canvas");
    var myCanvasContext=myCanvas.getContext("2d");

    var imgWidth=image.width;
    var imgHeight=image.height;

    // You'll get some string error if you fail to specify the dimensions
    myCanvas.width= imgWidth;
    myCanvas.height=imgHeight;

    //  alert(imgWidth);
    myCanvasContext.drawImage(image,0,0);

    // The getImageData() function cannot be called if the image is not from the same domain.
    // You'll get security error
    var imageData=myCanvasContext.getImageData(0,0, imgWidth, imgHeight);
    for (i=0; i<imageData.height; i++)
    {
        for (j=0; j<imageData.width; j++)
        {
          var index=(i*4)*imageData.width+(j*4);
          var red=imageData.data[index];
          var green=imageData.data[index+1];
          var blue=imageData.data[index+2];
          var alpha=imageData.data[index+3];
          var average=(red+green+blue)/3;
          
          imageData.data[index]=average;
          imageData.data[index+1]=average;
          imageData.data[index+2]=average;
          imageData.data[index+3]=alpha;
        }
    }
    myCanvasContext.putImageData(imageData,0,0,0,0, imageData.width, imageData.height);

    if (bPlaceImage)
    {
      var myDiv=document.createElement("div");
      myDiv.appendChild(myCanvas);
      image.parentNode.appendChild(myCanvas);
    }
    return myCanvas.toDataURL();
}
