/* For calling messages from resource files. START */
var ResourceManager = new RM();
function RM()
{
    this.list = new Array();
};

// To add key values in list array.
RM.prototype.AddString = function(key, value)
{
    this.list[key] = value;
    //alert(this.list[key]);
};

// To get key values from list array.
RM.prototype.GetString = function(key)
{
    var result = this.list[key];  
    for (var i = 1; i < arguments.length; ++i)
    {
        result = result.replace("{" + (i-1) + "}", arguments[i]);
    }
    return result;
};
/* For calling messages from resource files. END */


	function getLocation(ele) {
		var x = 0;
		var y = 0;
		var p;
		for(p=ele; p; p=p.offsetParent) {
			if(p.offsetLeft || p.offsetTop) {
				x += p.offsetLeft;
			}
			if(p.offsetLeft && p.offsetTop) {
				y += p.offsetTop;
			}
		}
		y += ele.offsetHeight;
       return {left:x, top:y};
	}
	
	function getLocation_I(ele) {
		var x = 0;
		var y = 0;
		var p;
		for(p=ele; p; p=p.offsetParent) {
			if(p.offsetLeft || p.offsetTop) {
				x += p.offsetLeft;
			}
			if(p.offsetLeft && p.offsetTop) {
				y += p.offsetTop;
			}
		}
		y += ele.offsetHeight + 130;
       return {left:x, top:y};
	}
	
	function CheckCity(CityList)
	{
	     //var city=document.getElementById(Ctrl1).value;
        objHTTP = false;
        //var url='../webpages/cityLookup.aspx?citylist='+CityList;
        var url='../webpages/cityLookupPopup.aspx?citylist='+encodeURIComponent(CityList);
        if (window.XMLHttpRequest) 
        { // Mozilla, Safari,...
            objHTTP = new XMLHttpRequest();
            
            if (objHTTP.overrideMimeType) 
            {
                objHTTP.overrideMimeType('text/xml');
                // See note below about this line
            }
        } 
        else if (window.ActiveXObject) 
        { // IE
            try 
            {
                objHTTP = new ActiveXObject("Microsoft.XMLHTTP");
            } 
            catch (e) 
            {
                try 
                {
                    objHTTP = new ActiveXObject("Microsoft.XMLHTTP");
                } 
                catch (e) 
                {
                }
            }
        }

        if (!objHTTP) 
        {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        objHTTP.open("GET",url,false);
        objHTTP.send(""); 
        while( objHTTP.readyState!=4){ 
        window.status="Please wait Saving Page....";}
        
        var str=objHTTP.responseText;
        
        var SplitCode =str.split("*");
   
        objHTTP=null;                
        return str
	}

    function GetDataGrid(Ctrl1, Ctrl2, Ctrl3)
    {        
        var city = document.getElementById(Ctrl1).value;
        var Ocity;
        if(document.getElementById(Ctrl3) != null)
            Ocity = document.getElementById(Ctrl3).value;
        else
            Ocity = "";  

        objHTTP = false;
        //var url='../webpages/cityLookup.aspx?city='+city+'&ctrl1='+Ctrl1+'&ctrl2='+Ctrl2+'&Ocity='+Ocity;
        //debugger
        //var kk=encodeURIComponent(city);
        var url='../webpages/cityLookup.aspx?city='+encodeURIComponent(city)+'&ctrl1='+Ctrl1+'&ctrl2='+Ctrl2+'&Ocity='+encodeURIComponent(Ocity);
        
        if (window.XMLHttpRequest) 
        { // Mozilla, Safari,...
            objHTTP = new XMLHttpRequest();
            
            if (objHTTP.overrideMimeType) 
            {
                objHTTP.overrideMimeType('text/xml');
                // See note below about this line
            }
        } 
        else if (window.ActiveXObject) 
        { // IE
            try 
            {
                objHTTP = new ActiveXObject("Microsoft.XMLHTTP");
            } 
            catch (e) 
            {
                try 
                {
                    objHTTP = new ActiveXObject("Microsoft.XMLHTTP");
                } 
                catch (e) 
                {
                }
            }
        }

        if (!objHTTP) 
        {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        objHTTP.open("GET",url,false);
        objHTTP.send(""); 
        while( objHTTP.readyState!=4){ 
        window.status="Please wait Saving Page....";}
        
        var str=objHTTP.responseText;
        objHTTP=null;                
        return {str:str};
    }
//Start : Changes By Tarun Kumar(on 19 Sep 2008) For CityLookupPopup
function GetDataGridPopup(Ctrl1, Ctrl2, Ctrl3,Culture)
    {        
        var city = document.getElementById(Ctrl1).value;
        var Ocity;
        if(document.getElementById(Ctrl3) != null)
            Ocity = document.getElementById(Ctrl3).value;
        else
            Ocity = "";  

        objHTTP = false;
       
        var url='../webpages/cityLookupPopup.aspx?city='+encodeURIComponent(city)+'&culture='+Culture+'&ctrl1='+Ctrl1+'&ctrl2='+Ctrl2+'&Ocity='+encodeURIComponent(Ocity);
        if (window.XMLHttpRequest) 
        { // Mozilla, Safari,...
            objHTTP = new XMLHttpRequest();
            
            if (objHTTP.overrideMimeType) 
            {
                objHTTP.overrideMimeType('text/xml');
                // See note below about this line
            }
        } 
        else if (window.ActiveXObject) 
        { // IE
            try 
            {
                objHTTP = new ActiveXObject("Microsoft.XMLHTTP");
            } 
            catch (e) 
            {
                try 
                {
                    objHTTP = new ActiveXObject("Microsoft.XMLHTTP");
                } 
                catch (e) 
                {
                }
            }
        }

        if (!objHTTP) 
        {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        objHTTP.open("GET",url,false);
        objHTTP.send(""); 
        while( objHTTP.readyState!=4){ 
        window.status="Please wait Saving Page....";}
        
        var str=objHTTP.responseText;
        
        objHTTP=null;                
        return {str:str};
    }
//End   : Changes By Tarun Kumar(on 19 Sep 2008) For CityLookupPopup

function GetDataGrid1(Ctrl1, Ctrl2, Ctrl3)
    {        
        var city = document.getElementById(Ctrl1).value;
        var Ocity;
        if(document.getElementById(Ctrl3) != null)
            Ocity = document.getElementById(Ctrl3).value;
        else
            Ocity = "";  

        objHTTP = false;        
        //var url='../Hotels/cityLookup.aspx?city='+city+'&ctrl1='+Ctrl1+'&ctrl2='+Ctrl2+'&Ocity='+Ocity;
        var url='../Hotels/cityLookup.aspx?city='+encodeURIComponent(city)+'&ctrl1='+Ctrl1+'&ctrl2='+Ctrl2+'&Ocity='+encodeURIComponent(Ocity);
        if (window.XMLHttpRequest) 
        { // Mozilla, Safari,...
            objHTTP = new XMLHttpRequest();
            
            if (objHTTP.overrideMimeType) 
            {
                objHTTP.overrideMimeType('text/xml');
                // See note below about this line
            }
        } 
        else if (window.ActiveXObject) 
        { // IE
            try 
            {
                objHTTP = new ActiveXObject("Microsoft.XMLHTTP");
            } 
            catch (e) 
            {
                try 
                {
                    objHTTP = new ActiveXObject("Microsoft.XMLHTTP");
                } 
                catch (e) 
                {
                }
            }
        }

        if (!objHTTP) 
        {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        objHTTP.open("GET",url,false);
        objHTTP.send(""); 
        while( objHTTP.readyState!=4){ 
        window.status="Please wait Saving Page....";}
        
        var str=objHTTP.responseText;
        objHTTP=null;                
        return {str:str};
    }

function GetHotelListDataGrid(Ctrl1, Ctrl2, Ctrl3)
    {        
        var hotel = document.getElementById(Ctrl1).value;
        var OhotelLocation;
        if(document.getElementById(Ctrl3) != null)
            OhotelLocation = document.getElementById(Ctrl3).value;
        else
            OhotelLocation = "";  

        objHTTP = false;
        //var url='../Hotels/HotelLookup.aspx?hotel='+hotel+'&ctrl1='+Ctrl1+'&ctrl2='+Ctrl2+'&OhotelLocation='+OhotelLocation;
        var url='../Hotels/HotelLookup.aspx?hotel='+encodeURIComponent(hotel)+'&ctrl1='+Ctrl1+'&ctrl2='+Ctrl2+'&OhotelLocation='+encodeURIComponent(OhotelLocation);
        if (window.XMLHttpRequest) 
        { // Mozilla, Safari,...
            objHTTP = new XMLHttpRequest();
            
            if (objHTTP.overrideMimeType) 
            {
                objHTTP.overrideMimeType('text/xml');
                // See note below about this line
            }
        } 
        else if (window.ActiveXObject) 
        { // IE
            try 
            {
                objHTTP = new ActiveXObject("Microsoft.XMLHTTP");
            } 
            catch (e) 
            {
                try 
                {
                    objHTTP = new ActiveXObject("Microsoft.XMLHTTP");
                } 
                catch (e) 
                {
                }
            }
        }

        if (!objHTTP) 
        {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        objHTTP.open("GET",url,false);
        objHTTP.send(""); 
        while( objHTTP.readyState!=4){ 
        window.status="Please wait Saving Page....";}
        
        var str=objHTTP.responseText;
        objHTTP=null;                
        return {str:str};
    }


/* For calling messages from resource files. START */
var ResourceManager = new RM();
function RM()
{
    this.list = new Array();
};

// To add key values in list array.
RM.prototype.AddString = function(key, value)
{
    this.list[key] = value;
    //alert(this.list[key]);
};

// To get key values from list array.
RM.prototype.GetString = function(key)
{
    var result = this.list[key];  
    for (var i = 1; i < arguments.length; ++i)
    {
        result = result.replace("{" + (i-1) + "}", arguments[i]);
    }
    return result;
};
/* For calling messages from resource files. END */

function checkPassengers(adult, child, infant)
{	
	var Message;
	var CtrlKeyId;
    if (child.selectedIndex > 0)
	{
		if (((adult.options[adult.selectedIndex].value*1) + (child.options[child.selectedIndex].value*1)) > 9 )
		{
		    CtrlKeyId = 'ValidateJS_alertForPax_1';
    		Message = ResourceManager.GetString(CtrlKeyId);    		
    		alert(Message);
			//alert("Total number of travellers should not exceed nine.");
			child.focus();
			return false;
		}
	}
	if (arguments.length == 2)
	{	return true; }
	if (infant.selectedIndex==0)
	{	return true; }
	if ((child.selectedIndex > 0)||(infant.selectedIndex > 0))
	{
		if (((adult.options[adult.selectedIndex].value*1) + (child.options[child.selectedIndex].value*1) + (infant.options[infant.selectedIndex].value*1)) > 9 )
		{
			CtrlKeyId = 'ValidateJS_alertForPax_2';
    		Message = ResourceManager.GetString(CtrlKeyId);    		
    		alert(Message);
			//alert("Total number of travellers should not exceed nine.");
			infant.focus();
			return false;
		}
	}
	if (infant.selectedIndex > 0)
	{
		if ((infant.options[infant.selectedIndex].value*1) > (adult.options[adult.selectedIndex].value*1))
		{
			CtrlKeyId = 'ValidateJS_alertForPax_3';
    		Message = ResourceManager.GetString(CtrlKeyId);    		
    		alert(Message);
			//alert("Number of infants should not exceed number of adults.");
			infant.focus();
			return false;
		}
	}
	return true;
}

function selectbox(box,val)
{
	
	if (val.length==0)
		return;
	var arrval=val.split(',')
	for (var i=0;i<box.length;i++)
	{
		for (var j=0; j<arrval.length ;j++)
		{
			if (box.options[i].value == trim(arrval[j]))
			{
				box.options[i].selected = true;
				break;
			}else
				box.options[i].selected = false;
		}
	}
}

function radiobutt(box,val)
{
	if (val.length==0)
		return;
	for (var i=0 ;i < box.length; i++)
	{
		if (box[i].value == val)
		{
			box[i].checked = true;
			break;
		}
	}  
}

function checkbox(box,val)
{
	if (val.length==0)
		return;
	var arrval=val.split(',')
	for (var i=0 ;i < box.length; i++)
	{
		for (var j=0; j<arrval.length ;j++)
		{
			if (box[i].value == trim(arrval[j]))
			{
				box[i].checked = true;
				break;
			}else
				box[i].checked = false;
		}
	}  
}

//This function is called to transfer the options from one select box to other.
function TransferMultiselect(box1, box2)///pass the object.
{
	box2.selected=false;
	var defaultSelected = false, selected = false;
	for(var x = box1.options.length-1 ; x >= 0 ; x--) 
    {
        if (box1.options[x].selected)
        {
			var optionName = new Option(box1.options[x].text, box1.options[x].value, defaultSelected, selected)
			if (box2.options[0]==null)
			{    var length = 0; }
			else
			{
				if (box2.options[0].value =="")
				{    var length = 0; }
				else
				{    var length = box2.options.length; }
			}
			box2.options[length] = optionName;
			box1.options[x] = null;
	    }
	}
}

function trim(text)
{ 
    while (text.charAt(0) == ' ')
	{
        text = text.substring(1, text.length);
	}
    while (text.charAt(text.length-1) == ' ') 
	{
        text = text.substring(0, text.length-1);
	}
	text = text.replace(/\r\n|\r|\n/gi,' ')
	return text;
} 

function returnfalse(Message, ObjField)
{
	alert(Message);
	ObjField.focus();
	ObjField.select();
	return false;
}

function isCommonValidate(ObjField, BlankMessage, Condition, MandatoryFlag, Minlen, MinMessage, Maxlen, MaxMessage)
//function isCommonValidate(ObjField, BlankMessage, Condition, MandatoryFlag, Minlen, MinMessage, Maxlen, MaxMessage, CtrlKeyId)
{
	var ObjPattern, Message
	ObjField.value = trim(ObjField.value);
	var str = ObjField.value;
	if (MandatoryFlag*1 == 1 && str == '')
		return returnfalse(BlankMessage, ObjField);

	if (str != '')
	{
		if(arguments.length > 4)
		{
			if (str.length < Minlen*1)
			{	return returnfalse(MinMessage, ObjField); }
		
			if(arguments.length > 6 && str.length > Maxlen*1)
			{	return returnfalse(MaxMessage, ObjField); }
		}
		switch(Condition*1)
		{ 
			case 1:
					ObjPattern= /^[0-9]+$/gi; //for credit card
					Message="Invalid entry, only digits are allowed.\nPlease re-enter";
					break;
			case 2:
					ObjPattern= /^[0-9 ]+$/gi; //for phone no.
					//Message="Invalid entry, only digits and spaces are allowed.\nPlease re-enter";
					CtrlKeyId = 'ValidateJS_alertForPhoneNumber';
    			    Message = ResourceManager.GetString(CtrlKeyId);
    			    if(Message == null || Message == "undefined")
    			        Message = "Invalid entry, only digits and spaces are allowed.\nPlease re-enter";
					break;
			case 3:
					ObjPattern= /^[0-9.]+$/gi; //for rate
					Message="Invalid entry, only digits and decimal are allowed.\nPlease re-enter";
					break;
			case 4:
					ObjPattern= /^[a-zA-Z]+$/gi;//
					Message="Invalid entry, only alphabets are allowed.\nPlease re-enter";
					break;
			case 5:
					ObjPattern= /^[a-zA-Z ]+$/gi;//for name, state
					//Message="Invalid entry, only alphabets and spaces are allowed.\nPlease re-enter";
					CtrlKeyId = 'ValidateJS_alertForName_State';
    			    Message = ResourceManager.GetString(CtrlKeyId);
    			    if(Message == null || Message == "undefined")
    			        Message = "Invalid entry, only alphabets and spaces are allowed.\nPlease re-enter";
    			    break;
			case 6:
					ObjPattern= /^[a-zA-Z0-9]+$/gi;//programme no, zip code
					Message="Invalid entry, only alphabets and digits are allowed.\nPlease re-enter";
					break;
			case 7:
					ObjPattern= /^[a-zA-Z0-9 ]+$/gi;//for city
					Message="Invalid entry, only alphabets, digits and spaces are allowed.\nPlease re-enter";
					break;
			case 8:
					ObjPattern= /^[^'\"]+$/gi;
					Message="Invalid entry,  apostrophes (') and double quotes (\") are not allowed.\nPlease re-enter";
					break;
			case 9:
					ObjPattern= /^[a-zA-Z0-9()]+$/gi;//
					Message="Invalid entry, only alphabets, digits and Parentheses are allowed.\nPlease re-enter";
					break;
			case 10:
					ObjPattern= /^[a-zA-Z0-9(). ]+$/gi;//
					Message="Invalid entry, only alphabets, digits, Parentheses, dots and spaces are allowed.\nPlease re-enter";
					break;
			case 11:
					ObjPattern= /^[a-zA-Z0-9-()., ]+$/gi;//
					Message="Invalid entry, only alphabets, digits, Parentheses, comma, dots and spaces are allowed.\nPlease re-enter";
					break;
			case 12:
					//ObjPattern= /^[A-Za-z]\w*[.|-]*\w*[@]\w+([.|-]\w*){1,8}$/gi; //email id
					ObjPattern=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9_\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
					//Message="Invalid entry, Please enter correct email address.";
					CtrlKeyId = 'ValidateJS_alertForLogin_Email_Id';
    				Message = ResourceManager.GetString(CtrlKeyId);
    				if(Message == null || Message == "undefined")
    			        Message = "Invalid entry, Please enter correct email address.";
					break;
			case 13: ///login id
					if ((str.charAt(0) == '_')||((str.charAt(0) >= 0)&&(str.charAt(0) <= 9)))
					{
						//Message="Invalid entry, first character can not be a number or underscore.\nPlease re-enter";
						CtrlKeyId = 'ValidateJS_alertForLoginInvalidEntry13_1';
    					Message = ResourceManager.GetString(CtrlKeyId);
					    if(Message == null || Message == "undefined")
    			            Message = "Invalid entry, first character can not be a number or underscore.\nPlease re-enter.";
					    return returnfalse(Message, ObjField);
					}
					if (str.charAt(str.length-1) == '_')
					{
						//Message="Invalid entry, last character can not be underscore.\nPlease re-enter";
						CtrlKeyId = 'ValidateJS_alertForLoginInvalidEntry13_2';
						Message = ResourceManager.GetString(CtrlKeyId);
						if(Message == null || Message == "undefined")
    			            Message = "Invalid entry, last character can not be underscore.\nPlease re-enter.";
						return returnfalse(Message, ObjField);
					}
					ObjPattern= /^\w+[.]*\w*$/gi; //login id
					//Message="Invalid entry, only alphabets, digits, dot and underscores are allowed.\nPlease re-enter";
					CtrlKeyId = 'ValidateJS_alertForLoginInvalidEntry13_3';
					Message = ResourceManager.GetString(CtrlKeyId);
					if(Message == null || Message == "undefined")
    			       Message = "Invalid entry, only alphabets, digits, dot and underscores are allowed.\nPlease re-enter.";
					break;
			case 14://hexadecimal code
					ObjPattern= /^#[A-Fa-f0-9]{6}$/gi; 
					Message="Invalid entry, Please enter correct Hexadecimal code.";
					break;
			case 15://for address or comments (not to go on host)
					ObjPattern= /^[^'\"<>]+$/gi;
					Message="Invalid entry,  apostrophes ('), double quotes (\"), less then (<) and greater then (>) signs are not allowed.\nPlease re-enter";
					break;
			case 16:
					ObjPattern= /^[0-9]+$/gi; //for queue no.
					Message="Invalid entry, only digits are allowed.\nPlease re-enter";
					break;
			case 17:  ///login id
					if ((str.charAt(0) == '_')||((str.charAt(0) >= 0)&&(str.charAt(0) <= 9)))
					{
						//Message="Invalid entry, first character can not be a number or underscore.\nPlease re-enter";
						CtrlKeyId = 'ValidateJS_alertForPasswordInvalidEntry17_1';
					    Message = ResourceManager.GetString(CtrlKeyId);
					    if(Message == null || Message == "undefined")
    			           Message = "Invalid entry, first character can not be a number or underscore.\nPlease re-enter.";
						return returnfalse(Message, ObjField);
					}
					if (str.charAt(str.length-1) == '_')
					{
						//Message="Invalid entry, last character can not be underscore.\nPlease re-enter";
						CtrlKeyId = 'ValidateJS_alertForPasswordInvalidEntry17_2';
					    Message = ResourceManager.GetString(CtrlKeyId);
					    if(Message == null || Message == "undefined")
    			           Message = "Invalid entry, last character can not be underscore.\nPlease re-enter.";
						return returnfalse(Message, ObjField);
					}
					//ObjPattern= /^\w+[.]*\w+[@]*\w*$/gi; //login id
					ObjPattern= /^[a-zA-Z0-9().@_ ]+$/gi;//
					CtrlKeyId = 'ValidateJS_alertForPasswordInvalidEntry17_3';
					Message = ResourceManager.GetString(CtrlKeyId);
					if(Message == null || Message == "undefined")
    			       Message = "Invalid entry, only alphabets,digits,dot,@,space and underscores are allowed.\nPlease re-enter.";
					//Message="Invalid entry, only alphabets,digits,dot,@,space and underscores are allowed.\nPlease re-enter";
					break;
			case 18 : // to prevent the html Text to be pasted in the textarea
				    ObjPattern= /^[a-zA-Z0-9().@_ ]+$/gi;//
					Message="HTML Tags are not allowed";
					break;			
			case 19:
					ObjPattern= /^[a-zA-Z0-9\-]+$/gi;//programme no, zip code
					Message="Invalid entry, only alphabets and digits and '-' are allowed.\nPlease re-enter";
					break;
							
		}
		if (!(ObjPattern.test(str)))
		{	return returnfalse(Message,ObjField); }
		ObjPattern.test(str) ///for netscape error handling
	}
	return true;
}
// How to use this function ????????
//	if (!(isCommonValidate(document.form.City,"Please enter the city name",7,1,3,"Please enter the city name.",50,"Please enter the city name")))
//	{ return false; }

function isHexCode(ObjField1,ObjField2,PartMessage,MandatoryFlag)
{
	var ObjPattern, Message
	ObjField1.value=trim(ObjField1.value);
	var str=ObjField1.value;
	if (str != '')
	{
		if(str.charAt(0) != '#')
		{
			Message="Invalid entry, first position should be #(hash).\nPlease re-enter";
			return returnfalse(Message,ObjField1);
		}
	}
	if (MandatoryFlag*1==1 && str=='')
	{
		Message="Do you want to fill the original value in " + PartMessage;
		if (confirm(Message)==true)
		{
			ObjField1.value=ObjField2.value;
			return true;
		}
	}
	var BlankMessage="Please enter new " + PartMessage;
	return isCommonValidate(ObjField1, BlankMessage, 14, MandatoryFlag)
}

function CheckNumericCharachter(objField, objFieldCaption )
	{        
		var textRE=/^[0-9]*$/;
		if(!textRE.test(objField.value))
		{
			alert(objFieldCaption + " can accept positive numeric value only.");
			objField.focus();
			return false;
		}
	  
		return true;
	}
	
function CheckNumberLimit(objField, objFieldCaption, intLessThan, intGreterThan) 
{
   var objValue = objField.value; 
   objValue = TrimAll(objValue);
   if(CheckFloatCharachter(objField, objFieldCaption))
	  {
		if(objValue.length > 0)   
		{
			if( parseInt(objValue) < intLessThan || parseInt(objValue) > intGreterThan ) 
			{
				alert(objFieldCaption + " can not accept less than " + intLessThan + " and more than " + intGreterThan + ".");
				objField.focus();
				return false;
			}
		} 
	}
	else
	{
	  return false;
	}        
	return true;
}   