


function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function DisplayElement(varelement)
{
    varelement.style.visibility='visible';
    varelement.style.display='block';
}
function HideElement(varelement)
{

   if(varelement !=null)
   {
        varelement.style.visibility='hidden';
        varelement.style.display='none';
    }
}

function getY( oElement )
{
var iReturnValue = 0;
while( oElement != null ) {
iReturnValue += oElement.offsetTop;
oElement = oElement.offsetParent;
}
return iReturnValue;
}

function getX( oElement )
{
var iReturnValue = 0;
while( oElement != null ) {
iReturnValue += oElement.offsetLeft;
oElement = oElement.offsetParent;
}
return iReturnValue;
}


function pausecomp(millis)
{

var date = new Date();
var curDate = null;

do { curDate = new Date(); }
while(curDate-date < millis);
} 

           
 function getWindowHeight()
 {
     var windowHeight;

        if(window.addEventListener) 
        {
            windowHeight = window.innerHeight;
        }
        else
        {
            windowHeight = document.documentElement.clientHeight ||
            document.body.clientHeight;
        }
    return windowHeight;
}

function IsDecimal(value)
{
    var isDecimal_re     = /^\s*(\+|-)?((\d+(\.\d+)?)|(\.\d+))\s*$/;
    return String(value).search (isDecimal_re) != -1
}

function expandingWindow(website, leftdist, topdist, rightdist, bootomdist)
 {

 newwindow=window.open(website,'name','width=600,height=400,scrollbars=yes,status=no,resizable=no');
	if (window.focus) {newwindow.focus()}
	return false;
//var windowprops='width=100,height=50,scrollbars=no,status=no,resizable=no'
//var heightspeed = 2; // vertical scrolling speed (higher = slower)
//var widthspeed = 7;  // horizontal scrolling speed (higher = slower)
////var leftdist = 250;    // distance to left edge of window
////var topdist = 150;     // distance to top edge of window
////var rightdist = 100;
////var bootomdist=200;

//if (window.resizeTo&&navigator.userAgent.indexOf("Opera")==-1)
// {
// 
//var winwidth = window.screen.availWidth - leftdist - rightdist;
//var winheight = window.screen.availHeight - topdist - bootomdist;
//var sizer = window.open("","a","left=" + leftdist + ",top=" + topdist +","+ windowprops);
//for (sizeheight = 1; sizeheight < winheight; sizeheight += heightspeed)
//sizer.resizeTo("1", sizeheight);
//for (sizewidth = 1; sizewidth < winwidth; sizewidth += widthspeed)
//sizer.resizeTo(sizewidth, sizeheight);
//sizer.location = website;
//}
//else
//window.open(website,'mywindow');
}

function getElementHeight(Elem) 
{
	if (Elem.style.pixelHeight) {
			return Elem.style.pixelHeight;
		} else {
			return Elem.offsetHeight;
		}

	 
}
function getElementWidth(Elem) {
	
		if (Elem.style.pixelWidth) {
			return Elem.style.pixelWidth;
		} else {
			return Elem.offsetWidth;
		}
	
}

  
   
     function SelectFromToDate(ddl, txtFD, txtTD )
    {
       var FromDate, ToDate;
        switch(ddl.options[ddl.selectedIndex].value)
        {
            case '0':
                break;
            case 'TODAY':
                FromDate = new Date();
                ToDate = new Date();
                break;
            case 'YESTERDAY':
                FromDate = new Date();
                FromDate.setDate(FromDate.getDate() - 1);
                ToDate = new Date();
                break;
            case 'LASTWEEK':
                FromDate = new Date();
                FromDate.setDate(FromDate.getDate() - 7);
                ToDate = new Date();
                break;
            case 'LASTMONTH':
                FromDate = new Date();
                FromDate.setDate(FromDate.getDate() - 30);
                ToDate = new Date();
                break;
             case 'TOMORROW':
                FromDate = new Date();
                ToDate = new Date();
                ToDate.setDate(ToDate.getDate() + 1);
                break;
              case 'NEXTWEEK':
                FromDate = new Date();
                ToDate = new Date();
                ToDate.setDate(ToDate.getDate() + 7);
                break;
            
        }
        if(FromDate)
        {
            txtFD.value = FromDate.getMonth() + 1 + '/' + FromDate.getDate() + '/' + FromDate.getFullYear();
            txtTD.value = ToDate.getMonth() + 1 + '/' + ToDate.getDate() + '/' + ToDate.getFullYear();
        }
        else
        {
            txtFD.value = '';
            txtTD.value = '';
        }
    }
 function clickButton(e, btnSearch){

var evt = e ? e : window.event;

var bt = document.getElementById(btnSearch);

if (bt){

if (evt.keyCode == 13){

bt.click();

return false;

}

}

}

function DisplayActionPanel(TriggeringElement, ActionPanelId, DisablingDivId)
{
   var noPx = document.childNodes ? 'px' : 0;
     // Disable the form
    var DisablingDiv =  document.getElementById(DisablingDivId);
    DisablingDiv.style.height = document.body.clientHeight + noPx;
   
  
   DisplayElement(DisablingDiv);
    
    //Display and position the action panel
    var ActionPanel = document.getElementById(ActionPanelId);
    
    var ele = TriggeringElement;
   
   if(ele!=null)
   {
    ActionPanel.style.top =  getY(ele) + noPx;
    ActionPanel.style.left = getX(ele) + getElementWidth(ele) +noPx;
    }
    DisplayElement(ActionPanel);
}


function CloseActionPanel(ActionPanelId, DisablingDivId)
{
    HideElement(document.getElementById(DisablingDivId));
    HideElement(document.getElementById(ActionPanelId));
}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function ActivateSearch(e, btnSearch ,txt)
{
    var evt = e ? e : window.event;
    var bt = document.getElementById(btnSearch);
    if (evt.keyCode == 13)
    {
       
        if(trim(txt.value)=='' || txt.value=='Enter Continent or Country')
        {
            alert('Please enter Continent or Country');
        }
        else
        {
            __doPostBack('ctl00$usTourSearch$lbtnSearch','')
        }
        return false;
     }
    
}

function ValidateUploadedImage(ImageName)
{
    var Result = '';
    
    if(ImageName=='')
    {
        Result ='Please select Image to upload';
    }
    else
    {
         var ImageFileFormat_re     = /([.jpg]|[.png]|[.JPG]|[.PNG])$/;
         if(String(ImageName).search (ImageFileFormat_re) == -1)
         {
            Result = 'Please select file with .jpg|.png';
         }
    }
    
    return Result;
    
}

function getScrollXY() {
  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, scrOfY ];
}

function IsValidNumber(txt, divid, DType)
{
    var IsValid=true;
    
    var ErrorMessage='';
    
    if(txt.value!='')
    {
        switch(DType)
        {
            
            case 'Price':
                if(!IsValidFloatValue(txt.value))
                {
                    IsValid=false;
                    ErrorMessage="Invalid price"; 
                }
                else
                {
                    if(parseFloat(txt.value)<0.0)
                    {
                        IsValid=false;
                        ErrorMessage="Negative price";
                    }
                }
                break;
            case 'Percentage':
                
                 if(!IsValidFloatValue(txt.value))
                 {
                    IsValid=false;
                    ErrorMessage="Invalid value for percentage"; 
                 }
                 else
                 {
                    
                    if(parseFloat(txt.value)< 0.0 || parseFloat(txt.value)>100.0)
                    {
                        IsValid=false;
                        ErrorMessage="Enter value between 0 and 100";  
                    }
                 }
                break;
             case 'Number':
                if(!IsValidNumericValue(txt.value))
                {
                    IsValid=false;
                    ErrorMessage="Please enter a number";
                }
            
             default :
                break;      
        }
    }
    
    if(IsValid)
    {
        if(divid!=null)
        {
            (document.getElementById(divid)).style.visibility='hidden'; 
            (document.getElementById(divid)).style.display='none';
        }
    }
    else
    {
        if(divid!=null)
        {
           (document.getElementById(divid)).style.visibility='visible'; 
           (document.getElementById(divid)).style.display='block';
           (document.getElementById(divid)).innerHTML=ErrorMessage;
       }
       txt.focus();
    } 
   
    return IsValid;
    

}

function IsValidFloatValue(number)
{
    if(isNaN(parseFloat(number)))
    {return false;}
    else {if(parseFloat(number)!=number){return false;}}
    return true;
}
function IsValidNumericValue(number)
{
    if(isNaN(parseInt(number)))
    {return false;}
    else {if(parseInt(number)!=number){return false;}}
    return true;
}


function ClearAll(nodeid)
{
    var node = document.getElementById(nodeid);
    SetToDefault(node);
 } 

function SetToDefault(node)
{

    for(var i = 0 ;i<node.childNodes.length;i++)
    {
        SetToDefault(node.childNodes[i]);
    }
   
    switch(node.tagName)
    {
        case 'INPUT':
            if(node.getAttribute("type"))
            {
                if(node.getAttribute("type")=="text")    
                    node.value='';
            }
            break;
        case 'DIV' : 
            var pattern = /(Error)$/;
            if(String(node.id).search (pattern) != -1)
                HideElement(node);
            break;
        case 'SELECT':
            node.selectedIndex = 0;
            break;
        case 'TEXTAREA':
            node.value ='';
            break;
        default:
            break;
            
    }
  }