//** Smooth Navigational Menu- By Dynamic Drive DHTML code library: http://www.dynamicdrive.com
//** Script Download/ instructions page: http://www.dynamicdrive.com/dynamicindex1/ddlevelsmenu/
//** Menu created: Nov 12, 2008

//** Dec 12th, 08" (v1.01): Fixed Shadow issue when multiple LIs within the same UL (level) contain sub menus: http://www.dynamicdrive.com/forums/showthread.php?t=39177&highlight=smooth

//** Feb 11th, 09" (v1.02): The currently active main menu item (LI A) now gets a CSS class of ".selected", including sub menu items.

//** May 1st, 09" (v1.3):
//** 1) Now supports vertical (side bar) menu mode- set "orientation" to 'v'
//** 2) In IE6, shadows are now always disabled

//** July 27th, 09" (v1.31): Fixed bug so shadows can be disabled if desired.


var ddsmoothmenu={

//Specify full URL to down and right arrow images (23 is padding-right added to top level LIs with drop downs):
arrowimages: {down:['downarrowclass', 'down.gif', 23], right:['rightarrowclass', 'right.gif']},

transition: {overtime:300, outtime:300}, //duration of slide in/ out animation, in milliseconds
shadow: {enable:true, offsetx:5, offsety:5},

///////Stop configuring beyond here///////////////////////////

detectwebkit: navigator.userAgent.toLowerCase().indexOf("applewebkit")!=-1, //detect WebKit browsers (Safari, Chrome etc)
detectie6: document.all && !window.XMLHttpRequest,

getajaxmenu:function($, setting){ //function to fetch external page containing the panel DIVs
	var $menucontainer=$('#'+setting.contentsource[0]) //reference empty div on page that will hold menu
	$menucontainer.html("Loading Menu...")
	$.ajax({
		url: setting.contentsource[1], //path to external menu file
		async: true,
		error:function(ajaxrequest){
			$menucontainer.html('Error fetching content. Server Response: '+ajaxrequest.responseText)
		},
		success:function(content){
			$menucontainer.html(content)
			ddsmoothmenu.buildmenu($, setting)
		}
	})
},


buildmenu:function($, setting){
	var smoothmenu=ddsmoothmenu
	var $mainmenu=$("#"+setting.mainmenuid+">ul") //reference main menu UL
	$mainmenu.parent().get(0).className=setting.classname || "ddsmoothmenu"
	var $headers=$mainmenu.find("ul").parent()
	$headers.hover(
		function(e){
			$(this).children('a:eq(0)').addClass('selected')
		},
		function(e){
			$(this).children('a:eq(0)').removeClass('selected')
		}
	)
	$headers.each(function(i){ //loop through each LI header
		var $curobj=$(this).css({zIndex: 100-i}) //reference current LI header
		var $subul=$(this).find('ul:eq(0)').css({display:'block'})
		this._dimensions={w:this.offsetWidth, h:this.offsetHeight, subulw:$subul.outerWidth(), subulh:$subul.outerHeight()}
		this.istopheader=$curobj.parents("ul").length==1? true : false //is top level header?
		$subul.css({top:this.istopheader && setting.orientation!='v'? this._dimensions.h+"px" : 0})
		$curobj.children("a:eq(0)").css(this.istopheader? {paddingRight: smoothmenu.arrowimages.down[2]} : {}).append( //add arrow images
			'<img src="'+ (this.istopheader && setting.orientation!='v'? smoothmenu.arrowimages.down[1] : smoothmenu.arrowimages.right[1])
			+'" class="' + (this.istopheader && setting.orientation!='v'? smoothmenu.arrowimages.down[0] : smoothmenu.arrowimages.right[0])
			+ '" style="border:0;" />'
		)
		if (smoothmenu.shadow.enable){
			this._shadowoffset={x:(this.istopheader?$subul.offset().left+smoothmenu.shadow.offsetx : this._dimensions.w), y:(this.istopheader? $subul.offset().top+smoothmenu.shadow.offsety : $curobj.position().top)} //store this shadow's offsets
			if (this.istopheader)
				$parentshadow=$(document.body)
			else{
				var $parentLi=$curobj.parents("li:eq(0)")
				$parentshadow=$parentLi.get(0).$shadow
			}
			this.$shadow=$('<div class="ddshadow'+(this.istopheader? ' toplevelshadow' : '')+'"></div>').prependTo($parentshadow).css({left:this._shadowoffset.x+'px', top:this._shadowoffset.y+'px'})  //insert shadow DIV and set it to parent node for the next shadow div
		}
		$curobj.hover(
			function(e){
				var $targetul=$(this).children("ul:eq(0)")
				this._offsets={left:$(this).offset().left, top:$(this).offset().top}
				var menuleft=this.istopheader && setting.orientation!='v'? 0 : this._dimensions.w
				menuleft=(this._offsets.left+menuleft+this._dimensions.subulw>$(window).width())? (this.istopheader && setting.orientation!='v'? -this._dimensions.subulw+this._dimensions.w : -this._dimensions.w) : menuleft //calculate this sub menu's offsets from its parent
				if ($targetul.queue().length<=1){ //if 1 or less queued animations
					$targetul.css({left:menuleft+"px", width:this._dimensions.subulw+'px'}).animate({height:'show',opacity:'show'}, ddsmoothmenu.transition.overtime)
					if (smoothmenu.shadow.enable){
						var shadowleft=this.istopheader? $targetul.offset().left+ddsmoothmenu.shadow.offsetx : menuleft
						var shadowtop=this.istopheader?$targetul.offset().top+smoothmenu.shadow.offsety : this._shadowoffset.y
						if (!this.istopheader && ddsmoothmenu.detectwebkit){ //in WebKit browsers, restore shadow's opacity to full
							this.$shadow.css({opacity:1})
						}
						this.$shadow.css({overflow:'', width:this._dimensions.subulw+'px', left:shadowleft+'px', top:shadowtop+'px'}).animate({height:this._dimensions.subulh+'px'}, ddsmoothmenu.transition.overtime)
					}
				}
			},
			function(e){
				var $targetul=$(this).children("ul:eq(0)")
				$targetul.animate({height:'hide', opacity:'hide'}, ddsmoothmenu.transition.outtime)
				if (smoothmenu.shadow.enable){
					if (ddsmoothmenu.detectwebkit){ //in WebKit browsers, set first child shadow's opacity to 0, as "overflow:hidden" doesn't work in them
						this.$shadow.children('div:eq(0)').css({opacity:0})
					}
					this.$shadow.css({overflow:'hidden'}).animate({height:0}, ddsmoothmenu.transition.outtime)
				}
			}
		) //end hover
	}) //end $headers.each()
	$mainmenu.find("ul").css({display:'none', visibility:'visible'})
},

init:function(setting){
	if (typeof setting.customtheme=="object" && setting.customtheme.length==2){ //override default menu colors (default/hover) with custom set?
		var mainmenuid='#'+setting.mainmenuid
		var mainselector=(setting.orientation=="v")? mainmenuid : mainmenuid+', '+mainmenuid
		document.write('<style type="text/css">\n'
			+mainselector+' ul li a {background:'+setting.customtheme[0]+';}\n'
			+mainmenuid+' ul li a:hover {background:'+setting.customtheme[1]+';}\n'
		+'</style>')
	}
	this.shadow.enable=(document.all && !window.XMLHttpRequest)? false : this.shadow.enable //in IE6, always disable shadow
	jQuery(document).ready(function($){ //ajax menu?
		if (typeof setting.contentsource=="object"){ //if external ajax menu
			ddsmoothmenu.getajaxmenu($, setting)
		}
		else{ //else if markup menu
			ddsmoothmenu.buildmenu($, setting)
		}
	})
}

} //end ddsmoothmenu variable

//Initialize Menu instance(s):



//askmen related functions
function CreateBookmarkLink(title, url) {
	if ( title === undefined ) {
		title = "Sherpa Shangri-la treks and expedition - Nepal Trek & Climb Site.";
	}
	if ( url === undefined ) {
		url = "http://www.shangrilatrek.com/";
	}

	if (window.sidebar) { // Mozilla Firefox Bookmark
		window.sidebar.addPanel(title, url,'');
	} else if( window.external ) { // IE Favorite
		window.external.AddFavorite( url, title); 
	}
	else if(window.opera && window.print) { // Opera Hotlist
		return true;  
	}
}

function setHomepage() {
	if (document.all) {
		document.body.style.behavior='url(#default#homepage)';
		document.body.setHomePage('http://www.shangrilatrek.com/');
	}
	else if (window.sidebar) {
		if(window.netscape) {
			 try {  
				netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');  
			 }  
			 catch(e) {  
				alert('Your browser has prevented this action. Please set shangrilatrek.com as your homepage directly from your browser.');         }
			 } 
		var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components. interfaces.nsIPrefBranch);
		prefs.setCharPref('browser.startup.homepage','http://www.asp.net/130.aspx');
	}
}








/***********************************************
* Show Hint script- © Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/
		
var horizontal_offset="9px" //horizontal offset of hint box from anchor link

/////No further editting needed

var vertical_offset="0" //horizontal offset of hint box from anchor link. No need to change.
var ie=document.all
var ns6=document.getElementById&&!document.all

function getposOffset(what, offsettype){
var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
var parentEl=what.offsetParent;
while (parentEl!=null){
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
parentEl=parentEl.offsetParent;
}
return totaloffset;
}

function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function clearbrowseredge(obj, whichedge){
var edgeoffset=(whichedge=="rightedge")? parseInt(horizontal_offset)*-1 : parseInt(vertical_offset)*-1
if (whichedge=="rightedge"){
var windowedge=ie && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-30 : window.pageXOffset+window.innerWidth-40
dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure+obj.offsetWidth+parseInt(horizontal_offset)
}
else{
var windowedge=ie && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure-obj.offsetHeight
}
return edgeoffset
}

function showhint(menucontents, obj, e, tipwidth){
if ((ie||ns6) && document.getElementById("hintbox")){
dropmenuobj=document.getElementById("hintbox")
dropmenuobj.innerHTML=menucontents
dropmenuobj.style.left=dropmenuobj.style.top=-500
if (tipwidth!=""){
dropmenuobj.widthobj=dropmenuobj.style
dropmenuobj.widthobj.width=tipwidth
}
dropmenuobj.x=getposOffset(obj, "left")
dropmenuobj.y=getposOffset(obj, "top")
dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+obj.offsetWidth+"px"
dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+"px"
dropmenuobj.style.visibility="visible"
obj.onmouseout=hidetip
}
}

function hidetip(e){
dropmenuobj.style.visibility="hidden"
dropmenuobj.style.left="-500px"
}

function createhintbox(){
var divblock=document.createElement("div")
divblock.setAttribute("id", "hintbox")
document.body.appendChild(divblock)
}

if (window.addEventListener)
window.addEventListener("load", createhintbox, false)
else if (window.attachEvent)
window.attachEvent("onload", createhintbox)
else if (document.getElementById)
window.onload=createhintbox








// JavaScript Document for Customized trip

function formCheckCustomTrip(formobj){
	
	// Enter name of mandatory fields
	var fieldRequired = Array("trip_name", "fname", "phoneno", "emailid", "country", "nop", "orderdate1", "days", "budget", "comments","uword","agreecheck");
	// Enter field description to appear in the dialog box
	var fieldDescription = Array("Trip Name", "Your Full Name", "Type Valid Phone Number", "Email", "Country Must Be Selected.", "Number of person is missing.", "Arrival Date", "Duration", "Budget", "Other","Enter valid Security key","Agreement");
	// dialog message
	var alertMsg = "Please complete the following fields:\n";
	var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i;
	
	var l_Msg = alertMsg.length;
	
	for (var i = 0; i < fieldRequired.length; i++){
		var obj = formobj.elements[fieldRequired[i]];
		if (obj){
			//alert(obj.type);
			
			switch(obj.type){
				
			case "select-one":
				//alert(obj.options[obj.selectedIndex].text);
				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == "" || obj.selectedIndex == 0 ){
					alertMsg += " - " + fieldDescription[i] +"\n";
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
				
			case "text":		
			case "textarea":
				//alert(obj.name);
				if (obj.name=="emailid")
				{
					var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i;
					var returnval=emailfilter.test(obj.value)
						if (returnval==false){
							alertMsg += " - " + "Enter valid " + fieldDescription[i] + "\n";
						}
					
				}
				else if(obj.name=="phoneno")
				{
					if(obj.value == "" || obj.value == null || isNaN(obj.value)){
					alertMsg += " - " + fieldDescription[i] + "\n";
					}
					
				}
				else if(obj.name=="nop")
				{
					if(obj.value == "" || obj.value == null || isNaN(obj.value)){
					alertMsg += " - " +  fieldDescription[i] + "\n";
					}
					
				}
				else if(obj.name=="days")
				{
					if(obj.value == "" || obj.value == null || isNaN(obj.value)){
					alertMsg += " - " +  fieldDescription[i] + "\n";
					}
					
				}
				else if(obj.name=="budget")
				{
					if(obj.value == "" || obj.value == null || isNaN(obj.value)){
					alertMsg += " - " +  fieldDescription[i] + "\n";
					}
					
				}
				else if(obj.name=="uword")
				{
					var flags =jcap();
					if(flags == false){
					alertMsg += " - " +  fieldDescription[i] + "\n";
					}
					
				}
				else{
				if(obj.value == "" || obj.value == null){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				}
				break;
		
			case "hidden":
			//alert (fieldDescription[i]);
				if (obj.value == "" || obj.value == null){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;				
			case "checkbox":
			//alert (obj.value);
				if (obj.value == "on" && obj.checked !=true){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;		
			default:
			}
			if (obj.type == undefined){
				var blnchecked = false;
				for (var j = 0; j < obj.length; j++){
					if (obj[j].checked){
						blnchecked = true;
					}
				}
				if (!blnchecked){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
			}
		}
	}

	if (alertMsg.length == l_Msg){
	
		return true;
	}else{
		alert(alertMsg);
		return false;
	}
}

        
		
		
// JavaScript Document For Flight Booking

// JavaScript Document

function formCheckFlight(formobj){
	
	// Enter name of mandatory fields
	var fieldRequired = Array("full_name", "emailid", "phoneno", "country", "airlines", "airClass", "leaving", "going", "trip_type", "no_adults",  "orderdate1", "detime", "orderdate2", "retime", "uword","agreecheck");
	// Enter field description to appear in the dialog box
	var fieldDescription = Array("Your full Name", "Your Email Address", "Your Phone Number", "Country", "Preferred Airlines", "Class", "Departure City", "Destination City", "Trip Type", "Select Adults", "Departure Date", "Departure Time", "Returning Date", "Returning Time", "Enter valid Security key","Agreement");
	// dialog message
	var alertMsg = "Please complete the following fields:\n";
	var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i;
	
	var l_Msg = alertMsg.length;
	
	for (var i = 0; i < fieldRequired.length; i++){
		var obj = formobj.elements[fieldRequired[i]];
		if (obj){
			//alert(obj.type);
			
			switch(obj.type){
				
			case "select-one":
				//alert(obj.options[obj.selectedIndex].text);
				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == "" || obj.selectedIndex == 0 ){
					alertMsg += " - " + fieldDescription[i] +"\n";
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
				
			case "text":		
			case "textarea":
				//alert(obj.name);
				if (obj.name=="emailid")
				{
					var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i;
					var returnval=emailfilter.test(obj.value)
						if (returnval==false){
							alertMsg += " - " + "Enter valid " + fieldDescription[i] + "\n";
						}
					
				}
				else if(obj.name=="phoneno")
				{
					if(obj.value == "" || obj.value == null || isNaN(obj.value)){
					alertMsg += " - " + fieldDescription[i] + "\n";
					}
					
				}
			
				else if(obj.name=="uword")
				{
					var flags =jcap();
					if(flags == false){
					alertMsg += " - " +  fieldDescription[i] + "\n";
					}
					
				}
				else{
				if(obj.value == "" || obj.value == null){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				}
				break;
		
			case "hidden":
			//alert (fieldDescription[i]);
				if (obj.value == "" || obj.value == null){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;				
			case "checkbox":
			//alert (obj.value);
				if (obj.value == "on" && obj.checked !=true){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;		
			default:
			}
			if (obj.type == undefined){
				var blnchecked = false;
				for (var j = 0; j < obj.length; j++){
					if (obj[j].checked){
						blnchecked = true;
					}
				}
				if (!blnchecked){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
			}
		}
	}

	if (alertMsg.length == l_Msg){
		return true;
	}else{
		alert(alertMsg);
		return false;
	}
}

// JavaScript Document For Hotel Booking

// JavaScript Document

function formCheckHotel(formobj){
	
	// Enter name of mandatory fields
	var fieldRequired = Array("hotel", "budget", "nop", "fname", "emailid", "address", "country", "airlines", "flightno", "pickup", "uword","agreecheck");
	// Enter field description to appear in the dialog box
	var fieldDescription = Array("Hotel", "Budget per Person", "Number of Person", "Full Name", "Email", "Address", "Country", "Airlines", "Flight No.", "Airport Pickup", "Enter valid Security key","Agreement");
	// dialog message
	var alertMsg = "Please complete the following fields:\n";
	var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i;
	
	var l_Msg = alertMsg.length;
	
	for (var i = 0; i < fieldRequired.length; i++){
		var obj = formobj.elements[fieldRequired[i]];
		if (obj){
			//alert(obj.type);
			
			switch(obj.type){
				
			case "select-one":
				//alert(obj.options[obj.selectedIndex].text);
				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == "" || obj.selectedIndex == 0 ){
					alertMsg += " - " + fieldDescription[i] +"\n";
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
				
			case "text":		
			case "textarea":
				//alert(obj.name);
				if (obj.name=="emailid")
				{
					var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i;
					var returnval=emailfilter.test(obj.value)
						if (returnval==false){
							alertMsg += " - " + "Enter valid " + fieldDescription[i] + "\n";
						}
					
				}
				else if(obj.name=="phoneno")
				{
					if(obj.value == "" || obj.value == null || isNaN(obj.value)){
					alertMsg += " - " + fieldDescription[i] + "\n";
					}
					
				}
				else if(obj.name=="nop")
				{
					if(obj.value == "" || obj.value == null || isNaN(obj.value)){
					alertMsg += " - " +  fieldDescription[i] + "\n";
					}
					
				}
				else if(obj.name=="days")
				{
					if(obj.value == "" || obj.value == null || isNaN(obj.value)){
					alertMsg += " - " +  fieldDescription[i] + "\n";
					}
					
				}
				else if(obj.name=="budget")
				{
					if(obj.value == "" || obj.value == null || isNaN(obj.value)){
					alertMsg += " - " +  fieldDescription[i] + "\n";
					}
					
				}
				else if(obj.name=="uword")
				{
					var flags =jcap();
					if(flags == false){
					alertMsg += " - " +  fieldDescription[i] + "\n";
					}
					
				}
				else{
				if(obj.value == "" || obj.value == null){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				}
				break;
		
			case "hidden":
			//alert (fieldDescription[i]);
				if (obj.value == "" || obj.value == null){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;				
			case "checkbox":
			//alert (obj.value);
				if (obj.value == "on" && obj.checked !=true){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;		
			default:
			}
			if (obj.type == undefined){
				var blnchecked = false;
				for (var j = 0; j < obj.length; j++){
					if (obj[j].checked){
						blnchecked = true;
					}
				}
				if (!blnchecked){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
			}
		}
	}

	if (alertMsg.length == l_Msg){
		
		return true;
	}else{
		alert(alertMsg);
		return false;
	}
}

// Javascript for Enter Key Disablng		
function handleEnter (field, event) {
		var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
		if (keyCode == 13) {
			var i;
			for (i = 0; i < field.form.elements.length; i++)
				if (field == field.form.elements[i])
					break;
			i = (i + 1) % field.form.elements.length;
			field.form.elements[i].focus();
			return false;
		} 
		else
		return true;
}      

