function iPut(elem, val){
		return elem.getElementsByTagName("input")[val];
}
function resetValueToNull(elem){
	elem.value = "";
}
/*function fadeImg(){
	var imgs = document.getElementsByTagName('img');
	for(var i = 0; i < imgs.length; i++){
		if(imgs[i].className == 'fade'){
			setDynamicFade(imgs[i])
			fade(imgs[i], 3);
		}
	}
}*/
function fade(elem, val){
	elem.style.opacity = val / 10;
	elem.style.filter = 'alpha(opacity=' +  (val*10) + ')';
}
function setDynamicFade(elem, val){
	if(!val)
		val = 3;
	elem.onmouseout=function(){fade(this, val)};
	elem.onmouseover=function(){fade(this, 10)}
	elem.style.cursor = "pointer";
}
function calSet(input, img){
	Calendar.setup({
	  inputField     :    input,     // id of the input field
	  ifFormat       :    "%e %b, %Y",      // format of the input field
	  button         :    img,  // trigger for the calendar (button ID)
	  align          :    "Tl",           // alignment (defaults to "Bl")
	  singleClick    :    true
	});
}
function calDateObj(elem){
	var _self = this;
	_self.buttons = $("img", elem);
	_self.clearButton = _self.buttons[0];
	_self.target = iPut(elem, 0);
	_self.calButton = _self.buttons[1];
	_self.clearButton.className = "clearDate";
	_self.clearButton.alt = "clear";
	$(_self.clearButton).click(function(){
		resetValueToNull(this.nextSibling.nextSibling);
	});
	_self.calButton.className ="calImg";
	_self.calButton.alt = "calendar";
	setDynamicFade(_self.clearButton);
	fade(_self.clearButton, 3);
	_self.target.readOnly = 1;
	_self.target.size = 11;
	calSet(_self.target, _self.calButton);
}

function dateToDb(date){
	if(!(/([1-9]|[12][0-9]|[3][01]) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)(,) ([1][9]|[2][0-9])[0-9][0-9]/.test(date)))
		return "";
	var mname = new Array();
	mname["Jan"]="01"; 
	mname["Feb"]="02";
	mname["Mar"]="03";
	mname["Apr"]="04";
	mname["May"]="05";
	mname["Jun"]="06";
	mname["Jul"]="07"; 
	mname["Aug"]="08";
	mname["Sep"]="09";
	mname["Oct"]="10";
	mname["Nov"]="11";
	mname["Dec"]="12";
		
	var space = date.indexOf(' ');	
	var day = date.substr(0, space);
	var month = mname[date.substr(++space, 3)];
	var year = date.substr(-4, 4);	
	
	
	if(!(day.match(/^[0-9][0-9]$/g))){	
		day = "0"+day;
	}

	return year+"-"+month+"-"+day;
}

function dateFromDb(date){
	if(!date)
		return "";
	if(date == "0000-00-00")
		return "";

	temp = date.split("-");

	year = temp[0];
	month = temp[1];
	day = temp[2];

	return day+"/"+month+"/"+year;
}


function wipe(elem, defvalue){
	if(elem.value == defvalue)
	  elem.value = "";
}

function riset(elem, value){
	if(elem.value == '')
		elem.value = value;
}

// Array Remove - By John Resig (MIT Licensed)
if(!Array.prototype.remove)
Array.prototype.remove = function(from, to) {
  var rest = this.slice((to || from) + 1 || this.length);
  this.length = from < 0 ? this.length + from : from;
  return this.push.apply(this, rest);
};

//Array Contains
if(!Array.prototype.contains)
Array.prototype.contains = function(value){
	for(bucket in this)
		if (this[bucket] == value)
			return true;
	return false;
}

function showSave(){
	if(!document.getElementById("save")){
		var body = document.getElementsByTagName("body")[0];
		var div = document.createElement("div");
		var html = "<p><img src='images/loading.gif' /> Saving...</p>";
	
		div.id = "save";
		div.style.width = "80px";
		div.style.height = "40px";
		div.style.position = "absolute";
		div.style.top = "80px";
		div.style.left = "710px";
		div.style.background = "#fff";
		div.style.border = "1px solid #000";
		div.style.padding = "10px";
		//div.style.padding = "5px";
		div.style.textAlign = "center";
	
		div.innerHTML = html;
		body.appendChild(div);
	}
}

function hideSave(){
	if(document.getElementById("save")){
		document.getElementById("save").style.display = "none";
		document.getElementsByTagName("body")[0].removeChild(document.getElementById("save"));
	}
}

function getURLVar(name){
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

function include_once(filename){
	var included = false;
	$('head:first script').each(function(){
		if(this.src.match(filename)){
			included = true;
			return false;
		}	
	});
	if(!included)
		include(filename);
}

function include(filename){
	var head = document.getElementsByTagName('head')[0];
	script = document.createElement('script');
	script.src = filename;
	script.type = 'text/javascript';
	head.appendChild(script)
}

function validateEmail(email){
	if(!email)
		return false;
	return email.match(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i );
}

// Determine how much the visitor had scrolled
function getScrolled(coord){
	var scrolledX, scrolledY;
	if( self.pageYOffset ) {
  		scrolledX = self.pageXOffset;
  		scrolledY = self.pageYOffset;
	} else if( document.documentElement && document.documentElement.scrollTop ) {
  		scrolledX = document.documentElement.scrollLeft;
  		scrolledY = document.documentElement.scrollTop;
	} else if( document.body ) {
  		scrolledX = document.body.scrollLeft;
  		scrolledY = document.body.scrollTop;
	}
	if(coord == "x")
		return scrolledX;
	else
		return scrolledY;
}

// Determine the coordinates of the center of the page
function getCenter(coord){
	var centerX, centerY;
	if( self.innerHeight ) {
  		centerX = self.innerWidth;
  		centerY = self.innerHeight;
	} else if( document.documentElement && document.documentElement.clientHeight ) {
		centerX = document.documentElement.clientWidth;
  		centerY = document.documentElement.clientHeight;
	} else if( document.body ) {
  		centerX = document.body.clientWidth;
  		centerY = document.body.clientHeight;
	}
	if(coord == "x")
		return centerX/2; 
	else
		return	centerY/2;
}

function isFutureDate(date) {
	var isfutureDate = false;
  	var compdate = new Date();
	var now = new Date();
  	var num = 2;
	var beg = 0;
	var months = new Array('jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec');
	var month = 0;
	
	
	if(date.length < 12){
		num = 1;
	}	
	
	/* set the properties of the Date object */	
	compdate.setDate(parseInt(date.substr(beg, num)));
	beg += ++num;
	num = 3; 
	/* months are zero indexed! */
	var month_name = date.substr(beg, num)
	for(var index = 0; index < months.length; index++){
		if(months[index] == month_name){
			month = index;
			break;
		}			
	}
    compdate.setMonth(month);
	
	beg += (num+ 2);
	num = 4;
    compdate.setYear(parseInt(date.substr(beg, num)));
    /* compare dates */
    if (compdate.getTime() > now.getTime()) {
      isfutureDate = true;
    }

	return isfutureDate;
  }

function copyToClipboard(s){
				if( window.clipboardData && clipboardData.setData )
				{
					clipboardData.setData("Text", s);
				}
				else
				{
					// You have to sign the code to enable this or allow the action in about:config by changing user_pref("signed.applets.codebase_principal_support", true);
					try{
						netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
					}catch(err){
						return false;
					}
						
					
					

					var clip = Components.classes['@mozilla.org/widget/clipboard;[[[[1]]]]'].createInstance(Components.interfaces.nsIClipboard);
				   if (!clip) return false;
				   
				   // create a transferable
				   var trans = Components.classes['@mozilla.org/widget/transferable;[[[[1]]]]'].createInstance(Components.interfaces.nsITransferable);
				   if (!trans) return false;
				   
				   // specify the data we wish to handle. Plaintext in this case.
				   trans.addDataFlavor('text/unicode');
				   
				   // To get the data from the transferable we need two new objects
				   var str = new Object();
				   var len = new Object();
				   
				   var str = Components.classes["@mozilla.org/supports-string;[[[[1]]]]"].createInstance(Components.interfaces.nsISupportsString);
				   
				   var copytext=meintext;
				   
				   str.data=copytext;
				   
				   trans.setTransferData("text/unicode",str,copytext.length*[[[[2]]]]);
				   
				   var clipid=Components.interfaces.nsIClipboard;
				   
				   if (!clip) return false;
				   
				   clip.setData(trans,null,clipid.kGlobalClipboard);	   
				}
				
				return true;
			}
