function RedirectNewPage(NewUrl)
{
    window.open(NewUrl, '_parent');
}
// Cancel Event
function fncPreventAction(e)
{
	if (window.event)
	{//IE
		window.event.returnValue = null;
	}
	else //Firefox
	{
		e.preventDefault();
	}
}

function getObject(objectId) {
	if (document.getElementById && document.getElementById(objectId)) 
	{
		return document.getElementById(objectId);
	} 
	else if (document.all && document.all(objectId)) 
	{
		return document.all(objectId);
	} 
	else 
	{
		return false;
	}
}	

function fncValidDate(pDateValue)
{    
	if (pDateValue == "") return false;
	
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
	var matchArray = pDateValue.match(datePat); // is the format ok?
	if (matchArray == null) {
		return false;
	}

	month = matchArray[1]; // parse date into variables
	day = matchArray[3];
	year = matchArray[5];

	if (month < 1 || month > 12) { // check month range
		return false;
	}

	if (day < 1 || day > 31) {
		return false;
	}

	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		return false;
	}

	if (month == 2) { // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day > 29 || (day==29 && !isleap)) {
			return false;
		}
	}
	return true; // date is valid		
}


function dateToStringYYYYMMDD(dateStr)
{
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
	var matchArray = dateStr.match(datePat); // is the format ok?
	if (matchArray == null) {
		return "";
	}
	month = matchArray[1]; // p@rse date into variables
	day = matchArray[3];
	year = matchArray[5];
	
	var strReturn = "" + year;
	
	if (month <10) {
		strReturn += "0" + month;
	}else {
		strReturn += month;
	}
	if (day <10) {
		strReturn += "0" + day;
	}else {
		strReturn += day;
	}
	return 	strReturn;
}


// Email
function IsValidEmail(Str)
{
	if (! Str || Str == 'undefined')
	{
		return false;
	}
	if (Str.length == 0)
	{
		return false;
	}
	var szFilter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9_\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 
	
	if (szFilter.test(Str)) 
	{
		return true;
	}
	return false;
}

function fncRemoveAllOptions(listObject)
{	
	if (listObject)
	{
		if (listObject.options)
		{
			for (var iInd2=0; iInd2 < listObject.options.length; iInd2++)
			{									
				listObject.remove(iInd2);			
				iInd2 -=1;
			}
		}
	}
	return;	
}

function fncAddOptions(listObject, text, value)
{	
	if (listObject)
	{
		var oOption = document.createElement("OPTION");
		oOption.text = text;
		oOption.value = value;							
		listObject.add(oOption);
		listObject.options[listObject.options.length-1].selected = true;		
	}
	return;
}

function fncRemoveOptions(listObject, index)
{		
	if (listObject && listObject.options)
	{
	    if (index<listObject.options.length)		
		{									
			listObject.remove(index);			
		}
	}
	return;
}
//======================================== Menu ============================================
	var last_expanded = ''; 
	var curActivedMenuItem = null;

    function showHide(id) 
    { 
		
        var obj = document.getElementById(id); 
        var status = obj.className; 
       
        if (status == 'hide') 
        { 
            if (last_expanded != '') 
            { 
                var last_obj = document.getElementById(last_expanded); 
                last_obj.className = 'hide'; 
            } 
            obj.className = 'show'; 

            last_expanded = id; 
        } 
        else 
        { 
            obj.className = 'hide'; 
        } 
    }
    
   
    

    function updateTime()
    {
        var date = document.getElementById('date');
        var label = document.getElementById('currentTime');
        var dateValue = new Date();
       
        if (date)
        {
            date.innerHTML = dateValue.getDate() + "/"+ (dateValue.getMonth() + 1) + "/" + dateValue.getFullYear();
        }
       
        if (label) 
        {
            var time = (new Date()).toLocaleTimeString();
            time = time.match(/^(\s*\d{1,2}\s*\:\s*\d{1,2}\s*\:\s*\d{1,2}\s*[A-Za-z]{2}).*$/)[1];
            label.innerHTML = time;
        }
    }   
             
    updateTime();
    window.setInterval(updateTime, 1000);
    
    function BeginRequest(sender, args) 
    {
        var updateProgress = $get("ctl00_updateProgress");  
        if (updateProgress)
        {
            updateProgress.style.position = "absolute";
            updateProgress.style.top = window.document.body.offsetHeight / 2;
            updateProgress.style.left = screen.width / 2;
        }
    }
    function changeImageSource(ojb,imgSrc)
    {
		ojb.src = "../Images/"+ imgSrc;
    }
    //========= Show/Hide Div =======================
    function fncVisibleDiv(DivId, ImgId, CollapseImagePath, ExpandImagePath, StyleDisplay)
	{
		var DivObj = getObject(DivId);
		var ImgObj = getObject(ImgId);
		if(StyleDisplay == "none")
		{
			DivObj.style.display = "block";
			ImgObj.src  = ExpandImagePath;
		}
		else
		{
			DivObj.style.display = "none";
			ImgObj.src  = CollapseImagePath;
		}
	}
//================================Validate Control ==================================

function LTrim( value ) {
	
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
	
}

// Removes ending whitespaces
function RTrim( value ) {
	
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
	
}

// Removes leading and ending whitespaces
function trim( value ) {
	
	return LTrim(RTrim(value));
	
}


function isEmpty(ObjID)
{
	var Obj = getObject(ObjID);
	if(Obj == false)
	{ 	return true;
	}
	else 
	{
		if(Obj.value ==null || trim(Obj.value)=="")
		{
			 return true;
		}
		else 
		{	
			return false;
		}
	}
	
}

function DeleteConfirm(e,message)
{
	if(!confirm(message))
	{
		fncPreventAction(e);
	}
}
//============================================ Check box event ===============================================
function checkAll(id)
{
	var cbCheckAll = document.getElementById(id);
	
	for(var i = 0; i < clientIdCollection.length ; i++)
	{
		var cbClientId = document.getElementById(clientIdCollection[i]);
		if(cbCheckAll.checked)
		{
			if(!cbClientId.checked)
				cbClientId.checked = true;
		}
		else
		{
			if(cbClientId.checked)
				cbClientId.checked = false;
		}
	}
	
}
function confirmDelete()
{
	return confirm("Are you sure you want to delete this information?");
}

function validateDate(fld) 
{
	var RegExPattern = /^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;
	var errorMessage = 'Please enter valid date as mm/dd/yyyy.';
	if ((fld.value.match(RegExPattern))) 
	{
		return true; 
	}
	else 
	{
		if(fld.value == '')
			return true;
		alert(errorMessage);
		fld.focus();
		
		return false;
	}
}
function validateDateAll(dateFrom,dateTo)
{
	var fromDate = document.getElementById(dateFrom);
	var toDate = document.getElementById(dateTo);
	
	if(!validateDate(fromDate))
		return false;
	if(!validateDate(toDate))
		return false;
	
	var fromDateValue = Date.parse(fromDate.value);
	var toDateValue = Date.parse(toDate.value);
	
	if((fromDateValue - toDateValue) > 0)
	{
		alert('Invalid date. From Date value is more lagrer than To Date value');
		return false;
	}
	
	return true;
}
function validateSelected(arrSelected,arrErrorMessage)
{
	var arrControl = arrSelected.split(',');
	var arrMessage = arrErrorMessage.split(',');
	for(var i= 0 ; i < arrControl.length ; i++)
	{
		var objSelect = document.getElementById(arrControl[i]);
		
		if(objSelect.selectedIndex == 0)
		{
			//alert('Selected value can not be null or zero');
			if(i < arrMessage.length)
			{
				alert(arrMessage[i]);
			}
			return false;
		}	
	}
}
function validBeforeRemove()
{
	var isCheck = false;
	for(var i = 0; i < clientIdCollection.length ; i++)
	{
		var cbClientId = document.getElementById(clientIdCollection[i]);
		if(cbClientId.checked)
		{
			isCheck = true;
			break;
		}		
	}
	if(!isCheck)
	{
		alert("Please choose any items before click remove button");
		return false;
	}
	
	if(!confirmDelete())
		return false;
	
}
function validBeforeChangeStatus()
{
	var isCheck = false;
	for(var i = 0; i < clientIdCollection.length ; i++)
	{
		var cbClientId = document.getElementById(clientIdCollection[i]);
		if(cbClientId.checked)
		{
			isCheck = true;
			break;
		}		
	}
	if(!isCheck)
	{
		alert("Please choose any items before change status");
		return false;
	}
}

/*
===============================================================================================================
*/

function buttonMouseOut(imgsrc,Id)
{
	var button = document.getElementById(Id);
	
	button.src = imgsrc;
}

function buttonMouseOver(imgsrc,Id)
{
	var button = document.getElementById(Id);
	
	button.src = imgsrc;
}

/* **** Check Validate Phone Number ***** */

	// Declaring required variables
	var digits = "0123456789";
	// non-digit characters which are allowed in phone numbers
	var phoneNumberDelimiters = "()- ";
	// characters which are allowed in international phone numbers
	// (a leading + is OK)
	var validWorldPhoneChars = phoneNumberDelimiters + "+";
	// Minimum no of digits in an international phone no.
	var minDigitsInIPhoneNumber = 10;

	function isInteger(s)
	{   var i;
		for (i = 0; i < s.length; i++)
		{   
			// Check that current character is number.
			var c = s.charAt(i);
			if (((c < "0") || (c > "9"))) return false;
		}
		// All characters are numbers.
		return true;
	}

	function stripCharsInBag(s, bag)
	{   var i;
		var returnString = "";
		// Search through string's characters one by one.
		// If character is not in bag, append to returnString.
		for (i = 0; i < s.length; i++)
		{   
			// Check that current character isn't whitespace.
			var c = s.charAt(i);
			if (bag.indexOf(c) == -1) returnString += c;
		}
		return returnString;
	}
	function checkInternationalPhone(strPhone)
	{
		s = stripCharsInBag(strPhone,validWorldPhoneChars);
		return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
	}
	
	function isPhoneNumber(s) 
	{
 
		// Check for correct phone number
		rePhoneNumber = new RegExp(/^\([1-9]\d{2}\)\s?\d{3}\-\d{4}$/);
 
	    if (!rePhoneNumber.test(s)) {
			return false;
		}
 
		return true;
	}
/* **** Check Validate Phone Number ***** */

//download file
function download(aLink)
{	
	var srcElement = event.srcElement;
	var td = srcElement.parentElement;
	var filename = td.children(1).value;
	alert(filename);
    window.open('download.aspx?file=' + filename, '_blank');
}

function checkArguments()
{
    var ret = true;
    if(arguments.length > 0 && arguments.length % 3 == 0)
    {
        var sMessage = "";
        var iCount = arguments.length / 3;
        
        for(var i=0; i < iCount; i++)
        {
            var start = i*3;
            eval("var check = (" + arguments[start] + " == " + arguments[start+1] + ")");
            if(check)
            {
                ret = false;
                sMessage += "  " + arguments[start+2] + "\n\r";
            }
        }
        if(!ret)
        {
            sMessage = sMessage.substr(0, sMessage.length-2);
            alert("Please correct:\n\r" + sMessage);
        }
    }
    else
    {
        alert("Please correct your arguments.");
        ret = false;
     }   
    return ret;
}
