﻿
/*********************** Abdul Wahab :: 26 May 09 **************************/

// This function gets a file uploader as an input and simply filter it with Image and Video File

// FilterType is a string value from which we identify the type of filter, i.e an image or a video.

function checkFileExtension(FileUploaderID,FilterType) {
        var filePath = FileUploaderID.value;

        if(filePath.indexOf('.') == -1)
            return false;
        
        var validExtensions = new Array();
        var ext = filePath.substring(filePath.lastIndexOf('.') + 1).toLowerCase();
        if(FilterType.toString().toUpperCase()=="VIDEO")
        {
         validExtensions[0] = '3g2';
        validExtensions[1] = '3gp';
        validExtensions[2] = 'asf';
        validExtensions[3] = 'avi';
        validExtensions[4] = 'flv';  
        validExtensions[5] = 'mkv';  
        validExtensions[6] = 'mov';
        validExtensions[7] = 'mp4';
        validExtensions[8] = 'mpg';
        validExtensions[9] = 'qt';
        validExtensions[10] = 'rm';
        validExtensions[11] = 'swf';
        validExtensions[12] = 'vob';
        validExtensions[13] = 'wmv';
        }
        else if(FilterType.toString().toUpperCase()=="IMAGE")
        {
         validExtensions[0] = 'bmp';
        validExtensions[1] = 'gif';
        validExtensions[2] = 'jpeg';
        validExtensions[3] = 'jpg';
        validExtensions[4] = 'gif';  
        validExtensions[5] = 'png';  
        validExtensions[6] = 'psd';
        validExtensions[7] = 'psp';
        validExtensions[8] = 'thm';
        validExtensions[9] = 'tif';
        }  
        for(var i = 0; i < validExtensions.length; i++) {
            if(ext == validExtensions[i])
                return true;
        }

        alert('The file extension ' + ext.toUpperCase() + ' is not allowed');
        FileUploaderID.value = "";
        return false;
    }
    
    /*************************************************************************************/
    
    function showPopUp(pnl, extender)
    {
        $get(pnl).className = 'visible';
        $find(extender).show();
    }
    function IsIE()
    {
		return navigator.appName == 'Microsoft Internet Explorer';
    }
    function IsFF()
    {
		return navigator.appName == 'Netscape';
    }
    function IsSafari()
    {
    }
    function RestrictMaxLength(id, lblID)
    {
		var obj = new Object();
		obj.target = document.getElementById(id);
		obj.captionLabel = document.getElementById(lblID);
		obj.maxLen = parseInt(obj.target.attributes.getNamedItem("MaxLength").value);
		
		UpdateCaption(obj);
		obj.orgKeyDown = obj.target.onkeydown;
		
		obj.target.onkeydown = function(evt)
		{
			if(!evt)
				evt = event; 
			if(!specialKey(evt.keyCode))
			{	
				if(obj.target.value.length > obj.maxLen -1)
				{	
					//if(event)//IE
						evt.returnValue = false;
					//else//Firefox
						evt.cancelBubble = true;
					return false;
				}
			}
			UpdateCaption(obj);
			
			if(obj.orgKeyDown)
				obj.orgKeyDown(); 
		}
		
		obj.orgpropertychange = obj.target.onpropertychange;
		obj.target.onpropertychange = function()
		{	
			if(obj.target.value.length > obj.maxLen)
			{
				obj.target.value = obj.target.value.substring(0, obj.maxLen);
			}
			UpdateCaption(obj);
			if(obj.orgpropertychange)
				obj.orgpropertychange();
		}
		obj.orgchange = obj.target.onchange;//only needed for safari
		obj.target.onchange = function()
		{	
			if(obj.target.value.length > obj.maxLen)
			{
				obj.target.value = obj.target.value.substring(0, obj.maxLen);
			}
			UpdateCaption(obj);
			if(obj.orgchange)
				obj.orgchange();
		}
		
		return obj;
    }
    function UpdateCaption(obj)
    {
		var rem = obj.maxLen - obj.target.value.length;
		obj.captionLabel.innerText =  rem + " of "+obj.maxLen+" characters left";
		obj.captionLabel.textContent =  rem + " of "+obj.maxLen+" characters left";//for ff
    }
    function specialKey(keyCode)
	{
		return (keyCode ==8 || keyCode==46 || keyCode==37 || keyCode==38 || keyCode==39 || keyCode==40 || keyCode==9);
	}        