// Function to swap images on mouse over
function MM_swapImgRestore() 
{ 
  var i,x,a=document.MM_sr; 
  for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) 
  	x.src=x.oSrc;
}

// Function to pre-load images
function MM_preloadImages() 
{ 
  var d=document; 
  if(d.images) { 
  	if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; 
	for(i=0; i<a.length; i++)
    	if (a[i].indexOf("#")!=0) { 
			d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];
		}
	}
}

// Function 
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;
}

// Function to swap images
function MM_swapImage() 
{ 
  var i,j=0,x,a=MM_swapImage.arguments; 
  document.MM_sr=new Array; 
  for(i=0;i<(a.length-2);i+=3)
  	if ((x=MM_findObj(a[i]))!=null) {
		document.MM_sr[j++]=x; 
		if(!x.oSrc) x.oSrc=x.src; 
		x.src=a[i+2];
	}
}

// Function to add bookmark 
function bookmark(title, url)
{
	if (document.all) {
		window.external.AddFavorite(url, title);
	} else if (window.sidebar) {
		window.sidebar.addPanel(title, url, "");
	}
}


// Function to generate a html table
function GenTable(Content, Target, Name, Xsize, Lpos, Tpos) {
	var Html;
	
	Html = "<table";
	if(Name) Html += " id=\"" + Name + "\"";
	Html += " style=\"position: absolute; left: " + Lpos + "px; top: " + Tpos + "px;\"";
	Html += ">";
	
	Ysize = Content.length;
	if(Xsize == 0) {
		Xsize = 1;
		Ysize = 1;
	}
	
	for (var i=0; i<Ysize; i++) {
		Html += "<tr>";
		for (var t=0; t<Xsize; t++) {
			Html += "<td>";
			if(Xsize == 1 && Ysize == 1) {
				Html += Content;
			} else if(Xsize == 1) {
				Html += Content[i];
			} else {
				Html += Content[i][t];			
			}
			Html += "</td>";
	}
		Html += "</tr>";
	}
	Html += "</table>";

	$(Target).append(Html);    
}

// Function to generate html div
function GenDiv(Target, Id, Class, Content, Lpos, Tpos) {
	var Html;
	
	Html = "<div";
	if(Id) Html += " id=\"" + Id + "\"";
	if(Class) Html += " class=\"" + Class + "\"";
	if(Lpos || Tpos) Html += " style=\"position: absolute; left: " + Lpos + "px; top: " + Tpos + "px;\"";
	Html += ">";
	if(Content) Html += Content;
	Html += "</div>";
	
	$(Target).append(Html);    
}

// Function to disable the back button in the browser
function DisablingBackFunctionality()
{
	var URL;
	var i ;
	var QryStrValue;
	URL=window.location.href ;
	i=URL.indexOf("?");
	QryStrValue=URL.substring(i+1);
	if (QryStrValue!='X')
	{
		window.location=URL + "?X";
	}
}

// Check for valid numeric strings	
function IsNumeric(strString, KiloDot)
{
   var strValidChars = "0123456789";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;
   // Test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++) {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1) {
			if(i == strString.length-4 && KiloDot && strChar == ".") {
				blnResult = true;
			} else {
         		blnResult = false;
			}
         }
      }
   return blnResult;
}

// Validate at correct mail address
function ValidateEmail(email) 
{
	AtPos = email.indexOf("@")
	StopPos = email.lastIndexOf(".")
	
	if (AtPos == -1 || StopPos == -1) {
		return false
	}
	return true
}

// Retrieve the variable from the url
function GetUrlVar( Name )
{
	var SParams = window.location.search.substring(1);
  	var AParams = SParams.split("&");

  	for ( Cnt=0; Cnt<AParams.length; Cnt++ ) {
    	Prm = AParams[Cnt].split("=");
    	if (Prm[0] == Name) return(Prm[1]);
  	}
	return(null);
}

// Update the tip text
function updateTips(t) {
	tips.text(t).effect("highlight",{},2500);
}

// Cheack length of a variable
function checkLength(o,n,min,max) {

	if ( o.val().length > max || o.val().length < min ) {
		o.addClass('ui-state-error');
		updateTips("Length of " + n + " must be between "+min+" and "+max+".");
		return false;
	} else {
		return true;
	}

}

function checkNotEmpty(n)
{
	if ( n.val() ) {
		return true;
	} else {
		n.addClass('ui-state-error');
		return false;
	}

}

// Check if correct characters are used
function checkRegexp(o,regexp,n) {

	if ( !( regexp.test( o.val() ) ) ) {
		o.addClass('ui-state-error');
		updateTips(n);
		return false;
	} else {
		return true;
	}

}

// Function to set a cookie
function Set_Cookie(name, value, expires, path, domain, secure) 
{
	// set time, it's in milliseconds
	var today = new Date();
	today.setTime( today.getTime() );
	
	/*
	if the expires variable is set, make the correct 
	expires time, the current script below will set 
	it for x number of days, to make it for hours, 
	delete * 24, for minutes, delete * 60 * 24
	*/
	if ( expires ) 	{
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	
	document.cookie = name + "=" +escape( value ) +
	( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
	( ( path ) ? ";path=" + path : "" ) + 
	( ( domain ) ? ";domain=" + domain : "" ) +
	( ( secure ) ? ";secure" : "" );
}

// Function to read out a cookie
function Get_Cookie( check_name ) {
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f
	
	for ( i = 0; i < a_all_cookies.length; i++ ) {
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );
		
		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
	
		// if the extracted name matches passed check_name
		if ( cookie_name == check_name ) {
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 ) {
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found ) 	return null;
}				
