 
/*
* Error handling
*/
function handleError(str,page,line,chr) {
	alert('OUCH!!\n Error Occured!\nPage: '+page +'\n Line no: '+line+'\n Character: ' +chr);
	return true;
}

window.onerror = handleError


/*
* Name:jsfunctions.js
* Author:Kumar Chetan
* Description:Contains various javascript functions.
*/
/*
* Simply Checks the boxes
*/
var debugme = 1;
function CheckAll(form2, boxname)
{
	l = eval('document.'+form2+'.elements.length;');
	for (var i=0;i<l;i++)
	{
		var e = eval('document.'+form2+'.elements['+i+'];');
		if ((e.name == boxname ) && (e.type=='checkbox'))e.checked = true;
	}
}

/*
* Simply UnChecks the boxes
*/

function UnCheckAll(form2, boxname)
{
	l = eval('document.'+form2+'.elements.length;');
	for (var i=0;i<l;i++)
	{
		var e = eval('document.'+form2+'.elements['+i+'];');
		if ((e.name == boxname ) && (e.type=='checkbox'))e.checked = false;
	}
}


/*
* Simple. It will send u to a 'url' on event.
*/
function go2url(url)
{
	window.location = url;
}

/*
* Will check for null Values in the array of textboxes.
*/
function chkfrm(form2, boxname)
{
	var flag = 0; 
	var l = eval('document.'+form2+'.elements.length;');
	for (var i=0;i<l;i++)
	{
		var e = eval('document.'+form2+'.elements['+i+'];');
		if ((e.name == boxname ) && (e.value=='')){alert('Null value not allowed!');e.focus(); flag = 1;};
		if (flag==1) {return (false); break;}
	}
	if(flag==0){ return (true);	}
}


var fieldcounter = 0;

function moreFields(whichfield,wheretoadd)
{
	fieldcounter++;
	newFields = document.getElementById(whichfield).cloneNode(true);
	newFields.id = '';
	newFields.style.display = 'block';
	var newField = newFields.childNodes;
	for (var i=0;i<newField.length;i++)
	{
		var theName = newField[i].name
		if (theName)
			newField[i].name = theName + fieldcounter;
	}
	var insertHere = document.getElementById(wheretoadd);
	insertHere.parentNode.insertBefore(newFields,insertHere);
}


/*
* Populates another Select box. U can say chained selects. 
*/
function replace_values(frm, triggefield, triggerval, fieldname,newstrs, newvalues)
{
  v = eval('document.'+frm+'.'+triggefield+'.options[document.'+frm+'.'+triggefield+'.selectedIndex].value');
  if (v!='' && v == triggerval)
  {
    var new_arr_length = eval(newstrs+'['+triggerval+'].length');
    ex_len = eval('document.'+frm+'.'+fieldname+'.length');
    for(k=(ex_len - 1); k > 0; k--)
    {
      eval('document.'+frm+'.'+fieldname+'.options['+k+'] = null;');
    }
    for(i=0;i<new_arr_length;i++)
    {
      eval('option0 = new Option('+newvalues+'['+triggerval+'][i], '+newstrs+'['+triggerval+'][i]);');
      eval('my_var = document.'+frm+'.'+fieldname);
      my_var.options[my_var.length] = option0;
    }
  }
}


function checkdate(y,m,d){
	leapy = 0;
	if((y%4)==0) leapy = 1;
	if((leapy==1) && (m==2) && (d>29)){
		return(false);
	}else if((leapy==0) &&(m==2) && (d>28)){
		return(false);
	}else if(((m==4) || (m==9) || (m==11)) && (d>30)){
		return(false);
	}else{
		return (true);
	}
}

/*
* This function will check for valid email
*/
function isValidEmail(field){
	var re = /^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,4}(\.[a-z]{2}){0,2})$/i;
	return re.test(field.value);
}

/*
* This function will check for empty input boxes
*/
function isEmpty(val){
	var re = /^\s*$/;
	return re.test(val.value);
}

/* Function to Check ADD PROJECT Form */
function chk_form(f){
	with(f){
		if(isEmpty(proj_name)){alert("Please enter Project Name");proj_name.focus();return false;}
		if(isEmpty(url)){alert("Please enter URL");url.focus();return false;}
		if(isEmpty(title)){alert("Please enter Title");title.focus();return false;}
		if(isEmpty(description)){alert("Please enter Description");description.focus();return false;}
		if(isEmpty(userid)){alert("Please enter User ID");userid.focus();return false;}
		if(isEmpty(passwd)){alert("Please enter Password");passwd.focus();return false;}
		if(isEmpty(fullname)){alert("Please enter Full Name");fullname.focus();return false;}
		if(isEmpty(email)){alert("Please enter Email ID");email.focus();return false;}
		if(!isValidEmail(email)){alert("Please enter a Valid Email ID");email.focus();return false;}
	}
}

function check_this(obj, txt){
	if(isEmpty(obj)){alert("Please enter "+txt);obj.focus();return false;}
}


/*
* Pretty simple.
*/
function getexpirydate( nodays){
	var UTCstring;
	Today = new Date();
	nomilli=Date.parse(Today);
	Today.setTime(nomilli+nodays*24*60*60*1000);
	UTCstring = Today.toUTCString();
	return UTCstring;
}

/*
* Read cookie
*/
function getcookie(cookiename) {
	var cookiestring=""+document.cookie;
	var index1=cookiestring.indexOf(cookiename);
	if (index1==-1 || cookiename=="") return ""; 
	var index2=cookiestring.indexOf(';',index1);
	if (index2==-1) index2=cookiestring.length; 
	return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
}

/*
* Write cookie
*/
function setcookie(name,value,duration){
	cookiestring=name+"="+escape(value)+";EXPIRES="+getexpirydate(duration)+"; path=/";
	document.cookie=cookiestring;
	if(!getcookie(name)){
		return false;
	}else{
	return true;
	}
}

/*
* Basic function.
*/
function switchit(list,which_list){
	var listElementStyle = document.getElementById(list).style;
	if (listElementStyle.display=="none"){
		listElementStyle.display = "block";
		eval('setcookie("opened['+which_list+']",'+1+',1)');
	}else {
		listElementStyle.display = "none";
		eval('setcookie("opened['+which_list+']",'+0+',-1)');
	}
}