/**Open Url in popup**/
function MM_openBrWindow(theURL,winName,features)
{
	window.open(theURL,winName,features);
}

/**reloads the window if Nav4 resized**/
function MM_reloadPage(init)
{  
	if (init == true) with (navigator)
	{
		if ( (appName == "Netscape") && ( parseInt(appVersion) == 4) )
		{
			document.MM_pgW=innerWidth; 
			document.MM_pgH=innerHeight; 
			onresize=MM_reloadPage; 
		}
	}
	else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) 
	{
		location.reload();
	}
}
MM_reloadPage(true);

//v4.01
function MM_findObj(n, d)
{ 
	var p,i,x;  
	
	if(!d) 
	{
		d=document; 
	}
	
	if((p=n.indexOf("?"))>0&&parent.frames.length)
	{
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
	}
	
	if(!(x=d[n])&&d.all) 
	{
		x=d.all[n]; 
	}
	
	for (i=0;!x&&i<d.forms.length;i++) 
	{
		x=d.forms[i][n];
	}
	
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) 
	{
		x=MM_findObj(n,d.layers[i].document);
	}
	
	if(!x && d.getElementById) 
	{
		x=d.getElementById(n); 
	}
	
	return x;
}
//v4.0
function MM_validateForm() 
{
	var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
	for (i=0; i<(args.length-2); i+=3)
	{ 
		test=args[i+2]; 
		val=MM_findObj(args[i]);
		
		if (val) 
		{ 
			nm=val.name; 
			if ((val=val.value)!="")
			{
				if (test.indexOf('isEmail')!=-1) 
				{ 
					p=val.indexOf('@');
					if (p<1 || p==(val.length-1)) 
						errors+='- '+nm+' must contain an e-mail address.\n';
				}
				else if (test!='R') 
				{ 
					num = parseFloat(val);
					if (isNaN(val))
						errors+='- '+nm+' must contain a number.\n';
					
					if (test.indexOf('inRange') != -1)
					{ 
						p=test.indexOf(':');
						min=test.substring(8,p);
						max=test.substring(p+1);
						
						if (num<min || max<num)
							errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
					}
				}
			}
			else if (test.charAt(0) == 'R') 
				errors += '- '+nm+' is required.\n'; 
		}
	} 
	
	if (errors) 
		alert('The following error(s) occurred:\n'+errors);
	
	document.MM_returnValue = (errors == '');
}

//v3.0
function MM_jumpMenu(targ,selObj,restore)
{
	parent.location = selObj.options[selObj.selectedIndex].value;
	if (restore)
		selObj.selectedIndex=0;
}

//v3.0
function MM_goToURL()
{ 
	var i, args=MM_goToURL.arguments; 
	document.MM_returnValue = false;
	
	for (i=0; i<(args.length-1); i+=2)
		parent.location = args[i + 1];
}

var timeout = 500;
var closetimer = 0;
var ddmenuitem = 0;

//open hidden layer
function mopen(id)
{	
	//cancel close timer
	mcancelclosetime();
	//close old layer
	if(ddmenuitem) 
		ddmenuitem.style.visibility = 'hidden';
	// get new layer and show it
	ddmenuitem = document.getElementById(id);
	ddmenuitem.style.visibility = 'visible';
}
// close showed layer
function mclose()
{
	if(ddmenuitem) 
		ddmenuitem.style.visibility = 'hidden';
}

// go close timer
function mclosetime()
{
	closetimer = window.setTimeout(mclose, timeout);
}

// cancel close timer
function mcancelclosetime()
{
	if(closetimer)
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

// close layer when click-out
document.onclick = mclose;

function textCounter(field, countfield, maxlimit)
{
	// if too long...trim it!
//	if (field.value.length == 0)
//	{
		if (field.value.length > maxlimit)
			field.value = field.value.substring(0, maxlimit);
		// otherwise, update 'characters left' counter
		else 
			countfield.value = maxlimit - field.value.length;
//	}
//	else
//	{
//		alert("error");
//	}
}

function YY_checkform()
{
	var args = YY_checkform.arguments; 
	var myDot=true; 
	var myV=''; 
	var myErr='';
	var addErr=false;
	var myReq;
	
	for (var i = 1; i < args.length; i = i + 4) 
	{
		if (args[i + 1].charAt(0) == '#') 
		{
			myReq = true;
			args[i + 1] = args[i + 1].substring(1);
		}
		else 
			myReq = false;
		
		var myObj = MM_findObj(args[i].replace(/\[\d+\]/ig, ""));
		myV = myObj.value;
		
		if (myObj.type == 'text' || myObj.type == 'password' || myObj.type == 'hidden')
		{
			if (myReq && myObj.value.length == 0) 
				addErr = true;

			if ((myV.length > 0) && (args[i + 2] == 1)) 
			{
				//fromto
				var myMa = args[i + 1].split('_');
				if (isNaN(myV) || myV < myMa[0] / 1 || myV > myMa[1] / 1) 
					addErr = true;
			}
			else
			{
				if ((myV.length > 0) && (args[i + 2] == 2)) 
				{
					var rx = new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");
					if (!rx.test(myV)) 
						addErr = true;
				}
				else 
				{
					if ((myV.length > 0) && (args[i + 2] == 3)) 
					{
						// date
						var myMa = args[i + 1].split("#");
						var myAt = myV.match(myMa[0]);
						if (myAt) 
						{
							var myD = (myAt[myMa[1]]) ? myAt[myMa[1]] : 1;
							var myM = myAt[myMa[2]] - 1;
							var myY = myAt[myMa[3]];
							var myDate = new Date(myY, myM, myD);

							if (myDate.getFullYear() != myY || myDate.getDate() != myD || myDate.getMonth() != myM) 
								addErr = true;
						}
						else 
						{
							addErr = true;
						}
					}
					else 
					{
						if ((myV.length > 0) && (args[i + 2] == 4)) 
						{
							// time
							var myMa = args[i + 1].split("#");
							var myAt = myV.match(myMa[0]);
							
							if (!myAt)
								addErr = true;
						}
						else
						{
							if (myV.length > 0 && args[i + 2] == 5) 
							{
								// check this 2
								var myObj1 = MM_findObj(args[i + 1].replace(/\[\d+\]/ig, ""));

								if (myObj1.length) 
									myObj1 = myObj1[args[i + 1].replace(/(.*\[)|(\].*)/ig, "")];

								if (!myObj1.checked)
									addErr = true;
							}
							else 
							{
								if (myV.length > 0 && args[i + 2] == 6) 
								{
									// the same
									var myObj1 = MM_findObj(args[i + 1]);
									if (myV != myObj1.value) 
									{
										addErr = true;
									}
								}
							}
						}
					}
				}
			}
		}
		else
		{
			if (!myObj.type && myObj.length > 0 && myObj[0].type == 'radio')
			{
				var myTest = args[i].match(/(.*)\[(\d+)\].*/i);
				var myObj1 = (myObj.length > 1) ? myObj[myTest[2]] : myObj;

				if (args[i + 2] == 1 && myObj1 && myObj1.checked && MM_findObj(args[i + 1]).value.length / 1 == 0)
					addErr = true;

				if (args[i + 2] == 2) 
				{
					var myDot = false;
					for (var j = 0; j < myObj.length; j++) 
						myDot = myDot || myObj[j].checked;

					if (!myDot) 
						myErr += '* ' + args[i + 3] + '\n';
				}
			}
			else 
			{
				if (myObj.type == 'checkbox')
				{
					if (args[i + 2] == 1 && myObj.checked == false) 
						addErr = true;

					if (args[i + 2] == 2 && myObj.checked && MM_findObj(args[i + 1]).value.length / 1 == 0) 
						addErr = true;
				}
				else 
				{
					if (myObj.type == 'select-one' || myObj.type == 'select-multiple') 
					{
						if (args[i + 2] == 1 && myObj.selectedIndex / 1 == 0) 
							addErr = true;
					}
					else 
					{
						if (myObj.type == 'textarea') 
						{
							if (myV.length < args[i + 1]) 
								addErr = true;
						}
					}
					
					if (!addErr) 
					{
						
						myErr += '* ' + args[i + 3] + '\n';
						addErr = false;
					}
				}
				
				if (myErr != '') 
					alert('The required information is incomplete or contains errors:\t\t\t\t\t\n\n' + myErr)

				document.MM_returnValue = (myErr == '');
			}
		}
	}
}

