var MVJS={
	Nuggets:new Object(),
	JSON:new Object(),
	PopupWindows:null,
	PopupBackgrounds:null,
	PopupZIndex:0,
	BlankSpace:' ',
	
	SingleLayout:"<div style=\"width:1000px;\"><div style=\"padding:10px;\"><div id=\"{0}_MidContainer\"></div></div></div>",
	MidRightLayout:"<div style=\"padding-left:10px;padding-bottom:10px;\"><div style=\"float:left;width:780px;\"><div id=\"{0}_MidContainer\"></div></div><div style=\"width:9px;float:left;\">&nbsp;</div><div style=\"width:190px;float:left;padding-top:20px;\"><div id=\"{0}_RightContainer\"></div></div><br style=\"clear:both;\"/></div>",
	OneColumnLayout:"<div class=\"Container\"><div id=\"{0}_MidContainer\" style=\"height:100%;\"></div></div>",
	TwoColumnLayout:"<div class=\"Container\"><table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" height=\"100%\"><tr><td class=\"JobsCSS_LeftBar\" width=\"167px\" valign=\"top\"><div style=\"text-align:left;width:auto;\" id=\"{0}_LeftContainer\"></div></td><td style=\"width:15px;\">&nbsp;</td><td style=\"width:815px;\" valign=\"top\"><div id=\"{0}_MidContainer\"></div></td></tr></table></div>",
	TwoColumnWithTopLayout:"<div class=\"Container\" style=\"width:980px;margin:10px;margin-bottom:0px;padding-bottom:10px;\"><table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"100%\" height=\"100%\"><tr><td style=\"height:28px;\"><div id=\"{0}_TopContainer\"></div></td></tr><tr><td class=\"Comp_MainDiv\" valign=\"top\"><table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"100%\" height=\"100%\"><tr><td class=\"JobsCSS_LeftBar\" valign=\"top\"><div style=\"text-align:left;\" id=\"{0}_LeftContainer\"></div></td><td style=\"width:813px;\" valign=\"top\"><div id=\"{0}_MidContainer\"></div></td></tr></table></td></tr></table></div>",
	ThreeColumnLayout:"<div class=\"Container\"><table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" height=\"100%\"><tr><td class=\"JobsCSS_LeftBar\" width=\"167px\" valign=\"top\"><div style=\"text-align:left;width:auto;\" id=\"{0}_LeftContainer\"></div></td><td style=\"width:10px;\">&nbsp;</td><td style=\"width:617px;\" valign=\"top\"><div id=\"{0}_MidContainer\"></div></td><td style=\"width:10px;\">&nbsp;</td><td style=\"width:180px;padding-top:20px;\" valign=\"top\"><div id=\"{0}_RightContainer\"></div></td></tr></table></div>",
	ThreeColumnWithTopLayout:"<div class=\"Container\" style=\"width:980px;margin:10px;margin-bottom:0px;padding-bottom:10px;\"><table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"100%\" height=\"100%\"><tr><td style=\"height:28px;\"><div id=\"{0}_TopContainer\"></div></td></tr><tr><td class=\"Comp_MainDiv\" valign=\"top\"><table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"100%\" height=\"100%\"><tr><td class=\"JobsCSS_LeftBar\" valign=\"top\"><div style=\"text-align:left;\" id=\"{0}_LeftContainer\"></div></td><td class=\"JobsCSS_BorderRight\" style=\"width:650px;\" valign=\"top\"><div id=\"{0}_MidContainer\"></div></td><td style=\"width:163px;\"><div id=\"{0}_RightContainer\"></div></td></tr></table></td></tr></table></div>",
	OneColumnTopLayout:"<div><div style=\"width:980px;padding:10px;\"><div id=\"{0}_TopContainer\"></div><div style=\"clear:both;display:block;\"><div class=\"BorderClass\" style=\"border-top:0px;\"><div class=\"BorderClass\" id=\"{0}_MidContainer\" style=\"float:left;width:815px;border-top:0px;border-left:0px;border-bottom:0px;\"></div><div style=\"float:right;width:145px;\" id=\"{0}_RightContainer\"></div><div style=\"clear:both;font-size:0px;\"></div></div></div></div></div>",
	MailColumnLayout:"<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"100%\" height=\"100%\"><tr><td class=\"LeftSideBarMailView\" valign=\"top\"><div style=\"text-align:left;\" id=\"{0}_LeftContainer\"></div></td><td width=\"10px\">&nbsp;</td><td valign=\"top\"><div id=\"{0}_MidContainer\"></div></td><td width=\"10px\">&nbsp;</td></tr></table>",
	DatingTwoColumnLayout:"<div class=\"DatingCSS_Container\"><table cellspacing=\"0\" class=\"DatingCSS_Container\" cellpadding=\"0\" border=\"0\" height=\"100%\"><tr><td class=\"DatingCSS_LeftBar\" width=\"167px\" valign=\"top\"><div style=\"text-align:left;width:auto;\" id=\"{0}_LeftContainer\"></div></td><td style=\"width:15px;\">&nbsp;</td><td style=\"width:815px;\" valign=\"top\"><div id=\"{0}_MidContainer\"></div></td><td>&nbsp;</td></tr></table></div>",
	DatingSingleLayout:"<table cellspacing=\"0\" class=\"DatingCSS_Container\" cellpadding=\"0\" border=\"0\" height=\"100%\"><tr><td valign=\"top\"><div style=\"width:1000px;\"><div style=\"padding:10px;padding-left:15px;\"><div id=\"{0}_MidContainer\"></div></div></div></td></tr></table>",
	IsIE:function() {
		
		var Browser=this.GetBrowser();
		if (Browser=="IE")
		return true;				
	},
	IsIE7 : function (){
		return (navigator.appVersion.indexOf("MSIE 7.")==-1) ? false : true;	
	},
	IsFF2 : function (){
		return (navigator.userAgent.indexOf("Firefox/2.")==-1) ? false : true;	
	},
	IsFF3 : function (){
			return (navigator.userAgent.indexOf("Firefox/3.")==-1) ? false : true;	
	},
	GetById:function(ID){
		return document.getElementById(ID);
	},
	GetByName:function(Name){
			return document.getElementsByName(Name);
	},
	GetByTags:function(tn){
		return document.getElementsByTagName(tn);
	},
	IsFireFox: function () {

		var Browser=this.GetBrowser();

		if (Browser=="FF")
		return true;
	},
	AdjustWindow:function()
	{
		top.window.moveTo(0,0);
		top.window.resizeTo(screen.availWidth,screen.availHeight);
	},
	ShowDefaultOptions:function(MenuContainer,NuggetName,SkinClassName,ObjectId)
	{
		if(MenuContainer.lang!="HELP")
		{		
			var ObjTopMenuBar = MVJS.MenuBar(MenuContainer.id,'',false);
			var ObjViewMenu = MVJS.Menu(MenuContainer.id+"_Menu");
			ObjTopMenuBar.AddItem(MVJS.MenuBarItem(1,"&nbsp;","#",'','IconsCSS_DefaultOptions','MVToolBar_AddressBar_Links',ObjViewMenu));
			var TopMenu=MVJS.Nuggets.TopMenu_Main;
			ObjViewMenu.AddItem(MVJS.MenuItem(1,0,TopMenu.DefaultOptions[0],"javascript:MVJS.LoadPage('MVHelp','"+TopMenu.DefaultOptions[0]+"',{Mid:[{NuggetName:'HelpPages',Parameters:[['NuggetName','"+NuggetName+"']]}]},false,MVJS.SingleLayout);void(0);",''));
			ObjViewMenu.AddItem(MVJS.MenuItem(2,0,TopMenu.DefaultOptions[1],"javascript:MVJS.LoadPage('SuggestFeature','"+TopMenu.DefaultOptions[1]+"',{Mid:[{NuggetName:'ContactUs',Parameters:[['NuggetName','"+NuggetName+"'],['SkinName','"+SkinClassName+"'],['ContactUsType','1']]}]},false);void(0);",''));
			ObjViewMenu.AddItem(MVJS.MenuItem(3,0,TopMenu.DefaultOptions[2],"javascript:MVJS.LoadPage('ReportBug','"+TopMenu.DefaultOptions[2]+"',{Mid:[{NuggetName:'ContactUs',Parameters:[['NuggetName','"+NuggetName+"'],['SkinName','"+SkinClassName+"'],['ContactUsType','2'],['ObjectId','"+ObjectId+"']]}]},false);void(0);",''));
			if(ObjectId!="0")
			{
				ObjViewMenu.AddItem(MVJS.MenuItem(4,0,TopMenu.DefaultOptions[3],"javascript:MVJS.LoadPage('ReportAbuse','"+TopMenu.DefaultOptions[3]+"',{Mid:[{NuggetName:'ContactUs',Parameters:[['NuggetName','"+NuggetName+"'],['SkinName','"+SkinClassName+"'],['ContactUsType','3'],['ObjectId','"+ObjectId+"']]}]},false);void(0);",''));
			}
			MenuContainer.lang="HELP";
			ObjTopMenuBar.ShowItem(0);
		}	
	},
	AdjustMainContainer:function()
	{
		
		var viewportwidth;
		var viewportheight;
		if (typeof(window.innerWidth) != 'undefined')
		{
			viewportwidth = window.innerWidth;
			viewportheight = window.innerHeight;
		}
		else if (typeof(document.documentElement) != 'undefined' && typeof(document.documentElement.clientWidth) !='undefined' && document.documentElement.clientWidth != 0)
		{
			viewportwidth = document.documentElement.clientWidth;
			viewportheight = document.documentElement.clientHeight;
		}
		else
		{
			viewportwidth = document.getElementsByTagName('body')[0].clientWidth;
			viewportheight = document.getElementsByTagName('body')[0].clientHeight;
		}
		viewportheight=viewportheight-16;
		if(viewportwidth < 1000)
		{
			document.getElementById('MVContainer').innerHTML="<br><br><br><br><br><br><br><br><br><div class='MainCompHeading' style='text-align:center;'>MyVishwa requires minimum Screen Resolution of 1024 X 768.<br>Please adjust your Resolution and visit again.</div>";
			return;
		}
		document.getElementById('MVContainer').style.width=viewportwidth;
		document.getElementById('MVContainer').style.height=viewportheight;
		
		var Footer=document.getElementById("MVNuggets_Footer");
		var Header=document.getElementById("MVNuggets_Header");
		var PageOuter=document.getElementById("MVNuggets_PageOuterDiv");
		if(MVJS.IsIE())
		{
			Footer.style.height="20px";
			Header.style.height="119px";
		}
		else
		{
			Footer.style.height="10px";
			Header.style.height="119px";
		}
		PageOuter.style.height=viewportheight-parseInt(Header.style.height)-parseInt(Footer.style.height);
	},
	HandleLinks:function(Input)
	{
		var UrlMatcher=new RegExp("((http|https)(://)|(www)|((http|https)(://)(www)))([\\w+?\\.\\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&amp;\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\\'\\,]*)?","gi");
		var Match=null;	
		var Replacement="";
		while(Match=UrlMatcher.exec(Input))
		{
			var PreviousChar=Input[Match.index-1];
			
			if(PreviousChar!="<" && PreviousChar!=">" && PreviousChar!="=")
			{
					Replacement="<a class=\"TextLink\" href=\"javascript:MVJS.Nuggets.TopMenu_Main.OpenExternalURL('"+Match[0]+"');void(0);\">"+Match[0]+"</a>";
					Input=Input.replace(Match[0],Replacement);					
					UrlMatcher.lastIndex=Match.index+Replacement.length;
			}

		}
		
		return Input;
	},
	FreeNuggets:function(Container)
	{
		if(typeof(Container)=="string")
		{
			Container=document.getElementById(Container);
		}		
		if(!Container) return;		
		var NuggetDivs=Container.getElementsByTagName("div");
		for(var x=0;x<NuggetDivs.length;x++)
		{
			
			if(NuggetDivs[x].id && NuggetDivs[x].id.length>11)
			{
			
				if(NuggetDivs[x].id.substring(0,12)=="divMVNuggets")
				{
			
					var NuggetName=NuggetDivs[x].id.substring(13,NuggetDivs[x].id.length);					
					eval("if(MVJS.Nuggets."+NuggetName+" && MVJS.Nuggets."+NuggetName+".Dispose){MVJS.Nuggets."+NuggetName+".Dispose();}");					
					eval("delete MVJS.Nuggets."+NuggetName+";");
					eval("delete MVJS.JSON."+NuggetName+";");
					eval("delete MVJS.JSON._"+NuggetName+";");
					NuggetName=NuggetName.substring(0,NuggetName.indexOf("_"));
					eval("delete Obj"+NuggetName+"Client;");
					
				}
			}
		}
	},
	HandleTimeout :function ()
	{
		var PageContainer = MVJS.Nuggets.TopMenu_Main.Tabs.GetTabPage(MVJS.Nuggets.TopMenu_Main.Tabs.GetActiveTabID(),true);
		if(PageContainer)
		{
			PageContainer.innerHTML = "";
			var IFrameElement = document.createElement("iframe");	
			IFrameElement.style.width="100%";
			IFrameElement.style.height="100%";
			IFrameElement.style.border="0px;";
			PageContainer.appendChild(IFrameElement);
			var EditorDocument;
			if (IFrameElement.contentDocument)
			{  
				EditorDocument=IFrameElement.contentDocument;
			}
			else
			{
				EditorDocument = IFrameElement.contentWindow.document;								
			}
			EditorDocument.write('<html><head><title>MyVishwa - We Create Time</title><link rel="stylesheet" href="themes/default/stylesheets/all_style.css" type="text/css"/></head><body topmargin="0" bottommargin="0">'+document.getElementById('MVNuggets_LoadingErrorDiv').innerHTML +'</body></html>');
		}
	},
	IsOpera: function () {

		var Browser=this.GetBrowser();

		if (Browser=="Opera")
		return true;
	},
	CloneObject:function (Obj){
	
	    if(Obj == null || typeof(Obj) != 'object')  return Obj;
	
	    var temp = new Obj.constructor();
	
	    for(var key in Obj){
	    	if(typeof(Obj[key])=="object")
	    	{
	        	temp[key] = this.CloneObject(Obj[key]);
	        }
	        else
	        {
	        	temp[key] = Obj[key];
	        }
	    }
	    return temp;	
	},
	GetBrowser : function() {
		if ( document.all && document.getElementById && !window.opera ) {
		    return "IE";
		}

		if ( !document.all && document.getElementById && !window.opera ) {
		    return "FF";
		}

		if ( document.all && document.getElementById && window.opera ) {
		    return "Opera";
		}
	},
	ScrollTo : function (XCoord,YCoord) {		
		document.getElementById("MVNuggets_PageOuterDiv").scrollTop = XCoord;
		document.getElementById("MVNuggets_PageOuterDiv").scrollTop = YCoord;
	},	
	SetValue : function (ControlID, Value){
		try
		{	
			if(!Value && Value!=0 && Value!=false) Value="";
			var objControl;
			if(typeof(ControlID)=='string')
			{
				if(ControlID=="") return;
				objControl= document.getElementById(ControlID);
			}
			else
			{
				objControl= ControlID;
			}
			var ElementType;
			if(typeof(Value)=="string")
			{
				try{
				Value=Value.replace(/&rsquo;/g,"'");
				Value=Value.replace(/&rdquo;/g,"\"");
				}catch(e){}
			}
			
				if(objControl==null || (objControl.type && objControl.type.toUpperCase()=="RADIO")  || (objControl.type && objControl.type.toUpperCase()=="CHECKBOX"))
				{
					
					if(objControl==null || (objControl.type && objControl.type.toUpperCase()=="CHECKBOX" ))
					{
						if(typeof(Value)!="boolean")
						{							
							objControl = document.getElementsByName(ControlID);
							if(!objControl || objControl.length<=0) return false;
							ElementType = objControl[0].tagName;
							if(ElementType=="INPUT")
							ElementType = objControl[0].type.toUpperCase();
							
						}
						else
						{
							if(!objControl) return false;
							ElementType=objControl.tagName;
							if(ElementType=="INPUT")
							ElementType=objControl.type.toUpperCase();
						}
					}
					else
					{
						objControl = document.getElementsByName(ControlID);						
						ElementType = objControl[0].tagName;
						if(ElementType=="INPUT")
						ElementType = objControl[0].type.toUpperCase();
					}
				}
				else
				{
					ElementType=objControl.tagName;
					if(ElementType=="INPUT")
					ElementType=objControl.type.toUpperCase();
				}

				if(objControl==null)
				{
					return false;
				}

				switch(ElementType)
				{
					case "A":
					case "P":
					case "LI":
					case "SPAN":
					case "TD":
					case "DIV" :
						
						objControl.innerHTML=Value;						
						if(objControl.className=="Error")
						{
							if(objControl.style.display=="block")
							{
								if(Value==""){
									objControl.style.display="none";
								}
								else
								{
									objControl.style.display="block";
								}
								
							}
							else
							{
								
								if(Value!="") objControl.style.display="block";
							}
						}
						break;
					case "SELECT":
						try
						{
							if(!objControl.multiple)
							{
								for(var x=0;x<objControl.options.length;x++)
								{
									if(objControl.options[x].value==Value)
									{
										objControl.selectedIndex=x;break;
									}
								}
							}
							else
							{
								for(var y=0;y<Value.length;y++)
								{
									for(var x=0;x<objControl.options.length;x++)
									{
										if(objControl.options[x].value==Value[y])
										{
											objControl.options[x].selected=true;
										}
									}
								}
							}
						}
						catch(e)
						{
							MVJS.ReportError(e);
						}

					break;
					case "CHECKBOX":
						if(typeof(Value)!="boolean")
						{
							for(var z=0;z<objControl.length;z++)
							objControl[z].checked = false;
							for(var y=0;y<Value.length;y++)
							{
								for(var x=0;x<objControl.length;x++)
								{
									if(objControl[x].value==Value[y])
									{
										objControl[x].checked = true;
									}
								}
							}
						}
						else
						{
							objControl.checked = Value;
						}
					break;
					case "RADIO":
						for(var x=0;x<objControl.length;x++)
						{
							if(objControl[x].value==Value)
							objControl[x].checked=true;
						}
					break;
					default:
						objControl.value=Value;
					break;
			}
		}
		catch(e)
		{
			MVJS.ReportError(e);
		}
				
	},
	ResizeImage : function(ObjImage,Height,Width){
		var NewHeight = ObjImage.height;
		var NewWidth = ObjImage.width;
		if(ObjImage.height <= Height && ObjImage.width <= Width)
		{
			NewHeight = ObjImage.height;
			NewWidth = ObjImage.width;
		}
		else
		{
			if(ObjImage.height <= Height && ObjImage.width >= Width)
			{
				NewWidth = Width;
				NewHeight = ObjImage.height * (NewWidth / ObjImage.width);
			}
			else if(ObjImage.width <= Width && ObjImage.height >= Height)
			{
				NewHeight = Height;
				NewWidth = ObjImage.width * (NewHeight / ObjImage.height);
			}
			else if(ObjImage.width >= Width && ObjImage.height >= Height)
			{
				if(ObjImage.height > ObjImage.width)
				{
					NewHeight = Height;
					NewWidth = ObjImage.width * (NewHeight / ObjImage.height);
				}
				else
				{
					NewWidth = Width;
					NewHeight = ObjImage.height * (NewWidth / ObjImage.width);
				}
			}
			else
			{
				NewHeight = ObjImage.height;
				NewWidth = ObjImage.width;
			}
		}
		ObjImage.height = Math.floor(NewHeight);
		ObjImage.width = Math.floor(NewWidth);
	},
	GetValue : function (ControlID) {
		try
		{
			var Value = "null";
			var ObjTarget;
			var ElementType;
				if(typeof(ControlID)=='string')
				{
					ObjTarget = document.getElementById(ControlID);				
				}
				else
				{
					ObjTarget = ControlID;
				}

				if(ObjTarget == null || (ObjTarget.type && ObjTarget.type.toUpperCase()=="RADIO"))
				{					
					ObjTarget = document.getElementsByName(ControlID);					
					if(!ObjTarget) return false;
					ElementType = ObjTarget[0].tagName;
					if(ElementType=="INPUT")
					ElementType = ObjTarget[0].type.toUpperCase();
				}
				else if(ObjTarget && MVJS.IsIE() && (ObjTarget.type && ObjTarget.type.toUpperCase()=="CHECKBOX"))
				{	
					var StrControlId = (typeof(ControlID)=='string')?ControlID:ControlID.id;
					if(ObjTarget.id && StrControlId && ObjTarget.id==StrControlId)
					{						
						if(typeof(ControlID)=='string')
							ObjTarget = document.getElementById(ControlID);
						else
							ObjTarget = ControlID;
						ElementType = ObjTarget.tagName;
						ElementType = ObjTarget.type.toUpperCase();
					}
					else
					{
						ObjTarget = document.getElementsByName(ControlID);
						ElementType = ObjTarget[0].tagName;
						ElementType = ObjTarget[0].type.toUpperCase();
					}
				}
				else
				{	
					ElementType = ObjTarget.tagName;
					if(ElementType=="INPUT")
					ElementType = ObjTarget.type.toUpperCase();
				}

				if(!ObjTarget)
				{
					return Value;
				}

				switch(ElementType)
				{
					case "DIV":
					case "SPAN":
					case "TD":
					case "A":
						Value = ObjTarget.innerHTML;
					break;
					case "SELECT":
						if(ObjTarget.options.length > 0)
						{
							if(!ObjTarget.multiple)
							{
								if(ObjTarget.selectedIndex > -1)
									Value = ObjTarget.options[ObjTarget.selectedIndex].value;
							}
							else
							{
								var TempValues = "";
								for(var x=0;x<ObjTarget.options.length;x++)
								{
									if(ObjTarget.options[x].selected==true)
									{
										TempValues += "\u21BF\u21BE"+ObjTarget.options[x].value+"\u21C3\u21C2";
									}
								}
								if(TempValues != "")
								Value = TempValues;
							}
						}
						break;
					case "CHECKBOX":
						var TempValues = "";												
						if(ObjTarget.length)
						{
							for(var x=0;x<ObjTarget.length;x++)
							{
								if(ObjTarget[x].checked==true)
								{
									TempValues += "\u21BF\u21BE"+ObjTarget[x].value+"\u21C3\u21C2";
								}
							}
							if(TempValues != "")
							Value = TempValues;
						}
						else
						{
							if(ObjTarget.checked == true)
							Value = "True";
							else
							Value = "False";
						}

					break;
					case "RADIO":
						var TempValue = "null";
						for(var x=0;x<ObjTarget.length;x++)
						{
							if(ObjTarget[x].checked==true)
							{
								TempValue = ObjTarget[x].value;
								break;
							}
						}
						if(TempValue != "")
						Value = TempValue;
					break;
					case "TEXT":
					case "TEXTAREA":
						if(ObjTarget.className != "WaterMarkClass")
						Value = ObjTarget.value;
						else
						Value = '';						
					break;
					default:						
						Value = ObjTarget.value;
					break;
				}
			return MVJS.Trim(Value);
		}
		catch(e)
		{
			MVJS.ReportError(e);
		}		
	},
	ExecuteTimeoutScript:function(strScript)
	{
		try
		{
			eval(strScript)
		}
		catch(e)
		{
			/*Do Nothing*/
		}
	},
	SetTimeoutMessage:function(ControlID,Message,TimeoutDuration)
	{
		if(ControlID)
		{
			if(!Message)
			{
				Message = '';
			}
			if(!TimeoutDuration)
			{
				TimeoutDuration = 3000;
			}
			MVJS.SetValue(ControlID,Message);
			var strScript = "MVJS.ExecuteTimeoutScript(\"MVJS.SetValue('"+ControlID+"','');\");";
			setTimeout(strScript,TimeoutDuration);
		}
	},
	SetCSSClass : function(ControlID,CSSClassName){
		var objControl;
		if(typeof(ControlID)=='string')
		{
			objControl = document.getElementById(ControlID);
		}
		else
		{
			objControl = ControlID;
		}
		if(objControl)
		{
			if(CSSClassName)
			{
				objControl.className = CSSClassName;
			}
		}
	},
	GetCSSClass : function(ControlID){
		var objControl;
		if(typeof(ControlID)=='string')
		{
			objControl = document.getElementById(ControlID);
		}
		else
		{
			objControl = ControlID;
		}
		if(objControl)
		{
			return objControl.className;
		}
	},
	IsClipboardAccssible : function()
	{
		if(window.clipboardData && clipboardData.setData)
		{
			return true;
		}
		else
		{
			return false;
		}
	},
	CopyToClipboard : function(Source)
	{
		try
		{
			if(typeof(Source)!='string')
			{
				Source = this.GetValue(Source);
			}
			if(Source)
			{
				var clipboarddiv=document.getElementById('divclipboardswf');
				if(!clipboarddiv)
				{
					clipboarddiv=document.createElement('div');
					clipboarddiv.setAttribute('name','divclipboardswf');
					clipboarddiv.setAttribute('id','divclipboardswf');
					clipboarddiv.style.display='none';
					document.body.appendChild(clipboarddiv);
				}
				clipboarddiv.innerHTML='<embed src="themes/default/flash/Clipboard.swf" FlashVars="strData='+Source+'" width="200" height="200" type="application/x-shockwave-flash"></embed>';
				return true;
			}
		}
		catch(e)
		{
			/*Do Nothing*/
		}
	},
	Focus : function(ControlID){
		var objControl;
		if(typeof(ControlID)=='string')
		{
			objControl = document.getElementById(ControlID);
		}
		else
		{
			objControl = ControlID;
		}
		
		if(objControl)
		{
			try
			{
				objControl.focus();
			}
			catch(e)
			{
				/*Control Might be hidden*/
			}
		}
	},
	FillDropdown : function (ControlID,ItemArray,ClearExisting,ReverseOrder){ 
		
		var objControl;
		if(typeof(ControlID)=='string')
		{
			objControl = document.getElementById(ControlID);
		}
		else
		{
			objControl = ControlID;
		}
		
		if(!objControl) return;
		if(ClearExisting) objControl.options.length=0;
		if(typeof(ItemArray)=='string')
		{
			var TempArray = new Array();
			var objSourceControl = document.getElementById(ItemArray);
			for(var x=0; x < objSourceControl.options.length; x++)
			{
				TempArray[TempArray.length] = [objSourceControl.options[x].text,objSourceControl.options[x].value];
			}
			ItemArray = TempArray;
		}
		var TextIndex =0;
		var ValueIndex =1;
		
		if (ReverseOrder)
		{
			TextIndex=1;
			ValueIndex=0;
			
		}
		
		for(var x = 0; x < ItemArray.length; x++) {
		    var option = document.createElement('option');
		    try{
			ItemArray[x][TextIndex]=ItemArray[x][TextIndex].replace(/&rsquo;/g,"'");
			ItemArray[x][TextIndex]=ItemArray[x][TextIndex].replace(/&rdquo;/g,"\"");
			}catch(e){}
			
		    option.text=ItemArray[x][TextIndex];
		    option.value=ItemArray[x][ValueIndex];
		    objControl.options[objControl.options.length]=option;
		}
	},
	GetGUID : function()
	{
		return ((((((1+Math.random())*0x10000)|0).toString(16).substring(1))+((((1+Math.random())*0x10000)|0).toString(16).substring(1))+"-"+((((1+Math.random())*0x10000)|0).toString(16).substring(1))+"-"+((((1+Math.random())*0x10000)|0).toString(16).substring(1))+"-"+((((1+Math.random())*0x10000)|0).toString(16).substring(1))+"-"+((((1+Math.random())*0x10000)|0).toString(16).substring(1))+((((1+Math.random())*0x10000)|0).toString(16).substring(1))+((((1+Math.random())*0x10000)|0).toString(16).substring(1))).toUpperCase());
	},
	GetItemsPacket : function(List)
	{
		try
		{
			var Ids="";
			for(var I=0;I<List.length;I++)
			{
				Ids +="\u21BF\u21BE"+List[I]+"\u21C3\u21C2";
			}
			return Ids;
		}
		catch(e)
		{
			MVJS.ReportError(e);
		}			
	},
	SortList : function(Source)
	{
		try
		{
			var Source=document.getElementById(Source);
			for(var x=0;x<Source.options.length;x++)
			{
				for(var y=x+1;y<Source.options.length;y++)		
				{
					if(Source.options[x].text > Source.options[y].text)
					{
						var Tmp = "";	
						Tmp = Source.options[x].value;
						Source.options[x].value = Source.options[y].value;
						Source.options[y].value = Tmp;
						Tmp = Source.options[x].text;
						Source.options[x].text = Source.options[y].text;
						Source.options[y].text = Tmp;
					}
				}
			}
		}
		catch(e)
		{
			MVJS.ReportError(e);
		}
	},
	FillForm : function(ItemsArray)
	{
		for(var x=0;x<ItemsArray.length;x++)
		{
			MVJS.SetValue(ItemsArray[x][0],ItemsArray[x][1]);
		}
	},
	SetFileTitle : function(FileInputId,TargetControlId)
	{
		var SourceValue = MVJS.GetValue(FileInputId);
		if((SourceValue.lastIndexOf('.') > 0))
		{
			if(SourceValue.lastIndexOf('\\') > 0)
			{
				SourceValue = SourceValue.substring(SourceValue.lastIndexOf('\\') + 1);
			}
			var Extension = SourceValue.substring(SourceValue.lastIndexOf('.') + 1);
			Extension = Extension.toLowerCase();
			var FileTitle = SourceValue.substring(0,(SourceValue.length - Extension.length - 1));
			MVJS.SetValue(TargetControlId,FileTitle);
		}
		else
		{
			return '';
		}
	},
	SetOptionText : function(ControlID,OptionId,OptionValue)
	{
		this.GetOptionText(ControlID,OptionId,OptionValue);
	},
	GetOptionText : function(ControlID,OptionValue,NewText)
	{
		try
		{
			var ObjControl;
			if(typeof(ControlID)=='string')
			{
				ObjControl= document.getElementById(ControlID);
			}
			else
			{
				ObjControl= ControlID;
			}
			if(!ObjControl || ObjControl.options.length == 0)
			{
				return null;
			}
			else
			{
				if(OptionValue)
				{
					for(var i=0; i<ObjControl.options.length; i++)
					{	
						if(ObjControl.options[i].value == OptionValue)
						{
							if(!NewText)
							{
								return ObjControl.options[i].text;
							}
							else
							{
								ObjControl.options[i].text=NewText;
							}
						}
					}
					return null;
					
				}
				else
				{
					if(!NewText)
					{
						return ObjControl.options[ObjControl.selectedIndex].text;
					}
					else
					{
						ObjControl.options[ObjControl.selectedIndex].text=NewText;
					}
				}
			}
		}
		catch(e)
		{
			MVJS.ReportError(e);
		}
	},
	TextAreaCounter:function(Field,CounterContainer,MaxLimit)
	{
		
		
		if(typeof(Field)=="string")
		{
			Field=document.getElementById(Field);
		}
		if(typeof(CounterContainer)=="string")
		{
			CounterContainer=document.getElementById(CounterContainer);
		}
		
		if (Field.value.length > MaxLimit)
		{
			Field.value = Field.value.substring(0, MaxLimit);
		}
		else
		{
			CounterContainer.innerHTML = Field.value.length + "/" + MaxLimit;
		}
		
	},
	StringFormat:function(strString,argsArray)
	{
		for(var x=0;x<argsArray.length;x++)
		{
			if(typeof(argsArray[x])=="undefined" || !argsArray[x])
			{
				argsArray[x]="";
			}
			
			try{strString=strString.replace(new RegExp( "\\{" + x + "\\}", "gi" ),argsArray[x]);}catch(e){}
		}
		return strString;		
	},	
	FormatString:function(strString,argsArray)
	{
		for(var x=0;x<argsArray.length;x++)
		{
			
			try{strString=strString.replace("{"+x+"}",argsArray[x]);}catch(e){}
		}
		return strString;
	},
	XMLSafeString:function(strString)
	{
		if(typeof(strString) == 'string')
		{
			while(strString.indexOf('&amp;') != -1)
			{
				strString=strString.replace(new RegExp('\&amp;', "gi" ),'&');
			}
			strString=strString.replace(new RegExp('\&quot;', "gi" ),'"');
			strString=strString.replace(new RegExp('\&lt;', "gi" ),'<');
			strString=strString.replace(new RegExp('\&gt;', "gi" ),'>');
			strString=strString.replace(new RegExp('\&#39;', "gi" ),"'");
			strString=strString.replace(new RegExp('amp;', "gi" ),'&');
			strString=strString.replace(new RegExp('quot;', "gi" ),'"');
			strString=strString.replace(new RegExp('lt;', "gi" ),'<');
			strString=strString.replace(new RegExp('gt;', "gi" ),'>');
			strString=strString.replace(new RegExp('#39;', "gi" ),"'");
			return strString;
		}
		else
		{
			return strString;
		}
	},
	CheckAll : function(ControlName,Value){
		var Elements=document.getElementsByName(ControlName);
		if(!Elements)
		{
			return;
		}
		for(var x=0;x<Elements.length;x++)
		{
			Elements[x].checked=Value;
		}
	},

	Enable : function (ControlID) {	
		try
		{
			if(typeof(ControlID)=='string' && !document.getElementById(ControlID) || !ControlID)		
			{
				return;
			}
			MVJS.StyleHandler.SetEnable(ControlID,true);
		}
		catch(e)
		{
			/*DO NOTHING*/
		}
	},

	Disable : function (ControlID) {
		try
		{
			if(typeof(ControlID)=='string' && !document.getElementById(ControlID) || !ControlID)	
			{
				return;
			}
			MVJS.StyleHandler.SetEnable(ControlID,false);
		}
		catch(e)
		{
			/*DO NOTHING*/
		}
	},

	Show : function (ControlID) {
		try
		{
			if(typeof(ControlID)=='string' && !document.getElementById(ControlID) || !ControlID)	
			{
				return;
			}
			MVJS.StyleHandler.SetVisible(ControlID,true);
		}
		catch(e)
		{
			/*DO NOTHING*/
		}
	},

	Hide : function (ControlID) {
		try
		{
			if(typeof(ControlID)=='string' && !document.getElementById(ControlID) || !ControlID)	
			{
				return;
			}
			MVJS.StyleHandler.SetVisible(ControlID,false);
		}
		catch(e)
		{
			/*DO NOTHING*/
		}
	},
	ShowTimeoutLogin : function (PopupControlID)
	{
		if(typeof(PopupControlID) == "string" )
		{
			this.TimeoutLoginPop = document.getElementById(PopupControlID);
		}
		else
		{
			this.TimeoutLoginPop=PopupControlID;
		}
		if(!this.TimeoutLoginBk)
		{
			this.TimeoutLoginBk = document.getElementById('TimeoutLoginSelectBuster');						
			this.TimeoutLoginBk.style.top=0;
			this.TimeoutLoginBk.style.left=0;
			MVJS.StyleHandler.SetProperty(this.TimeoutLoginBk,"backgroundColor","#EAF4FF");
			MVJS.StyleHandler.SetOpacity(this.TimeoutLoginBk,5);
		}
		this.TimeoutLoginBk.style.height = "100%";
		this.TimeoutLoginBk.style.width = "100%";
		this.TimeoutLoginBk.style.display="block";
		MVJS.StyleHandler.SetProperty(this.TimeoutLoginBk,"zIndex",2000+MVJS.PopupZIndex); 
		MVJS.StyleHandler.SetProperty(this.TimeoutLoginPop,"zIndex",2001+MVJS.PopupZIndex); 				
		var left = parseInt(screen.availWidth)/2 -150;
		var top = parseInt(screen.availHeight)/2 -100;
		MVJS.CoordinatesHandler.MoveControl(this.TimeoutLoginPop, "LeftTop", left, top,null,false);
		MVJS.Show(this.TimeoutLoginPop);
		
	},
	HideTimeoutLogin : function ()
	{
		this.TimeoutLoginBk.style.height = 0;
		this.TimeoutLoginBk.style.width = 0;
		MVJS.Hide(this.TimeoutLoginBk);
		MVJS.Hide(this.TimeoutLoginPop);
	},
	ShowPopup : function(PopupControlID,ShowModal,ParentControlID,Anchor,ParentAnchor,CloseCallBack,ScrollTop){
		
		if(!CloseCallBack) CloseCallBack= null;
		
		if(ScrollTop)
		MVJS.ScrollTo(0,0);
		
		if(MVJS.IsIE() && document.getElementById('MVNuggets_PageOuterDiv'))
		{
			document.getElementById('MVNuggets_PageOuterDiv').style.overflow = "hidden";
		}
		if(MVJS.IsFF2())
		{
			var Pop = document.getElementById(PopupControlID);
			if(!Pop) return false;
			Pop.className="OverFlowClass";
			if(!Pop.lang || Pop.lang!="Fixed")
			{
				Pop.style.height=parseInt(Pop.style.height)+150;
				Pop.lang="Fixed";
			}
		}
		
		if(MVJS.PopupWindows==null)
		{
			MVJS.PopupWindows=new Array();
			MVJS.PopupBackgrounds=new Array();
			MVJS.PopupBackgroundsTop=new Array();
			MVJS.PopupCloseCallBacks=new Array();
		}
		
		MVJS.PopupCloseCallBacks[MVJS.PopupCloseCallBacks.length]= CloseCallBack;
		
		var PopupWindow=document.getElementById(PopupControlID);
		if(!PopupWindow) return false;
		if(MVJS.PopupWindows.length>0)
		{
			for(var i=0;i<MVJS.PopupWindows.length;i++)
			{
				if(MVJS.PopupWindows[i]==PopupWindow)
				return;
			}
		}
		
		if(Anchor==null) Anchor="CenterCenter";
		if(ParentAnchor==null) ParentAnchor="CenterCenter";		
		if(ShowModal==null) ShowModal=true;
		var divBackground;
		if(ShowModal)
		{
			divBackground=document.createElement("IFRAME");

			var divBackgroundTop=document.createElement("div");
			document.body.appendChild(divBackground);
			document.body.appendChild(divBackgroundTop);
			divBackground.className = "SelectBuster";
			divBackgroundTop.className = "SelectBuster";
			divBackground.style.height = "100%";
			divBackground.style.width = "100%";
			divBackground.style.display="block";
			divBackgroundTop.style.height = "100%";
			divBackgroundTop.style.width = "100%";
			divBackgroundTop.style.display="block";



			var BkTOp = 0;
			if(MVJS.IsFireFox())
			{

				BkTOp = parseInt(MVJS.Nuggets.TopMenu_Main.TabPageTop);
				divBackground.style.width = parseInt(divBackground.offsetWidth) + 10;
				divBackground.style.height = parseInt(divBackground.offsetHeight) - BkTOp;			

				divBackgroundTop.style.height = parseInt(divBackgroundTop.offsetHeight) - BkTOp;
			}

			if(MVJS.IsIE())
			{
				/***divBackground.style.width = parseInt(divBackground.offsetWidth) + 20;***/
				/***(BkTOp=parseInt(MVJS.Nuggets.TopMenu_Main.ScrollTop);**/
				var ObjTabPageContainer =document.getElementById('MVNuggets_TabPageContianer');
				if(ObjTabPageContainer && ObjTabPageContainer.childNodes.length>1)
				{
					var InnerDiv = ObjTabPageContainer.childNodes[1];			
					divBackground.style.height=parseInt(InnerDiv.offsetHeight);
				}
			}

			if(MVJS.IsIE())
			{

				if(parseInt(divBackground.style.height)<400) divBackground.style.height="630";
				if(parseInt(divBackgroundTop.style.height)<400) divBackgroundTop.style.height="630";
			}

			MVJS.StyleHandler.SetPosition(divBackground,0,BkTOp);
			MVJS.StyleHandler.SetPosition(divBackgroundTop,0,BkTOp);

			MVJS.StyleHandler.SetProperty(divBackground,"backgroundColor","#EAF4FF");
			MVJS.StyleHandler.SetProperty(divBackgroundTop,"backgroundColor","#EAF4FF");

			if(!ShowModal)
			{
				MVJS.StyleHandler.SetOpacity(divBackground,0);
				MVJS.StyleHandler.SetOpacity(divBackgroundTop,0);
			}
			else
			{
				MVJS.StyleHandler.SetOpacity(divBackground,5);
				MVJS.StyleHandler.SetOpacity(divBackgroundTop,5);
			}		
			MVJS.StyleHandler.SetProperty(divBackground,"position","absolute");
			MVJS.StyleHandler.SetProperty(divBackgroundTop,"position","absolute");		
			MVJS.PopupZIndex++;
			MVJS.StyleHandler.SetProperty(divBackground,"zIndex",1000+MVJS.PopupZIndex);
			MVJS.PopupZIndex++;		
			MVJS.StyleHandler.SetProperty(divBackgroundTop,"zIndex",1000+MVJS.PopupZIndex);
			MVJS.PopupBackgrounds[MVJS.PopupBackgrounds.length]=divBackground;
			MVJS.PopupBackgroundsTop[MVJS.PopupBackgroundsTop.length]=divBackgroundTop;
		
			if(ParentControlID)
			{
				var ParentControl;
				if(typeof(ParentControlID)=="string")
				{
					ParentControl=document.getElementById(ParentControlID);
				}
				else
				{
					ParentControl=ParentControlID;
				}
				if(ParentControl.tagName=="DIV")
				{
					ParentControl.appendChild(divBackground);
					ParentControl.appendChild(divBackgroundTop);
				}
				else
				{
					ParentControl.parentNode.appendChild(divBackground);
					ParentControl.parentNode.appendChild(divBackgroundTop);
				}
			}
			else
			{
				MVJS.Nuggets.TopMenu_Main.Tabs.GetTabPage(MVJS.GetActiveTabID()).appendChild(divBackground);	
				MVJS.Nuggets.TopMenu_Main.Tabs.GetTabPage(MVJS.GetActiveTabID()).appendChild(divBackgroundTop);
			}		
		}
		else
		{
			MVJS.PopupBackgrounds[MVJS.PopupBackgrounds.length]=null;
			MVJS.PopupBackgroundsTop[MVJS.PopupBackgroundsTop.length]=null;
		}
		
		MVJS.PopupZIndex++;		
		MVJS.StyleHandler.SetProperty(PopupControlID,"zIndex",1000+MVJS.PopupZIndex); 
		/*** Popup alignment to Center Center **/
		var Coords=MVJS.CoordinatesHandler.GetCoordsByControlID(ParentControlID,ParentAnchor,false);
		
		if(MVJS.IsIE())
		{
			Coords.Y = Coords.Y - (MVJS.Nuggets.TopMenu_Main.TabPageTop)/2;		
		}
		else
		{
			Coords.Y = Coords.Y + (MVJS.Nuggets.TopMenu_Main.TabPageTop)/2;		
		}
		MVJS.CoordinatesHandler.MoveControl(PopupControlID, Anchor, Coords.X, Coords.Y,null,false);
		/*** Popup alignment to Center Center **/
		
		MVJS.StyleHandler.SetVisible(PopupControlID,true);	
		
		if(MVJS.IsIE())
		{
			/** Scroll handling for IE ***/
			PopupWindow.style.top=parseInt(PopupWindow.style.top) + MVJS.Nuggets.TopMenu_Main.ScrollTop;
		}		
		
		MVJS.PopupWindows[MVJS.PopupWindows.length]=PopupWindow;		
		
		var InnerDivs=PopupWindow.getElementsByTagName("div");
		var divTitle;
		
		for(var x=0;x<InnerDivs.length;x++)
		{
			if(InnerDivs[x].className=="Comp_Middle")
			{
				divTitle=InnerDivs[x];
				break;
			}
			if(InnerDivs[x].className=="Comp_MainDiv")
			{
				InnerDivs[x].className='Comp_MainDivPopup';
				break;
			}
		}
		
	
		for(var x=0;x<InnerDivs.length;x++)
		{
			if(InnerDivs[x].className=="Comp_MainDiv")
			{
				InnerDivs[x].className='Comp_MainDivPopup';
				break;
			}
		}
		

		if(divTitle)
		{
			var divCaption=document.createElement("div");
			divCaption.innerHTML=divTitle.innerHTML;
			divCaption.className="InlineDiv";
			divTitle.innerHTML="";
			divTitle.appendChild(divCaption);
			var divClose=document.createElement("div");
			divClose.className="InlineDivRight";
			divClose.style.paddingTop="2px";
			divClose.style.paddingRight="2px";
			var imgClose=document.createElement("img");
			imgClose.border=0;
			imgClose.className="ImagePointerClass";
			imgClose.src="themes/default/images/dialog_close.gif";
			divClose.appendChild(imgClose);
			divClose.onclick=function(){
				MVJS.HidePopup();
			};
			divTitle.style.cursor="move";
			divClose.style.cursor="default";
			divTitle.appendChild(divClose);
			MVJS.PopupTitle=divTitle;
			MVJS.EventHandler().AttachEvent(document.body,"mousemove",MVJS.PopupMove);
			MVJS.EventHandler().AttachEvent(document.body,"mousedown",MVJS.PopupMouseDown);
			MVJS.EventHandler().AttachEvent(document.body,"mouseup",MVJS.PopupMouseUp);	
			
		}
		
	},
	PopupMouseDown:function(event)
	{
		var SourceElement=(window.event)?window.event.srcElement:event.target;
		if(SourceElement==MVJS.PopupTitle)
		{
			MVJS.PopupClickX=(window.event)?window.event.x:event.pageX;
			MVJS.PopupClickY=(window.event)?window.event.y:event.pageY;
			MVJS.PopupDragging=true;
		}
	},
	PopupMouseUp:function(event)
	{		
		MVJS.PopupDragging=false;
	},
	PopupMove:function(event){
		if(MVJS.PopupDragging)
		{
			var PopupWindow=MVJS.PopupWindows[MVJS.PopupWindows.length-1];
			
			var maxY= document.getElementById("MVNuggets_PageOuterDiv").offsetHeight - MVJS.StyleHandler.GetHeight(PopupWindow) - 40;		
			var maxX=  document.getElementById("MVNuggets_PageOuterDiv").offsetWidth - MVJS.StyleHandler.GetWidth(PopupWindow);
			var yStart;
			if(MVJS.IsIE())
			{
				yStart =0;
				
			}
			else
			{
				yStart = parseInt(MVJS.Nuggets.TopMenu_Main.TabPageTop);
				maxY +=parseInt(MVJS.Nuggets.TopMenu_Main.TabPageTop);
			}				
		
			
			var MouseX=(window.event)?window.event.x:event.pageX;
			var MouseY=(window.event)?window.event.y:event.pageY;			
			var Coords=MVJS.CoordinatesHandler.GetCoordsByControlID(PopupWindow);
			var xCoords = MouseX+Coords.X-MVJS.PopupClickX;
			var yCoords = MouseY+Coords.Y-MVJS.PopupClickY;
			
			
			if(xCoords >0 && xCoords < maxX && yCoords > yStart && yCoords < maxY)
			{
				MVJS.CoordinatesHandler.MoveControl(PopupWindow,"LeftTop",xCoords,yCoords);
				MVJS.PopupClickX=MouseX;
				MVJS.PopupClickY=MouseY;
			}
		}	
	},
	HidePopup : function(){
	
		if(!MVJS.PopupWindows || MVJS.PopupWindows.length==0 ) return;
		if(!MVJS.PopupWindows[MVJS.PopupWindows.length-1]) return;
		if(MVJS.IsIE() && document.getElementById('MVNuggets_PageOuterDiv'))
		{
			document.getElementById('MVNuggets_PageOuterDiv').style.overflow = "";
		}
		MVJS.EventHandler().RemoveEvent(document.body,"mousemove",MVJS.PopupMove);
		MVJS.EventHandler().RemoveEvent(document.body,"mousedown",MVJS.PopupMouseDown);
		MVJS.EventHandler().RemoveEvent(document.body,"mouseup",MVJS.PopupMouseUp);
		var PopupWindow=MVJS.PopupWindows[MVJS.PopupWindows.length-1];
		var InnerDivs=PopupWindow.getElementsByTagName("div");
		var divTitle = null;
		for(var x=0;x<InnerDivs.length;x++)
		{
			if(InnerDivs[x].className=="Comp_Middle")
			{
				divTitle=InnerDivs[x];
				break;
			}
		}
		if(divTitle) divTitle.removeChild(divTitle.childNodes[divTitle.childNodes.length-1]);
		
		
		if(MVJS.PopupBackgrounds && MVJS.PopupBackgrounds.length!=0)
		{
			if(MVJS.PopupBackgrounds[MVJS.PopupBackgrounds.length-1] && MVJS.PopupBackgrounds[MVJS.PopupBackgrounds.length-1].parentNode && MVJS.PopupBackgroundsTop[MVJS.PopupBackgroundsTop.length-1] && MVJS.PopupBackgroundsTop[MVJS.PopupBackgroundsTop.length-1].parentNode)
			{
		
				MVJS.PopupBackgrounds[MVJS.PopupBackgrounds.length-1].parentNode.removeChild(MVJS.PopupBackgrounds[MVJS.PopupBackgrounds.length-1]);
				MVJS.PopupBackgroundsTop[MVJS.PopupBackgroundsTop.length-1].parentNode.removeChild(MVJS.PopupBackgroundsTop[MVJS.PopupBackgroundsTop.length-1]);
			}
		}
		MVJS.StyleHandler.SetVisible(MVJS.PopupWindows[MVJS.PopupWindows.length-1],false); 
		var objCallback;
		if(MVJS.PopupCloseCallBacks[MVJS.PopupCloseCallBacks.length-1])
		{
			objCallback = MVJS.PopupCloseCallBacks[MVJS.PopupCloseCallBacks.length-1];	
		}
		MVJS.PopupWindows.length-=1;
		MVJS.PopupBackgrounds.length-=1;
		MVJS.PopupBackgroundsTop.length-=1;
		MVJS.PopupCloseCallBacks.length-=1;		
		if(this.IsIE() && document.getElementById('AddressBar')) document.getElementById('AddressBar').focus();
		if(objCallback) objCallback();
	},

	Trim : function(SourceString){
		if(SourceString==null) return '';
		if(typeof(SourceString) != 'string')
		{
			SourceString = SourceString.toString();
		}
		try{
			return SourceString.replace(/^\s+|\s+$/g,"");
		}catch(e){return SourceString;}
		
	},
	LoadPage:function(TabID,TabCaption,Components,PersistExisting,LayoutTemplate,IsOldPage,CombineLoadingNugget,CombineLoadingParams)
	{
		MVJS.ScrollTo(0,0);
		var LeftColumnContents="";
		var MidColumnContents="";
		var RightColumnContents="";
		
		var TabPage;
		if(MVJS.ForceNewTab)
		{
			TabID=TabID+parseInt(Math.random()*100);
			TabPage=MVJS.Nuggets.TopMenu_Main.Tabs.GetTabPage(TabID);
			MVJS.Nuggets.TopMenu_Main.Tabs.AddTab(TabID,TabCaption);
			
			MVJS.ForceNewTab=false;
		}
		
		
		if(!PersistExisting)
		{
			if(!LayoutTemplate)
			{
				if(Components.Mid)
				{
					if(Components.Left)
					{
						if(Components.Right)
						{
							if(Components.Top)
							{
								LayoutTemplate=MVJS.ThreeColumnWithTopLayout;
							}
							else
							{
								LayoutTemplate=MVJS.ThreeColumnLayout;
							}
						}
						else
						{
							LayoutTemplate=MVJS.TwoColumnLayout;
						}
					}
					else
					{
						if(Components.Top)
						{
							LayoutTemplate=MVJS.OneColumnTopLayout;
						}
						else
						{
							LayoutTemplate=MVJS.OneColumnLayout;
						}
					}
				}
				
			}
			else
			{
				this.FreeNuggets(TabID+"_MidContainer");
			}
			
			TabPage=MVJS.Nuggets.TopMenu_Main.Tabs.GetTabPage(TabID);
			
			if(!TabPage)
			{
				MVJS.Nuggets.TopMenu_Main.Tabs.AddTab(TabID,TabCaption);
				setTimeout(function () {MVJS.LoadPage(TabID,TabCaption,Components,PersistExisting,LayoutTemplate,IsOldPage,CombineLoadingNugget,CombineLoadingParams);},100);
				return;
			}
			else
			{
				MVJS.Nuggets.TopMenu_Main.Tabs.SetCaption(TabID,TabCaption);
			}
			
			var Layout=MVJS.StringFormat(LayoutTemplate,[TabID]);
			
			TabPage.innerHTML=Layout;
			
			if(!document.getElementById("divLoadingPopup_"+TabID))
			{
				var LoadingTemplate="<div id='divLoadingPopup_"+TabID+"' style='display:none;'><p align='center' class='MainCompHeading'>Please Wait...<br><br><img src='themes/default/images/Explorer/loading.gif' alt='' style='border:0px;'/></p></div>";
				var LoadingLayout=MVJS.StringFormat(LoadingTemplate,[TabID]);
				TabPage.innerHTML+=LoadingLayout;
			}
		}

		
		
		if(Components.Top)
		{
			
			for(var x=0;x<Components.Top.length;x++)
			{
				if(Components.Top[x].IsJSON)
				{
					this.LoadJSONNugget(TabID,TabID+"_TopContainer",Components.Top[x].NuggetName,x==0,Components.Top[x].Parameters);
				}
				else
				{
					this.LoadSingleNugget(TabID,TabID+"_TopContainer",Components.Top[x].NuggetName,x==0,Components.Top[x].Parameters,Components.Top[x].SkinClassName,CombineLoadingNugget);
				}
			}
			
			
		}
		if(Components.Mid)
		{
			
			for(var x=0;x<Components.Mid.length;x++)
			{
				if(Components.Mid[x].IsJSON)
				{
					this.LoadJSONNugget(TabID,TabID+"_MidContainer",Components.Mid[x].NuggetName,x==0,Components.Mid[x].Parameters);
				}
				else
				{
					this.LoadSingleNugget(TabID,TabID+"_MidContainer",Components.Mid[x].NuggetName,x==0,Components.Mid[x].Parameters,Components.Mid[x].SkinClassName,CombineLoadingNugget);
				}
			}
		}
		if(Components.Left)
		{
			
			for(var x=0;x<Components.Left.length;x++)
			{
				if(Components.Left[x].IsJSON)
				{
					this.LoadJSONNugget(TabID,TabID+"_LeftContainer",Components.Left[x].NuggetName,x==0,Components.Left[x].Parameters);
				}
				else
				{
					this.LoadSingleNugget(TabID,TabID+"_LeftContainer",Components.Left[x].NuggetName,x==0,Components.Left[x].Parameters,Components.Left[x].SkinClassName,CombineLoadingNugget);
				}
			}
		}
		if(Components.Right)
		{
			
			for(var x=0;x<Components.Right.length;x++)
			{
				if(Components.Right[x].IsJSON)
				{
					this.LoadJSONNugget(TabID,TabID+"_RightContainer",Components.Right[x].NuggetName,x==0,Components.Right[x].Parameters);
				}
				else
				{
					this.LoadSingleNugget(TabID,TabID+"_RightContainer",Components.Right[x].NuggetName,x==0,Components.Right[x].Parameters,Components.Right[x].SkinClassName,CombineLoadingNugget);
				}
			}
		}
		else
		{		
			var RightContainer=document.getElementById(TabID+"_RightContainer");
			if(RightContainer)
			{
				this.FreeNuggets(RightContainer);
				RightContainer.parentNode.removeChild(RightContainer);
			}
		}
		if(CombineLoadingNugget)
		{
			var Output="";
			Output+="var Obj"+CombineLoadingNugget +"Client=MVCore.NuggetClient();";
			Output+="var Obj"+CombineLoadingNugget+"Packet=MVCore.NuggetPacket('WebServices/"+CombineLoadingNugget+"Service','Load');";
			
			Output+="Obj"+CombineLoadingNugget+"Packet.TabID=\""+TabID+"\";";

			if(CombineLoadingParams)
			{
				for(var x=0;x<CombineLoadingParams.length;x++)
					Output+="Obj"+CombineLoadingNugget+"Packet.Parameters.Add(MVCore.NuggetParameter('"+this.JavascriptSafeString(CombineLoadingParams[x][0],1,0)+"','"+this.JavascriptSafeString(CombineLoadingParams[x][1],1,0)+"'));";
			}

			Output+="Obj"+CombineLoadingNugget+"Client.Invoke(Obj"+CombineLoadingNugget+"Packet);";
			eval(Output);
		}
		if(!IsOldPage) MVJS.Nuggets.TopMenu_Main.Tabs.AddPage(TabID,TabCaption,Components,PersistExisting,LayoutTemplate,CombineLoadingNugget,CombineLoadingParams);
	},
	GetColumnID:function(Column)
	{
		return MVJS.Nuggets.TopMenu_Main.Tabs.Tabs[MVJS.Nuggets.TopMenu_Main.Tabs.ActiveTabIndex].TabID+"_"+Column+"Container";
	},
	LoadJSONNugget: function(TabID,ContainerID,NuggetName,ClearContents,CallBackFunction)
	{

		var NuggetDiv=NuggetName;
		if(NuggetDiv.indexOf("/")>=0) NuggetDiv=NuggetDiv.substring(NuggetDiv.lastIndexOf("/")+1);
		
		eval("MVJS.JSON."+NuggetDiv+"=null;");
		eval("MVJS.JSON._"+NuggetDiv+"=null;");
		eval("MVJS.Nuggets."+NuggetDiv+"=null;");
		
		var divNugget=this.CreateNuggetDiv(TabID,ContainerID,NuggetDiv,ClearContents);
		var divInnerContainer=document.createElement("div");
		divInnerContainer.id=NuggetDiv+"_"+TabID+"_JSONContainer";
		divNugget.appendChild(divInnerContainer);
		var ObjScript=document.createElement("script");
		if(!CallBackFunction)
		{
			CallBackFunction="";
		}
		
		ObjScript.src=MVCore.JSONServiceURL+NuggetName+".ashx?proxy&TabID="+TabID+"&CallBackFunction="+CallBackFunction;
		divNugget.appendChild(ObjScript);
	},
	CreateNuggetDiv:function(TabID,ContainerID,NuggetName,ClearContents)
	{
		var Container=null;
		
		if(ClearContents)
		{
			var oldContainer=document.getElementById(ContainerID);
			if(oldContainer)
			{
				this.FreeNuggets(oldContainer);
				Container=oldContainer.cloneNode(false);
				oldContainer.parentNode.replaceChild(Container,oldContainer);
			}			
		}
		else
		{
			if(typeof(ContainerID)=='string')
			{
				Container=document.getElementById(ContainerID);
			}
			else
			{
				Container=ContainerID;
			}			
		}
		if(!Container) return false;
		var divNugget=document.createElement("div");
		var NuggetDivId="divMVNuggets_"+NuggetName+"_"+TabID;
		divNugget.id=NuggetDivId;
		

		Container.appendChild(divNugget);
		return divNugget;
	},
	LoadSingleNugget : function(TabID,ContainerID,NuggetName,ClearContents,arrParams,SkinClassName,ActualLoad){
		
		var divNugget=this.CreateNuggetDiv(TabID,ContainerID,NuggetName,ClearContents);
		if(ActualLoad==null)
		{
			MVCore.LoadCalls++;
			if(MVJS.Nuggets.TopMenu_Main && MVCore.LoadCalls==1)
			{
				MVJS.ShowPopup("divLoadingPopup_"+TabID);
			}
			eval("Obj"+NuggetName +"Client=MVCore.NuggetClient();");
			
			var ObjClient=eval("Obj"+NuggetName +"Client");	
			var ObjPacket=MVCore.NuggetPacket("WebServices/"+NuggetName+"Service","Load");
			
			if(SkinClassName) ObjPacket.SkinClass=SkinClassName;
			ObjPacket.TabID=TabID;
			if(arrParams)
			{
				for(var x=0;x<arrParams.length;x++)
					ObjPacket.Parameters.Add(MVCore.NuggetParameter(arrParams[x][0],arrParams[x][1]));
			}
			ObjClient.Invoke(ObjPacket);
		}
		
	},
	
	UnloadNugget : function(NuggetName,TabID){
		if(!TabID)
		{
			TabID=MVJS.GetActiveTabID();
		}
		var divNugget=document.getElementById("divMVNuggets_"+NuggetName+"_"+TabID);
		if(divNugget==null) return false;
		divNugget.innerHTML = "";
		divNugget.parentNode.removeChild(divNugget);
		eval("delete MVJS.Nuggets."+NuggetName+"_"+TabID+";");
	},
	ReportError : function(e,NuggetName,MethodName,MethodArguments){
	

			var Message="An Error Has Occured\n";
			Message+="\nError Type:\n" + e.name + "\n";
			Message+="\nError Description:\n" + e.message + "\n";
			if(NuggetName && NuggetName==='DE')
			{
				Message+="\nError While Executing Script\n";
			}
			if(e.stack) Message+="\nError Stack:\n" + e.stack + "\n";
			alert(Message);

			
		/*Do not delete the try catch block */
			try
			{
				if(typeof(NuggetName)=="undefined")
				{
					NuggetName='';
				}
				if(typeof(MethodName)=="undefined")
				{
					MethodName='';
				}
				if(typeof(MethodArguments)=="undefined")
				{
					MethodArguments=[];
				}
				MVJS.Nuggets.TopMenu_Main.LogError(e,NuggetName,MethodName,MethodArguments);
			}
			catch(e)
			{
				/* DO NOTHING  as error could occour before loading top menu */
			}
		
	},
	ChangeTheme : function(ThemeID)
	{    
		var ObjLinks=document.getElementsByTagName("link");

		for(var x=0;x<ObjLinks.length;x++)
		{
			var Style=ObjLinks[x].href;
			var RootStyle=Style.substring(Style.lastIndexOf("/"));
			Style="themes/"+ThemeID + "/stylesheets"+ RootStyle;
			ObjLinks[x].href=Style;
		}
	},
	GetActiveTabID:function()
	{
		return MVJS.Nuggets.TopMenu_Main.Tabs.GetActiveTabID();
	},
	IsTabExist:function (TabID)
	{
		if(TabID && MVJS.Nuggets.TopMenu_Main.Tabs.GetTabIndex(TabID)!=-1)
		{
			return true;
		}
		return false;
	},
	Invoke:function(NuggetName,MethodName,Parameters,SkinClassName,TabID)
	{
		var ObjPacket=MVCore.NuggetPacket("WebServices/"+NuggetName+"Service",MethodName);
		ObjPacket.TabID=TabID;
		if(SkinClassName) ObjPacket.SkinClass=SkinClassName;
		if(Parameters)
		{
			for(var x=0;x<Parameters.length;x++)
			{
				ObjPacket.Parameters.Add(MVCore.NuggetParameter(Parameters[x][0],Parameters[x][1]));	
			}
		}
		var ObjClient = null;
		try
		{
			ObjClient=eval("Obj"+NuggetName+"Client");
		}
		catch(e)
		{
		}
		if(!ObjClient)
		{
			ObjClient=MVCore.NuggetClient();
		}
		ObjClient.Invoke(ObjPacket);
	},
	ClearControls:function(Controls)
	{
		if(!Controls) return false;
		for(var x=0;x<Controls.length;x++)
		{
			MVJS.SetValue(Controls[x],"");
		}
	},
	ClearErrors:function(Container)
	{
		if(!Container) return false;
		if(typeof(Container)=="string") Container=document.getElementById(Container);
		var Controls=Container.getElementsByTagName("div");
		for(var x=0;x<Controls.length;x++)
		{
			if(Controls[x].className=="Error")
			{
				MVJS.SetValue(Controls[x],"");
			}
		}
		Controls=Container.getElementsByTagName("span");
		for(var x=0;x<Controls.length;x++)
		{
			if(Controls[x].className=="Error" && Controls[x].id)
			{
				MVJS.SetValue(Controls[x],"");
			}
		}
	},
	FillListGen:function(List,RowsArray,ItemTemplate)
	{
		var ListArray=[];		
		for(var x=0;x<RowsArray.length;x++)
		{
			ListArray[ListArray.length]=[];			
			ListArray[ListArray.length-1][0]=RowsArray[x][0];
			if(typeof(ItemTemplate)=="string")
			{
				ListArray[ListArray.length-1][1]=MVJS.StringFormat(ItemTemplate,RowsArray[x]);
			}
			else
			{
				ListArray[ListArray.length-1][1]=MVJS.StringFormat(ItemTemplate[x],RowsArray[x]);
			}
		}
		List.FillRows(ListArray);
	},
	ToAscii:function (Value){
		var symbols = " !\"#$%&'()*+'-./0123456789:;<=>?@";
		var loAZ = "abcdefghijklmnopqrstuvwxyz";
		symbols+= loAZ.toUpperCase();
		symbols+= "[\\]^_`";
		symbols+= loAZ;
		symbols+= "{|}~";
		var loc= symbols.indexOf(Value);
		if (loc >-1) {			
			return (32 + loc);
	   	}
		return(0);  /** If not in range 32-126 return ZERO ***/
	},
	JSSafeString : function (StrValue,JsOutput,NoBr){
		if(JsOutput==null)
		{
			JsOutput = true;
		}
		
		if(!JsOutput)
		{	
			try{
			StrValue=StrValue.replace(new RegExp( "\'", "gi" ),"\\'");
			StrValue=StrValue.replace(new RegExp( '\"', "gi" ),'\\"');			
			}catch(e){}
		}
		if(!NoBr)
		{
			try {return StrValue.replace(new RegExp( "\\n", "gi" ),'<br>');	}catch(e){return StrValue;}
		}
	
		
	},
	JavascriptSafeString : function (StrValue,SQDepth,DQDepth,HandleNewLine,IsHyperlinkOutput)
	{
		try
		{
			if(!StrValue) return;
			if(!SQDepth)SQDepth=0;
			if(!DQDepth)DQDepth=0;
			var StrTemp='';
			StrValue=""+StrValue+"";
			StrValue=StrValue.replace(/\\/,"\\\\");
			if(SQDepth >0)
			{
				
				for(var j=0;j<SQDepth;j++)
				{
					StrTemp +='\\';
				}
				if(IsHyperlinkOutput)
				{
					StrTemp +='%27';
				}
				else
				{	
					StrTemp +="'";
				}
				StrValue=StrValue.replace(new RegExp( "'", "gi" ),StrTemp);
			}
			if(DQDepth >0)
			{
				
				StrTemp="";
				for(var j=0;j<DQDepth;j++)
				{
					StrTemp +='\\';
				}
				if(IsHyperlinkOutput)
				{
					StrTemp +='%22';
				}
				else
				{						
					StrTemp +='"';
				}

				StrValue=StrValue.replace(new RegExp( '"', "gi" ),StrTemp);
			}
			
			if(HandleNewLine)
			{
				StrValue=StrValue.replace(new RegExp( "\n", "gi" ),'<br>');	
			}

			return StrValue;
		}
		catch(e)
		{
			return StrValue;
		}
	},
	NewTabOpenHandler:function(evt){
		if(window.event)
		evt = window.event;
		var SourceElement=(window.event)?window.event.srcElement:evt.target;
		if(SourceElement.nodeName == "A")
		{
			var CtrlPressed=evt.ctrlKey;
			var ShiftPressed=evt.shiftKey;
			if(CtrlPressed || ShiftPressed)
			{
				if (evt.stopPropagation){
					evt.stopPropagation();
					evt.preventDefault();
				}else if(typeof evt.cancelBubble != "undefined"){
					evt.cancelBubble = true;
					evt.returnValue = false;
				}				
				MVJS.ForceNewTab=true;
				var CallCode=SourceElement.href;
				try{CallCode=CallCode.replace("javascript:","");}catch(e){}
				eval(CallCode);
				return false;
			}
			else
			{
				MVJS.ForceNewTab=false;
			}
		}
	},
	NumericOnly:function(evt)
	{
	         var charCode = (evt.which) ? evt.which : event.keyCode;
	         if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode !=46)
	            return false;
	
	         return true;
      	},
      	IsArray : function (obj) {
	  return (obj.constructor.toString().indexOf("Array") == -1)?false : true;	      
	},
	GetCheckboxArray:function(ChkGroupName)
	{
		try
		{
			var Result = "";
			var ChkElements = document.getElementsByName(ChkGroupName);
			for(var i=0; i<ChkElements.length; i++)
			{
				if(ChkElements[i].checked == true)
					Result += '1';
				else
					Result += '0';
			}
			return Result;
		}
		catch(e)
		{
			MVJS.ReportError(e);
		}


	},
	SetCheckboxArray:function(ChkGroupName,jsBooleanArray)
	{
		try
		{
			var ChkElements = document.getElementsByName(ChkGroupName);
			for(var i=0; i<ChkElements.length; i++)
			{
				ChkElements[i].checked = jsBooleanArray[i];
			}
		}
		catch(e)
		{
			MVJS.ReportError(e);
		}
	},
	ConvertUrltoHref:function(Content)
	{/*Function accepts Content as string and adds Hyperlinks <a > to all possible URLs e.g. : http://www.myvishwa.com to <a hrefi="http://www.myvishwa.com">http://www.myvishwa.com</a>*/
		try
		{
			Content=Content.replace(new RegExp("(((((ht|f)tp(s?))\:\/\/)?(www.))|(www.)|(((ht|f)tp(s?))\:\/\/)).([a-zA-Z\.0-9_-]*)\.(com|in|edu|gov|mil|net|org|biz|info|name|museum|us|ca|uk|co|pk|cc)+([a-zA-Z\._-][a-zA-Z_-]*)?([\.=&?#a-zA-Z\/\:0-9_-]*)","gi"),function($1){var Prepend="";if($1.substr(0,4).toLowerCase()=="www.") {Prepend="http://";} return "<a href=\""+Prepend +$1+"\" class=\"TextLink\" style=\"word-wrap:break-word;\" target=\"_blank\">"+$1+"</a>";});
			return Content;
			/*
			below regex also work as above, but can't rely on it due to lack of testing right now
			Content=Content.replace(new RegExp("(((((ht|f)tp(s?))\:\/\/)?(www.))|(www.)|(((ht|f)tp(s?))\:\/\/)).([a-zA-Z\.0-9_-]*)\.(com|in|edu|gov|mil|net|org|biz|info|name|museum|us|ca|uk|co|pk|cc)+([a-zA-Z\._-][a-zA-Z_-]*)?([^\\s]*)","gi"),function($1){var Prepend="";if($1.substr(0,4).toLowerCase()=="www.") {Prepend="http://";} return "<a href=\""+Prepend +$1+"\" class=\"TextLink\" style=\"word-wrap:break-word;\" target=\"_blank\">"+$1+"</a>";});
			Regex For url containing IP : http://[\d]*\.[\d]*\.[\d]*\.[\d]*([a-zA-Z\._-][a-zA-Z_-]*)?([\.=&?#a-zA-Z\/\:0-9_-]*)
			*/
			
		}
		catch(e)
		{
			MVJS.ReportError(e);
		}
		return Content;
	},
	AddHyperLinkToURL:function(Content)
	{
		return this.ConvertLinktoHref(Content);
	}
	
};



if(typeof(MVJS)=="undefined")
	MVJS={};
MVJS.CookieHandler={
	Set:function(name,value,days) {
		var expires = "";
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			expires = "; expires="+date.toGMTString();
		}
		
		document.cookie = name+"="+value+expires+"; path=/";
	},
	Get:function(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	},
	Delete:function(name) {
		this.Set(name,-1);
	},
		IsSupported:function() {
			return true;
	}
};


if(typeof(MVJS)=="undefined")
	MVJS={};
MVJS.DateHandler={
	LongMonths :['January','February','March','April',	'May','June','July','August','September','October','November','December'],
	ShortMonths:['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],
	LongDays:['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],
	ShortDays:['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],
	GetLongMonths:function(){ return MVCore.DateSettings.Months;},
	GetShortMonths:function(){ return MVCore.DateSettings.Months;},
	GetLongDays:function(){ return MVCore.DateSettings.Days;},
	GetShortDays:function(){ return MVCore.DateSettings.Days;},
	Initialize:function(LongMonths,ShortMonths,LongDays,ShortDays)
	{
		if(LongMonths!=null) this.LongMonths=LongMonths;
		if(ShortMonths!=null) this.ShortMonths=ShortMonths;
		if(LongDays!=null) this.LongDays=LongDays;
		if(ShortDays!=null) this.ShortDays=ShortDays;
	},
	GetTimeArray : function (Delay)
	{		
		if(!Delay) Delay =30;
		var t = 60/Delay;
		var Today = new Date();	
		var TimeArray = new Array();
		Today.setHours(0);		
		Today.setSeconds(0);
		for (var k=0;k<t * 24;k++)
		{
			var t1= parseInt(k*Delay);			
			Today.setHours(0);
			Today.setMinutes(t1);			
			TimeArray[k]=MVJS.DateHandler.Format(Today,MVCore.DateSettings.ShortTimePattern);			
		}
		return TimeArray;		
	},	
	Pad : function (val, len)
	{
		val = String(val);
		len = len || 2;
		while (val.length < len) val = "0" + val;
		return val;
	},
	Format:function(date,mask){
	
							var d = date["getDate"]();
							var D = date["getDay"]();
							var m = date["getMonth"]();
							var y = date["getFullYear"]();
							var H = date["getHours"]();
							var M = date["getMinutes"]();
							var s = date["getSeconds"]();
							var L = date["getMilliseconds"]();							
							var flags = {
								d:    d,
								dd:   this.Pad(d),
								ddd:  MVCore.DateSettings.Days[D],
								dddd: MVCore.DateSettings.LongDays[D],
								M:    m + 1,
								MM:   this.Pad(m + 1),
								MMM:  MVCore.DateSettings.Months[m],
								MMMM: MVCore.DateSettings.LongMonths[m],
								yy:   String(y).slice(2),
								yyyy: y,
								h:    H % 12 || 12,
								hh:   this.Pad(H % 12 || 12),
								H:    H,
								HH:   this.Pad(H),
								m:    M,
								mm:   this.Pad(M),
								s:    s,
								ss:   this.Pad(s),
								l:    this.Pad(L, 3),
								L:    this.Pad(L > 99 ? Math.round(L / 10) : L),
								t:    H < 12 ? "a"  : "p",
								tt:   H < 12 ? "am" : "pm",
								T:    H < 12 ? "A"  : "P",
								TT:   H < 12 ? "AM" : "PM",					
								
								S:    ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
							};
							
						return mask.replace(/d{1,4}|M{1,4}|yy(?:yy)?|([HhmsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g, function ($0) {
							
				return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);});
	},
	GetDaysInMonth:function(DateValue){
		var m = parseInt(parseFloat(DateValue.getMonth()));
		var y = parseInt(parseFloat(DateValue.getYear()));

		var tmpDate = new Date(y, m, 28);
		var checkMonth = tmpDate.getMonth();
		var lastDay = 27;

		while(lastDay <= 31){
			var temp = tmpDate.setDate(lastDay + 1);
			if(checkMonth != tmpDate.getMonth())
			    break;
			lastDay++;
		}
		return lastDay;
	},
	IsValid:function(DateValue,DateFormat) {
		var ReturnDate=this.GetDateFromFormat(DateValue,DateFormat);
		
		if (ReturnDate==0) { return false; }
		return true;
	},
	
	DateAdd:function(DateValue,AddTo,Value){
		var intMonth = DateValue.getMonth();
		var intDate = DateValue.getDate();
		var intYear = DateValue.getFullYear();
		switch(AddTo)
		{
			case "Year":
			intYear+=Value;
			break;
			case "Month":
			intMonth+=Value;
			break;
			case "Day":
			intDate+=Value;
			break;
		}
		return new Date(intYear,intMonth,intDate);
	},
	TimeToText:function(time) {
		var system_date = new Date(time);
		var user_date = new Date();
		var delta_minutes = Math.floor((user_date - system_date) / (60 * 1000));
		if (Math.abs(delta_minutes) <= (8*7*24*60)) { 
		var distance = this.MinutesToText(delta_minutes);
		return distance + ((delta_minutes < 0) ? ' from now' : ' ago');
		} else {
		return 'on ' + system_date.toLocaleDateString();
		}
	},

	MinutesToText:function(minutes) {
		if (minutes.isNaN) return "";
		minutes = Math.abs(minutes);
		if (minutes < 1) return ('less than a minute');
		if (minutes < 50) return (minutes + ' minute' + (minutes == 1 ? '' : 's'));
		if (minutes < 90) return ('about one hour');
		if (minutes < 1080) return (Math.round(minutes / 60) + ' hours');
		if (minutes < 1440) return ('one day');
		if (minutes < 2880) return ('about one day');
		else return (Math.round(minutes / 1440) + ' days');
	},
	GetDateFromFormat:function(val,format) {
		val=val+"";
		format=format.replace(new RegExp( "!", "gi" ),"");
		format=format+"";
		var i_val=0;
		var i_format=0;
		var c="";
		var token="";
		var token2="";
		var x,y;
		var now=new Date();
		var year=now.getYear();
		var month=now.getMonth()+1;
		var date=1;
		var hh=now.getHours();
		var mm=now.getMinutes();
		var ss=now.getSeconds();
		var ampm="";
		
		while (i_format < format.length) {
			// Get next token from format string
			c=format.charAt(i_format);
			token="";
			while ((format.charAt(i_format)==c) && (i_format < format.length)) {
				token += format.charAt(i_format++);
				}
			// Extract contents of value based on format token
			if (token=="yyyy" || token=="yy" || token=="y") {
				if (token=="yyyy") { x=4;y=4; }
				if (token=="yy")   { x=2;y=2; }
				if (token=="y")    { x=2;y=4; }
				year=this.GetInt(val,i_val,x,y);
				if (year==null) { return 0; }
				i_val += year.length;
				if (year.length==2) {
					if (year > 70) { year=1900+(year-0); }
					else { year=2000+(year-0); }
					}
				}
			else if (token=="MMM"||token=="NNN"){
				month=0;
				for (var i=0; i<this.LongMonths.length; i++) {
					var month_name=this.LongMonths[i];
					if (val.substring(i_val,i_val+month_name.length).toLowerCase()==month_name.toLowerCase()) {
						if (token=="MMM"||(token=="NNN"&&i>11)) {
							month=i+1;
							if (month>12) { month -= 12; }
							i_val += month_name.length;
							break;
							}
						}
					}
				if ((month < 1)||(month>12)){return 0;}
				}
			else if (token=="EE"||token=="E"){
				for (var i=0; i<this.LongDays.length; i++) {
					var day_name=this.LongDays[i];
					if (val.substring(i_val,i_val+day_name.length).toLowerCase()==day_name.toLowerCase()) {
						i_val += day_name.length;
						break;
						}
					}
				}
			else if (token=="MM"||token=="M") {
				month=this.GetInt(val,i_val,token.length,2);
				if(month==null||(month<1)||(month>12)){return 0;}
				i_val+=month.length;}
			else if (token=="dd"||token=="d") {
				date=this.GetInt(val,i_val,token.length,2);
				if(date==null||(date<1)||(date>31)){return 0;}
				i_val+=date.length;}
			else if (token=="hh"||token=="h") {
				hh=this.GetInt(val,i_val,token.length,2);
				if(hh==null||(hh<1)||(hh>12)){return 0;}
				i_val+=hh.length;}
			else if (token=="HH"||token=="H") {
				hh=this.GetInt(val,i_val,token.length,2);
				if(hh==null||(hh<0)||(hh>23)){return 0;}
				i_val+=hh.length;}
			else if (token=="KK"||token=="K") {
				hh=this.GetInt(val,i_val,token.length,2);
				if(hh==null||(hh<0)||(hh>11)){return 0;}
				i_val+=hh.length;}
			else if (token=="kk"||token=="k") {
				hh=this.GetInt(val,i_val,token.length,2);
				if(hh==null||(hh<1)||(hh>24)){return 0;}
				i_val+=hh.length;hh--;}
			else if (token=="mm"||token=="m") {
				mm=this.GetInt(val,i_val,token.length,2);
				if(mm==null||(mm<0)||(mm>59)){return 0;}
				i_val+=mm.length;}
			else if (token=="ss"||token=="s") {
				ss=this.GetInt(val,i_val,token.length,2);
				if(ss==null||(ss<0)||(ss>59)){return 0;}
				i_val+=ss.length;}
			else if (token=="a") {
				if (val.substring(i_val,i_val+2).toLowerCase()=="am") {ampm="AM";}
				else if (val.substring(i_val,i_val+2).toLowerCase()=="pm") {ampm="PM";}
				else {return 0;}
				i_val+=2;}
			else {
				if (val.substring(i_val,i_val+token.length)!=token) {return 0;}
				else {i_val+=token.length;}
				}
			}
		// If there are any trailing characters left in the value, it doesn't match
		if (i_val != val.length) { return 0; }
		// Is date valid for month?
		if (month==2) {
			// Check for leap year
			if ( ( (year%4==0)&&(year%100 != 0) ) || (year%400==0) ) { // leap year
				if (date > 29){ return 0; }
				}
			else { if (date > 28) { return 0; } }
			}
		if ((month==4)||(month==6)||(month==9)||(month==11)) {
			if (date > 30) { return 0; }
			}
		// Correct hours value
		if (hh<12 && ampm=="PM") { hh=hh-0+12; }
		else if (hh>11 && ampm=="AM") { hh-=12; }
		var newdate=new Date(year,month-1,date,hh,mm,ss);
		return newdate;
	},
	
	GetInt:function(str,i,minlength,maxlength) {
		for (var x=maxlength; x>=minlength; x--) {
			var token=str.substring(i,i+x);
			if (token.length < minlength) { return null; }
			if (this.IsInteger(token)) { return token; }
			}
		return null;
	},
	IsInteger:function(val) {
	var digits="1234567890";
	for (var i=0; i < val.length; i++) {
		if (digits.indexOf(val.charAt(i))==-1) { return false; }
		}
	return true;
	},
	CompareDates:function(date1,dateformat1,date2,dateformat2) {
		
		var d1=this.GetDateFromFormat(date1,dateformat1);
		var d2=this.GetDateFromFormat(date2,dateformat2);
		if (d1==0 || d2==0) {
			return -1;
			}
		else if (d1 > d2) {
			return 1;
			}
		return 0;
	},
	Compare : function(StartDate,EndDate,DateFormat)
	{
		/*
		Author : Arivnd
		Date   : 10:55 AM 4/25/2008
		Note   : Verify that the StartDate and EndDate values are not blank or null
		Returns:
			-1 => Invalid Start Date
			-2 => Invalid End Date
			 0 => Same Dates
			+1 => Start Date is Greater
			+2 => End Date is Greater
		*/
		if(typeof(StartDate) != 'object')
		{
			StartDate = this.GetDateFromFormat(StartDate,DateFormat);
		}
		if(typeof(EndDate) != 'Object')
		{
			EndDate = this.GetDateFromFormat(EndDate,DateFormat);
		}
		if(StartDate == 0)
		{
			return -1;
		}
		if(EndDate == 0)
		{
			return -2;
		}
		var _Year  = StartDate.getFullYear();
		var _Month = (StartDate.getMonth().toString().length == 2)?(StartDate.getMonth().toString()):('0' + StartDate.getMonth().toString());
		var _Day = (StartDate.getDate().toString().length == 2)?(StartDate.getDate().toString()):('0' + StartDate.getDate().toString());
		var CompareStartDateValue = parseInt(_Year.toString() + _Month.toString() + _Day.toString());
		_Year  = EndDate.getFullYear();
		_Month = (EndDate.getMonth().toString().length == 2)?(EndDate.getMonth().toString()):('0' + EndDate.getMonth().toString());
		_Day = (EndDate.getDate().toString().length == 2)?(EndDate.getDate().toString()):('0' + EndDate.getDate().toString());
		var CompareEndDateValue = parseInt(_Year.toString() + _Month.toString() + _Day.toString());
		if(CompareStartDateValue > CompareEndDateValue)
		{
			return 1;
		}
		else if(CompareEndDateValue > CompareStartDateValue)
		{
			return 2;
		}
		else
		{
			return 0;
		}
	},
	IsValidDate : function (DateString)
	{
		var DateValue=this.GetDateFromFormat(DateString,MVJS.GetValue("hidCalendarControl_DateFormat").toString().replace(/!/g,""));
		if(DateValue==0)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
};
if(typeof(MVJS)=="undefined")
{
	MVJS={};
}

MVJS.EventHandler=function(){
	return new MVJS._EventHandler();
};

MVJS._EventHandler= function(){
	this.EventReference=null;

	
	this.GetMouseCoords = function (e,HandleScroll) {
		try
		{
		if(MVJS.IsIE())
		{
			if(document.getElementById('MVContainer'))
			document.getElementById('MVContainer').scrollTop = 0;
			document.body.scrollTop = 0;
		}

		var x=(!window.event)?e.pageX:window.event.clientX+(document.documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft);
		var y=(!window.event)?e.pageY:window.event.clientY+(document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop);
		
		if(HandleScroll==null)
		{
			HandleScroll=true;
		}
		
		if(MVJS.Nuggets.TopMenu_Main && MVJS.Nuggets.TopMenu_Main.ScrollTop > 0)
		{
			
			if(MVJS.IsIE())
			{
				if(HandleScroll)
				y+=parseFloat(MVJS.Nuggets.TopMenu_Main.ScrollTop);
			}
			else
			{
				y-=parseFloat(MVJS.Nuggets.TopMenu_Main.ScrollTop);
			}
		}
		return {X:x,Y:y};
		}
		catch(e)
		{
			alert(e);
		}
	};
	
	this.FilterKeys = function(ControlID,FilterChars)
	{
		MVJS.StorageHandler.SetData(ControlID,FilterChars);
		this.AttachEvent(ControlID,"keydown","MVJS.EventHandler().onFilterEvent");
	};
	this.onFilterEvent = function(event)
	{
		try
		{
			var ControlID="";
			var KeyCode=null;
			if(event==null) event=window.event;
			

			if(MVJS.IsIE())
			{
				ControlID=window.event.srcElement.id;
				KeyCode=event.keyCode;
				
			}
			if(MVJS.IsFireFox())
			{
				ControlID=arguments[0].target.id;
				KeyCode=event.which;
			
			}
			var FilterChars=MVJS.StorageHandler.GetData(ControlID);
			
			for(var x=0;x<FilterChars.length;x++)
			{
				
				if(KeyCode==FilterChars[x].charCodeAt(0))
				{
					
					if(MVJS.IsIE())
					{
						event.cancelBubble = true;
    						event.returnValue = false;    					
					}
					return false;
					
				}
			}
		}
		catch(e)
		{
			throw "MVException : " + e.toString();
		}
		
	};

	this.LimitChars = function (ControlID,MaxLimit,CounterControlID)
	{		
		var objControl;
		var objCounterControlID=null;
		if(typeof(ControlID)=='string')
		{
			objControl= document.getElementById(ControlID);
		}
		else
		{
			objControl= ControlID;
		}
		
		if(CounterControlID!='' && CounterControlID!=null)
		{
			if(typeof(CounterControlID)=='string')
			 objCounterControlID= document.getElementById(CounterControlID);
			else
			 objCounterControlID= CounterControlID;
		}
				
		var _objCounterControlID = objCounterControlID;
		objControl.onkeyup = function (event)
		{			
			if(this.value.length > MaxLimit)
			this.value = this.value.substr(0, MaxLimit);
			else if(_objCounterControlID)
			{
				if(_objCounterControlID.nodeName == "INPUT")
				_objCounterControlID.value= MaxLimit- this.value.length;
				else
				_objCounterControlID.innerHTML = MaxLimit- this.value.length;
			}

		};
	
	};

	this.onLimitCharsEvent = function(event)
	{
		try
		{
			var ControlID="";
			var NumberChars=0;
			if(event==null) event=window.event;
			var KeyCode;

			if(MVJS.IsIE())
			{
				ControlID=window.event.srcElement.id;	
				KeyCode=event.keyCode;
				
			}
			if(MVJS.IsFireFox())
			{
				ControlID=arguments[0].target.id;
				KeyCode=event.which;
			}

			NumberChars = ControlID.value.length;

			var FilterChars=MVJS.StorageHandler.GetData(ControlID);
			
			for(var x=0;x<FilterChars.length;x++)
			{
				
				if(KeyCode==FilterChars[x].charCodeAt(0))
				{
					
					if(MVJS.IsIE())
					{
						event.cancelBubble = true;
    						event.returnValue = false;    					
					}
					return false;
				}
			}
		}
		catch(e)
		{
			throw "MVException : " + e.toString();
		}
		
	};	

};

MVJS._EventHandler.prototype.AttachEvent = function(ControlID,Event,EventHandler){
	var ObjControl;
	if(typeof(ControlID)=='string')
	{
		ObjControl= document.getElementById(ControlID);
	}
	else
	{
		ObjControl= ControlID;
	}
	if( ObjControl.addEventListener )
	{
	  ObjControl.addEventListener(Event,EventHandler,false);
	}
	else if( ObjControl.attachEvent)
	{
	  ObjControl.attachEvent('on'+Event,EventHandler);
	}
};

MVJS._EventHandler.prototype.RemoveEvent = function(ControlID,Event,EventHandler){
	var ObjControl;
	if(typeof(ControlID)=='string')
	{
		ObjControl= document.getElementById(ControlID);
	}
	else
	{
		ObjControl= ControlID;
	}
	if( ObjControl.addEventListener )
	{
	  ObjControl.removeEventListener(Event,EventHandler,false);
	}
	else if( ObjControl.attachEvent)
	{
	  ObjControl.detachEvent('on'+Event,EventHandler);
	}
};

if(typeof(MVJS)=="undefined")
{
	MVJS={};
}

MVJS.StorageHandler=function(){
	return new MVJS._StorageHandler();
};

MVJS._StorageHandler= function(){
	this.SimpleStorage=null;
	this.Storage=null;
	this.length=function()
	{
		if(this.SimpleStorage!=null)
			return this.SimpleStorage.length;
		else if(this.Storage!=null)
			return this.Storage.length;
		else
			return 0;
	};
	this.SetData = function (Value,Key) {
		
		if(Key==null)
		{
			if(this.SimpleStorage==null)
			{
				this.SimpleStorage=new Array();
			}
			this.SimpleStorage[this.SimpleStorage.length]=Value;
		}
		else
		{
			if(this.Storage==null)
			{
				this.Storage=new Array();
			}
			var Found=false;
			for(var x=0;x<this.Storage.length;x++)
			{
				if(this.Storage[x][0]==Key)
				{
					Found=true;
					break;
				}
			}
			
			if(!Found)
			{
				x=this.Storage.length;
				this.Storage[x]=new Array();
			}
			

			if(typeof(Value)=="object")	Value.sIndex=x;
			this.Storage[x][0]=Key;
			this.Storage[x][1]=Value;
		}
	};
	
	this.GetData = function (Key) {
		if(this.SimpleStorage!=null)
		{
			return this.SimpleStorage[Key];
		}
		else
		{
			if(isNaN(Key))
			{
				var Found=false;
				for(var x=0;x<this.Storage.length;x++)
				{
					if(this.Storage[x][0]==Key)
					{
						Found=true;
						break;
					}
				}
				if(!Found) throw "MVException: Invalid Key";
				return this.Storage[x][1];
			}
			else
			{
				return this.Storage[Key][1];
			}
		}
	};
	this.Contains=function(Key) {
		if(this.Storage==null)
		{
			this.Storage=new Array();
		}
		var Found=false;
		for(var x=0;x<this.Storage.length;x++)
		{
			if(this.Storage[x][0]==Key)
			{
				Found=true;
				break;
			}
		}
		return Found;
	};
	this.Remove = function(Key)
	{
	};
	
	this.Clear = function()
	{
	};
};


String.prototype.endsWith = function(str){
	return (this.match(str+"$")==str);
};
String.prototype.startsWith = function(str){
	return (this.match("^"+str)==str)
};
if(typeof(MVJS)=="undefined")
	MVJS={};
MVJS.StyleHandler= {	
				
		SetProperty : function (ControlID, PropertyName, Value) {
			
			try
			{
				var objControl;
				if(typeof(ControlID)=='string')
				{
					objControl= document.getElementById(ControlID);
				}
				else
				{
					objControl= ControlID;
				}
				
				eval("objControl.style."+PropertyName+"='"+Value+"';");
				
			}
			catch(e)
			{				
				MVJS.ReportError(e);
			}
		},
		
		GetProperty: function(ControlID, PropertyName) {			
			try
			{
				
				var objControl;
				var strValue;
				if(typeof(ControlID)=='string')
				{
					objControl= document.getElementById(ControlID);
				}
				else
				{
					objControl= ControlID;
				}
				
				if (objControl.currentStyle) /*For IE*/
				{
					strValue = objControl.currentStyle[PropertyName];
				}	
				else if (window.getComputedStyle)
				{
					strValue = document.defaultView.getComputedStyle(objControl,null).getPropertyValue(PropertyName);
				}
				return strValue ;
				
			}
			catch(e)
			{				
				MVJS.ReportError(e);
			}			
		},
		GetWidth : function (ControlID){
			try
			{
				var ControlWidth=parseInt(this.GetProperty(ControlID, 'width'));
				if(isNaN(ControlWidth) || ControlWidth==0)
				{
					var objControl;
					if(typeof(ControlID)=='string')
					{
						objControl= document.getElementById(ControlID);
					}
					else
					{
						objControl= ControlID;
					}

					ControlWidth=objControl.offsetWidth;
				}
				return ControlWidth;
			}
			catch(e)
			{				
				MVJS.ReportError(e);			
			}	
		},
		GetHeight : function (ControlID){
			try
			{
				var VisibilityState = MVJS.StyleHandler.GetProperty(ControlID,"display");
				if(VisibilityState=="none")
				{
					this.SetVisible(ControlID,true);
				}
				var ControlHeight=parseInt(this.GetProperty(ControlID, 'height'));
				if(isNaN(ControlHeight) || ControlHeight==0)
				{
					var objControl;
					if(typeof(ControlID)=='string')
					{
						objControl= document.getElementById(ControlID);
					}
					else
					{
						objControl= ControlID;
					}

					ControlHeight=objControl.offsetHeight;
				}
				if(VisibilityState=="none")
				{
					this.SetVisible(ControlID,false);
				}
				return ControlHeight;
			}
			catch(e)
			{
				MVJS.ReportError(e);
			}
		},
			
		GetPosition : function (ControlID){
				
			try
			{				
				var CurrentTop = parseInt(this.GetProperty(ControlID,"top"));
				var CurrentLeft = parseInt(this.GetProperty(ControlID,"left"));
				
				if(isNaN(CurrentTop) || isNaN(CurrentLeft) || CurrentTop==0 || CurrentLeft==0)
				{
					
					var objControl;
					if(typeof(ControlID)=='string')
					{
						objControl= document.getElementById(ControlID);
					}
					else
					{
						objControl= ControlID;
					}
					
					if (objControl.offsetParent) {
						CurrentLeft = objControl.offsetLeft;
						CurrentTop = objControl.offsetTop;
						while (objControl.offsetParent) {
							objControl= objControl.offsetParent;
							CurrentLeft += objControl.offsetLeft;
							CurrentTop += objControl.offsetTop;
						}
					}								
				}
				return {X:CurrentLeft,Y:CurrentTop};
			}
			catch(e)
			{
				MVJS.ReportError(e);
			}		
		},
	
		SetColor : function (ControlID,ForeColor,BackColor) {
			try
			{
				if(ForeColor!=null)				
				this.SetProperty(ControlID,"color",ForeColor);
				
				if(BackColor!=null)
				this.SetProperty(ControlID,"backgroundColor",BackColor);
			}
			catch(e)
			{
				MVJS.ReportError(e);
			}
		},

		SetDimensions : function (ControlID,Width,Height) {			
			try
			{
				if(Width!=null)
				this.SetProperty(ControlID,"width",Width);
				
				if(Height!=null)
				this.SetProperty(ControlID,"height",Height);
			}
			catch(e)
			{
				MVJS.ReportError(e);
			}
		},
		
		SetWidth : function (ControlID,Width) {					
			try
			{
				if(Width!=null)
				this.SetProperty(ControlID,"width",Width);
				
			}
			catch(e)
			{
				MVJS.ReportError(e);
			}
		},
		
		SetHeight : function (ControlID,Height) {					
			try
			{
				if(Height!=null)
				this.SetProperty(ControlID,"height",Height);
			}
			catch(e)
			{
				MVJS.ReportError(e);
			}
		},

		SetOpacity : function (ControlID,Value) {
			try
			{
				
				this.SetProperty(ControlID,"opacity",Value/10);
				this.SetProperty(ControlID,"filter ","alpha(opacity=" + Value*10 + ")");
			}
			catch(e)
			{
				MVJS.ReportError(e);
			}
		},

		SetPosition : function (ControlID,X,Y) {
			try
			{
				this.SetProperty(ControlID,"left",X);
				this.SetProperty(ControlID,"top",Y);
			}
			catch(e)
			{
				MVJS.ReportError(e);
			}
		},

		SetVisible : function (ControlID,Value) { 

			try
			{
				if(Value)
					this.SetProperty(ControlID,"display","block");
				else
					this.SetProperty(ControlID,"display","none");
			}
			catch(e)
			{
				MVJS.ReportError(e);
			}
		},

		SetFont : function (ControlID,FontFamily,FontSize,FontWeight,TextDecoration,TextTransform) {
			try
			{
				if(FontFamily!=null)
				this.SetProperty(ControlID,"fontFamily",FontFamily);
				
				if(FontSize!=null)
				this.SetProperty(ControlID,"fontSize",FontSize);
				
				if(FontWeight!=null)
				this.SetProperty(ControlID,"fontWeight",FontWeight);
				
				if(TextDecoration!=null)
				this.SetProperty(ControlID,"textDecoration",TextDecoration);
				
				if(TextTransform!=null)
				this.SetProperty(ControlID,"textTransform",TextTransform);				
			}
			catch(e)
			{
				MVJS.ReportError(e);
			}
		},
		
		SetEnable : function (ControlID,Value) {
			try
			{
				var objControl;
				if(typeof(ControlID)=='string')
				{
					objControl= document.getElementById(ControlID);
				}
				else
				{
					objControl= ControlID;
				}
				
				if(Value)
				objControl.disabled=false;
				else
				objControl.disabled=true;
			}
			catch(e)
			{
				MVJS.ReportError(e);
			}
		}		
	};
if(typeof(MVJS)=="undefined")
	MVJS={};
MVJS.CoordinatesHandler={
	
	GetCoordsByControlID : function (ControlID,Anchor,HandleScroll){
		
		var XCoordinate=0;
		var YCoordinate=0;
		var ControlWidth=0;
		var ControlHeight=0;
		if(MVJS.IsIE() && document && document.body)
		{
			if(document.getElementById('MVContainer'))			
			document.getElementById('MVContainer').scrollTop = 0;
			document.body.scrollTop = 0;
		}
		
		if(HandleScroll==null)
		{
			HandleScroll=true;
		}
		if(typeof(ControlID)=="string")
		{
			ControlID=document.getElementById(ControlID);
		}
		if(!ControlID)
		{
			ControlWidth=document.body.clientWidth;
			ControlHeight=document.body.clientHeight;
		}
		else
		{
			var Coords=MVJS.StyleHandler.GetPosition(ControlID);
			XCoordinate=Coords.X;
			YCoordinate=Coords.Y;			
			ControlWidth=parseInt(MVJS.StyleHandler.GetWidth(ControlID));
			ControlHeight=parseInt(MVJS.StyleHandler.GetHeight(ControlID));
		}
			
		var AdjustX=parseInt(XCoordinate);
		var AdjustY=parseInt(YCoordinate);
		
		if(Anchor==null) Anchor="LeftTop";
		
		switch(Anchor)
		{
				
			case "RightTop":
				AdjustX=XCoordinate + ControlWidth;
				break;
				
			case "LeftBottom":
				AdjustY=parseInt(YCoordinate + ControlHeight);
				break;				
			
			case "RightBottom":
				AdjustX=parseInt(XCoordinate + ControlWidth);
				AdjustY=parseInt(YCoordinate + ControlHeight);				
				break;
			
			case "TopCenter":
				AdjustX=parseInt(XCoordinate + (ControlWidth/2));
				break;
			
			case "LeftCenter":				
				AdjustY=parseInt(YCoordinate + (ControlHeight/2));			
				break;
			
			case "BottomCenter":
				AdjustX=parseInt(XCoordinate + (ControlWidth/2));
				AdjustY=parseInt(YCoordinate + ControlHeight);				
				break;
			
			case "RightCenter":
				AdjustX=parseInt(XCoordinate + ControlWidth);
				AdjustY=parseInt(YCoordinate + (ControlHeight/2));				
				break;
			case "CenterCenter":
				AdjustX=parseInt(XCoordinate + (ControlWidth/2));
				AdjustY=parseInt(YCoordinate + (ControlHeight/2));
				break;
		}
		if(MVJS.IsFireFox() && HandleScroll)
		{			
			if(MVJS.Nuggets.TopMenu_Main)
			AdjustY-=parseFloat(MVJS.Nuggets.TopMenu_Main.ScrollTop);						
		}
		
		return {X:AdjustX,Y:AdjustY};

	},
	
	GetControlIDByCoords : function (XCoordinate,YCoordinate) {
		alert(document.body.componentFromPoint(XCoordinate,YCoordinate).type);
	},
		
	GetControlRegion : function (ControlID,HandleScroll) {
		if(HandleScroll==null)
		{
			HandleScroll=true;
		}
		
		var Coords=this.GetCoordsByControlID(ControlID,"LeftTop",HandleScroll);
		var XCoordinate= Coords.X;
		var YCoordinate= Coords.Y;
		var ControlHeight=parseFloat(MVJS.StyleHandler.GetHeight(ControlID));
		var ControlWidth=parseFloat(MVJS.StyleHandler.GetWidth(ControlID));		
		
		return {X1:XCoordinate,Y1:YCoordinate,X2:XCoordinate+ControlWidth,Y2:YCoordinate+ControlHeight};
	},
	IsPositionOutsideScreen : function (ControlID, TargetX, TargetY) {
	
		var ControlWidth=MVJS.StyleHandler.GetWidth(ControlID);
		var ControlHeight=MVJS.StyleHandler.GetHeight(ControlID);
		
		if(TargetX <0|| TargetY <0 || screen.availWidth < (TargetX + ControlWidth) || screen.availHeight < (TargetY + ControlHeight))
			return true;
		else
			return false;
	},
	IsMouseOnEdge : function(Control,e,EdgeType)
	{
		var x = (window.event) ? window.event.x-6:e.pageX-6; 
		var y = (window.event) ? window.event.y+10:e.pageY+10 ;
		
		
		var Region={};
		var Position=MVJS.StyleHandler.GetPosition(Control);
		Region.X1=Position.X;
		Region.Y1=Position.Y;
		if(MVJS.IsIE())
		{
			Region.X2=Position.X+Control.offsetWidth;
			Region.Y2=Position.Y+Control.offsetHeight;
		}
		else
		{
			Region.X2=Position.X+MVJS.StyleHandler.GetWidth(Control);
			Region.Y2=Position.Y+MVJS.StyleHandler.GetHeight(Control);
		}
		
		var Value=false;
		
		if(EdgeType=="Both" || EdgeType=="Horizontal")
		{
			if( (x>=Region.X2-5 && x < Region.X2))
			{
				Value=true;
			}
		}
		if(EdgeType=="Both" || EdgeType=="Vertical")
		{
			if((y>Region.Y1-1 && y < Region.Y1+1) || (y>Region.Y2-1 && y < Region.Y2+1))
			{
				Value=true;
			}
		}
		return Value;
	},
	GetExtreamMoveCoords : function (ControlID, TargetX, TargetY) {
		var ControlWidth=MVJS.StyleHandler.GetWidth(ControlID);
		var ControlHeight=MVJS.StyleHandler.GetHeight(ControlID);
		
		var AjustX=TargetX ,AdjustY=TargetY;
		if(TargetX < 0)
		AjustX=0;
		
		if(TargetY <0)
		AdjustY=0;
		
		if(screen.availWidth < (TargetX + ControlWidth))
		AjustX = screen.availWidth - ControlWidth;
		
		if(screen.availHeight < (TargetY + ControlHeight))
		AdjustY = screen.availHeight - ControlHeight;
		
		return {X:AjustX ,Y:AdjustY};
		
	},
	AlignControls : function(Control1ID, Control1Anchor,Control2ID, Control2Anchor,ScrollHandle){		
		var Coords=this.GetCoordsByControlID(Control1ID,Control1Anchor,false);		
		this.MoveControl(Control2ID, Control2Anchor, Coords.X, Coords.Y,null,ScrollHandle);
	},
	
	MoveControl : function (ControlID,  Anchor, TargetX, TargetY,AdustToMaxCoords,HandleScroll) {
		
		var ControlWidth=MVJS.StyleHandler.GetWidth(ControlID);
		var ControlHeight=MVJS.StyleHandler.GetHeight(ControlID);					
		var AdjustX=TargetX,AdjustY=TargetY;
		
		if(HandleScroll==null)
		{
			HandleScroll = true;
		}
		
		MVJS.StyleHandler.SetProperty(ControlID,"position","absolute");
		
		switch(Anchor)
		{		
			
			case "RightTop":
				AdjustX = parseInt(TargetX - ControlWidth);
				break;
				
			case "LeftBottom":
				AdjustY = parseInt(TargetY - ControlHeight);
				break;				
			
			case "RightBottom":
				AdjustX = parseInt(TargetX) - ControlWidth;
				AdjustY =parseInt(TargetY) - ControlHeight;
				break;
			
			case "TopCenter":
				AdjustX = parseInt(TargetX) - parseInt(ControlWidth/2);				
				break;
			
			case "LeftCenter":
				AdjustY = parseInt(TargetY) - parseInt(ControlHeight/2);
				break;
			
			case "BottomCenter":
				AdjustX = parseInt(TargetX) - parseInt(ControlWidth/2);
				AdjustY = parseInt(TargetY) - ControlHeight;
				break;
			
			case "RightCenter":
				AdjustX = parseInt(TargetX) - ControlWidth;
				AdjustY = parseInt(TargetY) - parseInt(ControlHeight/2);
				break;
			case "CenterCenter":
				
				AdjustX = parseInt(TargetX) - parseInt(ControlWidth/2);
				AdjustY = parseInt(TargetY) - parseInt(ControlHeight/2);
				break;
		}
		
		if(AdustToMaxCoords!=null)
		{
			if(AdustToMaxCoords==true)
			{
				
				var Coords=this.GetExtreamMoveCoords(ControlID,AdjustX,AdjustY);
				AdjustX=Coords.X;
				AdjustY=Coords.Y;
			}
		}
		
		
		if(MVJS.IsFireFox() && HandleScroll)
		{
			if(MVJS.Nuggets.TopMenu_Main)
			{
				AdjustY-=MVJS.Nuggets.TopMenu_Main.ScrollTop;
				
			}
		}
		
			
		MVJS.StyleHandler.SetPosition(ControlID,AdjustX,AdjustY);		
		
	},
	
	IsControlInRegion : function (ControlID,Region) {
		
		var ControlRegion=this.GetControlRegion(ControlID);
		
		
		if(Region.X1> ControlRegion.X1 || Region.Y1>  ControlRegion.Y1 || Region.X2< ControlRegion.X2 || Region.Y2< ControlRegion.Y2)
			return false;
		else
			return true;
	},
	
	ScrollToControl : function (ControlID)	{
			
		var Coords=this.GetCoordsByControlID(ControlID);		
		this.ScrollTo(Coords.X,Coords.Y);		
	},
	
	ScrollTo : function (HorizontalValue,VerticalValue) {
		window.scrollTo(HorizontalValue,VerticalValue);
	}
	
	
	
};
	
		


function FieldsList()
{
	this.instanceOf= function()
	{
		var self=new Array();
		self.Add = function (obj)
		{
			if(obj)
			{
				this[this.length]=obj;
			}
		}
		return self;
	}
}

function CheckAlphanumeric(alphane)
{
	var numaric = alphane;
	for(var j=0; j<numaric.length; j++)
		{
		  var alphaa = numaric.charAt(j);
		  var hh = alphaa.charCodeAt(0);
		  if((hh > 47 && hh<58) || (hh > 64 && hh<91) || (hh > 96 && hh<123)|| hh==46 || hh==95)
		  {
		  }
		else	{
			 return false;
		  }
		}
 return true;
}

function Field(FieldName,DefaultValue,FieldType,ValidationType,Message,EmptyMessage,OptionalArgs,IsOptional)
{

	this.FieldName=FieldName;
	this.FieldType=FieldType;
	this.ValidationType=ValidationType;
	this.OptionalArgs=OptionalArgs;
	this.Message=Message;
	this.ErrorDiv="Err"+FieldName;
	this.IsOptional=IsOptional;
	if(this.IsOptional==null)
		this.IsOptional=false;
	if(EmptyMessage==null)
	{
		this.EmptyMessage=Message;
	}	
	else
	{
		this.EmptyMessage=EmptyMessage;
	}

	this.DefaultValue=DefaultValue;

	if(DefaultValue==null)
	{
		switch(ValidationType)
		{
			case "string":
			this.DefaultValue="";
			break;
			case "alphanumeric":
			this.DefaultValue="";
			break;
			case "numeric":
			this.DefaultValue=0;
			break;
			case "range":
			this.DefaultValue=0;
			break;
		}
	}
	
}

function Range(MinVal,MaxVal)
{
	this.Type="Range";
	this.MinVal=MinVal;
	this.MaxVal=MaxVal;
}

function Comparer(FieldName)
{
	this.Type="Comparer";
	this.FieldName=FieldName;
}

function ConditionalCheck(FieldName,FieldType,CompareValue)
{
	this.Type="ConditionalCheck";
	this.FieldName=FieldName;
	this.FieldType=FieldType;
	this.CompareValue=CompareValue;
}

function DisplayError(Target,Message)
{	
	if(!document.getElementById(Target) && Message!="")
	alert(Message);
	
	if(document.getElementById(Target))
	{
		MVJS.SetValue(Target,Message);
	}

}

function ValidateForm(FormName,ObjFields)
{
	var Excluded;
	var Valid=true;

	for(x=0;x<ObjFields.length;x++)
	{
		if(document.getElementById(ObjFields[x].ErrorDiv).value)
			MVJS.SetValue(ObjFields[x].ErrorDiv,'');
	}

	for(x=0;x<ObjFields.length;x++)
	{

		var Value="";

		Value=MVJS.GetValue(ObjFields[x].FieldName);
		Value=Value.replace(/<Item>/gi,"");
		Value=Value.replace(/<\/Item>/gi,"");
		if(Value=="null") Value="";
		
		if(ObjFields[x].OptionalArgs!=null && ObjFields[x].OptionalArgs.Type=="ConditionalCheck")
		{
			var ConditionValue="";			
			ConditionValue=MVJS.GetValue(ObjFields[x].OptionalArgs.FieldName);
			ConditionValue=ConditionValue.replace(/<Item>/gi,"");
			ConditionValue=ConditionValue.replace(/<\/Item>/gi,"");
			if(ObjFields[x].OptionalArgs.CompareValue==ConditionValue)
			{
				ObjFields[x].IsOptional=false;
			}
			else
			{
				ObjFields[x].IsOptional=true;
			}
		}

		if(ObjFields[x].IsOptional==false && ObjFields[x].FieldType!="radio" && Value==ObjFields[x].DefaultValue)
		{
			
			DisplayError(ObjFields[x].ErrorDiv,ObjFields[x].EmptyMessage);
			MVJS.Focus(ObjFields[x].FieldName);
			return false;
		}
		
		switch(ObjFields[x].ValidationType)
		{
			
			case "string":
			if(Value!="" && isInteger(Value))
			{
				DisplayError(ObjFields[x].ErrorDiv,ObjFields[x].Message);
				MVJS.Focus(ObjFields[x].FieldName);
				return false;
			}
			break;
			case "alphanumeric":
			if(Value=="")
			{
				DisplayError(ObjFields[x].ErrorDiv,ObjFields[x].Message);
				MVJS.Focus(ObjFields[x].FieldName);
				return false;
			}			
			break;
			case "checkalphanumeric":
			if(Value=="")
			{
				DisplayError(ObjFields[x].ErrorDiv,ObjFields[x].Message);
				MVJS.Focus(ObjFields[x].FieldName);
				return false;
			}
			else if(!CheckAlphanumeric(Value))
			{
				DisplayError(ObjFields[x].ErrorDiv,ObjFields[x].Message);
				MVJS.Focus(ObjFields[x].FieldName);
				return false;
			}
			break;
			case "compare":
			if(Value!="" && document.getElementById(ObjFields[x].OptionalArgs.FieldName).value!=Value)
			{
				DisplayError(ObjFields[x].ErrorDiv,ObjFields[x].Message);
				MVJS.Focus(ObjFields[x].FieldName);
				return false;
			}
			break;
			case "checked":
			if(!IsRadioSelected(ObjFields[x].FieldName))
			{
				DisplayError(ObjFields[x].ErrorDiv,ObjFields[x].Message);				
				return false;
			}
			break;
			case "date":
			if(Value!="" && !IsDate(Value))
			{
				DisplayError(ObjFields[x].ErrorDiv,ObjFields[x].Message);
				MVJS.Focus(ObjFields[x].FieldName);
				return false;
			}
			break;
			case "email":
			if(Value!="" && !IsValidEmail(Value))
			{
				DisplayError(ObjFields[x].ErrorDiv,ObjFields[x].Message);
				MVJS.Focus(ObjFields[x].FieldName);
				return false;
			}
			break;
			case "multiemail":
			var InvalidEmails = IsValidEmails(Value);
			if(Value!="" && !(InvalidEmails == ""))
			{
				DisplayError(ObjFields[x].ErrorDiv,ObjFields[x].Message + InvalidEmails);
				MVJS.Focus(ObjFields[x].FieldName);
				return false;
			}
			break;
			case "numeric":
			if(Value!="" && !isInteger(Value)) //parseInt(Value)
			{
				DisplayError(ObjFields[x].ErrorDiv,ObjFields[x].Message);
				MVJS.Focus(ObjFields[x].FieldName);
				return false;
			}
			break;
			case "float":
			if(Value!="" && !isFloat(Value))
			{
				DisplayError(ObjFields[x].ErrorDiv,ObjFields[x].Message);
				MVJS.Focus(ObjFields[x].FieldName);
				return false;
			}
			break;
			case "range":
			if(Value!="" && !IsBetweenRange(parseInt(Value),ObjFields[x].OptionalArgs.MinVal,ObjFields[x].OptionalArgs.MaxVal) || Value!="" && !isInteger(Value))
			{
				DisplayError(ObjFields[x].ErrorDiv,ObjFields[x].Message);
				MVJS.Focus(ObjFields[x].FieldName);
				return false;
			}
			break;
			case "length":
			if(Value!="" && !IsLengthValid(Value,ObjFields[x].OptionalArgs.MinVal,ObjFields[x].OptionalArgs.MaxVal))
			{
				DisplayError(ObjFields[x].ErrorDiv,ObjFields[x].Message);
				MVJS.Focus(ObjFields[x].FieldName);
				return false;
			}
			break;
			case "phone":
			if(Value!="" && !IsValidPhone(Value))
			{
				DisplayError(ObjFields[x].ErrorDiv,ObjFields[x].Message);
				MVJS.Focus(ObjFields[x].FieldName);
				return false;	
			}
			break;
			case "mobile":
			if(Value!="" && !IsValidMobile(Value))
			{
				DisplayError(ObjFields[x].ErrorDiv,ObjFields[x].Message);
				MVJS.Focus(ObjFields[x].FieldName);
				return false;	
			}
			break;
		}
		DisplayError(ObjFields[x].ErrorDiv,"");
	}
	return true;
}

function IsValidPhone(Value)
{
	var objRegExp  =/(^[+]{1}[0-9]{2,4}\s[0-9]{2,6}\s[0-9]{3,10}$)/i;
	return objRegExp.test(Value);
}

function IsValidMobile(Value)
{
	var objRegExp  =/(^[+]{1}[0-9]{2,4}\s[0-9]{5,10}$)/i;
	return objRegExp.test(Value);
}

function GetRadioValue(RadioGroupName) 
{
	var RadioGroup = document.getElementsByName(RadioGroupName);
	for(i=0;i<=RadioGroup.length-1;i++)
	{
		if(RadioGroup[i].checked)
		{
			return RadioGroup[i].value;
		}
	}
	return false;
}

function IsProvided(FieldName)
{
	if(document.getElementById(FieldName).value == "")
	{
		return false;
	}
	else
	{
		return true;
	}
}


function IsValidEmail(strValue)
{
	var objRegExp  =/(^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]+)([.][a-z]{3,4})$)|(^[a-z0-9]([a-z0-9_\.]+)@([a-z0-9_\-\.]+)(\.[a-z]{2,3})(\.[a-z]{2})*$)/i;
	return objRegExp.test(strValue);
}


function IsBetweenRange(Value,RangeStart,RangeEnd)
{
	if(Value>RangeStart)
	{
		
		if(Value>RangeEnd)
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	else
	{
		return false;
	}
}

function IsLengthValid(Value,RangeStart,RangeEnd)
{

	if(Value.length>RangeStart)
	{
		if(Value.length>RangeEnd)
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	else
	{
		return false;
	}
}

function IsRadioSelected(RadioGroupName) 
{
	var RadioGroup = document.getElementsByName(RadioGroupName);
	for(i=0;i<=RadioGroup.length-1;i++)
	{
		if(RadioGroup[i].checked)
			return true;
	}
	return false;
}

function IsItemSelected(OptionName,DefaultValue)
{
	var temp = document.getElementById(OptionName).value;
	if(temp.options[temp.selectedIndex].value == DefaultValue)
	{
		return false;
	}
	else
	{
		return true;
	}
}

function AreEquel(FieldName_1,FieldName_2)
{
	if(document.getElementById(FieldName_1).value != document.getElementById(FieldName_2).value)
	{
		return false;
	}
	else
	{
		return true;
	}
}

var dtCh= "-";
var minYear=1900;
var maxYear=2100;

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 isFloat(s)
{
	var objRegExp  =/^((\d+(\.\d*)?)|((\d*\.)?\d+))$/;
	return objRegExp.test(s);
}
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++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function IsDate(dateStr)
{
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
	var matchArray = dateStr.match(datePat); // is the format ok?

	if (matchArray == null)
	{
		//alert("Please enter date as either dd/mm/yyyy or dd-mm-yyyy.");
		return false;
	}

	month = matchArray[1]; // p@rse date into variables
	day = matchArray[3];
	year = matchArray[5];

//alert(day + ':' + month + ':' + year);
	if (month < 1 || month > 12)
	{ // check month range
		//alert("Month must be between 1 and 12.");
		return false;
	}

	if (day < 1 || day > 31)
	{
		//alert("Day must be between 1 and 31.");
		return false;
	}

	if ((month==4 || month==6 || month==9 || month==11) && day==31)
	{
		//alert("Month "+month+" doesn`t have 31 days!")
		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))
		{
			//alert("February " + year + " doesn`t have " + day + " days!");
			return false;
		}
	}
	return true; // date is valid
}

function IsValidEmails(Values)
{
	var InvaildMailStr = "";		
	var Mailstr = MVJS.GetValue(SourceControl);
	var Mails = Mailstr.split('\n');
	for(x = 0; x < Mails.length; x++)
	{
		Mails[x]=MVJS.Trim(Mails[x]);
		if(Mails[x].length>0)
		{
			if(!IsValidEmail(Mails[x]))
			{				
				InvaildMailStr += Mails[x]+",";
			}
		}			
	}		
	if(InvaildMailStr.length > 0)
	{
		InvaildMailStr = InvaildMailStr.substr(0,InvaildMailStr.length-1);
		return InvalidMailStr;
	}
	return "";
}


//-2 => Invalid Second Date Format
//-1 => Invalid First Date Format
//0 => Dates are Equal
//1 => First Date is Greater than Second
//2 => Second Date is Greater than First

function CompareDates(StartDate,EndDate)
{

	//Date Format[ dd-MM-yyyy ]

	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
	var matchArray_Start = StartDate.match(datePat);
	var matchArray_End = EndDate.match(datePat);

	if (matchArray_Start == null)
	{
		return -1;
	}
	if (matchArray_End == null)
	{
		return -2;
	}

	StartMonth = parseInt(matchArray_Start[1],10);
	StartDay = parseInt(matchArray_Start[3],10);
	StartYear = parseInt(matchArray_Start[5],10);
	EndMonth = parseInt(matchArray_End[1],10);
	EndDay = parseInt(matchArray_End[3],10);
	EndYear = parseInt(matchArray_End[5],10);

//alert(StartMonth + ':' + StartDay + ':' + StartYear);
//alert(EndMonth + ':' + EndDay + ':' + EndYear);
	if((StartYear == EndYear) && (StartMonth == EndMonth) && (StartDay == EndDay))
		return 0;

	var ObjStartDate = new Date(StartYear,StartMonth,StartDay);
	var ObjEndDate = new Date(EndYear,EndMonth,EndDay);

	if(ObjStartDate > ObjEndDate)
		return 1;
	else
		return 2;
}
function HoursBetweenDates(StartDate,EndDate)
{
	//Date Format[ dd-MM-yyyy ]
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
	var matchArray_Start = StartDate.match(datePat);
	var matchArray_End = EndDate.match(datePat);

	if (matchArray_Start == null)
	{
		return -1;
	}
	if (matchArray_End == null)
	{
		return -2;
	}
	StartMonth = parseInt(matchArray_Start[1],10);
	StartDay = parseInt(matchArray_Start[3],10);
	StartYear = parseInt(matchArray_Start[5],10);
	EndMonth = parseInt(matchArray_End[1],10);
	EndDay = parseInt(matchArray_End[3],10);
	EndYear = parseInt(matchArray_End[5],10);

//alert(StartMonth + '-' + StartDay + '-' + StartYear);
//alert(EndMonth + '-' + EndDay + '-' + EndYear);
	var ObjFirstDate = new Date(StartYear, StartMonth, StartDay);
	var ObjSecondDate = new Date(EndYear, EndMonth, EndDay);
	var msPerDay = 24 * 60 * 60 * 1000
	var DiffDays = Math.floor((ObjSecondDate-ObjFirstDate)/ msPerDay) + 1;
//alert(DiffDays*24);
	return DiffDays*24;
	
}
if(typeof(MVJS)=="undefined")
{
	MVJS={};
}
MVJS.WaterMarkText = function(ControlID,Message,WaterMarkClass,MessageText){
	return new MVJS._WaterMarkText(ControlID,Message,WaterMarkClass,MessageText);
};
MVJS._WaterMarkText = function(ControlID,Message,WaterMarkClass,MessageText){
	
	this.Control=null;
	this.Message="";
	this.WaterMarkClass = "WaterMarkClass";
	this.ControlClass='';
	this.ControlMaxLength='';
	this.DefaultControlClass="InputWaterMarkClass";
	
	if(MessageText)Message = MessageText;	
	if(typeof(ControlID) == 'string')
	{
		this.Control = document.getElementById(ControlID);
	}
	else
	{
		this.Control = ControlID;	
	}
	
	if(Message)
	{
		this.Message =  Message;
	}
	else if(this.Control.lang !=null)
	{
		this.Message = this.Control.lang;
	}
	else
	{
		return;
	}
	
	if(this.Control.maxLength)
	this.ControlMaxLength = this.Control.maxLength;
	
	if(WaterMarkClass!='' && WaterMarkClass!=null)
	this.WaterMarkClass = WaterMarkClass;
	if(this.Control.className)
	this.ControlClass = this.Control.className;
	
	if(this.ControlClass== this.WaterMarkClass)
	{
		this.ControlClass = this.DefaultControlClass;
	}
	
	if(this.ControlMaxLength && this.Message.length > this.ControlMaxLength && this.Control.type.toUpperCase()!="TEXTAREA")
	this.Control.maxLength = this.Message.length;
	
	this.Control.className = this.WaterMarkClass;
	this.Control.value = this.Message;
	this.Control.style.color="";
	var _this = this;
	
	MVJS.EventHandler().AttachEvent(this.Control,"focus",function (){_this.FocusHandler();});
	MVJS.EventHandler().AttachEvent(this.Control,"blur",function (e){_this.BlurHandler();});
	
	/*this.Control.onfocus = function ()
	{
		if(_this.Control.className == _this.WaterMarkClass)
		{
			_this.Control.value='';
			_this.Control.className= _this.ControlClass;			
			_this.Control.maxLength = _this.ControlMaxLength;
		}
	};
	
	
	this.Control.onblur = function ()
	{
		if(_this.Control.value =='')
		{
			_this.Control.className = _this.WaterMarkClass;
			_this.Control.maxLength = _this.Message.length;
			_this.Control.style.color="";
			_this.Control.value = _this.Message;
			
		}
	};*/
	 
	 
};
MVJS._WaterMarkText.prototype.FocusHandler = function()
{
	if(this.Control.className == this.WaterMarkClass)
	{
		this.Control.value='';
		this.Control.className= this.ControlClass;	
		if (this.Control.type.toUpperCase()!="TEXTAREA")
		this.Control.maxLength = this.ControlMaxLength;
	}
};

MVJS._WaterMarkText.prototype.BlurHandler = function()
{
	if(this.Control.value =='')
	{
		this.Control.className = this.WaterMarkClass;
		if (this.Control.type.toUpperCase()!="TEXTAREA")
		this.Control.maxLength = this.Message.length;
		this.Control.style.color="";
		this.Control.value = this.Message;
				
	}
};

MVJS._WaterMarkText.prototype.RemoveWatermark = function()
{
	MVJS.SetValue(this.Control,'');
	this.Control.className = this.ControlClass;
	this.Control.onfocus = function (){};
	this.Control.onblur = function (){};	
};

MVJS.RemoveWatermark = function(ControlId,ClassName)
{
	if(typeof(ControlId)=='string')
	ControlId= document.getElementById(ControlId);
	
	MVJS.SetValue(ControlId,'');
	ControlId.className = ClassName;
	ControlId.onfocus = function (){};
	ControlId.onblur = function (){};	
};
MVJS.HintBox =function (ControlID,HintBoxID,MessageContainer,Message){
		
		var Control;
		if(typeof(ControlID)=='string')
		{
			Control= document.getElementById(ControlID);
		}
		else
		{
			Control= ControlID;		
		}
		
		var _Control=Control;
		var _this = this;
		var ObjPageOuter = document.getElementById('MVNuggets_PageOuterDiv');
		if(ObjPageOuter)
		{
			MVJS.EventHandler().AttachEvent(ObjPageOuter,"scroll",function (e){MVJS.Hide(HintBoxID);});
		}
		Control.onfocus = function ()
		{
			
			try
			{
				var objCoordinatesHandler= MVJS.CoordinatesHandler;
				var objStyleHandler = MVJS.StyleHandler;
			
			
				var TextBoxCords=objCoordinatesHandler.GetCoordsByControlID(ControlID,"RightTop",false);				
				if(MVJS.IsIE() && MVJS.Nuggets.TopMenu_Main)
				{	
					TextBoxCords.Y=parseInt(TextBoxCords.Y) - parseFloat(MVJS.Nuggets.TopMenu_Main.ScrollTop);
				}				
				objCoordinatesHandler.MoveControl(HintBoxID,"LeftTop",(TextBoxCords.X + 10),(TextBoxCords.Y - 5));	
				document.getElementById(MessageContainer).innerHTML=Message;			
				objStyleHandler.SetVisible(HintBoxID,true);
			}
			catch(e)
			{
				MVJS.ReportError(e);
			}
		};
		
		Control.onblur = function ()
		{
			try
			{
				var objStyleHandler = MVJS.StyleHandler;
				objStyleHandler.SetVisible(HintBoxID,false);
			}
			catch(e)
			{
				MVJS.ReportError(e);
			}
			
			
		};	
};

MVJS.MessageBox =function (MessageBoxID,MessageContainer){
	return new MVJS._MessageBox(MessageBoxID,MessageContainer);
};
MVJS._MessageBox = function (MessageBoxID,MessageContainer)
{
	if(typeof(MessageBoxID)=='string')
	{
		this.MessageBoxId = document.getElementById(MessageBoxID);
	}
	else
	{
		this.MessageBoxId = MessageBoxID;
	}
	
	if(typeof(MessageContainer)=='string')
	{
		this.MessageContainer = document.getElementById(MessageContainer);
	}
	else
	{
		this.MessageContainer = MessageContainer;
	}
	this.Timer = 30000;
	this.SetTime = null;
};
MVJS._MessageBox.prototype.Show = function(ControlId,Message,ScrollTop,Anchor)
{
	var Control;
	if(!Anchor)
	{
		Anchor='right';
	}
	if(typeof(ControlId)=='string')
	{
		Control= document.getElementById(ControlId);
	}
	else
	{
		Control= ControlId;	
	}
	
	if(!Control) return;
	try
	{
		var objCoordinatesHandler= MVJS.CoordinatesHandler;
		var objStyleHandler = MVJS.StyleHandler;
	
		var Coords=objCoordinatesHandler.GetCoordsByControlID(Control,"RightTop");
		
		if(MVJS.IsIE())
		{
			Coords.Y-=MVJS.Nuggets.TopMenu_Main.TabPageTop;
		}
		if(ScrollTop)
		{
			Coords.Y-=ScrollTop;
		}
		if(Anchor=='right')
		{
			objStyleHandler.SetPosition(this.MessageBoxId,(Coords.X + 10),(Coords.Y - 5));
		}
		else
		{
			objStyleHandler.SetPosition(this.MessageBoxId,(Coords.X - (10 + parseInt(this.MessageBoxId.style.width))),(Coords.Y - 5));
		}
		this.MessageContainer.innerHTML=Message;
		objStyleHandler.SetVisible(this.MessageBoxId,true);
		var _this = this;
		if(this.SetTime) clearTimeout(this.SetTime);
		this.SetTime=setTimeout(function (){_this.Hide();},this.Timer);
	}
	catch(e)
	{
		MVJS.ReportError(e);	    
	}
	
};
MVJS._MessageBox.prototype.Hide = function()
{
	this.MessageContainer.innerHTML="";			
	MVJS.Hide(this.MessageBoxId);
};
MVJS.DataTable=function(Columns,Rows){
	return new MVJS._DataTable(Columns,Rows);
};
MVJS._DataTable=function(Columns,Rows){
	this.Rows = MVJS.ArrayList();
	this.Columns = Columns;
	for(var ColumnIndex=0;ColumnIndex<this.Columns.length; ColumnIndex++)
	{
		this.Columns[ColumnIndex] = this.Columns[ColumnIndex].toString().replace(/\s/g,"");
	}
	this.AddRows(Rows);
};
MVJS._DataTable.prototype.AddColumns = function(ArrColumns)
{
	if(ArrColumns)
	{
		for(var ColumnIndex=0; ColumnIndex<ArrColumns.length; ColumnIndex++)
		{
			this.Columns[this.Columns.length] = ArrColumns[ColumnIndex];
			if(this.Rows.length > 0)
			{
				for(var RowIndex=0; RowIndex<this.Rows.length; RowIndex++)
				{
					this.Rows[RowIndex][ArrColumns[ColumnIndex]] = null;
				}
			}
		}
	}
};
MVJS._DataTable.prototype.AddRows = function(ArrRows)
{
	if(ArrRows)
	{
		for(var RowIndex=0; RowIndex<ArrRows.length; RowIndex++)
		{
			var RowObject = new Object();
			for(var ColumnIndex=0; ColumnIndex<this.Columns.length; ColumnIndex++)
			{
				RowObject[this.Columns[ColumnIndex]] = ArrRows[RowIndex][ColumnIndex];
			}
			this.Rows.Add(RowObject);
		}
	}
};
MVJS._DataTable.prototype.NewRow = function()
{
	var RowObject = new Object();
	for(var ColumnIndex=0; ColumnIndex<this.Columns.length; ColumnIndex++)
	{
		RowObject[this.Columns[ColumnIndex]] = null;
	}
	return RowObject;
};


MVJS.QuickLaunch=function(ControlId,Target,Preferences){
	return new MVJS._QuickLaunch(ControlId,Target,Preferences);
};

MVJS._QuickLaunch =function(ControlId,Target,Preferences)
{
	if(!ControlId) return;
	if(typeof(ControlId)=="string")
	{
		ControlId = document.getElementById(ControlId);
	}
	
	this.ControlId  = ControlId;
	
	if(typeof(Target)=="string")
	{
		Target = document.getElementById(Target);
	}
	
	this.Target = Target;
	this.Preferences = Preferences;
	
	MVJS.Show(this.ControlId);
	this.OriginalHeight=MVJS.StyleHandler.GetHeight(this.ControlId);
	this.OriginalWidth=MVJS.StyleHandler.GetWidth(this.ControlId);
	
	MVJS.StyleHandler.SetHeight(this.ControlId,10);
	MVJS.StyleHandler.SetWidth(this.ControlId,10);
	MVJS.StyleHandler.SetProperty(this.ControlId,'overflow','hidden');
	
	MVJS.Hide(this.ControlId);
	this.CurrentHeight = 10;
	this.CurrentWidth = 10;
	
	var _this = this;
	this.TimeSpan = null;
	this.TargetMouseOut = true;
	this.ControlMouseOut = true;
	this.HideTimeSpan = null;
	this.Mode = "Show";
	Target.onmouseover = function ()
	{
		if(_this.TimeSpan) clearTimeout(_this.TimeSpan);
		_this.TargetMouseOut = false;		
		_this.TimeSpan = setTimeout(function(){_this.Show()},(700));
	};
	
	Target.onmouseout = function ()
	{		
		_this.TargetMouseOut = true;		
		if(_this.HideTimeSpan) clearTimeout(_this.HideTimeSpan);		
		_this.HideTimeSpan = setTimeout(function () {_this.Hide();},300);
	};
	this.ControlId.onmouseover = function ()
	{
		_this.ControlMouseOut = false;
		
	};
	
	this.ControlId.onmouseout = function ()
	{		
		_this.ControlMouseOut = true;		
		if(_this.HideTimeSpan) clearTimeout(_this.HideTimeSpan);		
		_this.HideTimeSpan=setTimeout(function () {_this.Hide();},300);
	};
	

};

MVJS._QuickLaunch.prototype.Show = function() {	
	this.CurrentHeight = 0;
	this.CurrentWidth = 0;
	var ReferenceCords=MVJS.CoordinatesHandler.GetCoordsByControlID(this.Target,"LeftBottom",false);
	MVJS.Show(this.ControlId);
	MVJS.Hide(this.ControlId.childNodes[0]);	
	
	MVJS.CoordinatesHandler.MoveControl(this.ControlId,"LeftTop",ReferenceCords.X,ReferenceCords.Y,null,false);
	
	if(MVJS.IsIE())
	{
		this.ControlId.style.zIndex = 150;
		var ObjSelectBuster = document.getElementById('SelectBuster');	

		if(ObjSelectBuster)
		{
			this.ControlId.parentNode.appendChild(ObjSelectBuster);
			MVJS.StyleHandler.SetOpacity('SelectBuster',0);
			ObjSelectBuster.style.width = this.OriginalWidth;
			ObjSelectBuster.style.height = this.OriginalHeight;
			ObjSelectBuster.style.top = ReferenceCords.Y;
			ObjSelectBuster.style.left = ReferenceCords.X;	
			ObjSelectBuster.style.display = "block";
		}
			
	}
	
	if(this.TimeSpan) clearTimeout(this.TimeSpan);
	MVJS.StyleHandler.SetOpacity(this.ControlId , 0);
	this.Mode = "Show";
	this.ResizeControl(100,true);
};
MVJS._QuickLaunch.prototype.Close = function() {
	this.ControlMouseOut= true;
	this.TargetMouseOut = true;
	this.Hide();
}
MVJS._QuickLaunch.prototype.Hide = function() {
	
	if(this.ControlMouseOut && this.TargetMouseOut)
	{
		
		this.CurrentHeight = this.OriginalHeight-(parseFloat(this.OriginalHeight)/5);
		this.CurrentWidth = this.OriginalWidth-(parseFloat(this.OriginalWidth)/5);
		this.Mode = "Hide";
		MVJS.Hide(this.ControlId.childNodes[0]);
		if(this.TimeSpan) clearTimeout(this.TimeSpan);
		this.ResizeControl(100);
		if(MVJS.IsIE() && document.getElementById('SelectBuster'))
		{
			document.getElementById('SelectBuster').style.display= 'none';	
		}
	}
};

MVJS._QuickLaunch.prototype.ResizeControl = function(timer,Expand) {

	var CurrentOpacity = MVJS.StyleHandler.GetProperty(this.ControlId,'opacity') * 10;
	var _this = this;
	var resizeHeightby=parseFloat((this.OriginalHeight-this.CurrentHeight)/10);
	var resizeWidthby=parseFloat((this.OriginalWidth-this.CurrentWidth)/10);
	timer--;
	if(this.Mode== "Show") Expand = true;
	if(this.Mode== "Hide") Expand = false;
	if(Expand)
	{
		if(CurrentOpacity!=10)
		MVJS.StyleHandler.SetOpacity(this.ControlId , (CurrentOpacity +1));
		
		this.CurrentHeight = (this.CurrentHeight + resizeHeightby);
		this.CurrentWidth = (this.CurrentWidth + resizeWidthby);
		this.ControlId.style.height=this.CurrentHeight;
		this.ControlId.style.width=this.CurrentWidth;
		
		if(this.CurrentWidth < this.OriginalWidth-5)
		{
			this.TimeSpan = setTimeout(function(){_this.ResizeControl(timer,true)},(timer * 200/1000));
		}
		else
		{			
			this.ControlId.style.height=this.OriginalHeight;
			this.ControlId.style.width=this.OriginalWidth;
			MVJS.Show(this.ControlId.childNodes[0]);
			MVJS.StyleHandler.SetOpacity(this.ControlId , 10);
		}
	}
	else
	{
		if(CurrentOpacity>0)
		MVJS.StyleHandler.SetOpacity(this.ControlId , (CurrentOpacity -1));
		
		;
		this.CurrentHeight = parseFloat( parseFloat(this.CurrentHeight) -  parseFloat(resizeHeightby));
		this.CurrentWidth = parseFloat( parseFloat(this.CurrentWidth) -  parseFloat(resizeWidthby));
		
		if(this.CurrentWidth > 0)
		{
			this.ControlId.style.height=parseFloat(this.CurrentHeight);
			this.ControlId.style.width=parseFloat(this.CurrentWidth);
			this.TimeSpan = setTimeout(function(){_this.ResizeControl(timer)},(timer * 200/1000));
		}
		else
		{	
			MVJS.Hide(this.ControlId);
			this.ControlId.style.height=10;
			this.ControlId.style.width=10;
			MVJS.StyleHandler.SetOpacity(this.ControlId , 0);
		}
	}
	
	
};
